--

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

一、v2.4更新记录

二、关于Flashloader的更换支持

  Flashloader在嵌入式世界里有很多种不同含义和应用场景,其中最让人熟知的非配合仿真器使用的Flashloader(下载算法)莫属,有了合适的Flashloader,我们便可以在IDE里一键下载和调试应用程序,项目开发效率大大提升。

  i.MXRT(主要是四位数系列)世界里也有一个专用的Flashloader,它专门配合BootROM工具链(blhost.exe)使用,这个Flashloader可以帮助你将应用程序下载进i.MXRT可启动的各种外部设备里(NOR/NAND/SD/eMMC),关于其使用方法痞子衡之前写过一篇详细的文章 《Flashloader初体验(blhost)》

  NXP-MCUBootUtility软件核心功能都是通过这个Flashloader和blhost工具来实现的,由于Flashloader本身也是一个嵌入式应用程序,是程序就可能存在功能缺陷,我们有时候遇到的NXP-MCUBootUtility使用缺陷可能是Flashloader本身的缺陷造成的,因此必要的时候我们需要为NXP-MCUBootUtility更新Flashloader文件。

2.1 获取方式

2.1.1 下载独立包(仅可执行文件)

  在恩智浦官网i.MXRT芯片主页TOOLS & SOFTWARE一栏下,我们可以下载到适用i.MXRT芯片的各种软件工具,Flashloader及其配套工具就在其中,如下是i.MXRT1050的Flashloader包:

  Flashloader包解压后,可以看到里面包含了文档、example、工具以及最重要的Flashloader可执行文件:

  Flashloader可执行文件有如下三种格式,其中ivt_flashloader.bin是flashloader.elf/srec经过elftosb.exe转换而来:

\Flashloader_RT1050_1.1\Flashloader\flashloader.elf
\Flashloader_RT1050_1.1\Flashloader\flashloader.srec
\Flashloader_RT1050_1.1\Tools\mfgtools-rel\Profiles\MXRT105X\OS Firmware\ivt_flashloader.bin

  但是Flashloader独立包的方式不是最推荐的获取方式,早期i.MXRT型号(RT1050/RT1060等)官方提供了独立包(其实并没有实时更新,V1.1版本还是2018年3月发布的),较新的i.MXRT型号(RT1170/RT1010)以及未来最新型号官方不再提供独立包。

2.1.2 下载SDK(源码和工程)

  Flashloader源码其实已经被官方开源在了SDK包里,在 MCUX主页 可下载对应i.MXRT型号的SDK包(继续以i.MXRT1050为例),记得务必在middleware选项里勾选mcu-boot后再下载:

  SDK包解压后,可在如下路径找到Flashloader源工程(IAR/MDK/MCUX/GCC都有)以及跟独立包里一样的ivt_flashloader.bin,注意此时我们需要自己编译Flashloader源工程生成一个flashloader.srec文件。

\SDK_2.8.2_EVKB-IMXRT1050\boards\evkbimxrt1050\bootloader_examples\flashloader
\SDK_2.8.2_EVKB-IMXRT1050\middleware\mcu-boot\bin\Tools\mfgtools-rel\Profiles\MXRT105X\OS Firmware\ivt_flashloader.bin

  因为SDK本身是持续更新的,Flashloader作为其中组件,也是实时在更新,因此我们不用担心Flashloader的维护问题,另外源码都开放了,不得已的情况下我们还可以自己改Flashloader。

2.2 更换方式

  NXP-MCUBootUtility在其目录/src/targets/下默认存放了Flashloader可执行文件,主要是flashloader.srec和ivt_flashloader.bin。但是上一节两种方式下得到的flashloader.srec和ivt_flashloader.bin能不能直接放到NXP-MCUBootUtility里替换使用呢?答案是否定的。

  NXP-MCUBootUtility其实并没有自动识别默认的flashloader链接地址,而是将其链接和跳转地址放到了src/targets/xxx/bltargetconfig.py文件中,这意味着你在替换默认flashloader文件时必须保证其跟bltargetconfig.py里的两个地址保持一致(不一致则需要改flashloader链接文件或者改bltargetconfig.py里的地址),这也是NXP-MCUBootUtility v2.3及其之前版本不方便更换Flashloader的原因。

  NXP-MCUBootUtility v2.4做的一个重要更新,就是能够自动识别新flashloader地址,只有一个小小的要求,就是更新的flashloader文件(srec格式)需要固定命名为flashloader_user.srec并放到/src/targets/xxx/目录下:

  NXP-MCUBootUtility运行时一旦检测到flashloader_user.srec的存在,便会获取其链接和跳转地址,并自动生成对应的ivt_flashloader_user.bin文件(在/gen/bootable_image/ivt_flashloader_user.bin)去使用,这样的设计下更换flashloader是不是相当轻松!

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

欢迎订阅

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

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

痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件的更多相关文章

  1. 痞子衡嵌入式:MCUBootUtility v2.3发布,这次不再放过任何一款Flash

    -- 痞子衡的 NXP-MCUBootUtility 开源项目自2018年8月27日第一笔提交至今已有21个月,目前累计代码已近50000行.相信这个工具为大家开发 i.MXRT 项目提供了一些便利, ...

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

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

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

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

  4. 痞子衡嵌入式:MCUBootUtility v3.4发布,支持串行NAND

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

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

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

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

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

  7. 痞子衡嵌入式:利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列ROM中的FlexSPI驱动API实现IAP. 痞子衡的技术交流群里经常有群友提问: i.MXRT中的FlexSPI驱动 ...

  8. 痞子衡嵌入式:轻松为i.MXRT设计更新Segger J-Link Flash下载算法文件

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是为i.MXRT设计更新Segger J-Link Flash下载算法文件. 想要在Flash中调试,基本是离不开Flash下载算法的,毕 ...

  9. 痞子衡嵌入式:盘点国内RISC-V内核MCU厂商(2020年发布产品)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内RISC-V内核MCU厂商(2020). 虽然RISC-V风潮已经吹了好几年,但2019年才是其真正进入主流市场的元年,最近国内大量 ...

随机推荐

  1. 第1课 - make和makefile

    第1课 - make 和 makefile 1. make make 是一个应用程序,位于 /usr/bin/make 目录下,make 有如下的功能: (1)解析源程序之间的依赖关系 (2)根据依赖 ...

  2. Windows提示80被占用

    情景:使用cmd启动某一服务的时候报错[emerg] 7220#6900: bind() to 0.0.0.0:80 failed (10013: An attempt was made to acc ...

  3. 从一次编译出发梳理概念: Jetty,Jersey,hk2,glassFish,Javax,Jakarta

    从一次编译出发梳理概念: Jetty,Jersey,hk2,glassFish,Javax,Jakarta 目录 从一次编译出发梳理概念: Jetty,Jersey,hk2,glassFish,Jav ...

  4. 用友yonsuite产品二开之简单的yonsql查询小工具

    和以往的用友产品不同,yonsuite产品开发了低代码平台,满足客户的个性化开发需求.嗯~,一句话不知当讲不当讲,那就讲:所谓低代码平台就是开发不想用实施不会用系列.让我一个开发感受到了憋屈.

  5. c++中清空输入缓冲区的方法(做cf的时候炸了)

    C/C++ 四种清空输入缓冲区的方法 比较实用的一种 char c; while(c=getchar()!='\n'); 或者是这种 cin.ignore(count,c); count代表要清除的字 ...

  6. 每天一个dos命令-del.

    比较常用的选项: /F 强制删除只读文件. /Q 安静模式.删除全局通配符时,不要求确认 文件名或者路径中有空格,需要使用引号包围 常用的实例:del  /q/f   c:\Securitylog\S ...

  7. kafka学习(四)kafka安装与命令行调用

    文章更新时间:2020/06/07 一.安装JDK 过程就不过多介绍了... 二.安装Zookeeper 安装过程可以参考此处~ 三.安装并配置kafka Kafka下载地址  http://kafk ...

  8. Oracle学习(十六)Oracle安装

    为了本地创建数据库自己玩耍,还是下个Oracle的客户端吧... 一.下载地址 注意,要用Oracle的帐号进行登录后才能下载 http://download.oracle.com/otn/nt/or ...

  9. Windows10上安装MySQL(详细)

    一.下载MySQL 1.在浏览器里打开mysql的官网http://www.mysql.com 2.进入页面顶部的"Downloads" 3.下滑页面,打开页面底部的"C ...

  10. 动态生成简约MVC请求接口|抛弃一切注解减少重复劳动吧

    背景 目前创建一个后端请求接口给别人提供服务,无论是使用SpringMVC方式注解,还是使用SpringCloud的Feign注解,都是需要填写好@RequestMap.@Controller.@Pa ...