日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cortex-M3-MPU(存储器保护单元)

發布時間:2024/4/13 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cortex-M3-MPU(存储器保护单元) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Cortex-M3-MPU(存儲器保護單元)

  • MPU使命-關鍵系統
  • 這種系統往往都用于性命攸關的場合,且必須連續無故障地工作,比如,火車調度系統、生命維持系統、大型發動機驅動器、核子反應堆控制、網絡/電信的數據交換中樞等。如果失能,將導致慘重的經濟與損失,甚至會使無數人死于非命。因此,決不允許這類系統出現
  • 上述情況。然而,這些系統的復雜度往往都非常高,幾乎不可能由開發人員保證這種可靠性。因此,需要在硬件水平上加入一個“公安機關”。通過它設置各種類型的“禁地”,并且施加多種規章條例。一旦發現違章,則強制改變執行流和處理器的工作狀態,以便可以由軟件做進一步的處理。這樣,就可以為不同的程序限定一個內存使用范圍,從而使野指針或惡意破壞無法影響不允許訪問的區域。此即存儲器保護單元(MPU)。有時,對存儲器的管理更進一步,做到可以對地址執行變換的程度,此時程序使用的地址未必是真實的存儲器地址。它在 MPU 的基礎上,還消滅了內存碎片和浪費,并且能進一步地讓應用程序擁有方便舒適的地址空間,從而使程序規模可以擴大甚至數百倍。此即為“存儲器管理單元”(MMU)。

MPU 概覽

在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控制。

MPU 的典型設置

  • 在典型的情況下,當需要阻止用戶程序訪問特權級的數據和代碼時,可以啟用MPU。在設計MPU?regions時,需要考慮到下列的regions:如下圖:

MPU的自定義設置后的權限

總結

以上是生活随笔為你收集整理的Cortex-M3-MPU(存储器保护单元)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。