痞子衡嵌入式:MCUBootUtility v2.3发布,这次不再放过任何一款Flash
--
痞子衡的 NXP-MCUBootUtility 开源项目自2018年8月27日第一笔提交至今已有21个月,目前累计代码已近50000行。相信这个工具为大家开发 i.MXRT 项目提供了一些便利,听闻也有不少客户用这个工具做量产,这是痞子衡坚持维护这个项目的最大意义所在。
时光飞逝,距离上一个版本(v2.2)发布已有半年了,这一次痞子衡为大家带来了全新版本v2.3,新版本除了一些常规新i.MXRT型号支持以及bugfix之外,痞子衡特别花了大功夫彻底解决了NOR Flash支持问题,以后不管是什么Flash统统一网打尽。痞子衡是怎么做到的?且往下看。
一、v2.3更新记录
二、关于NOR Flash支持的更新
这次关于NOR Flash支持的更新一共有三条,每条都很关键。
> 特性: 支持512字节完整的FDCB配置作为FlexSPI NOR模型
> 改进: 提供保留源image文件里的FDCB头的选项设置
> 修复: 有时候配置flash时无法显示其Page/Sector/Block Size信息
2.1 正确显示Flash信息
先说bugfix,客户经常反映使用工具连接i.MXRT芯片配置Flash时,明明Flash模型选对了,但是在工具左下角Device Status窗口里看到的Page/Sector/Block Size全都是"- - - - - - - - ",导致底下无法继续烧写image文件,这个问题从v1.0版本开始就一直存在,并不是工具本身的问题,而是工具依赖的Flashloader机制问题,这次痞子衡用了一个workaround解决了它,这个workaround就是如果无法得到正确的Flash Size属性,就直接用默认的256Byte Page,4KB Sector,128KB Block,这样不影响后续操作。
2.2 保留原image的FDCB
再来说改进,我们知道工具从v1.1开始支持含i.MXRT启动头(包含FDCB)的image文件,因为恩智浦SDK里的XIP工程默认都会包含启动头,工具对于这个启动头里的FDCB处理(一键启动操作里)一直都是解析出来直接抛弃,因为工具会自动生成一个可用的FDCB来替代它,让我们在板子上实际操作看一下:
以MIMXRT685-EVK (Rev.E)板子为例,板子ISP模式设为USB ISP,然后插上USB OTG(J7),打开工具,使用默认Flash模型来配置连接(默认Keep FDCB没有选中),然后将工具自带的 \NXP-MCUBootUtility-2.3.0\apps\NXP_MIMXRT685-EVK_Rev.E\led_blinky_0x08001000_fdcb.srec 文件下载进去。
打开 led_blinky_0x08001000_fdcb.srec 文件与工具回读的内容进行比对,可以发现两者的FDCB是不完全相同的,这证明工具确实没有保留原image文件里的FDCB。
但是有时候这个FDCB头是客户精心设计的,他就想让工具保留这个FDCB头,对于v2.2以下版本只能在通用编程器界面下载bin文件,一键启动操作里不支持,现在v2.3版本里一键启动操作也可以支持了,就在Flash模型配置页面的【Keep FDCB】设置,勾选它,然后重新连接下载即可。
2.3 完整FDCB配置连接
最后重点聊一聊本次的最重大更新,完整FDCB配置连接。在Flash模型配置页面,以前都只能设置一些精简的option参数来配置Flash,这种方式仅能支持含SFDP表的Flash,并且很多FlexSPI属性配置都无法设(比如DQS信号来源等),全新v2.3版本增加了Complete_FDCB选项,选择这个,便可以进一步点击【Complete FDCB Configuration (512bytes)】按钮进到FDCB配置页面。
在FDCB配置页面,你可以尽情设置那些参数,这些参数都来源于恩智浦SDK包源文件里的 flexspi_mem_config_t 结构体,每个参数具体定义详见芯片手册的ROM章节,使用这个完整FDCB配置的朋友需要对FlexSPI外设有一定了解。
使用完整FDCB配置的最大好处是无论Flash是否含有SFDP,我们现在都可以正常访问配置了,比如我们可以用工具目录下预存的 \NXP-MCUBootUtility-2.3.0\gen\fdcb_file\cfg_fdcb_RTxxx_1bit_sdr_flashB.bin 来重新连接,事实上这个fdcb配置文件几乎适用所有挂在RT600 FlexSPI PortB上的Flash型号(假设Flash默认工作在1bit SDR模式),因为它配置的是1bit SDR模式来访问Flash。
至此,这次更新的主要特性便介绍完了。MCUBootUtility项目地址为 https://github.com/JayHeng/NXP-MCUBootUtility, 虽然当前版本(v2.3.0)功能已经非常完备,你还是可以在此基础上再添加自己想要的功能。如此神器,还不快快去下载试用?
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
痞子衡嵌入式:MCUBootUtility v2.3发布,这次不再放过任何一款Flash的更多相关文章
- 痞子衡嵌入式:深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程. 从外部串行NOR Flash启动问题是i.MXRT系列开发最 ...
- 痞子衡嵌入式:了解i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点. 前段时间痞子衡写了一篇 <深入i.MXRT1050系 ...
- 痞子衡嵌入式:在i.MXRT1170上启动含DQS的Octal Flash可不严格设Dummy Cycle (以MT35XU512为例)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Octal或Hyper Flash上DQS信号与Dummy Cycle联系. 关于在 i.MXRT 上启动 NOR Flash 时如何设 ...
- 痞子衡嵌入式:导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP. i.MXRT系列MCU发布已两年多了,基于i.MXR ...
- 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(4) - 轮询Flash配置参数
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(4)之轮询Flash配置参数. 文接上篇 <超级下载算法(RT-UFL)开发笔记(3) - 统一FlexSP ...
- 痞子衡嵌入式:i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是OPI DTR模式下反转字节序的Octal Flash在i.MXRT下载与启动注意事项. 在恩智浦官方参考设计板 MIMXRT595-E ...
- 痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3.1)发布过去2个月了,这一次痞子衡为大家带来了版本升级v2.4.0,这个版本主要有一个非常重要的更新需要跟大家特别说 ...
- 痞子衡嵌入式:MCUBootUtility v3.0发布,开始支持LPC, Kinetis啦
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.4.0)发布过去2个半月了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,NXP-MCUBootUtil ...
- 痞子衡嵌入式:MCUBootUtility v3.3发布,可配合SBL项目使用
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个大版本(v3.0.0)发布过去4个多月了,期间痞子衡其实断断续续做个几个小版本更新,这一次痞子衡为大家带来了稳定版本v3.3.0,顺 ...
随机推荐
- 一句话教你分清楚UML组合聚合和联系!
组合:组合后的实体消失,则所有构成实体的部件都无意义,可以理解为不能独立存在 定义: 与聚合相比,组合描述的是这样的关联关系,部分离开整体后就没有实际意义了.所以我们说组合是一种很强的关联关系. 例子 ...
- 【摘抄】深入解析Windows操作系统
一.线程是一个进程内部的实体,也是Windows执行此进程时的调度实体.若没有线程,进程的程序将不可能运行.线程包含以下部件: 1.一组代表处理器状态的CPU寄存器中的内容. 2.两个栈:一个用于线程 ...
- redis系列之5----redis实战(redis与spring整合,分布式锁实现)
本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redi ...
- 集成学习基础知识总结-Bagging-Boosting
理论 在概率近似正确((probably approximately correct)学习框架下.一个概念是强可学习的充分必要条件是这个概念是弱可学习(仅比随机猜测稍好). 要求 个体学习器要好而不同 ...
- P1191 矩形
------------恢复内容开始------------ 题意 给出一个\(n*n\)的矩阵,矩阵中,有些格子被染成白色,有些格子被染成黑色,现要求矩阵中白色矩形的数量 分割线 Ⅰ.暴力出奇迹!! ...
- python执行脚本报错: Non-ASCII character '\xe4' in file yang.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
这是因为我们在写python程序的时候,无论在注释里面出现中文,还是在代码里面出现中文,也就是说只要这个python程序里面有中文,我们就不能直接用python2来进行执行,如果安装是python3可 ...
- 关于tablayout+viewpager+fragment配合使用的一点记录
最近在写项目的时候遇到要求使用tablayout和fragment,遇到了这里记录一下大致思路. tablayout是头部可以左右切换的头部控制栏控件,配合viewpager使用,fragment是碎 ...
- matlab 提示 Continuous sample time is not supported by discrete derivative 错误的解决办法
Simulink仿真的时候,出行错误提示:Continuous sample time is not supported by discrete derivative 中文意思是:连续采样时间不支持离 ...
- SQL注入和Mybatis预编译防止SQL注入
什么是SQL注入?? 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或页面请求url的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命 ...
- HDU 2016 (水)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2016 题目大意:给你 n 个数,把最小的数和第一个数字互换,然后输出 解题思路: 很水,开数组,遍历并 ...