FreeRTOS队列用法详解

FreeRTOS 的队列用法还挺经典的,尤其是xQueueCreate(),用过的都说好。你只要搞明白两个参数:uxQueueLength表示你队列想装多少条消息,uxItemSize是每条消息多大(字节)。嗯,简单直接,不绕弯子。

创建成功会返回一个xQueueHandle,这个你得留着后面操作队列要用它。要是返回了NULL,那就内存不够了,堆吃紧——这个事儿第五章里有详细讲,感兴趣可以翻翻。

你平常写FreeRTOS任务通信,或者 STM32 那类 MCU 项目,这个xQueueCreate()少不了。不管你要传结构体还是指针,只要算准uxItemSize就行。像下面这样用:

xQueueHandle myQueue = xQueueCreate(10, sizeof(int));

另外,内存相关的东西,比如堆管理、溢出也可以顺带看看,像JVM 堆外内存调优这种文章,虽然领域不同,但思路还挺通的。

如果你是做底层开发的,或者要写FreeRTOS上的通信逻辑,强烈建议把xQueueCreate()搞清楚,用起来真方便。

pdf 文件大小:2.89MB