|
大家好,我是痞子衡,是正經(jīng)搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT全系列下FlexSPI外設AHB Master ID定義與AHB RX Buffer指定的異同。! H4 ?; V* U0 Y. ]* \: V
因為 i.MXRT 全系列型號都不含內(nèi)部 Flash(部分 SIP 版本除外),因此用于連接外部 NOR Flash 的 FlexSPI 外設格外受寵。為了提高代碼在 Flash 的原地執(zhí)行效率,恩智浦設計團隊為 FlexSPI 賦予了 Prefetch 特性用來加速訪問效率(用 AHB RX Buffer 緩存數(shù)據(jù))。
. C' Q& M0 ]. Y" a; `0 k: M+ b痞子衡之前寫過一篇關于 Prefetch 效果的實測文章 《FlexSPI外設下AHB讀訪問情形(有預。,那篇文章里只涉及了最簡單的應用場景,即單個 AHB RX Buffer 占據(jù)全部 RX Buffer 空間且僅服務單個 AHB Master - CPU,而實際項目中可能有多個 AHB Master 會對 Flash 進行 AHB 讀訪問,這就引申出了今天的主題:
- o ]! i& e% {) I' J一、AHB Master與AHB RX Bufferi.MXRT 系列上 AHB master 包含 Core、DMA、加密模塊等多達 16 個,這些 Master 都有能力對 Flash 主動發(fā)起 AHB 讀訪問。為了更好地服務這些 Master,F(xiàn)lexSPI 上用于存放預取數(shù)據(jù)的 AHB RX Buffer 不止一個,一般有 4/8 個,用戶可以按需自由分配這些 AHB RX Buffer 的大。ǹ偞笮∈且欢ǖ,一般是 1/2KB),并且可以將某個 AHB RX Buffer 指定給具體的 Master 來獨占使用。
1 A- X" q- n3 \* r* ^6 sNote: i.MXRT 系列上不支持將多個 AHB RX Buffer 分配給同一個 AHB master,這種需求實際上可以通過配置不同的 AHB RX Buffer 大小來實現(xiàn)。 |
|