关于CH32V103对函数,常量数据存储的地址定位,链接LD文件设置的一点疑问,请高手解惑。

附件工程代码,演示了函数、常量数据定位到指定地址。方法是通过修改LD文件。


下图是目标文件hex内容显示,其中地址0x600开始存储了Other.c的函数代码。代码地址定位符合预期。


LD-1.JPG


问题一: 函数Other.c中包含的常量字符串, "Test-1 Function", "Test-2 Function" 链接器为什么没有定位到0x600地址后(即函数定位的相同区域)? 要达到这个目的,如何修改LD文件呢?


问题二: Other.c对函数定位需要增加__attribute__((section(".ISP_DummyTEST_Addr"))) ,每个函数都需要手动添加这个前缀内容,有没有一个简单的方法,对Other.c里面包含的全部函数,实现相同的代码地址定位?


您好,将other.c中的函数section 去掉,参考下图设置,将debug.o改成other.o。

image.png


Thanks a lot.


只有登录才能回复,可以选择微信账号登录