注意startup_ARMCM0.s这个启动文件,里面有这么三句
#ifndef __NO_SYSTEM_INIT
bl SystemInit
#endif
意思就是如果没有定义SYSTEM_INIT这个宏,就要在main.c中执行SystemInit()函数。解决的办法有四个:
1.在main.c中定义一个空的SystemInit(),自己另外写初始化函数,作者提供的例程就是这么解决的
2.在main.c中把所有初始化的内容放入SystemInit(),不再定义自己的初始化函数
3. 使用“//”注销这么三句,就无须在main.c中定义SystemInit()函数
4. 在main.c中直接定义 这个宏 #define SYSTEM_INIT
任选其一即可
|