嵌入式系統(tǒng)開發(fā)環(huán)境認識、匯編指令實驗電子132黎杰華1319200055_第1頁
嵌入式系統(tǒng)開發(fā)環(huán)境認識、匯編指令實驗電子132黎杰華1319200055_第2頁
嵌入式系統(tǒng)開發(fā)環(huán)境認識、匯編指令實驗電子132黎杰華1319200055_第3頁
嵌入式系統(tǒng)開發(fā)環(huán)境認識、匯編指令實驗電子132黎杰華1319200055_第4頁
嵌入式系統(tǒng)開發(fā)環(huán)境認識、匯編指令實驗電子132黎杰華1319200055_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)實驗報告開課學院及實驗室:電子樓 618 室 2016年 5 月 23 日學院物理與電子工程學院年級、專業(yè)、班電子132姓名黎杰華學號1319200055實驗課程名稱嵌入式系統(tǒng)實驗II成績實驗項目名稱嵌入式系統(tǒng)開發(fā)環(huán)境認識、匯編指令實驗指導老師揭海1、 實驗目的熟悉ADS嵌入式系統(tǒng)開發(fā)環(huán)境和常用匯編指令,編寫簡單的匯編程序。二、實驗內(nèi)容及原理為了使用CodeWarrior來創(chuàng)建一個應用程序,一般須創(chuàng)建許多文件來構成一個工程(Project)。該工程的設置和所有這些文件的指針都被存放在一個工程文件中。這些設置包括編譯和鏈接設置、源文件、庫文件以及它們之間用于產(chǎn)生最終程序的相互關系??梢?/p>

2、將這個工程文件看作該工程的大腦:它保存了所有文件相互依存的關系并知道如何將它們組合成為一個可用的應用程序。1、 運行CodeWarrior for ARM Developer Suite點擊菜單File/New或工具欄,新建一個工程(project)圖 Error! No text of specified style in document.1 新建工程對話框在Location指定工程存儲路徑,在Project name中輸入工程名稱,確定后CodeWarrior將在指定位置創(chuàng)建與工程名稱同名的文件夾,并在其中創(chuàng)建同名的工程文件,后綴為.mcp。圖 Error! No text of spe

3、cified style in document.2 顯示工程信息的工程窗口(圖示為空的情況)2、 編輯源代碼點擊工具欄的,新建文本文件;或者用其它文本編輯器(Notepad或EditPlus等),輸入以下代碼:COUNT EQU 0x40003100 AREA Example1,CODE,READONLY ENTRY CODE32START LDR R1,=COUNT MOV R0,#0 STR R0,R1LOOP LDR R1,=COUNT LDR R0,R1 ADD R0,R0,#1 CMP R0,#10 MOVHS R0,#0 STR R0,R1 B LOOP END將文件保存在前面新

4、建的工程的文件夾中,保存時注意要輸入適當?shù)臄U展名(.s、.c或.h等)。3、 添加程序文件至工程點擊菜單Project / Add Files或在工程窗口空白處右鍵,在出現(xiàn)的對話框中選擇前面保存的程序源文件。如果有多個文件,則重復本步驟直至所需文件全部添加進工程中。4、 編譯和鏈接在正式開始編譯源代碼之前,首先定制 CodeWarrior 的編譯方式。圖 Error! No text of specified style in document.3 定制 CodeWarrior 的編譯方式在出現(xiàn)的對話框中(如圖1-4),點擊左邊列表框內(nèi)Language Settings中的ARM Assemb

5、ler,在右邊的Target選項卡,設定合適的處理器內(nèi)核型號。如果需要,對ARM C Compiler、ARM C+ Compiler、Thumb C Compiler和Thumb C+ Compiler都可以做類似設置。點擊OK或Apply使設置生效。圖 Error! No text of specified style in document.4 編譯方式設置對話框點擊菜單Project / Make ,或工程窗口中的,或按F7,編譯工程。在圖1-5所示的窗口中可以看到是否工程是否有錯誤。若有,雙擊某個錯誤即可定位到錯誤位置進行修改。圖 Error! No text of specifie

6、d style in document.5 編譯結果窗口5、 調試(Debug)調試就是在的程序代碼中找到一個問題并著手去解決它的過程。不管是誰,在編程時都難免出現(xiàn)一些輸入或程序邏輯上的錯誤,這個問題可能只是一個輸入上的小錯誤或者只是一個變量用錯了,但是因為這個錯誤的存在使得你的程序無法實現(xiàn)預期的功能。有時候會更糟糕,以致機器都崩潰了。這時就必須借助調試來解決問題。點擊菜單Project / Debug ,或工程窗口中的,或按F5,啟動AXD調試環(huán)境。點擊菜單Options / Configure Target ,選擇合適的仿真器。本實驗沒有連接真正的硬件仿真器,因此選擇ARMUL。圖1-6中

7、后兩項需要首先安裝相應的仿真器驅動程序,然后點擊Add,在驅動程序安裝文件夾中找到相應的dll文件,添加進來。圖 Error! No text of specified style in document.6 仿真器設置對話框若AXD啟動時出現(xiàn)錯誤對話框,應當首先檢查此處仿真器選擇是否有誤。雙擊某個仿真器,在出現(xiàn)的對話框(如圖1-7)中可以設置處理器內(nèi)核型號。圖 Error! No text of specified style in document.7 仿真器設置對話框一般情況下,可以點擊工具欄中的和 ,打開寄存器和存儲器監(jiān)視窗口。雙擊某個寄存器或存儲器單元可以修改其值;右鍵選擇Forma

8、t,可以改變顯示進制;對于存儲器可以輸入要監(jiān)視的單元地址并回車,有多個選項卡,可以同時監(jiān)視多片存儲區(qū);右鍵選擇Size可以設置按字節(jié)、半字或字顯示內(nèi)容。接下來點擊單步運行程序,或者在某條語句標號左邊雙擊設置斷點后,點擊運行程序,觀察寄存器和存儲器內(nèi)容是否符合預期,進而判斷錯誤位置。本實驗設定監(jiān)視寄存器R0、R1和0x40003100存儲單元。新建工程,輸入以下代碼:X EQU 9n EQU 8 AREA Example3,CODE,READONLY ENTRY CODE32START LDR SP,=0x40003F00 LDR R0,=X LDR R1,=n BL POW;調用子程序POWH

9、ALT B HALTPOW STMFD SP!,R1-R12,LR MOVS R2,R1;R2作為計數(shù)器 MOVEQ R0,#1;若n為0,結果為1 BEQ POW_END;然后立即返回HALT MOV R1,R0 SUB R2,R2,#1POW_L1 BL DO_MUL;子程序嵌套調用,所以前面要將LR保存在堆棧中 SUBS R2,R2,#1 BNE POW_L1;若計數(shù)器不為0,執(zhí)行一次乘法運算POW_END LDMFD SP!,R1-R12,PC;返回HALTDO_MUL MUL R0,R1,R0 MOV PC,LR END編譯后調試,監(jiān)視寄存器R0、R1、R2、R13(SP)、R14(

10、LR)、R15(PC)以及存儲器0x40003EC0,單步或斷點運行,觀察各處值的變化,分析其原因。三、使用儀器、器材1、硬件平臺:無。2、軟件開發(fā)工具:ADS集成開發(fā)環(huán)境。 四、實驗步驟1、運行CodeWarrior for ARM Developer Suite2、編輯源代碼3、添加程序文件至工程4、編譯和鏈接5、調試(Debug)五、實驗過程原始數(shù)據(jù)記錄輸入程序1:COUNT EQU 0x40003100 AREA Example1,CODE,READONLY ENTRY CODE32START LDR R1,=COUNT MOV R0,#0 STR R0,R1LOOP LDR R1,=

11、COUNT LDR R0,R1 ADD R0,R0,#1 CMP R0,#10 MOVHS R0,#0 STR R0,R1 B LOOP END程序1現(xiàn)象: R0自增,每次自增1,到10時變?yōu)?繼續(xù)自增;輸入程序2:X EQU 9n EQU 8 AREA Example3,CODE,READONLY ENTRY CODE32START LDR SP,=0x40003F00 LDR R0,=X LDR R1,=n BL POW;調用子程序POWHALT B HALTPOW STMFD SP!,R1-R12,LR MOVS R2,R1;R2作為計數(shù)器 MOVEQ R0,#1;若n為0,結果為1 BEQ POW_END;然后立即返回HALT MOV R1,R0 SUB R2,R2,#1POW_L1 BL DO_MUL;子程序嵌套調用,所以前面要將LR保存在堆棧中 SUBS R2,R2,#1 BNE POW_L1;若計數(shù)器不為0,執(zhí)行一次乘法運算POW_END LDMFD SP!,R1-R12,PC;返回HALTDO_MUL MUL R0,R1,R0 MOV PC,LR END程序2現(xiàn)象:存儲器從0x40003F00開始往前存儲著R1-R12,LR的數(shù)據(jù),最終R0的值為9的8次方。六、實驗結果及分

溫馨提示

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

評論

0/150

提交評論