Giter Club home page Giter Club logo

rt-ufl's Introduction

gantt
    title RT-UFL Release Plan
    dateFormat  YYYY-MM-DD
    section Formal Release
    v0.5           :a1, 2020-09-22, 2020-12-13
    v0.6           :a2, 2020-12-14, 2020-12-21
    v1.0           :a3, 2020-12-22, 2021-06-27
    v2.0           :a4, 2021-06-28, 2023-12-31

RT-UFL (通用下载算法)

GitHub release GitHub commits GitHub All Releases GitHub license

English | 中文

一、简介

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's People

Contributors

jayheng avatar nxp-jay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rt-ufl's Issues

EXT-2 What are the correct settings in JLinkDevices.xml for Embedded Artists i.MXRT1062 with Adesto EcoXIP Flash?

I have tried variations of:

<Device> <ChipInfo Vendor="NXP" Name="MIMXRT1060_UFL_L1" WorkRAMAddr="0x00000000" WorkRAMSize="0x00020000" Core="JLINK_CORE_CORTEX_M7" Aliases="MIMXRT1061xxx5A; MIMXRT1061xxx6A; MIMXRT1062xxx5A; MIMXRT1062xxx6A" /> <FlashBankInfo Name="HyperFlash" BaseAddr="0x60000000" MaxSize="0x04000000" Loader="Devices/NXP/iMXRT_UFL/MIMXRT_FLEXSPI_UFL_512B_4KB.FLM" LoaderType="FLASH_ALGO_TYPE_OPEN" /> </Device>

but J-Link never erases or programs flash

Disable Sector/Block Protection

The non-volatile sector/block protection bits (SEC, BP{1,2,3} and TB) should be cleared before programming.

Block protection is disabled for kSerialNorQuadMode_StatusReg1_Bit6 mode, but not for other modes (like kSerialNorQuadMode_StatusReg2_Bit1/kSerialNorQuadMode_StatusReg2_Bit1_0x31):

status_val &= (uint8_t)~0x3c; // Clear Block protection

Was unable to program my target (MIMXRT1061xxx5A + W25Q128JV) using the MIMXRT1060_UFL_L0 loader due to this.

RT1176 octalflash 使用flash读取会篡改flash配置

我使用RT1176的SPI2接octalflash MX25UM51345G

目前可以正常的通过jflash以及keil下载与debug
1:当我使用jflash读取我下载的程序,将读出来的文件与下载进去的hex进行比较,会出现在flash配置区域(0x60000400-0x60001000)读出的数据与写入的数据不一致的情况,后面应用程序的区域正常。
2:读取之前,重新上电程序可以正常启动,读取后重新上电程序无法正常运行。应该是读取操作篡改了flash配置区域

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.