嵌入式筆記(共13頁(yè))_第1頁(yè)
嵌入式筆記(共13頁(yè))_第2頁(yè)
嵌入式筆記(共13頁(yè))_第3頁(yè)
嵌入式筆記(共13頁(yè))_第4頁(yè)
嵌入式筆記(共13頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上嵌入式系統(tǒng)軟件體系結(jié)構(gòu):1、 無(wú)操作做系統(tǒng)(1) 循環(huán)結(jié)構(gòu)(主體是循環(huán))做很多任務(wù)時(shí)不好(有延遲),加中斷和定時(shí)器較好;(2) 前后臺(tái)結(jié)構(gòu)中斷2、 有操作系統(tǒng)開(kāi)發(fā)軟件難度降低;多個(gè)任務(wù)并行執(zhí)行,任務(wù)多少與內(nèi)存(RAM)大小有關(guān);嵌入式操作系統(tǒng)的分類(lèi):1、 商用系統(tǒng)、專(zhuān)用系統(tǒng)、開(kāi)源系統(tǒng)2、 按響應(yīng)時(shí)間分類(lèi)實(shí)時(shí)操作系統(tǒng)、非實(shí)時(shí)操作系統(tǒng)第三章ARM:內(nèi)核、32位、占市場(chǎng)比例75%;也是公司名,制作內(nèi)核;與PC相比功耗小、價(jià)格低、集成度低,但集成了一些外設(shè);MIPS/W衡量處理器的標(biāo)準(zhǔn);工作模式、代碼密度存儲(chǔ)密度。3、2 ARM微處理器體系結(jié)構(gòu)偏上外設(shè)的空間屬于I/O空間;A

2、RM的架構(gòu)1個(gè)32bitsALU,31個(gè)32bits通用寄存器及6個(gè)狀態(tài)寄存器。3、2、3 ARM的寄存器組織(注:內(nèi)核寄存器):未分組寄存器 R0R7;分組寄存器 R8R14; 程序計(jì)數(shù)器 PC(R15);R13堆棧指針SP;R14PC的備份,也常寫(xiě)作LR,操作系統(tǒng)切換用;程序狀態(tài)寄存器 CPSR3、2、4 ARM處理器模式(7種)(1) 用戶模式(USR);(2)快速中斷模式(FIQ);(3)外部中斷模式(IRQ);(4) 管理模式(SVC);(5)數(shù)據(jù)訪問(wèn)終止模式(ABT);(6)系統(tǒng)模式(SYS);(7) 未定義指令中止模式(UND);大部分為用戶模式下運(yùn)行3、2、5 異常種類(lèi);異常向

3、量表P85; 異常優(yōu)先級(jí);對(duì)異常的響應(yīng):(1) 保存下一條指令地址>LR(R14);(2) CPSR>SPSR;(3) 根據(jù)異常類(lèi)型設(shè)置CPSR的M4:0;(4) PC跳轉(zhuǎn)至異常向量地址(異常向量表內(nèi)的);再跳轉(zhuǎn)至異常處理程序;(5) 從異常返回。ARM指令集32位;Thumb指令集16位,是ARM指令集的子集;常用指令:B目標(biāo)地址;BL目標(biāo)地址;R14<PC-4BLX目標(biāo)地址;ARM<>ThumbMOVR1,R0;R0->R1MOVR0,#0;#表示常數(shù)?CMPR1,R0;比較;影響CPSR標(biāo)志位LDRR0,R1;MOV不能從存儲(chǔ)器讀取數(shù)據(jù)LDRR0,R1

4、,R2;相加為內(nèi)存單元地址?LDRR0,R1,#8;LDRR0,R1,R2,LSL #2!;?地址R1+R2*4的數(shù)據(jù)R1,LSL表示左移,LSR表示右移ADDR0,R2,R3,LSL #1;R0=R2+R3<<1?SUBR0,R1,R2;R0=R1-R2ADC、SBC 考慮CBSR中C位進(jìn)、借位標(biāo)志SWI 軟中斷指令偽指令不會(huì)生成機(jī)器碼,起輔助作用AREAInit ,CODE ,READONLYENTER;入口地址ENDThumb指令集:區(qū)別沒(méi)有協(xié)處理器指令;無(wú)訪問(wèn)CPSR、SPSR指令;無(wú)64位乘法指令;訪問(wèn)寄存器受限3、4 ARM處理器編程簡(jiǎn)介文件格式:*.S,*.ASM;*

5、.C,*.CC(C+程序);一般初始化文件用匯編,主要任務(wù)用C語(yǔ)言匯編語(yǔ)言結(jié)構(gòu)P102一個(gè)代碼段(或多個(gè)),鏈接器確定在存儲(chǔ)器中的位置混合編程:主要是C語(yǔ)言?xún)?nèi)嵌套匯編語(yǔ)言關(guān)心:傳遞、返回用什么寄存器(特定)3、5 ARM處理器初始化分析Bootloader:硬件、軟件初始化1、 PC初始化過(guò)程BIOS完成計(jì)算機(jī)硬件自檢運(yùn)行MBR中的代碼讀取運(yùn)行活動(dòng)分區(qū)引導(dǎo)扇區(qū)代碼從分區(qū)中讀取內(nèi)核映像并啟動(dòng)。2、 嵌入式系統(tǒng)初始化無(wú)BIOS,硬件自檢由Bootloader完成。一般Bootloader存放于0x處,即處理器開(kāi)始執(zhí)行程序處。但不同處理器不同,具體可查datasheet。Bootloader是一段小

6、程序,通過(guò)這段小程序初始化最基本的硬件設(shè)備,并建立內(nèi)存空間映射圖。常用Bootloader有:Uboot和ViVi,其中Uboot開(kāi)源第5章 嵌入式系統(tǒng)硬件平臺(tái)與接口設(shè)計(jì)5、11、 S3C2410簡(jiǎn)介ARM920T內(nèi)核、0.18um;CMOS工藝、外圍模塊(片上外設(shè));MMU(內(nèi)存管理單元)PWM控制直流電機(jī)中的轉(zhuǎn)速,開(kāi)關(guān)電源,產(chǎn)生方波S3C2310A微處理器的啟動(dòng)方式NandflashSDRAM大容量存儲(chǔ)器NorflashSRAMXIP功能:在片內(nèi)運(yùn)行程序,成本高,容量小,掉電不消失DRAM:動(dòng)態(tài)隨機(jī)存儲(chǔ)器,存儲(chǔ)密度大,需刷新電路;SRAM:靜態(tài)隨機(jī)存儲(chǔ)器,使用方便,容量小,無(wú)需刷新電路;S

7、DRAM:同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,存儲(chǔ)容量大,需內(nèi)部刷新電路,需要同步時(shí)鐘;啟動(dòng)方式(Nandflash啟動(dòng))手機(jī)、嵌入式系統(tǒng)兩級(jí)引導(dǎo):第一級(jí):系統(tǒng)復(fù)位時(shí),若OM1:0為00,則將Nandflash的前4K字節(jié)復(fù)制到內(nèi)部SRAM中(CPU自動(dòng)完成,不需干預(yù));第二級(jí):Nandflash 前4K一般存放Bootloader,Bootloader初始化SDRAM(外擴(kuò)內(nèi)存)及Nandflash控制器,及其他初始化,隨后將Bootloader的其它部分復(fù)制到SDRAM中,運(yùn)行SDRAM中的代碼(即執(zhí)行Bootloader),引導(dǎo)操作系統(tǒng)及其他應(yīng)用程序。5、2 存儲(chǔ)器系統(tǒng)設(shè)計(jì)(很重要)內(nèi)存一定是掛在系統(tǒng)總

8、線上的;高速緩存:位置CPU與主存儲(chǔ)器(內(nèi)存之間);作用:提高內(nèi)存系統(tǒng)性能;原理:cache與主存有相同塊號(hào),CPU訪問(wèn)主存時(shí),受限訪問(wèn)cache,有則取,無(wú)則訪問(wèn)主存,且主存數(shù)據(jù)cache內(nèi)存管理單元(MMU)作用:(1) 虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射,查表過(guò)程;解釋?zhuān)砍绦蛩鑳?nèi)存大于物理內(nèi)存時(shí)的情況;(2) 存儲(chǔ)器訪問(wèn)權(quán)限控制;(3) 設(shè)置虛擬存儲(chǔ)空間的緩沖特性5、3 串行接口設(shè)計(jì)(UART)通過(guò)串口觀察程序運(yùn)行狀態(tài);可以接收輸入,可以輸出好多信息;用來(lái)運(yùn)行時(shí)交流。1、 串行通信的基本概念(UART)SPI、I2C、CAN單工、半雙工、全雙工USART:通用同步和異步收發(fā)器(有時(shí)鐘信號(hào)

9、);UART:通用異步收發(fā)器。異步通信:(1) 接收、發(fā)送時(shí)鐘不同,使用波特率,存在誤碼;(2) 有糾錯(cuò)機(jī)制(奇偶校驗(yàn)簡(jiǎn)單、有效、成本低)(3) 傳輸速率:波特率使用UART,晶振選擇上注意11.0592M,或用PLL與UART有關(guān)的寄存器P160串行接口設(shè)計(jì)#definerUTRSTAT0 (*(volatile unsigned *) 0x)#definerUTRSTAT1 (*(volatile unsigned *) 0x)#definewrUTXH0(ch) (*(volatile unsigned char *) 0x)=(unsigned char)(ch)#define RdU

10、RXH0() (*(volatile unsigned char *) 0x)int main(void)char c11;while(1)Uart_SendByten(0,0xa);/換行Uart_SendByten(0,0xd);/回車(chē)er=Uart_Getch(c1,0,0);Uart_SendByten(0,c10);void Uart_SendByten(int Uartnum,U8 data)if(Uartnum=0)while(!(rUTRSTAT0&0x4);/查看倒數(shù)三位的狀態(tài);判斷發(fā)送緩沖區(qū)是否為空,為1為空,為0為滿;hudelay(10);wrUTXH0(dat

11、a);char Uart_Getch(char *Revdata,int Uartnum,int timeout)if(Uartnum=0)while(!(rUTRSTAT0&0x1)*Revdata=RdURXH0();return TRUE;5、4 I/O接口設(shè)計(jì)GPIO例:#define GPCCON (*(volatile unsigned *)0X)#define GPCDAT (*(volatile unsigned *)0X)#define GPCUP (*(volatile unsigned *)0X)Main()GPCCON=0X;GPCUP=0XFFFF;GPCDA

12、T=0XA0;While(1);I/O接口獨(dú)立編址;統(tǒng)一編址與存儲(chǔ)系統(tǒng)。5、4、2 A/D轉(zhuǎn)換器基本概念: S3C2410時(shí)鐘:2.5MHz;8路10位AD;轉(zhuǎn)換速率:500Ksps參考電壓:3.3V; 精度:3.3V/2103.3mV例:A/DC#defineADC_CON_FLAG(0x1<<15)#defineADCCON_ENABLE_START_BYRED(0x1<<1)#definePRSCVL(49<<6)#defineADCCON_ENABLE_START(0x1)#defineSTDBM(0x0<<2)#definePRSCEN

13、(0x1<<14)#definerADCCON(*(volatile unsigned *)0x)#definerADCDAT0(*(volatile unsigned *)0xC)void init_ADdevice()rADCCON = PRSCVL|ADCCON_ENABLE_START|STDBM|PRSCEN;int GetADresult(int channel)rADCCON=ADCCON_ENABLE_START_BYREAD|(channel<<3)|PRSCEN|PRSCVL;hudelay(10);while(!(rADCCON & ADC

14、CON_FLAG);return(0x3FF & rADCDAT0);int main()float d;int i;while(1)for(i=0;i<=2;i+)d=GetADresult(i)*3.3/1023;Uart_Print("a%d=%ft",i,d);hudelay(1000);軟件以工程為整體實(shí)驗(yàn)箱自帶很多源碼,用“模板”文件,看說(shuō)明;Startup.c起始文件,入口程序,只讀即可。AD控制LED亮度While(1)K=GetADresult(0);rGPCDAT =0x00;Hudelay(110-k/10);rGPCDAT =0XFF;

15、Hudelay(k/10+1);寄存器賦值:讀修改寫(xiě)PWM控制直流電機(jī)(小功率)寄存器(PWM)TCNTBn:決定頻率;TCMPBn:決定占空比;TCNTBn、TCMPBn等;TCON:控制寄存器開(kāi)始、停止、倒相、更新寄存器TCFG0:預(yù)分頻,死區(qū)單元(時(shí)間);TCFG1:MUX分頻程序:Init_Motoport()rGPBCON =rGPBCON&0X3FFFF0 | 0XA;/B1、B0對(duì)應(yīng)TOUT1,TOUT0rTCFG0=(0<<16) | 2;rTCFG1=0;/MUX 2分頻rTCNTB0=MOTOR_CONT;/很大的常數(shù)rTCMPB0=MOTOR_MID;

16、/PWM時(shí)鐘/2000rTCON =0X2;/update TCNTB0、TCMPB0rTCON=0X19;/start;死區(qū)使能Void SetPWM(int value)rTCMPB0=MOTOR_MID+value;第4章 UC/OS-II 操作系統(tǒng)特點(diǎn):開(kāi)源;嵌入式操作系統(tǒng):提供了一個(gè)平臺(tái)(軟件);供軟件運(yùn)行、設(shè)備管理、人機(jī)接口。軟件調(diào)用硬件流程:軟件1硬件1操作系統(tǒng)驅(qū)動(dòng)程序軟件n硬件m操作系統(tǒng)不允許軟件直接調(diào)用硬件。UC/OS-II 的任務(wù)1、 任務(wù)的基本概念;2、任務(wù)堆棧;3、任務(wù)控制塊;4、 任務(wù)調(diào)度;5、任務(wù)的創(chuàng)建;6、任務(wù)的掛起和恢復(fù);7、 UC/OS-II的初始化和任務(wù)的啟

17、動(dòng);8、 任務(wù)的同步與通信任務(wù)的基本概念:(線程、進(jìn)程)任務(wù):就是一個(gè)線程,就是一個(gè)用來(lái)解決用戶問(wèn)題的C語(yǔ)言函數(shù)和與之相關(guān)聯(lián)的一些數(shù)據(jù)結(jié)構(gòu)而構(gòu)成的一個(gè)實(shí)體。任務(wù)的構(gòu)成:任務(wù)代碼(任務(wù)執(zhí)行部分)、任務(wù)堆棧(保存工作環(huán)境)、任務(wù)控制塊(TCB)(保存任務(wù)的屬性)兩種任務(wù):用戶任務(wù)、系統(tǒng)任務(wù)任務(wù)狀態(tài)P118圖4-3每一時(shí)刻只有一個(gè)任務(wù)在“運(yùn)行狀態(tài)”;只有“就緒狀態(tài)”可以進(jìn)入“運(yùn)行狀態(tài)”;“睡眠狀態(tài)”的任務(wù)沒(méi)有TCB用戶任務(wù)的一般結(jié)構(gòu)超循環(huán)結(jié)構(gòu)(無(wú)限循環(huán));Void Mytask(void *pdata)For(;)可以被中斷的用戶代碼;OS_ENTER_CRITICAL();/進(jìn)入臨界段(關(guān)中斷)不

18、可以被中斷的用戶代碼;OS_EXIT_CRITICAL();/退出臨界段(開(kāi)中斷)可以被中斷的用戶代碼;延時(shí)函數(shù)(任務(wù)切換);/必須是系統(tǒng)自帶延時(shí)函數(shù)(出口)任務(wù)堆棧堆棧:存儲(chǔ)器中按數(shù)據(jù)“后進(jìn)先出(LIFO)”的原則組織的連續(xù)存儲(chǔ)空間。任務(wù)堆棧的作用:任務(wù)切換和響應(yīng)中斷時(shí)保存CPU寄存器中的內(nèi)容及存儲(chǔ)任務(wù)的私有數(shù)據(jù)。任務(wù)堆棧的創(chuàng)建OS_CPUH中定義了OS_STKTypedefunsigned int OS_STK;/16位長(zhǎng)度定義堆棧長(zhǎng)度:#define TASK_STK_SIZE 512應(yīng)用程序中:OS_STK TaskStk TASK_STK_SIZE;/定義了一個(gè)數(shù)組作為堆棧創(chuàng)建任務(wù)函

19、數(shù)原型:INT8UOSTaskCreate ( void ( * task)(void *pd), /指向任務(wù)指針Void *pdata,/給任務(wù)傳遞參數(shù)OS_STK*ptas,/任務(wù)堆棧棧頂指針I(yè)NT8Uprio);/任務(wù)優(yōu)先級(jí)不能重復(fù);UC/OS-III可以重復(fù)例:建一個(gè)任務(wù),對(duì)戰(zhàn)長(zhǎng)度128字節(jié),優(yōu)先級(jí)20,任務(wù)參數(shù)MyTaskAgu#defineMyTaskStkN64OS_STKMyTaskStk MyTaskStkN;/16位Void main(void)OSTaskCreate (Mytask, &MyTaskAgu, &MyTaskStk MyTaskStkN-1

20、, 20);若&MyTaskAgu為(void *) 0,表示無(wú)參數(shù)情況注意:堆棧生長(zhǎng)方向問(wèn)題;不同處理器不同;若有低地址向高地址生長(zhǎng),則&MyTaskStk0;一般OS_CFG.H中定義了OS_STK_GROWTH作為選擇開(kāi)關(guān)。任務(wù)堆棧初始化任務(wù)堆棧初始化由操作系統(tǒng)負(fù)責(zé),由函數(shù)OSTaskStkInit()完成(非用戶函數(shù))。該函數(shù)根據(jù)CPU不同而不同,在OS_CPU.H中定義。最核心的是任務(wù)的調(diào)度(OSSched());時(shí)鐘節(jié)拍也是一種中斷。任務(wù)控制塊及其鏈表任務(wù)控制塊(OS_TCB)用來(lái)記錄任務(wù)的屬性(結(jié)構(gòu)體);堆棧指針、任務(wù)當(dāng)前狀況、任務(wù)的優(yōu)先級(jí)別等與任務(wù)管理有關(guān)的屬性

21、。任務(wù)控制塊把任務(wù)代碼和任務(wù)堆棧關(guān)聯(lián),相當(dāng)于任務(wù)的身份證。(1) 任務(wù)控制塊的結(jié)構(gòu)任務(wù)控制塊是一個(gè)結(jié)構(gòu)類(lèi)型數(shù)據(jù),OS_TCB結(jié)構(gòu),由OSTaskCreate()函數(shù)創(chuàng)建一個(gè)用戶任務(wù)時(shí),函數(shù)會(huì)對(duì)任務(wù)控制塊中所有成員賦予與該任務(wù)相關(guān)的數(shù)據(jù),并駐留RAM(2) 任務(wù)控制塊鏈表UC/OS-II用兩條鏈表來(lái)管理TCB;一條空TCB鏈表,所有TCB沒(méi)有分配給任務(wù);另一條是任務(wù)TCB鏈表,所有TCB分配給了任務(wù);空TCB鏈表由OSInit()創(chuàng)建;任務(wù)鏈表由OSTaskCreate()創(chuàng)建任務(wù)時(shí)創(chuàng)建。注:1) OSInit()對(duì)UC/OS-II初始化時(shí),RAM中創(chuàng)建了一個(gè)OS_TCB結(jié)構(gòu)類(lèi)型數(shù)組OSTCBT

22、bl;2) OSTaskCreate()或OSTaskCreateExt()創(chuàng)建任務(wù)時(shí)將空TCB分配給該任務(wù),且加入到任務(wù)TCB鏈表中;3) 刪除一個(gè)任務(wù),該任務(wù)TCB被從任務(wù)控制塊鏈表中刪除睡眠狀態(tài)任務(wù)調(diào)度(做好很困難)CPU中止當(dāng)前任務(wù),而去運(yùn)行另一個(gè)任務(wù)叫任務(wù)切換;按某種規(guī)則進(jìn)行的任務(wù)切換工作叫做任務(wù)調(diào)度。UC/OS-II中,由任務(wù)調(diào)度器完成。任務(wù)調(diào)度器做兩項(xiàng)工作:在任務(wù)就緒表中查找具有最高優(yōu)先級(jí)別的就緒任務(wù);完成任務(wù)切換。實(shí)現(xiàn)函數(shù):OSSched()->任務(wù)級(jí)調(diào)度器或OSIntExt()->中斷級(jí)調(diào)度器;注:非用戶函數(shù);這里主要介紹任務(wù)級(jí)調(diào)度器如何:(1) 查找任務(wù)就緒表;

23、(2)進(jìn)行任務(wù)切換。與普通中斷不同,SP被改變,導(dǎo)致中斷進(jìn)入、返回是PC不同。任務(wù)就緒表由INT8U 變量 OSRdyGrp與INT8U 數(shù)組 OSRdyTbl實(shí)現(xiàn)OSRdyTbl0 OSRdyGrpOSRdyTbl7Dn=0,說(shuō)明OSRdyTbln組有就緒任務(wù)。D7 D0D7 D0D7 D0優(yōu)先級(jí)不會(huì)超過(guò)63:,分成前3位和后3位;前3位置位OSRdyGrp的某一位,后3位置位OSRdyTbln的某一位;因此,可將優(yōu)先級(jí)看成6位2進(jìn)制數(shù),D5D4D3表示OSRdyGrp的具體數(shù)據(jù)位,低3位D2D1D0表示該數(shù)組元素具體數(shù)據(jù)位。任務(wù)的調(diào)度(切換)兩步:(1)獲得待運(yùn)行任務(wù)的TCB指針;(2)進(jìn)

24、行斷點(diǎn)任務(wù)切換;任務(wù)級(jí)調(diào)度:(1)OSSched()確認(rèn)未被上鎖,且不是中斷服務(wù)程序調(diào)度器,首先查找最高優(yōu)先級(jí)就緒任務(wù)的優(yōu)先級(jí)別,找到它的TCB指針,并且賦值給OSTCBHighRdy;(2)任務(wù)切換宏OS_TASK_SW(),函數(shù)OSCtxsw()實(shí)現(xiàn)。能否正確地在CPU各寄存器中恢復(fù)斷點(diǎn)數(shù)據(jù),即CPU的堆棧指針SP是否有正確指向,用OSTCBStkPtr保存SP;先出了SP之后,中斷返回時(shí),PC出棧,此時(shí)PC非中斷發(fā)生時(shí)PC具體實(shí)現(xiàn):由于不具備對(duì)PC出棧、入棧指令,所以引發(fā)一次中斷,中斷服務(wù)程序OSCtxSw()一般用匯編語(yǔ)言寫(xiě)。任務(wù)的創(chuàng)建實(shí)質(zhì)就是創(chuàng)建一個(gè)任務(wù)控制塊,并通過(guò)任務(wù)控制塊把任務(wù)

25、代碼和任務(wù)堆棧關(guān)聯(lián)起來(lái)。由函數(shù)OSTaskCreate()和OSTaskCreateExt()完成。INT8UOSTaskCreate(void (*task)(void *pd),void *pdata,OS_STK *pts,INT8U Prio)檢測(cè)任務(wù)優(yōu)先級(jí)是否合法;確認(rèn)優(yōu)先級(jí)未被占用;初始化任務(wù)堆棧;獲得并初始化任務(wù)控制塊;任務(wù)計(jì)數(shù)器+1;任務(wù)調(diào)度;(UC/OS-II處于運(yùn)行狀態(tài))創(chuàng)建任務(wù)的一般方法要求在OSStart()之前至少創(chuàng)建一個(gè)任務(wù),習(xí)慣上創(chuàng)建一個(gè)啟動(dòng)任務(wù),并賦予最高優(yōu)先級(jí),在調(diào)用OSStart()之前,再由它創(chuàng)建其他任務(wù)。任務(wù)的掛起和恢復(fù)OS_TASK_SW()任務(wù)被剝奪

26、CPU使用權(quán)就緒狀態(tài)等待狀態(tài)運(yùn)行狀態(tài)OSTaskResume()OSTaskSuspend()掛起:停止任務(wù)的運(yùn)行,使處于等待狀態(tài)OSTaskSuspend()掛起自身或空閑任務(wù)之外的其他任務(wù);OSTaskSuspend()刮起的任務(wù)只能在其他任務(wù)中調(diào)用OSTaskResume()使其恢復(fù)為就緒狀態(tài)。UC/OS-II的初始化和任務(wù)的啟動(dòng)OSInit()對(duì)UC/OS-II的所有全局變量和數(shù)據(jù)結(jié)構(gòu)初始化;同時(shí)創(chuàng)建任務(wù)OSTaskIdle()(空閑任務(wù));如果還要使用統(tǒng)計(jì)任務(wù),同時(shí)創(chuàng)建完成;數(shù)據(jù)結(jié)構(gòu)主要是創(chuàng)建包括任務(wù)控制塊在內(nèi)的5個(gè)空數(shù)據(jù)緩沖區(qū);OSStart()啟動(dòng)任務(wù),前提是至少創(chuàng)建了一個(gè)用戶任務(wù)。用系統(tǒng)自帶延時(shí)函數(shù)OSTimeDly(),可使性能優(yōu)化,提高CPU利用率。OS_task.cOS_core.cOS_sem.cOS_time.cVoid Task1(void *Id)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論