RT-UFL 是一个适用全平台i.MXRT的通用Flash下载算法项目,项目的最终目标是做到一个.FLM文件适用所有的i.MXRT开发板,且不论其连接的哪款Flash型号。

大家好,我是痞子衡,是正经搞技术的痞子。今天给大家带来的是痞子衡的开源项目 RT-UFL。

痞子衡在近两年多的i.MXRT客户项目支持过程中,遇到的一个相当高频的问题就是制作i.MXRT下载算法。我们知道i.MXRT没有内置非易失性存储器,一般都要外挂一块存储器用于加载启动,最常用的是通过FlexSPI外设外挂串行NOR Flash,挂了NOR Flash我们既可以离线启动,也可以在线调试,而在线调试就必然离不开下载算法。

因为是外挂Flash,所以下载算法需要根据Flash的连接以及型号而定,这就需要根据客户板子实际情况来制作匹配的下载算法。下载算法对于了解其原理的人来说,制作一个并不难,但是对于不了解的人来说却又不容易。从我们i.MXRT原厂技术支持角度,重复的工作我们又不太想一次次去做,基于此,痞子衡发起了一个开源项目,命名为 RT-UFL,就是设计一个超级下载算法。这个项目目前还处于研发阶段,如果大家有更好的建议和想法,欢迎在文章下面留言。

项目地址:https://github.com/JayHeng/RT-UFL

一、简介

RT-UFL 是一个适用全平台i.MXRT的通用Flash下载算法项目,项目的最终目标是做到一个.FLM文件适用所有的i.MXRT开发板,且不论其连接的哪款Flash型号。

RT-UFL 主要是为了解决如下七大痛点:

1. 每一个i.MXRT型号都需要一个单独的下载算法文件.2. 同一个i.MXRT型号搭配不同属性的Flash也需要不同的算法文件.3. 同一个i.MXRT型号搭配相同特性的Flash但Flash出厂设置不同(有无SFDP、QE默认状态灯)也需要不同的算法文件.4. Flash连接到i.MXRT不同的FlexSPI引脚上也可能需要不同的算法文件.5. 如果下载算法公共设计部分有不可忽视的缺陷,需要整体更新全部i.MXRT型号对应的下载算法.6. 对于下载算法的发布,没有一个统一的版本管理.7. 在量产过程中,如果更换了Flash型号,则需要对应更换算法文件,对于工厂流程来说有点麻烦.

RT-UFL 从设计上分为三层:

  • 最底层是Driver层:即Low-level驱动,对于i.MXRT来说,就是FlexSPI模块的驱动。
  • 中间是Adapter层:这一层是最核心的,它实现了全i.MXRT平台、全Flash型号的自适应支持。
  • 最顶层是API层:这属于下载算法模板,其实由集成开发环境(Keil、JLink)决定了,不可更改。

二、特性

为了使 RT-UFL 成为一个超级下载算法,它至少要包含如下八个特性:

1. 可以跑在所有i.MXRT型号下.2. 可以支持能用作i.MXRT可启动设备的所有类型Flash.3. 可以擦写连在i.MXRT可启动FleXSPI引脚上的Flash.4. 可以自动识别连接的Flash类型(QuadSPI, Octal-SPI, Hyperbus).5. 可以自动检测Flash中有无SFDP及其版本.6. 可以支持不含SFDP表的Flash.7. 可以自动识别Flash的默认QE状态并开启QE.8. 可以输出一些有效的Flash信息以便后续启动.

痞子衡会记录 RT-UFL 项目开发过程所有疑难点及其解决方法,和大家分享下载算法设计背后的奥秘,后续文章敬请期待!


©著作权归作者所有:来自51CTO博客作者痞子衡V的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. LeetCode算法分类
  2. 比迅雷还要快的视频下载利器You-Get
  3. 将uboot,kernel,rootfs下载到开发板上
  4. Linux wget命令详解
  5. 牛气的JavaScript,让雪花算法成为空气
  6. 解决go get下载包失败问题
  7. 使用python纯手写的一款音乐下载应用程序(带有图形界面)
  8. Python爬虫-QQ音乐下载(详解)
  9. C# 排序算法

随机推荐

  1. android笔记(一)
  2. Android SDK离线快速安装教程 Android SD
  3. Android(安卓)Studio 错误: 非法字符: '
  4. Android 动态加载(三) - 类的加载流程源码
  5. Android Layout属性笔记
  6. 《Android 从初学者入门到成为高手 视频
  7. Android使用fitsSystemWindows属性实现–
  8. Android圆形水波纹按钮的实现(Ripple)
  9. Android技能树 — 排序算法基础小结
  10. android 写 xml时,加layout与不加的区别(如