




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、嵌入式系統(tǒng)及應(yīng)用實驗以嵌入式系統(tǒng)及應(yīng)用實驗SmartARM2300工控開發(fā)平臺及 PC 機為主要硬件設(shè)備。SmartARM2300工控開發(fā)平臺采用NXP公司生產(chǎn)的芯片調(diào)試等功能,除了本身的GPIO、 TIMER、 PWM、 SPI、LPC2378(ARM7TDMI-S核) ,具有 JTAGA/D 、D/A 功能外,還提供 4 個 UART串口、 IrDA 接口、 USB Device 接口、 CAN總線、 SD/MMC卡、 MODEM接口、以太網(wǎng)接口等功1相關(guān)的硬件電路系統(tǒng)電源電路圖 3.1 系統(tǒng)電源電路鍵盤、蜂鳴器及 LED電路圖 3.2 7 個獨立按鍵電路圖 3.3 直流蜂鳴器電路圖 3.
2、4 SPI 驅(qū)動 8 個 LED 指示燈 串行口接口電路圖 3.5 UART0 UART2 UART3串行口接口電路 IrDA (紅外)通訊接口電路圖 3.6 IrDA紅外)通訊接口電路 JTAG 調(diào)試接口、 RST 復(fù)位鍵及 ISP 選擇電路圖 3.7 JTAG 調(diào)試接口電路圖 3.8 RST 復(fù)位鍵及 ISP 選擇電路2跳線器說明SmartARM2300工控開發(fā)平臺跳線器說明如表 3.1 所列。 JP1 跳線布局如圖 3-9 所示。圖 3.9 JP1 跳線布局表 3.1 SmartARM2300 跳線器一覽表跳線器號 標I/O功能說明I/O 復(fù)用情況JP1JP1-1RXD3P4.29UAR
3、T3接口,至 SP3232E 輸入端,短接時有效JP1-5 的 IR R,做 UART3實驗時, 必須將 JP1-5 的 IR R 跳線斷開TXD3P4.28JP1-5 的 IR T,做 UART3實驗時, 必須將 JP1-5 的 IRT 跳線斷開JP1-2RXD0P0.3UART0接口,至 SP3232E 輸入端,短接時有效TXD0P0.2JP1-3RXD2P0.11UART2接口,至 SP3232E 輸入端,短接時有效TXD2P0.10JP1-4MDCDP2.3UART1接口,至 SP3232E 輸入端, 具有 MODEM接口 功能,短接時有效MDSRP2.4MRXDP2.1JP24 接口
4、MCTSP2.2MRIP2.6MDTRP2.5MTXDP2.0JP24 接口MRTSP2.7JP1-5IRENP3.26模式選擇,短接時有效IRRP4.29IrDA 收發(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獨立
5、按鍵 2,短接時有效KEY3P0.8獨立按鍵 3,短接時有效KEY4P0.9獨立按鍵 4,短接時有效KEY5P0.10獨立按鍵 5,短接時有效KEY6P0.11獨立按鍵 6,短接時有效KEY7P0.25獨立按鍵 7,短接時有效JP1-9BEEPP1.27蜂鳴器驅(qū)動輸入, 短接時 有效JP1-10MOSIP1.2474HC595與 SPI 接口連接 的跳線,短接時有效/CSP1.21SCLKP1.20MISOP1.23JP4V-TESTP1.31LPC2378 片 內(nèi) A/D 的AD0.5 通道電壓輸入,短 接時有效JP5ISPP2.10ISP 功能使能,短接時有 效實驗一 ADS 集成開發(fā)環(huán)境
6、使用與仿真調(diào)試一實驗?zāi)康氖煜?ADS集成開發(fā)環(huán)境與仿真調(diào)試的使用方法。 二實驗設(shè)備及器件PC機 一臺SmartARM2300工控開發(fā)平臺一臺三實驗內(nèi)容與實驗步驟ADS 集成開發(fā)環(huán)境是ARM公司推出的 ARM核微控制器集成開發(fā)工具式,ADS(ARMDeveloper Suite) 成熟版本為 ADS1.2。 ADS1.2 支持 ARM10之前的所有 ARM系列微控制器, 支持軟件調(diào)試及 JTAG硬件仿真調(diào)試,支持匯編、 C、C+源程序。 ADS1.2 由代碼生成工具、 CodeWarrior IDE 集成開發(fā)環(huán)境、 AXD調(diào)試器、指令模擬器、 ARM開發(fā)包和 ARM應(yīng)用庫 6 個 部分組成,用戶
7、一般直接操作的是 CodeWarrior IDE 集成開發(fā)環(huán)境和 AXD調(diào)試器。ADS1.2使用了 CodeWarrior IDE 集成開發(fā)環(huán)境,并集成了 ARM匯編器、 ARM的 C/C+ 編譯器、 Thumb的 C/C+編譯器、 ARM連接器,包含工程管理器、代碼生成接口中、語法敏 感編輯器、源文件和類瀏覽器等等。AXD調(diào)試器為 ARM擴展調(diào)試器(即 ARM Extended Debugger ),包括 ADW/ADU的所有特 性,支持硬件仿真和軟件仿真 ( ARMulator ),AXD能夠裝載映像文件到目標內(nèi)存, 具有單步、 全速和斷點等調(diào)試功能,可以觀察變量,寄存器和內(nèi)存的數(shù)據(jù)等等。
8、1工程的編輯 建立工程點擊 windows 操作系統(tǒng)【開始】-【 程序】-【 ARMD eveloper Suite v1.2 】-【CodeWarrior for ARM Developer Suite 】啟動 Metrowerks Code Warrior ,或者雙擊“ Code Warrior for ARM Developer Suite ”快捷方式啟動。啟動 ADS1.2 IDE , 如圖 3.10 所示。圖 3.10 ADS1.2IDE 界面點擊【 File 】菜單,選擇【 New. 】即彈出 New對話框,如圖 3.11 所示。圖 3.11 New 對話框選擇工程模塊為 ARM可
9、執(zhí)行映像( ARM Executable Image ),在其它場合也可能選 ARM Executale Image for LPC2300,或 Thumb可執(zhí)行印象 ( Thumb Executable Image),或 Thumb, ARM交至映像( Thumb ARM Interworking Image )等,然后在【 location 】項選擇工程存放 路徑(請建立自己的文件夾) ,并在【 project name 】項輸入工程名稱(后綴名自動設(shè)置, 為 mcp),點擊【確認】按鈕即可建立相應(yīng)工程(下文有時也把工程稱為項目)。在集成環(huán)境中會彈出工程窗口如圖 3.12 所示,此時工程中
10、還沒有任何源文件。圖 3.12 集成環(huán)境中的工程窗口系統(tǒng)自動為每個工程建立三個目標(默認的名稱為DebugRel,Release,Debug ),主要是方便同一個工程在調(diào)試應(yīng)用不同場合對應(yīng)不同目標 (可在后續(xù)的設(shè)置中為每個目標建立不 同的參數(shù)) ;對簡單應(yīng)用可不考慮目標之間的區(qū)別,只對其中的一個默認目標 (DebugRel) 進 行操作即可。 建立文件 建立一個文本,以便輸入用戶程序,點擊“ New Text File ”圖標按鈕,如圖 3.13 所 示。圖 3.13 “New Text File ”圖標按鈕然后在新建文件( untiled )中,根據(jù)需要完成的任務(wù),編寫合適的程序,程序編寫結(jié)
11、 束后,點擊“ save ”圖標按鈕將文件存盤(或從【 File 】菜單選擇【 save 】,要求輸入文件 全名(匯編程序后綴名為 .S ;C語言程序后綴名為 .C),如 TEST1.S(匯編程序) ,TEST1.C(C 語言程序 ) 。注意,請將文件保存到步驟中建立的工程目錄下,以便于管理和查找。當(dāng)然,也可以 New對話框選著【 File 】頁來建立源文件,如圖 3.11 所示,或使用其他 文本編輯器建立或編輯源文件。 添加文件到工程在工程窗口中【 File 】頁空白處點擊鼠標右鍵,彈出浮動菜單,如圖 3.14 所示。選著 “ add Flie. ”即可彈出“ Sslect file to
12、add.”對話框,如圖 3.15 所示,選擇相應(yīng)工程需要的源文件(可按著 Ctrl 鍵一次選擇多個文件) ,點擊【打開】按鈕;彈出“ Add Files ” 對話框 , 如圖 3.16 所示,點擊【 OK】按鈕 ,為工程中的三個目標均添加文件即可。C 語言中的頭文件( .h )及匯編語言中的包含文件 (.INC) 編譯系統(tǒng)會自動添加,但這 些文件必須在相應(yīng)的目錄下,編譯系統(tǒng)才能找到并確定。另外,用戶也可以在【 Project 】菜單中選擇【 Add File. 】來添加源文件,或使用 New對話框選擇【 File 】頁來建立源文件時選擇加入工程(即選中“Add to Project ”項)。圖
13、 3.14 在工程窗口中添加源程序圖 3.15 Select files to add.對話框圖 3.16 Add files to targets窗口 編輯連接工程工程窗口中的圖標按鈕如圖 3.17 所示,通過這些圖標按鈕,可以快速地可對目標DebugRel 進行工程設(shè)置,編譯連接,啟動調(diào)試等等(在不同的菜單項上可以分別找到相應(yīng)的菜單命令) 。 6 個圖標按鈕,DebugRel Settings.它們從左至右分別為: 工程設(shè)置,如地址設(shè)置,輸出文件設(shè)置,編譯選項燈, 其中 DebugRel 為當(dāng)前的生成目標( target system );Synchronize ModificationD
14、ates 同步修改日期,檢查工程中每個文件的修改日期,若 發(fā)現(xiàn)有更新 (如使用其它編輯器編輯源文件) ,則在 Touch 欄標記“”;MakeDebugRunProject Inspector編譯連接(快捷鍵為 F7);啟動 AXD進行調(diào)試(快捷鍵為 F5); 啟動 AXD進行調(diào)試,并直接運行程序; 工程檢查,查看和配置工程中源文件的信息。圖 3.17 工程窗口中的圖標按鈕點擊“ DebugRel Settings. ”圖標按鈕, 即可對目標 DebugRel 進行工程的地址設(shè)置、 輸出文件設(shè)置、編輯選項等。在“ Target Settings ”對話框,將 Post-linker 選擇為 A
15、RM formELF( ARM可執(zhí)行格 式),如圖 3.18 所示。圖 3.18 DebugRel Settings 窗口在“ ARM Linker ”對話框設(shè)置連接地址,由匯編語言編寫的軟件,在 Linktype 單選 項選擇 Simple , 設(shè)置連接地址為 0x40000000 (LPC2300 SRAM 的地扯),如圖 3.19 所示。 若由 C 語言編寫的軟件,在 Linktype 單選項選擇 Scattered ,由分散加載文件設(shè)置連接地 址,如實驗三及實驗三以后的程序。圖 3.19 連接地址設(shè)置窗口其余 DebugRel Settings 采用默認設(shè)置即可,設(shè)置結(jié)束后直接點擊工程
16、窗口的“Make”圖標按鈕,即可完成編譯連接。若編譯出錯,會有相應(yīng)的出錯提示,雙擊出錯提示行信息, 編輯窗即會使用光標指出當(dāng)前出錯的源代碼,編輯連接輸出窗口如 3.20 圖所示。同樣可在 【 Project 】菜單中找到相應(yīng)的命令。圖 3.20 編譯連接輸出窗口Touch 欄用于標記文件是否已編譯,若打上“”則表明對應(yīng)文件需要重新編譯,如 圖 3.21 所示,。可以通過單擊該欄位置來設(shè)置 / 取消符號“” 。圖 3.21 工程窗口中 Make 操作重新編譯之前,建議將原來生成的目標文件都刪除,方法如下,點選“ project ”下拉菜單的“ Remove Object code” - “All
17、 Targets ”,如圖 3.22 所示,刪除了舊目標文件后,所有文件都被“ touch ”上了,此時可對整個工程進行重新編譯。圖 3.22 刪除舊的目標文件 打開舊工程點擊【 Flie 】菜單,選擇【 Open】即彈出“打開” 對話框,找到相應(yīng)的工程文件 ( *.mcp ), 單擊【打開】即可。在工程窗口的【 files 】頁中,雙擊源程序的文件名即可打開該文件進 行編輯。2工程的調(diào)試 選擇調(diào)試的方式當(dāng)工程編譯連接通過后,在工程窗口中點擊“Debug”圖標按鈕(或者使用快捷 F5),即可啟動 AXD(也可以通過【開始】菜單啟動 AXD)。點擊菜單【 options 】選擇【 Configu
18、re Target. 】,即彈出 Choose Target 窗口,如圖 3.23 所示。 Target 項中的前兩項,分別為 ADP(JTAG硬件仿真 )和 ARMUL軟( 件仿真 ),為 ADS1.2自帶; Target 項中的第三項 H-JTAG為 EasyJTAG-H仿真器驅(qū)動,參見稍后的描述。圖 3.23 Choose Target 窗口 選擇仿真驅(qū)動程序后,點擊【 File 】選擇【 Load Image. 】加載 ELF 格式的可執(zhí)行文 件,即 *.axf 文件。(說明:當(dāng)工程編譯連接通過后,在“工程名 工程名 當(dāng)前的生成 目標”目錄下就會生成一個 *.axf 調(diào)試文件。比如工程
19、 TEST,當(dāng)前的生成目標 Debug,編譯 連接通過后,則在 .TESTTEST_DataDebug 目錄下生成 TEST.axf 文件。) 調(diào)試工具條AXD運行調(diào)試工具條如圖 3.24 所示,調(diào)試觀察窗口工具條如圖 3.25 所示,文件操作 工具條如圖 3.26 所示。具有單步、全速和斷點等調(diào)試功能,可以觀察變量,寄存器和內(nèi)存 的數(shù)據(jù)等等。圖 3.24 運行調(diào)試工具條圖 3.25 調(diào)試觀察窗口工具條圖 3.26 文件操作工具條3 LPC2300系列 ARM工具模板在建立工程時, 們已經(jīng)接觸了 ADS1.2 提供的幾個標準工程模板。 使用各個模板建立的 工程,它們的各項設(shè)置均有不同之處,方便
20、生成不同的結(jié)構(gòu)的代碼,如ARM可執(zhí)行映像(生 成 ARM指令的代碼)或 Thumb 可執(zhí)行映像(生成 Thumb 指令的代碼) ,或 Thumb、ARM交織映 像(生成 Tumb、 ARM指令交織的代碼) 。針對 LPC2300系列 ARM7微控制器, 定義了 2 個工程模板, 這些模板一般包含的設(shè)置信 息有 FLASH起始地址 0x00000000 、片內(nèi) RAM起始地址 0x40000000 、編譯連接選項及編譯優(yōu) 化級別等等。模板中包含了 LPC2300 系列 ARM7 微控制器的啟動文件,包括 Startup.S 、 target.c ,模板還包含了 LPC2300系列 ARM7控制器
21、的頭文件(如: LPC23xx.h ) , 分散加載 描述文件(如: mem_a.scf 、 mem_b.scf 、 mem_c.scf )等等。 為 AD1.2 增加 LPC2300 專用工程模板將“ lpc2300 project module ”目錄下的所有文件和目錄拷貝到“ ADS1.2 安裝目 錄 ”即可,這個步驟只需 1 次,以后就可以直接使用該工程模板。 使用 LPC2300 專用工程模板建立工程啟動 ADS1.2 集成開發(fā)環(huán)境,點擊【 file 】菜單,選擇【 New】即彈出 New對話框,如 圖 3.27 所示。由于事先增加了 LPC2300 專用模板和其他模板。所以在工程模
22、板欄中多出幾 項工程模板選項。LPC2300專用工程模板說明如下:ARM Executale Image for LPC2300 :無操作系統(tǒng),所有代碼均編譯成ARM指令的工程模板。 用戶選擇相應(yīng)的工程模板建立一個工程, 如圖 3.28 所示為使用 ARME xecutale Image for LPC2300 工程模板建立一個工程。工程有 3 個生成目標: DebuginRAM、DebugInFlash 、 RelInFLASH. 工程模板已經(jīng)將相應(yīng)的編譯參數(shù)設(shè)置好了,直接使用即可。 工程模板的分散加載文件 mem_a.scf 、mem_b.scf 、mem_c.scf 、的堆棧和內(nèi)存大小
23、需要根據(jù)不同的芯片進行設(shè)置, LPC2366/68/78 和 LPC2364 的大小不一樣,用戶可以打開這 3 個文件根據(jù)芯片型號進行相應(yīng)修改; 選用 RellnFlash 目標時,將會對 LPC2300 芯片進行加密, 加密的芯片只能使用 ISP 進行芯片整片擦除后,才能恢復(fù)JTAG調(diào)試及 ISP 讀/ 寫操作。圖 3.28 使用 LPC2300 系列 ARM專用工程模板建立的工程4EasyJTAG-H仿真的安裝與應(yīng)用 EasyJTAG-H 簡介EasyJTAG-H 仿真器是一款新型的仿真器,目前,可以支持LPC2300系列 ARM7微控制器和部分 ARM9芯片,支持 ADS1.2 集成開發(fā)
24、環(huán)境,支持單步、全速及斷點等調(diào)試功能,支持 下載程序到片內(nèi) FLASH和特定型號的片外 FLASH,采用 ARM公司提出的標準 20 腳 JTAG仿真 調(diào)試接口。這款仿真器需要 H-JATAG軟件( 調(diào)試代理 ) 的支持。 H-JTAG 軟件安裝在 PC上運行安裝文件 H-JTAG.EXE,根據(jù)安裝提示完成安裝即可。安裝好的 H-JTAG軟件包含有 H-JTAG Server( 下文簡稱為 H-JTAG)和 H-Flasher ,在桌 面上有它們的快捷圖標。 運行程序 H-JTAG和 H-Flasher 后,用戶任務(wù)欄中將出現(xiàn) 3.29 所示 圖標。圖 3.29 H-JTAG 提示圖標 將計算
25、機并口與 EasyJTAG-H仿真器相連, 然后在將 EasyJTAG-H仿真器的 JTAG接口連 接到開發(fā)板上左上方的 CON,5 注意不要連接到右下方的JPI3 ,否則會造成短路,然后給開發(fā)板上電。 H-JTAG 配置 H-JTAG設(shè)置較簡單,只要進行以下兩步操作,其他采用默認即可。 單擊任務(wù)欄的 H 提示圖標,將看見 H-JTAG的主窗口,如圖 3.30 所示。單擊“放大 器”圖標按鈕后,能看見調(diào)試代理搜索到ARM內(nèi)核信息。圖 3.30 H-JTAG 主窗口 選擇【 Flasher 】 - 【 Aoto Download 】選擇自動下載,如圖 3.31 所示(正常情況 下,H-JTAG能
26、檢測并顯示 ARM內(nèi)核信息)。注意,在 Flash 中調(diào)試時必須選擇 “ Auto Download” 而在 RAM中調(diào)試可以不選擇。圖 3.31 打開自動下載功能 H-Flasher 配置H-Flasher 的配置,只需要選擇正確的 CPU型號,然后驗證( Check)通過即可。 單擊任務(wù)欄的 H-Flasher 提示圖標,確認目標板的 CPU 型號后,打開 H-Flasher 的 Flash Selection 選項,選擇正確的 CPU型號即可。如:開發(fā)板上的 CPU型號為 NXP公司 的 LPC2378,操作如圖 3.32 所示。圖 3.32 選擇 Flash 類型 驗證調(diào)試代理配置是否
27、正確, 打開 H-Flasher 的 Programming 選項單擊 Check 按鈕, 如圖 3.33 所示。如果正常,可以看到所使用的 Flash 芯片的型號,單擊 Check 按鈕時, H-Flasher 就會啟用當(dāng)前新的配置值。到此配置完成。圖 3.33 Flash 編程選項 EasyJTAG-H 仿真器的使用 將計算機并口與 EasyJTAG-H 仿真器相連,再將 EasyJTAG-H 仿真器的 JTAG接口連 接到開發(fā)板上左上方的 CON,5 并給開發(fā)板上電。然后打開 H-JTAG 軟件,單擊放大鏡圖標按鈕,如果正常就能檢測到芯片內(nèi)核信息。 然后可以最小化或關(guān)閉 H-JTAG和
28、H-FLASH窗口(注 意:不能使用 exit 菜單關(guān)閉)。 選擇 windoes 系統(tǒng)的【開始】 - 【程序】 - 【ARMd eveloper suite v1.2 】- 【AXD debugger 】啟動 AXD軟件。再 AXD軟件中,打開【 Options 】 - 【 Configure Target.】,彈出 choose target 對話框,單擊 ADD 添加仿真器的驅(qū)動程序,在添加文件窗口選擇如 D:Progarm FilesH-JTAG.dll ,如圖 3.34 所示,接著單擊“打開”即可(若已經(jīng)安裝,此 步省略)。圖 3.34 為 AXD添加 H-JTAG 驅(qū)動 添加完 H
29、-JTAG 驅(qū)動后選擇該驅(qū)動程序,如圖 3.35 所示,然后單擊 OK。圖 3.35 Choose Target 窗口 關(guān)閉 AXD 窗口,以后調(diào)試就直接在 ADS中打開一個工程,編譯鏈接通過后,單擊 Debug 或按下“ F5”即可啟動 AXD調(diào)試軟件,進行 JTAG仿真調(diào)試, AXD典型界面如圖 3.36 所示。圖 3.36 AXD 調(diào)試界面注意:如果工程文件的路徑中存在中文,進行AXD調(diào)試環(huán)境可能會出現(xiàn)錯誤。因此,建議工程路徑中不要包含中文(包含標點符號) 。 EasyJTAG-H 常見問題 在進行 AXD 仿真調(diào)試前,需要打開H-JTAG 檢測芯片內(nèi)核。同時要正確配置H-Flasher
30、 ,否則無法進入 AXD正常調(diào)試。 如果目標板沒有上電, 或者 JTAG仿真器沒有連接好, H-JTAG會出現(xiàn)錯誤, 如圖 3.37 所示,調(diào)試時將 SmartARM2300工控開發(fā)平臺的 ISP(JP5)跳線短接上,這樣可避免片內(nèi)程 序自動脫機運行。圖 3.37 H-JTAG 連接錯誤 如在 ADS 啟動 AXD仿真器調(diào)試時出現(xiàn)如圖 3.38 所示的錯誤,單擊“確定”按鈕, 然后會彈出 Load Session 對話框,如圖 3.39 所示。圖 3.38 啟動仿真時出錯圖 3.39 Load Session 窗口 此時不必選擇 Session 文件,直接單擊“取消” ,然后進入到 AXD調(diào)試
31、界面。點選 Option ” - “ Configure Interface”,如圖 3.40 所示。圖 3.40 點選配置窗口 在“ Action on close/restart”項,將“ Save and load default sessi ”前面的“”去掉,如圖 3.41 所示。 點擊“確定” ,關(guān)閉 AXD,在 ADS工程窗口中點擊“ Debug”進入 AXD調(diào)試環(huán)境,會 彈出如圖 3.42 所示對話框, 選擇 “H-JTAG”并點擊確定。 成功連接目標板后, 就進入了 AXD 進行仿真調(diào)試。圖 3.42 選擇“ H-JTAG”四實驗要求熟練 掌握 ADS1.2 集成 開發(fā)環(huán) 境的
32、工 程建立、 編輯與 調(diào)試功 能。了 解相關(guān) 的 SmartARM2300工控開發(fā)平臺硬件結(jié)構(gòu)。五實驗參考程序參考實驗二相關(guān)程序(使用 ARM Executable Image 模板建立工程, “ARM Linker ”設(shè) 置連接地址為 0x40000000 );或參考實驗三中的 GPIO輸出實驗程序(使用 ARM Executale Image for LPC2300 模板 建立工程,“ ARM Linker ”連接地址由分散加載文件自動設(shè)置)實驗二 LPC2300 開發(fā)過程及程序下載實驗一實驗?zāi)康氖煜?LPC2300 開發(fā)過程及程序下載。 二實驗設(shè)備及器件PC機 一臺SmartARM230
33、0工控開發(fā)平臺 一臺 三實驗內(nèi)容及步驟 將計算機并口與 EasyJTAG-H 仿真器相連, EasyJTAG-H 仿真器的 JTAG 接口連接到 SmartARM2300 工控開發(fā)平臺上左上方的CON,5 啟動 H-JTAG 和 H-FLASH 軟件,選擇 NXPLPC2378器件,并最小化窗口。 啟動 ADS1.2,使用 ARME xecutable Image 工程模板建立一個工程, 如圖 3.43 所示。圖 3.43 工程模板窗口 編寫一個匯編語言文件, 控制蜂鳴器每隔一定時間鳴叫一次, 并將文件添加到工程。 將 SmartARM2300工控開發(fā)平臺的 JP1 上的 P1.27 和 BE
34、EP連接, 參見圖 3.3 直流蜂 鳴器電路。 在工程窗口進行工程設(shè)置, 在“ Target Settings ”對話框,將 Post-linker 選擇 為 ARM formELF(ARM可執(zhí)行格式) ,如圖 3.44 所示。在“ ARM Linker ”對話框設(shè)置連接地址,在 Linktype 單選項選擇 Simple , 設(shè)置連接 地址為 0x40000000 (LPC2300 SRAM 的地扯),如圖 3.45 所示。其余 DebugRel Settings 采用默認設(shè)置。圖 3.44 Target Settings 設(shè)置窗口圖 3.45 ARM Linker 設(shè)置窗口 設(shè)置結(jié)束后點擊
35、工程窗口的“ Make”圖標按鈕,進行編譯連接;若編譯出錯,修改 源代碼,直至編譯連接通過。 當(dāng)工程編譯連接通過后, 在工程窗口中點擊 “ Debug”圖標按鈕, 啟動 AXD調(diào)試環(huán)境。 在 AXD窗口可運用單步運行、 全速運行和斷點設(shè)置等工具、 方法測試程序。 如程序功能達不 到要求,則返回修改源程序代碼,直至功能完全滿足要求。上面步驟編寫的程序在LPC2300 SRAM 運行滿足要求后,下面的步驟將程序下載至LPC2300 Flash ,脫機運行,構(gòu)成獨立系統(tǒng)。 關(guān)閉 AXD窗口, 返回工程設(shè)置。 在“ ARML inker ”對話框設(shè)置連接地址, 在 Linktype 單選項選擇“ Si
36、mple ”, 設(shè)置連接地址為 0x00000000 (LPC2300 Flash 的地扯),如圖 3.46 所示。圖 3.46 ARM Linker 設(shè)置窗口在“ ARMf romELF” 對話框, 在 Output format 中選擇“ Intel 32 bit Hex ”,在 Output file name中鍵入生成的 hex 文件名稱, 如“ T1.hex ”,注意一定要加上后綴 .hex, 如圖 3.47 所示。圖 3.47 ARM fromELF 設(shè)置窗口 設(shè)置好后, 點擊確定, 在工程的 “ touch ”欄中將所有的文件都 “ touch ”(打上鉤) , 如圖 3.48
37、所示。圖 3.48 touch 所有文件重新編譯將整個工程重新編譯后,在工程文件夾下的 DebugRel 文件夾下可以看到生成的“1. hex ”文件,如圖 3.49 所示。圖 3.49 生成的 hex 文件 使用隨機附帶的串口直通延長線, 將目標版的 UART0(CON6口 ) 和 PC的串口相連, 將 目標板的 ISP( JP5)短接,打開燒寫 FlashMegic 軟件(光盤里有 FlashMegic 的安裝源程 序,如未安裝,請先安裝此軟件) 。 按圖 3.50 所示設(shè)置 FlashMegic 軟件參數(shù)。圖 3.50 FlashMegic 軟件參數(shù)設(shè)置窗口Step1 設(shè)置波特率為 96
38、00,Device 為 LPC2378, 晶振頻率為 12.000000MHz ;Step2 點選“ Erase all Falsh +Code Rd prot ” 在燒寫新程序前,先擦除芯片內(nèi)原 來的程序;Step3 選擇需要燒寫的程序;Step4 options 中勾上“ Verify after Promgraning ”,這樣就可以燒寫程序后自動完 成校驗。在完成上述 Step1 至 Step4 FlashMegic 軟件參數(shù)設(shè)置后, 點擊 Step5 中的 “ Start “按 鈕,就開始對芯片進行燒寫并校驗 hex 文件。 關(guān)閉目標版的電源;斷開 EasyJTAG-H 仿真器與目標
39、扳的 JTAG 接口連接;斷開 UART0(CON6口) 與 PC的串行口連接;斷開目標板的 ISP(JP5)短接塊。重新給目標板上電, 目標板構(gòu)成獨立系統(tǒng),運行下載到 Falsh 中的程序,蜂鳴器每隔一定時間鳴叫一次。四實驗要求掌握 LPC2300 開發(fā)及程序下載過程。理解實驗參考程序,有關(guān)細節(jié)參考深入淺出 ARM7-LPC2300 (上冊)中的“系統(tǒng)控制模塊”及“通用輸入 /輸出口( GPIO)”部分。五實驗參考程序INCLUDE LPC23XX.INC ;/包含文件,在所建的工程目錄下須有LPC23XX.INC 文件SOUNDCON EQU 0X08000000 ;/P1.27 引腳控制
40、發(fā)聲CODE32AREA vectors,CODE,READONLYENTRYLDRPC, ResetAddr ;/LDRPC, UndefinedAddrLDRPC, SWI_AddrLDRPC, PrefetchAddrLDRPC, DataAbortAddrDCD0xb9206e50LDRPC, PC, #-0x120LDRPC, FIQ_AddrResetAddrDCD ResetInitUndefinedAddr DCD UndefinedSWI_AddrDCD SoftwareInterruptPrefetchAddr DCD PrefetchAbortDataAbortAddr
41、DCD DataAbortNouseDCD 0IRQ_AddrDCD 0ResetFIQ_AddrDCDFIQ_Handler異常向量表UndefinedB Undefined;/未定義指令異常SoftwareInterruptB SoftwareInterrupt ;/PrefetchAbortB PrefetchAbort ;/DataAbortB DataAbort ;/FIQ_HandlerB FIQ_Handler ;/ResetInitB MAIN ;/MAIN LDR R0,=SCS ;/MOV R1,#0X00000000STR R1,R0;/LDR R0,=PINSEL3ST
42、R R1,R0;/ P1LDR R0,=IO1DIRLDR R1,=SOUNDCONSTR R1,R0 ;/P1.27LOOP LDR R1,=SOUNDCON SSET LDR R0,=IO1SETSTR R1,R0 ;/P1.27BL DELYCSET LDR R0,=IO1CLRSTR R1,R0 ;/P1.27BL DELYB LOOPDELY MOV R7,#0X000FF000 ;/DLY1 SUBS R7,R7,#1BNE DLY1MOV PC,LRALIGNLTORGEND軟件中斷異常預(yù)取指中止異常數(shù)據(jù)中止異常快中斷復(fù)位轉(zhuǎn)主程序以下為主程序設(shè)置 SCS,置 P0,P1 為低速模
43、式引腳功能均為 GPIO引腳為輸出, P1 口其余引腳為輸入引腳為 1,不發(fā)聲引腳為 0,發(fā)聲延時子程序?qū)嶒炄?GPIO 輸出控制實驗實驗?zāi)康氖煜?GPIO功能及輸出控制的使用。實驗設(shè)備及器件PC機 一臺SmartARM2300工控開發(fā)平臺 一臺 三實驗原理及實驗內(nèi)容LPC2300系列 ARM具有 5 組通用輸入輸出: P0P4。對于 LPC2300系列 ARM來說,GPIO 分為“高速模式(增強型) ”和“低速模式(通用型) ”。其中: P0 和 P1 口既能夠使用“高速模式”操作也能夠使用“低速模式”來操作; P2、P3和 P4口,只能夠使用“高速模式”來操作。P0和 P1口能夠使用“低速
44、模式”操作主要是為了兼容LPC2300系列 ARM的早期型號。有關(guān)這兩種模式的詳細說明, 請參考深入淺出 ARM7 LPC2300系列 上冊中的通用輸入 / 輸出口一節(jié)。蜂鳴器是一種以一體化結(jié)構(gòu)的電子訊響器,采用直流或者交流供電,廣泛應(yīng)用于計算 機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中做 發(fā)聲器件。蜂鳴器通常使用中功率的三極管來驅(qū)動,如C8550 等。圖 3.51 為 SmartARM2300工控開發(fā)平臺蜂鳴器的驅(qū)動電路,此處直流蜂鳴器的驅(qū)動電壓為3.3V ,有 P1.27 控制,在實驗中通過短接跳線 JPI-9 ,連接 P1.27 與 BEEP引腳。圖
45、3.51 蜂鳴器控制電路由于蜂鳴器是線路板上的器件,因此,直接使用非隔離的方式驅(qū)動即可。當(dāng) P1.27 的 輸出低電平時,三極管 Q4 會進入飽和狀態(tài), VDD電壓加到了蜂鳴器上使之鳴叫;反之,當(dāng) P1.27 的輸出高電平時,三極管 Q4 會進入截止狀態(tài),蜂鳴器上的驅(qū)動電壓消失,蜂鳴器停 止鳴叫。1. 低速模式控制在使用 P1.27 控制蜂鳴器前, 需要先通過 “管腳連接寄存器” 將 P1.27 引腳設(shè)置為 GPIO, 接下來設(shè)置 GPIO的輸入 /輸出方式,由于使用低速模式,所以需要通過IO1DIR 寄存器將其設(shè)置為輸出模式,程序清單如下:PINSEL3 =0x00000000 ; / 設(shè)置
46、管腳連接 GPIO IO1DIR =BEEP; /設(shè)置 BEEP控制口為輸出在低速模式下, 使用 IO1CLR和 IO1SET 寄存器來控制 P1.27 引腳輸出低電平和高電平, 從而達到控制蜂鳴器鳴叫目的,程序清單如下:IO1SET =BEEP; /P1.27 輸出高電平,蜂鳴器停止蜂鳴/延時DelayNS(50);IO1DIR=BEEP; / P1.27DelayNS(50); / 延時輸出低電平,蜂鳴器蜂鳴2. 高速模式控制在 LPC2300系列 ARM中,所有的端口都可以通過高速模式來控制,其中,P2、P3 和 P4只能使用高速模式來控制。 要想通過高速模式來操作 P0和 P1端口,必
47、須在使用之前置位 “系 統(tǒng)控制和狀態(tài)寄存器( SCS)”中的“ GPIOM”位,程序清單如下: 如果 GPIOM=“0”,只能使用“低速模式”來操作P0 和 P1 端口; 如果 GPIOM=“1”,只能使用“高速模式”來操作P0 和 P1 端口。和 P1 端口連接到高速端口 設(shè)置 P1.27 管腳連接 GPIO 設(shè)置高速端口 P1.27 為輸出口無論使用高速模式還是低速模式, P1.27 都是作為 GPIO來使用的,因此,也需要設(shè)置 “管腳連接寄存器” ,但是設(shè)置引腳輸入 / 輸出模式時。 在高速模式下需要使用 FIO1DIR 寄存 器,程序清單如下:SCS =SCS|0x01; /P0PIN
48、SEL3 =PINSEL3&(0x03(27-16); /FIO1DIR =FIO1DIR|(127); /在高速模式下,使用 FIO1CLR和 FIO1SET寄存器來控制 P1.27 引腳輸出低電平和高電輸出高電平,蜂鳴器停止蜂鳴延時 輸出低電平,蜂鳴器蜂鳴延時/ 灌入電流為 4mA,短時間極限值為 40mA。平,從而達到控制蜂鳴器鳴叫的目的,程序清單如下: FIO1SET = 127;/ P1.2DelayNS(50);/FIO1DIR =127;/ P1.2DelayNS(50);/注意:LPC2300 系列 ARM的 I/O 引腳正常拉出 四實驗要求熟練掌握 GPIO功能及輸出控制的使
49、用方法。五實驗參考程序?qū)⒂嬎銠C并口與 EasyJTAG-H 仿真器相連, EasyJTAG-H 仿真器的 JTAG 接口連接到 SmartARM2300 工控開發(fā)平臺上左上方的 CON,5 啟動 H-JTAG 和 H-FLASH 軟件,選擇 NXP LPC2378 器件,并最小化窗口。使用 ARME xecutale Image for LPC2300工程模板建立工程, 根據(jù)任務(wù)編寫程序,并將程序文件添加到工程,然后編譯、調(diào)試。實驗三以后的實驗于此相 同,將不再綴述。實驗程序一、 GPIO輸出實驗蜂鳴器控制#include config.h#define BEEP (1 0; dly-)for
50、 (i = 0; i 50000; i+); * 函數(shù)名稱 : main* 函數(shù)功能 :用 P1.27 控制 BEEP,讓 BEEP鳴叫。 * 調(diào)試說明 :需將跳線 JP1-9 短接。*/int main(void)PINSEL3 = 0x00000000;IO1DIR = BEEP;/ 設(shè)置管腳連接 GPIO/ 設(shè)置 BEEP控制口為輸出while (1)IO1SET = BEEP; DelayNS(50);IO1CLR = BEEP;/ BEEP 停止蜂鳴/ BEEP 蜂鳴DelayNS(50); return (0); 實驗程序二、高速 GPIO輸出#include config.h#define BEEP (1 0; dly-)for (i = 0; i 50000; i+); /* 函數(shù)名稱 : main* 函數(shù)功能 :用
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025國際設(shè)備租賃合同(4)管理資料
- 2025年電梯媒體廣告發(fā)布合同
- 2024年醫(yī)用X射線增強電視系統(tǒng)項目資金籌措計劃書代可行性研究報告
- 2024年涂布助劑項目資金籌措計劃書代可行性研究報告
- 2025全包裝修合同樣本
- 2025汽車租賃合同范本協(xié)議書格式
- 2025基礎(chǔ)設(shè)施貸款合同范本
- 2025年學(xué)校食堂肉類采購合同
- 2025林場轉(zhuǎn)讓合同范文
- 2025江西省采購合同示范文本
- 于丹--莊子心得
- 2023年供貨方案 醫(yī)療器械供貨方案(四篇)
- 森林病蟲害防治自測練習(xí)試題與答案
- GB/T 3728-1991工業(yè)乙酸乙酯
- GB/T 34949-2017實時數(shù)據(jù)庫C語言接口規(guī)范
- GB/T 3452.1-2005液壓氣動用O形橡膠密封圈第1部分:尺寸系列及公差
- GB/T 23641-2018電氣用纖維增強不飽和聚酯模塑料(SMC/BMC)
- 2023年國際焊接工程師考試IWE結(jié)構(gòu)試題
- 精華版-趙武靈王胡服騎射課件
- 《高等教育心理學(xué)》《高等教育學(xué)》樣題
- 高等學(xué)校英語應(yīng)用能力考試〔B級〕真題及答案
評論
0/150
提交評論