ucos-iii学习之关中断
2017-09-11 19:09
225 查看
首先说一下临界段代码,也称作临界域,是一段不可分割的代码。如果临界段可能被中断或任务级代码打断,那么需要关中断或锁调度器保护临界段。
如果OS_CFG_ISR_POST_DEFERRED_EN被设为0,在进入临界段之前会关闭中断。
如果OS_CFG_ISR_POST_DEFERRED_EN被设为1,在进入临界段之前会关闭调度器。
uCOS-iii定义了一个进入临界段的宏和两个出临界段的宏:
OS_CRITICAL_ENTER(),
OS_CRITICAL_EXIT(),
OS_CRITICAL_EXIT_NO_SCHED()。
然后就是关中断啦。
测量关中断的时间
通过设置CPU_CFG.H中的CPU_CFG_TIME_MEAS_INT_DIS_EN为1启用该功能。
每个任务的关中断时间被保存于OS_TCB。
时间戳的哦控制单位位于CPU_TS中,时间戳的速率决定于CPU的速率。
如果OS_CFG_ISR_POST_DEFERRED_EN被设为0,在进入临界段之前会关闭中断。
如果OS_CFG_ISR_POST_DEFERRED_EN被设为1,在进入临界段之前会关闭调度器。
uCOS-iii定义了一个进入临界段的宏和两个出临界段的宏:
OS_CRITICAL_ENTER(),
OS_CRITICAL_EXIT(),
OS_CRITICAL_EXIT_NO_SCHED()。
然后就是关中断啦。
测量关中断的时间
通过设置CPU_CFG.H中的CPU_CFG_TIME_MEAS_INT_DIS_EN为1启用该功能。
每个任务的关中断时间被保存于OS_TCB。
时间戳的哦控制单位位于CPU_TS中,时间戳的速率决定于CPU的速率。
相关文章推荐
- 嵌入式系统学习——STM32之UCOS-III中断和时间管理及软件定时器
- ucos-iii学习之中断管理
- ucos-iii学习之循环轮转调度及调度的内部实现
- ucos iii 的OSInit()函数学习
- ucos-iii学习之时间管理
- 嵌入式系统学习——STM32之UCOS-III消息传递
- uc/os-iii学习笔记-中断管理
- ucos-iii学习之写在前面
- UCOS_III学习笔记(一)
- ucos-iii学习之优先级
- uc/os-iii学习笔记-资源管理(中断、信号、信号量、互斥信号量)
- uCos-iii 学习笔记开篇
- 嵌入式系统学习——STM32之UCOS-III任务基础API、时间片轮转调度和系统任务
- ucos iii学习笔记——为什么选择ucos iii
- uCOS-III学习笔记
- ucos-iii学习之系统内部任务
- UCOS_III(原子战舰STM32)学习笔记三
- ucos-iii学习之软件定时器管理
- 嵌入式系统学习——STM32之UCOS-III信号量和互斥信号量
- uCOSIII学习笔记之OSCtrSW( )