主题中讨论的其他器件:MSP430F5419A
您好!
我使用了 MSP-elf-gcc-5.0.0.0。 我尝试将工具链更新到最新的6.1.1.0 (GCC 7.3.2.154)。
当我将 gcc 与-O2选项一起使用时、编译和链接都有效。 但代码会重复暂停和看门狗复位。
当我使用 gcc with -O1选项时、链接失败、并显示以下消息:
/Users/jsjeong/Work/nol.a-sdk-core/nola-sdk/make/../ti-msp430f5438a/libcoxos.a (digital-io.o): 在 函数 中`digitalWriteInternal': digital-io.cpp:(.ise.text.digitalWriteInternal+0x9e): 重定位 被截断 以适合: R_MSP430X_ABS16 (针对 /Users/jsjeong/Work/nol.a-sdk-core/nola-sdk/make/../ti-msp430f5438a/libcoxos.a 中.rodata.pinInf o 段定义的符号` `pinInfo'):R_intnature.inc.intrab.text 段:R_intrunchinc.inc.inc.intrun.text:R+trunchina.un.text: /Users/jsjeong/Work/nol.a-sdk-core/nola-sdk/make/../ti-msp430f5438a/libcoxos.a Rf (针对.inc.intrun.inc.inc.inc.intrun.f.inc.inc.intrun.inc.inc.inc.inc.inc.inc.intrun.text 段被截断
我不知道为什么 pinInfo 结构被截断。 我同时使用-mcode-section=和-mdata-section=。
在 pinInfo 声明中添加了__attribute__((SECTION (FAR_ROM)))后,上述错误会得到解决,并且链接成功,但代码会重复停止,并像使用-O2的结果一样重置看门狗。
因此、我尝试降级到6.0.1.0 (GCC 7.3.1.24)、然后我的代码正常工作。
请检查一下。
谢谢、
Jongsoo