2019-07-20 22:33发布
FreeRTOS 发表于 2016-4-30 15:42 freertos的heap_4的内存管理方案有碎片回收功能,不需要担心碎片产生的问题。还有你所说的任务间传递消息, ...
xsx127 发表于 2016-4-30 16:21 不使用全局变量,不利于模块化 而且我发送的消息不是一条啊,根据程序运行状况发送数目和内容都不同,现 ...
FreeRTOS 发表于 2016-4-30 16:40 既然任务间只是传递一个指针,那么用一个长度为4的队列不就好了,至于队列深度是多少也不是大问题了,毕 ...
最多设置5个标签!
不使用全局变量,不利于模块化
而且我发送的消息不是一条啊,根据程序运行状况发送数目和内容都不同,现在是把消息内容用const写在flash上,使用队列发送对应消息的序号,这样不用占什么内存,也不共享内存这么危险
我现在用的是原子的动态内存,不太会用freertos内部的内存管理,可以指点下
既然任务间只是传递一个指针,那么用一个长度为4的队列不就好了,至于队列深度是多少也不是大问题了,毕竟队列长度只有4,就算深度是100,那么也就耗费400字节的队列单元。
freertos的内存管理方案我只研究过heap_2和heap_4,指点就不敢了,至于内存管理的使用都大同小异,需要用到时申请内存,使用完后释放内存。heap_2采用的是最适合空闲块的机制,但不具备碎片回收功能,实际项目测试过稳定性一般,尤其是多个任务申请的内存大小不一样时尤其容易出现碎片,这是heap_2的一个致命性缺陷,《freertos中文使用教程》里面有对heap_2的安全使用作详细说明,有兴趣可以看看。至于heap_4,具有内存碎片回收功能,但不具备heap_2的最适合内存块分配功能,目前公司的项目都采用这套方案,稳定性十分强,建议使用这套方案。至于heap_5听说跟heap_4是一样的,只不过是内外部定义内存空间的区别罢了
400字节的内存啊,这还不多啊,
heap_4是你推荐的?有空我也转到4
未完成的工程,这一个地方用400字节真是伤不起的
一周热门 更多>