arm的存储保护单元MPU
生活随笔
收集整理的這篇文章主要介紹了
arm的存储保护单元MPU
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在受保護的系統中,主要有兩類資源需要監視:存儲器系統和外圍設備.存儲器中對區域的訪問可以是讀/寫,只讀或不可訪問,基于當時的處理器模式--管理模式或用戶模式,還有一些附加的權限.區域還有控制cache和寫緩沖器屬性的cache寫策略.當處理器訪問主存的一個區域時,MPU比較該區域的訪問權限屬性和當時的處理器模式.如果請求符合區域訪問標準,則MPU允許內核讀/寫主存;如果存儲器請求導致存儲器訪問違例,則MPU產生一個異常信號. 區域與內核是馮.諾依曼結構還是哈佛結構無關.每個區域通過0~7的號碼來標識和引用.區域的屬性如下:
(1)區域可以相互重疊;
(2)每個區域都分配有一個優先級,該優先級與分配區域的權限無關;
(3)當區域重疊時,具有最高優先級的區域的屬性可以覆蓋其他區域的屬性,優先級僅作用于重疊部分的地址;
(4)區域的起始地址必須是其大小的倍數;
(5)區域的大小可以是4KB~4GB之間的任何2的乘冪;
(6)訪問所定義區域外的存儲器將產生異常.如果是內核預取指令,則MPU產生預取指令中止異常;如果是存儲器數據請求,則產生數據中止異常.
???
??? 在啟用存儲器保護單元之前,必須至少定義一個數據區域和一個指令區域,而且必須在啟用cache和寫緩沖器之前(或同時)啟用存儲器保護單元.控制器通過設置CP15的主寄存器c1~5來配置MPU.通過配置寄存器c2和c3來設置區域的cache和寫緩沖器的屬性,寄存器c5控制區域的訪問權限,在寄存器c6里有8個或16個次寄存器用來定義每個區域的大小和位置.初始化MPU,cache和寫緩沖器需要以下步驟:
(1)使用CP15:c6來定義指令和數據區域的大小和位置
(2)使用CP15:c5來設置每個區域的訪問權限
(3)分別使用CP15:c2和CP15:c3來設置每個區域的cache和寫緩沖器屬性
(4)使用CP15:c1來使能cache和MPU 每個內核有3個CP15寄存器用來控制區域的cache和寫緩沖器屬性.其中CP15:c2:c0:0和CP15:c2:c0:1兩個寄存器保存D-cache和I-cache區域屬性;第三個寄存器,CP15:c3:c0:0用于保存區域寫緩沖器屬性,并應用于存儲器數據區域.當配置數據區域時,區域的cache位和寫緩沖器位一起決定區域的策略.寫緩沖器位有2個用途:使能和禁止區域的寫緩沖器和設置區域的cache策略.區域的cache位控制寫緩沖器位的作用.當cache位為0時,寫緩沖器位為1,則使能寫緩沖器;寫緩沖器位為0,則禁用寫緩沖器.當cache位為1時,cache和寫緩沖器都被使能,此時寫緩沖器位決定cache策略.若寫緩沖器位為0,則區域使用直寫策略;若寫緩沖器位為1,則區域使用回寫策略.
(1)區域可以相互重疊;
(2)每個區域都分配有一個優先級,該優先級與分配區域的權限無關;
(3)當區域重疊時,具有最高優先級的區域的屬性可以覆蓋其他區域的屬性,優先級僅作用于重疊部分的地址;
(4)區域的起始地址必須是其大小的倍數;
(5)區域的大小可以是4KB~4GB之間的任何2的乘冪;
(6)訪問所定義區域外的存儲器將產生異常.如果是內核預取指令,則MPU產生預取指令中止異常;如果是存儲器數據請求,則產生數據中止異常.
???
??? 在啟用存儲器保護單元之前,必須至少定義一個數據區域和一個指令區域,而且必須在啟用cache和寫緩沖器之前(或同時)啟用存儲器保護單元.控制器通過設置CP15的主寄存器c1~5來配置MPU.通過配置寄存器c2和c3來設置區域的cache和寫緩沖器的屬性,寄存器c5控制區域的訪問權限,在寄存器c6里有8個或16個次寄存器用來定義每個區域的大小和位置.初始化MPU,cache和寫緩沖器需要以下步驟:
(1)使用CP15:c6來定義指令和數據區域的大小和位置
(2)使用CP15:c5來設置每個區域的訪問權限
(3)分別使用CP15:c2和CP15:c3來設置每個區域的cache和寫緩沖器屬性
(4)使用CP15:c1來使能cache和MPU 每個內核有3個CP15寄存器用來控制區域的cache和寫緩沖器屬性.其中CP15:c2:c0:0和CP15:c2:c0:1兩個寄存器保存D-cache和I-cache區域屬性;第三個寄存器,CP15:c3:c0:0用于保存區域寫緩沖器屬性,并應用于存儲器數據區域.當配置數據區域時,區域的cache位和寫緩沖器位一起決定區域的策略.寫緩沖器位有2個用途:使能和禁止區域的寫緩沖器和設置區域的cache策略.區域的cache位控制寫緩沖器位的作用.當cache位為0時,寫緩沖器位為1,則使能寫緩沖器;寫緩沖器位為0,則禁用寫緩沖器.當cache位為1時,cache和寫緩沖器都被使能,此時寫緩沖器位決定cache策略.若寫緩沖器位為0,則區域使用直寫策略;若寫緩沖器位為1,則區域使用回寫策略.
轉載于:https://blog.51cto.com/bluefish/59996
總結
以上是生活随笔為你收集整理的arm的存储保护单元MPU的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ArcIMS 投影问题 如何向地图配置文
- 下一篇: 配置System Center Data