--
  恩智浦半导体从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哪里逃的更多相关文章

  1. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在恩智浦MCUXpresso IDE下的使用

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...

  2. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在IAR EW for Arm下的使用

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...

  3. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Keil MDK下的使用

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...

  4. 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用

    痞子衡主导的"学术"项目 <RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计> v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个 ...

  5. 痞子衡嵌入式:MCUBootUtility v2.3发布,这次不再放过任何一款Flash

    -- 痞子衡的 NXP-MCUBootUtility 开源项目自2018年8月27日第一笔提交至今已有21个月,目前累计代码已近50000行.相信这个工具为大家开发 i.MXRT 项目提供了一些便利, ...

  6. 痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件

    -- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3.1)发布过去2个月了,这一次痞子衡为大家带来了版本升级v2.4.0,这个版本主要有一个非常重要的更新需要跟大家特别说 ...

  7. 痞子衡嵌入式:MCUBootUtility v3.0发布,开始支持LPC, Kinetis啦

    -- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.4.0)发布过去2个半月了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,NXP-MCUBootUtil ...

  8. 痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生

    -- 痞子衡维护的NXP-MCUBootFlasher工具(以前叫RT-Flash)距离上一个版本(v2.0.0)发布过去一年半以上了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,N ...

  9. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.0)- FlexSPI NOR启动时间(RT1170)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 FlexSPI NOR启动时间. 痞子衡刚刚拿到i.MXRT1170 B0版本的芯片,迫不及待地在上面跑了 ...

随机推荐

  1. win命令获取外网ip

    win命令: chcp 65001 curl https://ip.cn bat: @echo offchcp 65001 && curl https://ip.cnpause 链接: ...

  2. Android环境配置(Eclipse全开发环境下载)

    Android环境配置 前期准备 Android环境的Eclipse: 网站链接:https://www.runoob.com/w3cnote/android-tutorial-eclipse-adt ...

  3. (二)springMvc原理和手写springMvc框架

    我们从两个方面了解springmvc执行原理,首先我们去熟悉springmvc执行的过程,然后知道原理后通过手写springmvc去深入了解代码中执行过程. (一)SpringMVC流程图 (二)Sp ...

  4. [python]python中的if, while, for

    python中的代码块,通过缩进对齐,来表达代码逻辑. 1. if语句 if expression1: if_suite elif expression2: elif_suite else: else ...

  5. JOBDU 1109 连通图

    题目1109:连通图 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4192 解决:2224 题目描述: 给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的. 输入: 每组数据 ...

  6. codeforces 402 D. Upgrading Array(数论+贪心)

    题目链接:http://codeforces.com/contest/402/problem/D 题意:给出一个a串和素数串b .f(1) = 0; p为s的最小素因子如果p不属于b , 否则 . a ...

  7. Prometheus安装

    Prometheus安装 下载地址: https://prometheus.io/download/ 现在时间是: 2019.09.07 安装环境: Linux centos7 minimal 虚拟机 ...

  8. mysql之innodb-锁

    本篇主要根据innodb存储引擎的锁进行阐述,包括分类,算法,以及锁的一些问题 一.锁的概述 为了保证最大程度的利用数据库的并发访问,又要确保每个用户能以一致的方式读取和修改数据,为此锁就派上了用场, ...

  9. python爬虫-模拟微博登录

    微博模拟登录 这是本次爬取的网址:https://weibo.com/ 一.请求分析 找到登录的位置,填写用户名密码进行登录操作 看看这次请求响应的数据是什么 这是响应得到的数据,保存下来 exect ...

  10. Corosync fence盘替换

    前面创建盘的步骤省略 1.在节点A执行: sbd -d /dev/mapper/fence_lun001 -d /dev/mapper/fence_lun002 -d /dev/mapper/fenc ...