1. 编写main函数
一个工程如果没有main函数是编译不成功的,会出错。因为系统在开始执行的时候先执行启动文件里面的复位程序,复位程序里面会调用C库函数__main,__main的作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。__main最后会调用__rtentry,再由__rtentry调用main函数,从而由汇编跳入到C的世界。这里面的main函数就是我们自己写的。
2. 软件仿真设置
为调试方便,选择软件仿真,如下图所示:
注. 需要更改时钟 :
时钟相关文件是system_ARMCM3.c开头,有一段代码:
/*----------------------------------------------------------------------------
Define clocks
*----------------------------------------------------------------------------*/
#define XTAL ( 5000000UL) /* Oscillator frequency */
#define SYSTEM_CLOCK (5U * XTAL)
因此需要更改时钟如下图所示:
3. 线程栈
如果有全局变量,有子函数调用,又中断发生。那么系统在运行的时候,全局变量放在哪里