痞子衡嵌入式:MCUBootUtility v2.0来袭,i.MXRT1010哪里逃
--
恩智浦半导体从2017年10月开始正式推出业内首款跨界处理器—i.MX RT系列,如今距离该系列第一款i.MXRT1050发布已过去近2年,i.MX RT系列在行业里应用越来越广泛,i.MX RT系列家族成员也越来越壮大。为了进一步满足不同行业的需求,恩智浦近期推出了i.MX RT系列又一款新品,主打极致性价比,LQFP80小巧封装,主频高达500MHz,售价却不到1美金,它究竟是何方神圣?不用猜啦,它就是i.MXRT1010。为了配合i.MXRT1010的闪亮登场,痞子衡特地将一站式启动工具NXP-MCUBootUtility升级到了v2.0,增加了对i.MXRT1010的全面支持。今天痞子衡就跟大家聊一聊NXP-MCUBootUtility v2.0对i.MXRT1010的支持。
一、i.MXRT1010
本文是双男主阵容,在介绍另一个男主角MCUBootUtility v2.0出场之前,痞子衡先来揭晓第一男主角i.MXRT1010的真容,侧重介绍其跟MCUBootUtility工具息息相关的启动方面的特点。
上图是i.MXRT1010内部模块框图,痞子衡将结合这个框图对i.MXRT1010启动方面特点进行简单剖析:
首先来看Internal Memory部分,i.MXRT1010内部RAM一共128KB,这对于一般单片机应用程序来说已然够用。其内部ROM是64KB(请注意这个ROM不是给用户放代码的,而是用于固化i.MXRT出厂启动代码的),如果你对i.MXRT1010的老大哥i.MXRT1050熟悉的话,你应该知道i.MXRT1050的ROM是128KB,那i.MXRT1010的ROM为啥小了呢?下一段就会给你答案。
继续来看External Memory部分,我们知道老大哥i.MXRT1050支持的启动设备类型比较丰富(Serial NOR/NAND,Parallel NOR/NAND,SD/eMMC,1-bit SPI NOR/EEPROM,SDRAM),而i.MXRT1010则非常单纯,它就只支持Serial NOR这一种启动设备,因此ROM的代码被精简了。
最后看Security部分,老大哥i.MXRT1050支持软件(HAB)和硬件(BEE)两种安全加密启动方式,在这点上小兄弟i.MXRT1010一点也不含糊,甚至有点青出于蓝而胜于蓝,i.MXRT1010也同时支持软硬件安全加密启动,虽然软件加密方面仅保留了验签功能,但是硬件加密模块却由BEE升级为了OTFAD,加密选项更丰富,在线解密效率也更高。
二、MCUBootUtility v2.0
是时候揭晓第二男主角MCUBootUtility v2.0的真容了,下图是v2.0版本主界面,延续了v1.x版本系列的高颜值,并且功能更加全面,它对于i.MXRT1010的支持可不仅仅是简单地生成unsigned bootable image下载进FlexSPI NOR Flash,而是全方位无死角地支持i.MXRT1010的安全加密启动,尤其是OTFAD硬件加密启动。
在i.MXRT1050芯片上使用过MCUBootUtility v1.x的朋友都知道,痞子衡将i.MX RT安全启动等级分为5级,分别如下:
第一级:不启用任何安全措施
第二级:启用HAB签名认证
第三级:启用HAB签名认证与HAB加密
第四级:启用单引擎BEE加密(唯一SNVS Key)
第五级:启用双引擎BEE加密(用户自定义Key)
从MCUBootUtility v2.0引入i.MXRT1010的支持后,i.MX RT安全启动等级又增加2级,分别如下:
第六级:启用单重OTFAD加密(唯一SNVS Key)
第七级:启用双重OTFAD加密(用户自定义Key)
第六级是顶级的安全模式,即用唯一SNVS Key对image进行单重OTFAD级加密,该级别与单引擎BEE加密(唯一SNVS Key)是类似的,只是早期i.MX RT芯片(比如i.MXRT105x)的FlexSPI配套硬件加解密模块是BEE,而后期i.MX RT芯片(比如i.MXRT1011)的FlexSPI配套硬件加解密模块升级为OTFAD。相比于BEE模块,OTFAD模块在加解密效率上提升了很多,并且提供了更加强大的加解密模式。关于OTFAD强大的加解密模式在双重OTFAD加密模式中会进一步介绍。
第七级是顶级的安全模式,即用用户自定义Key对image进行双重OTFAD级加密,前面讲了OTFAD是BEE的升级,那么我们就来比较一下双重OTFAD加密与双引擎BEE加密区别:
- 双引擎BEE加密最多可设3个加密区间,这3个加密区间最多仅能由2组用户密钥来保护;而双重OTFAD加密最多可设4个加密区间,每个加密区间均可设独立的用户密钥,并且所有的用户密钥还由一个全局密钥来保护。
- 双引擎BEE加密的用户密钥是直接存在efuse里的;而双重OTFAD加密存在efuse里的全局密钥可引入扰乱算法来保护。
从软件操作流程上来说,双重OTFAD加密与双引擎BEE加密是类似的,只是密钥配置窗口有差别,我们打开OTFAD的密钥配置窗口看一下:
kek即全局密钥,kek是存放在efuse里的;用户密钥个数与保护区间一致,所有用户密钥均在OTFAD DEK KeyBlob,KeyBlob是存放在外部NOR Flash里的,kek就是用来保护OTFAD DEK KeyBlob的。
至此NXP-MCUBootUtility v2.0对i.MXRT1010的支持,痞子衡就介绍完了。
那么这么好用的工具去哪里下载?其实MCUBootUtility是一个基于Python的开源项目,其项目地址为 https://github.com/JayHeng/NXP-MCUBootUtility, 核心代码约15000多行,虽然当前版本(v2.0.0)功能已经非常完备,你还是可以在此基础上再添加自己想要的功能。如此神器,还不快快去下载试用?
痞子衡嵌入式:MCUBootUtility v2.0来袭,i.MXRT1010哪里逃的更多相关文章
- 痞子衡嵌入式:超级下载算法RT-UFL v1.0在恩智浦MCUXpresso IDE下的使用
痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...
- 痞子衡嵌入式:超级下载算法RT-UFL v1.0在IAR EW for Arm下的使用
痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...
- 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Keil MDK下的使用
痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...
- 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用
痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...
- 痞子衡嵌入式:MCUBootUtility v2.3发布,这次不再放过任何一款Flash
-- 痞子衡的 NXP-MCUBootUtility 开源项目自2018年8月27日第一笔提交至今已有21个月,目前累计代码已近50000行.相信这个工具为大家开发 i.MXRT 项目提供了一些便利, ...
- 痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3.1)发布过去2个月了,这一次痞子衡为大家带来了版本升级v2.4.0,这个版本主要有一个非常重要的更新需要跟大家特别说 ...
- 痞子衡嵌入式:MCUBootUtility v3.0发布,开始支持LPC, Kinetis啦
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.4.0)发布过去2个半月了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,NXP-MCUBootUtil ...
- 痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生
-- 痞子衡维护的NXP-MCUBootFlasher工具(以前叫RT-Flash)距离上一个版本(v2.0.0)发布过去一年半以上了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,N ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.0)- FlexSPI NOR启动时间(RT1170)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 FlexSPI NOR启动时间. 痞子衡刚刚拿到i.MXRT1170 B0版本的芯片,迫不及待地在上面跑了 ...
随机推荐
- .NET平台下,钉钉微应用开发之:获取userid
工作需求,开发钉钉微应用和小程序,之前有接触过支付宝小程序和生活号的开发,流程没有很大的差别,这里记录下我用ASP.NET MVC实现钉钉微应用的开发,并实现获取用户的userid.小弟我技术有限,本 ...
- 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」
0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...
- Codeforces 220C
题意略. 思路: 我们可以把 bi[ i ] 在 ai[ ] 中的位置记录下来,然后算出 i - mp[ bi[i] ] ,再将它压入一个multiset.每次我们就二分地来寻找离0最近的数字来作为答 ...
- Python之函数(一)定义函数以及传参
定义函数以及传参 函数的定义 def 函数名(): 函数体 例子: def func():#def关键字--定义 func函数名--和变量定义规则一样 ()必须要写格式 :声明 语句结束 s=[1,2 ...
- Windows GIT SSH 免密教程
Windows GIT SSH 免密教程 安装git客户端,最新下载地址如下 https://github.com/git-for-windows/git/releases/download/v2.2 ...
- 数据结构C线性表现实
linearList.h #ifndef _INC_STDIO_8787 #define _INC_STDIO_8787 #include <stdio.h> #include <m ...
- 自己实现vue瀑布流组件,含详细注释
我知道vue有瀑布流插件vue-waterfall-easy,但是使用的时候与我的预期有部分别,所以就自己动手写了这个组件 人和动物的根本区别是是否会使用工具,我们不仅要会使用,还要会创造工具,别人提 ...
- 以股票RSI指标为例,学习Python发送邮件功能(含RSI指标确定卖点策略)
本人之前写过若干“给程序员加财商”的系列文,目的是通过股票案例讲述Python知识点,让大家在学习Python的同时还能掌握相关的股票知识,所谓一举两得. 在之前的系列文里,大家能看到K线,均线,成交 ...
- 安装python的第三方库pillow
参考:http://jingyan.baidu.com/article/ff42efa929e6c8c19f220254.html 用Python做图像处理时,需要用到PIL(图像处理库).但是PIL ...
- ios APP上的自动化测试
1. 下载 http://blog.manbolo.com/2012/04/08/TestAutomation.zip%20 2. 开发工具安装:http://jingyan.baidu.com/ar ...