0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NXP MCUBootUtility v5.3版本特性解析

痞子衡嵌入式 来源:痞子衡嵌入式 2023-10-18 14:30 次阅读

痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v5.0.0)发布过去4个多月了,期间痞子衡也做过三个小版本更新,但不足以单独介绍。这一次痞子衡为大家带来了全新重要版本v5.3.x,这次更新主要是想和大家特别聊聊 XMCD 这个特性的支持。

一、v5.1 - v5.3更新记录

-- v5.1.0
Features:
    1. [RT1180] 支持自动加载Edgelock固件

-- v5.2.0
Features:
    1. [RTyyyy] 支持i.MXRT118x B0
    2. [RT] 对于FlexSPI NOR设备,支持下载安全与非安全两种地址链接的CM33程序
    3. [RT] 对于FlexSPI NOR设备,支持别名地址链接的程序
Improvement:
    1. [RT1180] 用户输入的源程序文件可以包含启动头 (Container)

-- v5.2.1
Bufixes:
    1. [RTyyyy] 修复对FlexSPI NAND设备的下载支持

-- v5.3.0
Features:
    1. [RTyyyy] 支持XMCD配置功能,可用于加载image进FlexSPI RAM/SEMC SDRAM执行
    2. [RTyyyy] 支持第二个FlexSPI去下载启动NAND
    3. [RT] 新增FlexSPI NAND启动设备模型支持
Improvement:
    1. [RTyyyy] 将FlexSPI序号选择从菜单栏改至设备配置界面
    2. [RTyyyy] 可以识别链接在FlexSPI RAM区域的程序
Bufixes:
    1. [RTyyyy] 无法识别IVT中复位函数地址相对向量表首地址偏移小于0xB00的可启动程序文件

-- v5.3.1
Improvement:
    1. [RT] 可以检查不同FlexSPI序号的有效XIP范围
    2. [RTxxx] 可以识别链接在FlexSPI RAM区域的程序
Bufixes:
    1. [RT1180] 在FlexSPI NOR启动设备下无法生成一些Non-XIP程序的可启动程序

二、几个不可忽视的更新

2.1 完善的FlexSPI NOR映射地址支持

在 v5.0 及其之前的版本里,工具对于 FlexSPI NOR 设备映射地址的支持比较单一。在工具目录 src argetsxxxltargetconfig.py 文件中仅可见如下定义(RT1180为例),即一个 FlexSPI 仅对应一个主映射地址:

flexspiNorMemBase0 = 0x38000000
flexspiNorMemBase1 = 0x14000000

但是我们知道部分 i.MXRT 型号系统设计里对于 FlexSPI 除了支持主映射地址外,还支持所谓的别名映射地址(Aliased Address),甚至 CM33 内核的 i.MXRT 型号里还区分 Secure 和 Non-Secure 地址。因此 v5.3 里进一步丰富了 FlexSPI NOR 设备的映射地址,这样我们在编译链接 XIP 启动程序的时候,地址选择更加灵活。此外这里如果你仔细看,会发现工具对于最大映射地址空间检查也按 RT 型号不同做了具体区分。

0dbcf9d8-5ed3-11ee-939d-92fbcf53809c.png

但是这里有关于 RT1180 的一点注意事项,工具目录 src argetsMIMXRT1189 下预先放了两个版本的 flashloader,一个仅支持 Secure 地址,另一个仅支持 Non-Secure 地址,这是当前 flashloader 实现的限制。为了能让工具自动根据用户输入源程序实际链接地址类型来选择合适的 flashloader 去做擦写操作,需要先点击一次 Generate xxType Bootable Image 按钮之后再点击 Connect to ROM 按钮,最后再 All-In-One Action

cntr_flashloader_s.bin
cntr_flashloader_ns.bin

2.2 支持链接在FlexSPI RAM区域的程序

对于 Non-XIP 程序,除了链接在 RT 芯片内部 SRAM 空间之外,还可以链接在外部 RAM 空间,比如 SEMC 接口对应的 SDRAM 设备,或者 FlexSPI 接口对应的 HyperRAM 或者 PSRAM 设备。v5.0 及之前工具仅能支持链接在 SDRAM 的程序,对于链接在 FlexSPI 映射空间的 Non-XIP 程序,工具会直接报非法地址。v5.3 版本开始,这个限制将不复存在(见如下对 RT1180 FlexSPI RAM 地址的支持),这也是为了配合 DCD 以及 XMCD 功能而做的改进。

0dccb260-5ed3-11ee-939d-92fbcf53809c.png

2.3 对于RT1170 XMCD功能支持

从 RT1160/1170 B0 以及其后的 RT1180 开始,BootROM 里新增了 XMCD 功能,这是对 DCD 功能的补充。我们知道 DCD 可以实现对芯片指定外设的用户定制化配置,常常用于配置 SEMC 寄存器去初始化 SDRAM 或者 FlexSPI 寄存器去初始化 HyperRAM/PSRAM,但是 DCD 的配置太细致,需要从外设寄存器角度去理解那些外部 RAM 存储器特性,这种方式从应用角度来说不够友好。XMCD 正是为了解决这个问题,其将对 SDRAM/HyperRAM 配置以一种对用户更友好更简洁的方式来呈现,见如下界面设置:

0dd0fd3e-5ed3-11ee-939d-92fbcf53809c.png

XMCD 虽好,但是其和 DCD 配合使用在当前工具里会有一些限制,这主要是因为工具依赖的 RT1170 底层工具链(elftosb)对于 dcd 数据的生成仅支持相对 IVT 起始地址 0x40 的偏移,但这个偏移恰恰又是 XMCD 的偏移位置,两者有冲突:

限制 1:如果是 All-In-One Action 操作,不可在界面里同时使能 DCD 和 XMCD。如果两者同时使能,XMCD 设置会被自动忽略。

限制 2:如果是 All-In-One Action 操作,用户源应用程序里如果包含 DCD 数据结构,那么工具界面里 XMCD 设置也会被自动忽略。

限制 3:如果是 All-In-One Action 操作,用户源应用程序里如果包含 XMCD 数据结构,且工具界面里 DCD 被使能,那么 XMCD 数据结构将会被丢弃。

当然如果你有一个同时包含 DCD 和 XMCD 数据的可启动文件,可以在工具通用编程器(Boot Device Memory)界面使用 Write 按钮去下载。

至此,这次更新的主要特性便介绍完了。MCUBootUtility项目地址如下。虽然当前版本(v5.3.x)功能已经非常完备,你还是可以在此基础上再添加自己想要的功能。如此神器,还不快快去下载试用?

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16016

    浏览量

    343620
  • NXP
    NXP
    +关注

    关注

    60

    文章

    1214

    浏览量

    177236
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39846
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113705

原文标题:MCUBootUtility v5.3发布,利用XMCD轻松使能外部RAM

文章出处:【微信号:pzh_mcu,微信公众号:痞子衡嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CCS v5.3 和许可证

    CCS v5.3 和许可证,找了好久,和大家分享一下。许可证文件,拷贝到/ccsv5/ccs_base/DebugServer/license 下面,即可使用
    发表于 07-16 11:30

    CCS V5.3如何提高编译速度?

    我目前在用CCS V5.3进行项目开发,工程比较大,编译很慢,全部编译一次需要好几分钟。有没有办法提高速度?我记得keil MDK中只要在输出选项中把Browse信息关闭就能显著提高编译速度,不知道CCS有没有相关的设置选项?求高手指点!谢谢
    发表于 06-04 12:53

    CCS V5.3 gmake无法运行

    我用的ccs v5.3版本,用软件仿真跑C6678的程序。软件刚开始用时一切正常,用过一段时间之后,在build工程时,就会出现错误。 Cannot run program "G:\ti
    发表于 06-21 14:39

    请问IARFOR430的5.3版本怎么设置才能使用printf?

    IARFOR430的5.3版本要怎么设置才能使用printf?
    发表于 04-17 06:35

    NXP-MCUBootUtility介绍

    。1 软件概览1.1 介绍  NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性NXP MCU里BootROM功能相对应,目...
    发表于 11-04 08:06

    NXP-MCUBootUtility的相关资料分享

    NXP MCU Boot UtilityEnglish | 中文1 软件概览1.1 介绍  NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性
    发表于 11-11 07:33

    NXP-MCUBootUtility工具的相关资料推荐

    --  痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3.1)发布过去2个月了,这一次痞子衡为大家带来了版本升级v
    发表于 01-26 07:57

    MCUBootUtility v3.0怎么样?

    MCUBootUtility v3.0怎么样?
    发表于 02-10 06:07

    如何开启NXP-MCUBootUtility工具的HAB签名功能?

    如何开启NXP-MCUBootUtility工具的HAB签名功能?
    发表于 02-28 09:18

    comsol5.3版本亮点_comsol5.3安装_comsol5.3安装教程

    COMSOL Multiphysics 5.3 版本与 5.2a 和更低的版本相比,性能得到了大幅提升,下面我们将来详细comsol 5.3版本
    的头像 发表于 12-21 16:48 5.7w次阅读
    comsol<b class='flag-5'>5.3</b><b class='flag-5'>版本</b>亮点_comsol<b class='flag-5'>5.3</b>安装_comsol<b class='flag-5'>5.3</b>安装教程

    山外官方K60开发板参考代码合集V5.3(支持FX、FN和DNZ)

    本文档的主要内容详细介绍的是山外官方K60开发板参考代码合集V5.3(支持FX、FN和DNZ)
    发表于 11-15 08:00 38次下载

    熟悉Step7 V5.3编程软件的使用及逻辑指令的编程方法实验教程

     本文档的主要内容详细介绍的是西门子plc实验指导之熟悉Step7 V5.3编程软件的使用及逻辑指令的编程方法实验教程
    发表于 09-25 17:38 14次下载
    熟悉Step7 <b class='flag-5'>V5.3</b>编程软件的使用及逻辑指令的编程方法实验教程

    痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南

    交流群。 1 软件概览1.1 介绍  NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性NXP MCU里BootROM功能相对应,目...
    发表于 11-01 16:24 1次下载
    痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具<b class='flag-5'>NXP-MCUBootUtility</b>用户指南

    痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南

    NXP MCU Boot Utility English | 中文1 软件概览1.1 介绍  NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性
    发表于 11-05 20:51 5次下载
    痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具<b class='flag-5'>NXP-MCUBootUtility</b>用户指南

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

    --  痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.4.0)发布过去2个半月了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始
    发表于 12-07 12:06 8次下载
    "痞子衡嵌入式:<b class='flag-5'>MCUBootUtility</b> v3.0发布,开始支持LPC, Kinetis啦"