嵌入式设备设计的内核uc-os-ii api使用手册大全

嵌入式设备设计的内核uc/os-ii api使用手册大全
1uC/OS-II 简介2uC/OS-II 应用程序基本结构3一些重要的uC/OS-II API无线演示控制器介绍1) OSTaskCreate函数2) OSTaskSuspend函数3) OSTaskResume函数左右摇头摆4) OS_EN5) OS_EXIT_CRITICAL6) OSTimeDly耳光室函数4uC/OS-II 多任务实现机制分析
前面已经说过,uC/OS-II是一种基于优先级的可抢先的多任务内核。那么,它的多任务机制到底如何实现的呢?了解这些原理,可以帮助我们写出更加健壮的代码来。由于我们面向的初级程序员,本文不打算写成又一篇uC/OS-II的源码分析,那样的文章太多了,打算从实现原理的角度探讨这个问题。
首先我们来看看为什么多任务机制可以实现?其实在单一CPU的情况下,是不存在真正的多任务机制的,存在的只有不同的任务轮流使用CPU,所以本质上还是单任务的。但由于CPU执行速度非常快,加上任务切换十分频繁并且切换的很快,所以我们感觉好像有很多任务同时在运行一样。这就是所谓的多任务机制。
由上面的描述,不难发现,要实现多任务机制,那么目标CPU必须具备一种在运行期更改PC
的途径,否则无法做到切换。不幸的是,直接设置PC指针,目前还没有哪个CPU支持这样的指令。但是一般袜子定型机CPU都允许通过类似JMP游艇门CALL这样的指令来间接的修改PC
我们的多任务机制的实现也正是基于这个出发点。事实上,我们使用CALL指令或者软中断指令来修改PC,主要是软中断。但在一些CPU上,并不存在软中断这样的概念,所以,我们在那些CPU上,使用几条widevinePUSH指令加上一条CALL指令来模拟一次软中断的发生。
回想一下你在微机原理课程上学过的知识,当发生中断的时候,CPU保存当前的PC和状态寄存器的值到堆栈里,然后将PC设置为中断服务程序的入口地址,再下来一个机器周期,就可以去执行中断服务程序了。

本文发布于:2024-09-23 11:14:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/154939.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:中断   多任务   实现   机制   原理   任务   指令
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议