对于原子的“内存管理”的思考

2019-07-20 05:44发布

原子的开发板中,有一章节是“内存管理”,主要是对MCU内存和扩展内存进行管理,其中在对MCU自带SRAM管理时,系统首先申请一个大数组:

    __align(4) u8 mem1base[MEM1_MAX_SIZE];

   当需要申请内存时,采用函数:memp_memory=mymalloc(SRAMIN,mempsize);        申请内存
   当释放内存时,采用函数:myfree(SRAMIN,memp_memory);


   也就是说在使用MCU自带SRAM内存时,需要mymalloc和myfree函数成对使用,但是如果使用数组直接申请就可以了:__align(4) u8 memp_memory[mempsize];使用完毕系统自动释放。


   疑问:在使用MCU自带SRAM内存时,没有必要使用原子的“内存管理”啊?或者说在使用MCU自带SRAM内存时,使用“内存管理”有什么优点呢?

         我觉得采用原子的“内存管理”,缺点是占用内存啊?


         但是在使用扩展SRAM时,我认为还是有优点的!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
xql923
1楼-- · 2019-07-21 02:26
 精彩回答 2  元偷偷看……
wlq390934605
2楼-- · 2019-07-21 05:14
 精彩回答 2  元偷偷看……
jey0807
3楼-- · 2019-07-21 08:48
本帖最后由 jey0807 于 2018-4-13 00:01 编辑

在子函数里面使用大数组也即局部变量,那是在存放在堆栈里面的,而内存管理是使用的全局变量。
wyudcl
4楼-- · 2019-07-21 12:30
 精彩回答 2  元偷偷看……
HCHDaLeiGe
5楼-- · 2019-07-21 16:20
C库提供的 malloc 和 free 占用 cycles 数很大的,自己做内存管理是很有必要的,如果你觉得占用内存大,可以根据自己的需要量身定制内存池大小

一周热门 更多>