日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] /*****************************************************一個(gè)uCOS ARM系統(tǒng)的啟動(dòng)過程分析及系統(tǒng)構(gòu)架。 **Main 函數(shù)的代碼如下: **************************************

 /****************************************************

*一個(gè)uCOS ARM系統(tǒng)的啟動(dòng)過程分析及系統(tǒng)構(gòu)架。 *

*Main 函數(shù)的代碼如下: *

*****************************************************/

int Main(int argc, char **argv)

{

ARMTargetInit() // 系統(tǒng)硬件初始化

OSInit() //初始化操作系統(tǒng)

uHALr_ResetMMU() //復(fù)位MMU

LCD_Init() //初始化LCD 模塊

LCD_printf("LCD initialization is OK\n") //顯示液晶屏信息

LCD_printf("240 x 128 Text Mode\n")

LoadFont() //裝載系統(tǒng)字體

LCD_printf("Create task on uCOS-II...\n") //顯示液晶屏信息

//創(chuàng)建系統(tǒng)的任務(wù)

OSTaskCreate(Main_Task, (void *)0,

(OS_STK *)& Main_Stack[STACKSIZE*8-1], Main_Task_Prio)

OSTaskCreate(Led_Flash_Task, (void *)0,

(OS_STK *)& Led_Flash_Stack[STACKSIZE-1], Led_Flash_Prio )

OSTaskCreate(Lcd_Fresh_Task, (void *)0,

(OS_STK *)& Lcd_Fresh_Stack[STACKSIZE-1], Lcd_Fresh_prio )

OSTaskCreate(Key_Scan_Task, (void *)0,

(OS_STK *)& Key_Scan_Stack[STACKSIZE-1], Key_Scan_Task_Prio )

LCD_printf("Starting uCOS-II...\n")

LCD_printf("Entering graph mode...\n")

LCD_ChangeMode(DspGraMode) //設(shè)置液晶屏顯示為圖形模式

initOSGUI() //初始化圖形用戶界面

InitRtc() //初始化系統(tǒng)時(shí)鐘

LCDFresh_MBox=OSMboxCreate(NULL) //創(chuàng)建LCD 刷新郵箱

Lcd_Disp_Sem=OSSemCreate(1) //創(chuàng)建LCD 緩沖區(qū)控制權(quán)旗語,初值為1 滿足互斥條件

Nand_Rw_Sem=OSSemCreate(1) //創(chuàng)建Nand-Flash 讀寫控制權(quán)旗語,初值為1 滿足互斥條件

ARMTargetStart() //啟動(dòng)操作系統(tǒng)的硬件定時(shí)器等中斷

OSStart() // 啟動(dòng)操作系統(tǒng)

//程序不會(huì)運(yùn)行至此

return 0

}//main end

/****************************************************

*系統(tǒng)啟動(dòng)的時(shí)候創(chuàng)建了4 個(gè)系統(tǒng)任務(wù),其中Main_Task 為系統(tǒng)的主任務(wù),用戶的應(yīng) *

*用程序就是從Main_Task 任務(wù)開始的。其代碼如下: *

*****************************************************/

void Main_Task(void *Id) //Main_Test_Task

{

POSMSG pMsg=0

ClearScreen() //清除屏幕

for( )

OSTimeDly(1000)

//消息循環(huán)

/* for( ){

pMsg=WaitMessage(0)

tch(pMsg-> Message){

case OSM_KEY:

onKey(pMsg-> WParam,pMsg-> LParam)

break

}

DeleteMessage(pMsg)

}*/

}

/**************************************************

通常多操作系統(tǒng)中的任務(wù)是一個(gè)無限循環(huán),同樣,Main_Task 也要陷入一個(gè)無限循環(huán)。

因?yàn)閡COS-II 是占先式多任務(wù)操作系統(tǒng),如果沒有比Main_Task 任務(wù)更高優(yōu)先級(jí)的任務(wù)

進(jìn)入就緒狀態(tài),Main_Task 任務(wù)是不會(huì)放棄CPU 的控制權(quán)的。通過調(diào)用OSTimeDly(INT16U

ticks)函數(shù),可以使操作系統(tǒng)進(jìn)行一次任務(wù)調(diào)度,并且執(zhí)行下一個(gè)優(yōu)先級(jí)最高的就緒狀態(tài)的

任務(wù)。參數(shù)Ticks 表示任務(wù)延時(shí)的節(jié)拍數(shù),一旦規(guī)定的時(shí)間期滿,該任務(wù)馬上又會(huì)重新進(jìn)入

就緒狀態(tài)。

****************************************************/

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉