MPU 儲存保護單元概述

2021-06-17 16:55:53 字數 754 閱讀 4931

在cortex‐m3處理器中可以選配乙個儲存器保護單元(mpu),它可以實施對儲存器(主要是記憶體和外設暫存器)的保護,以使軟體更加健壯和可靠。在使用前,必須根據需要對其程式設計。如果沒有啟用mpu,則等同於系統中沒有配mpu。mpu有如下的能力可以提高系統的可靠性: 

阻止使用者應用程式破壞作業系統使用的資料 

阻止乙個任務訪問其它任務的資料區,從而把任務隔開。 

可以把關鍵資料區設定為唯讀,從根本上消除了被破壞的可能。 

檢測意外的儲存訪問,如,堆疊溢位,陣列越界。 

此外,還可以通過mpu設定儲存器regions的其它訪問屬性,比如,是否緩區,是否緩衝等。 

mpu在執行其功能時,是以所謂的「region」為單位的。乙個region其實就是一段連續的位址,只是它們的位置和範圍都要滿足一些限制(對齊方式,最小容量等)。cm3的mpu共支援8個regions。怎麼,嫌少?是少了點,不過,還允許把每個region進一步劃分成更小的「子region」。此外,還允許啟用乙個「背景region」(即沒有mpu時的全部位址空間),不過它是只能由特權級享用。在啟用mpu後,就不得再訪問定義之外的位址區間,也不得訪問未經授權的region。否則,將以「訪問違例」處理,觸發memmanage fault。 

mpu定義的regions可以相互交迭。如果某塊記憶體落在多個region中,則訪問屬性和許可權將由編號最大的region來決定。比如,若1號region與4號region交迭,則交迭的部分受4號region控制。

詳細介紹在《cortex-m3權威指南》--儲存保護單元mpu

Cortex M核心的MPU記憶體保護單元

估計大家經常看見mcu mpu mmu等這類縮寫詞,你們了解mpu嗎?1寫在前面 不知道大家有沒有關注過cortex m核心的一些內容,在stm32大部分型號中都有mpu。mpu是cortex m的選配件,拿stm32f1來說,stm32f10x xl系列的晶元才具有這個mpu儲存保護單元,而其他s...

InnoDB儲存引擎概述 概述

重新整理記憶體池資料,保證記憶體快取的是最新的資料,將已修改的資料檔案重新整理到磁碟中,資料庫發生異常時innodb能恢復至正常執行狀態.負責將緩衝池中的資料非同步重新整理到磁碟,保證資料的一致性,包括髒頁的重新整理,合併插入緩衝,undo頁的 async io處理io請求,四種thread wri...

8 1 1單元測試概述

測試物件 測試目的 發現設計或實現中的邏輯錯誤,及早暴露 中的 缺陷,便於問題的定位和解決。測試方法 一般以白盒測試為主 結合黑盒測試的方法。允許 多個測試單元的測試並行展開。測試步驟 理解設計 概覽源 走讀 設計測試用例 搭建測試環境 執行測試用例 重複進行設計測試用例和載入測試 分析判斷,給出結...