自己做的板子,之前调试一直没有遇到此问题。今天增加了串口相关函数以及IIC接口,程序编写完成后使用Jlink下载至开发板中,程序无法运行。Debug发现代码一直卡在SystemInit导致程序不能跳转到main函数中。
原因分析:增加了printf函数且对printf函数做了重映射,猜想是printf函数引起,因为之前的代码是好的,硬件也未动过。注释掉print函数,程序正常运行。因此是printf函数引起。
解决方法:打开Keil中魔术棒,选择Target,勾选Use MicroLIB,关闭后重新编译代码。
下载代码后可以发现,代码可以正常运行了。
如果勾选Use MicroLIB编译报错,将上面的ARM Compiler切换为低版本编译器编译就ok了。