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

公開方法(Public Methods)

 CmsisRTX5Kernel (void)
 Construct a new Cmsisrtos Kernel object.
 
virtual ~CmsisRTX5Kernel (void) override
 Destroy the Cmsisrtos Kernel object.
 
virtual bool initialize (void) override
 核心初始化,再調用所有核心方法時必須先初始化,否則將會調用失敗
 
virtual void start (void) override
 核心啟動,作業系統開始
 
virtual int systemLock (void) override
 核心鎖定,在調用systemLock以前將不會進行context switch
 
virtual int systemUnlock (void) override
 
virtual uint32_t getTickCount (void) override
 取得核心tick數
 
virtual uint32_t getTickFreq (void) override
 取得核心運作頻率
 
virtual bool systemDelay (uint32_t milliseconds) const override
 執行緒延遲,並交還CPU使用權
 
virtual bool systemWait (uint32_t 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::Object
 Object (void)
 Construct a new Object object.
 
virtual ~Object (void) override
 Destroy the Object object.
 
void * operator new (size_t n)
 
void * operator new (size_t n, void *p)
 
mframe::lang::ObjectgetObject (void) override
 取得類Object
 
void delay (int milliseconds) const
 函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。
 
bool equals (Object *object) const
 函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。
 
bool equals (Object &object) const
 函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。
 
void wait (void) const
 導致當前線程等待,直到另一個線程調用此對象的notify()方法或notifyAll()方法,或指定的時間 已過。
 
bool wait (int timeout) const
 導致當前線程等待,直到另一個線程調用此對象的 notify()方法或 notifyAll()方法,或其他一些線 程中斷當前線程,或一定量的實時時間。
 
bool yield (void) const
 函數yield()將控制權傳遞給處於READY狀態且具有相同優先級的下一個線程。 如果在READY狀態下沒有其他優先級相同的線程,則當前線程繼續執行,不會發生線程切換。
 
int lock (void) const
 核心鎖定,在調用unlock以前將不會進行執行緒切換
 
int unlock (void) const
 核心解鎖。
 
mframe::sys::ThreadcurrentThread (void) const
 取得當前的執行緒
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 mframe::lang::Interface
virtual ~Interface (void)=default
 Destroy the struct object.
 
- 公開方法(Public Methods) 繼承自 mframe::sys::Kernel
virtual bool systemDelay (uint32 milliseconds) const override
 執行緒延遲,並交還CPU使用權。
 
virtual bool systemWait (uint32 timeout) const override
 執行緒等待,直到超時或是被喚醒,並交還CPU使用權。
 

函式成員說明文件

◆ allocThread() [1/2]

virtual mframe::sys::Thread * cmsisrtx5::CmsisRTX5Kernel::allocThread ( mframe::func::Runnable & task,
int stackSize )
overridevirtual

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

參數
task工作事件
uint32_t堆疊大小
傳回值
null 建立失敗
Thread 建立成功

實作 mframe::sys::Kernel.

◆ allocThread() [2/2]

virtual mframe::sys::Thread * cmsisrtx5::CmsisRTX5Kernel::allocThread ( mframe::func::Runnable & task,
mframe::lang::Data & stackMemory )
overridevirtual

建立一個執行緒,指定堆疊記憶體來源

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

實作 mframe::sys::Kernel.

◆ allocTimer()

virtual mframe::sys::Timer * cmsisrtx5::CmsisRTX5Kernel::allocTimer ( void )
overridevirtual

建立一個計時器。

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

實作 mframe::sys::Kernel.

◆ getCurrentThread()

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

取得當前執行緒

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

實作 mframe::sys::Kernel.

◆ getTickCount()

virtual uint32_t cmsisrtx5::CmsisRTX5Kernel::getTickCount ( void )
overridevirtual

取得核心tick數

傳回值
uint32_t tick數

實作 mframe::sys::Kernel.

◆ getTickFreq()

virtual uint32_t cmsisrtx5::CmsisRTX5Kernel::getTickFreq ( void )
overridevirtual

取得核心運作頻率

傳回值
uint32_t Hz頻率

實作 mframe::sys::Kernel.

◆ initialize()

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

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

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

實作 mframe::sys::Kernel.

◆ reboot()

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

核心重啟

實作 mframe::sys::Kernel.

◆ start()

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

核心啟動,作業系統開始

參數
runnable主執行緒事件
stackSize主執行緒記憶體堆疊大小

實作 mframe::sys::Kernel.

◆ systemDelay()

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

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

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

◆ systemLock()

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

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

傳回值
int lock調用層數

實作 mframe::sys::Kernel.

◆ systemUnlock()

virtual int cmsisrtx5::CmsisRTX5Kernel::systemUnlock ( void )
overridevirtual
傳回值
int lock調用剩餘層數,當值為0時核心解鎖

實作 mframe::sys::Kernel.

◆ systemWait()

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

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

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

◆ systemYield()

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

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

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

實作 mframe::sys::Kernel.


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