搜索
bottom↓
回复: 12

FreeRTOS从中断返回到一个不同的任务中会有什么问题?

[复制链接]

出0入0汤圆

发表于 2020-3-25 09:52:26 | 显示全部楼层 |阅读模式
就是说中断来的时候是任务A,执行完中断后,返回的是任务B。

我觉得没有任何问题?因为每个任务都有自己的独立栈,切换至中断前要
压栈,切换后出栈一个不同的任务

然后再执行完任务B后压栈,再出栈最先的任务A,不应当有任何问题啊?

但是很多人都说这里要特别小心!

我觉得不需要小心啊?FreeRTOS都帮你处理好了?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出100入143汤圆

发表于 2020-3-25 10:17:38 | 显示全部楼层
要小心的是共享资源,关键代码段处理

出0入0汤圆

发表于 2020-3-25 10:18:14 | 显示全部楼层
中断压的栈和FreeRTOS压的栈不是一个栈吧。

出0入8汤圆

发表于 2020-3-25 10:23:34 | 显示全部楼层
不会有问题,
在中断退出时,能及时切到更高优先级的就绪任务,这是 RTOS 对得起 RT 二字的基本功能。

出0入0汤圆

发表于 2020-3-25 10:25:53 | 显示全部楼层
本帖最后由 dalige 于 2020-3-25 10:50 编辑

能有这样的理解就够了,要看下FromISR()的那些API,RTOS的注意点也就是那几样。

出0入25汤圆

发表于 2020-3-25 10:35:38 | 显示全部楼层
本帖最后由 XIVN1987 于 2020-3-25 10:38 编辑

RTOS里任务切换本来就是这么做的吧

想要切换任务的时候就触发PendSV中断,,在PendSV_Handler里让psp指向你想切换到的任务的栈,,然后返回就行了


不过 FreeRTOS 里只在 PendSV_Handler 里做这种任务切换,,在其他中断ISR中是不做这种任务切换的。。

出0入54汤圆

发表于 2020-3-25 11:23:55 | 显示全部楼层
FreeRTOS退出中断函数前,需要手动执行一下任务切换..

小心指的是要小心共享数据,需要保护共享数据

出0入0汤圆

发表于 2020-3-25 13:11:46 | 显示全部楼层
本帖最后由 myxiaonia 于 2020-3-25 13:13 编辑

rtx的话说完全有可能的,而且确实不需要担心这个问题

rtx可能在pendsv,svc和systick里切换任务

出0入0汤圆

发表于 2020-3-25 14:11:44 | 显示全部楼层
整个RTOS相当于我们平时写的裸机代码,中断可以把RTOS直接打断

我觉得应该是返回原来的任务再切换的,因为中断把原来的任务压栈了

出0入8汤圆

发表于 2020-3-25 14:32:38 | 显示全部楼层
本帖最后由 security 于 2020-3-25 14:34 编辑
flash3g 发表于 2020-3-25 14:11
整个RTOS相当于我们平时写的裸机代码,中断可以把RTOS直接打断

我觉得应该是返回原来的任务再切换的,因为 ...


对于抢占式内核,一旦高优先级任务就绪,就必须切过去。

这部分动作,是在中断处理那边就要完成的。
最终要实现,中断返回时,能直接切到最高优先级的就绪任务。

出0入0汤圆

发表于 2020-3-25 14:46:00 | 显示全部楼层
security 发表于 2020-3-25 14:32
对于抢占式内核,一旦高优先级任务就绪,就必须切过去。

这部分动作,是在中断处理那边就要完成的。

中断就切换过去,那原来任务的中断压栈什么时候弹出?

出30入54汤圆

发表于 2020-3-25 14:52:26 | 显示全部楼层
不会有问题

出0入8汤圆

发表于 2020-3-25 14:57:04 | 显示全部楼层
flash3g 发表于 2020-3-25 14:46
中断就切换过去,那原来任务的中断压栈什么时候弹出?


至于怎么实现,去看看源码,或许会知道答案。

我只负责纸上谈兵,扯理论原则:中断要负责处理就是了。
对于统一的中断入口,例如 ARM7、ARM9 之类的,这些都可以在统一的中断入口和出口,处理掉。
入口时,能知道是从哪里来的,出口时,把中断的资源开销,该回收处理就处理,最终再直接跳到新的任务,或者原路返回原来的任务。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 10:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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