2022-01-04 14:16:23|已瀏覽:5088次

有兩種主要情況使嵌入式開發人員不會在處理器上使用 MPU;一個簡單的項目和一個性能關鍵的項目。第一個很簡單;一個非常簡單的應用程序可能無法從使用 MPU 所增加的復雜性中受益。無需設置涵蓋閃存、RAM 和外圍設備的 MPU 區域,你的閃爍演示可能就可以完成。
如果你需要處理器的每一滴性能,那么使用 MPU 的開銷可能會讓你大吃一驚。使用 MPU 的 FreeRTOS 端口中的任務上下文切換例程更長,因為每個任務都有多個 MPU 區域需要編程。當新任務被上下文切換時,RTOS 必須對每個任務 MPU 區域進行編程,并執行其通常的職責,例如堆疊使用過的寄存器。此外,由于內核代碼和數據受 MPU 保護,因此所有內核函數調用都必須受包裝函數保護。
這個包裝函數只是在調用內核函數之前提升處理器的特權級別,然后恢復特權并返回。這不僅會增加運行代碼所需的時間,而且可能會增加任務所需的堆棧大小。任務的控制塊還必須在其 MPU 區域上存儲信息,并且在某些安全關鍵 RTOS(如 SAFERTOS)的情況下,也將存儲此數據的鏡像。
你還應該警惕,使用 MPU 可能很困難,有時甚至令人沮喪。嵌入式開發人員設計應用程序需要更多時間,因為必須為每個任務考慮 MPU 區域。這些區域中的錯誤,例如不正確的區域長度、權限或未正確鏈接應用程序的數據,可能會導致調試混亂。
本文由培訓無憂網達內教育專屬課程顧問老師整理發布,更多嵌入式開發課程信息可關注培訓無憂網嵌入式開發培訓頻道或添加老師微信:15033336050
注:尊重原創文章,轉載請注明出處和鏈接 http://www.hebeijilong.cn/news-id-12305.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注嵌入式開發頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050