想法: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内存分配方式。详细实现在其代码中讲述的很清楚。 要不,你试试?:) |
http://www.baidu.com/link?url=Pb ... c4a00000004580d8366
感谢关注。