UCOSII學習歸納一

    在熟悉UCOSIII應用的同時,對之前應用的UCOSII做一些歸納,供以後回顧。

1.UCOSII的任務如何分類?

  1)用戶創建的任務:用戶最多可以創建63個任務,優先級0~62,0是最高優先級任務。

  2)系統創建的任務:空閒任務和統計任務(計算在運行所有應用程序時,CPU的使用效率)。在使用UCOSII前,必須調用OSInit(),OSInit()可以建立了空閒任務和統計任務。

  注:所有任務的優先級必須不相同。

2.UCOSII創建任務的要素?

  1)編寫自己的任務函數。

  2)分配一個適合的任務堆棧。

  3)分配一個合適的任務優先級。

  4)可能還需要給任務傳遞一些參數。

3.任務函數的特點?

  1)沒有返回值。

  2)都包含了一個死循環。

  3)都有一個void型的指針形參。

  4)死循環內必須有調度點。

  5)高優先級的任務中必須有等待延遲,讓低優先級的任務有被調度的機會。

4.用OSStart()開啓了UCOSII後,每個任務建立的時候,UCOSII會判斷新建立的任務是否具有最高優先級,如果其優先級最高,則立即運行該任務。

5.如何檢測一個任務堆棧的大小?

  考慮使用OSTaskStkChk()堆棧檢查函數。此函數的運行時間與任務所指定的堆棧大小密切相關。當想確認一個任務需要多少堆棧時,此函數是很有用的。如果系統對穩定性要求高,實際分配的堆棧應大於檢查的最大值得1倍。堆棧檢查要求任務建立時給堆棧清零,也要注意,其實進行堆棧清零也可能是一項很費時的工作。執行OSTaskStkChk()堆棧檢查函數,也就是從棧低向棧頂搜索非0的元素,記錄0元素的個數。

6.何爲消息郵箱?

  消息郵箱僅能提供一個指針型變量的傳遞,至於此指針型變量到底指向什麼樣的數據結構,是由使用此郵箱的用戶程序共同決定的。

7.如何確定每個任務的運行次數和運行時間?

  系統的鉤子函數可以解決此問題。鉤子函數其實在應用中必不可少。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章