在您的嵌入式項(xiàng)目中使用MPU它可以為你節(jié)省很多挫折、時(shí)間和金錢。MPU嵌入式開發(fā)人員最大的單一優(yōu)點(diǎn)是可以在開發(fā)早期捕捉錯(cuò)誤,盡快發(fā)現(xiàn)錯(cuò)誤可以顯著縮短開發(fā)時(shí)間,項(xiàng)目后期修復(fù)代碼錯(cuò)誤可以減少文檔和測(cè)試代碼返工,另一方面,盡快修復(fù)錯(cuò)誤將減少項(xiàng)目后期代碼中的錯(cuò)誤數(shù)量,這將簡化識(shí)別和修復(fù)剩余錯(cuò)誤的過程,因?yàn)槎鄠(gè)錯(cuò)誤的可能性較小,這是Ampleon代理保持更可預(yù)測(cè)的時(shí)間表,防止意外延遲。
芯片采購網(wǎng)專注于整合國內(nèi)外授權(quán)IC代理商現(xiàn)貨資源,芯片庫存實(shí)時(shí)查詢,行業(yè)價(jià)格合理,采購方便IC芯片,國內(nèi)專業(yè)芯片采購平臺(tái)。
MPU如何實(shí)現(xiàn)這一點(diǎn)?最明顯的方法是保護(hù)所有與當(dāng)前執(zhí)行的代碼無關(guān)的數(shù)據(jù)。一個(gè)簡單的例子只能用兩個(gè)RTOS任務(wù)A和B來構(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ā)生意外故障。若無配置MPU為了防止任務(wù)A寫入任務(wù)B的數(shù)據(jù),嵌入式開發(fā)人員可能需要很長時(shí)間才能找到這個(gè)錯(cuò)誤。若錯(cuò)誤很微妙,或者任務(wù)B很少使用這些數(shù)據(jù),這個(gè)問題將特別難解決。然而,對(duì)于MPU,錯(cuò)誤的寫入操作會(huì)立即導(dǎo)致異常,從而確定導(dǎo)致錯(cuò)誤的代碼線。
在某些架構(gòu)上,MPU它甚至可以幫助你檢測(cè)NULL取消可以設(shè)置指針取消引用MPU防止非特權(quán)代碼訪問0x0處的內(nèi)存。
一組設(shè)計(jì)良好的應(yīng)用程序MPU該區(qū)域可以明確保護(hù)重要的內(nèi)存區(qū)域,以防止特定問題。通過將緩沖區(qū)放置在一個(gè)很好的例子中MPU防止緩沖區(qū)溢出。您還可以將任何非特權(quán)代碼無法訪問的區(qū)域放置您的任務(wù)堆棧。如果這樣做,每個(gè)任務(wù)都必須使用自己的任務(wù)MPU區(qū)域之一是明確授予自己參觀堆棧的權(quán)限。使用MPU迫使您真正考慮應(yīng)用程序的結(jié)構(gòu),以便您在任務(wù)之間干凈地分離數(shù)據(jù),從而產(chǎn)生更強(qiáng)大和可維護(hù)的代碼庫。
什么時(shí)候不用?MPU?
嵌入式開發(fā)人員不會(huì)在處理器上使用兩種主要情況MPU;一個(gè)簡單的項(xiàng)目和一個(gè)關(guān)鍵的性能項(xiàng)目。第一個(gè)很簡單;一個(gè)非常簡單的應(yīng)用程序可能無法使用MPU受益于增加的復(fù)雜性。不需要設(shè)置閃存,RAM外圍設(shè)備MPU您的閃爍演示可以在區(qū)域內(nèi)完成。
如果您需要處理器的每一滴性能,請(qǐng)使用它MPU費(fèi)用可能會(huì)讓你大吃一驚。使用MPU的FreeRTOS由于每個(gè)任務(wù)都有多個(gè)任務(wù),端口中的任務(wù)上下文切換例程較長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í)甚至令人沮喪。嵌入式開發(fā)人員需要更多的時(shí)間來設(shè)計(jì)應(yīng)用程序,因?yàn)槊總(gè)任務(wù)都必須考慮MPU區(qū)域。這些區(qū)域的錯(cuò)誤,如不正確的區(qū)域長度、權(quán)限或不正確鏈接應(yīng)用程序的數(shù)據(jù),可能會(huì)導(dǎo)致調(diào)試混亂。
- Imagination加入百度飛槳硬件生態(tài)共創(chuàng)計(jì)劃
- 中國AR/VR行業(yè)趨勢(shì)的轉(zhuǎn)變凸顯了智能眼鏡的創(chuàng)新 3D 對(duì)打印處方鏡片的巨大需求
- e絡(luò)盟與KUNBUS簽署新的分銷協(xié)議
- 英特爾CEO:半導(dǎo)體就像石油,晶圓廠必須建在我們想要的地方
- 貿(mào)易庫存豐富KYOCERA AVX產(chǎn)品
- 羅德和施瓦茨發(fā)布了片器件測(cè)試解決方案
- 英特爾攜帶許多合作伙伴OpenVINO?推動(dòng)多領(lǐng)域AI產(chǎn)業(yè)創(chuàng)新發(fā)展
- 一切都在掌握之中
- 計(jì)劃投資軟銀互聯(lián)網(wǎng)部門NFT擴(kuò)大全球增長
- 新能源汽車企業(yè)漲聲 工信部:引導(dǎo)鋰鹽價(jià)格理性回歸
- 以40%的效率從熱量中捕獲光,NREL在熱光伏領(lǐng)域取得突破
- 微納研究院:自主研發(fā)技術(shù),生產(chǎn)優(yōu)質(zhì)核心資源