痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件
--
痞子衡维护的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文件的更多相关文章
- 痞子衡嵌入式:MCUBootUtility v2.3发布,这次不再放过任何一款Flash
-- 痞子衡的 NXP-MCUBootUtility 开源项目自2018年8月27日第一笔提交至今已有21个月,目前累计代码已近50000行.相信这个工具为大家开发 i.MXRT 项目提供了一些便利, ...
- 痞子衡嵌入式: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,顺 ...
- 痞子衡嵌入式:MCUBootUtility v3.4发布,支持串行NAND
-- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v3.3.0)发布过去 4 个多月了,这一次痞子衡为大家带来了版本升级 v3.4.0,这个版本主要有几个非常重要的更新需 ...
- 痞子衡嵌入式:MCUBootUtility v3.5发布,支持串行NOR的ECC及双程序启动
-- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v3.4.0)发布过去半年了,这一次痞子衡为大家带来了版本升级 v3.5.0,这个版本主要有几个非常重要的更新需要跟大家 ...
- 痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生
-- 痞子衡维护的NXP-MCUBootFlasher工具(以前叫RT-Flash)距离上一个版本(v2.0.0)发布过去一年半以上了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,N ...
- 痞子衡嵌入式:利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列ROM中的FlexSPI驱动API实现IAP. 痞子衡的技术交流群里经常有群友提问: i.MXRT中的FlexSPI驱动 ...
- 痞子衡嵌入式:轻松为i.MXRT设计更新Segger J-Link Flash下载算法文件
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是为i.MXRT设计更新Segger J-Link Flash下载算法文件. 想要在Flash中调试,基本是离不开Flash下载算法的,毕 ...
- 痞子衡嵌入式:盘点国内RISC-V内核MCU厂商(2020年发布产品)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内RISC-V内核MCU厂商(2020). 虽然RISC-V风潮已经吹了好几年,但2019年才是其真正进入主流市场的元年,最近国内大量 ...
随机推荐
- JAVA基础知识之面向对象编程知识汇总
JAVA基础课程部分面向对象已经学习完成,知识结构如下: 总体知识框架: 类的结构: 面向对象编程三大特征: 关键字和抽象类接口等: 常见知识汇总: 成员变量和局部变量比较 有无返回值方法比较: 权限 ...
- 为什么安装了MinGW之后,还是不能在Matlab中使用mex?
原文地址:http://blog.sina.com.cn/s/blog_53c7b1580102xjcw.html 老版本的Matlab自带lcc,在Matlab中输入mex -setup就可以选择. ...
- 论文翻译:2020_Acoustic Echo Cancellation Challenge Datasets And Testingframework
论文地址:ICASSP 2021声学回声消除挑战:数据集和测试框架 代码地址:https://github.com/microsoft/DNS-Challenge 主页:https://aec-cha ...
- 使用vue-cli(vue脚手架)快速搭建项目
vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目.这篇文章将会从实操的角度,介绍整个搭建的过程. 1. 避坑前言 其实这次使用vue-cli的 ...
- 方法区(Method Area)基础知识
堆.栈.方法区堆关系 概述 方法区与堆区一样,是各个线程共享的内存区域 方法区在JVM启动时就会被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的 方法区的大小,跟堆空间一样,可以 ...
- HotSpot VM 中的JIT分类
在HotSpot VM中内嵌有两个JIT编译器,分别为Client Compiler和Server Compiler,但大多数情况下我们简称为C1编译器和C2编译器.开发人员可以通过如下命令显式指定J ...
- Java基础一篇过(五)Map这篇就够了
文章更新时间:2020/03/03 一.Map介绍 Map是Java的一个接口,没有继承,以Key--Value的形式来储存元素信息,常用到的有3个子类实现: HashMap 底层数据结构是散列桶(数 ...
- Java8——Stream流式操作的一点小总结
我发现,自从我学了Stream流式操作之后,工作中使用到的频率还是挺高的,因为stream配合着lambda表达式或者双冒号(::)使用真的是优雅到了极致!今天就简单分(搬)享(运)一下我对strea ...
- RectTransform简析
UGUI简述 UGUI主要提供了两个能力 UI元素的渲染与适配(其中UI元素的Mesh中的position信息就是通过RectTransform生成的,本文重点) 设备事件的响应与处理(Event ...
- 手把手教你springboot中导出数据到excel中
手把手教你springboot中导出数据到excel中 问题来源: 前一段时间公司的项目有个导出数据的需求,要求能够实现全部导出也可以多选批量导出(虽然不是我负责的,我自己研究了研究),我们的项目是x ...