seo网站关键词优化排名,网站图片特效代码,潍坊做网站,石家庄百度快速排名优化使用计数型信号量设计#xff1a;生产者和消费者模型
总结今天学习的API函数#xff0c;写出函数参数和返回值的意思#xff0c;并且说明函数功能 创建队列
osMessageQueueId_t osMessageQueueNew (uint32_t msg_count, uint32_t msg_si…使用计数型信号量设计生产者和消费者模型
总结今天学习的API函数写出函数参数和返回值的意思并且说明函数功能 创建队列
osMessageQueueId_t osMessageQueueNew (uint32_t msg_count, uint32_t msg_size,
const osMessageQueueAttr_t *attr); uint32_t msg_count队列中消息的最大数量
uint32_t msg_size消息的大小
const osMessageQueueAttr_t *attr队列的属性
返回消息队列的ID 队列写入函数
osStatus_t osMessageQueuePut (osMessageQueueId_t mq_id, const void *msg_ptr,
uint8_t msg_prio, uint32_t timeout);
osMessageQueueId_t消息队列的ID const void *msg_ptr存储发送消息的指针
uint8_t msg_prio消息的优先级
uint32_t timeout超时时间 返回值
osOK : 如果消息成功发送到队列。
osErrorTimeoutResource : 如果在超时时间内未能将消息放入队列。
osErrorResource : 如果由于其他原因未能将消息放入队列。 读队列函数
osStatus_t osMessageQueueGet (osMessageQueueId_t mq_id, void *msg_ptr, uint8_t
*msg_prio, uint32_t timeout);
mq_id : 目标消息队列的标识符。
msg_ptr : 指向接收消息的缓冲区的指针。
msg_prio : 指向用于存储接收到的消息的优先级的指针可以为NULL。
timeout : 在等待队列中可用消息时的超时时间以毫秒为单位。如果设置为0则表示无限等待。 创建信号量
osSemaphoreId_t osSemaphoreNew (uint32_t max_count, uint32_t initial_count,
const osSemaphoreAttr_t *attr);
max_count 信号量的最大计数。它表示同一时间内可以有多少个任务能够同时获取该信号
量。
initial_count 信号量的初始计数。表示在创建信号量时初始的可用资源数量。
返回值
该函数返回一个类型为 osSemaphoreId_t 的信号量句柄该句柄用于后续的信号量操作。
获取信号量
osStatus_t osSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout);
sem_id 信号量的句柄通过 osSemaphoreNew 返回。
timeout 等待信号量的超时时间可以是一个时间值或特定的宏值如 osWaitForever
表示一直等待 osNoWait 表示不等待立即返回。
返回值
如果成功获取信号量则返回 osOK 。
osSemaphoreId_t osSemaphoreNew (uint32_t max_count, uint32_t initial_count,
const osSemaphoreAttr_t *attr);
osStatus_t osSemaphoreAcquire (osSemaphoreId_t semaphore_id, uint32_t timeout);如果等待超时则返回 osErrorTimeout 。
如果因为其他原因无法获取信号量则返回相应的错误码。
释放信号量
osStatus_t osSemaphoreRelease (osSemaphoreId_t semaphore_id);
参数
sem_id 信号量的句柄通过 osSemaphoreNew 返回。
返回值
如果成功释放信号量则返回 osOK 。
如果释放失败则返回相应的错误码。 创建互斥量
osMutexId_t osMutexNew(const osMutexAttr_t *attr);
返回值
osMutexId_t 互斥量的标识符用于后续对互斥量的操作。
参数
attr 互斥量的属性包括优先级、名称等。可以为 NULL 表示使用默认属性。
获取互斥量
osStatus_t osMutexAcquire(osMutexId_t mutex_id, uint32_t timeout);
返回值
osStatus_t 表示互斥量获取的状态可能的取值包括 osOK 、 osErrorResource 资源不可
用、 osErrorTimeout 超时等。
参数
mutex_id 要获取的互斥量的标识符。
timeout 等待互斥量的最大时间通常以毫秒为单位。可以为 osWaitForever 表示无限等待
也可以是一个具体的时间值。
释放互斥量
osStatus_t osMutexRelease(osMutexId_t mutex_id);
返回值
osStatus_t 表示互斥量释放的状态通常为 osOK 。
参数
mutex_id 要释放的互斥量的标识符。
创建事件组函数
返回值 返回一个事件标志组的标识符ID用于后续对事件标志组的操作。
参数
attr 事件标志组的属性可以为 NULL 或者包含有关事件标志组的一些配置信息的指针。
如果为 NULL 则使用默认属性。
设置事件组
uint32_t osEventFlagsSet(osEventFlagsId_t ef_id, uint32_t flags);
返回值 返回设置之前的事件标志状态。
参数
ef_id 事件标志组的标识符是由 osEventFlagsNew 返回的。
flags 要设置的事件标志位可以使用按位或操作符 | 设置多个标志位。
等待事件组
uint32_t osEventFlagsWait(osEventFlagsId_t ef_id, uint32_t flags, uint32_t
options, uint32_t timeout);
返回值 返回实际发生的事件标志位或者在超时时返回错误代码。
参数
ef_id 事件标志组的标识符是由 osEventFlagsNew 返回的。
flags 要等待的事件标志位可以使用按位或操作符 | 等待多个标志位。
options 等待标志的选项例如等待所有标志或者只等待任意一个标志。具体取值取决于
RTOS的实现。
timeout 等待的超时时间单位是毫秒。如果设置为 osWaitForever 则表示一直等
待如果设置为0则表示不等待。