中断管理
PendSV 和 SysTick 中断优先级配置
PendSV 中断优先级配置
PendSV 主要用于任务切换,因此在 µC/OS-III 内核开始进行多任务处理前,也就是在 µC/OS-III 内核启动之前,就需要配置好 PendSV。在 µC/OS-III 中,将 PendSV 的中断优先级配置为 0xFF,也就是最低优先级。
1 | ; 关中断 |
SysTick 中断优先级配置
SysTick 主要用于为 µC/OS-III 内核提供时钟节拍,在调用函数 OSStart()后,需要调用函数OS_CPU_SysTickInit()对 SysTick 进行配置, 因此在通过函数OS_CPU_SysTickInit()配置后的 SysTick 的中断优先级就为4。
1 |
临界区
注意:
- 成对使用
- 不支持嵌套
- 尽量保持临界区耗时短
1 | CPU_SR_ALLOC(); /* 必须定义在所有局部变量之后 */ |
需要注意的是,CPU_SR_ALLOC()必须在所有局部变量定义后再定义。
任务调度锁
注意:
- 成对使用,支持嵌套
- 只是关闭任务调度器,不影响中断
1 | OS_ERR err; |
评论