• 痞子衡嵌入式: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.1Flashloaderflashloader.elf
    Flashloader_RT1050_1.1Flashloaderflashloader.srec
    Flashloader_RT1050_1.1Toolsmfgtools-relProfilesMXRT105XOS Firmwareivt_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-IMXRT1050oardsevkbimxrt1050ootloader_examplesflashloader
    SDK_2.8.2_EVKB-IMXRT1050middlewaremcu-bootinToolsmfgtools-relProfilesMXRT105XOS Firmwareivt_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项目地址如下。虽然当前版本(v2.4.0)功能已经非常完备,你还是可以在此基础上再添加自己想要的功能。如此神器,还不快快去下载试用?

    欢迎订阅

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

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

      最后欢迎关注痞子衡个人微信公众号【痞子衡嵌入式】,一个专注嵌入式技术的公众号,跟着痞子衡一起玩转嵌入式。

    痞子衡嵌入式-微信二维码 痞子衡嵌入式-微信收款二维码 痞子衡嵌入式-支付宝收款二维码

      衡杰(痞子衡),目前就职于恩智浦MCU系统部门,担任嵌入式系统应用工程师。

      专栏内所有文章的转载请注明出处:http://www.cnblogs.com/henjay724/

      与痞子衡进一步交流或咨询业务合作请发邮件至 hengjie1989@foxmail.com

      可以关注痞子衡的Github主页 https://github.com/JayHeng,有很多好玩的嵌入式项目。

      关于专栏文章有任何疑问请直接在博客下面留言,痞子衡会及时回复免费(划重点)答疑。

      痞子衡邮箱已被私信挤爆,技术问题不推荐私信,坚持私信请先扫码付款(5元起步)再发。


  • 相关阅读:
    模板实现一个通用栈
    服务器开发
    objectc获取文件各项属性方法
    Visual C++ MFC 中常用宏的含义
    symbian获取中文的拼音
    sip协议的功能及其应用
    【转】MySQL分区的简单实例,用于解决大数据表的问题
    Symbian c++ 在3版中实现并动态配置开机自启动
    (转)如果你也喜欢用goto
    C++实现查找汉字拼音首字母
  • 原文地址:https://www.cnblogs.com/henjay724/p/13848008.html
Copyright © 2020-2023  润新知