MPU的使用配置原則
MPU是縮減版的MMU。最初的目的是防止一個軟件錯誤或者惡意軟件影響到其他的任務(wù)或者影響到了操作系統(tǒng)本身。
也就是說一個完美設(shè)計好的系統(tǒng),一些惡意程序很難對其進行攻擊,提高了安全性和攻擊難度。
MPU的使用配置原則:
1、對不同的內(nèi)存區(qū)域(不區(qū)分Flash,RAM等)提供訪問權(quán)限的控制。
2、訪問權(quán)限有: R W X
3、如果可以的話。一個任務(wù)不能夠主動升級其訪問權(quán)限,否則會對其他的任務(wù)產(chǎn)生攻擊和信息泄露。比如,意外改寫其他任務(wù)的數(shù)據(jù)。
比如,惡意訪問(讀?。┢渌蝿?wù)的數(shù)據(jù)。
4、如果可以的話。應(yīng)該在初始化時能夠提前配置好各個任務(wù)的權(quán)限。
5、目前從ARM的CPU來看,最簡單的情況的情況。就是把任務(wù)分為兩組,第一組是運行在CPU的高權(quán)限(特權(quán))模式,其他的運行在CPU的低權(quán)限模式。
6、CPU的中斷發(fā)生時,CPU可能運行在高權(quán)限模式。所以,應(yīng)該對ISR分開處理。此時,如果ISR會調(diào)用低權(quán)限任務(wù),此時會提升低權(quán)限任務(wù)的權(quán)限,帶來風(fēng)險。可以在ISR執(zhí)行低特權(quán)任務(wù)時主動降低權(quán)限。
7、一個比較完美的解決方案是,在操作系統(tǒng)提供的任務(wù)切換時進行權(quán)限的控制,比如操作系統(tǒng)能夠根據(jù)初始化的配置時改變?nèi)蝿?wù)的權(quán)限。
8、為了安全考慮,一個任務(wù)可以主動降低其權(quán)限,但是不能隨意(不受限制地)提升自己的權(quán)限。
?
如果完全不使用操作系統(tǒng),很難發(fā)揮MPU的特性。因為需要嚴格區(qū)分各個不同的任務(wù),在實際操作中,task(任務(wù))是被管控的,這和我們平時用到的windows和linux等操作系統(tǒng)是差不多的。
?
文檔:https://www.dianjilingqu.com/469866.html