痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(1)- Boot简介
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的BootROM功能简介。
截止目前为止i.MX RTxxx系列已公布的芯片仅有一款i.MXRT600(还有几款正在研发测试之中),所以本文的研究对象主要是i.MXRT600,i.MXRT600是i.MXRTxxx系列的开山之作,功能模块非常全面,其BootROM特性基本可以涵盖i.MXRTxxx系列特性。
一、Boot基本原理
关于Boot基本原理,痞子衡在 《飞思卡尔i.MX RTyyyy系列MCU启动那些事(1)- Boot简介》 文章里介绍得很详细,Boot原理是个通用的概念,此处不再赘述。
二、i.MXRTxxx Boot
在第一部分里讲了Boot基本原理以及各种Boot方式,那么i.MXRTxxx Boot到底属于哪一种?在回答这个问题之前我们先看一下i.MXRT600的system memory map:
从memory map里可以看到,i.MXRTxxx支持存储类型一共有三种:一是256KB的ROM(即BootROM)、二是总容量4.5MB的RAM(有两个映射起始地址0x00000000/0x20000000)、三是分配给外部存储器接口控制器(QSPI)的128MB区域。看到这里你应该明白了,i.MXRTxxx Boot方式主要是借助BootROM从外部存储器加载Application到内部SRAM/原地XIP执行。
那么i.MXRTxxx到底支持从哪些外部存储器加载启动呢?翻看i.MXRTxxx的参考手册里的Non-Secure Boot ROM章节,可以看到i.MXRT启动支持以下3种外部存储器:
- Serial(Multi-IO) NOR Flash via FlexSPI
- SD/MMC via uSDHC
- Serial(1-bit SPI) NOR via Flexcomm SPI
其中Serial NOR Device可以XIP,其他2种Device无法XIP,需要拷贝到内部RAM里运行。关于具体如何从这3种Device启动,痞子衡下篇文章接着聊。
三、i.MXRTxxx Boot差异
i.MXRTxxx目前几款芯片BootROM功能是有差异的,这个差异主要体现在启动设备类型支持上,下面痞子衡用一个表格总结差异:
芯片 | Serial NOR | Serial NAND | SD Card | eMMC Card | 1-bit SPI NOR | HyperRAM/PSRAM |
---|---|---|---|---|---|---|
i.MXRT7xx | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
i.MXRT6xx | 支持 | - | 支持 | 支持 | 支持 | 支持 |
i.MXRT5xx | 支持 | - | - | 支持 | 支持 | 支持 |
至此,恩智浦i.MX RTxxx系列MCU的BootROM功能痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
最后欢迎关注痞子衡个人微信公众号【痞子衡嵌入式】,一个专注嵌入式技术的公众号,跟着痞子衡一起玩转嵌入式。
衡杰(痞子衡),目前就职于某全球顶级半导体原厂MCU系统部门,担任高级嵌入式系统应用工程师。
专栏内所有文章的转载请注明出处:http://www.cnblogs.com/henjay724/
与痞子衡进一步交流或咨询业务合作请发邮件至 hengjie1989@foxmail.com
可以关注痞子衡的Github主页 https://github.com/JayHeng,有很多好玩的嵌入式项目。
关于专栏文章有任何疑问请直接在博客下面留言,痞子衡会及时回复免费(划重点)答疑。
痞子衡邮箱已被私信挤爆,技术问题不推荐私信,坚持私信请先扫码付款(5元起步)再发。