赞
踩
ARM Cortex-M7内核固定有 4GB 的寻址空间,ARM官方对这4GB寻址空间的分配如下图:
每个区域的描述如下:
ARM官方只是大概的将Cortex-M7内核 4GB 寻址空间划分为8个区域,芯片厂商在此基础之上,对每个区域进行具体实现。
Code区(512MB)用来存储代码,RT1062对于Code区的具体实现如下图:
① ITCM
ITCM全称 Instruction Tightly-Coupled Memory,指令紧耦合内存。紧耦合指该部分存储空间与内核联系紧密,具有非常高的访问速度。
该部分存储空间用来缓存指令,如果将代码从Flash里面加载到ITCM中运行,则代码执行速度就不会受限于Flash读取速度。
② ROMCP
ROMCP用于存储bootloader,也就是芯片启动时的加载代码,负责将代码从外部存储器加载到ITCM。
SRAM区(512MB)用来作为运行内存,RT1062对于SRAM区的具体实现如下图:
① DTCM
DTCM全称Data Tightly Coupled Memory,数据紧耦合内存。紧耦合指该部分存储空间与内核联系紧密,具有非常高的访问速度。该部分存储空间用来存放数据部分。
② OCRAM
OCRAM全称 On-chip RAM,片上RAM,和普通的SRAM存储器作用相同。
特别注意,ITCM、DTCM、OCRAM三个存储空间共享芯片内部FlexRAM的空间,并且可以动态调整。RT1062中 FlexRAM 存储器的空间高达 1 MB,默认ITCM和DTCM大小都是512KB。
Peripheral区(512MB)用来存放片上外设相关的寄存器地址映射,在RT1602芯片中实现如下:
RT1062芯片使用5条AIPS总线与片上外设相连, 在数据手册中可以看到挂到每条总线上的外设基地址,比如GPIO1外设挂在AIPS2总线上,GPIO1外设基地址为0x401B8000。
External RAM区(1GB)用来扩展外部RAM存储器,Extern Device区(1GB)用来扩展外部设备,RT1062中将这两个区合并起来的实现如下:
内核私有外设总线区用来寻址Cortex-M7内核中的外设,RT1062中的实现如下:
至此,ARM Cortex-M7内部4GB寻址空间在RT1062中的分配情况介绍完毕。
Boot ROM是RT1062芯片内部128KB的存储空间(ROMCP):
Boot ROM中存放的代码称为Boot Code(启动代码),启动代码已经固化在Boot ROM中,用户无法进行修改使用,主要完成以下事情:
如果在上述过程中出错,则启动代码跳转到串行下载模式,等待用户下载镜像。
RT1062有四个启动模式,如下表,具体使用哪种启动模式通过内部寄存器 BOOT_MODE 中的值来选择,如图:
RT1062芯片上电之后永远会执行Boot ROM中存放的启动代码,只不过在 PRT_B 信号的上边沿(上电时),芯片对BOOT_MODE0引脚和BOOT_MODE1引脚采样,获得 BOOT_MODE 寄存器的初始值,通过该寄存器决定启动代码下一步的行为:
在采样完成之后,BOOT_MODE0和BOOT_MODE1引脚的电平不会对BOOT_MODE寄存器的值产生影响。
RT1602支持的外部启动设备非常多,如下:
用户通过设置 BOOT_CFG1[7:4] 的值来选择使用哪种类型的设备,如图:
在访问每种外部存储器设备时,都需要配置一些基本参数,比如位宽、工作频率、访问时序等必要参数,RT1062针对每种存储器设备都提供了配置方式。该部分内容较多,可以在参考手册中查看。
比如当我们选择外部存储器为串行 Nor Flash时,可以用GPIO引脚配置的选项如下:
而另外一些属性设置只能通过软件去修改,无法通过GPIO设置,如下:
RT1062芯片中,在Fuse中用于启动相关的一些配置项可以通过外部GPIO引脚来配置,引脚对应表如图所示:
i.MX RT1xxx 系列跨界处理器的启动方式其实都差不多,由于没有内部Flash,所以芯片内置了一段ROM空间固化启动代码,由启动代码完成多种多样的启动方式。
启动代码最主要的功能是加载代码到内部SRAM中或者外部SRAM/SDRAM中跳转过去开始执行,而要加载的代码就来源于外部存储器,比如SPI Flash(Nor Flash)、Nand Flash、SD卡等。
除了这种方式外,启动代码还支持通过串口/USB接口接收PC端上位机工具(mfgtool、MCUBootUtility)发送的程序镜像,并将接收的程序存储到SRAM中开始执行。
关于 i.MX RT系列启动方式更加详细的描述,请阅读 NXP 痞子衡大佬的文章。
下面这张启动方式比较图就来源于大佬的博客:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。