你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

是否可以不用pendSV中断做任务切换?

[复制链接]
lvpeng-1619958 提问时间:2018-4-27 17:32 /
freeRTOS的任务切换我的理解是:通过SysTick中断去触发pendSV中断去做任务切换,因为pendSV中断优先级最低,所以任务切换只会发生在没有中断的时候产生。那是不是也可以不用pendSV做任务切换,只要用systick中断去随便触发一个优先级最低的中断也可以做任务切换?
收藏 评论10 发布时间:2018-4-27 17:32

举报

10个回答
Serval 回答时间:2018-6-2 12:57:57
理论上是可以的。可以选用一个普通的IRQ,将其配置成最低的中断优先级,通过NVIC_SetPendingIRQ()触发。
同理,SysTick也可以用一个HW Timer去实现。
但这两个中断完成的事情是如此基本和必须,所以就设计成专用的系统异常了。好处是可以提高系统的可移植性。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

anobodykey 回答时间:2018-4-28 09:58:37
这是个好问题,可以探讨一下,坐等OS大神来答疑解惑,个人愚见是可行的,

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

lvpeng-1619958 回答时间:2018-5-2 09:58:50
有没有大佬解答一下这个问题啊?
lvpeng-1619958 回答时间:2018-5-2 10:00:04
是否可以直接用system tick中断去软件触发一个最低优先级的中断去做任务切换呢?
xmshao 回答时间:2018-5-4 17:47:33
我认为 做任务切换并没规定一定用谁,只是在OS里,正如你提到的用它比较合适而已。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wolfgang 回答时间:2018-5-4 18:40:35
万一有其他应用使用了pendSV ,不是就容易让OS被劫持?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

xiaojie0513 回答时间:2018-5-30 10:23:14
我觉得freertos用pendsv做任务切换也是有一定理由的,假设你用其他中断做任务切换,在同一个时间产生中断,那比他优先级低的任务岂不是永远无法执行了?

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

andey 回答时间:2018-5-30 11:14:39
提示: 作者被禁止或删除 内容自动屏蔽
xiaojie0513 回答时间:2018-5-30 15:50:25
andeyqi 发表于 2018-5-30 11:14
可以的,完全可以使用SysTick 来系统调度,pendsv会有自身的优势,ST增加pendsv就是给操作系统准备的。pend ...

使用还是用rtos推荐的比较好
lanmanck 回答时间:2020-2-14 21:54:50
我去,在OS出现前就是随便一个timer来切换,后来ARM那帮人学乖了,看到OS大行其道,所以后来设计CPU时专门搞了定时器和中断用来做OS切换,听好了,人家是专门设计的这个硬件模块来做os切换的,你非要搞成其他timer,不是脱裤子放屁吗?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版