代码1:
int a = 5;
这样写,a的地址在RAM中的R段,同时在ROM中的D段放一个初始值。
代码2:
#pragma section my_section
#prgma section
这样写,a的地址变成了ROM中的Dmy_section段并且R段中没有a的空间。
请正确定义带初始值的全局变量的方法是什么?问如何使D⇒R拷贝机制作用在自定义段中的变量上?还是说这种情况只能定义不带初始值的变量放进B段然后再定义一个C段的const然后自己copy?
参照用户手册 Table 8.1段的属性
https://www2.renesas.cn/document/mat/high-performance-embedded-workshop-rx-family-cc-compiler-package-v101-users-manual-includes-v102?language=en&r=1169511
1. section里面定义, D是有初始化…
在dbsct.c文件中添加黄色部分代码
在编译器选项里面添加黄色部分
谢谢。
问题解决了。必须要在链接时指定参数-rom=DMy_RAM1_1=RMy_RAM1_1。编译时变量被预备放在D区,链接器根据参数把D区的变量重定位进R区。
我以前用的别的芯片是手写连接脚本,自己写data区和romdata区重定位。RX没有连接脚本我还以为都是自动的呢。