手把手教你用Ucos

2021-08-17 06:24:30 字數 2248 閱讀 8601

ucos作業系統的學習

實時作業系統:

任務切換,排程

分式作業系統

不可剝奪型核心

ucosii嵌入式實時作業系統的源**分為三部分:與硬體無關的核心**,與處理器有關的移植**和使用者配置檔案。

ucos最多支援64個任務,優先順序分別對應0~63,其中0為最高優先順序,系統保留4個最高優先順序的任務,和4個最低的優先順序任務,所有使用者可以使用的任務56個

1.建立任務

a)

ostaskcreat()/ostaskcreat(

i.

ostaskcreat(void(*task),void pdata ,os_stk * post,intu prio)

1.

task:是指任務**的指標

2.

pdata:任務開始執行是,傳遞給任務的引數的指標

3.

post:分配給任務的堆疊的棧頂指標

4.

prior:分配任務的優先順序

2,  任務堆疊

a)

os_stk()

i.           每個任務都有自己的堆疊,堆疊必須宣告為os_stk型別,並且連續的記憶體空間組成。

ii.           可以靜態分配和動態分配

3,  堆疊檢驗

a)

ostaskstkchk()

i.  有時確定任務是要知道堆疊空間的大小,這個函式可以避免分配過多的空間

4.    刪除任務ostask()

a.    指的是任務進入休眠狀態,而不是指**被刪除,只是不再被ucos呼叫。注意:刪除任務之前要保證任務並非空閒任務

5.    請求刪除任務 ostaskdelreq()

a.有時任務會占用一些記憶體或者訊號量一類的資源。這時,假如另乙個任務試圖刪除任務,這些被占用的資源就會應為沒有被釋放而丟失。在這種情況下,需要任務在使用完後釋放,然後自己刪除。

6.    改變任務的優先順序 ostaskchangeprio()

a.當建立乙個任務時,需要利用ostaskcreate()函式指定任務的優先順序,在絕大部分的情況下不需要改變系統執行時的惹任務優先順序,但是要是改變的話,ostaskchangeprio()可以做到.

b.void ostaskchangeprio(os_tcb *p_tcp,os_prio prio_new,os_err *err);

i.p_tcp :需要改變優先順序任務。如果傳入null指當前任務的優先順序

ii:p_new:新的優先順序,該值不能大於或者等於os_cfg_prio_max-1de數值,也不能為0.

iii: 存放該函式的錯誤返回碼。

7.    os_flagdel()

a.用於刪除時間標誌組。使用時注意,可能同時刪除多個任務都依賴於時間標誌組

b.os_obj_qty osflagdel(os_flag_gpr *p_grp,os_opt opt,oe_err *p_err),任務使能開光os_cfg_flag_en和

os_cfg_flag_edl_en

i.p_grp 指向要刪除事件的標誌組的指標

ii.opt    指定刪除事件組的標誌

iii.err    錯誤返回

手把手教你用Charles抓包

日常開發過程中難免要進行抓包,檢視服務端返回的資料是否正常,而charles可謂是抓包利器了。配置好以後,charles實際上讓電腦成了乙個中間 伺服器,我們手機上的所有請求都會經過電腦,被charles攔截,然後charles把自己偽裝成手機向我們的遠端伺服器位址傳送請求,所以charles能記錄...

手把手教你用Python實踐深度學習

課程共七章,採用最新版本進行教學,2018必學技術 第一章 從人工智慧到深度學習 第二章 使用tensorflow keras 建構人工神經網路 artificial neural network 第三章 卷積神經網路 convolutional neural network 第四章 迴圈神經網路 ...

手把手教你用Docker構建私有倉庫

1.部署私有倉庫應用 倉庫映象 docker hub官方已提供容器映象registry,用於搭建私有倉庫 1.拉取映象 root localhost docker pull daocloud.io library registry latest 2.執行容器 root localhost docke...