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