硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4411|回复: 2
收起左侧

[μCOS-III] ucOS任务切换发生理解是否正确?

[复制链接]

2

主题

19

回帖

25

积分

新手上路

积分
25
发表于 2014-5-5 17:27:54 | 显示全部楼层 |阅读模式
新手,看OS 晕晕乎乎的。许多理解也不知道对不对,期盼高手指点。

(1)为什么切换任务?
        答:避免一个任务独占CPU嘛。得干更多是事情


(2)时候需要进行任务切换?
        答:(1)任务的切换有两种是吗?   任务级切换、中断级切换;任务级切换是不是就对应(#define  OS_TASK_SW()               OSCtxSw()),中断级对应的就是:OSIntCtxSw();
               (2)任务级切换,任务主动放弃CPU,比如OSTimeDly、邮箱、信号量等这些需要等待而主动放弃CPU ,就最终调用OSCtxSw()来进行任务切换;
                        中断级切换,由于Systick或者其他中断引起的,在中断服务退出程序调用OSIntExit()时候调用OSIntCtxSw();
               (3)无论是 OSCtxSw()还是OSIntCtxSw() 最终都是触发PendSv中断,进行上下文切换

(3)任务切换做些什么?
       答:(1)任务优先级判定,找出最高优先级
              (2)有高优先级继续,进行切换;否则不进行切换

(4)任务切换需要用到的资源?
     答: Systick     PendSv

以上是我个人的理解,也不知可正确,希望大家指点一下,讨论一下。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106718
QQ
发表于 2014-5-5 21:08:53 | 显示全部楼层
正确
回复

使用道具 举报

0

主题

12

回帖

0

积分

新手上路

积分
0
发表于 2014-5-22 21:59:44 | 显示全部楼层
我也是新手,有个问题需要请教一下,OSTimeDly不是需要依赖Systick的么?既然如此,“中断级切换,由于Systick或者其他中断引起的”这个怎么理解?
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-30 17:42 , Processed in 0.223235 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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