上电启动,一般分为两个阶段
第一阶段(主要是CPU内核的初始化,运行固化的启动代码)
1、初始化堆栈
2、初始化、规划中断向量表,跳转到Reset_Handler中,执行复位后的中断
3、在Reset_Handler中,调用C函数SystemInit来进行系统初始化
4、调用C函数__main 将会跳转到主程序main函数中
第二阶段(外设模块的初始化,并完成启动操作系统调度)
1、初始化心跳时钟
2、初始化中断分组
3、初始化外设:串口、GPIO、等等
4、调用OSInit:初始化操作系统全局变量、链表结构、创建空闲任务(比逊创建的任务)
5、创建应用程序任务
6、调用OSStart启动函数,启动操作系统
7、找到就绪列表中优先级最高任务,并启动任务