在STM32移植LVGL过程中出现此问题

.\Objects\STM32.axf: Error: L6218E: Undefined symbol __aeabi_assert (referred from qrcodegen.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 0 warning and 1 error messages.
".\Objects\STM32.axf" - 1 Error(s), 0 Warning(s).
Target not created.

在链接阶段,编译器找不到__aeabi_assert函数的实现。__aeabi_assert是ARM嵌入式应用程序二进制接口(EABI可能的原因)中用于处理断言(assert)的函数。

可能的原因:

KEILMDK启用了MicroLIB,但MicroLIB未包含断言支持,MicroLIB是Keil提供的一个精简版C库,为了节省空间,它不支持assert()等函数.

解决方法​:

在Keil的Options for Target -> Target中取消勾选Use MicroLIB,改用标准C库。

结果:

重新编译 ,完美解决

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐