This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
memory { PAGE 0 : RAMLS0 : origin = 0x00008000, length = 0x00002200 RAMLS1 : origin = 0x0000A200, length = 0x00000C00 RAMLS2 : origin = 0x0000AE00, length = 0x00000080 RAMLS3 : origin = 0x0000AE80, length = 0x00000080 RAMLS4 : origin = 0x0000AF00, length = 0x00000080 RAMLS5 : origin = 0x0000AF80, length = 0x00000080 } SECTIONS { DataDiagRAM : > RAMLS1 PAGE = 0 }
在cmd文件中,该全局变量j结构体存放的空间为RAMLS1。
#pragma DATA_SECTION(DataDiag_gstv,"DataDiagRAM"); DataDiag_Var DataDiag_gstv;
该全局变量在c文件中被定义。
因为我的global shared RAM 空间不够了,所以将该结构体变量放到LSRAM中。该问题就是在更换存储位置时出现的,详细的现象是memcopy赋值存在赋值不进去的问题,而且在debug调试过程中,我通过expressions窗口给该变量写值时,能成功并观察到memory窗口对应地址的值已经变更,但代码的实际执行时该变量的值并没有变更。请问一下:
1、LSRAM和GSRAM在全局变量的使用上是否存在区别?
2、编译没有报错,但通过memcopy进行不同区域间数据的相互赋值存在问题,原因是什么?
3、是否有其他的办法能规避这类问题呢?有没有相关的文档可以参考?
期待您这边的回答。