嵌入式系統(tǒng)概論實(shí)驗(yàn)指導(dǎo)書(馮德旺)_第1頁
嵌入式系統(tǒng)概論實(shí)驗(yàn)指導(dǎo)書(馮德旺)_第2頁
嵌入式系統(tǒng)概論實(shí)驗(yàn)指導(dǎo)書(馮德旺)_第3頁
嵌入式系統(tǒng)概論實(shí)驗(yàn)指導(dǎo)書(馮德旺)_第4頁
嵌入式系統(tǒng)概論實(shí)驗(yàn)指導(dǎo)書(馮德旺)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、嵌入式系統(tǒng)概論實(shí)驗(yàn)指導(dǎo)書計(jì)算機(jī)與信息學(xué)院嵌入式系統(tǒng)概論課程組編印2013年11月目 錄實(shí)驗(yàn)一 搭建CodeWarrior開發(fā)環(huán)境實(shí)驗(yàn)二 控制小燈閃爍實(shí)驗(yàn)實(shí)驗(yàn)三 串行通信實(shí)驗(yàn)實(shí)驗(yàn)四 RTC實(shí)驗(yàn)實(shí)驗(yàn)五 Flash實(shí)驗(yàn)實(shí)驗(yàn)一 搭建CodeWarrior開發(fā)環(huán)境1、實(shí)驗(yàn)?zāi)康暮鸵髮?shí)驗(yàn)?zāi)康模菏煜?CodeWarrior開發(fā)環(huán)境,掌握KL25工程結(jié)構(gòu),通過一個(gè)樣例工程了解開發(fā)環(huán)境配置方法,并完成編譯、下載到開發(fā)板的過程。實(shí)驗(yàn)要求: 1)安裝CodeWarrior10.3軟件,完成相關(guān)參數(shù)設(shè)置; 2)安裝USBDM4.10.4寫入器驅(qū)動(dòng)程序,打好補(bǔ)??; 3)導(dǎo)入樣例工程,完成編譯、下載、運(yùn)行全過程。2、實(shí)驗(yàn)

2、原理 參照KL25技術(shù)手冊(cè)和CodeWarrior10.3軟件使用手冊(cè),熟悉芯片性能和開發(fā)環(huán)境,驗(yàn)證開發(fā)板和開發(fā)環(huán)境的可靠性。3、主要儀器設(shè)備(實(shí)驗(yàn)用的軟硬件環(huán)境) PC機(jī)一臺(tái),SD-FSL-KL25-EVB開發(fā)板一套4、操作方法與實(shí)驗(yàn)步驟 1)按照CodeWarrior10.3使用手冊(cè)安裝軟件; 2)通過寫入器的Mini_USB口將SD-FSL-KL25-EVB開發(fā)板連接到PC機(jī); 3)導(dǎo)入樣例工程,完成編譯; 4)將可執(zhí)行的ELF燒入Flash,給開發(fā)板重新上電,觀察實(shí)驗(yàn)現(xiàn)象。5、實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)數(shù)據(jù)記錄實(shí)驗(yàn)電路連線:用USB連接線將SD-FSL-KL25-EVB開發(fā)板接入PC機(jī)。 實(shí)驗(yàn)參考

3、程序:.include "include.s"declaration:#start 參數(shù)定義區(qū)域 .section.data 讀寫,即定義變量 runpin: .word 100 .section .rodata 只讀,即定義常數(shù) RUN_COUNTER_MAX: .word 0x0016e360 .section .data 定義可讀寫的字符串 string: .asciz "123456789" #end 參數(shù)定義區(qū)域#start 主函數(shù)定義開始 .section.text.main .global main 定義全局變量,使其在芯片初始化之后可以調(diào)

4、用 .align 2 .type main function 定義主函數(shù)類 .align 2 #end 主函數(shù)定義結(jié)束main: cpsid i 關(guān)閉總中斷 #小燈相應(yīng)引腳的gpio初始化(設(shè)置引腳的各參數(shù)) r0-r3保存需要傳遞的參數(shù) mov r0,#light_port r0存儲(chǔ)PORT端口號(hào) #ldr r5,=runpin #mov r6,#18 #str r6,r5 #ldr r1,r5 將引腳號(hào)18存入r1 mov r1,#light_G_pin r1存儲(chǔ)引腳號(hào) mov r2,#light_dirout r2指明引腳的輸出方向 mov r3,#light_L r3指明引腳的初始狀態(tài)

5、 bl light_init 調(diào)用小燈初始化函數(shù)cpsie i 開總中斷 #主循環(huán),通過RUN_COUNTER_MAX遞減來延遲,設(shè)定小燈的閃爍間隔repeat: ldr r4,=RUN_COUNTER_MAX 取延時(shí)計(jì)數(shù)值到r4 ldr r4,r4loop: sub r4,#1 cmp r4,#1 bne loop bl light_change 調(diào)用小燈亮暗轉(zhuǎn)變函數(shù) bl repeat .align 4.end實(shí)驗(yàn)二 控制小燈閃爍實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康暮鸵髮?shí)驗(yàn)?zāi)康? 1)熟悉ARM Cortex-M0+寄存器配置方法; 2)學(xué)習(xí)KL25的GPIO編程方法; 3)通過三色燈觀察程序運(yùn)行情況;實(shí)驗(yàn)

6、要求:編寫程序,以KL25 B口的9、18和19引腳作為輸出口,控制三色燈燈(可發(fā)紅,綠,藍(lán)光)交替閃亮。2、實(shí)驗(yàn)原理 1)根據(jù)開發(fā)板原理圖,確認(rèn)三色燈為共陽接法,因此B口相關(guān)引腳輸出低電平時(shí)點(diǎn)亮、高電平熄滅; 2)通過延時(shí)實(shí)現(xiàn)三色燈交替閃亮,觀察延時(shí)常數(shù)的影響,理解控制顏色方法。3、主要儀器設(shè)備(實(shí)驗(yàn)用的軟硬件環(huán)境) PC機(jī)一臺(tái),SD-FSL-KL25-EVB開發(fā)板一套4、操作方法與實(shí)驗(yàn)步驟 1)通過USB線連接PC機(jī)和SD-FSL-KL25-EVB開發(fā)板; 2)在PC機(jī)上編程,并編譯形成可在開發(fā)板上執(zhí)行的ELF程序; 3)將ELF程序燒入開發(fā)板的Flash中,并重新上電觀察程序運(yùn)行現(xiàn)象。5

7、、實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)數(shù)據(jù)記錄實(shí)驗(yàn)電路連線:用USB連接線將SD-FSL-KL25-EVB開發(fā)板接入PC機(jī)。 實(shí)驗(yàn)參考程序:#include "includes.h" /包含總頭文件int main(void)uint_32 run_counter; /主循環(huán)計(jì)數(shù)變量uint_8 flag; /三色燈變換標(biāo)志 /三色燈初始化light_init(LIGHT_PORT, LIGHT_PIN_RED, LIGHT_OFF); light_init(LIGHT_PORT, LIGHT_PIN_GREEN, LIGHT_OFF); light_init(LIGHT_PORT, LIGHT

8、_PIN_BLUE, LIGHT_OFF); /給全局變量賦初值 g_n1=0; /給主函數(shù)相關(guān)變量賦初值 flag = 1; /主循環(huán)計(jì)數(shù)變量 run_counter = 0; /三色燈變換標(biāo)志 /進(jìn)入主循環(huán),使 紅、綠、蘭三燈閃爍 /主循環(huán)開始= for(;) run_counter+; /主循環(huán)計(jì)數(shù)+1 if (run_counter > RUN_COUNTER_MAX) run_counter = 0; switch (flag) case 1: /紅燈取反、綠燈暗、蘭燈暗 light_change(LIGHT_PORT, LIGHT_PIN_RED); light_contro

9、l(LIGHT_PORT, LIGHT_PIN_GREEN, LIGHT_OFF); light_control(LIGHT_PORT, LIGHT_PIN_BLUE, LIGHT_OFF); flag = 2; break; case 2: /綠燈取反、紅燈暗、蘭燈暗 light_change(LIGHT_PORT, LIGHT_PIN_GREEN); light_control(LIGHT_PORT, LIGHT_PIN_RED, LIGHT_OFF); light_control(LIGHT_PORT, LIGHT_PIN_BLUE, LIGHT_OFF); flag = 3; brea

10、k; case 3: /蘭燈取反、紅燈暗、綠燈暗 light_change(LIGHT_PORT, LIGHT_PIN_BLUE); light_control(LIGHT_PORT, LIGHT_PIN_RED, LIGHT_OFF); light_control(LIGHT_PORT, LIGHT_PIN_GREEN, LIGHT_OFF); flag = 1; default: flag = 1; break; / end_switch / end_if /end_for /主循環(huán)結(jié)束= return 0;實(shí)驗(yàn)三 串行通信實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康暮鸵髮?shí)驗(yàn)?zāi)康? 1)了解UART模塊相關(guān)寄存器及

11、配置方法; 2)理解串行通信的工作原理; 3)掌握UART的各種模式的編程方法; 4)理解用UART調(diào)試KL25程序的方法。實(shí)驗(yàn)要求: 采用中斷方式編寫UART接收和發(fā)送程序,上電和復(fù)位時(shí)給PC機(jī)發(fā)送串口連接信息,并用串口調(diào)試工具觀察PC機(jī)和開發(fā)板間的通信情況。2、實(shí)驗(yàn)原理 按照KL25技術(shù)手冊(cè)配置UART相關(guān)寄存器,完成UART初始化,然后通過串口調(diào)試工具觀察通信情況。3、主要儀器設(shè)備(實(shí)驗(yàn)用的軟硬件環(huán)境) PC機(jī)一臺(tái),SD-FSL-KL25-EVB開發(fā)板一套4、操作方法與實(shí)驗(yàn)步驟 1)安裝TTL轉(zhuǎn)USB驅(qū)動(dòng)程序; 2)用USB線將SD-FSL-KL25-EVB開發(fā)板連接到PC機(jī); 3)編寫

12、UART通信程序,完成編譯形成ELF程序; 4)將ELF程序由PC機(jī)燒入開發(fā)板的Flash中,并進(jìn)行調(diào)試。5、實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)數(shù)據(jù)記錄實(shí)驗(yàn)電路連線:用USB線將開發(fā)板連接到PC機(jī),并用USB轉(zhuǎn)串線將UART0或UART1口連接到PC機(jī)以實(shí)現(xiàn)串行通信。實(shí)驗(yàn)參考程序:#include "includes.h" /包含總頭文件int main(void) /1.聲明主函數(shù)使用的局部變量 uint_32 run_counter; /主循環(huán)次數(shù)計(jì)數(shù)器 /2.關(guān)總中斷 enter_critical(); / 進(jìn)入臨界區(qū) /3.初始化模塊 light_init(LIGHT_PORT, LI

13、GHT_PIN_BLUE, LIGHT_ON); /藍(lán)燈初始化 uart_init(UART_0,MCGIRCLK, 9600); /串口0時(shí)鐘MCGIRCLK(4000Khz) uart_init (UART_1,BUSCLK, 9600); /串口1、2使用總線時(shí)鐘24000Khz uart_init (UART_2,BUSCLK, 9600); uart_send_string(UART_0, "Hello Uart_0!rn"); /串口發(fā)送初始化提示 uart_send_string(UART_1, "Hello Uart_1!rn"); ua

14、rt_send_string(UART_2, "Hello Uart_2!rn"); /4.全局變量及主函數(shù)局部變量賦初值 run_counter = 0; / 運(yùn)行計(jì)數(shù)器 /5.使能模塊中斷及總中斷 uart_enable_re_int(UART_0); /使能串口0接收中斷 uart_enable_re_int(UART_1); /使能串口1接收中斷 uart_enable_re_int(UART_2); /使能串口2接收中斷 init_critical(); /開總中斷 /進(jìn)入主循環(huán) /主循環(huán)開始=for(;) run_counter+; /主循環(huán)次數(shù)計(jì)數(shù)器+1 if

15、 (run_counter > RUN_COUNTER_MAX) run_counter = 0; /主循環(huán)次數(shù)計(jì)數(shù)器清0 light_change(LIGHT_PORT, LIGHT_PIN_BLUE); /藍(lán)燈變化 / end_if / end_while /主循環(huán)結(jié)束=return 0;實(shí)驗(yàn)四 RTC實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康暮鸵髮?shí)驗(yàn)?zāi)康? 1)了解定時(shí)器/計(jì)數(shù)器工作原理; 2)熟悉KL25定時(shí)器模塊相關(guān)寄存器及配置方法; 3)掌握KL25定時(shí)器編程方法; 4)通過串口調(diào)試工具觀察時(shí)、分、秒變化情況。實(shí)驗(yàn)要求: 編寫程序,將RTC時(shí)鐘信息通過串口發(fā)送到PC端,用串口調(diào)試工具觀察時(shí)鐘變化情況

16、,同時(shí)觀察小燈閃爍情況。2、實(shí)驗(yàn)原理 按照KL25技術(shù)手冊(cè)配置RTC模塊相關(guān)寄存器,完成RTC初始化,然后通過串口調(diào)試工具和小燈觀察時(shí)鐘變化的影響。3、主要儀器設(shè)備(實(shí)驗(yàn)用的軟硬件環(huán)境) PC機(jī)一臺(tái),SD-FSL-KL25-EVB開發(fā)板一套4、操作方法與實(shí)驗(yàn)步驟 1)安裝TTL轉(zhuǎn)USB驅(qū)動(dòng)程序; 2)用USB線將SD-FSL-KL25-EVB開發(fā)板連接到PC機(jī); 3)編寫RTC時(shí)鐘程序,完成編譯形成ELF程序; 4)將ELF程序由PC機(jī)燒入開發(fā)板的Flash中,并進(jìn)行調(diào)試。5、實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)數(shù)據(jù)記錄實(shí)驗(yàn)電路連線:用USB線將開發(fā)板連接到PC機(jī),并用USB轉(zhuǎn)串線將UART1口連接到PC機(jī)以觀察時(shí)

17、鐘信息。實(shí)驗(yàn)參考程序:#include "includes.h" /包含總頭文件void MCGIRCLK_OutEnable(uint_8 clock); /啟用內(nèi)部快速時(shí)鐘int main(void)/1.聲明主函數(shù)使用的局部變量uint_32 AlarmTimes; /報(bào)警計(jì)時(shí)器定時(shí)間隔uint_32 SecendTimes; /定時(shí)器秒計(jì)數(shù)器的起始值uint_32 remember;/2.關(guān)總中斷 enter_critical(); / 進(jìn)入臨界區(qū),關(guān)中斷 /3.初始化底層模塊light_init(LIGHT_PORT, LIGHT_PIN_BLUE, LIGHT_

18、ON); /藍(lán)燈初始化 uart_init (UART_1,MCGIRCLK, 9600); /串口0初始化, 總線時(shí)鐘24000Khz,波特率9600 SecendTimes = 0x01;AlarmTimes = 0x02; MCGIRCLK_OutEnable(CLKOUT_MCGIRCLK); /開啟內(nèi)部慢速時(shí)鐘 rtc_init(SecendTimes,AlarmTimes); /RTC初始化 /4.變量賦初值 g_time0=0; /(1) "時(shí)分秒"緩存初始化(00:00:00) g_time1=0; g_time2=0; remember = g_time2

19、; /(2) 臨時(shí)變量remember初始化 /5.開中斷 uart_enable_re_int(UART_1); /啟動(dòng)串口1接收中斷 init_critical(); /開總中斷 uart_send_string(UART_1, "Hello RTC!rn"); /進(jìn)入主循環(huán) /主循環(huán)開始=for(;)if (g_time2 != remember) /判斷秒鐘是否發(fā)生變化 light_change(LIGHT_PORT, LIGHT_PIN_BLUE); uart_sendN(UART_1,3,g_time); remember=g_time2; / end_whil

20、e /主循環(huán)結(jié)束=return 0;/啟用MCGIRCLK時(shí)鐘,輸出時(shí)鐘頻率在31.25Khz 4Mhzvoid MCGIRCLK_OutEnable(uint_8 clock)PORTC_PCR3 = PORT_PCR_MUX(0x5); SIM_SOPT2 = SIM_SOPT2_CLKOUTSEL(clock); /復(fù)用PTC3為CLKOUT,輸出時(shí)鐘波形MCG_C1 |= MCG_C1_IRCLKEN_MASK|MCG_C1_IREFSTEN_MASK;MCG_C2 &= MCG_C2_IRCS_MASK; 實(shí)驗(yàn)五 Flash實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康暮鸵髮?shí)驗(yàn)?zāi)康? 1)了解Flash

21、工作原理; 2)熟悉KL25 Flash模塊相關(guān)寄存器及配置方法; 3)掌握KL25 Flash編程方法; 4)通過串口調(diào)試工具觀察Flash擦寫情況。實(shí)驗(yàn)要求: 編寫程序,將Flash信息通過串口發(fā)送到PC端,用串口調(diào)試工具觀察Flash中的內(nèi)容。2、實(shí)驗(yàn)原理 按照KL25技術(shù)手冊(cè)配置Flash模塊相關(guān)寄存器,完成Flash初始化,然后通過串口調(diào)試工具觀察Flash的擦寫情況。3、主要儀器設(shè)備(實(shí)驗(yàn)用的軟硬件環(huán)境) PC機(jī)一臺(tái),SD-FSL-KL25-EVB開發(fā)板一套4、操作方法與實(shí)驗(yàn)步驟 1)安裝TTL轉(zhuǎn)USB驅(qū)動(dòng)程序; 2)用USB線將SD-FSL-KL25-EVB開發(fā)板連接到PC機(jī);

22、3)編寫Flash程序,完成編譯形成ELF程序; 4)將ELF程序由PC機(jī)燒入開發(fā)板的Flash中,并進(jìn)行調(diào)試。5、實(shí)驗(yàn)內(nèi)容及實(shí)驗(yàn)數(shù)據(jù)記錄實(shí)驗(yàn)電路連線:用USB線將開發(fā)板連接到PC機(jī),并用USB轉(zhuǎn)串線將UART1口連接到PC機(jī)以觀察Flash擦寫情況。實(shí)驗(yàn)參考程序:#include "includes.h"int main(void) /1.申明主函數(shù)使用的局部變量 uint_32 run_counter; /運(yùn)行計(jì)數(shù)器 uint_8 h=1; /2.關(guān)總中斷 enter_critical(); /3.初始化底層模塊 uart_init (UART_TEST, bus_cl

23、k_khz, 9600); /串口1初始化, 總線時(shí)鐘24000Khz,波特率9600 flash_init(); /Flash初始化 /4.變量賦初值 /5.開中斷 init_critical(); uart_enable_re_int(UART_TEST); uart_send_string(UART_TEST,"Uart Initialrn"); uart_send_string(UART_TEST,"SD-FSL Library Flash Test!rnrn"); uart_send_string(UART_TEST,"Press ? to get helprn"); /主循環(huán) for(;) run_counter+; if (run_counter > RUN_COUNTER_MAX) run_counter = 0; / end_if switch(ch) c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論