硬汉嵌入式论坛

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

[FreeRTOS] FreeRTOS中任务切换的问题

[复制链接]

6

主题

39

回帖

57

积分

初级会员

积分
57
发表于 7 天前 | 显示全部楼层 |阅读模式
在FreeRTOS中将SysTick 和 PendSV 都设置为最低优先级15,为什么不在SysTick中断里切换任务,而要在 PendSV中断里切换任务?

  我在网上查询相关问题和询问ai的结果都是:任务切换需要一定时间,如果在SysTick中断里面切换这时可能会被更高优先级的中断打断,而PendSV中断会等待其他其他更高优先级的中断执行完毕后再切换任务。可是SysTick 和 PendSV的优先级都是最低,在 PendSV切换任务的时候也可能会被更高优先级的中断打断啊。具体是为什么呢?如果在PendSV切换任务也会被打断的话那就和在SysTick中断内切换任务是一样的效果了。求解答。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118328
QQ
发表于 6 天前 | 显示全部楼层
任务切换分中断级任务切换和任务级任务切换。

仅仅systick里面做切换远远不够的,比如你串口中断后要切换任务,还有很多其它。

然后就是任务里面释放CPU权限,切换其它任务。等等情况还非常多。
回复

使用道具 举报

6

主题

39

回帖

57

积分

初级会员

积分
57
 楼主| 发表于 6 天前 | 显示全部楼层
eric2013 发表于 2025-9-20 11:17
任务切换分中断级任务切换和任务级任务切换。

仅仅systick里面做切换远远不够的,比如你串口中断后要切 ...

明白了,感谢
回复

使用道具 举报

0

主题

45

回帖

45

积分

新手上路

积分
45
发表于 6 天前 | 显示全部楼层

我还是不明白,能讲讲吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118328
QQ
发表于 5 天前 | 显示全部楼层
了无 发表于 2025-9-20 20:28
我还是不明白,能讲讲吗

那些地方不太清楚,可以一起交流下
回复

使用道具 举报

0

主题

45

回帖

45

积分

新手上路

积分
45
发表于 5 天前 | 显示全部楼层
eric2013 发表于 2025-9-21 12:34
那些地方不太清楚,可以一起交流下

哦。理解你2楼的意思了。systick里面,只能按时间片去切换任务,而pendsv是可以通过软件激发的,可以在其他中断退出的时候去激发,要是放在systick中的话,只能等到下一个系统滴答才能响应
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118328
QQ
发表于 4 天前 | 显示全部楼层
了无 发表于 2025-9-21 18:10
哦。理解你2楼的意思了。systick里面,只能按时间片去切换任务,而pendsv是可以通过软件激发的,可以在其 ...

对,是这样的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 15:20 , Processed in 0.041567 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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