![]() |
mFrame
|
MCXA153 中斷控制器管理員 更多...
#include <CoreInterrupt.h>
公開型態 | |
enum | Service { IRQ_GPIO0 = 0 , IRQ_GPIO1 = 1 , IRQ_GPIO2 = 2 , IRQ_GPIO3 = 3 , IRQ_LPUART0 = 4 , IRQ_LPUART1 = 5 , IRQ_LPUART2 = 6 , IRQ_LPI2C0 = 7 , IRQ_LPADC0 = 8 , IRQ_LPSPI0 = 9 , IRQ_LPSPI1 = 10 , IRQ_OS_EVENT = 11 , IRQ_MAX_QUANTITY } |
中斷服務類型枚舉 更多... | |
公開方法(Public Methods) | |
void | interruptEvent (void) override |
統一中斷事件處理入口 | |
void | setHandler (Service service, hal::InterruptEvent *runnable) |
設定中斷服務事件處理器 | |
hal::InterruptEvent * | getHandler (Service service) |
取得中斷服務事件處理器 | |
void | serviceEnable (Service service, bool enable) |
啟用或停用中斷服務 | |
![]() | |
void * | operator new (size_t n) |
使用運算子 new 分配記憶體 | |
void * | operator new (size_t n, void *p) |
在指定記憶體上調用運算子 new | |
virtual ufm::lang::Object & | getObject (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::Thread * | currentThread (void) const |
取得當前執行緒指標 | |
virtual int | hashcode (void) const |
返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
![]() | |
virtual | ~Interface (void)=default |
虛擬析構函式 | |
靜態公開方法(Static Public Methods) | |
static CoreInterrupt & | getInstance (void) |
取得中斷控制器單例實例 | |
static void | instantiation (void) |
實例化中斷控制器單例 | |
公開屬性 | |
hal::InterruptEvent * | vHandle [IRQ_MAX_QUANTITY] |
中斷事件處理器陣列 | |
MCXA153 中斷控制器管理員
CoreInterrupt 提供MCXA153微控制器的統一中斷管理功能。 此類別採用單例模式設計,作為系統中斷的統一分派中心:
主要功能:
設計特色:
支援的中斷服務:
中斷處理流程:
優勢特性:
應用場景:
中斷服務類型枚舉
定義MCXA153微控制器支援的所有中斷服務類型。 每個枚舉值對應一個特定的硬體中斷源。
GPIO中斷服務:
通訊介面中斷:
類比數位轉換:
系統服務:
配置參數:
hal::InterruptEvent * mcxa153::core::CoreInterrupt::getHandler | ( | Service | service | ) |
取得中斷服務事件處理器
查詢指定中斷服務目前註冊的事件處理器。 用於驗證處理器設定或執行偵錯。
service | 中斷服務類型 |
應用場景:
使用範例:
|
inlinestatic |
取得中斷控制器單例實例
返回系統唯一的CoreInterrupt實例參考。 實作單例模式的存取介面。
使用方式:
前置條件:
優勢特性:
|
static |
實例化中斷控制器單例
創建並初始化系統唯一的CoreInterrupt實例。 單例模式的初始化方法。
初始化步驟:
調用時機:
執行緒安全:
使用範例:
|
overridevirtual |
統一中斷事件處理入口
所有MCXA153硬體中斷的統一處理入口點。 此方法負責識別中斷來源並分派到對應的事件處理器。
處理流程:
中斷分派邏輯:
錯誤處理:
性能考量:
void mcxa153::core::CoreInterrupt::serviceEnable | ( | Service | service, |
bool | enable ) |
啟用或停用中斷服務
控制指定中斷服務的啟用狀態。 影響硬體中斷控制器的中斷遮罩設定。
service | 中斷服務類型 |
enable | 啟用狀態
|
啟用效果:
應用時機:
使用範例:
注意事項:
void mcxa153::core::CoreInterrupt::setHandler | ( | Service | service, |
hal::InterruptEvent * | runnable ) |
設定中斷服務事件處理器
為指定的中斷服務註冊或取消事件處理器。 當該中斷服務觸發時會自動調用處理器方法。
service | 中斷服務類型
|
runnable | 中斷事件處理器指標,nullptr為預設值(取消註冊) |
註冊要求:
使用範例:
hal::InterruptEvent* mcxa153::core::CoreInterrupt::vHandle[IRQ_MAX_QUANTITY] |
中斷事件處理器陣列
儲存各中斷服務對應的事件處理器指標。 陣列索引與Service枚舉值直接對應。
陣列特性:
處理器要求:
使用方式:
記憶體管理:
執行緒安全: