STM32中测试freeRTOS内存碎片的生成原理与解决方案
想法:freeRTOS中有4种(最新版可能有5-6)种内存分配方式了,可能大家用的最多的是heap4.c, heap2.c大家都说可能产生内存碎片。那么到底测试出来 呢?步骤:1,初始化一块内存用于进行freeRTOS的pool,#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 10 * 1024 ) ),这里是10K
2,创建两个任务,task1负责malloc内存,然后给task2发消息,
3,task2收到消息,free task1分配的内存。
4,task1分配的内容从1开始递加,到255之后返回1.
测试:1,使用heap2.c的程序,在递加的数值不到100的时候,程序就挂掉了。
2,使用heap4.c的程序,可以顺利的运行下去
结论:其实就是验证一下heap2和heap4内存分配方式。详细实现在其代码中讲述的很清楚。
要不,你试试?:)
玩过Ucos,没玩过Free RTOS。 签到签到 还真没有试过。谢谢楼主提醒。 有难度,还是看书吧 转一个帖子FreeRTOS内存管理方案的分析与改进
http://www.baidu.com/link?url=PbkGWRB-aD0q-XOzM1PRl1KBkyQ_GsZOaoOjG7K_C2ZXo7x4XDDEMOdTiweReQ8WYKJRGu9HGc71pBYA0ICUNRHDA0VpNLjKSVqSZrjBXVS&wd=&eqid=9a73297b00046c4a00000004580d8366 anywill 发表于 2016-10-24 11:45
转一个帖子FreeRTOS内存管理方案的分析与改进
http://www.baidu.com/link?url=PbkGWRB-aD0q-XOzM1PRl1KBky ...
感谢关注。 :):):):):):):):):)
页:
[1]