--

  痞子衡维护的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. hystrix源码之AbstractCommand

    AbstractCommand HystrixCommand和HystrixObservableCommand的父类.每个command对应一个HystrixCommandKey.HystrixThr ...

  2. API测试-接口测试基础(1)

    由于自己想学习API方面的测试,但是市面上搜不到相关的图书可以系统学习,网上的内容又零零散散,适合有点API开发基础的人去搜索.为了方面新手学习API测试,现在整理了他人的宝贵经验和自己的学习心得,尽 ...

  3. OOD 面向对象面试干货分享| 面向对象设计的SOLID原则

    S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写. 简写 全拼 中文翻译 SRP The Single Res ...

  4. 多NX如何共存

    在安装NX时,本机已经装了NX其他版本,只能修改当前程序,无法安装,那么多NX如何共存? 如图:先安装了32位NX8.5,后安装64位NX 8.5时弹的框. 解决办法有两种: 1)将已经安装的NX目录 ...

  5. IOT(esp8266)

    今日工具: 硬件: esp8266 DHT11温湿度传感器 软件: Arduino ESP8266 是一款由乐鑫 Espressif 公司制作的低成本的 Wi-Fi 芯片,具有完整的 TCP / IP ...

  6. spring的AspectJ基于XML和注解(前置、后置、环绕、抛出异常、最终通知)

    1.概念 (1)AspectJ是一个基于Java语言的AOP框架 (2)Spring2.0以后新增了对AspectJ切入点表达式的支持 (3)AspectJ是AspectJ1.5的新增功能,通过JDK ...

  7. 详细分析 Java 中启动线程的正确和错误方式

    目录 启动线程的正确和错误方式 前文回顾 start 方法和 run 方法的比较 start 方法分析 start 方法的含义以及注意事项 start 方法源码分析 源码 源码中的流程 run 方法分 ...

  8. spring ioc 源码分析之-- beanDefinition的加载过程以及ComponentScan,@componet,@import @Bean等注解解析过程

    背景:我们启动主启动类后,相应的bean就被扫描进来了,原理是啥? 实现该功能的主要核心类就是:ConfigurationClassPostProcessor,我们看看他的继承体系: 它实现了Bean ...

  9. Python-变量、变量作用域、垃圾回收机制原理-global nonlocal

    变量实现原理决定了Python使用的垃圾回收机制为变量引用计数,当这个对象引用计数为0时候,则会自动执行__del__函数回收资源, del方法只是把变量指向的对象引用计数减一而已并删除这个变量 表达 ...

  10. Django_项目开始

    如何初始Django运行环境? 1. 安装python 2. 创建Django项目专用的虚拟环境 http://www.cnblogs.com/2bjiujiu/p/7365876.html 3.进入 ...