問題起因
有人詢問 STM32F7 和 STM32H7 系列庫(kù)例程中有關(guān) MPU 配置中的下面這句加綠色下劃線的代碼的意思是什么?有何用?
問題解析
所謂子區(qū)【Subregion】,當(dāng)我們對(duì)任一存儲(chǔ)空間不小于 256B 的區(qū)域【Region】進(jìn)行 MPU 配置時(shí),往往可以把該區(qū)【region】等分為 8 個(gè)子區(qū)【Subregion】,并可以把當(dāng)前 MPU 配置選擇性地針對(duì)各個(gè)子區(qū)進(jìn)行排除性設(shè)置。在內(nèi)核里有個(gè)關(guān)于 MPU 配置的寄存器 MPU_RASR,其中有個(gè) 8 位字段 SRD 就是用來(lái)設(shè)置各個(gè)子區(qū)的 MPU 排除性設(shè)置或者說(shuō)例外性配置。如果某位為 0,表示該子區(qū)適用當(dāng)前 MPU 配置;如果某位為 1,表示該位所對(duì)應(yīng)子區(qū)不適用當(dāng)前 MPU 配置,即不受當(dāng)前 MPU 配置約束。
問題小結(jié)
本篇內(nèi)容主要涉及內(nèi)核 MPU 配置方面的東西,重點(diǎn)針對(duì)客戶的疑問做了些解答,對(duì) MPU 配置中的子區(qū)概念做了較為詳細(xì)的解讀,以供參考。