版权声明:本文为博主原创**,未经博主允许不得转载。 https://blog.csdn.net/lvk/article/details/84769297
启动代码文件名一般可命名为如startup_hc32xxxx.s。启动代码作用一般是:
1) 堆和栈的初始化
包括堆栈的大小,MSP(main stack pointer)值等。MSP的初始值在复位阶段取自存储区的第一个字(即0地址处的值)。
栈Stack: 由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈。向低地址扩展。
堆Heap: 一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。分配方式类似于数据结构中的链表。向高地址扩展。
2) 向量表定义
定义了各MSP初值,以及各个中断服务程序(ISR)的入口地址。
3) 中断服务程序
CPU根据中断号从向量表中获取入口地址后,跳转至对应的ISR
4) 设置系统时钟频率
可在复位中断服务程序Reset_handler中调用系统时钟频率初始化程序
5) 中断寄存器的初始化
|