目前MQTT收到消息的代码如下:
可以看到 这里保存数据用的是malloc
FREERTOS是传递的数据 不是地址 所以这里玩了一个鬼把戏 这个数据就是一个指针 完成传递的!
看接收的那边就明白了
在这里做了free!!这样是可以的!!!成对!!!
一般也没有问题 情况如下:
下面的也可以
但是偶尔也有死机 如下:
感觉跑飞了 不是一对一对的了!也即是接收的这边真的太快了 那边还没有来得及处理free就来了新的!
怎么办?
1 不要malloc
uint8_t COMMONSTATIC[1024]@(0x10004800);
此时注意 处理的那个任务 务必不能有free 否则立即死机!