OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4603|回复: 1

请教uc/os任务切换的问题!

[复制链接]

15

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-12
在线时间
32 小时
发表于 2013-6-10 18:23:32 | 显示全部楼层 |阅读模式

 uc/os的任务切换是通过 堆栈和软中断来实现。

假设有如下的任务

优先级  5                 6 
PC ->  任务1       PC ->  任务2
          R0                R0
          R1                R1
          R2                R2 
          A                  A
        PSW               PSW 
      我的理理解是任务切换的时候,任务1的寄存器以及PC压栈到自己的任务堆栈,然后把任务2的任务堆栈内容填写到系统堆栈,然后使用软中断返回,就实现了任务切换!

     问题是:假设是刚开始运行,任务1已经运行了,任务2没有运行,从任务1切换到任务2,任务1的PC是当前PC,被压栈了,需要切换到任务2,任务2没有运行过,所以就怎么知道任务2的PC值呢?







        
                    
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

526

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1419
金钱
1419
注册时间
2011-11-27
在线时间
122 小时
发表于 2013-6-10 20:22:01 | 显示全部楼层
这张图也许对你有帮助。



永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表