嵌入式系統(tǒng)及應用實驗內容_第1頁
嵌入式系統(tǒng)及應用實驗內容_第2頁
嵌入式系統(tǒng)及應用實驗內容_第3頁
嵌入式系統(tǒng)及應用實驗內容_第4頁
嵌入式系統(tǒng)及應用實驗內容_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)及應用實驗嵌入式系統(tǒng)及應用實驗以SmartARM2300工控開發(fā)平臺及PC機為主要硬件設備。SmartARM2300工控開發(fā)平臺采用NXP公司生產(chǎn)的芯片LPC2378(ARM7TDMI-S核),具有JTAG調試等功能,除了本身的GPIO、TIMER、 PWM、SPI、 A/D 、D/A功能外,還提供4個UART串口、IrDA接口、USB Device接口、CAN總線、SD/MMC卡、MODEM接口、以太網(wǎng)接口等功能。1相關的硬件電路系統(tǒng)電源電路圖3.1 系統(tǒng)電源電路鍵盤、蜂鳴器及LED電路圖3.2 7個獨立按鍵電路圖3.3 直流蜂鳴器電路圖3.4 SPI驅動8個LED指示燈 串行口接

2、口電路圖3.5 UART0UART2UART3串行口接口電路 IrDA(紅外)通訊接口電路圖3.6 IrDA(紅外)通訊接口電路 JTAG 調試接口、RST復位鍵及ISP選擇電路圖3.7 JTAG 調試接口電路圖3.8 RST復位鍵及ISP選擇電路2跳線器說明SmartARM2300工控開發(fā)平臺跳線器說明如表3.1所列。JP1跳線布局如圖3-9所示。圖3.9 JP1跳線布局表3.1 SmartARM2300跳線器一覽表跳線器標號I/O功能說明I/O復用情況JP1JP1-1RXD3P4.29UART3接口,至SP3232E輸入端,短接時有效JP1-5的IRR,做UART3實驗時,必須將JP1-5

3、的IRR跳線斷開TXD3P4.28JP1-5的IRT,做UART3實驗時,必須將JP1-5的IRT跳線斷開JP1-2RXD0P0.3UART0接口,至SP3232E輸入端,短接時有效TXD0P0.2JP1-3RXD2P0.11UART2接口,至SP3232E輸入端,短接時有效TXD2P0.10JP1-4MDCDP2.3UART1接口,至SP3232E輸入端,具有MODEM接口功能,短接時有效MDSRP2.4MRXDP2.1JP24接口MCTSP2.2MRIP2.6MDTRP2.5MTXDP2.0JP24接口MRTSP2.7JP1-5IRENP3.26模式選擇,短接時有效IRRP4.29IrDA

4、收發(fā)器數(shù)據(jù)輸出,短接時有效JP1-1的RXD3,做IrDA實驗時,必須將JP1-1的RXD3跳線斷開IRTP4.28IrDA收發(fā)器數(shù)據(jù)輸入,短接時有效JP1-1的TXD3,做IrDA實驗時,必須將JP1-1的TXD3跳線斷開JP1-64線,CAN控制器發(fā)送/接收線JP1-79線,SD/MMC卡控制及數(shù)據(jù)線JP1-8KEY1P0.6獨立按鍵1,短接時有效KEY2P0.7獨立按鍵2,短接時有效KEY3P0.8獨立按鍵3,短接時有效KEY4P0.9獨立按鍵4,短接時有效KEY5P0.10獨立按鍵5,短接時有效KEY6P0.11獨立按鍵6,短接時有效KEY7P0.25獨立按鍵7,短接時有效JP1-9B

5、EEPP1.27蜂鳴器驅動輸入,短接時有效JP1-10MOSIP1.2474HC595與SPI接口連接的跳線,短接時有效/CSP1.21SCLKP1.20MISOP1.23JP4V-TESTP1.31LPC2378片內A/D的AD0.5通道電壓輸入,短接時有效JP5ISPP2.10ISP功能使能,短接時有效實驗一 ADS集成開發(fā)環(huán)境使用與仿真調試一實驗目的熟悉ADS集成開發(fā)環(huán)境與仿真調試的使用方法。二實驗設備及器件PC機 一臺SmartARM2300工控開發(fā)平臺 一臺三實驗內容與實驗步驟ADS集成開發(fā)環(huán)境是ARM公司推出的ARM核微控制器集成開發(fā)工具式,ADS(ARM Developer Su

6、ite)成熟版本為ADS1.2。ADS1.2支持ARM10之前的所有ARM系列微控制器,支持軟件調試及JTAG硬件仿真調試,支持匯編、C、C+源程序。ADS1.2由代碼生成工具、CodeWarrior IDE 集成開發(fā)環(huán)境、AXD調試器、指令模擬器、ARM開發(fā)包和ARM應用庫6個部分組成,用戶一般直接操作的是CodeWarrior IDE 集成開發(fā)環(huán)境和AXD調試器。ADS1.2使用了CodeWarrior IDE 集成開發(fā)環(huán)境,并集成了ARM匯編器、ARM的C/C+編譯器、Thumb的C/C+編譯器、ARM連接器,包含工程管理器、代碼生成接口中、語法敏感編輯器、源文件和類瀏覽器等等。AXD調

7、試器為ARM擴展調試器(即ARM Extended Debugger),包括ADW/ADU的所有特性,支持硬件仿真和軟件仿真(ARMulator),AXD能夠裝載映像文件到目標內存,具有單步、全速和斷點等調試功能,可以觀察變量,寄存器和內存的數(shù)據(jù)等等。1工程的編輯 建立工程點擊windows操作系統(tǒng)【開始】-【程序】-【ARM Developer Suite v1.2】-【CodeWarrior for ARM Developer Suite】啟動Metrowerks Code Warrior,或者雙擊“Code Warrior for ARM Developer Suite”快捷方式啟動。啟

8、動ADS1.2 IDE, 如圖3.10所示。圖3.10 ADS1.2IDE 界面點擊【File】菜單,選擇【New.】即彈出New對話框,如圖3.11所示。圖3.11 New對話框選擇工程模塊為ARM可執(zhí)行映像(ARM Executable Image),在其它場合也可能選ARM Executale Image for LPC2300,或Thumb可執(zhí)行印象(Thumb Executable Image),或Thumb,ARM交至映像(Thumb ARM Interworking Image)等,然后在【location】項選擇工程存放路徑(請建立自己的文件夾),并在【project name

9、】項輸入工程名稱(后綴名自動設置,為mcp),點擊【確認】按鈕即可建立相應工程(下文有時也把工程稱為項目)。在集成環(huán)境中會彈出工程窗口如圖3.12所示,此時工程中還沒有任何源文件。圖3.12 集成環(huán)境中的工程窗口系統(tǒng)自動為每個工程建立三個目標(默認的名稱為DebugRel,Release,Debug),主要是方便同一個工程在調試應用不同場合對應不同目標(可在后續(xù)的設置中為每個目標建立不同的參數(shù));對簡單應用可不考慮目標之間的區(qū)別,只對其中的一個默認目標(DebugRel)進行操作即可。 建立文件建立一個文本,以便輸入用戶程序,點擊“New Text File”圖標按鈕,如圖3.13所示。圖3.

10、13 “New Text File”圖標按鈕然后在新建文件(untiled)中,根據(jù)需要完成的任務,編寫合適的程序,程序編寫結束后,點擊“save”圖標按鈕將文件存盤(或從【File】菜單選擇【save】,要求輸入文件全名(匯編程序后綴名為.S;C語言程序后綴名為.C),如TEST1.S(匯編程序),TEST1.C(C語言程序)。注意,請將文件保存到步驟中建立的工程目錄下,以便于管理和查找。當然,也可以New對話框選著【File】頁來建立源文件,如圖3.11所示,或使用其他文本編輯器建立或編輯源文件。 添加文件到工程在工程窗口中【File】頁空白處點擊鼠標右鍵,彈出浮動菜單,如圖3.14所示。

11、選著“add Flie.”即可彈出“Sslect file to add.”對話框,如圖3.15所示,選擇相應工程需要的源文件(可按著Ctrl鍵一次選擇多個文件),點擊【打開】按鈕;彈出“Add Files” 對話框, 如圖3.16所示,點擊【OK】按鈕,為工程中的三個目標均添加文件即可。C語言中的頭文件(.h)及匯編語言中的包含文件(.INC)編譯系統(tǒng)會自動添加,但這些文件必須在相應的目錄下,編譯系統(tǒng)才能找到并確定。另外,用戶也可以在【Project】菜單中選擇【Add File.】來添加源文件,或使用New對話框選擇【File】頁來建立源文件時選擇加入工程(即選中“Add to Proje

12、ct”項)。圖3.14 在工程窗口中添加源程序圖3.15 Select files to add.對話框圖 3.16 Add files to targets 窗口 編輯連接工程工程窗口中的圖標按鈕如圖3.17所示,通過這些圖標按鈕,可以快速地可對目標DebugRel進行工程設置,編譯連接,啟動調試等等(在不同的菜單項上可以分別找到相應的菜單命令)。6個圖標按鈕,它們從左至右分別為:DebugRel Settings. 工程設置,如地址設置,輸出文件設置,編譯選項燈,其中DebugRel為當前的生成目標(target system);Synchronize Modification Dates

13、 同步修改日期,檢查工程中每個文件的修改日期,若發(fā)現(xiàn)有更新(如使用其它編輯器編輯源文件),則在Touch欄標記“”;Make 編譯連接(快捷鍵為F7);Debug 啟動AXD進行調試(快捷鍵為F5);Run 啟動AXD進行調試,并直接運行程序;Project Inspector 工程檢查,查看和配置工程中源文件的信息。圖3.17 工程窗口中的圖標按鈕點擊“DebugRel Settings.”圖標按鈕,即可對目標DebugRel進行工程的地址設置、輸出文件設置、編輯選項等。在“Target Settings”對話框,將Post-linker選擇為ARM formELF(ARM可執(zhí)行格式),如圖

14、3.18所示。圖3.18 DebugRel Settings 窗口在“ARM Linker”對話框設置連接地址,由匯編語言編寫的軟件,在Linktype 單選項選擇Simple, 設置連接地址為 0x40000000(LPC2300 SRAM 的地扯),如圖3.19所示。若由C語言編寫的軟件,在Linktype 單選項選擇Scattered,由分散加載文件設置連接地址,如實驗三及實驗三以后的程序。圖3.19 連接地址設置窗口其余DebugRel Settings采用默認設置即可,設置結束后直接點擊工程窗口的“Make”圖標按鈕,即可完成編譯連接。若編譯出錯,會有相應的出錯提示,雙擊出錯提示行信

15、息,編輯窗即會使用光標指出當前出錯的源代碼,編輯連接輸出窗口如3.20圖所示。同樣可在【Project】菜單中找到相應的命令。圖3.20 編譯連接輸出窗口Touch欄用于標記文件是否已編譯,若打上“”則表明對應文件需要重新編譯,如圖3.21所示,??梢酝ㄟ^單擊該欄位置來設置/取消符號“”。圖3.21 工程窗口中Make 操作重新編譯之前,建議將原來生成的目標文件都刪除,方法如下,點選“project”下拉菜單的“Remove Object code”-“All Targets”,如圖3.22所示,刪除了舊目標文件后,所有文件都被“touch”上了,此時可對整個工程進行重新編譯。圖3.22 刪除

16、舊的目標文件 打開舊工程點擊【Flie】菜單,選擇【Open】即彈出“打開”對話框,找到相應的工程文件(*.mcp),單擊【打開】即可。在工程窗口的【files】頁中,雙擊源程序的文件名即可打開該文件進行編輯。2工程的調試 選擇調試的方式當工程編譯連接通過后,在工程窗口中點擊“Debug”圖標按鈕(或者使用快捷F5),即可啟動AXD(也可以通過【開始】菜單啟動AXD)。點擊菜單【options】選擇【Configure Target.】,即彈出Choose Target窗口,如圖3.23所示。Target項中的前兩項,分別為ADP(JTAG硬件仿真)和ARMUL(軟件仿真),為ADS1.2自帶

17、;Target項中的第三項H-JTAG為EasyJTAG-H仿真器驅動,參見稍后的描述。圖3.23 Choose Target窗口選擇仿真驅動程序后,點擊【File】選擇【Load Image.】加載ELF格式的可執(zhí)行文件,即*.axf文件。(說明:當工程編譯連接通過后,在“工程名工程名_Data當前的生成目標”目錄下就會生成一個*.axf調試文件。比如工程TEST,當前的生成目標Debug,編譯連接通過后,則在.TESTTEST_DataDebug目錄下生成TEST.axf文件。) 調試工具條AXD運行調試工具條如圖3.24所示,調試觀察窗口工具條如圖3.25所示,文件操作工具條如圖3.26

18、所示。具有單步、全速和斷點等調試功能,可以觀察變量,寄存器和內存的數(shù)據(jù)等等。圖3.24 運行調試工具條圖3.25 調試觀察窗口工具條圖3.26 文件操作工具條3LPC2300系列ARM工具模板在建立工程時,們已經(jīng)接觸了ADS1.2提供的幾個標準工程模板。使用各個模板建立的工程,它們的各項設置均有不同之處,方便生成不同的結構的代碼,如ARM可執(zhí)行映像(生成ARM指令的代碼)或Thumb可執(zhí)行映像(生成Thumb指令的代碼),或Thumb、ARM交織映像(生成Tumb、ARM指令交織的代碼)。針對LPC2300系列ARM7微控制器,定義了2個工程模板,這些模板一般包含的設置信息有FLASH起始地址

19、0x00000000、片內RAM起始地址0x40000000、編譯連接選項及編譯優(yōu)化級別等等。模板中包含了LPC2300系列ARM7微控制器的啟動文件,包括Startup.S、target.c,模板還包含了LPC2300系列ARM7控制器的頭文件(如:LPC23xx.h),分散加載描述文件(如:mem_a.scf、mem_b.scf、mem_c.scf)等等。 為AD1.2增加LPC2300專用工程模板將“l(fā)pc2300 project module”目錄下的所有文件和目錄拷貝到“ADS1.2安裝目錄Stationery”即可,這個步驟只需1次,以后就可以直接使用該工程模板。 使用LPC230

20、0專用工程模板建立工程啟動ADS1.2集成開發(fā)環(huán)境,點擊【file】菜單,選擇【New】即彈出New對話框,如圖3.27所示。由于事先增加了LPC2300專用模板和其他模板。所以在工程模板欄中多出幾項工程模板選項。圖3.27 增加工程模板LPC2300專用工程模板說明如下:ARM Executale Image for LPC2300:無操作系統(tǒng),所有代碼均編譯成ARM指令的工程模板。 用戶選擇相應的工程模板建立一個工程,如圖3.28所示為使用ARM Executale Image for LPC2300工程模板建立一個工程。工程有3個生成目標:DebuginRAM、DebugInFlash、

21、RelInFLASH.工程模板已經(jīng)將相應的編譯參數(shù)設置好了,直接使用即可。注意: 工程模板的分散加載文件mem_a.scf、mem_b.scf、mem_c.scf、的堆棧和內存大小需要根據(jù)不同的芯片進行設置,LPC2366/68/78和LPC2364的大小不一樣,用戶可以打開這3個文件根據(jù)芯片型號進行相應修改; 選用RellnFlash目標時,將會對LPC2300芯片進行加密,加密的芯片只能使用ISP進行芯片整片擦除后,才能恢復JTAG調試及ISP讀/寫操作。圖3.28 使用LPC2300系列ARM專用工程模板建立的工程4EasyJTAG-H仿真的安裝與應用 EasyJTAG-H簡介EasyJ

22、TAG-H仿真器是一款新型的仿真器,目前,可以支持LPC2300系列ARM7微控制器和部分ARM9芯片,支持ADS1.2集成開發(fā)環(huán)境,支持單步、全速及斷點等調試功能,支持下載程序到片內FLASH和特定型號的片外FLASH,采用ARM公司提出的標準20腳JTAG仿真調試接口。這款仿真器需要H-JATAG軟件(調試代理)的支持。 H-JTAG軟件安裝在PC上運行安裝文件H-JTAG.EXE,根據(jù)安裝提示完成安裝即可。安裝好的H-JTAG軟件包含有H-JTAG Server(下文簡稱為H-JTAG)和H-Flasher,在桌面上有它們的快捷圖標。運行程序H-JTAG和H-Flasher后,用戶任務欄

23、中將出現(xiàn)3.29所示圖標。圖3.29 H-JTAG提示圖標將計算機并口與EasyJTAG-H仿真器相連,然后在將EasyJTAG-H仿真器的JTAG接口連接到開發(fā)板上左上方的CON5,注意不要連接到右下方的JPI3,否則會造成短路,然后給開發(fā)板上電。 H-JTAG配置H-JTAG設置較簡單,只要進行以下兩步操作,其他采用默認即可。 單擊任務欄的H提示圖標,將看見H-JTAG的主窗口,如圖3.30所示。單擊“放大器”圖標按鈕后,能看見調試代理搜索到ARM內核信息。圖3.30 H-JTAG主窗口 選擇【Flasher】-【Aoto Download】選擇自動下載,如圖3.31所示(正常情況下,H-

24、JTAG能檢測并顯示ARM內核信息)。注意,在Flash中調試時必須選擇“Auto Download”,而在RAM中調試可以不選擇。圖3.31 打開自動下載功能 H-Flasher配置H-Flasher的配置,只需要選擇正確的CPU型號,然后驗證(Check)通過即可。 單擊任務欄的H-Flasher提示圖標,確認目標板的CPU型號后,打開H-Flasher的Flash Selection選項,選擇正確的CPU型號即可。如:開發(fā)板上的CPU型號為NXP公司的LPC2378,操作如圖3.32所示。圖3.32 選擇Flash類型 驗證調試代理配置是否正確,打開H-Flasher的Programmi

25、ng選項單擊Check按鈕,如圖3.33所示。如果正常,可以看到所使用的Flash芯片的型號,單擊Check按鈕時,H-Flasher就會啟用當前新的配置值。到此配置完成。圖3.33 Flash編程選項 EasyJTAG-H仿真器的使用 將計算機并口與EasyJTAG-H仿真器相連,再將EasyJTAG-H仿真器的JTAG接口連接到開發(fā)板上左上方的CON5,并給開發(fā)板上電。然后打開H-JTAG軟件,單擊放大鏡圖標按鈕,如果正常就能檢測到芯片內核信息。然后可以最小化或關閉H-JTAG和H-FLASH窗口(注意:不能使用exit菜單關閉)。 選擇windoes系統(tǒng)的【開始】-【程序】-【ARM d

26、eveloper suite v1.2】-【AXD debugger】啟動AXD軟件。再AXD軟件中,打開【Options】-【Configure Target.】,彈出choose target對話框,單擊ADD添加仿真器的驅動程序,在添加文件窗口選擇如D:Progarm FilesH-JTAG.dll,如圖3.34所示,接著單擊“打開”即可(若已經(jīng)安裝,此步省略)。圖3.34 為AXD添加H-JTAG驅動 添加完H-JTAG驅動后選擇該驅動程序,如圖3.35所示,然后單擊OK。圖3.35 Choose Target窗口 關閉AXD窗口,以后調試就直接在ADS中打開一個工程,編譯鏈接通過后,

27、單擊Debug或按下“F5”即可啟動AXD調試軟件,進行JTAG仿真調試,AXD典型界面如圖3.36所示。圖3.36 AXD調試界面注意:如果工程文件的路徑中存在中文,進行AXD調試環(huán)境可能會出現(xiàn)錯誤。因此,建議工程路徑中不要包含中文(包含標點符號)。 EasyJTAG-H常見問題 在進行AXD仿真調試前,需要打開H-JTAG檢測芯片內核。同時要正確配置H-Flasher,否則無法進入AXD正常調試。 如果目標板沒有上電,或者JTAG仿真器沒有連接好,H-JTAG會出現(xiàn)錯誤,如圖3.37所示,調試時將SmartARM2300工控開發(fā)平臺的ISP(JP5)跳線短接上,這樣可避免片內程序自動脫機運

28、行。圖 3.37 H-JTAG連接錯誤 如在ADS啟動AXD仿真器調試時出現(xiàn)如圖3.38所示的錯誤,單擊“確定”按鈕,然后會彈出Load Session對話框,如圖3.39所示。圖3.38 啟動仿真時出錯圖3.39 Load Session窗口 此時不必選擇Session 文件,直接單擊“取消”,然后進入到AXD調試界面。點選“ Option ” - “Configure Interface”,如圖3.40所示。圖 3.40 點選配置窗口 在“ Action on close/restart ”項,將“ Save and load default sessi”前面的“”去掉,如圖3.41所示。

29、圖 3.41 去掉保存 sessi 點擊“確定”,關閉AXD,在ADS工程窗口中點擊“Debug”進入AXD調試環(huán)境,會彈出如圖3.42所示對話框,選擇“H-JTAG”并點擊確定。成功連接目標板后,就進入了AXD進行仿真調試。圖 3.42 選擇“H-JTAG”四實驗要求熟練掌握ADS1.2集成開發(fā)環(huán)境的工程建立、編輯與調試功能。了解相關的SmartARM2300工控開發(fā)平臺硬件結構。五實驗參考程序參考實驗二相關程序(使用ARM Executable Image模板建立工程,“ARM Linker”設置連接地址為 0x40000000);或參考實驗三中的GPIO輸出實驗程序(使用ARM Exec

30、utale Image for LPC2300模板建立工程,“ARM Linker”連接地址由分散加載文件自動設置)。 實驗二 LPC2300開發(fā)過程及程序下載實驗一實驗目的熟悉LPC2300開發(fā)過程及程序下載。二實驗設備及器件PC機 一臺SmartARM2300工控開發(fā)平臺 一臺三實驗內容及步驟 將計算機并口與EasyJTAG-H仿真器相連,EasyJTAG-H仿真器的JTAG接口連接到SmartARM2300工控開發(fā)平臺上左上方的CON5,啟動H-JTAG和H-FLASH軟件,選擇NXP LPC2378器件,并最小化窗口。 啟動ADS1.2,使用ARM Executable Image工程

31、模板建立一個工程,如圖3.43所示。圖3.43 工程模板窗口 編寫一個匯編語言文件,控制蜂鳴器每隔一定時間鳴叫一次,并將文件添加到工程。 將SmartARM2300工控開發(fā)平臺的JP1上的P1.27和BEEP連接,參見圖3.3 直流蜂鳴器電路。 在工程窗口進行工程設置, 在“Target Settings”對話框,將Post-linker選擇為ARM formELF(ARM可執(zhí)行格式),如圖3.44所示。在“ARM Linker”對話框設置連接地址,在Linktype 單選項選擇Simple, 設置連接地址為 0x40000000(LPC2300 SRAM 的地扯),如圖3.45所示。其余De

32、bugRel Settings采用默認設置。圖3.44 Target Settings設置窗口圖3.45 ARM Linker設置窗口 設置結束后點擊工程窗口的“Make”圖標按鈕,進行編譯連接;若編譯出錯,修改源代碼,直至編譯連接通過。 當工程編譯連接通過后,在工程窗口中點擊“Debug”圖標按鈕,啟動AXD調試環(huán)境。在AXD窗口可運用單步運行、全速運行和斷點設置等工具、方法測試程序。如程序功能達不到要求,則返回修改源程序代碼,直至功能完全滿足要求。上面步驟編寫的程序在LPC2300 SRAM運行滿足要求后,下面的步驟將程序下載至LPC2300 Flash,脫機運行,構成獨立系統(tǒng)。 關閉AX

33、D窗口,返回工程設置。在“ARM Linker”對話框設置連接地址,在Linktype 單選項選擇“Simple”, 設置連接地址為 0x00000000(LPC2300 Flash 的地扯),如圖3.46所示。圖3.46 ARM Linker設置窗口在“ARM fromELF” 對話框,在Output format 中選擇“Intel 32 bit Hex ”,在Outputfile name中鍵入生成的hex文件名稱,如“T1.hex”,注意一定要加上后綴.hex, 如圖3.47所示。圖3.47 ARM fromELF設置窗口 設置好后,點擊確定,在工程的“touch”欄中將所有的文件都“

34、touch”(打上鉤),如圖3.48所示。圖3.48 touch所有文件重新編譯將整個工程重新編譯后,在工程文件夾下的DebugRel文件夾下可以看到生成的“1.hex”文件,如圖3.49所示。圖3.49 生成的hex文件 使用隨機附帶的串口直通延長線,將目標版的UART0(CON6口)和PC的串口相連,將目標板的ISP(JP5)短接,打開燒寫FlashMegic 軟件(光盤里有FlashMegic 的安裝源程序,如未安裝,請先安裝此軟件)。 按圖3.50所示設置FlashMegic 軟件參數(shù)。圖3.50 FlashMegic 軟件參數(shù)設置窗口Step1設置波特率為9600,Device為LP

35、C2378,晶振頻率為12.000000MHz ;Step2點選“Erase all Falsh +Code Rd prot ” 在燒寫新程序前,先擦除芯片內原來的程序;Step3選擇需要燒寫的程序;Step4 options中勾上“Verify after Promgraning”,這樣就可以燒寫程序后自動完成校驗。在完成上述Step1至Step4 FlashMegic 軟件參數(shù)設置后,點擊Step5中的 “Start“按鈕,就開始對芯片進行燒寫并校驗hex文件。 關閉目標版的電源;斷開EasyJTAG-H仿真器與目標扳的JTAG接口連接;斷開UART0(CON6口)與PC的串行口連接;斷開

36、目標板的ISP(JP5)短接塊。重新給目標板上電,目標板構成獨立系統(tǒng),運行下載到Falsh中的程序,蜂鳴器每隔一定時間鳴叫一次。四實驗要求掌握LPC2300開發(fā)及程序下載過程。理解實驗參考程序,有關細節(jié)參考深入淺出ARM7-LPC2300(上冊)中的“系統(tǒng)控制模塊”及“通用輸入/輸出口(GPIO)”部分。五實驗參考程序 INCLUDE LPC23XX.INC ;/包含文件,在所建的工程目錄下須有LPC23XX.INC文件SOUNDCON EQU 0X08000000 ;/P1.27引腳控制發(fā)聲 CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR P

37、C, ResetAddr ;/異常向量表 LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0xb9206e50 LDR PC, PC, #-0x120 LDR PC, FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD UndefinedSWI_Addr DCD SoftwareInterruptPrefetchAddr DCD PrefetchAbortDataAbortAddr DCD DataAbortNouse DCD

38、 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_HandlerUndefined B Undefined ;/未定義指令異常SoftwareInterrupt B SoftwareInterrupt ;/軟件中斷異常PrefetchAbort B PrefetchAbort ;/預取指中止異常DataAbort B DataAbort ;/數(shù)據(jù)中止異常 FIQ_Handler B FIQ_Handler ;/ 快中斷 ResetInit B MAIN ;/復位轉主程序 MAIN LDR R0,=SCS ;/以下為主程序 MOV R1,#0X00000000 STR R1,R0

39、 ;/設置SCS,置P0,P1為低速模式 LDR R0,=PINSEL3 STR R1,R0 ;/ P1引腳功能均為GPIO LDR R0,=IO1DIR LDR R1,=SOUNDCON STR R1,R0 ;/P1.27引腳為輸出,P1口其余引腳為輸入LOOP LDR R1,=SOUNDCONSSET LDR R0,=IO1SET STR R1,R0 ;/P1.27引腳為1,不發(fā)聲 BL DELYCSET LDR R0,=IO1CLR STR R1,R0 ;/P1.27引腳為0,發(fā)聲 BL DELY B LOOP DELY MOV R7,#0X000FF000 ;/延時子程序DLY1 SU

40、BS R7,R7,#1 BNE DLY1 MOV PC,LR ALIGN LTORG END 實驗三 GPIO輸出控制實驗一實驗目的熟悉GPIO功能及輸出控制的使用。二實驗設備及器件PC機 一臺SmartARM2300工控開發(fā)平臺 一臺三實驗原理及實驗內容LPC2300系列ARM具有5組通用輸入輸出:P0P4。對于LPC2300系列ARM來說,GPIO分為“高速模式(增強型)”和“低速模式(通用型)”。其中: P0和P1口既能夠使用“高速模式”操作也能夠使用“低速模式”來操作; P2、P3和P4口,只能夠使用“高速模式”來操作。P0和P1口能夠使用“低速模式”操作主要是為了兼容LPC2300系

41、列ARM的早期型號。有關這兩種模式的詳細說明,請參考深入淺出ARM7LPC2300系列上冊中的通用輸入/輸出口一節(jié)。蜂鳴器是一種以一體化結構的電子訊響器,采用直流或者交流供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產(chǎn)品中做發(fā)聲器件。蜂鳴器通常使用中功率的三極管來驅動,如C8550等。圖3.51為SmartARM2300工控開發(fā)平臺蜂鳴器的驅動電路,此處直流蜂鳴器的驅動電壓為3.3V,有P1.27控制,在實驗中通過短接跳線JPI-9,連接P1.27與BEEP引腳。圖3.51 蜂鳴器控制電路由于蜂鳴器是線路板上的器件,因此,直接使用非隔離的方式驅動即

42、可。當P1.27的輸出低電平時,三極管Q4會進入飽和狀態(tài),VDD電壓加到了蜂鳴器上使之鳴叫;反之,當P1.27的輸出高電平時,三極管Q4會進入截止狀態(tài),蜂鳴器上的驅動電壓消失,蜂鳴器停止鳴叫。1. 低速模式控制在使用P1.27控制蜂鳴器前,需要先通過“管腳連接寄存器”將P1.27引腳設置為GPIO,接下來設置GPIO的輸入/輸出方式,由于使用低速模式,所以需要通過IO1DIR寄存器將其設置為輸出模式,程序清單如下: PINSEL3 =0x00000000; /設置管腳連接GPIOIO1DIR =BEEP; /設置BEEP控制口為輸出在低速模式下,使用IO1CLR和IO1SET寄存器來控制P1.

43、27引腳輸出低電平和高電平,從而達到控制蜂鳴器鳴叫目的,程序清單如下: IO1SET =BEEP; /P1.27輸出高電平,蜂鳴器停止蜂鳴DelayNS(50); /延時IO1DIR=BEEP; / P1.27輸出低電平,蜂鳴器蜂鳴DelayNS(50); /延時2. 高速模式控制在LPC2300系列ARM中,所有的端口都可以通過高速模式來控制,其中,P2、P3和P4只能使用高速模式來控制。要想通過高速模式來操作P0和P1端口,必須在使用之前置位“系統(tǒng)控制和狀態(tài)寄存器(SCS)”中的“GPIOM”位,程序清單如下: 如果GPIOM=“0”,只能使用“低速模式”來操作P0和P1端口; 如果GPI

44、OM=“1”,只能使用“高速模式”來操作P0和P1端口。無論使用高速模式還是低速模式,P1.27都是作為GPIO來使用的,因此,也需要設置“管腳連接寄存器”,但是設置引腳輸入/輸出模式時。在高速模式下需要使用FIO1DIR寄存器,程序清單如下: SCS =SCS|0x01; /P0和P1端口連接到高速端口PINSEL3 =PINSEL3&(0x03(27-16); /設置P1.27管腳連接GPIOFIO1DIR =FIO1DIR|(127); /設置高速端口P1.27為輸出口在高速模式下,使用FIO1CLR和FIO1SET寄存器來控制P1.27引腳輸出低電平和高電平,從而達到控制蜂鳴器鳴叫的目

45、的,程序清單如下: FIO1SET = 127; / P1.2輸出高電平,蜂鳴器停止蜂鳴DelayNS(50); /延時FIO1DIR =127; / P1.2輸出低電平,蜂鳴器蜂鳴DelayNS(50); /延時注意:LPC2300系列ARM的I/O引腳正常拉出/灌入電流為4mA,短時間極限值為40mA。四實驗要求熟練掌握GPIO功能及輸出控制的使用方法。五實驗參考程序將計算機并口與EasyJTAG-H仿真器相連,EasyJTAG-H仿真器的JTAG接口連接到SmartARM2300工控開發(fā)平臺上左上方的CON5,啟動H-JTAG和H-FLASH軟件,選擇NXP LPC2378器件,并最小化

46、窗口。使用ARM Executale Image for LPC2300工程模板建立工程,根據(jù)任務編寫程序,并將程序文件添加到工程,然后編譯、調試。實驗三以后的實驗于此相同,將不再綴述。實驗程序一、GPIO輸出實驗蜂鳴器控制#include config.h#define BEEP (1 0; dly-)for (i = 0; i 50000; i+);/* 函數(shù)名稱 :main* 函數(shù)功能 :用P1.27控制BEEP,讓BEEP鳴叫。* 調試說明 :需將跳線JP1-9短接。*/int main(void)PINSEL3 = 0x00000000;/ 設置管腳連接GPIOIO1DIR = BE

47、EP;/ 設置BEEP控制口為輸出while (1)IO1SET = BEEP;/ BEEP停止蜂鳴DelayNS(50);IO1CLR = BEEP;/ BEEP蜂鳴DelayNS(50); return (0);實驗程序二、高速GPIO輸出#include config.h#define BEEP (1 0; dly-)for (i = 0; i 50000; i+);/* 函數(shù)名稱 :main* 函數(shù)功能 :用P1.27控制BEEP,讓BEEP鳴叫。*/int main(void)SCS = SCS | 0x01;/ PORT0和PORT1端口連接到高速端口PINSEL3 = 0x00000000;/ 設置管腳連接GPIOFIO1SET = BEEP;/ P1.27輸出高電平FIO1DIR = FIO1DIR | BEEP;/ 設置增強型端口P1.27為輸出口while (1)FIO1SET = BEEP;/ P1.27輸出高電平DelayNS(50);FIO1CLR = BEEP;/ P1.27輸出低電平Del

溫馨提示

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

評論

0/150

提交評論