请问在使用CCRX编译器时如何在自定义段中定义带初始值的全局变量?

代码1:

int a = 5;

这样写,a的地址在RAM中的R段,同时在ROM中的D段放一个初始值。

代码2:

#pragma section my_section

int a = 5;

#prgma section

这样写,a的地址变成了ROM中的Dmy_section段并且R段中没有a的空间。

请正确定义带初始值的全局变量的方法是什么?问如何使D⇒R拷贝机制作用在自定义段中的变量上?
还是说这种情况只能定义不带初始值的变量放进B段然后再定义一个C段的const然后自己copy?

Parents Reply
  • 编译器自动处理, 把初值放在ROM里, 在程序启动后, 从ROM赋值到RAM,所以有了上面黄色的部分, 你从头开始看一下本贴. 

    编译没有出现你说说的warning, 如果如果有困难, 请留下邮箱. 

    下面是map文件, 编译器自动生成一个DMy_RAM_1段, 

    可以通过memory看到这个地址上的初值数据

Children