RTOS使用双堆栈,把任务栈和中断栈分开安全性更好
pendSV 专门用于任务切换,保存当前的任务现场,切换到另外一个任务中
pendSV是缓期执行
SVC必须立刻执行
所有中断服务程序都运行在handle模式,
至少有一位子优先级
寄存器有手动入栈和自动入栈,
内核相关的代码和任务都在SVC中断中执行:优势隔离开内核和任务
一种由程序进行触发的中断,默认开启
SVC 异常是必须立即得到响应的(若因优先级不比当前正处理的高,或是其它原因使之无法立即 响应,将引发HardFault)
2、
2.1、每个任务都有一个任务控制块,记录每个任务的各种信息
控制块第一个成员是栈顶地址,
ListItem_t xStateListItem --- 各种状态,如阻塞,运行,就绪
ListItem_t xEventListItem; -- 消息队列,事件标志组
总列表头List_t;
一个链表头List_t可以挂很多链表xLIST_ITEM
每个xLIST_ITEM都是一个任务
MiniListItem_t xListEnd;在List_t列表的最后一个
****
最大优先级任务是多少就安排多少给这个链表
uxNumberOfItems表示一个列表下xLIST_ITEM的数目
****pxIndex遍历所有的xLIST_ITEM选项
*****xListEnd表示最后一个选项
双向链表
******2.2、不同场景xItemValue作用不一样
*********************