--

  痞子衡的 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. SVN 应用

    1.从服务器上down 资料 在电脑上安装SVN客户端 在电脑本地创建个文件夹作为版本库 进入 xfssvn 文件夹右击鼠标选择 SVN Checkout 或 SVN Update 输入服务器中配置好 ...

  2. <学习笔记 之 JQuery 基础语法>

    jQuery 库 - 特性 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数 JavaSc ...

  3. 《Docker从入门到跑路》之Dockerfile基本操作

    一.简介 Dockerfile是一个文本文件,里面包含一条条指令,每一条指令就是一层镜像.一般情况下,Dockerfile分为4个部分: 基础镜像 维护者信息 镜像操作指令 容器启动时执行命令 例如: ...

  4. H - Buy Tickets POJ - 2828 逆序遍历 树状数组+二分

    H - Buy Tickets POJ - 2828 这个题目还是比较简单的,其实有思路,不过中途又断了,最后写了一发别的想法的T了. 然后脑子就有点糊涂,不应该啊,这个题目应该会写才对,这个和之前的 ...

  5. 李婷华 201771010113 《面向对象程序设计(java)》 第三周学习总结

    第一部分:理论知识回顾 第一章 再次了解了java“白皮书”的关键术语,java的常见术语,对于“白皮书”的关键术语依然环游不太理解的. 第二章 在使用命令行工具运行java程序的过程中,依然会有环境 ...

  6. 51单片机putchar函数的说明

    原文排版远些乱,整理了一下. #include <reg51.h> #define XON 0x11 /*串口流控制符 启动*/ #define XOFF 0x13 /*串口流控制符 中断 ...

  7. 【Spark】快来学习RDD的创建以及操作方式吧!

    目录 RDD的创建 三种方式 从一个集合中创建 从文件中创建 从其他的RDD转化而来 RDD编程常用API 算子分类 Transformation 概述 帮助文档 常用Transformation表 ...

  8. 【Hadoop离线基础总结】Apache Hadoop的三种运行环境介绍及standAlone环境搭建

    Apache Hadoop的三种运行环境介绍及standAlone环境搭建 三种运行环境 standAlone环境 单机版的hadoop运行环境 伪分布式环境 主节点都在一台机器上,从节点分开到其他机 ...

  9. HBase Filter 过滤器之QualifierFilter详解

    前言:本文详细介绍了 HBase QualifierFilter 过滤器 Java&Shell API 的使用,并贴出了相关示例代码以供参考.QualifierFilter 基于列名进行过滤, ...

  10. [hdu1023]递推

    http://acm.hdu.edu.cn/showproblem.php?pid=1023 如果把栈里面的元素个数表示成状态,每一步(共2 * n步)的状态构成的状态序列的种数就是答案,令dp[i] ...