mFrame
載入中...
搜尋中...
無符合項目
cmsisrtx5::CmsisRTX5Kernel 類別 參考文件

CMSIS RTX5 核心管理器實現 更多...

#include <CmsisRTX5Kernel.h>

類別cmsisrtx5::CmsisRTX5Kernel的繼承圖:
ufm::lang::Object ufm::sys::Kernel ufm::lang::Interface

公開方法(Public Methods)

 CmsisRTX5Kernel (void *stackMemory, int stackSize)
 建構核心管理器
 
virtual ~CmsisRTX5Kernel (void) override
 解構核心管理器
 
virtual bool initialize (void) override
 核心初始化
 
virtual void start (ufm::func::Runnable *task) override
 核心啟動
 
virtual int systemLock (void) override
 核心鎖定
 
virtual int systemUnlock (void) override
 核心解鎖
 
virtual bool systemDelay (int milliseconds) const override
 執行緒延遲
 
virtual bool systemWait (int timeout) const override
 執行緒等待
 
virtual void reboot (void) override
 核心重新啟動
 
virtual ufm::sys::ThreadgetCurrentThread (void) override
 取得當前執行緒
 
virtual bool systemYield (void) override
 讓出執行時間片段
 
void setReboot (void(*reboot)(void))
 設定系統重啟函數
 
- 公開方法(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
 虛擬析構函式
 

詳細描述

CMSIS RTX5 核心管理器實現

1.0.0

建構子與解構子說明文件

◆ CmsisRTX5Kernel()

cmsisrtx5::CmsisRTX5Kernel::CmsisRTX5Kernel ( void * stackMemory,
int stackSize )

建構核心管理器

使用指定的堆疊記憶體和大小初始化核心管理器。 此方法會分配必要的資源並準備核心啟動。

參數
stackMemory指向用於核心的堆疊記憶體區域
stackSize堆疊大小,單位為位元組

函式成員說明文件

◆ getCurrentThread()

virtual ufm::sys::Thread * cmsisrtx5::CmsisRTX5Kernel::getCurrentThread ( void )
overridevirtual

取得當前執行緒

獲取當前正在CPU上執行的執行緒物件。 用於執行緒需要參照自身或取得自己相關資訊時。

傳回值
Thread* 當前執行緒的指標,若在中斷或核心未啟動時可能返回null

實作 ufm::sys::Kernel.

◆ initialize()

virtual bool cmsisrtx5::CmsisRTX5Kernel::initialize ( void )
overridevirtual

核心初始化

初始化作業系統核心元件和必要資源。所有核心相關方法的呼叫 必須在初始化完成後進行,否則可能導致未定義行為。

傳回值
true 初始化成功,核心準備就緒
false 初始化失敗,可能是核心已被初始化或硬體不支援

實作 ufm::sys::Kernel.

◆ reboot()

virtual void cmsisrtx5::CmsisRTX5Kernel::reboot ( void )
overridevirtual

核心重新啟動

重新啟動整個系統,所有執行緒和資源將被終止並重新初始化。 此操作類似於硬體重置,但由軟體控制。

此方法呼叫後通常不會返回

實作 ufm::sys::Kernel.

◆ setReboot()

void cmsisrtx5::CmsisRTX5Kernel::setReboot ( void(* reboot )(void))
inline

設定系統重啟函數

設定在系統需要重啟時調用的函數。 此函數應負責執行必要的清理和重啟操作。

參數
reboot指向重啟函數的指標

◆ start()

virtual void cmsisrtx5::CmsisRTX5Kernel::start ( ufm::func::Runnable * task)
overridevirtual

核心啟動

啟動作業系統核心,開始執行緒調度和系統服務。 此方法呼叫後,系統將開始正常運作。

通常此方法不會返回,除非系統發生重大錯誤

實作 ufm::sys::Kernel.

◆ systemDelay()

virtual bool cmsisrtx5::CmsisRTX5Kernel::systemDelay ( int milliseconds) const
overridevirtual

執行緒延遲

使當前執行緒暫停指定的時間,並讓出CPU資源給其他執行緒。 延遲精度取決於系統時鐘解析度和排程器負載。

參數
milliseconds延遲時間,單位為毫秒
傳回值
true 延遲成功完成
false 延遲失敗,可能參數無效或系統不支援

實作 ufm::sys::Kernel.

◆ systemLock()

virtual int cmsisrtx5::CmsisRTX5Kernel::systemLock ( void )
overridevirtual

核心鎖定

鎖定系統核心,暫停執行緒切換。當需要執行原子操作或訪問共享資源時, 可使用此方法避免被其他執行緒中斷。鎖定可以巢狀調用。

傳回值
int 目前鎖定層數,每次呼叫後遞增
警告
鎖定期間應儘量減少操作,避免阻塞系統過久

實作 ufm::sys::Kernel.

◆ systemUnlock()

virtual int cmsisrtx5::CmsisRTX5Kernel::systemUnlock ( void )
overridevirtual

核心解鎖

釋放系統核心鎖。當鎖定層數降至零時,系統將恢復執行緒切換。 每次呼叫會將鎖定層數減一。

傳回值
int 剩餘鎖定層數,值為0時表示系統已完全解鎖

實作 ufm::sys::Kernel.

◆ systemWait()

virtual bool cmsisrtx5::CmsisRTX5Kernel::systemWait ( int timeout) const
overridevirtual

執行緒等待

使當前執行緒進入等待狀態,直到被喚醒或等待超時。 等待期間執行緒會讓出處理器資源,不消耗CPU時間。

參數
timeout等待超時時間(毫秒),0表示永久等待直到被notify()喚醒
傳回值
true 等待成功開始
false 等待失敗,可能在中斷處理或核心未啟動

實作 ufm::sys::Kernel.

◆ systemYield()

virtual bool cmsisrtx5::CmsisRTX5Kernel::systemYield ( void )
overridevirtual

讓出執行時間片段

將控制權讓給相同優先權的其他就緒執行緒。如果沒有其他相同優先權 的就緒執行緒,則當前執行緒會繼續執行。

與systemDelay和systemWait不同,此方法不會使執行緒進入阻塞狀態, 僅主動讓出本輪執行時間。

傳回值
true 成功讓出執行時間或無需讓出
false 操作失敗,可能在中斷服務中調用
即使有較低優先權的執行緒就緒,也不會讓給它們執行

實作 ufm::sys::Kernel.


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