搜索
bottom↓
回复: 8

"FREERTOS,临界区能调用互斥量函数吗?"

[复制链接]

出0入0汤圆

发表于 2020-1-10 11:03:13 | 显示全部楼层 |阅读模式
请教各位大佬,关于FREERTOS
1、临界区能调用互斥量的函数吗?
2、临界嵌套支持吗?需要注意什么?
3、临界区能调用队列函数吗?

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出190入0汤圆

发表于 2020-1-10 11:33:35 | 显示全部楼层
你看看freeRTOS这些函数实现就有谱了,再说,信号量、互斥量不就是为了临界区而生的吗?

出0入0汤圆

发表于 2020-1-11 12:44:54 | 显示全部楼层
knight_sh 发表于 2020-1-10 11:33
你看看freeRTOS这些函数实现就有谱了,再说,信号量、互斥量不就是为了临界区而生的吗? ...

- -.  你确定freertos临界区可以用信号量互斥量?

出0入8汤圆

发表于 2020-1-11 13:52:51 来自手机 | 显示全部楼层
二进制信号量可以用,互斥信号量涉及到信号量翻转和任务切换,不能在中断里面用

出0入8汤圆

发表于 2020-1-11 13:53:27 来自手机 | 显示全部楼层
是涉及到任务优先级翻转

出0入0汤圆

 楼主| 发表于 2020-1-11 15:27:42 | 显示全部楼层
liwei_jlu 发表于 2020-1-11 13:52
二进制信号量可以用,互斥信号量涉及到信号量翻转和任务切换,不能在中断里面用 ...

不是中断的的临界区,是任务中进入临界区,然后调用的函数也有临界区,FREERTOS  configASSERT( ( portNVIC_INT_CTRL_REG & portVECTACTIVE_MASK ) == 0 ); 这个断言就卡住了,难度不难临界区嵌套??好奇怪,也有可能我代码有问题

出0入0汤圆

发表于 2020-1-13 09:50:03 | 显示全部楼层
FreeROTS 手册里已经写的很清楚了吧。

另外,临界区里,只能使用发送操作的 IPC,不能使用接收 IPC。

FREERTOS  configASSERT( ( portNVIC_INT_CTRL_REG & portVECTACTIVE_MASK ) == 0 ); 这个断言,应该是你代码有问题,检查是否使用了未初始化的对象,是否存在内存写穿的情况。

出190入0汤圆

发表于 2020-1-13 10:46:52 | 显示全部楼层
QQ178960471 发表于 2020-1-11 12:44
- -.  你确定freertos临界区可以用信号量互斥量?

中断中freeRTOS有xxxfromISR相关API啊,为什么不可以post一个信号量?
在非中断的共有资源不但可以使用信号量,也还可以使用互斥量对资源的互斥访问;
愿闻层主高见

出190入0汤圆

发表于 2020-1-13 10:49:51 | 显示全部楼层
lihaimeng@163 发表于 2020-1-11 15:27
不是中断的的临界区,是任务中进入临界区,然后调用的函数也有临界区,FREERTOS  configASSERT( ( portNV ...

configUSE_PREEMPTION是否配置为1?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 06:31

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

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