打印

UC/OSII困惑

[复制链接]
1799|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yanbing110|  楼主 | 2007-7-15 00:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lpf336| | 2007-7-15 05:19 | 只看该作者

自己找本书看看

使用特权

评论回复
板凳
古道热肠| | 2007-7-15 12:58 | 只看该作者

有个总管来管理,任务执行延时时就放弃占用CPU,别的任务就

  分时占用CPU完成任务,分发任务和收回任务都要作好现场保护与恢复,这才是关键哟!
  好好看理论部分,经典教材应是邵贝贝写的,你把书从头到尾看一遍,就会明白的。

使用特权

评论回复
地板
xmxmq| | 2007-7-15 13:27 | 只看该作者

o

任务的切换应该就是现场的切换,其中现场有包括程序的地址指针.在中断中一些压栈出栈的动作就完成了程序地址的跳转.地址的变化就导致了任务的切换了.
这是我的理解.我也没有用过UC/OSII,只是了解过.

使用特权

评论回复
5
ETUAL| | 2007-7-15 20:51 | 只看该作者

我的理解

我的理解:

1,用汇编的观点看,中断的时候,PC会压,SP+2,完成后执行 RETI 之后返回原来的地方。这是正常的情况。
但是,如果我在中断里面手动操作 SP 指针,让他指向另外一个地方,会发生什么情况? 效果就是RETI 的时候,装在今PC的不是原先的地址,而是新的地址,这个新的地址就是指向另外一个任务的(上次中断保存下载的)。只要你的OS管理好这个 SP 指针的操作,是能正常切换的。 
以上是发生在中断,有高优先级任务继续时候发生的任务切换。

2 另外如果程序调用 OSTimeDly 等函数的时候,认为任务自动放弃CPU使用,同样用上面的方法。要任务切换,关键是操作好SP,之后就是保护好现场,将目前工作的寄存器保存起来,这个就是uCOS里面那个任务堆栈的用处了。

以上是实现的思想,uCOS 用C写的,当然也有他实现的办法,具体看书好了 ........

使用特权

评论回复
6
ayb_ice| | 2007-7-15 21:00 | 只看该作者

你还没有找到门....

使用特权

评论回复
7
why_buaa| | 2007-7-15 23:59 | 只看该作者

看看uCOS的代码,选你熟悉的CPU的移植版

  OS切换这部分是只能用汇编来写的,这部分其实也不长,说白了就是压栈,换sp,ret。但是细节部分还是要仔细看看,看明白后你就上一个层次了。

使用特权

评论回复
8
keer_zu| | 2007-7-16 09:47 | 只看该作者

哈哈

还有好多要做。

使用特权

评论回复
9
ch_worm| | 2007-7-17 22:53 | 只看该作者

学习了

学习了 

使用特权

评论回复
10
52wm| | 2007-7-20 16:42 | 只看该作者

看看这个

看看这个,比UCOS2简单,
相关链接:https://bbs.21ic.com/upfiles/img/20077/2007720164220239.rar

使用特权

评论回复
11
石湖天随| | 2007-7-21 09:48 | 只看该作者

呵呵,这个都没看明白,继续看书吧,任务的调度就是做那个买

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

31

帖子

0

粉丝