如果创建失败,返回RT NULL。 静态分配内存:rt_mq_init 🛠️ 静态分配内存是指消息队列的内存需要提前分配好。你可以使用rt_mq_init函数来初始化一个已经分配好的消息队列。这个函数的原型如下:rt err_t rt_mq_init(rt mq_t mg, const char* name, void *msgpool, rt size_t msg_size, rt size_t ...
//rt_mq_init()静态创建mq结构体,rt_mq_create()动态创建mq结构体;demo里用的动态创建的; #ifdefRT_USING_MESSAGEQUEUE structrt_mq_message { structrt_mq_message*next; }; 1.2 rt_mq_create 消息队列初始化 分配rt_messagequeue结构体内存,初始化以及分配空闲链表消...
1rt_err_trt_mq_init(rt_mq_tmq,constchar*name,void*msgpool, 2rt_size_tmsg_size,rt_size_tpool_size,rt_uint8_tflag);3rt_mq_trt_mq_create(constchar*name,rt_size_tmsg_size,rt_size_tmax_msgs,rt_uint8_tflag) 如果使用 rt_mq_create 创建消息队列,消息队列池自动根据消息体大小 msg_size ...
另外一种 C 表达方式 rt_mq_t,表示的是消息队列的句柄,在 C 语言中的实现是消息队列控制块的指针。消息队列控制块结构的详细定义请见以下代码: structrt_messagequeue{structrt_ipc_objectparent;void*msg_pool;/* 指向存放消息的缓冲区的指针 */rt_uint16_tmsg_size;/* 每个消息的长度 */rt_uint16_tmax_...
rt_mutex_create rt_mutex_trytake rt_mutex_delete rt_event_create rt_event_delete rt_mb_create rt_mb_delete rt_mq_create rt_mq_delete 完成量 登录后复制rt_completion_wait 队列类 登录后复制rt_wqueue_wait rt_data_queue_push rt_data_queue_pop ...
rt_err_t rt_mq_init(rt_mq_t mq, const char* name, void *msgpool, rt_size_t msg_size, rt_size_t pool_size, rt_uint8_t flag); 函数的参数解释如下表: 参数描述 初始化消息队列函数返回RT_EOK。 创建或初始化完成消息队列后,所有消息块都挂在空闲消息链表上,消息队列为空。
rt_err_trt_mb_init(rt_mailbox_tmb,constchar*name,void*msgpool,rt_size_tsize,rt_uint8_tflag) 初始化邮箱时,该函数接口需要获得用户已经申请获得的邮箱对象控制块,缓冲区的指针,以及邮箱名称和邮箱容量(能够存储的邮件数)。下表描述了该函数的输入参数与返回值: ...
如果使用 `rt_mq_create` 创建消息队列,消息队列池自动根据消息体大小 `msg_size` 和消息队列最多容纳的消息数量 `max_msgs` 计算。 但如果使用 `rt_mq_init` 初始化消息队列,消息队列池的内存 `msgpool` 需要用户提供,这个时候,需要注意消息池内存大小 `pool_size`。根据下面的公式计算得出: ...
rt_err_t rt_mq_init(rt_mq_t mq, const char* name, void *msgpool, rt_size_t msg_size, rt_size_t pool_size, rt_uint8_t flag); 1. 2. 3. 函数的参数解释如下表: 初始化消息队列函数返回RT_EOK。 创建或初始化完成消息队列后,所有消息块都挂在空闲消息链表上,消息队列为空。
对于rt_thread_create()函数,在内核版本中参数stack_size是指线程内核栈大小;而在 RT-Thead Smart 的对应用户态接口中,此参数为线程用户态栈大小,线程的内核态部分由系统指定,用户接口无法设置。 rt_mb_init()和rt_mq_init() rt_err_trt_mb_init(rt_mailbox_tmb,constchar*name,void*msgpool,rt_size_tsi...