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

是否可以不用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

查看全部评分

wolfgang2015 回答时间: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

查看全部评分

andeyqi 回答时间:2018-5-30 11:14:39
本帖最后由 andeyqi 于 2018-5-30 11:33 编辑

可以的,完全可以使用SysTick 来系统调度,pendsv会有自身的优势,ST增加pendsv就是给操作系统准备的。pendsv 能解决某中断源的频率和 SysTick 异常的频率比较接近时,会发生“共振”的问题。图片是从Cortex M3权威指南(中文).pdf 截取的关于这段的描述。
pendsv.PNG

评分

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

查看全部评分

xiaojie0513 回答时间:2018-5-30 15:50:25
andeyqi 发表于 2018-5-30 11:14
可以的,完全可以使用SysTick 来系统调度,pendsv会有自身的优势,ST增加pendsv就是给操作系统准备的。pend ...

使用还是用rtos推荐的比较好
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版