在您的嵌入式項目中使用MPU它可以為你節省很多挫折、時間和金錢。MPU嵌入式開發人員最大的單一優點是可以在開發早期捕捉錯誤,盡快發現錯誤可以顯著縮短開發時間,項目后期修復代碼錯誤可以減少文檔和測試代碼返工,另一方面,盡快修復錯誤將減少項目后期代碼中的錯誤數量,這將簡化識別和修復剩余錯誤的過程,因為多個錯誤的可能性較小,這是Ampleon代理保持更可預測的時間表,防止意外延遲。
芯片采購網專注于整合國內外授權IC代理商現貨資源,芯片庫存實時查詢,行業價格合理,采購方便IC芯片,國內專業芯片采購平臺。
MPU如何實現這一點?最明顯的方法是保護所有與當前執行的代碼無關的數據。一個簡單的例子只能用兩個RTOS任務A和B來構建。任務A和B不應該相互交互,但有一個錯誤。任務A可能會意外地將任務B偶爾使用的數據寫入任務A的正確運行中。但當任務B嘗試使用損壞的數據時,任務B可能會發生意外故障。若無配置MPU為了防止任務A寫入任務B的數據,嵌入式開發人員可能需要很長時間才能找到這個錯誤。若錯誤很微妙,或者任務B很少使用這些數據,這個問題將特別難解決。然而,對于MPU,錯誤的寫入操作會立即導致異常,從而確定導致錯誤的代碼線。
在某些架構上,MPU它甚至可以幫助你檢測NULL取消可以設置指針取消引用MPU防止非特權代碼訪問0x0處的內存。
一組設計良好的應用程序MPU該區域可以明確保護重要的內存區域,以防止特定問題。通過將緩沖區放置在一個很好的例子中MPU防止緩沖區溢出。您還可以將任何非特權代碼無法訪問的區域放置您的任務堆棧。如果這樣做,每個任務都必須使用自己的任務MPU區域之一是明確授予自己參觀堆棧的權限。使用MPU迫使您真正考慮應用程序的結構,以便您在任務之間干凈地分離數據,從而產生更強大和可維護的代碼庫。
什么時候不用?MPU?
嵌入式開發人員不會在處理器上使用兩種主要情況MPU;一個簡單的項目和一個關鍵的性能項目。第一個很簡單;一個非常簡單的應用程序可能無法使用MPU受益于增加的復雜性。不需要設置閃存,RAM外圍設備MPU您的閃爍演示可以在區域內完成。
如果您需要處理器的每一滴性能,請使用它MPU費用可能會讓你大吃一驚。使用MPU的FreeRTOS由于每個任務都有多個任務,端口中的任務上下文切換例程較長MPU區域需要編程。上下文切換新任務時,RTOS每一項任務都必須完成MPU編程區域并履行其通常的職責,如堆疊使用的寄存器。此外,內核代碼和數據受到影響MPU因此,所有內核函數的調用都必須受到包裝函數的保護。該包裝函數只能在調用內核函數之前提高處理器的特權水平,然后恢復特權并返回。這不僅會增加運行代碼所需的時間,還會增加任務所需的堆棧大小。任務的控制塊也必須在其中MPU存儲信息并存儲在一些安全關鍵區域RTOS(如SAFERTOS)還將存儲此數據的鏡像。
還要警惕使用MPU這可能很困難,有時甚至令人沮喪。嵌入式開發人員需要更多的時間來設計應用程序,因為每個任務都必須考慮MPU區域。這些區域的錯誤,如不正確的區域長度、權限或不正確鏈接應用程序的數據,可能會導致調試混亂。
- Molex莫仕和Salvagnini攜手打造通往工業4.0的快車道,推動工廠更加智能高效
- 如何選擇燃料電池測試設備?IT-M3800
- 泛林集團、Entegris 和 Gelest 攜手推進 EUV 生態系統干膜光刻膠技術
- 匯頂科技:比亞迪、理想等新能源汽車品牌的汽車規級觸摸芯片規模
- 基于ESP32卡林巴琴制作教程
- Littelfuse ITV4030電池保護器提供快速響應 防止過電流和過充損壞
- 每臺售價2億美元 阿斯麥的EUV為什么別人不能制造光刻機?
- 俄羅斯和白俄羅斯創造了替代能源的新技術
- IQE 宣布與全球消費電子領導人達成長期戰略協議
- Spectricity在X-FAB部署專有技術,為移動設備帶來光譜成像功能
- ABB與紅帽共同提供跨工業邊緣和混合云的可擴展數字解決方案
- 瑞薩電子宣布與易靈思和中印云合作 異構共同擴展SoM應用市場