嵌入式教材課件 第四次_第1頁
嵌入式教材課件 第四次_第2頁
嵌入式教材課件 第四次_第3頁
嵌入式教材課件 第四次_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗一μCOS-II任務基礎實驗一、實驗目的理解任務管理的基本原理,了解任務各個基本狀態及其變遷過程;掌握μCOS-II中任務管理的基本方法(創建、啟動、掛起、解掛任務);熟練使用μCOS-II任務管理的基本系統調用。二、實驗內容建立兩個任務Task1和Task2:任務Task1不斷地掛起自己,再被任務Task2解掛,兩個任務不斷地切換執行。并在串口打印相應的信息。用戶可以通過串口進行觀察。三、實驗步驟在PC機上運行windows自帶的超級終端串口通信程序超級終端,設置超級終端:波特率115200、1位停止位、無校驗位、無硬件流控制。新建一個工程u1,并將E:\caderm\examples\UCOS-II下的文件復制到新建工程u1目錄下,將目錄中的Core(Csource和Core(Assemble)的文件加入到工程u1中(添加C源文件u1\OS_CPU_C.c,u1\UCOS_II.c,E:\caderm\examples\common\2410lib.c,E:\caderm\examples\common\interrupt.c,u1\uhal.c和asm源文件u1\OS_CPU_A.S,E:\caderm\examples\asm\2410slib.s,E:\caderm\examples\asm\2410init.s),并按照之前的硬件實驗的工程設置去修改u1的工程設置;新建一個文件u1.c,并將其添加到u1工程的App文件夾打開u1.c文件,復制參考程序。編譯u1.c,如果出錯,進行修改后再編譯。編譯工程u1,如果出錯,進行修改后再編譯。將u1下載并運行,在PC機上觀察超級終端程序主窗口。理解參考程序,包括任務函數定義、堆棧分配定義,任務建立、任務的優先級等。參考源代碼,建立三個任務的調用,一個任務串口打印輸出,一個任務點亮led燈,一個任務點亮數碼管(調用leddemo里面的函數,把Test_Seg7()復制到2410lib.c文件中)。修改延時時間,觀察結果。1利用任務控制函數例如:OSTaskSuspend(),OSTaskResume(),在步驟9的基礎上,實現任務的輪流調用。)四、參考程序#include "includes.h"/*uC/OSinterface*/#include"option.h"#include"2410lib.h"#include"uhal.h"/*任務棧*/OS_STKStack1[STACKSIZE]={0,};//任務1任務棧OS_STKStack2[STACKSIZE]={0,};//任務2任務棧OS_STKStack3[STACKSIZE]={0,};//任務3任務棧/*任務ID*/charId1='1';//任務1IDcharId2='2';//任務2IDcharId3='3';//任務3ID/*任務處理函數*/voidTask1(void*Id);//任務1任務處理函數voidTask2(void*Id);//任務2任務處理函數voidTask3(void*Id);//任務3任務處理函數/**Main函數.*1、初始化目標系統,初始化硬件定時器等,與操作系統無關*2、調用OSInit初始化uC/OS-II軟件數據結構等,必須在打開時鐘節拍中斷之前調用*3、創建兩個任務Task1和Task2,Task1的優先級為5,Task2的優先級為6,Task1的優先級高于Task2*4、、調用OSStart啟動uC/OS-II*/voidMain(void){/**目標系統初始化*/ ARMTargetInit();/**uC/OS-II軟件初始化*/ OSInit();/**創建兩個任務,Task1和Task2,Task1的優先級為5,Task2的優先級為6,Task1的優先級高于Task2*/ OSTaskCreate(Task1,(void*)&Id1,(OS_STK*)&Stack1[STACKSIZE-1],5); OSTaskCreate(Task2,(void*)&Id2,(OS_STK*)&Stack2[STACKSIZE-1],6);OSTaskCreate(Task3,(void*)&Id3,(OS_STK*)&Stack3[STACKSIZE-1],7);/**啟動多任務調度*/OSStart();/**正常情況下,永遠不會執行到這里*/ return;}voidTask1(void*Id){INT8Uerr;ARMTargetStart();for(;;){sprintf(print_buf,"Task1:iamrunning.\n");uHALr_printf(print_buf);OSTimeDly(100);}}voidTask2(void*Id){INT8Uerr=OS_NO_ERR;ARMTargetStart();for(;;){intnLed=0x0f;Led_Display(nLed);OSTimeDly(100);}}voidTask3(void*Id){INT8Uerr=OS_NO_ERR;ARMTargetStart();for(;;){Test_Seg7();OSTimeDly(100);}}2410lib.c文件中/****************************************************************************//*函數說明:JXARM9-24107段構共陽數碼管測試*//*功能描述:依次在7段數碼管上顯示0123456789ABCDEF*//*返回代碼:無*//*參數說明:無*//****************************************************************************/voidTest_Seg7(void){ inti; //TODO}/****************************************************************************//*Functionname:循環延時子程序*//*Description:循環'time'次*//*Returntype:void*//*Argument:循環延時計數器*//****************

溫馨提示

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

評論

0/150

提交評論