簡體   English   中英

什么是ARM Cortex CPU的內存保護策略?

[英]What should be Memory Protection Strategy for ARM Cortex CPU?

我需要用MPU為ARM Cortex M3 / M4處理器實現多任務系統。

在該系統中,將存在一個內核,該內核以特權模式管理資源,而以非特權模式管理用戶應用程序。 我想將User Application與其他應用程序和系統資源分開。

因此,當我切換到新任務時,我將釋放用戶應用程序的堆棧和全局內存區域。 使用ARM Cortex MPU寄存器可以輕松完成此操作。

但是問題是,當發生上下文切換時,我還需要使用一些內核的全局變量。

例如,我正在調用一個函數來在上下文切換期間在PendSV Handler中獲取下一個TCB,但是任務池超出了用戶應用程序區域,並且受到了用戶應用程序的保護。

因此,似乎應該保持平衡,對嗎? 有哪些安全有效的內存保護策略?

當調用Yield函數時,可以在上下文切換之前提升特權模式,但這似乎不是一個好的解決方案。

在這個問題上的一般策略是什么?

也許您可以看一下現有的開源實現,並查看在那里做出了哪些設計決策。 例如,FreeRTOS 在這里具有Cortex-M MPU支持。 它可能無法直接回答您的確切問題,並且您可能必須檢查源代碼以獲取完整的詳細信息。

可能將數據存儲器分為三個區域-用戶,內核和共享。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM