B_QuRT_User_Guide(16)

10 All-signals

线程根据一个或多个内部事件的发生,使用所有信号来同步其执行。所有信号被存储在共享对象中,支持以下操作。
如果一个或多个信号被设置在All-signal对象中,而一个线程正在All-signal对象上等待该特定信号集的设置,那么该线程就被唤醒了。如果被唤醒的线程比当前线程有更高的优先级,那么就会发生上下文切换。
与任意信号不同,all-signals在再次等待信号之前不需要显式地清除all-signal对象中的任何设定信号–清除工作由等待操作自动完成。
一个all-signal对象包含32个信号,这些信号在一个32位的值中被表示为0-31位。位值0表示信号被设置,1表示信号被清除(这与任意信号的定义正好相反)。
注意:在任何时候,最多只有一个线程可以在一个全信号对象上等待。
因为信号的清除是由等待操作完成的,所以没有为全信号定义清除操作。
所有信号服务可以通过以下QuRT函数访问。- qurt_allsignal_destroy()

  • qurt_allsignal_get()
  • qurt_allsignal_init()
  • qurt_allsignal_set() - qurt_allsignal_wait() - 数据类型

10.1 qurt_allsignal_destroy()

10.1.1 Function Documentation

10.1.1.1 void qurt_allsignal_destroy ( qurt_allsignal_t ∗ signal )

销毁指定的所有信号对象。
注意:当所有的信号对象不再被使用时,必须将其销毁。如果不这样做会导致QuRT内核的资源泄漏。
所有信号对象不能在仍在使用时被销毁。如果发生这种情况,QuRT的行为将无法定义。
相关数据类型
qurt_allsignal_t
参数
在这里插入图片描述
返回值
None.
依赖关系
None.

10.2 qurt_allsignal_get()

10.2.1 Function Documentation

10.2.1.1 sstatic unsigned int qurt_allsignal_get ( qurt_allsignal_t ∗ signal )

从All-signal对象中获取信号值。
返回指定的all-signal对象的当前信号值。
相关数据类型
qurt_allsignal_t
参数

在这里插入图片描述
返回值
None.
依赖关系
None.

10.3 qurt_allsignal_init()

10.3.1 Function Documentation

10.3.1.1 void qurt_allsignal_init ( qurt_allsignal_t ∗ signal )

初始化一个所有信号对象。
所有信号对象最初被清空。
相关数据类型
qurt_allsignal_t
参数
在这里插入图片描述
返回值
None.
依赖关系
None.

10.4 qurt_allsignal_set()

10.4.1 Function Documentation

10.4.1.1 void qurt_allsignal_set ( qurt_allsignal_t ∗ signal, unsigned int mask )

在指定的全信号对象中设置信号。
信号在32位掩码值中表示为第0到31位。掩码位值为1表示必须设置信号,0表示不设置信号。
相关数据类型
qurt_allsignal_t
参数
在这里插入图片描述
返回值
None.
依赖关系
None.

10.5 qurt_allsignal_wait()

10.5.1 Function Documentation

10.5.1.1 void qurt_allsignal_wait ( qurt_allsignal_t ∗ signal, unsigned int mask )

在所有信号对象上等待。
暂停当前线程,直到所有指定的信号被设置。信号在32位掩码值中表示为第0到31位。掩码位值为1表示必须等待一个信号,0表示不需要等待。
如果一个信号在一个全信号对象中被设置,而一个线程正在全信号对象上等待该信号,那么该线程就会被唤醒。如果被唤醒的线程比当前线程有更高的优先级,那么就会发生上下文切换。
与任意信号不同,all-signals在再次等待信号之前不需要显式地清除all-signal对象中的任何设定信号–清除工作由等待操作自动完成。
注意:在任何时候,最多只有一个线程可以在一个all-signal对象上等待。因为信号的清除是由wait操作完成的,所以没有为all-signals定义清除操作。
相关数据类型
qurt_allsignal_t
参数
在这里插入图片描述
返回值
None.
依赖关系
None.

10.6 Data Types

本节描述了全信号服务的数据类型。

  • 所有信号在QuRT中被表示为qurt_allsignal_t类型的对象。

10.6.1 Data Structure Documentation

10.6.1.1 union qurt_allsignal_t

qurt_signal_t取代了qurt_allsignal_t。添加这个类型定义是为了向后兼容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值