?任務(wù)的創(chuàng)建和移植代碼的測試
源程序移植完, 用戶就可以試著制作自己的項(xiàng)目。編寫任務(wù)代碼, 與以前在前后臺系統(tǒng)中基本相同, 不同
的是要把每個任務(wù)獨(dú)立編寫成一個文件, 最后由主程序統(tǒng)一調(diào)度。為了測試是否移植成功, 用STaskCreateExt ( ) 創(chuàng)建了兩個任務(wù)。一個任務(wù)使板上LED 每一秒閃動一次, 另一個任務(wù)是用片內(nèi)A/ D 采樣板上的加速度傳感器信號, 并在數(shù)碼管上顯示出當(dāng)前加速度數(shù)值。最后調(diào)用OSStar t( ) 啟動多任務(wù)調(diào)度。
?1 、定義每個任務(wù)的堆棧大小
OS_STK
TaskStartStk[ T ASKSTART ST K_SIZE] ;
OS_STK ADT askStk[ T ASKSTK_SIZE] ;
然后在main( ) 函數(shù)里系統(tǒng)初始化:
OSInit( ) ;
2、 創(chuàng)建任務(wù)
OST askCreateEx t( TaskStart, ( void * ) 0, ( OS _ ST K * )
& T askStar tSt k[ T ASKSTARTST K_SIZE1] , T ASK _START _
PRIO, TASK_START_PRIO, ( OS_ST K* ) & T askStart St k[ 0] ,
TASK_ST ART_ST K_SIZE, ( vo id * ) 0, OS_TASK_OPT _ST K_
CH K| OS_TASK_OPT_STK_CLR) ;
OSTaskCreateExt ( ADT ask, ( vo id * ) 0, ( OS _ STK * )
& ADTaskStk[ TASKST K_SIZE1] , ADTASK_PRIO, ADT ASK
_ PRIO, ( OS _ ST K * ) & ADTaskStk [ 0] , TASK _ ST K _SIZE,
( vo id * ) 0, OS_TASK_OPT_STK_CHK) ;
3 、系統(tǒng)啟動運(yùn)行
OSStart( ) ;
?4 、測試結(jié)果
測試代碼經(jīng)過編譯下載到實(shí)驗(yàn)板上運(yùn)行后, 通過實(shí)驗(yàn)板上顯示的信息, 表示兩個任務(wù)在交替運(yùn)行, 說明移植工作是成功的, 如圖5 所示。
電子發(fā)燒友App






評論