帮你看了下源码,确实是这样的,原因是RTX5搞了一个骚操作,支持了一个每个消息都可以设置优先级的功能,要支持这个功能,每个消息都要支持一个链表。
所以才这么大。
[C] 纯文本查看 复制代码 block_size = ((msg_size + 3U) & ~3UL) + sizeof(os_message_t);
size = msg_count * block_size;
/// Message Control Block
typedef struct osRtxMessage_s {
uint8_t id; ///< Object Identifier
uint8_t reserved_state; ///< Object State (not used)
uint8_t flags; ///< Object Flags
uint8_t priority; ///< Message Priority
struct osRtxMessage_s *prev; ///< Pointer to previous Message
struct osRtxMessage_s *next; ///< Pointer to next Message
} osRtxMessage_t;
|