mFrame
載入中...
搜尋中...
無符合項目
mcxa153::chip::mbc::MBC 類別 參考文件final

MCXA153 記憶體區塊檢查器 (Memory Block Checker) 存取控制靜態工具類別 更多...

#include <MBC.h>

類別mcxa153::chip::mbc::MBC的繼承圖:
ufm::lang::NonInstantiable ufm::lang::Object ufm::lang::Interface

保護方法(Protected Methods)

virtual ~MBC (void) override
 Destroy the object.
 
- 保護方法(Protected Methods) 繼承自 ufm::lang::NonInstantiable
 NonInstantiable (void)=delete
 禁止實例化 NonInstantiable 類別
 
 NonInstantiable (const NonInstantiable &)=delete
 禁止複製建構函式
 
virtual ~NonInstantiable (void) override=default
 Destroy the Non Instantiable object.
 
NonInstantiableoperator= (const NonInstantiable &)=delete
 
NonInstantiableoperator= (NonInstantiable &&)=delete
 

額外的繼承成員

- 公開方法(Public Methods) 繼承自 ufm::lang::Object
void * operator new (size_t n)
 使用運算子 new 分配記憶體
 
void * operator new (size_t n, void *p)
 在指定記憶體上調用運算子 new
 
virtual ufm::lang::ObjectgetObject (void) override
 取得對應的 Object 物件
 
void delay (int milliseconds) const
 延遲指定的毫秒數進行執行緒等待
 
bool equals (Object *object) const
 判斷與另一物件是否為相同參照(指標型態比較)
 
bool equals (Object &object) const
 判斷與另一物件是否為相同參照(參照型態比較)
 
void wait (void) const
 使當前線程等待直到被通知
 
bool wait (int timeout) const
 等待通知或超時
 
bool yield (void) const
 讓執行緒讓渡控制權給同優先權的下一個執行緒
 
int lock (void) const
 核心鎖定,鎖定期間禁止線程切換
 
int unlock (void) const
 核心解鎖
 
ufm::sys::ThreadcurrentThread (void) const
 取得當前執行緒指標
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Interface
virtual ~Interface (void)=default
 虛擬析構函式
 

詳細描述

MCXA153 記憶體區塊檢查器 (Memory Block Checker) 存取控制靜態工具類別

MBC 類別提供 MCXA153 微控制器記憶體區塊檢查器的操作介面。 此類別設計為靜態工具類別,無法實例化,用於配置和管理片上內部記憶體 的硬體存取控制功能,包括 Flash 記憶體的讀取、寫入、執行權限管理。

主要功能模組包括:

記憶體存取控制:

  • Flash 記憶體區塊存取權限控制 (讀取/寫入/執行)
  • 基於固定大小區塊格式的存取權限管理
  • 系統匯流排事務監控和評估
  • 存取錯誤回應和中斷處理

支援的記憶體區塊:

  • **MEM0 (主要 Flash)**:8KB 區塊粒度的存取控制
  • **MEM1 (IFR0)**:8KB 區塊粒度的資訊記錄區域
  • **MEM2 (IFR1)**:2KB 區塊粒度的資訊記錄區域

存取權限管理:

  • **讀取權限**:控制記憶體區塊的讀取存取
  • **寫入權限**:控制記憶體區塊的寫入存取
  • **執行權限**:控制記憶體區塊的程式執行存取
  • **鎖定機制**:防止配置被意外修改

區塊配置結構:

  • 每個 MBCm_DOMd_BLK_CFG_W 包含八個存取控制結構
  • 3-bit MBACSEL (記憶體區塊存取控制選擇) 欄位
  • MBCm_MEMN_GLBACr 暫存器控制相應區塊存取權限
  • 支援八種可能的存取控制組合

安全性考量:

  • MBC 將所有 Flash 存取視為安全使用者等級
  • SUR/SUW/SUR 位元控制 Flash 記憶體權限
  • 不支援非安全性啟用 (NSE) 位元設定
  • 提供硬體級別的記憶體保護機制

錯誤處理機制:

  • 存取權限不足時產生存取錯誤回應
  • MBC 中斷處理存取違規事件
  • DomainX 錯誤暫存器提供詳細錯誤資訊
  • 系統安全性事件記錄和報告

系統整合特性:

  • 位於 Flash 記憶體控制器 (FMC) 和 AHB 矩陣之間
  • 透明的記憶體存取控制,不影響正常操作
  • 與 TRDC (可信資源域控制器) 整合
  • 支援多網域存取控制管理

運作機制:

  1. **事務監控**:監視所有對片上記憶體的系統匯流排事務
  2. **權限評估**:根據區域描述符檢查存取權限
  3. **決策執行**:允許合法存取或回傳存取錯誤
  4. **錯誤報告**:記錄違規存取並產生相應中斷

配置流程:

  1. **區塊定義**:設定記憶體區塊的大小和範圍
  2. **權限設定**:配置各區塊的讀/寫/執行權限
  3. **存取控制選擇**:設定 MBACSEL 選擇器
  4. **鎖定保護**:鎖定配置防止意外修改

硬體架構特性:

  • **單一 MBC 模組**:該晶片包含 1 個 MBC 模組和 1 個網域
  • **固定區塊大小**:根據記憶體類型使用不同的區塊粒度
  • **硬體加速**:硬體實現的存取權限檢查,無軟體開銷
  • **即時保護**:每次記憶體存取都進行即時權限檢查

程式設計模式:

  • **靜態存取**:通過全域暫存器實例進行配置
  • **暫存器導向**:直接操作 TRDC 暫存器結構
  • **型別安全**:繼承自 NonInstantiable 確保使用安全性
  • **系統級抽象**:提供高層次的記憶體保護抽象

使用範例:

// 透過 MBC0 全域實例存取 MBC 功能
// 注意:實際配置需要操作 TRDC 暫存器結構
// 配置記憶體區塊存取權限 (概念性範例)
// MBC0.配置暫存器 = 權限設定值;
// 檢查存取錯誤狀態
// if (MBC0.錯誤暫存器 & 錯誤標誌) { 處理存取違規 }
此類別繼承自 NonInstantiable,無法建立實例
MBC 功能透過 TRDC 暫存器結構進行配置和控制
使用前需要正確理解系統記憶體映射和安全性需求
錯誤配置可能導致系統運行異常或安全漏洞
建議在系統啟動早期完成 MBC 配置並進行鎖定
不當的權限設定可能影響系統正常功能運作
作者
ZxyKira
日期
2020
版本
1.0
參閱
mcxa153::chip::trdc::Register TRDC 暫存器結構定義
MBC0 外部全域 TRDC 暫存器實例
mcxa153::chip::Processor 處理器基址定義
Flash 記憶體控制器 (FMC) 相關文件

此類別(class) 文件是由下列檔案中產生: