ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-04-17 20:55:14  阅读:161  来源: 互联网

标签:配置 FDCB 痞子 MCUBootUtility Flash v2.3 工具


时光飞逝,距离上一个版本(v2.2)发布已有半年了,这一次痞子衡为大家带来了全新版本v2.3,新版本除了一些常规新i.MXRT型号支持以及bugfix之外,痞子衡特别花了大功夫彻底解决了NOR Flash支持问题,以后不管是什么Flash统统一网打尽。痞子衡是怎么做到的?且往下看

--
  痞子衡的 NXP-MCUBootUtility 开源项目自2018年8月27日第一笔提交至今已有21个月,目前累计代码已近50000行。相信这个工具为大家开发 i.MXRT 项目提供了一些便利,听闻也有不少客户用这个工具做量产,这是痞子衡坚持维护这个项目的最大意义所在。

  时光飞逝,距离上一个版本(v2.2)发布已有半年了,这一次痞子衡为大家带来了全新版本v2.3,新版本除了一些常规新i.MXRT型号支持以及bugfix之外,痞子衡特别花了大功夫彻底解决了NOR Flash支持问题,以后不管是什么Flash统统一网打尽。痞子衡是怎么做到的?且往下看。

一、v2.3更新记录

二、关于NOR Flash支持的更新

  这次关于NOR Flash支持的更新一共有三条,每条都很关键。

> 特性: 支持512字节完整的FDCB配置作为FlexSPI NOR模型
> 改进: 提供保留源image文件里的FDCB头的选项设置
> 修复: 有时候配置flash时无法显示其Page/Sector/Block Size信息

2.1 正确显示Flash信息

  先说bugfix,客户经常反映使用工具连接i.MXRT芯片配置Flash时,明明Flash模型选对了,但是在工具左下角Device Status窗口里看到的Page/Sector/Block Size全都是"- - - - - - - - ",导致底下无法继续烧写image文件,这个问题从v1.0版本开始就一直存在,并不是工具本身的问题,而是工具依赖的Flashloader机制问题,这次痞子衡用了一个workaround解决了它,这个workaround就是如果无法得到正确的Flash Size属性,就直接用默认的256Byte Page,4KB Sector,128KB Block,这样不影响后续操作。

2.2 保留原image的FDCB

  再来说改进,我们知道工具从v1.1开始支持含i.MXRT启动头(包含FDCB)的image文件,因为恩智浦SDK里的XIP工程默认都会包含启动头,工具对于这个启动头里的FDCB处理(一键启动操作里)一直都是解析出来直接抛弃,因为工具会自动生成一个可用的FDCB来替代它,让我们在板子上实际操作看一下:

  以MIMXRT685-EVK (Rev.E)板子为例,板子ISP模式设为USB ISP,然后插上USB OTG(J7),打开工具,使用默认Flash模型来配置连接(默认Keep FDCB没有选中),然后将工具自带的 \NXP-MCUBootUtility-2.3.0\apps\NXP_MIMXRT685-EVK_Rev.E\led_blinky_0x08001000_fdcb.srec 文件下载进去。

  打开 led_blinky_0x08001000_fdcb.srec 文件与工具回读的内容进行比对,可以发现两者的FDCB是不完全相同的,这证明工具确实没有保留原image文件里的FDCB。

  但是有时候这个FDCB头是客户精心设计的,他就想让工具保留这个FDCB头,对于v2.2以下版本只能在通用编程器界面下载bin文件,一键启动操作里不支持,现在v2.3版本里一键启动操作也可以支持了,就在Flash模型配置页面的【Keep FDCB】设置,勾选它,然后重新连接下载即可。

2.3 完整FDCB配置连接

  最后重点聊一聊本次的最重大更新,完整FDCB配置连接。在Flash模型配置页面,以前都只能设置一些精简的option参数来配置Flash,这种方式仅能支持含SFDP表的Flash,并且很多FlexSPI属性配置都无法设(比如DQS信号来源等),全新v2.3版本增加了Complete_FDCB选项,选择这个,便可以进一步点击【Complete FDCB Configuration (512bytes)】按钮进到FDCB配置页面。

  在FDCB配置页面,你可以尽情设置那些参数,这些参数都来源于恩智浦SDK包源文件里的 flexspi_mem_config_t 结构体,每个参数具体定义详见芯片手册的ROM章节,使用这个完整FDCB配置的朋友需要对FlexSPI外设有一定了解。

  使用完整FDCB配置的最大好处是无论Flash是否含有SFDP,我们现在都可以正常访问配置了,比如我们可以用工具目录下预存的 \NXP-MCUBootUtility-2.3.0\gen\fdcb_file\cfg_fdcb_RTxxx_1bit_sdr_flashB.bin 来重新连接,事实上这个fdcb配置文件几乎适用所有挂在RT600 FlexSPI PortB上的Flash型号(假设Flash默认工作在1bit SDR模式),因为它配置的是1bit SDR模式来访问Flash。

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

  • 地址1: https://github.com/JayHeng/NXP-MCUBootUtility
  • 地址2: https://gitee.com/jayheng/NXP-MCUBootUtility


标签:配置,FDCB,痞子,MCUBootUtility,Flash,v2.3,工具
来源: https://blog.51cto.com/u_12094353/2713921

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有