<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Cortex-M3-MPU(存儲器保護單元)

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

          作者: 時間:2022-05-31 來源:CSDN 收藏

          使命-關鍵系統(tǒng)

          本文引用地址:http://www.ex-cimer.com/article/202205/434657.htm

            這種系統(tǒng)往往都用于性命攸關的場合,且必須連續(xù)無故障地工作,比如,火車調(diào)度系統(tǒng)、生命維持系統(tǒng)、大型發(fā)動機驅(qū)動器、核子反應堆控制、網(wǎng)絡/電信的數(shù)據(jù)交換中樞等。如果失能,將導致慘重的經(jīng)濟與損失,甚至會使無數(shù)人死于非命。因此,決不允許這類系統(tǒng)出現(xiàn)

            上述情況。然而,這些系統(tǒng)的復雜度往往都非常高,幾乎不可能由開發(fā)人員保證這種可靠性。因此,需要在硬件水平上加入一個“公安機關”。通過它設置各種類型的“禁地”,并且施加多種規(guī)章條例。一旦發(fā)現(xiàn)違章,則強制改變執(zhí)行流和處理器的工作狀態(tài),以便可以由軟件做進一步的處理。這樣,就可以為不同的程序限定一個內(nèi)存使用范圍,從而使野指針或惡意破壞無法影響不允許訪問的區(qū)域。此即存儲器保護單元()。有時,對存儲器的管理更進一步,做到可以對地址執(zhí)行變換的程度,此時程序使用的地址未必是真實的存儲器地址。它在的基礎上,還消滅了內(nèi)存碎片和浪費,并且能進一步地讓應用程序擁有方便舒適的地址空間,從而使程序規(guī)??梢詳U大甚至數(shù)百倍。此即為“存儲器管理單元”(MMU)。

          MPU概覽

            在Cortex‐M3處理器中可以選配一個存儲器保護單元(MPU),它可以實施對存儲器(主要是內(nèi)存和外設寄存器)的保護,以使軟件更加健壯和可靠。在使用前,必須根據(jù)需要對其編程。如果沒有啟用MPU,則等同于系統(tǒng)中沒有配MPU。MPU有如下的能力可以提高系統(tǒng)的可靠性:

            阻止用戶應用程序破壞操作系統(tǒng)使用的數(shù)據(jù)

            阻止一個任務訪問其它任務的數(shù)據(jù)區(qū),從而把任務隔開。

            可以把關鍵數(shù)據(jù)區(qū)設置為只讀,從根本上消除了被破壞的可能。

            檢測意外的存儲訪問,如,堆棧溢出,數(shù)組越界。此外,還可以通過MPU設置存儲器regions的其它訪問屬性,比如,是否緩區(qū),是否緩沖等。

            MPU在執(zhí)行其功能時,是以所謂的“region”為單位的。一個region其實就是一段連續(xù)的地址,只是它們的位置和范圍都要滿足一些限制(對齊方式,最小容量等)。CM3的MPU共支持8個regions。怎么,嫌少?是少了點,不過,還允許把每個region進一步劃分成更小的“子region”。此外,還允許啟用一個“背景region”(即沒有MPU時的全部地址空間),不過它是只能由特權級享用。在啟用MPU后,就不得再訪問定義之外的地址區(qū)間,也不得訪問未經(jīng)授權的region。否則,將以“訪問違例”處理,觸發(fā)MemManage fault。

            MPU定義的regions可以相互交迭。如果某塊內(nèi)存落在多個region中,則訪問屬性和權限將由編號最大的region來決定。比如,若1號region與4號region交迭,則交迭的部分受4號region控制。

          MPU的典型設置

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

          MPU的自定義設置后的權限



          關鍵詞: MPU 微處理器 Cortex-M3

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();