OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3237|回复: 9

自己编写的内存管理模块,感谢原子哥。

[复制链接]

22

主题

133

帖子

2

精华

高级会员

Rank: 4

积分
901
金钱
901
注册时间
2015-12-24
在线时间
197 小时
发表于 2017-2-17 15:16:27 | 显示全部楼层 |阅读模式
之前一直苦于在MDK5下STM32不能使用Malloc进行动态内存操作,很多程序写和移植起来不太方便,恰巧前阵子看到原子哥的解决办法,参照原子哥的实现思路和网上很多内存操作的实力参考,自己写了一组MMUAPI。
相较原子哥的代码,改进和优化如下。
1、重写了realloc方法,内存重分配时会检查后续空间,如果充足则在原地址上进行拓展而不用重新申请,接口名为mmu_realloc()。
2、重写和优化了memset和memcpy方法,接口名为mmu_memset()和mmu_memcpy(),参考《Cortex M3权威指南》中,关于数据转移指令都是以16位数据为单位进行操作,故在memset和memcpy方法中均使用了基于16位数据的指针进行移动,提升处理效率。
3、新增了和mmu_memcpy2()方法,此方法为和mmu_memcpy()方法的拓展与补足,此方法没有使用16位数据对其的方式,但针对在地址空间交叠的情况下可能产生数据污染的问题进行了处理,可以保证任意地之间的无污染复制。

附件中的MMU.zip为我基于Codeblocks写的一个测试例程,大家可以自行下载CodeBlocks软件然后打开压缩包中的工程查看,在测试工程中我还编写了一个显示内存图表的小函数,方便查看所有内存块的状态。另外,LOG可以输出到文件中,以免LOG过多,在控制台中先出的LOG被冲掉的尴尬。
另一个附件是我基于之前发布的FATFS 0.12b范例工程,使能LFN后,内存分配模式选择3(Heap mode)后,使用此MMU模块进行内存管理的例程,目前测试正常,供参考。

以上,如果发现什么问题或有啥建议,还请不吝赐教。

MMU.zip (11.93 KB, 下载次数: 355)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

102

帖子

0

精华

高级会员

Rank: 4

积分
900
金钱
900
注册时间
2013-8-28
在线时间
114 小时
发表于 2017-2-17 15:28:29 | 显示全部楼层
回复 支持 反对

使用道具 举报

19

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1105
注册时间
2015-10-27
在线时间
206 小时
发表于 2017-2-17 15:31:01 | 显示全部楼层
谢谢分享。。
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-2-17 17:12:19 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
发表于 2017-2-17 17:25:05 | 显示全部楼层
膜拜大神~!
亦余心之所善,
虽九死其犹未悔。
回复 支持 反对

使用道具 举报

70

主题

6708

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12774
金钱
12774
注册时间
2012-11-26
在线时间
3733 小时
发表于 2017-2-17 18:53:55 | 显示全部楼层
谢谢  
回复 支持 反对

使用道具 举报

3

主题

177

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1603
金钱
1603
注册时间
2016-1-28
在线时间
265 小时
发表于 2017-2-17 19:24:35 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

29

主题

486

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3083
金钱
3083
注册时间
2014-7-19
在线时间
413 小时
发表于 2017-2-17 19:25:22 | 显示全部楼层
厉害!
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-10-12
在线时间
13 小时
发表于 2017-2-17 23:25:00 | 显示全部楼层
膜拜下!
回复 支持 反对

使用道具 举报

6

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
885
金钱
885
注册时间
2016-6-15
在线时间
362 小时
发表于 2017-7-24 16:08:34 | 显示全部楼层

谢谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-12-23 07:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表