痞子衡嵌入式:恩智浦i.MXRT系列微控制器量产神器RT-Flash用户指南
RT Flash
English | 中文
1 软件概览
1.1 介绍
RT-Flash是一个专为基于NXP i.MX RT系列芯片的产品量产而设计的工具,其功能与官方MfgTool2工具类似,但是解决了MfgTool2工具在实际量产使用中的一些痛点:
- 使用MfgTool2仅能在xml中指定.sb文件,无法直接在GUI里选择.sb文件;
- 使用MfgTool2仅能选择USB端口,无法使用UART端口;
- 使用MfgTool2的USB端口下载时,有时无法识别某些端口连接,必须要加Hub方可识别;
- 使用MfgTool2批量下载时,最多只能支持4块板卡;
借助于RT-Flash,你可以轻松实现批量生产。RT-Flash主要功能如下:
- 支持i.MXRT全系列MCU,包含i.MXRT1015、i.MXRT1021、i.MXRT1051/1052、i.MXRT1061/1062、i.MXRT1064 SIP
- 支持UART和USB-HID两种串行下载方式(COM端口/USB设备自动识别)
- 支持下载.sb格式的image文件进启动设备
- 支持批量下载多个.sb格式的image文件(同一文件夹下)
- 支持批量下载多个板卡(板卡数量不限)
1.2 下载
RT-Flash完全基于Python语言开发,并且源代码全部开源,其具体开发环境为Python 2.7.15 (32bit)、wxPython 4.0.3、pySerial 3.4、pywinusb 0.4.2、PyInstaller 3.3.1(或更高)。
RT-Flash在发布时借助PyInstaller将所有的Python依赖全部打包进一个可执行文件(\RT-Flash\bin\RT-Flash.exe),因此如果不是对RT-Flash的二次开发,你不需要安装任何Python软件及相关库。
Note1: 源代码包里的RT-Flash.exe是在Windows 10 x64环境下打包的,也仅在该环境下测试过,如果因系统原因无法直接使用,你需要先安装 Python2.7.15 x86版本 (安装完成后确认\Python27\, \Python27\Scripts\目录被添加到系统环境变量Path里),然后在\RT-Flash\env\目录下点击do_setup_by_pip.bat安装开发RT-Flash所依赖的Python库,最后点击do_pack_by_pyinstaller.bat重新生成RT-Flash.exe可执行文件。
Note2: 必须使用Python2 x86版本去打包RT-Flash,因为RT-Flash使用了pywinusb库,该库在Python2 x64版本下无法用PyInstaller打包,pywinusb作者没有计划修复该问题。
1.3 安装
RT-Flash是一个是纯绿色免安装的工具,下载了源代码包之后,直接双击\RT-Flash\bin\RT-Flash.exe即可使用。使用RT-Flash没有任何软件依赖,不需要额外安装任何软件。
在RT-Flash.exe图形界面显示之前,会首先弹出一个控制台窗口,该控制台会伴随着RT-Flash.exe图形界面一起工作,很多图形界面的操作都会在控制台窗口看到对应的底层命令执行,保留控制台主要是为了便于定位RT-Flash.exe的问题,目前RT-Flash尚处于早期阶段,等后期软件成熟会考虑移除控制台。
1.4 目录
RT-Flash软件目录组织如下:
\RT-Flash
\apps --放置NXP官方评估板示例.sb格式image文件
\bin --放置RT-Flash可执行文件
\env --放置用于安装RT-Flash开发环境以及打包脚本
\gui --放置开发RT-Flash UI构建工程文件
\img --放置RT-Flash使用过程中需加载的图片
\src --放置开发RT-Flash的所有Python源代码文件
\tools --放置RT-Flash使用过程中需调用的外部程序
\blhost --与Flashloader通信的上位机命令行工具
\sdphost --与ROM通信的上位机命令行工具
1.5 界面
下图为RT-Flash工具的主界面,界面主要由四部分组成,各部分功能如下:
- 【Menu Bar】:功能菜单栏,提供软件通用设置。
- 【Setup Window】:设置栏,提供MCU Device选项、串行接口选项。
- 【Download Window】:下载主界面,提供对目标设备做一键下载操作。
- 【Status Bar】:状态栏,显示软件运行状态信息。
2 准备工作
在使用RT-Flash工具前主要有两个准备工作:一、准备好i.MXRT硬件板以及串行下载连接线(USB/UART);二、准备好用于下载进Flash的.sb格式源文件。
关于串行下载线连接,需要查看i.MXRT参考手册System Boot章节,确保连接的UART/USB引脚是BootROM指定的。
关于.sb格式源文件准备,可借助NXP-MCUBootUtility工具(v1.2.0版本及以上),NXP-MCUBootUtility能够识别五种常见格式(elf/axf/srec/hex/bin)的源image,并且能够将源image文件转换成.sb格式文件。
如果只是为了快速验证RT-Flash工具,在RT-Flash\apps文件夹下默认存放了全系列恩智浦官方i.MXRT评估板的led_blinky应用的.sb格式文件。
3 软件使用
3.1 设置目标芯片
在使用RT-Flash时首先需要配置目标设备,目标设备即MCU Device。以NXP官方开发板EVK-MIMXRT1060为例,该开发板主芯片为i.MXRT1062DVL6A,所以【RT Device】应设为i.MXRT106x。
3.2 设置下载端口
设置好目标设备之后,下一步便是连接目标设备,以USB-HID接口连接为例,给EVK-MIMXRT1060板子供电,并用USB Cable将PC与J9口连接起来,如果一切正常,应该可以在设备管理器找到vid,pid为0x1fc9,0x0135的HID-compliant vendor-defined device设备被枚举。如果没有发现该HID设备,请仔细检查板子SW7拨码开关是否将Boot Mode设为2'b01即Serial Downloader模式。
确认HID设备存在之后,选中USB-HID即可。
3.3 点击一键下载
选中要下载的.sb文件,直接点击【Start】按钮便可将.sb文件下载进启动设备。如果成功下载,【Successful Boards】里数值会变成1,此外状态栏里会显示"Application image file (.sb) has been downloaded successfully!"。
3.4 批量下载
3.4.1 批量多文件
如果你想一次性下载多个.sb文件,你需要将这些文件放置于同一个文件夹,然后在工具里第二个【Browse】下选中这个文件夹(注意必须保证第一个【Browse】按钮里的路径是空),然后直接点击【Start】按钮便可。
3.4.2 批量多板卡
如果你想一次性下载程序进多个板卡,你需要在板卡设置栏【Connected】填入实际连接板卡数(填入数值后必须按键盘上的Enter键来确定),以USB接口为例,此时你会看到【Detected】里会显示实际识别板卡数,最终下载以实际识别板卡数为准。然后直接点击【Start】按钮便可。
如果选择的是UART接口,你必须在【RT Port Index】里逐一选中每个Port进行具体设置,并保证右侧状态均为"Already Set"。
3.5 在HAB Closed情况下
当芯片HAB状态处于Closed的情况下,此时需要将你生成的含签名的flashloader文件放置于RT-Flash指定目录下(此处以RT106x为例),并且文件必须命名为ivt_flashloader_signed.bin。
除此以外,还需确保bltargetconfig.py文件里的两个变量与你的含签名flashloader文件相匹配。
痞子衡嵌入式:恩智浦i.MXRT系列微控制器量产神器RT-Flash用户指南的更多相关文章
- 痞子衡嵌入式:i.MXRT全系列下FlexSPI外设AHB Master ID定义与AHB RX Buffer指定的异同
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT全系列下FlexSPI外设AHB Master ID定义与AHB RX Buffer指定的异同. 因为 i.MXRT 全系列 ...
- 痞子衡嵌入式:i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是OPI DTR模式下反转字节序的Octal Flash在i.MXRT下载与启动注意事项. 在恩智浦官方参考设计板 MIMXRT595-E ...
- 痞子衡嵌入式:i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项. 最近痞子衡在支持一个印度客户,这个客户项目主芯片选择 ...
- 痞子衡嵌入式:i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad. 最近碰到一个客户,他们在 i.MX ...
- 痞子衡嵌入式:i.MXRT中FlexSPI外设对AHB Burst Read特性的支持
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是FlexSPI外设对AHB Burst Read特性的支持. 痞子衡之前写过一篇关于FlexSPI LUT的文章 <从头开始认识i ...
- 痞子衡嵌入式:在i.MXRT1170上启动含DQS的Octal Flash可不严格设Dummy Cycle (以MT35XU512为例)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Octal或Hyper Flash上DQS信号与Dummy Cycle联系. 关于在 i.MXRT 上启动 NOR Flash 时如何设 ...
- 痞子衡嵌入式:串行NAND Flash的两大特性导致其在i.MXRT FlexSPI下无法XiP
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串行NAND Flash的两大特性导致其在i.MXRT FlexSPI下无法XiP. 在嵌入式世界里,当我们提起XiP设备(支持代码原地 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性介绍(2)- RT685EVKA性能实测(Dhrystone)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的性能. 在前面的文章 i.MXRTxxx微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2018 ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.3)- FlexSPI NOR连接方式大全(RT1010)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1010的FlexSPI NOR启动的连接方式. 在写完 <FlexSPI NOR启动连接方式(RT1015/ ...
随机推荐
- Rmq Problem/mex BZOJ3339 BZOJ3585
分析: 一开始没看懂题... 后来想用二分答案却不会验证... 之后,想到用主席树来维护... 建一个权值线段树,维护出这个权值以前所有的点最晚在哪里出现... 之后,查一下是不是比查询区间的l断点大 ...
- cocoapods安装及使用其中 添加新源: gem sources -a https://ruby.taobao.org/
一.概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库. 二.安装 由于 ...
- Android 8.1 源码_启动篇(二) -- 深入研究 zygote(转 Android 9.0 分析)
前言 在Android中,zygote是整个系统创建新进程的核心进程.zygote进程在内部会先启动Dalvik虚拟机,继而加载一些必要的系统资源和系统类,最后进入一种监听状态.在之后的运作中,当其他 ...
- eShopOnContainers 知多少[8]:Ordering microservice
1. 引言 Ordering microservice(订单微服务)就是处理订单的了,它与前面讲到的几个微服务相比要复杂的多.主要涉及以下业务逻辑: 订单的创建.取消.支付.发货 库存的扣减 2. 架 ...
- 【重学计算机】操作系统D6章:并发程序设计
1. 并发程序的基本概念 程序顺序性 内部顺序性:CPU严格按照顺序执行指令 外部顺序性:程序员设计程序时往往用顺序设计的思想 顺序程序特性 程序执行的顺序性 计算环境的封闭性: 程序执行时犹如独占资 ...
- 前端笔记之ES678&Webpack&Babel(上)初识ES678&Babel&let和const&解构&语法
一.ES版本简介和调试运行方法 1.1 ECMAScript简介 MDN手册:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript JavaS ...
- .NETCore 下支持分表分库、读写分离的通用 Repository
首先声明这篇文章不是标题党,我说的这个类库是 FreeSql.Repository,它作为扩展库现实了通用仓储层功能,接口规范参考 abp vnext 定义,实现了基础的仓储层(CURD). 安装 d ...
- 5.3Role和Claims授权「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. Role授权 这是一种Asp.Net常用的传统的授权方法,当我们在 ...
- BFPRT算法
解决的问题:在一个数组中找到最小的k个数 常规解法:1.排序,输出前k个数,时间复杂度O(n*log(n)). 2.利用一个大小为k的大根堆,遍历数组维持大根堆,最后返回大根堆就可以了,时间复杂度O( ...
- 对于一个WEB前端初学者,学前端应该注意,有什么技巧
web前端经验总结需要注意的地方和技巧如下: 1.编程思维 学习web前端开发核心在于一个“编程思维”,因为每段代码都不一样,都需要分别去看,所以只要你掌握了学习web前端的编程思维,那么写程序对于你 ...