女人18毛片水真多,午夜成人无码福利免费视频,欧美丰满熟妇xxxxx,岳和我厨房做爽死我了A片视频

位置:
首頁

>

>

在嵌入式RTOS系統(tǒng)中使用內(nèi)存保護單元(MPU)的好處
時間:

首先解釋MPU,MPU具有很多含義,我們常見的含義是:MPU:內(nèi)存保護單元,內(nèi)存保護單元(本文所述內(nèi)容); MPU:微處理器單元,微處理另外,有人可能會將其與MPU-6050等模塊相關(guān)聯(lián)。

因此,請勿混淆MPU。

嵌入式專欄1為什么使用MPU?如果開發(fā)嵌入式項目,由于某些原因,例如內(nèi)存溢出或內(nèi)存故障,造成重大經(jīng)濟損失或引起重大事故,則可以理解為什么需要使用內(nèi)存保護單元(MPU)。

在嵌入式系統(tǒng)中使用內(nèi)存保護單元(MPU)可以在開發(fā)的早期階段檢測到由內(nèi)存引起的錯誤,從而節(jié)省了更多的開發(fā)時間。

同時,在項目后期修改錯誤或添加功能可以減少文檔修改和測試所需的時間。

換句話說,使用MPU可以避免由于修改一個bug而導(dǎo)致多個bug(0產(chǎn)生1,1產(chǎn)生一切)的情況。

嵌入式專欄2 MPU如何實現(xiàn)內(nèi)存保護簡而言之,它可以保護與當(dāng)前執(zhí)行的代碼無關(guān)的所有數(shù)據(jù)。

以RTOS任務(wù)A和B為例:任務(wù)A和B不應(yīng)相互交換數(shù)據(jù),但是會出現(xiàn)錯誤。

任務(wù)A可能會意外寫入一些任務(wù)B偶爾使用的數(shù)據(jù),這不會影響任務(wù)A的正確操作。

但是,當(dāng)任務(wù)B嘗試使用損壞的數(shù)據(jù)時,任務(wù)B可能會意外失敗。

如果未將MPU配置為阻止任務(wù)A寫入任務(wù)B的數(shù)據(jù),則開發(fā)人員可能需要很長時間才能跟蹤該錯誤。

如果錯誤很小,或者任務(wù)B很少使用數(shù)據(jù),則將很難解決該錯誤。

但是,如果使用MPU,則將盡早發(fā)現(xiàn)該錯誤。

在某些體系結(jié)構(gòu)上,MPU甚至可以幫助您檢測NULL指針引用,因為您可以設(shè)置MPU區(qū)域以防止非特權(quán)代碼訪問內(nèi)存0x0。

應(yīng)用程序中一組精心設(shè)計的MPU區(qū)域可以很好地保護重要的內(nèi)存區(qū)域,以防止出現(xiàn)特定的問題。

一個很好的例子是通過在MPU區(qū)域的末尾放置一個緩沖區(qū)來防止緩沖區(qū)溢出。

您還可以將任務(wù)堆棧放置在任何非特權(quán)代碼都無法訪問的區(qū)域中。

如果這樣做,每個任務(wù)必須使用其自己的MPU區(qū)域之一來為其自身的堆棧設(shè)置其自己的訪問權(quán)限。

嵌入式專欄3使用MPU的好處無論是操作系統(tǒng)還是裸機系統(tǒng),如果沒有能力防止對錯誤內(nèi)存的惡意訪問,該系統(tǒng)將面臨嚴重的安全問題和安全漏洞的雷區(qū)。

所使用的內(nèi)存保護單元(MPU)具有許多優(yōu)點。

MPU通常允許您在特權(quán)或非特權(quán)模式下運行,并使用一組“區(qū)域”來表示。

確定當(dāng)前正在執(zhí)行的代碼是否有權(quán)訪問代碼和數(shù)據(jù)。

每個區(qū)域都是一個連續(xù)的內(nèi)存塊,具有一組權(quán)限,對內(nèi)存的特權(quán)和非特權(quán)訪問。

與非特權(quán)代碼的子集相比,特權(quán)代碼通常可以訪問大多數(shù)(但不是全部)內(nèi)存。

在整個系統(tǒng)的操作中,這些區(qū)域不必相同。

可以根據(jù)每個任務(wù)修改MPU區(qū)域,并且每個任務(wù)可以具有自己的唯一區(qū)域集,這些區(qū)域在任務(wù)移至運行狀態(tài)時進行配置。

這使您可以僅對需要代碼和數(shù)據(jù)的任務(wù)設(shè)置訪問權(quán)限。

使用MPU的嵌入式操作系統(tǒng)將在每次上下文切換期間管理每個任務(wù)的區(qū)域和特權(quán)級別。

例如,為RTOS的兩個任務(wù)設(shè)置不同的內(nèi)存保護區(qū)域:您能理解上圖嗎?閃存和內(nèi)存區(qū)域受到單獨保護。

兩個全局保護區(qū)域:Flash的開頭和RAM的開頭;在Flash中,只有任務(wù)1可以訪問一部分,而任務(wù)則不能訪問該部分。

同時,在Flash的其他區(qū)域中,只有任務(wù)2是可訪問的,而任務(wù)1無法訪問。

如果這兩個區(qū)域相互訪問,將生成MPU故障。

在RAM區(qū)域的同一區(qū)域中,只能讀取一個,只能寫入一個。

如果未按約定執(zhí)行操作,則MPU也將發(fā)生故障。

嵌入式專欄4什么時候不使用MPU?通常在兩種情況下,您不能在處理器上使用MPU功能:一個簡單的項目,一個對性能至關(guān)重要的項目,第一個很簡單:一個非常簡單的應(yīng)用程序基本上不需要使用MPU,但是會增加系統(tǒng)復(fù)雜。

無需設(shè)置外圍設(shè)備的內(nèi)存保護,RAM和MPU區(qū)域,您就可以一目了然地找到錯誤。

具有高性能要求的第二個項目,在上下文切換期間設(shè)置內(nèi)存保護和堆棧操作可能會影響系統(tǒng)的實時性能并導(dǎo)致系統(tǒng)異常。

這需要根據(jù)項目的實際情況來考慮,否則不使用

產(chǎn)品資料
行業(yè)信息