大家好,我是痞子衡,是正经搞技术的痞子。本系列痞子衡给大家介绍的是恩智浦i.MX RT四位数系列微控制器相关知识

  恩智浦半导体于2017年10月发布的i.MX RT四位数系列开启了高性能MCU的新纪元,其第一款芯片i.MX RT1052,搭载Cortex-M7内核,主频高达600MHz,CoreMark跑分高达3020。

  本系列文章会逐一介绍i.MX RT四位数系列微控制器开发相关知识。

资料篇(全1篇已完结)

史上最强i.MX RT学习资源汇总(持续更新中...)

芯闻篇(持续更新中...1/1)

终于可以放开聊一聊i.MXRT1170这颗划时代MCU了

介绍篇(全4篇已完结)

恩智浦i.MX RT1xxx系列MCU特性那些事(1)- 概览
恩智浦i.MX RT1xxx系列MCU特性那些事(2)- RT1052DVL6性能实测(CoreMark)
恩智浦i.MX RT1xxx系列MCU特性那些事(3)- 命名规则
恩智浦i.MX RT1xxx系列MCU特性那些事(4)- RT105x选型

硬件篇(持续更新中...7/7)

恩智浦i.MX RT1xxx系列MCU硬件那些事(1)- 官方EVK简介
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.1)- 玩转板载OpenSDA,Freelink调试器
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.2)- 在串行NOR Flash XIP调试原理
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.4)- 串行NOR Flash下载算法(Keil MDK篇)
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.5)- 串行NOR Flash下载算法(IAR EWARM篇)
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.6)- 串行NOR Flash下载算法(MCUXpresso IDE篇)

工具篇(持续更新中...20/20)

恩智浦SDK代码风格检查工具MCUXpresso-SDK-CodingStyleChecker
恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南
恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility常见问题
开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中英双语)
开启NXP-MCUBootUtility工具的HAB加密功能 - CST(中英双语)
开启NXP-MCUBootUtility工具的BEE加密功能 - image_enc
恩智浦i.MX RT系列MCU量产神器NXP-MCUBootFlasher用户指南
恩智浦i.MX RT系列MCU量产神器NXP-MCUBootFlasher常见问题

如果i.MX RT是一匹悍马,征服它时别忘了用马镫MCUBootUtility
MCUBootUtility v2.0.0来袭,i.MXRT1010哪里跑
MCUBootUtility v2.3.0发布,这次不再放过任何一款Flash
MCUBootUtility v2.3.1发布,解决了长久以来非空flash可能无法下载的问题
MCUBootUtility v2.4.0发布,轻松更换Flashloader文件
MCUBootUtility v3.0.0发布,开始支持LPC, Kinetis啦
MCUBootUtility v3.3.0发布,可配合SBL项目使用
MCUBootUtility v3.4.0发布,支持串行NAND
MCUBootUtility v3.5.0发布,支持串行NOR的ECC及双程序启动
MCUBootUtility v4.0.0发布,开始支持MCX啦

如果你正在量产i.MX RT产品,不妨试试这款神器RT-Flash
MCUBootFlasher v3.0.0发布,为真实的产线操作场景而生

启动篇(持续更新中...16/24)

恩智浦i.MX RT1xxx系列MCU启动那些事(1)- Boot简介
恩智浦i.MX RT1xxx系列MCU启动那些事(2)- Boot配置(BOOT Pin/eFUSE)
恩智浦i.MX RT1xxx系列MCU启动那些事(3)- Serial Downloader模式(sdphost/MfgTool)
恩智浦i.MX RT1xxx系列MCU启动那些事(4)- Flashloader初体验(blhost)
恩智浦i.MX RT1xxx系列MCU启动那些事(5)- 再聊eFUSE及其烧写方法
恩智浦i.MX RT1xxx系列MCU启动那些事(6)- Bootable image格式与加载(elftosb/.bd)
恩智浦i.MX RT1xxx系列MCU启动那些事(7)- 静态解密安全启动需知(HAB)
恩智浦i.MX RT1xxx系列MCU启动那些事(8)- 从Raw NAND启动
恩智浦i.MX RT1xxx系列MCU启动那些事(8.A)- SEMC NAND启动时间(RT1170)
恩智浦i.MX RT1xxx系列MCU启动那些事(9)- 从Parallel NOR启动
恩智浦i.MX RT1xxx系列MCU启动那些事(10)- 从Serial(Multi-IO) NAND启动
恩智浦i.MX RT1xxx系列MCU启动那些事(11)- 从Serial(Multi-IO) NOR启动
恩智浦i.MX RT1xxx系列MCU启动那些事(11.A)- FlexSPI NOR启动时间(RT1170)
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1015/1020/1050)
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1060/1064(SIP))
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1010)
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1024(SIP))
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1160/1170)
恩智浦i.MX RT1xxx系列MCU启动那些事(12)- 从SD/eMMC启动
恩智浦i.MX RT1xxx系列MCU启动那些事(13)- 从Serial(1-bit SPI) EEPROM/NOR恢复启动
恩智浦i.MX RT1xxx系列MCU启动那些事(13.A)- LPSPI NOR启动时间(RT1170)
恩智浦i.MX RT1xxx系列MCU启动那些事(14)- 动态解密安全启动需知(BEE)
恩智浦i.MX RT1xxx系列MCU启动那些事(15)- 动态解密安全启动需知(OTFAD)
恩智浦i.MX RT1xxx系列MCU启动那些事(16)- 终极一站式工具(NXP-MCUBootUtility)

经验篇(持续更新中...76/80)

类别 文章
电源时钟 浅谈i.MXRT1xxx系列MCU时钟相关功能引脚的作用
浅谈i.MXRT10xx系列MCU外接24MHz晶振的作用
系统启动 理解i.MXRT1xxx上的XIP和Non-XIP App制作、下载、启动、调试上的差异
在i.MXRT1xxx上设计一个level2 bootloader实现App分散加载启动
使用i.MXRT1xxx ROM Flashloader工具生成bootable image的注意事项
IVT里的不同entry设置可能会造成i.MXRT1xxx系列启动App后发生异常跑飞
16MB以上NOR Flash使用不当可能会造成软复位后i.MXRT无法正常启动
导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP
导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之QE bit
导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之Write Protection
i.MXRT中不支持DQS的FlexSPI引脚组连接串行NOR Flash下载与启动注意事项
深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程
了解i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点
自识别特性(Auto Probe)可以让i.MXRT1060无需FDCB也能从NOR Flash启动
从头开始认识i.MXRT启动头FDCB里的lookupTable
在i.MXRT启动头FDCB里调整Flash工作频率也需同步设Dummy Cycle(以IS25WP128D为例)
在i.MXRT启动头FDCB里使能串行NOR Flash的DTR模式
在i.MXRT1170上启动含DQS的Octal Flash可不严格设Dummy Cycle(以MT35XU512为例)
在i.MXRT1050上启动含DQS的Hyper Flash可不严格设Dummy Cycle(以S26KS512为例)
在i.MXRT启动头FDCB里使能串行NOR Flash的Continuous read模式
串行NOR Flash的Continuous read模式下软复位后i.MXRT无法启动问题解决方案之RESET#
串行NOR Flash的Continuous read模式下软复位后i.MXRT无法启动问题解决方案之SW Reset
在i.MXRT启动头FDCB里使能串行NOR Flash的QPI/OPI模式
系统时钟配置不当会导致i.MXRT1xxx系列下OTFAD加密启动失败
FlexSPI复位方式不当会导致i.MXRT系列下OTFAD加密启动失败
揭秘i.MXRT1060,1010上串行NOR Flash冗余程序启动设计
揭秘i.MXRT1170上串行NOR Flash双程序可交替启动设计
聊聊系统看门狗WDOG1在i.MXRT1xxx系统启动中的应用及影响
片内存储 在SBL项目实战中妙用i.MXRT1xxx里SystemReset不复位的GPR寄存器
i.MXRT1010,1170型号上不一样的SNVS GPR寄存器读写控制设计
改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常
原来i.MXRT1xxx系列里也暗藏了Product ID寄存器
了解i.MXRT1xxx系列里负责动态分配ITCM/DTCM/OCRAM大小的FlexRAM模块
下载算法 一个关于Segger J-Flash在Micron Flash固定区域下载校验失败的故事(SR寄存器BP[x:0]位)
在线升级 利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP
其实i.MXRT1050,1020,1015系列ROM也提供了FlexSPI driver API
其实i.MXRT下改造FlexSPI driver同样支持AHB方式去写入NOR Flash
探讨i.MXRT下FlexSPI driver实现Flash编程时对于中断支持问题
借助Serial Plot软件观测i.MXRT系列FlexSPI驱动Flash页编程执行时间分布
利用i.MXRT1060,1010上新增的FlexSPI地址重映射(Remap)功能可安全OTA
可通过USB Device Path来唯一指定i.MXRT设备进行ROM/Flashloader通信
仿真调试 IAR在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link/DAPLink)
Keil在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link/DAPLink)
揭秘i.MXRT1170上用J-Link连接复位后PC总是停在0x223104的原因
IAR环境下无法直接下载调试i.MXRT分散链接工程的解决方案(宏文件.mac+双Flashloader)
通用外设 以i.MXRT1xxx的GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程
对比恩智浦全系列MCU(包含Kinetis/LPC/i.MXRT/MCX)的GPIO电平中断设计差异
聊聊i.MXRT1xxx上的普通GPIO与高速GPIO差异及其用法
实测i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率
再测i.MXRT1060,1170上的普通GPIO与高速GPIO极限翻转频率
聊聊i.MXRT1170双核下不同GPIO组的访问以及中断设计
介绍i.MXRT定时器PIT的多通道链接模式及其在coremark测试工程里的应用
双核通信 大话双核i.MXRT1170之Cortex-M7与Cortex-M4互相激活之道
大话双核i.MXRT1170之单独在线调试从核工程的方法(IAR篇)
大话双核i.MXRT1170之在线联合调试双核工程的三种方法(IAR篇)
外存扩展 同一厂商不同系列Flash型号下Dummy Cycle设置方法可能有差异(以IS25LP064A为例)
关于i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区(Dummy Cycle不可设0)
理解i.MXRT中FlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值
串行NAND Flash的两大特性(坏块,读等待)导致其在i.MXRT FlexSPI下无法XiP
i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad
在i.MXRT1060-EVK上利用memtester程序给SDRAM做压力测试
分享一个i.MXRT系列配套DRAM压力测试上位机工具(i.MXRT DRAM Tester)
性能分析 链接函数到8字节对齐地址或可进一步提升i.MXRT1xxx内核执行性能
i.MXRT中FlexSPI外设对AHB Burst Read特性的支持
i.MXRT全系列下FlexSPI外设AHB Master ID定义与AHB RX Buffer指定的异同
实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(无缓存)
实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(有预取)
实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(全加速)
在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺
利用GPIO模块来测量i.MXRT1xxx的系统中断延迟时间
对比MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异
图形显示 记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇)
记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(解答篇)
降低刷新率是定位LCD花屏显示问题的第一大法(i.MXRT1170, 1280x480 LVDS)
安全可靠 简析i.MXRT1170 Cortex-M7 FlexRAM ECC功能特点、开启步骤、性能影响
简析i.MXRT1170 Cortex-M4 L-MEM ECC功能特点、开启步骤、性能影响
简析i.MXRT1170 XECC功能特点及其保护串行NOR Flash和SDRAM之道
揭秘i.MXRT1170 eFuse空间访问可靠性的保护策略(冗余与ECC)
SNVS Master Key仅在i.MXRT10xx Hab关闭时才能用于DCP加解密
利用i.MXRT1xxx系列内部DCP引擎计算Hash值时需特别处理L1 D-Cache

项目篇(持续更新中...12/13)

kFlashFile - 一个基于Flash的掉电数据存取方案
RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计
超级下载算法RT-UFL v1.0发布,附J-Link下安装教程
超级下载算法RT-UFL v1.0在MCUXpresso IDE下的使用
超级下载算法RT-UFL v1.0在IAR EW for Arm下的使用
超级下载算法RT-UFL v1.0在Keil MDK下的使用
超级下载算法RT-UFL v1.0在Segger Ozone下的使用
超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM内核下
超级下载算法(RT-UFL)开发笔记(2) - 识别当前i.MXRT型号
超级下载算法(RT-UFL)开发笔记(3) - 统一FlexSPI驱动访问
超级下载算法(RT-UFL)开发笔记(4) - 轮询Flash配置参数
超级下载算法(RT-UFL)开发笔记(5) - 动态调整FlashDevice内容
超级下载算法(RT-UFL)开发笔记番外(1) - JLinkScript妙用

标准篇(持续更新中...8/10)

微控制器CPU性能测试基准(EEMBC-CoreMark)
并行NAND接口标准(ONFI)及SLC Raw NAND简介
并行NAND互操作性标准(JESD230)
并行NOR接口标准(CFI-JESD68)及SLC Parallel NOR简介
串行EEPROM接口事实标准及SPI EEPROM简介
串行NOR接口标准(SFDP-JESD216)及QuadSPI NOR简介
高速串行NOR兼容性标准(xSPI-JESD251)及OctalSPI/HyperBus NOR简介
串行NOR Flash的DQS信号功能简介
串行NOR Flash的页编程模式对于量产效率的影响
内存读写正确性压力测试程序(memtester)

第三方篇(持续更新中...3/3)

2021 TencentOS Tiny AIoT应用创新大赛 - 初赛阶段的38个作品速览
把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(1) - 开发环境搭建与点灯
把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(2) - 在Flash调试及离线启动