6038|0

119

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【EasyARM-RT1052测评】+ SDRAM内存管理 [复制链接]

    因为我用的是SDRAM_Debug的工程,所以系统启动的时候调用的是工程目录下的evkbimxrt1050_sdram_init.ini初始化,所以你之后的应用程序就可以直接以地址的方式读写SDRAM,flexspi_nor工程类似。

修改工程目录下的MIMXRT1052xxxxx_sdram.scf文件,缩减出1M的SDRAM内存



可以看到32MB的SDRAM内存是不连续的,中间那段0x81D00000~0x81E00000用于我自己的内存管理,内存管理的配置表也放在这个位置,所以内存池最大其实没有1MB,需要减去配置表数组大小。


内存管理分配的内存块大小是64Byte,所以每申请一次就是64字节




初始化内存池,将数据清零


内存分配函数的实现,是从头开始查找配置,找到一块连续的内存块


内存释放函数的实现



测试内存管理,初始化内存池,申请512字节,占用了8个内存块,相应的数据被写入



再申请256字节,占用4个内存块,相应的数据紧接着之前的地址被写入



释放第一次申请的内存,可以看到配置表的数据已被清零,可用于下次申请,但内存的数据没做处理,所以没变(应该是清零比较合适)



第三次申请128字节的内存,可以看到配置表更新了,内存地址也写入了相应数据,说明内存管理函数都正确



附上工程文件 hello_eeworld.rar (135.34 KB, 下载次数: 32) 放在SDK_2.4.2_MIMXRT1052xxxxB\boards\EasyARM-RT1052-V1_0\demo_apps目录下解压即可,keil版本是V5.26.2.0

此内容由EEWORLD论坛网友ID.LODA原创,如需转载或用于商业用途需征得作者同意并注明出处



此帖出自NXP MCU论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表