大家好,我是痞子衡,是正經搞技術的痞子,今天給大家帶來的是痞子衡的開源專案 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 專案開發程序所有疑難點及其解決方法,和大家分享下載演算法設計背后的奧秘,后續文章敬請期待!
歡迎訂閱
文章會同時發布到我的 博客園主頁、CSDN主頁、知乎主頁、微信公眾號 平臺上,
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦,

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/208553.html
標籤:嵌入式
上一篇:影像處理之FPN校正
