mFrame
載入中...
搜尋中...
無符合項目
mframe::sys::Kernel 結構 參考文件abstract
類別mframe::sys::Kernel的繼承圖:
mframe::lang::Interface cmsisrtx5::CmsisRTX5Kernel

公開方法(Public Methods)

virtual bool initialize (void) override
 核心初始化,再調用所有核心方法時必須先初始化,否則將會調用失敗。
 
virtual void start (void) override
 核心啟動,作業系統開始。
 
virtual int systemLock (void) override
 核心鎖定,在調用kernelUnlock以前將不會進行context switch。
 
virtual int systemUnlock (void) override
 
virtual uint32 getTickCount (void) override
 取得核心tick數。
 
virtual uint32 getTickFreq (void) override
 取得核心運作頻率。
 
virtual bool systemDelay (uint32 milliseconds) const override
 執行緒延遲,並交還CPU使用權。
 
virtual bool systemWait (uint32 timeout) const override
 執行緒等待,直到超時或是被喚醒,並交還CPU使用權。
 
virtual void reboot (void) override
 核心重啟。
 
virtual mframe::sys::ThreadallocThread (mframe::func::Runnable &task, mframe::lang::Data &stackMemory) override
 建立一個執行緒。
 
virtual mframe::sys::ThreadallocThread (mframe::func::Runnable &task, int stackSize) override
 建立一個執行緒,限定堆疊大小。
 
virtual mframe::sys::ThreadgetCurrentThread (void) override
 取得當前執行緒
 
virtual mframe::sys::TimerallocTimer (void) override
 建立一個計時器。
 
virtual bool systemYield (void) override
 該函數將控制權傳遞給處於 READY 狀態且具有相同優先級的下一個線程。 如果在READY狀態下沒有其他優先級相同的線程,則當前線程繼續執行,不會發生線程切換。 不會將線程設置為 BLOCKED 狀態。 因此,即使處於READY狀態的線程可用,也不會調度優先級較低的線程。
 
- 公開方法(Public Methods) 繼承自 mframe::lang::Interface
virtual ~Interface (void)=default
 Destroy the struct object.
 
virtual mframe::lang::ObjectgetObject (void) override
 取得類Object
 

函式成員說明文件

◆ allocThread() [1/2]

virtual mframe::sys::Thread * mframe::sys::Kernel::allocThread ( mframe::func::Runnable & task,
int stackSize )
pure virtual

建立一個執行緒,限定堆疊大小。

參數
task工作事件。
uint32堆疊大小。
傳回值
null 建立失敗。
mframe::sys::Thread 建立成功。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ allocThread() [2/2]

virtual mframe::sys::Thread * mframe::sys::Kernel::allocThread ( mframe::func::Runnable & task,
mframe::lang::Data & stackMemory )
pure virtual

建立一個執行緒。

參數
task工作事件。
傳回值
null 建立失敗。
mframe::sys::Thread 建立成功。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ allocTimer()

virtual mframe::sys::Timer * mframe::sys::Kernel::allocTimer ( void )
pure virtual

建立一個計時器。

傳回值
null 建立計時器失敗。
mframe::lang::Timer* 建立計時器成功。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ getCurrentThread()

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

取得當前執行緒

傳回值
null 可能為核心尚未啟動、當前正在中斷事件。
Thread 獲取成功。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ getTickCount()

virtual uint32 mframe::sys::Kernel::getTickCount ( void )
pure virtual

取得核心tick數。

傳回值
uint32 tick數。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ getTickFreq()

virtual uint32 mframe::sys::Kernel::getTickFreq ( void )
pure virtual

取得核心運作頻率。

傳回值
uint32 Hz頻率。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ initialize()

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

核心初始化,再調用所有核心方法時必須先初始化,否則將會調用失敗。

傳回值
true 初始化成功。
false 初始化失敗,可能核心已經被初始化。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ reboot()

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

核心重啟。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ start()

virtual void mframe::sys::Kernel::start ( void )
pure virtual

核心啟動,作業系統開始。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ systemDelay()

virtual bool mframe::sys::Kernel::systemDelay ( uint32 milliseconds) const
pure virtual

執行緒延遲,並交還CPU使用權。

參數
milliseconds延遲時間,毫秒。
傳回值
true 延遲執行成功。
false 延遲執行失敗,可能要求時間過長。

◆ systemLock()

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

核心鎖定,在調用kernelUnlock以前將不會進行context switch。

傳回值
int lock調用層數。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ systemUnlock()

virtual int mframe::sys::Kernel::systemUnlock ( void )
pure virtual
傳回值
int lock調用剩餘層數,當值為0時核心解鎖。

實作於 cmsisrtx5::CmsisRTX5Kernel.

◆ systemWait()

virtual bool mframe::sys::Kernel::systemWait ( uint32 timeout) const
pure virtual

執行緒等待,直到超時或是被喚醒,並交還CPU使用權。

參數
timeout等待超時,0為永不超時直到notify。
傳回值
true 執行緒進入等待。
false 執行緒進入等待失敗,可能在中斷或是核心啟動失敗。

◆ systemYield()

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

該函數將控制權傳遞給處於 READY 狀態且具有相同優先級的下一個線程。 如果在READY狀態下沒有其他優先級相同的線程,則當前線程繼續執行,不會發生線程切換。 不會將線程設置為 BLOCKED 狀態。 因此,即使處於READY狀態的線程可用,也不會調度優先級較低的線程。

傳回值
true 控制權已成功傳遞給下一個線程。
false 發生了未指定的錯誤。該函數不能從中斷服務程序中調用。

實作於 cmsisrtx5::CmsisRTX5Kernel.


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