
在您的嵌入式項(xiàng)目中使用MPU它可以為你節(jié)省很多挫折、時(shí)間和金錢。MPU嵌入式開(kāi)發(fā)人員最大的單一優(yōu)點(diǎn)是可以在開(kāi)發(fā)早期捕捉錯(cuò)誤,盡快發(fā)現(xiàn)錯(cuò)誤可以顯著縮短開(kāi)發(fā)時(shí)間,項(xiàng)目后期修復(fù)代碼錯(cuò)誤可以減少文檔和測(cè)試代碼返工,另一方面,盡快修復(fù)錯(cuò)誤將減少項(xiàng)目后期代碼中的錯(cuò)誤數(shù)量,這將簡(jiǎn)化識(shí)別和修復(fù)剩余錯(cuò)誤的過(guò)程,因?yàn)槎鄠(gè)錯(cuò)誤的可能性較小,這是Ampleon代理保持更可預(yù)測(cè)的時(shí)間表,防止意外延遲。
芯片采購(gòu)網(wǎng)專注于整合國(guó)內(nèi)外授權(quán)IC代理商現(xiàn)貨資源,芯片庫(kù)存實(shí)時(shí)查詢,行業(yè)價(jià)格合理,采購(gòu)方便IC芯片,國(guó)內(nèi)專業(yè)芯片采購(gòu)平臺(tái)。
MPU如何實(shí)現(xiàn)這一點(diǎn)?最明顯的方法是保護(hù)所有與當(dāng)前執(zhí)行的代碼無(wú)關(guān)的數(shù)據(jù)。一個(gè)簡(jiǎn)單的例子只能用兩個(gè)RTOS任務(wù)A和B來(lái)構(gòu)建。任務(wù)A和B不應(yīng)該相互交互,但有一個(gè)錯(cuò)誤。任務(wù)A可能會(huì)意外地將任務(wù)B偶爾使用的數(shù)據(jù)寫入任務(wù)A的正確運(yùn)行中。但當(dāng)任務(wù)B嘗試使用損壞的數(shù)據(jù)時(shí),任務(wù)B可能會(huì)發(fā)生意外故障。若無(wú)配置MPU為了防止任務(wù)A寫入任務(wù)B的數(shù)據(jù),嵌入式開(kāi)發(fā)人員可能需要很長(zhǎng)時(shí)間才能找到這個(gè)錯(cuò)誤。若錯(cuò)誤很微妙,或者任務(wù)B很少使用這些數(shù)據(jù),這個(gè)問(wèn)題將特別難解決。然而,對(duì)于MPU,錯(cuò)誤的寫入操作會(huì)立即導(dǎo)致異常,從而確定導(dǎo)致錯(cuò)誤的代碼線。
在某些架構(gòu)上,MPU它甚至可以幫助你檢測(cè)NULL取消可以設(shè)置指針取消引用MPU防止非特權(quán)代碼訪問(wèn)0x0處的內(nèi)存。
一組設(shè)計(jì)良好的應(yīng)用程序MPU該區(qū)域可以明確保護(hù)重要的內(nèi)存區(qū)域,以防止特定問(wèn)題。通過(guò)將緩沖區(qū)放置在一個(gè)很好的例子中MPU防止緩沖區(qū)溢出。您還可以將任何非特權(quán)代碼無(wú)法訪問(wèn)的區(qū)域放置您的任務(wù)堆棧。如果這樣做,每個(gè)任務(wù)都必須使用自己的任務(wù)MPU區(qū)域之一是明確授予自己參觀堆棧的權(quán)限。使用MPU迫使您真正考慮應(yīng)用程序的結(jié)構(gòu),以便您在任務(wù)之間干凈地分離數(shù)據(jù),從而產(chǎn)生更強(qiáng)大和可維護(hù)的代碼庫(kù)。
什么時(shí)候不用?MPU?
嵌入式開(kāi)發(fā)人員不會(huì)在處理器上使用兩種主要情況MPU;一個(gè)簡(jiǎn)單的項(xiàng)目和一個(gè)關(guān)鍵的性能項(xiàng)目。第一個(gè)很簡(jiǎn)單;一個(gè)非常簡(jiǎn)單的應(yīng)用程序可能無(wú)法使用MPU受益于增加的復(fù)雜性。不需要設(shè)置閃存,RAM外圍設(shè)備MPU您的閃爍演示可以在區(qū)域內(nèi)完成。
如果您需要處理器的每一滴性能,請(qǐng)使用它MPU費(fèi)用可能會(huì)讓你大吃一驚。使用MPU的FreeRTOS由于每個(gè)任務(wù)都有多個(gè)任務(wù),端口中的任務(wù)上下文切換例程較長(zhǎng)MPU區(qū)域需要編程。上下文切換新任務(wù)時(shí),RTOS每一項(xiàng)任務(wù)都必須完成MPU編程區(qū)域并履行其通常的職責(zé),如堆疊使用的寄存器。此外,內(nèi)核代碼和數(shù)據(jù)受到影響MPU因此,所有內(nèi)核函數(shù)的調(diào)用都必須受到包裝函數(shù)的保護(hù)。該包裝函數(shù)只能在調(diào)用內(nèi)核函數(shù)之前提高處理器的特權(quán)水平,然后恢復(fù)特權(quán)并返回。這不僅會(huì)增加運(yùn)行代碼所需的時(shí)間,還會(huì)增加任務(wù)所需的堆棧大小。任務(wù)的控制塊也必須在其中MPU存儲(chǔ)信息并存儲(chǔ)在一些安全關(guān)鍵區(qū)域RTOS(如SAFERTOS)還將存儲(chǔ)此數(shù)據(jù)的鏡像。
還要警惕使用MPU這可能很困難,有時(shí)甚至令人沮喪。嵌入式開(kāi)發(fā)人員需要更多的時(shí)間來(lái)設(shè)計(jì)應(yīng)用程序,因?yàn)槊總(gè)任務(wù)都必須考慮MPU區(qū)域。這些區(qū)域的錯(cuò)誤,如不正確的區(qū)域長(zhǎng)度、權(quán)限或不正確鏈接應(yīng)用程序的數(shù)據(jù),可能會(huì)導(dǎo)致調(diào)試混亂。
- 天數(shù)智芯發(fā)布一周年,首款通用智芯GPU天蓋100向市場(chǎng)展示了中國(guó)第一的強(qiáng)大實(shí)力
- 美光:你的手機(jī)會(huì)更了解你
- 基于大聯(lián)大世平集團(tuán)的推出NXP汽車通用評(píng)估板方案
- 英特爾移動(dòng)平臺(tái)獨(dú)特曝光,Arc A770M將配備32個(gè)Xe核心和16GB GDDR6顯存
- X-FAB宣布采用Cadence EMX Solver電磁仿真技術(shù),加快創(chuàng)新通信和車輛射頻設(shè)計(jì)
- 德科技有助于香農(nóng)通信驗(yàn)證Open RAN的 5G 小蜂窩基站性能
- HUD是下一個(gè)汽車智能功能模塊風(fēng)口?
- 面對(duì)商業(yè)考試 L4自動(dòng)駕駛企業(yè)分化:下沉ADAS或者堅(jiān)守
- VESA 推出 ClearMR 顯示器認(rèn)證項(xiàng)目對(duì)運(yùn)動(dòng)模糊清晰度進(jìn)行分級(jí)
- 不用再用力搶了,很多制造巨頭聲稱芯片短缺有所緩解
- Sierra Space 使用西門子 Xcelerator 太空探索技術(shù)的創(chuàng)新
- 動(dòng)力半導(dǎo)體的創(chuàng)新驅(qū)動(dòng)下一代能源網(wǎng)絡(luò)建設(shè),構(gòu)建未來(lái)可持續(xù)發(fā)展
