FreeRTOS队列用法详解
FreeRTOS 的队列用法还挺经典的,尤其是xQueueCreate(),用过的都说好。你只要搞明白两个参数:uxQueueLength表示你队列想装多少条消息,uxItemSize是每条消息多大(字节)。嗯,简单直接,不绕弯子。
创建成功会返回一个xQueueHandle,这个你得留着后面操作队列要用它。要是返回了NULL,那就内存不够了,堆吃紧——这个事儿第五章里有详细讲,感兴趣可以翻翻。
你平常写FreeRTOS任务通信,或者 STM32 那类 MCU 项目,这个xQueueCreate()少不了。不管你要传结构体还是指针,只要算准uxItemSize就行。像下面这样用:
xQueueHandle myQueue = xQueueCreate(10, sizeof(int));
另外,内存相关的东西,比如堆管理、溢出也可以顺带看看,像JVM 堆外内存调优这种文章,虽然领域不同,但思路还挺通的。
如果你是做底层开发的,或者要写FreeRTOS上的通信逻辑,强烈建议把xQueueCreate()搞清楚,用起来真方便。
文件大小:2.89MB
评论区