實(shí)驗(yàn)一、一個簡單的uCOS_第1頁
實(shí)驗(yàn)一、一個簡單的uCOS_第2頁
實(shí)驗(yàn)一、一個簡單的uCOS_第3頁
實(shí)驗(yàn)一、一個簡單的uCOS_第4頁
實(shí)驗(yàn)一、一個簡單的uCOS_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)一、一個簡單的,C/OS-II應(yīng)用程序設(shè)計一、 實(shí)驗(yàn)?zāi)康?、 熟悉pC/OS-II應(yīng)用程序編寫的實(shí)驗(yàn)環(huán)境設(shè)置;2、 掌握pC/OS-II應(yīng)用程序的編寫、編譯、下載、運(yùn)行的基本步驟;3、 了解^C/OS-II操作系統(tǒng)源碼的基本結(jié)構(gòu);4、 熟練掌握編寫pC/OS-II應(yīng)用程序的基本要求和步驟。二、 實(shí)驗(yàn)設(shè)備2.1硬件本實(shí)驗(yàn)采用的奮斗版STM32MINI開發(fā)板,該開發(fā)板的硬件圖如圖1所示,該板可外接觸摸屏。請仔細(xì)觀測開發(fā)板上的主要器件,在下面的實(shí)驗(yàn)中尤其要注意【啟動模式選擇】插針,當(dāng)插針接上時為開發(fā)板運(yùn)行模式,斷開時為開發(fā)板燒錄模式。圖1-1、奮斗STM32MINI開發(fā)板硬件示意圖USB#Q.啟動模式選擇我?穩(wěn)壓器2MSPIFLASHSST25VF016B16位FSMC圖1-1、奮斗STM32MINI開發(fā)板硬件示意圖USB#Q.啟動模式選擇我?穩(wěn)壓器2MSPIFLASHSST25VF016B16位FSMC及觸摸控制接口-狀態(tài)指示燈f本實(shí)驗(yàn)中需要將硬件的串口接USB轉(zhuǎn)串口線,電源是通過USB接口進(jìn)行供電,燒錄時需要將【啟動模式選擇】插針拔掉。2.2軟件WindowsXP/Windows7、RealViewMDK、pC/OS-II版本2.86與移植包、ST官方標(biāo)準(zhǔn)庫V3.2版、STM32TMandSTM8?Flashloaderdemonstrator,串口調(diào)試工具等。三、實(shí)驗(yàn)內(nèi)容3.1實(shí)驗(yàn)環(huán)境搭建本實(shí)驗(yàn)是第一次使用|JC/OS-II操作系統(tǒng),在實(shí)驗(yàn)之前首先需要熟悉|JC/OS-II實(shí)驗(yàn)系統(tǒng)的環(huán)境設(shè)置。在2.1節(jié)已經(jīng)介紹奮斗miniARM板的線路連接方式,由于現(xiàn)在的PC機(jī)上一般不提供串口,所以需要使用USB轉(zhuǎn)串口線,并安裝相應(yīng)的USB轉(zhuǎn)串口驅(qū)動程序包,可根據(jù)USB轉(zhuǎn)串口線的型號在互聯(lián)網(wǎng)上搜索找到需要的驅(qū)動程序(注意:可能需要多試驗(yàn)幾次才會找到合適的驅(qū)動程序包)。安裝完成后可以在設(shè)備管理器中看到虛擬串口信息,如圖1-2所示。鼠標(biāo)右鍵點(diǎn)擊電腦桌面【我的電腦】,點(diǎn)擊【設(shè)備管理器】可彈出設(shè)備管理器界面。虛擬串口名字可以通過點(diǎn)擊端口查看,例如圖1-3中顯示的虛擬串口名是COM8。圖1-2、打開設(shè)備管理器界面

圖1-3、設(shè)備管理界面接下來需要安裝以C/OS-II編輯、編譯開發(fā)工具。在此我們選擇的是RealViewMDK,RealViewMDK集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),包括µVision3集成開發(fā)環(huán)境與RealView編譯器。支持ARM7、ARM9和最新的Cortex-M3核處理器,自動配置啟動代碼,集成Flash燒寫模塊,強(qiáng)大的Simulation設(shè)備模擬,性能分析等功能,與ARM之前的工具包ADS等相比,RealView編譯器的最新版本可將性能改善超過20%。該工具的安裝界面如圖1-4所示。安裝完成后可以在電腦的【開始】->【所有程序】->【KeiluVision3】中啟動該工具軟件,如圖1-5所示。我們可以在該工具中編輯源碼,并將源程序編譯為可下載到目標(biāo)板上運(yùn)行的hex文件。

t1 ■■■.?EpVisionIntegratedDevelopmentEnvironment

For區(qū)KEIL區(qū)KEILV#■AnARbi?CompanyRealView*ToolsbyARM*Copyright?1997-2005KeilSoftware.2005-2007ARMLtd.Allrightsreserverd.ITiisproductisprotectedbyUSandinternatiuridllaws.圖1-5、RealViewMDK啟動界面MDK產(chǎn)生的hex文件如何燒錄到目標(biāo)板中,燒錄的方法有很多種。我們這里采用的是串口加載方法,使用的是FlashLoaderDemonstrator串口燒錄軟件,首先需要單獨(dú)安裝FlashLoaderDemonstrator軟件,安裝過程如圖1-6。使用該軟件的步驟如下:第一步:選擇串口(圖1-7)。請注意該虛擬串口的名稱可能會隨著每次電腦的關(guān)機(jī)/開機(jī)而發(fā)生變化,本文撰寫時所在PC機(jī)上的虛擬串口名為COM8,實(shí)驗(yàn)時你打開的虛擬串口名稱可能是其它的,如COM3等等。第二步:點(diǎn)擊【next】進(jìn)入第二步,顯示目標(biāo)板Flash內(nèi)存大小,如圖1-8,。請注意目標(biāo)板必須上電,并且抽針拔下(參見2.1節(jié)硬件部分介紹),連續(xù)燒錄時必須重新復(fù)位(斷開電源后再次加電即可)。第三步:點(diǎn)擊NEXT鍵會顯示顯示詳細(xì)的器件信息。圖1-7、選擇虛擬串口圖1-8、目標(biāo)板Flash內(nèi)存大小AUriFrotectedN:=jtie|St:=Lrta...End角dd...|Si工旦BackFinishPagedPagelFage2Fage3Page4Page5FageGPage?Fage8Fage'dFagelUOx8000000Ox8000800Ox8001000Ox8001800Ox8002000Ox8002800Ox8003000Ox8003800Ox8004000Ox8004800Ox8005000n?flnn^flnnOx80007FFOx8000FFFOx80017FFOx8001FFFOx80027FFOx8002FFFOx8003TFFOx8003FFFOx80047FFOx8004FFFOx8005TFFn?flnn^T?i?T?0k800(2K::i0k800(2K::i0k800(:2K::iOkSOOCIO0k800(2K::l0k800(2K::l0k800(2K::i0m800(2K::i0k800(2K::i0k800(2K::i0k800SIC:)n-rRnnfC'Tfl^00000000000raRQQQ00000000ra圖1-9、目標(biāo)板Flash內(nèi)存大小第四步:選擇燒錄文件(后綴名為hex的文件)°MDK編譯鏈接無錯誤后將生成hex文件,該文件一般在MDK項(xiàng)目的ObjFlash文件夾下。第五步:點(diǎn)擊NEXT鍵,經(jīng)過一段下載的過程,完成代碼的下載。圖1-10、目標(biāo)板Flash內(nèi)存大小圖1-11、HEX文件下載過程3.2在MDK中編寫第一個HC/OS-II應(yīng)用程序1、編寫HC/OS-II應(yīng)用程序編寫pC/OS-II應(yīng)用程序不同于我們在學(xué)習(xí)C語言中編寫程序的方式,我們現(xiàn)在編寫的MC/OS-II應(yīng)用程序必須與pC/OS-II操作系統(tǒng)代碼一起進(jìn)行編譯運(yùn)行,因此我們通常是在一個已經(jīng)完成的pC/OS-II應(yīng)用程序的基礎(chǔ)上進(jìn)行修改代碼以實(shí)現(xiàn)新的功能。首先啟動MDK軟件,如圖1-13所示。點(diǎn)擊菜單【project]->[openproject】打開現(xiàn)存的MDK項(xiàng)目,本實(shí)驗(yàn)是基于led_example_gui文件中的APP目錄下的工程文件STM32-FD-ucgui.Uv2。該例子是基于GUI的LED閃爍的案例,點(diǎn)擊[project]->[buildproject]可以編譯鏈接整個項(xiàng)目工程,無錯誤時可產(chǎn)生HEX文件。大家可以通過3.1節(jié)中介紹的方法燒錄該HEX文件(在ObjFlash目錄中)到目標(biāo)板上觀察程序運(yùn)行結(jié)果。圖1-12顯示了led_example_gui的工程目錄結(jié)構(gòu),其中APP目錄主要存放應(yīng)用程序,BSP存放硬件平臺初始化的文件,pC/OS-II/Source目錄存放7pC/OS-II操作系統(tǒng)的所有源文件,包括:os_core.c、os_mem.c、os_mbox.c、os_q.c等文件。aEl-s-s-s-s-s-s-s-s- aEl-s-s-s-s-s-s-s-s- 0-:0-:0-:曰FlashStartupAFPBSPFWLibuC-OS-II/PortuC-OS-II/CPUuC_OS_II/SourceuCGUILibLDocumentation:::]readme,txtuCOS-II/GUI_XTFTCM3Lfont固SimSun_13.c圖1-12、led_example_gui例子的工程文件目錄在該項(xiàng)目中添加新文件appl.c,并在其中按下列要求編寫代碼。注意要將項(xiàng)目工程中app.c文件的main函數(shù)名字改掉,例如改為mainl。該軟件的主要功能是創(chuàng)建一個獨(dú)立的任務(wù),在該任務(wù)中每隔10000*100個節(jié)拍的時間通過串口輸出一段文字。#include"includes.h"staticOS_STKApp_TaskStartStk[128];staticvoidApp_TaskStart(void*p_arg);intmain(void){CPU_INT08Uos_err;/*禁止所有中斷*/CPU_IntDis();OSInit(); /*ucosII初始化*/BSP_Init(); /*硬件平臺初始化*/os_err=OSTaskCreate((void(*)(void*))App_TaskStart, 〃指向任務(wù)代碼的指針(void*)0, 〃任務(wù)開始執(zhí)行時,傳遞給任務(wù)的參數(shù)的指針(OS_STK*)&App_TaskStartStk[127], 〃分配給任務(wù)的堆棧的棧頂指針 從頂向下遞減(INT8U)2); 〃分配給任務(wù)的優(yōu)先級OSStart(); 〃啟動ucosII內(nèi)核return(0);}

staticvoidApp_TaskStart(void*p_arg){while(1){USART_OUT(USART1,"****嵌入式操作系統(tǒng)課程實(shí)驗(yàn)開始了*******\r\n");USART_OUT(USART1,"**\r\n");USART_OUT(USART1,"*實(shí)驗(yàn)一、一個簡單的MCOS-II應(yīng)用程序設(shè)計*\r\n");USART_OUT(USART1,"**\r\n");USART_OUT(USART1,"*作者:*\r\n");USART_OUT(USART1,"*南京工程學(xué)院*\r\n");USART_OUT(USART1,"**\r\n");USART_OUT(USART1,"***************************************************\r\n'');USART_OUT(USART1,"\r\n");USART_OUT(USART1,"\r\n");OSTimeSet(10000*100); //ucosII的節(jié)拍計數(shù)器10000*100 節(jié)拍計數(shù)器是0-4294967295}}-Inlxi|呼STM32-FD-ucgui-硬ision3-[E:\嵌入式QS\奮斗STM32開發(fā)板例程目錄'奮斗STM32開發(fā)板V5及-Inlxi|呼STM32-FD-ucgui-硬ision3-[E:\嵌入式QS\奮斗STM32開發(fā)板例程目錄'奮斗STM32開發(fā)板V5及MIBI例程'奮斗STM32開發(fā)板MIBI+2.4寸CILJ9325-NEW)屏例程'適用于MI...區(qū)Flash日…:St:ai-tup團(tuán)stm32£1Ox_startup.eAFF蜀app.c都stm32£10x_it.c:*]Fuil.cBSF因bsp.cFWLibuC-OS-II/Fc.rtuC-OS-II/CFUuC-OS-II/Som-ceuCGUILib固uCGLflJlEMO.libIlocijinentationp|readme,txtuCOS-II/GUI_X固GUI_X_Touch.c▲點(diǎn)星爵百的60,60,大小130X25ect,NULL,GUIIDSLIDERO,60,60,130,25,0,0},點(diǎn)是窗體的6。,110,大小130X25ect,NULL,GUIIDSLIDER!,60f110,130,25,0,0}點(diǎn)是窗體的6。,160,大小130X25ect,NULL,GUIIDSLIDER2,60,160,130,25,0,0}OutputWindow ▼X|Al|\Build人Command人FindinFiles/ ||『 |?H…傅U|*J}■I8?--Ig|Fun,c[ForHelpjpressFl|CorteK-M3J-UHK圖1-13、MDK編程工具界面2、編譯、運(yùn)行編譯鏈接上述項(xiàng)目產(chǎn)生HEX文件。編譯鏈接的方法前面已有論述,如果程序出現(xiàn)錯誤,修改后繼續(xù)編譯。接下來就需要將該文件燒錄到目標(biāo)板中運(yùn)行程序,燒錄完成后拔掉電源,將【啟動模式選擇】插針插上,并且一定要關(guān)閉FlashLoaderDemonstrator軟件,否則該

軟件會一直占用串口。打開串口調(diào)試軟件,接上電源就可以在串口調(diào)試軟件觀察到AR

溫馨提示

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

評論

0/150

提交評論