解决 ChibiOS 3.x 中 undefined symbol __main_stack_size__

问题:

尝试编译 ChibiOS 3.x 时,你在链接阶段收到以下错误消息之一:

undefined_stack_symbols.txt
undefined symbol `__main_stack_size__' referenced in expression
undefined symbol `__process_stack_size__' referenced in expression

解决方案

与 ChibiOS 2.x 相比,ChibiOS 3.x 链接器脚本不包含堆栈大小定义。如果你使用自定义构建系统,你需要添加这些链接器标志,例如通过设置 LDFLAGS 环境变量:

set_ldflags.sh
-Wl,--defsym=__process_stack_size__=0x400 -Wl,--defsym=__main_stack_size__=0x400

0x400 (1024) 是撰写本文时 ChibiOS 中的默认 makefile 值。如果需要,你也可以使用自定义适当值。这很可能就是 ChibiOS 3.x 首先选择基于外部定义链接器变量的方法的原因。


Check out similar posts by category: C/C++, Embedded