uC OS III統計任務堆疊 CPU使用率

2021-08-08 13:54:20 字數 979 閱讀 3586

1、讀取任務堆疊使用函式

ostaskstkchk(&taskbstktcb,&stk_free,&stk_used,&err);

void ostaskstkchk(os_tcb *p_tcb,cpu_stk_size* p_free,cpu_stk_size*p_used,os_err  *p_err);

呼叫上面這個函式就能獲取到指定任務的堆疊使用量。其中

*p_tcb:指向任務的tcb塊

*p_free:任務空閒的堆疊位元組數

*p_used:任務使用的堆疊位元組數

*p_err:函式執行結果**

特別提示,如果想要使用這個功能,那麼必須在os_cfg.h這個作業系統配置檔案中開啟巨集:

#define os_cfg_stat_task_stk_chk_en     1u  /* check task stacks from statistic task 

ostaskstkchk(&core_page_tcb,&free,&used,&err); 

printf("core_pageused/free:%d/%d usage:%%%d\r\n",used,free,(used*100)/(used+free));

2、用系統os_tcb讀取統計任務堆疊、cpu使用率

static  void  disptaskinfo()

}

3、uc/os-iii的統計任務由os_cfg_stat_task_en(在os_cfg.h中)控制

在main()函式建立的第乙個也是唯一乙個應用任務中呼叫

osstattaskcpuusageinit(),  

只能在呼叫osstattaskcpuusageinit()函式之後才能建立其他任務

osstattaskcpuusage這個變數表示應用程式的cpu總的使用率

ucosIII 系統任務

系統任務 空閒任務 空閒任務特點 1.空閒任務是ucosiii建立的第乙個任務。2.空閒任務是ucosiii必須建立的。3.空閒任務優先順序總是為os cfg prio mak 1。4.空閒任務中不能呼叫任何可使空閒任務進入等待態的函式!在osinit 中呼叫 os idletaskinit p e...

UCOS iii 任務排程

任務排程的時機 1 當前任務給其他任務發訊號,結束時呼叫。任務呼叫提交服務函式 os?post 傳送訊號量或訊息給其它任務時排程發生 2 任務呼叫ostimedly 或ostimedlyhmsm 如果延時引數不是0,排程發生。排程會在該任務被放入掛起佇列後馬上執行。3 任務所等待的事件發生或超時。4...

uc OS III任務的理解

在實際應用中一般是將工作拆分為多個任務的,並且每個任務都是可靠的。在使用uc os就可以很好的解決這個問題,任務又叫執行緒,在對於單個cpu來說,在任何時刻,都是只能有有乙個任務被執行。uc os iii 支援多工且對任務數量沒有限制,任務數僅取決於處理器記憶體的大小 ram 多任務排程是任務間占用...