![]() |
mFrame
|
CMSIS RTX5 核心管理器實現 更多...
#include <CmsisRTX5Kernel.h>
公開方法(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::Thread * | getCurrentThread (void) override |
取得當前執行緒 | |
virtual bool | systemYield (void) override |
讓出執行時間片段 | |
void | setReboot (void(*reboot)(void)) |
設定系統重啟函數 | |
![]() | |
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 |
虛擬析構函式 | |
CMSIS RTX5 核心管理器實現
cmsisrtx5::CmsisRTX5Kernel::CmsisRTX5Kernel | ( | void * | stackMemory, |
int | stackSize ) |
建構核心管理器
使用指定的堆疊記憶體和大小初始化核心管理器。 此方法會分配必要的資源並準備核心啟動。
stackMemory | 指向用於核心的堆疊記憶體區域 |
stackSize | 堆疊大小,單位為位元組 |
|
overridevirtual |
取得當前執行緒
獲取當前正在CPU上執行的執行緒物件。 用於執行緒需要參照自身或取得自己相關資訊時。
實作 ufm::sys::Kernel.
|
overridevirtual |
核心初始化
初始化作業系統核心元件和必要資源。所有核心相關方法的呼叫 必須在初始化完成後進行,否則可能導致未定義行為。
實作 ufm::sys::Kernel.
|
overridevirtual |
|
inline |
設定系統重啟函數
設定在系統需要重啟時調用的函數。 此函數應負責執行必要的清理和重啟操作。
reboot | 指向重啟函數的指標 |
|
overridevirtual |
|
overridevirtual |
執行緒延遲
使當前執行緒暫停指定的時間,並讓出CPU資源給其他執行緒。 延遲精度取決於系統時鐘解析度和排程器負載。
milliseconds | 延遲時間,單位為毫秒 |
實作 ufm::sys::Kernel.
|
overridevirtual |
核心鎖定
鎖定系統核心,暫停執行緒切換。當需要執行原子操作或訪問共享資源時, 可使用此方法避免被其他執行緒中斷。鎖定可以巢狀調用。
實作 ufm::sys::Kernel.
|
overridevirtual |
|
overridevirtual |
執行緒等待
使當前執行緒進入等待狀態,直到被喚醒或等待超時。 等待期間執行緒會讓出處理器資源,不消耗CPU時間。
timeout | 等待超時時間(毫秒),0表示永久等待直到被notify()喚醒 |
實作 ufm::sys::Kernel.
|
overridevirtual |
讓出執行時間片段
將控制權讓給相同優先權的其他就緒執行緒。如果沒有其他相同優先權 的就緒執行緒,則當前執行緒會繼續執行。
與systemDelay和systemWait不同,此方法不會使執行緒進入阻塞狀態, 僅主動讓出本輪執行時間。
實作 ufm::sys::Kernel.