按照野火的PDF教程的第4章:[野火®]《RT-Thread 内核实现与应用开发实战—基于STM32》.pdf 新建 Keil MDK 工程,工程设置完成后点击编译按钮,编译不通过:
RTE\Device\ARMCM3\startup_ARMCM3.c(75): warning: #2803-D: unrecognized GCC pragma #pragma GCC diagnostic push RTE\Device\ARMCM3\startup_ARMCM3.c(76): warning: #2803-D: unrecognized GCC pragma #pragma GCC diagnostic ignored "-Wpedantic" RTE\Device\ARMCM3\startup_ARMCM3.c(113): warning: #2803-D: unrecognized GCC pragma #pragma GCC diagnostic pop RTE\Device\ARMCM3\startup_ARMCM3.c: 3 warnings, 0 errors
.\Objects\cedtek_RT-Thread.axf: Error: L6218E: Undefined symbol Image$$ARM_LIB_STACK$$ZI$$Limit (referred from startup_armcm3.o). Not enough information to list load addresses in the image map.
如下图所示:
搜索了一下发现了解决方法,在这里做个备忘
消除警告:warning: #2803-D: unrecognized GCC pragma
搜索引擎搜索到的解决方式 unrecognized pragma warning 如下图所示
应该指的是更换编译器的版本,我按照下面动图所示步骤点击更换编译器
编译器版本更换后再次编译,可以发现没有警告信息了,如下图所示
解决错误:
Error: L6218E: Undefined symbol Image$$ARM_LIB_STACK$$ZI$$Limit
搜索引擎搜索到的解决方式 点击我跳转 如下图所示
对链接器选项卡进行设置,下面的这个动图,展示的是我依葫芦画瓢的过程
再再次编译,终于成了!没有警告、没有报错了
参考资料:
unrecognized pragma warning
点击我跳转