设为首页 加入收藏

TOP

痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南(一)
2019-09-01 23:09:30 】 浏览:106
Tags:痞子 嵌入式 MCU 安全 加密 启动 一站式 工具 NXP-MCUBootUtility 用户指南

NXP MCU Boot Utility

GitHub release GitHub commits GitHub All Releases GitHub license

English | 中文

1 软件概览

1.1 介绍

  NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP MCU里BootROM功能相对应,目前主要支持i.MXRT系列MCU芯片,与NXP官方的标准安全加密配套工具集(OpenSSL, CST, sdphost, blhost, elftosb, BD, MfgTool2)相比,NXP-MCUBootUtility是一个真正的一站式工具,一个工具包含NXP官方所有加密配套工具的功能,并且是全图形用户界面操作。借助于NXP-MCUBootUtility,你可以轻松上手NXP MCU安全加密启动。
  NXP-MCUBootUtility主要功能如下:

  • 支持i.MXRT全系列MCU,包含i.MXRT1015、i.MXRT1021、i.MXRT1051/1052、i.MXRT1061/1062、i.MXRT1064 SIP
  • 支持UART和USB-HID两种串行下载方式(COM端口/USB设备自动识别)
  • 支持五种常用格式(elf/axf/srec/hex/bin)源image文件输入并检查其链接地址的合法性
  • 源image文件既可以是裸源image文件,也可以是含启动文件头的bootable image文件
  • 支持将裸源image文件自动转换成i.MXRT能启动的Bootable image
  • 支持将裸源image文件自动转换成MfgTool和RT-Flash工具能下载的.sb格式文件
  • 支持下载Bootable image进主动启动设备 - FlexSPI NOR、SEMC NAND接口Flash
  • 支持下载Bootable image进备份启动设备 - LPSPI接口NOR/EEPROM Flash
  • 支持DCD配置功能,可用于加载image进SDRAM执行
  • 支持用于开发阶段的非安全加密启动(未签名加密)
  • 支持基于HAB实现的安全加密启动(单签名,签名和加密),证书自动备份
  • 支持基于BEE实现的安全加密启动(唯一SNVS key,用户自定义key)
  • 支持MCU芯片内部eFuse的回读和烧写操作(即专用eFuse烧写器)
  • 支持外部启动设备的任意读写擦操作(即通用Flash编程器)
  • 支持从外部启动设备回读Bootable image,并对其组成部分(NFCB/DBBT/FDCB/EKIB/EPRDB/IVT/Boot Data/DCD/Image/CSF/DEK KeyBlob)进行标注

1.2 下载

  NXP-MCUBootUtility完全基于Python语言开发,并且源代码全部开源,其具体开发环境为Python 2.7.15 (32bit)、wxPython 4.0.3、pySerial 3.4、pywinusb 0.4.2、bincopy 15.0.0、PyAudio 0.2.11、PyInstaller 3.3.1(或更高)。

  NXP-MCUBootUtility在发布时借助PyInstaller将所有的Python依赖全部打包进一个可执行文件(\NXP-MCUBootUtility\bin\NXP-MCUBootUtility.exe),因此如果不是对NXP-MCUBootUtility的二次开发,你不需要安装任何Python软件及相关库。

Note1: 使用NXP-MCUBootUtility之前必须先从NXP官网下载 HAB Code Signing Tool工具,并将其解压放在\NXP-MCUBootUtility\tools\cst\目录下,并且需要修改代码使能AES功能重新生成\NXP-MCUBootUtility\tools\cst\mingw32\bin\cst.exe,否则HAB签名以及加密相关功能无法使用。具体步骤可以参考这篇博客 《开启NXP-MCUBootUtility工具的HAB加密功能 - cst.exe》

Note2: 使用NXP-MCUBootUtility之前必须编译\NXP-MCUBootUtility\tools\image_enc\code下面的源文件生成image_enc.exe,并将其放置在\NXP-MCUBootUtility\tools\image_enc\win,否则BEE加密相关功能无法使用。具体步骤可以参考这篇博客 《开启NXP-MCUBootUtility工具的BEE加密功能 - image_enc.exe》

Note3: 源代码包里的NXP-MCUBootUtility.exe是在Windows 10 x64环境下打包的,也仅在该环境下测试过,如果因系统原因无法直接使用,你需要先安装 Python2.7.15 x86版本 (安装完成后确认\Python27\, \Python27\Scripts\目录被添加到系统环境变量Path里),然后在\NXP-MCUBootUtility\env\目录下点击do_setup_by_pip.bat安装开发NXP-MCUBootUtility所依赖的Python库,最后点击do_pack_by_pyinstaller.bat重新生成NXP-MCUBootUtility.exe可执行文件。

Note4: 必须使用Python2 x86版本去打包NXP-MCUBootUtility,因为NXP-MCUBootUtility使用了pywinusb库,该库在Python2 x64版本下无法用PyInstaller打包,pywinusb作者没有计划修复该问题。

1.3 安装

  NXP-MCUBootUtility是一个是纯绿色免安装的工具,下载了源代码包之后,直接双击\NXP-MCUBootUtility\bin\NXP-MCUBootUtility.exe即可使用。使用NXP-MCUBootUtility没有任何软件依赖,不需要额外安装任何软件。
  在NXP-MCUBootUtility.exe图形界面显示之前,会首先弹出一个控制台窗口,该控制台会伴随着NXP-MCUBootUtility.exe图形界面一起工作,很多图形界面的操作都会在控制台窗口看到对应的底层命令执行,保留控制台主要是为了便于定位NXP-MCUBootUtility.exe的问题,目前NXP-MCUBootUtility尚处于早期阶段,等后期软件成熟会考虑移除控制台。

1.4 目录

  NXP-MCUBootUtility软件目录组织如下:

\NXP-MCUBootUtility
                \apps                 --放置NXP官方评估板示例image文件
                \bin                  --放置NXP-MCUBootUtility可执行文件及用户配置文件
                \doc                  --放置NXP官方安全启动相关的参考文档
                \env                  --放置用于安装NXP-MCUBootUtility开发环境以及打包脚本
                \gen                  --放置NXP-MCUBootUtility使用过程中生成的临时文件
                      \bd_file            --根据配置动态生成的BD文件
                      \bee_crypto         --BEE加密过程中生
首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇调度器增强 下一篇启动期间的内存管理之bootmem_ini..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目