ly830102624 发表于 2015-1-16 10:12:51

(求助)MQX的线程锁在哪里?

各位好

如题,想知道MQX有没有线程锁?
如果有,在哪里?如何使用?

请指点一下。先谢谢各位

ly830102624 发表于 2015-1-16 11:02:19

自己顶一下,希望大神能看到。

qs6361036 发表于 2015-1-17 00:34:55

MQX是基于任务调度的吧 ? 没听说 线程锁 , 听说过信号量 !

ly830102624 发表于 2015-1-19 09:17:02

qs6361036 发表于 2015-1-17 00:34
MQX是基于任务调度的吧 ? 没听说 线程锁 , 听说过信号量 !

恩恩,是我搞晕糊了。
MQX中的事件满足我的需要。
谢谢你的回复。

FSL_TICS_DANIEL 发表于 2015-1-27 11:08:17

楼主参考下MQX user guide吧, MQX事件可以分成event 和 light evet, light event 内存需求较少

ly830102624 发表于 2015-1-27 16:12:07

FSL_TICS_DANIEL 发表于 2015-1-27 11:08
楼主参考下MQX user guide吧, MQX事件可以分成event 和 light evet, light event 内存需求较少 ...

好的,谢谢回复

javabean 发表于 2015-1-27 17:20:22

你可以通过如下一种或者多种机制实现任务之间的同步,这些机制将会在后续章节中介绍:
事件——任务能够等待一组事件位被置位。任务可以设置或者清除这组事件位;
轻量级事件——事件的简化实现;
信号量——任务等待信号量从非 0 逐步增长,其它任务可以增长信号量。MQX 信号量通过优
先级继承防止优先级倒置。关于优先级倒置的更多讨论,参见 3.7.3.2 节。
轻量级信号量——简单计数信号量
z 互斥——任务可以使用互斥保证某一时刻仅有一个任务访问共享的数据。为了访问共享数据,
任务可对互斥量加锁,如果该互斥量已经被加锁则等待。当任务完成对共享数据的访问,则
解锁该互斥量。互斥通过优先级继承和优先级保护来防止优先级倒置。详细内容参见 3.7.3
节。
z 消息传递——MQX 允许任务之间传递数据。当一个任务在消息中填充了数据并发送到一个特
别的消息队列。其它任务可以等待该消息队列的消息到达,也即接收消息。
z 任务队列——允许应用程序挂起并恢复任务。

javabean 发表于 2015-1-27 17:20:44

MQX 提供了轻量级信号量(LWSems)、信号量和互斥功能。
你可以使用两种信号量实现任务同步与互斥操作。任务等待信号量,如果信号量为 0,则 MQX
阻塞该任务;否则,MQX 降低信号量,并给该任务一信号量,该任务继续运行。如果带有该信号
量的任务结束运行时,则它会传递信号量;任务保持就绪状态。如果任务正在等待信号量,MQX
将该任务置入就绪队列;否则,MQX 增加信号量。
你可以使用互斥实现互斥操作。互斥有时也被称为二进制信号量,因为它的计数仅能是 0 或
1。

javabean 发表于 2015-1-27 17:21:35

推荐参考Freescale MQX实时操作系统用户手册哦

ly830102624 发表于 2015-1-28 09:45:02

javabean 发表于 2015-1-27 17:21
推荐参考Freescale MQX实时操作系统用户手册哦

好的。谢谢
页: [1]
查看完整版本: (求助)MQX的线程锁在哪里?