初步了解FreeRTOS队列发送的内存变化

开门见山,直接上图。

先定义类型Data_t,u8和枚举,32位机器内存对齐之后,该类型大小为两个整型,8个字节。

 先创建一个队列,长度5,类型大小Data_t

待发送消息结构内容为

 

  Demo中向队列发送三个消息

 先执行发送前两条可以看到队列句柄的内容如下

从结构内容可以分析到

1. uxMessagesWaiting 为2,对应之前发送的两次队列消息

2.uxLength为5,对应创建队列时设定的队列长度

3.uxItemSize为8,则是创建队列时的类型Data_t大小

4.pcHead:0x007112c4,pcTail:0x007112ec 相差0x28,

解析:队列容量为5,类型大小为8,而5*8=40 =0x28;

5.pcWrite:0x007112d4, 与pcHead:0x007112c4 相差0x10,

解析:已发送了2次消息,每次大小为8,所以偏移为 2*8 =16 =0x10

其余xTasksWaitingToSend,xTasksWaitingToReceive为因队列阻塞而等待的任务列表,这个先不演示。

用内存窗口打开pcHead:0x007112c4,可以看到

 

 正好对应待发送的数据

{0x1A, 3},

{0x1B, 4}.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值