完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
Efficient_memory_allocation
高效内存分配机制 由于需要在单片机上使用malloc,但自带的malloc机制速度太慢且需要还需要配置堆,当某些代码需要使用这个功能时候就需要对应的单片机打开,这样不利于模块与平台的解耦。 不知道为什么系统自带的malloc耗时居然和申请的内存大小成正比,这个在小数据申请的时候倒没什么,但是当要高速申请大内存时候就懵逼了,而且在pc上感觉不出来,但是在MCU这种单片机上使用的时候就感觉出来了,故此我自己写了一个开源的高效的内存分配模块。 这个模块的用法和malloc与free一样,但不同的是它可以指定内存存放的地址,比如外部ram。然后在大内存分配方面不随内存申请大小变化,同时在使用的时候自动整理内存碎片。 内存碎片我并没有采用搬移的方式,那样子会额外消耗cpu的运算资源,而是在每次释放内存的时候自动将临近的零碎内存进行吸收,就像磁铁一样逐步整理。 但,内存碎片整理是需要花费时间的,而很多时候malloc出来的内存使用了一下就free掉了,因此为了减少时间,只有当内存满了后才使用碎片内存,其他时候都是直接申请新内存。 若有新的想法和建议欢迎指教,我们一起来制作一个高效的内存分配器。 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
597浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:40 , Processed in 1.290461 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号