完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 gjianw217 于 2015-10-25 15:50 编辑 在本帖子中,主要分析一下庆科MiCO RTOS的消息队列,具体包括: OS消息队列 MiCO消息队列关键API MiCO消息队列示例 MiCO消息队列测试结果 一、OS消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。 也就是说,消息队列是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向其中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。 二、MiCO消息队列关键API在MiCO中,对于消息队列的定义,位于SDK_MiCOKit_v2.3.0.2includemico_rtos.h中,主要有以下函数: 其中,常用的有: (1)OSStatus mico_rtos_init_queue(mico_queue_t* queue, const char* name, uint32_t message_size, uint32_tnumber_of_messages ); 该函数为初始化一个消息队列,参数1为指向要初始化的消息队列的句柄指针;参数2为消息队列的名称,由用户定义;参数3为将要进入队列对象的最大字节数;参数4为队列的深度,即队列中对象的最大数量 (2)OSStatus mico_rtos_push_to_queue(mico_queue_t* queue, void* message, uint32_t timeout_ms ); 该函数为将一个数据对象推入消息队列,参数1为指向要初始化的消息队列的句柄的指针;参数2为推入队列的对象,对象大小在队列初始化mico_rtos_init_queue()中已指定;参数3为返回前等待的毫秒数 (3)OSStatus mico_rtos_pop_from_queue(mico_queue_t* queue, void* message, uint32_t timeout_ms ); 该函数为从消息队列中取出一个数据对象,参数1为指向要初始化的消息队列的句柄的指针;参数2为在mico_rtos_init_queue()中指定的“消息”,因此必须保证此缓存区足够大,否则将导致内存崩溃;参数3为返回前等待的毫秒数。 三、MiCO消息队列示例 该示例参数官方的测试demo,参考示例代码位于SDK_MiCOKit_v2.3.0.2DemosCOM.MXCHIP.BASICos,官网示例代码说明http://mico.io/wiki/doku.php?id=basic_os。该示例演示了一个MiCO系统通过消息队列实现两个线程之间的通讯。
四、MiCO消息队列测试结果 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 21:06 , Processed in 0.634448 second(s), Total 71, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号