一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么要使用MPU?MPU如何實(shí)現(xiàn)內(nèi)存保護(hù)?

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2022-07-05 17:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

先說明一下MPU,MPU有很多含義,我們常見的有:

MPU:Memory Protection Unit,內(nèi)存保護(hù)單元(本文描述的內(nèi)容);

MPU:Microprocessor Unit,微處理器;

還有,可能有人會與MPU-6050這類模塊聯(lián)系在一起。所以,大家不要把MPU搞混了。

為什么要使用MPU?

如果你開發(fā)的嵌入式項(xiàng)目,因內(nèi)存溢出,或者內(nèi)存故障等一些原因,造成了重大經(jīng)濟(jì)損失,或者造成了重大事故,你就能體會為什么要使用內(nèi)存保護(hù)單元(MPU)了。

嵌入式系統(tǒng)中使用內(nèi)存保護(hù)單元(MPU)可以在開發(fā)早期及時發(fā)現(xiàn)因內(nèi)存而導(dǎo)致的Bug,節(jié)省更多開發(fā)時間。 同時,在項(xiàng)目后期修改Bug,或者增加功能,可以減少修改文檔和測試所需的時間。 poYBAGLEBzGABAnVAACn1eYQigc216.jpg

也就是說,使用MPU,會避免因?yàn)樾薷囊粋€bug,而引起多個bug的情況(0生1,1生萬物)。

MPU如何實(shí)現(xiàn)內(nèi)存保護(hù)

簡單來說就是保護(hù)與當(dāng)前執(zhí)行的代碼不相關(guān)的所有數(shù)據(jù)。

RTOS任務(wù)A和B來說: 任務(wù)A和B不應(yīng)相互交互數(shù)據(jù),但是存在一個錯誤,任務(wù)A可能會意外地寫入任務(wù)B偶爾使用的某些數(shù)據(jù),不會影響任務(wù)A的正確操作。但是,當(dāng)任務(wù)B嘗試使用損壞的數(shù)據(jù)時,任務(wù)B可能會意外故障。 如果沒有配置MPU來阻止任務(wù)A寫入任務(wù)B的數(shù)據(jù),則該錯誤可能需要很長的時間供開發(fā)人員跟蹤。如果錯誤很小,或者如果任務(wù)B很少使用該數(shù)據(jù),則將很難解決該bug。但是,如果使用了MPU,則該bug就會及早被發(fā)現(xiàn)。 在某些體系結(jié)構(gòu)上,MPU甚至可以幫助你檢測NULL指針引用,因?yàn)槟憧梢栽O(shè)置MPU區(qū)域以防止非特權(quán)代碼訪問內(nèi)存0x0。 應(yīng)用程序中一組設(shè)計(jì)良好的MPU區(qū)域可以很好的保護(hù)重要的內(nèi)存區(qū)域,以防止出現(xiàn)特定的問題。 一個很好的例子是通過在MPU區(qū)域的末尾放置緩沖區(qū)來防止緩沖區(qū)溢出,你還可以將任務(wù)堆棧放置在任何非特權(quán)代碼都無法訪問的區(qū)域。如果這樣做,則每個任務(wù)必須使用自己的MPU區(qū)域之一來設(shè)置自己對自己的堆棧的訪問權(quán)限。

使用MPU的好處

無論是操作系統(tǒng),還是裸機(jī)系統(tǒng),如果沒有防止惡意訪問錯誤內(nèi)存的能力,系統(tǒng)將有重大安全問題,以及安全漏洞的雷區(qū)。

使用的內(nèi)存保護(hù)單元(MPU)有很多優(yōu)勢,MPU通常允許你以特權(quán)或非特權(quán)模式運(yùn)行,并使用一組“區(qū)域”來確定當(dāng)前正在執(zhí)行的代碼是否具有訪問代碼和數(shù)據(jù)的權(quán)限。 每個區(qū)域都是一個連續(xù)的內(nèi)存塊,具有該內(nèi)存的一組權(quán)限,特權(quán)和非特權(quán)訪問。與非特權(quán)代碼的子集相比,特權(quán)代碼往往可以訪問大部分(但不是全部)內(nèi)存。 在整個系統(tǒng)運(yùn)行時中,這些區(qū)域不必相同。MPU區(qū)域可以根據(jù)每個任務(wù)進(jìn)行修改,每個任務(wù)可以具有自己獨(dú)特的區(qū)域集,這些區(qū)域在任務(wù)移至運(yùn)行狀態(tài)時進(jìn)行配置。 這使你可以僅對需要代碼和數(shù)據(jù)的任務(wù)設(shè)置訪問權(quán)限,利用MPU的嵌入式操作系統(tǒng)將在每次上下文切換期間管理每個任務(wù)的區(qū)域和特權(quán)級別。 比如設(shè)置RTOS兩個任務(wù)不同的內(nèi)存保護(hù)區(qū)域:

pYYBAGLEBxWACXZ-AAEJCMxikdA848.jpg

上面這張圖,大家都能看懂吧?Flash和內(nèi)存區(qū)域被分別設(shè)置保護(hù)。 兩個全局保護(hù)區(qū)域:Flash開頭、RAM開頭; 在Flash中,一部分僅限任務(wù)1訪問,這部分不能被任務(wù)訪問;同時,在Flash另外區(qū)域,僅限任務(wù)2訪問,不能被任務(wù)1訪問。如果這兩部分區(qū)域被對方訪問,則會生成生成MPU故障。 在RAM區(qū)域,同一部分區(qū)域,一個只能被讀,一個只能被寫入,如果不按約定操作,同樣也會生產(chǎn)MPU故障。

什么時候不使用MPU?

通常有兩種情況可以不使用處理器上的MPU功能:

一個簡單的項(xiàng)目

一個對性能至關(guān)重要的項(xiàng)目

第1個很簡單:一個非常簡單的應(yīng)用程序基本上沒必要使用MPU,反而增加了系統(tǒng)的復(fù)雜性。不設(shè)置內(nèi)存保護(hù),RAM和外圍設(shè)備的MPU區(qū)域,你自己一眼就能找到bug。 第2個對性能要求高的項(xiàng)目,在上下文切換時,設(shè)置內(nèi)存保護(hù),堆棧那些操作,有可能影響系統(tǒng)的實(shí)時性,從而導(dǎo)致系統(tǒng)異常。這個需要結(jié)合項(xiàng)目實(shí)際情況考慮用,還是不用MPU功能。

審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2383

    瀏覽量

    84213
  • MPU
    MPU
    +關(guān)注

    關(guān)注

    0

    文章

    415

    瀏覽量

    49948
  • RTOS
    +關(guān)注

    關(guān)注

    24

    文章

    851

    瀏覽量

    121205

原文標(biāo)題:為什么RTOS系統(tǒng)要使用MPU?

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何使用 SPI 全雙工在兩個 5LP MPU 之間連接 RAM?

    我需要將兩個 5LP MPU 連接在一起以鏡像兩個 5LP MPU 內(nèi)的 RAM。 我認(rèn)為這將是 DMA 的一個功能,但我不確定如何實(shí)現(xiàn)該功能。 我的主 SPI 單元將向從屬 MPU
    發(fā)表于 07-15 06:20

    瑞薩RZ/A3M HMI MPU介紹

    對于高質(zhì)量圖形顯示的應(yīng)用要求,用戶通常采用功能強(qiáng)大及搭載DDR高速接口的MPU實(shí)現(xiàn)更多功能和更流暢的畫面。但在開發(fā)過程會遇到DDR高速總線設(shè)計(jì)的難題,同時Linux系統(tǒng)難以實(shí)現(xiàn)類似MCU的快速啟動性能。瑞薩新推出的RZ/A3M
    的頭像 發(fā)表于 05-27 16:14 ?425次閱讀
    瑞薩RZ/A3M HMI <b class='flag-5'>MPU</b>介紹

    MPU-6000和MPU-6050產(chǎn)品規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《MPU-6000和MPU-6050產(chǎn)品規(guī)格書.pdf》資料免費(fèi)下載
    發(fā)表于 04-29 16:52 ?0次下載

    關(guān)于mpu6050問題

    我很早之前買了一個,我現(xiàn)在使用這個mpu6050,我在調(diào)mpu6050數(shù)據(jù)時候,數(shù)據(jù)抖動特別大,我沒動這個mpu6050,它自己都有抖動,然后本來放在水平,他的機(jī)械中值是2.5,但是我水平抖動后,機(jī)械中值突然變成了-258,這是
    發(fā)表于 03-09 17:17

    常見MPU接口類型及特點(diǎn)

    微處理器單元(MPU)是計(jì)算機(jī)系統(tǒng)中的核心組件,負(fù)責(zé)執(zhí)行程序指令和處理數(shù)據(jù)。MPU接口是連接MPU與其他系統(tǒng)組件(如內(nèi)存、輸入/輸出設(shè)備等)的橋梁。以下是一些常見的
    的頭像 發(fā)表于 01-08 09:43 ?884次閱讀

    如何優(yōu)化MPU的能耗

    優(yōu)化MPU(微處理器單元)的能耗是一個綜合性的任務(wù),需要從硬件設(shè)計(jì)、軟件優(yōu)化以及系統(tǒng)集成等多個方面入手。以下是一些具體的優(yōu)化策略: 一、硬件設(shè)計(jì)優(yōu)化 選擇低功耗MPU : 在設(shè)計(jì)之初,應(yīng)根據(jù)應(yīng)用需求
    的頭像 發(fā)表于 01-08 09:41 ?628次閱讀

    MPU的性能評估方法

    Testing) 基準(zhǔn)測試是通過運(yùn)行一組預(yù)定義的測試程序來評估MPU的性能。這些測試程序通常涵蓋了處理器的主要功能,如計(jì)算能力、內(nèi)存訪問速度、浮點(diǎn)運(yùn)算等。通過比較不同MPU在相同基準(zhǔn)測試下的得分,可以直觀地了解它們的性能差異。
    的頭像 發(fā)表于 01-08 09:39 ?789次閱讀

    MPU數(shù)據(jù)傳輸協(xié)議詳解

    在現(xiàn)代電子系統(tǒng)中,微控制器(MPU)扮演著核心角色,負(fù)責(zé)處理各種任務(wù)和數(shù)據(jù)。為了實(shí)現(xiàn)這些功能,MPU需要與其他設(shè)備進(jìn)行數(shù)據(jù)交換。數(shù)據(jù)傳輸協(xié)議就是規(guī)定這些數(shù)據(jù)交換如何進(jìn)行的一套規(guī)則。 MPU
    的頭像 發(fā)表于 01-08 09:37 ?887次閱讀

    MPU的故障排除技巧

    MPU(微處理單元)的故障排除技巧涉及多個方面,包括硬件連接、軟件配置、通信協(xié)議以及系統(tǒng)集成等。以下是一些詳細(xì)的故障排除技巧: 一、硬件連接檢查 接口兼容性 : 確保MPU與其他設(shè)備的接口兼容
    的頭像 發(fā)表于 01-08 09:36 ?719次閱讀

    MPU與數(shù)字信號處理的關(guān)系

    在數(shù)字化時代,微處理器單元(MPU)和數(shù)字信號處理(DSP)技術(shù)已經(jīng)成為實(shí)現(xiàn)復(fù)雜計(jì)算和數(shù)據(jù)處理任務(wù)的關(guān)鍵技術(shù)。MPU作為計(jì)算機(jī)系統(tǒng)的大腦,負(fù)責(zé)執(zhí)行程序指令和處理數(shù)據(jù),而DSP則專注于高效地處理信號
    的頭像 發(fā)表于 01-08 09:29 ?625次閱讀

    MPU在嵌入式系統(tǒng)中的應(yīng)用

    一、MPU的基本功能 微處理器單元(MPU)是嵌入式系統(tǒng)中的大腦,負(fù)責(zé)執(zhí)行程序指令、處理數(shù)據(jù)和控制其他硬件設(shè)備。MPU的基本功能包括: 指令執(zhí)行:MPU能夠從存儲器中讀取指令,解碼這些
    的頭像 發(fā)表于 01-08 09:26 ?925次閱讀

    MPU與MCU的區(qū)別

    和應(yīng)用上存在顯著差異。 MPU與MCU的定義 微處理器單元(MPU) : MPU是一種通用的中央處理單元,它主要設(shè)計(jì)用于執(zhí)行復(fù)雜的計(jì)算任務(wù)。MPU通常包含一個或多個核心,能夠處理廣泛的
    的頭像 發(fā)表于 01-08 09:25 ?1615次閱讀

    什么是MPU控制器及其應(yīng)用

    MPU控制器是現(xiàn)代電子系統(tǒng)中不可或缺的組成部分,它們在各種設(shè)備中扮演著核心角色,從簡單的嵌入式系統(tǒng)到復(fù)雜的計(jì)算機(jī)和服務(wù)器。MPU控制器的設(shè)計(jì)旨在提供高效、可靠的數(shù)據(jù)處理能力,同時保持較低的功耗和成本
    的頭像 發(fā)表于 01-08 09:23 ?818次閱讀

    MPU微處理器的工作原理

    在現(xiàn)代電子設(shè)備中,微處理器(MPU)扮演著至關(guān)重要的角色。從個人電腦到智能手機(jī),再到嵌入式系統(tǒng),MPU都是實(shí)現(xiàn)復(fù)雜計(jì)算任務(wù)的關(guān)鍵。 MPU的基本結(jié)構(gòu)
    的頭像 發(fā)表于 01-07 18:08 ?1434次閱讀

    瑞薩RZ/T系列MPU的中斷重入實(shí)現(xiàn)

    基于Arm的RZ/T系列MPU通過工業(yè)以太網(wǎng)通信提供高性能和高速實(shí)時控制,為自動化市場構(gòu)建高性能系統(tǒng)。RZ/T MPU和RZ/N MPU均基于類似的硬件架構(gòu)開發(fā)而成,并共享相同的軟件環(huán)境,可實(shí)
    的頭像 發(fā)表于 07-23 14:47 ?1115次閱讀
    瑞薩RZ/T系列<b class='flag-5'>MPU</b>的中斷重入<b class='flag-5'>實(shí)現(xiàn)</b>