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

MCXA153 處理器核心管理類別 更多...

#include <Processor.h>

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

靜態公開方法(Static Public Methods)

static void systemInit (void)
 系統初始化函數
 

靜態公開屬性

static constexpr uint32 BASE_GPIO0 = 0x40102000U
 GPIO0 控制器基地址 - 通用輸入輸出埠0 (0x40102000)
 
static constexpr uint32 BASE_GPIO1 = 0x40103000U
 GPIO1 控制器基地址 - 通用輸入輸出埠1 (0x40103000)
 
static constexpr uint32 BASE_GPIO2 = 0x40104000U
 GPIO2 控制器基地址 - 通用輸入輸出埠2 (0x40104000)
 
static constexpr uint32 BASE_GPIO3 = 0x40105000U
 GPIO3 控制器基地址 - 通用輸入輸出埠3 (0x40105000)
 
static constexpr uint32 BASE_PORT0 = 0x400BC000U
 PORT0 配置基地址 - 引腳複用與電氣特性配置0 (0x400BC000)
 
static constexpr uint32 BASE_PORT1 = 0x400BD000U
 PORT1 配置基地址 - 引腳複用與電氣特性配置1 (0x400BD000)
 
static constexpr uint32 BASE_PORT2 = 0x400BE000U
 PORT2 配置基地址 - 引腳複用與電氣特性配置2 (0x400BE000)
 
static constexpr uint32 BASE_PORT3 = 0x400BF000U
 PORT3 配置基地址 - 引腳複用與電氣特性配置3 (0x400BF000)
 
static constexpr uint32 BASE_SYSCON = 0x40091000U
 SYSCON 基地址 - 系統配置控制器 (0x40091000)
 
static constexpr uint32 BASE_GLIKEY0 = 0x40091D00U
 GLIKEY0 基地址 - 全域金鑰管理器0 (0x40091D00)
 
static constexpr uint32 BASE_MBC0 = 0x4008E000U
 MBC0 基地址 - 記憶體邊界檢查器0 (TrustZone) (0x4008E000)
 
static constexpr uint32 BASE_MRCC0 = 0x40091000u
 MRCC0 基地址 - 模組復位與時脈控制0 (0x40091000)
 
static constexpr uint32 BASE_SCG0 = 0x4008F000U
 SCG0 基地址 - 系統時脈產生器0 (0x4008F000)
 
static constexpr uint32 BASE_VBAT0 = 0x40093000U
 VBAT0 基地址 - 電池供電域控制器0 (0x40093000)
 
static constexpr uint32 BASE_SPC0 = 0x40090000U
 SPC0 基地址 - 系統電源控制器0 (0x40090000)
 
static constexpr uint32 BASE_FMU0 = 0x40095000U
 FMU0 基地址 - Flash記憶體單元0 (0x40095000)
 
static constexpr uint32 BASE_LPUART0 = 0x4009F000U
 LPUART0 基地址 - 低功耗通用非同步收發器0 (0x4009F000)
 
static constexpr uint32 BASE_LPUART1 = 0x400A0000U
 LPUART1 基地址 - 低功耗通用非同步收發器1 (0x400A0000)
 
static constexpr uint32 BASE_LPUART2 = 0x400A1000U
 LPUART2 基地址 - 低功耗通用非同步收發器2 (0x400A1000)
 
static constexpr uint32 BASE_LPI2C0 = 0x4009A000U
 LPI2C0 基地址 - 低功耗I2C介面0 (0x4009A000)
 
static constexpr uint32 BASE_LPSPI0 = 0x4009C000U
 LPSPI0 基地址 - 低功耗SPI介面0 (0x4009C000)
 
static constexpr uint32 BASE_LPSPI1 = 0x4009D000U
 LPSPI1 基地址 - 低功耗SPI介面1 (0x4009D000)
 
static constexpr uint32 BASE_CTIMER0 = 0x40004000U
 CTIMER0 基地址 - 通用定時器0 (0x40004000)
 
static constexpr uint32 BASE_CTIMER1 = 0x40005000U
 CTIMER1 基地址 - 通用定時器1 (0x40005000)
 
static constexpr uint32 BASE_CTIMER2 = 0x40006000U
 CTIMER2 基地址 - 通用定時器2 (0x40006000)
 
static constexpr uint32 BASE_OSTIMER0 = 0x400AD000U
 OSTIMER0 基地址 - 作業系統定時器0 (0x400AD000)
 
static constexpr uint32 BASE_LPADC0 = 0x400AF000U
 LPADC0 基地址 - 低功耗類比數位轉換器0 (0x400AF000)
 

保護方法(Protected Methods)

virtual ~Processor (void) override=default
 解構 Processor 物件
 
- 保護方法(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 處理器核心管理類別

Processor類別提供MCXA153微控制器的核心處理器管理功能,包括系統初始化、 外設基地址定義以及處理器相關的低階操作控制。此類別作為整個MCXA153系統 的基礎架構,負責處理器核心的設定與管理。

MCXA153 處理器核心特性:

  • ARM Cortex-M33 處理器內核 (32-bit RISC架構)
  • TrustZone 安全擴展支援,提供硬體級安全隔離
  • 浮點運算單元 (FPU) 支援單精度運算
  • 記憶體保護單元 (MPU) 提供8個可配置區域
  • 嵌套向量中斷控制器 (NVIC) 支援32個中斷優先級
  • 系統滴答定時器 (SysTick) 提供精確時基

系統架構特色:

  • 哈佛架構設計,指令和資料分離
  • 支援Thumb-2指令集,提供優異的程式碼密度
  • 硬體除法器和單週期乘法器
  • 低功耗設計,支援多種節能模式
  • 先進的匯流排架構 (AHB-Lite/APB)

記憶體系統配置:

  • Flash記憶體:高達256KB程式儲存
  • SRAM記憶體:高達32KB系統記憶體
  • 記憶體映射I/O,統一位址空間
  • ECC錯誤檢測與修正支援
  • 記憶體加密與完整性保護

外設整合架構:

  • 豐富的通訊介面 (UART、SPI、I2C)
  • 高精度定時器與PWM控制
  • 類比數位轉換器 (ADC) 與比較器
  • GPIO彈性配置與中斷支援
  • 時脈管理與電源控制整合

基地址映射說明: 此類別定義了MCXA153微控制器所有主要外設的基地址常數,這些地址是硬體固定的 記憶體映射位置,用於外設暫存器存取和硬體控制。地址映射遵循ARM Cortex-M33 標準記憶體配置規範。

基地址分類:

GPIO與PORT控制 (0x4010_xxxx / 0x400B_xxxx 範圍):

  • GPIO0~3: 通用輸入輸出控制器
  • PORT0~3: 引腳複用與電氣特性配置

系統控制與安全 (0x4009_xxxx 範圍):

  • SYSCON: 系統配置與控制
  • GLIKEY0: 全域密鑰管理
  • MBC0: 記憶體邊界檢查器 (TrustZone)
  • MRCC0: 模組復位與時脈控制
  • SCG0: 系統時脈產生器
  • VBAT0: 電池供電域控制
  • SPC0: 系統電源控制器
  • FMU0: Flash記憶體單元

通訊介面 (0x4009_xxxx / 0x400A_xxxx 範圍):

  • LPUART0~2: 低功耗通用非同步收發器
  • LPI2C0: 低功耗I2C介面
  • LPSPI0~1: 低功耗SPI介面

定時器與類比 (0x4000_xxxx / 0x400A_xxxx 範圍):

  • CTIMER0~2: 通用定時器
  • OSTIMER0: 作業系統定時器
  • LPADC0: 低功耗類比數位轉換器

使用範例 - 系統初始化:

// 系統啟動時必須呼叫的初始化程序
void main(void) {
// 執行基本系統初始化
// 初始化完成後可開始使用各外設
// ... 應用程式初始化
}
static void systemInit(void)
系統初始化函數

使用範例 - 外設基地址應用:

// 直接使用基地址進行暫存器操作
volatile uint32_t* gpio0_base =
reinterpret_cast<volatile uint32_t*>(Processor::BASE_GPIO0);
// 或配合外設類別使用
static constexpr uint32 BASE_GPIO0
GPIO0 控制器基地址 - 通用輸入輸出埠0 (0x40102000)
Definition Processor.h:199
MCXA153 通用輸入/輸出 (General Purpose Input/Output) 控制器靜態工具類別
Definition chip/gpio/GPIO.h:129

系統整合要點:

  • systemInit()必須在任何外設操作前呼叫
  • 基地址常數可用於計算相對偏移量
  • 支援多執行緒環境下的安全操作
  • 配合中斷向量表進行系統設定
  • 整合TrustZone安全機制配置

效能最佳化策略:

  • 合理配置記憶體存取模式
  • 善用處理器管線化特性
  • 適當使用快取和預取機制
  • 最佳化中斷延遲時間
  • 平衡功耗與效能需求
此類別負責底層硬體抽象,修改時需要深度了解MCXA153硬體架構
systemInit()函數只能在系統復位後呼叫一次
基地址常數為硬體固定值,不可修改
TrustZone配置會影響某些外設的存取權限
警告
不當的系統初始化可能導致系統不穩定或安全風險
直接操作基地址需要充分理解暫存器結構和時序要求
參閱
MCXA153 Reference Manual for complete hardware documentation
ARM Cortex-M33 Technical Reference Manual
MCXA153 Cortex-M33 with TrustZone support

建構子與解構子說明文件

◆ ~Processor()

virtual mcxa153::chip::Processor::~Processor ( void )
overrideprotectedvirtualdefault

解構 Processor 物件

清理 Processor 物件資源並執行必要的收尾工作。解構函數確保系統資源 正確釋放,避免記憶體洩漏或資源衝突。

解構過程包括:

  • 內部資料結構清理
  • 暫存狀態資訊清除
  • 資源釋放確認
解構函數不會執行硬體復位或關閉操作
系統執行期間通常不會主動解構此物件

函式成員說明文件

◆ systemInit()

static void mcxa153::chip::Processor::systemInit ( void )
static

系統初始化函數

執行 MCXA153 微控制器的基本系統初始化程序。此函數負責配置處理器核心、 記憶體系統、時脈樹以及基本的硬體抽象層設定,為系統正常運作建立必要的 基礎環境。

初始化程序包括:

**處理器核心設定**:

  • ARM Cortex-M33 核心基本配置
  • 浮點運算單元 (FPU) 啟用與設定
  • 記憶體保護單元 (MPU) 基礎配置
  • 中斷向量表位置設定
  • 系統滴答定時器基本設定

**記憶體系統初始化**:

  • Flash 介面時序與存取模式配置
  • SRAM 記憶體區域初始化
  • 記憶體映射設定與權限配置
  • ECC 錯誤檢測與修正功能啟用
  • 記憶體加密與完整性保護設定

**時脈系統設定**:

  • 主系統時脈來源選擇與配置
  • PLL 鎖相迴路基本設定
  • 各外設時脈閘控初始化
  • 低功耗時脈源準備
  • 時脈分頻器預設值設定

**電源管理初始化**:

  • 電源域基本配置
  • 低功耗模式準備設定
  • 電壓調節器基本配置
  • 電源監控功能啟用
  • VBAT 電池供電域初始設定

**安全機制設定**:

  • TrustZone 安全域基本配置
  • 記憶體邊界檢查器設定
  • 安全存取權限初始化
  • 金鑰管理系統準備
  • 安全啟動驗證準備

**外設介面準備**:

  • GPIO 引腳複用基本設定
  • 通訊介面 (UART/SPI/I2C) 時脈準備
  • 定時器資源基本配置
  • ADC 參考電壓與校準設定
  • 中斷控制器優先級設定

呼叫時機與注意事項:

  • **必須**在系統復位後立即呼叫
  • **必須**在任何外設操作前完成呼叫
  • **僅能**在系統啟動時呼叫一次
  • 呼叫後系統進入穩定的運行狀態
  • 後續可安全進行各外設的詳細配置
此函數執行時間較長,包含必要的硬體穩定等待
函數執行期間中斷系統尚未完全就緒
某些低階硬體設定可能需要特殊權限等級
警告
重複呼叫可能導致系統不穩定或硬體衝突
函數執行期間不可被中斷或任務切換
參閱
MCXA153 System Initialization Guide
ARM Cortex-M33 System Control Block documentation

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