uc/os-ii的工作原理

如题... 如题 展开
 我来答
tanarri
推荐于2016-03-04 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5123
采纳率:33%
帮助的人:7873万
展开全部
uC/OS-II是一种基于优先级的可抢先的硬实时内核。
要实现多任务机制,那么目标CPU必须具备一种在运行期更改PC的途径,否则无法做到切换。不幸的使,直接设置PC指针,目前还没有哪个CPU支持这样的指令。但是一般CPU都允许通过类似JMP,CALL这样的指令来间接的修改PC。我们的多任务机制的实现也正是基于这个出发点。事实上,我们使用CALL指令或者软中断指令来修改PC,主要是软中断。但在一些CPU上,并不存在软中断这样的概念,所以,我们在那些CPU上,使用几条PUSH指令加上一条CALL指令来模拟一次软中断的发生。

再uC/OS-II里,每个任务都有一个任务控制块(Task Control Block),这是一个比较复杂的数据结构。在任务控制快的偏移为0的地方,存储着一个指针,它记录了所属任务的专用堆栈地址。事实上,再uC/OS-II内,每个任务都有自己的专用堆栈,彼此之间不能侵犯。这点要求程序员再他们的程序中保证。一般的做法是把他们申明成静态数组。而且要申明成OS_STK类型。当任务有了自己的堆栈,那么就可以将每一个任务堆栈再那里记录到前面谈到的任务控制快偏移为0的地方。以后每当发生任务切换,系统必然会先进入一个中断,这一般是通过软中断或者时钟中断实现。然后系统会先把当前任务的堆栈地址保存起来,仅接着恢复要切换的任务的堆栈地址。由于哪个任务的堆栈里一定也存的是地址(还记得我们前面说过的,每当发生任务切换,系统必然会先进入一个中断,而一旦中断CPU就会把地址压入堆栈),这样,就达到了修改PC为下一个任务的地址的目的。

http://www.avrw.com/article/art_104_992.htm
莱科斯
2023-06-12 广告
全自动el测试仪和el测试仪在原理上是相同的,都是用来测试电子元器件的。全自动el测试仪适用于在线生产,无需人力辅助,而el测试仪适用于离线生产,需要人工进行参数设置和测试。两者的区别在于全自动el测试仪具有自动化程度高、测试效率高、测试结... 点击进入详情页
本回答由莱科斯提供
bressanone77
2008-07-08 · TA获得超过763个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:379万
展开全部
这个问题不是几句话能说清楚的问题,给你介绍一本书看看吧,嵌入式实时操作系统uC/OS-II第二版,邵贝贝,北航出版社.
看完后再找一些移植程序读一读.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式