问题原因:
"Error: L6218E: Undefined symbol __aeabi_assert..." 能够发生是因为“ Project -> Options for Target -> on the Target tab - Use MicroLIB” 被选中。
microlib是一个比ARM标准C库小的独立库。为了节省大小,arm microlib c库不支持或实现几乎所有与操作系统交互的函数,例如abort()、exit()或assert()。
解决办法:
方法1:使用 “Keil::ARM_Compiler Pack”
Open the Manage Run-Time Environment dialog and expand Compiler -> I/O.
Next to STDERR, check the box . In the variant column, select ITM .
Click OK to close the dialog.
方法2:禁用 assert()
On Project -> Options For Target -> on the C/C++ tab, for Define type "NDEBUG." - 使 assert() 函数不起作用。
方法3:禁用 MicroLIB<