--

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

一、v3.4更新记录

Features:
1. 支持下载应用程序进主动启动设备 - FlexSPI NAND接口Flash
2. 支持对启动设备进行全擦操作
Improvements:
1. 支持SDK 2.10及其之后生成的可启动文件作为源文件
2. 添加更多的串行NOR Flash模型

二、几个不可忽视的更新

2.1 支持下载串行NAND

  i.MXRT 系列支持的启动设备种类非常丰富,工具已经支持了大部分类型的启动设备,这次新增支持的串行 NAND 是所剩不多的未支持设备类型了。

  NAND 相比 NOR 有着容量大、价格便宜的优势,但是因为天然不支持 XiP,所以在 i.MXRT 项目上用得并不广泛。此外 NAND 还分 Raw NAND 和 串行 NAND,前者问世时间更早一些,在 Linux 世界里有一定群众基础,因此即使客户选 NAND 作为启动设备,一般也是 Raw NAND 居多。

  为何痞子衡这次花费精力去升级工具支持串行 NAND 呢?当然是来生意了,最近有国外客户选择了用串行 NAND 作为启动设备,但是恩智浦这边相关资料较少,想要搞定启动不太容易,所以痞子衡只能先顶上了,让工具把串行 NAND 第一时间支持起来。

2.2 支持SDK 2.10.x例程

  工具设计之初本打算仅支持裸应用程序,即用户只需要关心应用程序本身,不用管 i.MXRT 启动头(FDCB, IVT, BD等),工具会自动添加合适的启动头,但恩智浦 SDK 里的示例例程包含了启动头(见工程选项里的 XIP_BOOT_HEADER_ENABLE=1),所以工具(从 v1.1 版本开始)不得不要去支持可启动应用程序源文件。

  工具 v1.1 版本发布之时,当时恩智浦 SDK 版本才 2.3.x,三年过去了,目前 SDK 版本已经升级到了 2.10.x。从 SDK 2.10.x 版本开始,启动头设定有了一些变化,IVT 里的 entry 值从中断向量表首地址变成了复位函数地址,这个变化对工具产生了影响,因此工具需要升级支持 IVT.entry 是复位函数地址的可启动程序。

  • Note: 当前功能有一个限制,就是假定应用程序中断向量表是以 0x400 对齐的,因为工具需要根据这个假定来从源程序文件中寻找出中断向量表地址。

2.3 更多的NOR Flash模型

  NOR Flash 模型设计是工具的一大特色,之前版本没有把支持的所有厂商型号都罗列出来,只给了一些代表型号。如果模型里没有客户选择的 Flash 型号,很多客户就不知道该选哪个模型了(其实选相近类型即可,不一定需要厂商一致)。这次升级直接就一步到位了,把该加上的模型全部加上,如果有遗漏,欢迎大家给我留言或者提 issue。

  • Note: 模型设计的前提是这些 Flash 里均包含 SFDP,鉴于有些厂商手册里标称包含 SFDP,实际却没有的情况,需要选择 Complete FDCB 来支持。

2.4 支持Flash全擦操作

  工具本身也是一个基于 i.MXRT 的通用 Flash 编程器,我们可以对连接到 i.MXRT 的 Flash 进行任意的读写擦,之前版本的擦除操作主要通过 Sector Erase 和 Block Erase 命令组合实现的,如果客户想将 Flash 全部擦除,花费时间较久。为了提高全擦效率,这次新增了一个 Mass Erase 按钮,即调用 Chip Erase 命令来实现,耗时缩短不少。

  至此,这次更新的主要特性便介绍完了。MCUBootUtility项目地址如下。虽然当前版本(v3.4.0)功能已经非常完备,你还是可以在此基础上再添加自己想要的功能。如此神器,还不快快去下载试用?

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:MCUBootUtility v3.4发布,支持串行NAND的更多相关文章

  1. 痞子衡嵌入式:揭秘i.MXRT1170上串行NOR Flash双程序可交替启动设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1170上串行NOR Flash双程序可交替启动设计. 在上一篇文章 <i.MXRT1060/1010上串行NOR F ...

  2. 痞子衡嵌入式:测一测i.MXRT1170 Raw NAND启动时间(从POR到进App的Reset_Handler)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 Raw NAND启动时间. 关于i.MXRT1170这颗划时代的MCU,痞子衡去年10月在其刚发布的时候, ...

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

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

  4. 痞子衡嵌入式:借助Serial Plot软件测量i.MXRT系列FlexSPI驱动Flash页编程执行时间

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列FlexSPI驱动Flash页编程执行时间. 痞子衡之前写过一篇文章 <串行NOR Flash的页编程模式对于量产 ...

  5. 痞子衡嵌入式:i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad. 最近碰到一个客户,他们在 i.MX ...

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

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

  7. 痞子衡嵌入式:MCUBootUtility v3.5发布,支持串行NOR的ECC及双程序启动

    -- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v3.4.0)发布过去半年了,这一次痞子衡为大家带来了版本升级 v3.5.0,这个版本主要有几个非常重要的更新需要跟大家 ...

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

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

  9. 痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生

    -- 痞子衡维护的NXP-MCUBootFlasher工具(以前叫RT-Flash)距离上一个版本(v2.0.0)发布过去一年半以上了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,N ...

随机推荐

  1. 题解 big

    传送门 题面里那个式子 考场上我推了半天那个式子代表什么意思,但就是没想到位运算 \(\lfloor \frac{2x}{2x^n} \rfloor \iff x\gg(n-1)\), 即将x的第n位 ...

  2. GithubSearch

    https://docs.github.com/cn/github/searching-for-information-on-github/searching-on-github/searching- ...

  3. mongodb中时间跟实际时间相差8小时----时区问题

    遇到的问题 参考:mongo中时间跟实际时间相差8小时 Mongo中一个Collection有一个字段用来存放数据的插入时间,但记录的时间比实际时间晚了8小时. 查询得知存储在mongodb中的时间是 ...

  4. C# 不是异步的方法中获取异步的结果

    var waiter = HP.UtilsLib.TaskAwaiterHelper.GetTaskAwaiter( async () => { return await feedBack(ve ...

  5. C# wpf中DataGrid 支持汇总行

    最近有一个需求,需要汇总金额,份额等字段.我们使用的是原生的WPF控件,自己开发了一套Template.而没有使用比较成熟的第三方控件.所以这个功能得自己开发.并且要做成控件层次的功能. 当然也可以这 ...

  6. springmvc学习日志二

    一.当接受的参数为日期类型时 1.建立jsp页面,向Controller类传入参数 1.1当传入的参数为单个时 <body> <form action="user/toDa ...

  7. response中setCharacterEncoding和setContentType的区别

    package day08; import java.io.IOException; import javax.servlet.ServletException; import javax.servl ...

  8. call bind apply的区别

    call() 和apply()的第一个参数相同,就是指定的对象.这个对象就是该函数的执行上下文. call()和apply()的区别就在于,两者之间的参数. call()在第一个参数之后的 后续所有参 ...

  9. SQLServer数据库查询语法

    SQLServer数据库查询语法 前言: SQLServer数据库介绍: SQLServer数据库是微软公司推出的一款关系型数据库系统,SQL Server是一个可扩展的.高性能的.为分布式客户机/服 ...

  10. Python - 面向对象编程 - 魔术方法(双下划线方法)

    什么是魔术方法 在Python中,所有以 __ 双下划线包起来的方法,都统称为 Magic Method 魔术方法,也叫双下划线方法 有哪些重要的魔术方法? __new__ https://www.c ...