0

在为 STM32 MCU 开发代码时,我将一些结构放入自定义内存部分:

struct MyStruct structName;

__attribute__((__section__("my_section"))) __attribute__((__used__)) const struct MyStruct *const mystruct1 = &x

链接器生成了额外的符号,__start_my_section_并且__stop_my_section_. 在调试 MCU 时编译后,我看到它__start_my_section_包含一个有效值,例如 0x20000468 但__stop_my_section_不正确,等于 0。

在 .map 文件中,__stop_my_section_还包含一个有效值:

                0x20000470                __stop_my_section_ = .

怎么了?我没有向链接器脚本添加任何内容,链接器自动创建了该部分并放置在 bss 中。

4

0 回答 0