1、硬件初始化(也可以放在SystemInit中)
时钟初始化
中断优先级分组
中断优先级分配(设置)
外设初始化(时钟,GPIO,配置参数,是否使能中断,Enable外设,DMA 等等)
2、调用FreeRTOS Api xTaskCreate创建任务
3、调用FreeRTOS Api vTaskStartScheduler启动内核
a、启动SysTick
b、启动FirstTask
c、SysTickHandler判断(通过xTaskIncrementTick函数)是否进行任务的切换,如果需要设置PendSV PendingBit为1
d、如果当前没有中断执行,则执行PendSV中断,PendSV中断中执行对上文(当前执行的任务)的保存和下文(将要执行的任务)的加载,之后将切回到 用户级线程模式,执行刚才新加载的任务