LV04-00-IMX6ULL-01-内存映射
本文主要是I.MX6ULL——内存映射的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
Windows版本 | windows11 |
Ubuntu版本 | Ubuntu16.04的64位版本 |
VMware® Workstation 16 Pro | 16.2.3 build-19376536 |
终端软件 | MobaXterm(Professional Edition v23.0 Build 5042 (license)) |
Linux开发板 | 正点原子 i.MX6ULL Linux 阿尔法开发板 |
uboot | NXP官方提供的uboot,NXP提供的版本为uboot-imx-rel_imx_4.1.15_2.1.0_ga(使用的uboot版本为U-Boot 2016.03) |
linux内核 | linux-4.15(NXP官方提供) |
Win32DiskImager | Win32DiskImager v1.0 |
点击查看本文参考资料
分类 | 网址 | 说明 |
官方网站 | https://www.arm.com/ | ARM官方网站,在这里我们可以找到Cotex-Mx以及ARMVx的一些文档 |
https://www.nxp.com.cn/ | NXP官方网站 | |
https://www.nxpic.org.cn/ | NXP 官方社区 | |
https://u-boot.readthedocs.io/en/latest/ | u-boot官网 | |
https://www.kernel.org/ | linux内核官网 |
点击查看相关文件下载
分类 | 网址 | 说明 |
NXP | https://github.com/nxp-imx | NXP imx开发资源GitHub组织,里边会有u-boot和linux内核的仓库 |
nxp-imx/linux-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga | NXP linux内核仓库tags中的rel_imx_4.1.15_2.1.0_ga | |
nxp-imx/uboot-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga | NXP u-boot仓库tags中的rel_imx_4.1.15_2.1.0_ga | |
I.MX6ULL | i.MX 6ULL Applications Processors for Industrial Products | I.MX6ULL 芯片手册(datasheet,可以在线查看) |
i.MX 6ULL Applications ProcessorReference Manual | I.MX6ULL 参考手册(下载后才能查看,需要登录NXP官网) | |
Source Code | https://elixir.bootlin.com/linux/latest/source | linux kernel源码 |
https://elixir.bootlin.com/u-boot/latest/source | uboot源码 |
这一部分主要看《i.MX 6ULL Applications Processor Reference Manual 》的Chapter 2 Memory Maps 。
一、ARM Platform Memory Map
i.MX6UL外设寄存器以及内存被映射到4G的地址空间
这里我们只关关心内存映射,结合上图说明如下:
标号①,DDR映射区域。DDR作为i.MX6UL的主内存区域,它被映射在0x8000 0000地址处,最大空间为2G, 实际可用大小与选择的DDR芯片容量有关。
标号②,QSPI1映射区域,i.MX6UL可以外接串行norflash,norflahs映射到0x6000 000起始地址处。 norflash,支持“本地执行”作用类似于STM32的内部FLASH。NXP的跨界处理器RT1050系列 就是用这个外部norflah存储代码。因为开发板已经使用了容量更大的EMMC或nand flash作为主存储器, 所以配套开发板并没有外接norFlash
标号③,EIM外扩存储器映射区域。i.MX6UL可以通过EIM总线外扩存储器,我们这里没有用到,不做过多介绍。
标号④,启动引导程序(Boot ROM)内存映射区域,它位于芯片内部。启动引导程序(Boot ROM)位于起始 地址0x0000 0000 处。我们知道芯片上电后(或硬件复位)会自动从“0”地址处开始执行。和容易得出,这里 就是保存的启动引导代码。有关启动引导程序(Boot ROM)是如何工作的,我们将在下一小节详细介绍。
从上图我们可以知道i.MX6UL支持将多种存储器映射到4G的地址空间,我们只使用了DDR作为i.MX6UL的主内 存区域,起始地址为0x8000 0000 ,大小由实际使用的DDR芯片决定。启动引导程序(Boot ROM)位于“0”地址处,大小为96Kb。
二、DMA memory map
这个没仔细研究,后面再学习吧。