看了[野火®]《uCOS-III内核实现与应用开发实战指南—基于STM32》对消息队列的讲解,结果结合源代码越看越糊涂,连续看了两天结合源码,发现这本书上对消息队列的图解画错了
错误原图解:
正确图解
结合OS_MsgQPut()函数源码:
说明:上面p_msg为要加入的消息,可以看出消息队列加入消息向后增长,并且链表的p_msg->NextPtr = (OS_MSG *)0;
消息池
消息池是一个预先限定消息数量的单向链表,每用一个消息:NextPTR指针就后移一位,并把消息给消息队列。
看了[野火®]《uCOS-III内核实现与应用开发实战指南—基于STM32》对消息队列的讲解,结果结合源代码越看越糊涂,连续看了两天结合源码,发现这本书上对消息队列的图解画错了
错误原图解:
正确图解
结合OS_MsgQPut()函数源码:
说明:上面p_msg为要加入的消息,可以看出消息队列加入消息向后增长,并且链表的p_msg->NextPtr = (OS_MSG *)0;
消息池是一个预先限定消息数量的单向链表,每用一个消息:NextPTR指针就后移一位,并把消息给消息队列。