uC/OS-II在MSP430单片机芯片上实现RTOS的问题分析
[09-12 16:05:16] 来源:http://www.88dzw.com 单片机学习 阅读:8251次
文章摘要:由于各个任务的ISP和TSP在任务切换前都已经保存在该任务的TCB中,任务1的堆栈指针和R4可以回到该任务在其任务堆栈和中断堆栈的正确的位置。任务2被中止包括两种情况。一是任务2被别的任务删除,此时任务2在中断堆栈中占用的空间会自动释放。二是任务2被别的任务挂起,此时应在将程序挂起的函数TaskSuspend()中添加一段代码,将其保存在中断堆栈中的状态移到自己的任务堆栈中,同时将其TCB中的FromInt标志设为0。这样,在任务2解除挂起后,会去任务堆栈中恢复其状态。(7)中断中发生中断嵌套。发生中断嵌套时,要按照中断嵌套的机制进行处理。首先,在中断嵌套中,不允许进行任务调度,这样,即使在中
uC/OS-II在MSP430单片机芯片上实现RTOS的问题分析,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com由于各个任务的ISP和TSP在任务切换前都已经保存在该任务的TCB中,任务1的堆栈指针和R4可以回到该任务在其任务堆栈和中断堆栈的正确的位置。
任务2被中止包括两种情况。一是任务2被别的任务删除,此时任务2在中断堆栈中占用的空间会自动释放。二是任务2被别的任务挂起,此时应在将程序挂起的函数TaskSuspend()中添加一段代码,将其保存在中断堆栈中的状态移到自己的任务堆栈中,同时将其TCB中的FromInt标志设为0。这样,在任务2解除挂起后,会去任务堆栈中恢复其状态。
(7)中断中发生中断嵌套。
发生中断嵌套时,要按照中断嵌套的机制进行处理。首先,在中断嵌套中,不允许进行任务调度,这样,即使在中断嵌套中激发了更高优先级的任务,也必须等到最后中断退出前才进行调度执行。这一点是由uC/OS-II系统设计保证的。其次,保存寄存器和函数调用所占用的RAM字节全部在中断嵌套中。在退出中断嵌套时,不必将TCB中的FromInt标志复位。
5 程序设计流程
(1)中断程序结构和设计流程,如图4所示。
(2)普通任务间的任务切换程序流程,如图5所示。
(3)在中断中任务切换程序流程,如图6所示。
我们已经在MSP430F148上成功运行了uC/OS-II,在RAM只有2 KB的情况下,能够运行16个任务,可以满足一些复杂的应用需求,大大扩展了MSP430F148的应用范围,并且提高了应用系统的实时性。为了验证实际效果,在此基础上,我们将几个常用的家庭仪表--水表、暖气表、热水表集成在一起,运行效果良好,达到设计要求。
Tag:单片机学习,单片机开发,单片机原理,单片机教程,单片机学习
《uC/OS-II在MSP430单片机芯片上实现RTOS的问题分析》相关文章
- › 在51系列单片机上移植uCOS-II
- 在百度中搜索相关文章:uC/OS-II在MSP430单片机芯片上实现RTOS的问题分析
- 在谷歌中搜索相关文章:uC/OS-II在MSP430单片机芯片上实现RTOS的问题分析
- 在soso中搜索相关文章:uC/OS-II在MSP430单片机芯片上实现RTOS的问题分析
- 在搜狗中搜索相关文章:uC/OS-II在MSP430单片机芯片上实现RTOS的问题分析
分类导航
最新更新