李曉林(2009061121)嵌入式系統(tǒng)實驗報告_第1頁
李曉林(2009061121)嵌入式系統(tǒng)實驗報告_第2頁
李曉林(2009061121)嵌入式系統(tǒng)實驗報告_第3頁
李曉林(2009061121)嵌入式系統(tǒng)實驗報告_第4頁
李曉林(2009061121)嵌入式系統(tǒng)實驗報告_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)設(shè)計實驗報告班 級: 090611 學 號: 2009061121 姓 名: 李曉林 成 績: 指導教師: 武俊鵬 劉書勇 1. 實驗一1.1實驗名稱博創(chuàng)UP-3000實驗臺基本結(jié)構(gòu)及使用方法1.2實驗目的n 熟悉UP-net3000實驗平臺的核心硬件電路和外設(shè)n ARM JTAG的安裝與使用n 通過操作系統(tǒng)自帶的通訊軟件超級終端,檢驗各個外設(shè)的工作狀態(tài),為以后的實驗和課設(shè)打下基礎(chǔ)。1.3實驗環(huán)境硬件:ARM嵌入式開發(fā)平臺、用于 ARM7TDMI的JTAG 仿真器、PC機Pentium100 以上、示波器。 軟件:PC機操作系統(tǒng)win98、Win2000 或WinXP 、ARM SD

2、T 2.51或ADS1.2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。1.4 實驗內(nèi)容及要求熟悉UP-net3000實驗平臺的核心硬件電路和外設(shè),ARM JTAG的安裝與使用。通過操作系統(tǒng)自帶的通訊軟件超級終端,檢驗各個外設(shè)的工作狀態(tài)。要求通過本次課程對各個外設(shè)的了解,為今后各個接口實驗打下基礎(chǔ)。1.5 實驗設(shè)計與實驗步驟1.熟悉嵌入式開發(fā)平臺。 1)了解開發(fā)板主要硬件位置及功能 2)主要了解串口及USB口位置 3)了解開發(fā)板與PC間的連接方法。2.安裝ARM JTAG。3.建立超級終端ARM,并熟悉其使用。 1)運行windows下的超級終端,取名為arm。 2)設(shè)置波特率為115200

3、,數(shù)據(jù)位8,停止位1,無數(shù)據(jù)流控制。 3)保存快捷方式 4)啟動開發(fā)板,按住開發(fā)板上鍵盤的任意按鍵,使開發(fā)板進入BIOS 設(shè)置狀態(tài)。 5)每個條目的最左邊字母是該功能的快捷鍵,按PC 機鍵盤相應鍵將執(zhí)行對應功能。 6)按超級終端的提示嘗試部分測試功能。 7)按PC鍵盤的u鍵將開發(fā)板16M Flash掛載到PC機上。1.6 實驗過程與分析按照步驟3測試開發(fā)板外設(shè)狀態(tài),測試結(jié)果表明開發(fā)板硬件沒有問題,為以后開發(fā)排除了硬件故障這個原因,最后將“Hello,world”那個工程system.bin 文件通過USB 下載到嵌入式開發(fā)板中,復位系統(tǒng),運行并檢查輸出?;緶y試完成。1.7 實驗結(jié)果總結(jié)本實驗

4、測試了開發(fā)板硬件狀態(tài),保證其功能好使,為以后開發(fā)出現(xiàn)問題排除了硬件故障這一原因,熟悉了開發(fā)板主要部件作用及位置,知道了USB口及串口的位置,為以后出現(xiàn)連接問題提供了解決方案。最后,測試“Hello,world”工程,了解了簡單調(diào)試修改錯誤的方法,為以后調(diào)試代碼提供了解決方案。1.8 試驗中遇到的問題在實驗過程中遇到了掛載開發(fā)板Flash沒有掛載上去的現(xiàn)象,總結(jié)其原因大致有兩個1)病毒侵占開發(fā)板端口,解決方法為安裝殺毒軟件掃描一下PC。2)PC鍵盤為英語“大寫”狀態(tài),此時按“U”無法掛載,因為終端對于大小寫非常敏感,這一點類似于Linux,解決方法為按“CapsLk”鍵轉(zhuǎn)換為“小寫”。1.9 心

5、得體會通過本次實驗,大致學會了三點:1)通過終端掛載開發(fā)板Flash3)測試開發(fā)板硬件外設(shè)狀態(tài),為以后開發(fā)出現(xiàn)問題排除了硬件故障這一原因。2)拷貝開發(fā)工程中system.bin至開發(fā)板Flash,運行代碼,并根據(jù)運行結(jié)果進行簡單調(diào)試。2. 實驗二2.1實驗名稱ADS1.2軟件開發(fā)環(huán)境使用方法2.2實驗目的熟悉ADS1.2開發(fā)環(huán)境,了解嵌入式開發(fā)的基本思想和過程。使用 ADS1.2 編譯、下載、調(diào)試并跟蹤程序。2.3實驗環(huán)境硬件:ARM嵌入式開發(fā)平臺、用于 ARM7TDMI的JTAG 仿真器、PC機Pentium100 以上、示波器。 軟件:PC機操作系統(tǒng)win98、Win2000 或WinXP

6、 、ARM SDT 2.51或ADS1.2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。2.4 實驗內(nèi)容及要求1ADS 1.2開發(fā)環(huán)境使用。AXD Debugger使用方法。2Hello World!最小系統(tǒng),編譯及調(diào)試。學習串行通訊原理,了解串行通訊控制器,閱讀ARM 芯片文檔,掌握ARM 的UART相關(guān)寄存器的功能,熟悉ARM 系統(tǒng)硬件的UART 相關(guān)接口。3編程實現(xiàn)ARM 和計算機之間的串行通訊。4ARM 監(jiān)視串行口;將接收到的字符再發(fā)送給串口(計算機與開發(fā)板是通過超級終端通訊的);即按PC 鍵盤通過超級終端發(fā)送數(shù)據(jù),開發(fā)板將接收到的數(shù)據(jù)再返送給PC,在超級終端上顯示。2.5 實驗設(shè)計

7、與實驗步驟1新建工程,將“Exp2 ARM 串口實驗”中的文件添加到工程中,這些是啟動時所需要的文件。 2定義與UART 有關(guān)的各個寄存器地址和一些特殊的位命令。3編寫串口驅(qū)動函數(shù)(MyUart.c)。此函數(shù)主要是實現(xiàn)三個功能:1)串口的初始化 實現(xiàn)方法為將寄存器ULCONn、UCONn置零,設(shè)置寄存器ULCONn、UCONn、UBRDIV,延時:延時的實現(xiàn)方法可以用for循環(huán)實現(xiàn),循環(huán)體里空函數(shù)以實現(xiàn)延時。2)發(fā)送數(shù)據(jù) 實現(xiàn)方法為首先判斷發(fā)送隊列是否為空,若為空則延時,然后發(fā)送數(shù)據(jù)WrUTXH0(data);若不為空則繼續(xù)判斷發(fā)送隊列是否為空。3)接收數(shù)據(jù) 實現(xiàn)方法為首先判斷接收隊列是否為滿

8、,若為空則接收數(shù)據(jù)RdURXH0();若不為空則繼續(xù)判斷接收隊列是否為滿。4在主函數(shù)中實現(xiàn)將從串口0 接收到的數(shù)據(jù)發(fā)送到串口0 (Main.c)。主要編程思想:開發(fā)板初始化ARMTargetInit(),設(shè)置LCD顯示模式,向串口輸出數(shù)據(jù)Hello world!,從串口采集數(shù)據(jù),顯示采集的數(shù)據(jù)。2.6 實驗過程與分析在實驗過程中,主函數(shù)調(diào)用函數(shù)Uart_Getch從串行口采集數(shù)據(jù),然后將采集的數(shù)據(jù)通過函數(shù)Uart_SendByte顯示出來。主函數(shù)主要實現(xiàn)代碼:ARMTargetInit();/開發(fā)版初始化LCD_Init();while(1) LCD_ChangeMode(DspTxtMode

9、);/轉(zhuǎn)換LCD顯示模式為文本顯示模式 LCD_Cls();/文本模式下清屏命令 LCD_printf("Hello world!n");/向液晶屏輸出 Uart_Printf("nHello world!n");/向串口輸出 err=Uart_Getch(c1,0,0);/從串口采集數(shù)據(jù) Uart_SendByte(0,c10);/顯示采集的數(shù)據(jù)2.7 實驗結(jié)果總結(jié)運行串行口函數(shù),將PC 鍵盤通過超級終端發(fā)送數(shù)據(jù),開發(fā)板再將接收到的數(shù)據(jù)返送給PC,在超級終端上顯示。2.8 心得體會通過本次實驗進一步熟悉了實驗平臺和軟件,并通過實驗指導書的指導,初步了解

10、可在平臺上的系統(tǒng)的基本組成,并可以將一個簡單的例子實現(xiàn),熟悉了串口對串口原理有了進一步的了解。3. 實驗三3.1實驗名稱鍵盤控制方法及LED驅(qū)動設(shè)計3.2實驗目的1學習鍵盤及LED 驅(qū)動原理。2掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驅(qū)動17鍵的鍵盤和8個共陰極LED。3.3實驗環(huán)境硬件:ARM 嵌入式開發(fā)平臺、用于ARM7TDMI 的JTAG 仿真器、PC 機Pentium100 以上。軟件:PC 機操作系統(tǒng)win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序3.4 實驗內(nèi)容及要求通過ZLG7

11、289芯片驅(qū)動17鍵的鍵盤和8個共陰極LED,將按鍵值在LED上顯示出來。要求從右至左循環(huán)顯示至少四位數(shù)字?;竟δ軐崿F(xiàn)之后可考慮實現(xiàn)從左至右顯示四位及四位以上數(shù)字(最大八位),并可設(shè)置清零鍵等擴展功能。3.5 實驗設(shè)計與實驗步驟此實驗設(shè)計主要分為三大模塊:1)定義鍵盤映射表:(KeyBoard.c)unsigned char KeyBoard_Map=4,8,11,0,0,0,0,0,5,9,12,15,1,0,0,0,6,10,13,16,2,3,0,0,7,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

12、,0,0,0,0,0,0;此文件中有鍵值讀取函數(shù):其大體流程為,判斷是否有鍵按下,如果有按鍵按下,從zlg7289讀取鍵值,判斷按鍵值是否有效,如果有效則通過映射表得到按鍵值。2)數(shù)碼管顯示數(shù)字模塊,首先使zlg7289占有同步串口,延時,然后顯示個位,之后判斷顯示的數(shù)字為幾位,分別編碼顯示各個位,此部分可以用else語句實現(xiàn)。3)每當輸入一個數(shù)字,數(shù)碼管原先的數(shù)字就得向左移動新數(shù)字在最后一位顯示,將原先所得數(shù)值*10再加上新值,最后顯示。4)主函數(shù)編寫模塊:首先開發(fā)板初始化,LCD初始化,從小鍵盤獲取數(shù)字,顯示數(shù)字。3.6 實驗過程與分析1)數(shù)碼管顯示數(shù)字模塊:部分代碼void LEDsho

13、w(U32 key)Zlg7289_Reset();Delay(1);ZLG7289_ENABLE();/使zlg7289占有同步串口Delay(5);/延時 WriteSDIO(ZLG7289_CMD_DATA0|0);/數(shù)碼管以方式0譯碼,第一個數(shù)碼管亮WriteSDIO(key%10);/顯示個位Delay(1);/延時if(key>9999999)WriteSDIO(ZLG7289_CMD_DATA0|7); WriteSDIO(unsigned char)(key/10000000); Delay(1); WriteSDIO(ZLG7289_CMD_DATA0|1);/發(fā)送十位

14、數(shù)據(jù)WriteSDIO(unsigned char)(key/10%10);Delay(1);WriteSDIO(ZLG7289_CMD_HIDE);/使一、二兩位數(shù)碼管顯示W(wǎng)riteSDIO(255); ZLG7289_DISABLE();/zlg7289放棄同步串口控制權(quán)2)獲取數(shù)字模塊主要代碼:U32 GetNum()U32 key,m;key = GetKey();Delay(5000);m=key;LEDshow(key);Delay(5000); m=key+m*10; LEDshow(m); return m;3.7 實驗結(jié)果總結(jié)本實驗通過ZLG7289芯片驅(qū)動17鍵的鍵盤和8個

15、共陰極LED,將按鍵值在LED上顯示出來。實現(xiàn)了從左至右顯示四位及四位以上數(shù)字(最大八位)。消除鍵盤抖動現(xiàn)象方法:通過實驗,用延時的方法的消除抖動現(xiàn)象,具體延時為Delay(2000)。3.8 心得體會通過本實驗知道了鍵盤映射表的功能,通過嘗試,修改鍵盤映射表,學會了驅(qū)動鍵盤及LED顯示數(shù)據(jù)方法,為以后使用鍵盤,LED硬件提供了方法。4. 實驗四4.1 實驗名稱電機轉(zhuǎn)動控制及中斷實驗4.2 實驗目的1熟悉ARM本身自帶的六路即三對PWM,掌握相應寄存器的配置。 2編程實現(xiàn) ARM系統(tǒng)的PWM 輸出和I/O 輸出,前者用于控制直流電機,后者用于控制步進電機。 3了解直流電機和步進電機的工作原理,

16、學會用軟件的方法實現(xiàn)步進電機的脈沖分配,即用軟件的方法代替硬件的脈沖分配器。 4掌握帶有PWM 和I/O 的CPU 編程實現(xiàn)其相應功能的主要方法。了解44B0處理器的定時器應用。 5學習在44B0處理器上中斷的應用。 進一步熟悉平臺外圍硬件及其驅(qū)動程序的編寫。4.3實驗環(huán)境硬件:ARM嵌入式開發(fā)平臺、用于 ARM7TDMI的JTAG 仿真器、PC機Pentium100 以上、示波器。 軟件:PC機操作系統(tǒng)win98、Win2000 或WinXP 、ARM SDT 2.51或ADS1.2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。4.4 實驗內(nèi)容及要求1利用A/D轉(zhuǎn)換器實現(xiàn)對直流電機和步進電

17、機的控制。2利用實驗設(shè)備上自帶的小鍵盤實現(xiàn)A/D轉(zhuǎn)換器對兩個電機控制的切換。3學習S3C44B0上定時器中斷應用方法。綜合鍵盤、LED、A/D以及電機等外設(shè),編寫出單一的中斷應用。編寫出多個不同優(yōu)先級中斷應用嵌套的應用系統(tǒng)。4.5 實驗設(shè)計與實驗步驟1首先實現(xiàn)小鍵盤輸入,這個問題的靈感來源于實驗三鍵盤驅(qū)動實驗,觀察實驗三keyBoard.c發(fā)現(xiàn)檢測鍵盤是否有按鍵按下是通過while(rPDATG&ZLG7289_KEY);/有鍵按下,這段代碼監(jiān)視的,所以main.c中的if(rPDATG&0x10)/PC鍵盤有輸入,則跳出這段監(jiān)視PC鍵盤的代碼修改為if(rPDATG&

18、ZLG7289_KEY),這樣就可以通過小鍵盤來驅(qū)動電機的轉(zhuǎn)換。2加上定時Timer3INTCount=40,實驗十是定時器中斷和驅(qū)動程序,此實驗中的timer.c是計算中斷次數(shù)的,加上以上代碼實現(xiàn)沒中斷40次實現(xiàn)直流電機和步進電機的切換。4.6 實驗過程與分析1參考實驗三根據(jù)設(shè)計步驟一修改main.c實現(xiàn)小鍵盤輸入。2將實驗十的定時器中斷代碼timer.c加入本工程中,在mian.c中引用此文件中的函數(shù)。3修改main.c實現(xiàn)中斷次數(shù)到40次時,轉(zhuǎn)換直流電機和步進電機。4實驗中main.c主要修改代碼int main(void)for(;)begin:for(;)if(rPDATG&

19、ZLG7289_KEY)|( Timer3INTCount=40)/小鍵盤是否有輸入,中斷次數(shù)是否為40次。*Revdata=RdURXH0();goto next;next:for(;)loop:if(rPDATG&ZLG7289_KEY)|( Timer3INTCount=40)/小鍵盤是否有輸入,中斷次數(shù)是否為40次。*Revdata=RdURXH0();goto begin;Delay(10); 4.7 實驗結(jié)果總結(jié)在LED上顯示中斷次數(shù)。當中斷次數(shù)到40實現(xiàn)直流電機和步進電機的切換,小鍵盤有鍵按下時也切換。4.8 心得體會通過本次實驗對ARM實驗臺鍵盤輸入更加了解,理解了步進

20、電機和直流電機的工作原理,掌握了中斷定時技術(shù),熟悉了通過AD轉(zhuǎn)換控制電機的編程原理。5. 實驗五5.1實驗名稱LCD驅(qū)動及觸摸屏實驗5.2實驗目的1了解LCD 基本概念與原理。 2理解LCD 的驅(qū)動控制。 熟悉用總線方式驅(qū)動LCD模塊。3 熟悉用ARM內(nèi)置的LCD 控制器驅(qū)動LCD。4了解觸摸屏基本概念與原理。 理解觸摸屏與LCD的密切配合。 5編程實現(xiàn)對觸摸屏的控制。5.3實驗環(huán)境硬件:ARM嵌入式開發(fā)平臺、用于 ARM7TDMI的JTAG 仿真器、PC機Pentium100 以上、示波器。 軟件:PC機操作系統(tǒng)win98、Win2000 或WinXP 、ARM SDT 2.51或ADS1.

21、2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。5.4 實驗內(nèi)容及要求1掌握LCD顯示原理及顯示驅(qū)動的嵌入式系統(tǒng)編程實現(xiàn)方法。2學習基于ARM的LCD 顯示驅(qū)動控制方法,通過對ARM 內(nèi)置的LCD 控制器進行編程實現(xiàn)驅(qū)動LCD顯示屏。3學習觸摸屏基本原理,理解觸摸屏的輸出標定以及與LCD 顯示器配合的過程,編程對觸摸屏進行控制,實現(xiàn):1)點擊觸摸屏上兩點后,兩點之間畫出一條直線。2)點擊觸摸屏并在其上移動,顯示移動軌跡。5.5 實驗設(shè)計與實驗步驟本實驗旨在點擊觸摸屏上兩點后,兩點之間畫出一條直線。本實驗主函數(shù)在main.c中其編寫方法為:1開發(fā)板初始化2LCD初始化3觸摸板函數(shù)TchScr_

22、Test()在tchScr.c文件有TchScr_Test()函數(shù),TchScr_GetScrXY函數(shù)(獲得觸摸點坐標),TchScr_GetOSXY(獲得觸摸點坐標并返回觸摸動作)三個主要函數(shù),其中TchScr_Test()函數(shù)為主要函數(shù),來編寫觸摸兩點劃出一條直線。其編寫方法為:1聲明四個變量,根據(jù)TCHSCR_ACTION_CLICK動作獲取兩次點擊觸摸屏的坐標,第一次獲得觸摸屏坐標儲存在變量w,h中。第二次獲得觸摸屏坐標儲存在變量x,y中。2獲取兩次觸摸屏的坐標后,比較兩次獲取的x坐標的大小,計算直線的斜率k = (float)y-(float)h)/(float)x-(float)w

23、),然后根據(jù)公式j(luò) = h-k*(w-i)從小的坐標畫直線。3如果兩次坐標獲取的x值相同,判斷縱坐標大小,從縱坐標較小者遞增畫直線。5.6 實驗過程與分析實現(xiàn)的主要過程為:mode=TchScr_GetOSXY(&x, &y);獲取觸摸屏坐標switch(mode)case TCHSCR_ACTION_CLICK:LCDBufferxy=jcolor;點亮像素點if(x > w)k = (float)y-(float)h)/(float)x-(float)w);計算直線的斜率for(i = w; i<x; i+)j = h-k*(w-i);LCDBufferij=j

24、color;點亮直線上的其他點其余的判斷也以此法。5.7 實驗結(jié)果總結(jié)點擊觸摸屏上兩點后,兩點之間畫出一條直線。點擊觸摸屏并在其上移動,顯示移動軌跡。5.8 實驗中遇到的問題實驗中遇到的問題:實驗時計算直線的斜率是首先用的是整數(shù)類型,結(jié)果畫出的直線偏差很大。解決方法為用強制轉(zhuǎn)化的方法計算斜率k = (float)y-(float)h)/(float)x-(float)w);5.9 心得體會通過本次實驗,對LCD觸屏驅(qū)動原理和顯示觸屏軌跡有了很深的認識。明白了如何點亮觸摸屏上的像素,為以后綜合實驗做了準備。6. 實驗六6.1實驗名稱ucos-II裁剪實驗6.2實驗目的掌握cos-II裁剪的基本原

25、理與嵌入式編程實現(xiàn)方法。學習如何根據(jù)具體情況對cos-II操作系統(tǒng)進行裁剪,從而得到即滿足需要,又非常緊湊的應用軟件系統(tǒng)。6.3實驗環(huán)境硬件:ARM嵌入式開發(fā)平臺、用于 ARM7TDMI的JTAG 仿真器、PC機Pentium100 以上、示波器。 軟件:PC機操作系統(tǒng)win98、Win2000 或WinXP 、ARM SDT 2.51或ADS1.2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。6.4 實驗內(nèi)容及要求1)掌握cos-II裁剪的基本原理與嵌入式編程實現(xiàn)方法。2)學習如何根據(jù)具體情況對cos-II操作系統(tǒng)進行裁剪,從而得到即滿足需要,又非常緊湊的應用軟件系統(tǒng)。3)通過對cos-I

26、I配置文件(OS_CFG.H)中相關(guān)的配置常量進行設(shè)置,實現(xiàn)對cos-II的裁剪。4)給出裁剪的詳細過程與裁剪結(jié)果說明,并生成裁剪后的操作系統(tǒng)文件。6.5 實驗設(shè)計與實驗步驟通過對cos-II配置文件(OS_CFG.H)中相關(guān)的配置常量進行設(shè)置,實現(xiàn)對cos-II的裁剪。在OS_CFG.H配置文件中查找并修改以下宏定義#define OS_LOWEST_PRIO 63#define OS_TASK_STAT_EN 0 #define OS_EVENT_NAME_SIZE 32#define OS_FLAG_NAME_SIZE 32#define OS_MEM_NAME_SIZE 32#defi

27、ne OS_TASK_NAME_SIZE 32#define OS_TICKS_PER_SEC 10006.6 實驗過程與分析cos-II操作系統(tǒng)基本是最低配置,在對源代碼解析時發(fā)現(xiàn)可裁剪的很少,源代碼主要包括以下文件os_core.c,os_flag.c,os_mbox.c,os_mem.c,os_mutex.c,os_q.c,os_sem.c,os_task.c,os_time.c,比較精簡。故只對os_cfg.h配置文件做了一些相應修改。修改如上。6.7 實驗結(jié)果總結(jié)成功的對cos-II操作系統(tǒng)進行了修改,實現(xiàn)了對cos-II的裁剪,為以后在操作系統(tǒng)上做一些相關(guān)實驗以及課設(shè)奠定了基礎(chǔ)。6

28、.8 心得體會實現(xiàn)了對cos-II的裁剪,為以后在操作系統(tǒng)上做一些相關(guān)實驗以及課設(shè)奠定了基礎(chǔ)。7. 實驗七7.1實驗名稱ucos-II移植實驗7.2實驗目的了解uCOS-II 內(nèi)核的主要結(jié)構(gòu)。 掌握將uCOS-II 內(nèi)核移植到ARM7 處理器上的基本方法。7.3實驗環(huán)境硬件:ARM嵌入式開發(fā)平臺、用于 ARM7TDMI的JTAG 仿真器、PC機Pentium100 以上、示波器。 軟件:PC機操作系統(tǒng)win98、Win2000 或WinXP 、ARM SDT 2.51或ADS1.2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。7.4 實驗內(nèi)容及要求了解µC/OS-II 內(nèi)核的主要結(jié)

29、構(gòu),掌握ARM的C語言和匯編語言的編程方法。了解ARM7處理器結(jié)構(gòu),掌握將µC/OS-II 內(nèi)核移植到ARM 7 處理器上的基本原理與嵌入式編程實現(xiàn)方法。將µC/OS-II 內(nèi)核移植到ARM7 微處理器S3C44B0上。編寫兩個簡單任務,在超級終端上觀察兩個任務的切換。7.5 實驗設(shè)計與實驗步驟1 .該實驗的文件分為兩類,其一是 STARTUP目錄下的系統(tǒng)初始化、配置等文件,其二是uCOS-II 的全部源碼,arch 目錄下的3 個文件是和處理器架構(gòu)相關(guān)的。 2 .設(shè)置os_cpu.h 中與處理器和編譯器相關(guān)的代碼 。 1)根據(jù)處理器的字長修改相關(guān)數(shù)據(jù)類型的定義 2)修改O

30、S_ENTER_CRITICAL()和OS_EXIT_CRITICAL()兩個函數(shù)實現(xiàn)開關(guān)中斷。 3)修改OS_STK_GROWTH設(shè)置堆棧的生長方式3.用C 語言編寫6 個操作系統(tǒng)相關(guān)的函數(shù)(OS_CPU_C.C )。 1)OSTaskStkInit 2)OSTaskCreateHook 3)OSTaskDelHook 4)OSTaskSwHook 5)OSTaskStatHook 6)OSTimeTickHook4.用匯編語言編寫4 個與處理器相關(guān)的函數(shù)(OS_CPU.ASM)。 1)OSStartHighRdy ();運行優(yōu)先級最高的就緒任務2)OS_TASK_SW ();任務級的任務切

31、換函數(shù)3)OSIntCtxSw();中斷級的任務切換函數(shù)4)OSTickISR();時鐘節(jié)拍中斷5 .編寫一個簡單的多任務程序來測試一下移植是否成功。 6 .編譯并下載移植后的uCOS-II 。7.6 實驗過程與分析按照實驗步驟1-4進行修改操作系統(tǒng)。5 .編寫一個簡單的多任務程序:1)在程序開頭定義任務堆棧,任務函數(shù)聲明和任務優(yōu)先級:OS_STK TaskName_StackSTACKSIZE=0, ; /任務堆棧void TaskName(void *Id); /任務函數(shù)#define TaskName_Prio N /任務優(yōu)先級2)在main()函數(shù)中調(diào)用OSStart()函數(shù)之前用下列

32、語句創(chuàng)建任務:OSTaskCreate(TaskName,(void*)0,(OS_STK*)&TaskName_StackSTACKSIZE-1,TaskName_Prio);部分代碼為:OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&task1_StackSTACKSIZE*8-1, task1_Task_Prio);/ 創(chuàng)建任務1OSTaskCreate(Display_Task,(void *)0, (OS_STK *)&_task2_StackSTACKSIZE-1, task2_Task_Prio); / 創(chuàng)建任務

33、23)編寫任務函數(shù)內(nèi)容:void task1(void *Id)for(;) Uart_Printf("nRun task1.");OSTimeDly(SusPendTime);/掛起一定時間,以使其他任務可以占用CPUvoid task2(void *Id)for(;) Uart_Printf("nRun task2.");OSTimeDly(SusPendTime);/掛起一定時間,以使其他任務可以占用CPU將ucos進行移植,進行兩個任務切換。7.7 實驗結(jié)果總結(jié)兩個任務在超級終端進行正常切換,成功實現(xiàn)了ucosII在Arm7上的移植。7.8 心得

34、體會通過本次實驗,對系統(tǒng)移植的原理有了初步了解,對ucosII的運行機理有了更近一步的了解。8. 實驗八8.1實驗名稱各接口模塊相互銜接綜合實驗8.2實驗目的回顧前幾次試驗所用到的知識并綜合起來,完成包含至少五個模塊具有一定功能的設(shè)計。8.3實驗環(huán)境硬件:ARM嵌入式開發(fā)平臺、用于 ARM7TDMI的JTAG 仿真器、PC機Pentium100 以上、示波器。 軟件:PC機操作系統(tǒng)win98、Win2000 或WinXP 、ARM SDT 2.51或ADS1.2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。8.4 實驗內(nèi)容及要求回顧串口、鍵盤、LED接口、A/D、電機轉(zhuǎn)動、定時器中斷、LCD

35、接口及觸摸屏驅(qū)動控制等接口模塊驅(qū)動設(shè)計及開發(fā)方法。綜合應用以上全部或者部分模塊,實現(xiàn)一個嵌入式綜合應用系統(tǒng),要求至少用到8個模塊中的5個。盡量使綜合應用系統(tǒng)具備合理的功能。8.5 實驗設(shè)計與實驗步驟本實驗為一綜合實驗旨在設(shè)計一個計算器雛形,具有計算器的基本功能,能夠用小鍵盤輸入數(shù)據(jù),用數(shù)碼管顯示數(shù)據(jù),并且可以用顯示屏顯示,支持顯示屏輸入。本實驗用了數(shù)碼管,觸摸屏,串口,小鍵盤等硬件。主要結(jié)合實驗三、實驗五兩個實驗。1.觸摸板的顯示輸入鍵模塊,實現(xiàn)方法為用像素點點亮指定區(qū)域像素。 1)設(shè)計頁眉頁腳 2)縱向平分畫出五條白條 3)橫向平分畫出四條白條2.計算器主要模塊,主要實現(xiàn)計算器的運算以及顯示

36、功能: 1)鍵盤映射表:修改鍵盤映射表與小鍵盤上的值一致,鍵盤映射表在KeyBoard.c文件中。2)數(shù)碼管顯示子模塊:首先使zlg7289占有同步串口,延時,然后顯示個位,之后判斷顯示的數(shù)字為幾位,分別編碼顯示各個位,此部分可以用else語句實現(xiàn)。 3)計算器運算模塊:每當輸入一個數(shù)字,數(shù)碼管原先的數(shù)字就得向左移動新數(shù)字在最后一位顯示,將原先所得數(shù)值*10再加上新值,最后顯示。8.6 實驗過程與分析1.觸摸板顯示模塊: 1)設(shè)計頁眉頁腳 for (k=0;k<5;k+)/頁眉 for (j=10;j<310;j+) LCDBufferkj=jcolor; for (k=235;k

37、<240;k+)/頁腳 for (j=10;j<310;j+) LCDBufferkj=jcolor; 2)縱向平分畫出五條白條 for (k=35;k<37;k+)/1 for (j=10;j<310;j+) LCDBufferkj=jcolor; for (k=233;k<235;k+)/5 for (j=10;j<310;j+) LCDBufferkj=jcolor; 3)縱向平分畫出四條白條 for (k=37;k<233;k+)/1 for (j=68;j<70;j+) LCDBufferkj=jcolor; for (k=37;k<183;k+)/4 for (j=248;j<250;j+) LCDBufferkj=jc

溫馨提示

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

評論

0/150

提交評論