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