mFrame
載入中...
搜尋中...
無符合項目
ufm::sys::Kernel 結構 參考文件abstract

[Interface] 系統核心介面 更多...

#include <Kernel.h>

類別ufm::sys::Kernel的繼承圖:
cmsisrtx5::CmsisRTX5Kernel ufm::sys::TinyKernel

公開方法(Public Methods)

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
 讓出執行時間片段
 

詳細描述

[Interface] 系統核心介面

作業系統核心的基本操作介面,包括系統初始化、執行緒管理、 計時器分配、系統鎖定等功能。作為硬體抽象層,為上層應用 提供統一的系統服務存取方式,隔離平台相依性。

主要功能區塊:

  • 系統控制:初始化、啟動、鎖定、解鎖、重啟
  • 時間管理:取得時鐘計數、計時頻率、延遲
  • 執行緒管理:建立、取得當前執行緒、執行緒同步原語
  • 資源分配:計時器建立、執行緒堆疊分配
此介面需由特定平台實作,提供實際的系統功能
1.0.0

函式成員說明文件

◆ getCurrentThread()

virtual ufm::sys::Thread * ufm::sys::Kernel::getCurrentThread ( void )
pure virtual

取得當前執行緒

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

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

實作於 cmsisrtx5::CmsisRTX5Kernel, 及 ufm::sys::TinyKernel.

◆ initialize()

virtual bool ufm::sys::Kernel::initialize ( void )
pure virtual

核心初始化

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

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

實作於 cmsisrtx5::CmsisRTX5Kernel, 及 ufm::sys::TinyKernel.

◆ reboot()

virtual void ufm::sys::Kernel::reboot ( void )
pure virtual

核心重新啟動

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

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

實作於 cmsisrtx5::CmsisRTX5Kernel, 及 ufm::sys::TinyKernel.

◆ start()

virtual void ufm::sys::Kernel::start ( ufm::func::Runnable * task)
pure virtual

核心啟動

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

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

實作於 cmsisrtx5::CmsisRTX5Kernel, 及 ufm::sys::TinyKernel.

◆ systemDelay()

virtual bool ufm::sys::Kernel::systemDelay ( int milliseconds) const
pure virtual

執行緒延遲

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

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

實作於 cmsisrtx5::CmsisRTX5Kernel, 及 ufm::sys::TinyKernel.

◆ systemLock()

virtual int ufm::sys::Kernel::systemLock ( void )
pure virtual

核心鎖定

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

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

實作於 cmsisrtx5::CmsisRTX5Kernel, 及 ufm::sys::TinyKernel.

◆ systemUnlock()

virtual int ufm::sys::Kernel::systemUnlock ( void )
pure virtual

核心解鎖

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

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

實作於 cmsisrtx5::CmsisRTX5Kernel, 及 ufm::sys::TinyKernel.

◆ systemWait()

virtual bool ufm::sys::Kernel::systemWait ( int timeout) const
pure virtual

執行緒等待

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

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

實作於 cmsisrtx5::CmsisRTX5Kernel, 及 ufm::sys::TinyKernel.

◆ systemYield()

virtual bool ufm::sys::Kernel::systemYield ( void )
pure virtual

讓出執行時間片段

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

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

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

實作於 cmsisrtx5::CmsisRTX5Kernel, 及 ufm::sys::TinyKernel.


此結構(structure) 文件是由下列檔案中產生: