请选择 进入手机版 | 继续访问电脑版
查看: 3864|回复: 2

RT1052+内存管理的实现与测试

[复制链接]
  • TA的每日心情
    慵懒
    12 小时前
  • 签到天数: 1394 天

    [LV.10]以坛为家III

    48

    主题

    3452

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    7220
    最后登录
    2024-3-29
    发表于 2018-11-30 11:18:08 | 显示全部楼层 |阅读模式

    前面测试下基本的外设使用情况,都是基于KEIL的SDRAM_DEBUG例程,不得不吐槽下KEIL ARM Compiler V5编译器的编译速度,每次CPU百分百占用,卡机。V6编译器出来也很久了,不兼容之前的一些设置真的很蛋疼,不然可以快上好几个档次。其实IAR挺好用的,但是我的IAR 用了几天CMSISDAP就连不上,真是蛋疼,有没有道友指导下,每此弹出连不上设备是什么鬼问题。
    言归正传,今天学习下内存管理,
    因为我跑的都是SDRAM_DEBUG的版本,所以只要查看工程目录下MIMXRT1052xxxxx_sdram文件就可以看到全部的内存分配情况,其他版本查看对应的文件即可。这里我将m_data_size缩减了1MB用于之后的内存分配,所以看起来32MB的SDRAM内存分配是不连续的,0x80000000~0x81D00000, 0x81E00000~0x82000000

    TIM图片20181130103424.png

    中间那段0x81D00000~0x81E00000用于我自己的内存管理,内存管理的配置表也放在这个位置,所以内存池最大其实没有1MB,需要减去配置表。
    TIM图片20181130104223.png

    TIM图片20181130104738.png

    内存分配函数的实现,是从头开始查找配置,找到一块连续的内存
    TIM图片20181130105030.png

    释放函数的实现。
    TIM图片20181130105001.png

    测试结果如下,初始化之后配置表的数据都为0,所以是都没被占用
    TIM图片20181128172200.png

    申请512B内存写入1,可以看到配置表前八个数据是8, 因为每个内存块大小是64B,512B只需要8个内存块, 申请到的内存地址开始数据也都被写入
    TIM图片20181128172353.png

    再次申请256B内存写入,配置表数据和申请到的内存数据都更新了。
    TIM图片20181128172433.png

    释放第一次申请的内存,配置表清0,内存地址的数据因为我没有清零,所以还是之前写入的,但不影响
    TIM图片20181128172457.png

    重新申请128B内存,可以看到他是从头开始的,写入也成功了。
    TIM图片20181128172554.png

    最后释放掉,配置表都被清零了。
    TIM图片20181128172626.png

    内存管理也可以调用编译器的malloc和free函数,自己写的话如果以后遇到内存溢出越界等问题,就比较容易找到问题。所以还是比较实用的吧

    贴上源码
    bsp.rar (2.04 KB, 下载次数: 20)
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    16

    主题

    107

    帖子

    2

    中级会员

    Rank: 3Rank: 3

    积分
    365
    最后登录
    2022-12-14
    发表于 2018-11-30 14:17:41 | 显示全部楼层
    我的IAR也不能用CMSIS-DAP调试。。悲剧。。

    编译慢的额问题的根本原因已找到:参考:

    https://www.nxpic.org.cn/module/ ... read&tid=615639
    【飞凌RT1052】+ 终于找到Keil编译超慢的罪魁祸首+解决方案

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    12 小时前
  • 签到天数: 1394 天

    [LV.10]以坛为家III

    48

    主题

    3452

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    7220
    最后登录
    2024-3-29
     楼主| 发表于 2018-11-30 15:03:34 | 显示全部楼层
    mars4zhu 发表于 2018-11-30 14:17
    我的IAR也不能用CMSIS-DAP调试。。悲剧。。

    编译慢的额问题的根本原因已找到:参考:

    老哥,可以。回头我试试
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-3-29 21:58 , Processed in 0.131434 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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