新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Cortex-M3-MPU(存儲(chǔ)器保護(hù)單元)

Cortex-M3-MPU(存儲(chǔ)器保護(hù)單元)

作者: 時(shí)間:2022-05-31 來(lái)源:CSDN 收藏

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

本文引用地址:http://2s4d.com/article/202205/434657.htm

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

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

MPU概覽

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

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

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

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

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

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

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

MPU的典型設(shè)置

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

MPU的自定義設(shè)置后的權(quán)限



關(guān)鍵詞: MPU 微處理器 Cortex-M3

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉