MIMXRT1064DVL6A开发笔记一-认识1064

一、功能框图

1064内部flash大小是4M,RAM是1M。

二、内存映射

1、FLASH

结合MIMXRT1064xxxxx_flexspi_nor.icf文件和下图,可以得出flash地址范围是0x70000000 - 0x703FFFFF。

2、RAM

RAM有ITCM,DTCM,OCRAM三种类型。

ITCM的地址范围是0x0000 0000 - 0x0007 FFFF。

DTCM的地址范围是0x2000 0000 - 0x2007 FFFF。

OCRAM的地址范围是0x2028 0000 - 0x202F FFFF。

三者共享521KB,按规则分配。

OCRAM2的地址范围是0x2020 0000 - 0x2027 FFFF,功能框图的512KB SRAM在此范围内。

栈,堆和定义的变量都在DTCM,适当加大DTCM的大小。

三、FLASH分配方案

1064内部flash范围是0x70000000 - 0x703FFFFF,大小是4M。

1、软件组成

软件由5部分组成,分别是bootloader+bootapp0+bootapp1+app0+app1。

2、bootloader

bootloader的flash范围是 0x70000000 - 0x7000FFFF,大小是64KB。icf文件要修改到这个地址。

Bootloader工程需要在IAR编译器添加宏 BOOT_PROJ=1。

       bootloader的作用是加载bootapp。bootloader检测bootapp1更新标志,如果值为0xaabb,则表示有新的bootapp1,则将bootapp1复制到bootapp0,复制完成才将标志改成其他值,再运行bootapp0,假设在复制过程中意外断电,标志还是0xaabb,bootapp1还完好,上电则再次进行复制。如果标志为非0xaabb值,表示没有新的bootapp1,则直接运行bootapp0。这个标志存到eeprom。

3、bootapp

bootapp0的flash范围是0x70010000 - 0x7004FFFF,大小是256KB。

bootapp1的flash范围是0x70050000 - 0x7008FFFF,大小是256KB。

        app0检测app1更新标志,如果值为0xaabb,则表示有新的app1,则将app1复制到app0,复制完成才将标志改成其他值,再运行app0,假设在复制过程中意外断电,标志还是0xaabb,app1还完好,上电则再次进行复制。如果标志为非0xaabb值,表示没有新的app1,则直接运行app0。这个标志存到eeprom。

4、app

app0的flash范围是0x70090000 - 0x7010FFFF,大小是512KB。

app1的flash范围是0x70110000- 0x7018FFFF,大小是512KB。

5、预留

预留的flash范围是0x70190000- 0x703FFFFF,大小是2496KB。

四、EEPROM分配方案

eeprom使用的型号是AT24C256,大小是256Kb,即32KB。页大小是64bytes。以页为单位保存用户数据。用户数据之间预留1页空间。eeprom是所有软件都可以访问的,bootapp,app需要共享的资源放到这里来。

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值