GCC script 变量读出错误

使用瑞萨e2 studio, IDE, 编译器为GCC, MCU为RL78G13 R5F100LK ,384KROM, 为了测试64K跨界问题, 定义一个32byte的数组,放置在mySec段里面

问题相关代码,请勿粘贴截图

MEMORY
{
VEC : ORIGIN = 0x0, LENGTH = 4
IVEC : ORIGIN = 0x4, LENGTH = 188
OPT : ORIGIN = 0xC0, LENGTH = 4
SEC_ID : ORIGIN = 0xC4, LENGTH = 10
OCDSTAD : ORIGIN = 0xCE, LENGTH = 10
OCDROM : ORIGIN = 0x5fe00, LENGTH = 0x200
ROM : ORIGIN = 0xD8, LENGTH = 392488
MIRROR : ORIGIN = 0xF3000, LENGTH = 28416
RAM : ORIGIN = 0xF9F00, LENGTH = 24576
}

在section里面添加了

img

对应的程序:

img

const attribute (section ("mySec")) uint8_t HH[32]={0x55,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
16,17,18,18,20,21,22,23,24,25,26,27,28,29,30,31};
uint8_t my[32];

使用simulator debug时: memory窗口的对应地址, 可以看到32byte的数据, 使用for 循环, 读出HH数组, 得到的结果是错的, 在watch窗口, HH的地址是对的, 但数据是对的,
如果使用直接赋值 my[0] = HH[0], 可以得到正确 的结果, 使用 for 循环赋值 my[i] = HH[i] 结果是错误的.
通用使用memcpy 读出HH, 也得不到正确结果.

img

img

对GCC编译器不太熟悉, 不知道还需要怎么修改才能解决上面的问题

请教有谁知道问题出在什么地方? 请指点.