首页 > 其他分享 >痞子衡嵌入式:MCUBootUtility v5.3发布,利用XMCD轻松使能外部RAM

痞子衡嵌入式:MCUBootUtility v5.3发布,利用XMCD轻松使能外部RAM

时间:2023-09-29 22:11:51浏览次数:46  
标签:使能 XMCD MCUBootUtility DCD RAM FlexSPI 地址 v5.3

--
  痞子衡维护的 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\targets\xxx\bltargetconfig.py 文件中仅可见如下定义(RT1180为例),即一个 FlexSPI 仅对应一个主映射地址:

flexspiNorMemBase0 = 0x38000000
flexspiNorMemBase1 = 0x14000000

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

  但是这里有关于 RT1180 的一点注意事项,工具目录 \src\targets\MIMXRT1189\ 下预先放了两个版本的 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 功能而做的改进。

2.3 对于RT1170 XMCD功能支持

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

  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)功能已经非常完备,你还是可以在此基础上再添加自己想要的功能。如此神器,还不快快去下载试用?

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

标签:使能,XMCD,MCUBootUtility,DCD,RAM,FlexSPI,地址,v5.3
From: https://www.cnblogs.com/henjay724/p/17737431.html

相关文章

  • CCF HPC China2023|澎峰科技:使能先进计算,赋能行业应用
    CCFHPCChina2023圆满落幕! 桂秋八月,为期三天的中国高性能计算领域最高规格盛会——2023CCF全球高性能计算学术年会(HPCChina)在青岛红岛国际展览中心圆满落幕。行业超算大咖、顶级学界精英、先锋企业领袖参会者齐聚山东青岛,共同探讨高性能计算、人工领域、大数据等诸多前沿领域......
  • buildroot 构建根文件系统(2)使能 SSH
    一、开发背景承接上一章节,构建最小系统后成功运行后,发现没有SSH功能SSH:SecureShellProtocol,开发阶段常用SSH远程传输文件,只要匹配IP地址即可二、开发需求配置系统使能SSH功能三、开发环境LinuxUbuntu 4.15.0-65-generic+ buildroot-2023.0......
  • [ESP] 使能片外Flash导致iram编译失败
    esp-idf的版本是V4.4.2idfmenuconfig使能片外Flashidfbuild编译报错编译报错原因因为开了这个之后,iram0text字段的消耗变大,导致编译失败。通过idfsize可以看到iram已经超了。解决办法menuconfig->Compileroption->OptimizationLevel->Optimizeforsize从(-......
  • 盘古大模型加持,华为云开天aPaaS加速使能千行百业应用创新
    摘要:开天aPaaS,让优秀快速复制,支撑开发者及伙伴上好云、用好云。本文分享自华为云社区《盘古大模型加持,华为云开天aPaaS加速使能千行百业应用创新》,作者:开天aPaaS小助手。7月7-9日,华为开发者大会(Cloud)2023在东莞隆重召开。此次大会,华为云开天aPaaS带来了主题演讲、高峰论坛、开放......
  • 鼎桥携新品首秀新加坡科技展,使能数字经济高质量发展
    当前,数字经济的“飞轮”正在加速转动,数字技术在深刻影响社会生产生活的同时,也在持续推进全球经济格局的重塑。面对新的发展环境和态势,企业需要不断整合自身技术、经验以及产业优势资源,积极面向海内外拓展“朋友圈”,在瞬息万变的数智浪潮中探索更具确定性的数字蓝海。作为全球增长最......
  • 华为深耕基础软件开源,使能千行百业创新
    6月11日至13日,2023年开放原子全球开源峰会(以下简称“峰会”)在北京盛大召开。作为立足中国,面向世界的顶级开源盛宴,峰会依托国际化平台,聚集政、产、学、研、用、创、投、金等各领域的优势资源,共商开源发展大计,共筑开源发展未来。作为开源的坚定支持者与重要贡献者,华为也受......
  • 痞子衡嵌入式:MCUBootUtility v5.0发布,初步支持i.MXRT1180
    --痞子衡维护的NXP-MCUBootUtility工具距离上一个大版本(v4.0.0)发布过去4个多月了,期间痞子衡也做过两个小版本更新,但不足以单独介绍。这一次痞子衡为大家带来了全新大版本v5.0.0,这次更新主要是想和大家特别聊聊恩智浦新一代i.MXRT旗舰RT1180。一、v4.1-v5.0更新记录-......
  • Verilog 处理方式 输入的使能信号 多次触发
    一个模块里面有输入的使能信号,但是使能信号的持续时长不一致,会出现使能信号持续时间过长,可能多次触发本模块的功能。时间过短则会不能触发,这种情况要调整本模块的输入时钟,要能采集到使能信号的上升沿。时间过长的处理思想:模块里预设一个busy信号,忙信号,接收到使能信号,且busy信号为......
  • 一图读懂!CodeArts Pipeline全新升级,5大特性使能企业研发治理
    2023年2月27日,华为云正式发布流水线服务CodeArtsPipeline,旨在提升编排体验,开放插件平台,并提供标准化的DevOps企业治理模型,将华为公司内的优秀研发实践赋能给伙伴和客户,现在......
  • 一图读懂CodeArts Pipeline全新升级,5大特性使能企业研发治理
    2023年2月27日,华为云正式发布流水线服务CodeArtsPipeline,旨在提升编排体验,开放插件平台,并提供标准化的DevOps企业治理模型,将华为公司内的优秀研发实践赋能给伙伴和客户,现......