硬汉嵌入式论坛

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

[FreeRTOS] 互斥型信号量的阻塞时间怎样设置

[复制链接]

2

主题

2

回帖

28

积分

新手上路

积分
28
发表于 2018-7-6 16:58:55 | 显示全部楼层 |阅读模式
互斥型信号量的阻塞时间怎样设置呢,可能我还没有完全理解这个信号量。我的测试程序中设置阻塞时间为20ms,因为有好几个任务都会调用打印接口,导致打印信息有点乱而且有断言error,提示task.c中有故障。我把阻塞时间设为portMAX_DELAY,这应该是死等吧,打印信息就不会出现交叉打印以及error问题了,那互斥性信号量的阻塞时间是不是就应该设为portMAX_DELAY呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107112
QQ
发表于 2018-7-6 17:27:22 | 显示全部楼层
互斥信号量就是死等,如果你不设置死等,在你设置的时间段内返回后,这个资源依然是不可用的,你用了就会出问题。
所以你设置的是一段时间,返回后要重新继续等。
回复

使用道具 举报

2

主题

2

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2018-7-6 17:51:53 | 显示全部楼层
嗯,明白了,谢谢!实践出真理,印象也更深刻。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2018-7-17 12:29:40 | 显示全部楼层
这个应该是设置为最大时间吧,用于保护的位置一定要精简短小,完成保护后即使释放就可以了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 12:32 , Processed in 0.163184 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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