--

  痞子衡的 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的更多相关文章

  1. 痞子衡嵌入式:深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程. 从外部串行NOR Flash启动问题是i.MXRT系列开发最 ...

  2. 痞子衡嵌入式:了解i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点. 前段时间痞子衡写了一篇 <深入i.MXRT1050系 ...

  3. 痞子衡嵌入式:在i.MXRT1170上启动含DQS的Octal Flash可不严格设Dummy Cycle (以MT35XU512为例)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Octal或Hyper Flash上DQS信号与Dummy Cycle联系. 关于在 i.MXRT 上启动 NOR Flash 时如何设 ...

  4. 痞子衡嵌入式:导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP. i.MXRT系列MCU发布已两年多了,基于i.MXR ...

  5. 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(4) - 轮询Flash配置参数

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(4)之轮询Flash配置参数. 文接上篇 <超级下载算法(RT-UFL)开发笔记(3) - 统一FlexSP ...

  6. 痞子衡嵌入式:i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是OPI DTR模式下反转字节序的Octal Flash在i.MXRT下载与启动注意事项. 在恩智浦官方参考设计板 MIMXRT595-E ...

  7. 痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件

    -- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3.1)发布过去2个月了,这一次痞子衡为大家带来了版本升级v2.4.0,这个版本主要有一个非常重要的更新需要跟大家特别说 ...

  8. 痞子衡嵌入式:MCUBootUtility v3.0发布,开始支持LPC, Kinetis啦

    -- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.4.0)发布过去2个半月了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,NXP-MCUBootUtil ...

  9. 痞子衡嵌入式:MCUBootUtility v3.3发布,可配合SBL项目使用

    -- 痞子衡维护的NXP-MCUBootUtility工具距离上一个大版本(v3.0.0)发布过去4个多月了,期间痞子衡其实断断续续做个几个小版本更新,这一次痞子衡为大家带来了稳定版本v3.3.0,顺 ...

随机推荐

  1. 图论--差分约束--POJ 1364 King

    Description Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen p ...

  2. requests抓取数据示例

    1:获取豆瓣电影名称及评分 # 抓取豆瓣电影名称及评分 url="https://movie.douban.com/j/search_subjects" start=input(& ...

  3. 去 HBase,Kylin on Parquet 性能表现如何?

    Kylin on HBase 方案经过长时间的发展已经比较成熟,但也存在着局限性,因此,Kyligence 推出了 Kylin on Parquet 方案(了解详情戳此处).通过标准数据集测试,与仍采 ...

  4. P2774 方格取数问题 网络流重温

    P2774 方格取数问题 这个题目之前写过一次,现在重温还是感觉有点难,可能之前没有理解透彻. 这个题目要求取一定数量的数,并且这些数在方格里面不能相邻,问取完数之后和最大是多少. 这个很好的用了网络 ...

  5. JAVA设计模式之工厂系列(factory)

    任何可以产生对象的方法或者类,都可以称之为工厂.单例就是所谓的静态工厂. 为什么jdk中有了new,还需要工厂呢? a.灵活的控制生产过程 b.给对象加修饰.或者给对象加访问权限,或者能够在对象生产过 ...

  6. linux下在用python向文件写入数据时'\n'不起作用

    网上翻看一圈,大家都说利用write写数据换行,在linux下用'\n',windows下利用'\r\n',可是尝试了一下,'\n'在windows底下可换行,在linux底下居然不起作用,最后利用' ...

  7. ysql常用sql语句(12)- group by 分组查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  8. [hdu5216]排序

    题意:给定两个长度为M的数组a,b,对于一个1-M的排列,不妨设为P,如果对任意0<=i<M,都有a[i] <= b[P[i]],那么称为一种合法情况,对于一种合法情况,对所有0&l ...

  9. iview tree 绑定数据

    官方文档 :https://www.iviewui.com/components/tree 效果图 1 主体分析 <Tree ref="tree" :data="t ...

  10. java方法调用顺序

    public class JavalearningApplicationTests { static { System.out.println("Test的静态代码块"); } p ...