欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      川大電氣學院自動化嵌入式實驗報告

      時間:2019-05-15 06:46:07下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《川大電氣學院自動化嵌入式實驗報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《川大電氣學院自動化嵌入式實驗報告》。

      第一篇:川大電氣學院自動化嵌入式實驗報告

      嵌入式系統(tǒng)實驗報告

      嵌入式實驗報告

      嵌入式實驗報告

      一、實驗名稱:匯編指令實驗以及程序下載運行實驗

      二、實驗器材:ARM2410嵌入式開發(fā)板。

      PC機操作系統(tǒng)Win98、Win2000、WinXP。

      AD1.2集成開發(fā)環(huán)境。超級終端通訊程序。

      三、實驗目的:

      1.了解ARM2410基本原理并且掌握基本的程序運行下載技巧 2.熟悉ADS1.2 軟件開發(fā)環(huán)境;

      3.掌握ARM920T 匯編指令的用法,并能編寫簡單的匯編程序; 4.掌握指令的條件執(zhí)行和使用LDR/STR 指令完成存儲器的訪問。

      四、實驗內容:

      1、匯編語言實驗: 實驗步驟:

      ① 啟動ADS1.2,使用ARM Executable Image工程模板建立一個工程arm.mcp ② 建立匯編源文件arm1.s,編寫實驗程序,然后添加到工程中。③ 設置工程連接地址RO Base為0x3000000,RW Base為0x30003000,設置options中的調試地址 Image entry point 為0x30000000。④ 編譯連接工程,選擇Project-Debug,啟動AXD進行軟件仿真調試。⑤ 打開寄存器串口,選擇Current監(jiān)視R0,R1的值。打開存儲器觀察窗口,設置觀察地址為0x30003100,顯示方式Size為32Bit,監(jiān)視0x30003100地址上的值。實驗程序:

      ① 觀察寄存器和0x30003100地址上值的變化

      ? 第1頁

      嵌入式實驗報告

      COUNT EQU 0x30003100

      AREA Example1,CODE,READONLY

      ENTRY

      CODE32 START LDR R1,=COUNT

      MOV R0,#0

      STR R0,[R1] LOOP LDR R1,=COUNT

      LDR R0,[R1]

      ADD R0,R0,#1

      CMP R0,#10

      MOVHS R0,#0

      STR R0,[R1]

      B LOOP

      END ② n個X相乘 X EQU 9 N EQU 8

      ARAE EXAMPLE3 CODE, READONLY

      ENTRY

      CODE32 START LDR SP,=0x30003F00

      ? 第2頁

      嵌入式實驗報告

      LDR R0,=X

      LDR R1,=N

      BL POW HALT B HALT POW

      STMFD SP!,{R1-R2,LR}

      MOVS R2,R1

      MOVEQ R0,#1

      BEQ POW_END

      MOV R1,R0

      SUB R2,R2,#1 POW_L1 BL DO_MUL

      SUBS R2,R2,#1

      BNE POW_L1 POW_END LDMFD SP!,{R1-R12,PC} DO_MUL MUL R0,R1,R0

      MOV PC,LR

      END

      ? 第3頁

      嵌入式實驗報告

      ③ 計算1+2+3+…+(N-1)+N 的值(N>0)IMPORT |Image$$RO$$Limit| IMPORT |Image$$RW$$Base| IMPORT |Image$$ZI$$Base| IMPORT |Image$$ZI$$Limit| IMPORT Main AREA Start,CODE,READONLY ENTRY

      ? 第4頁

      嵌入式實驗報告

      CODE32 Reset LDR SP,=0x40003f00 LDR R0,=|Image$$RO$$Limit| LDR R1,=|Image$$RW$$Base| LDR R3,=|Image$$ZI$$Base| CMP R0,R1 BEQ LOOP1 LOOP0 CMP R1,R3 LDRCC R2,[R0],#4 STRCC R2,[R1],#4 BCC LOOP0 LOOP1 LDR R1,=|Image$$ZI$$Limit| MOV R2,#0 LOOP2 CMP R3,R1 STRCC R2,[R3],#4 BCC LOOP2 B Main END 實驗截圖:

      ? 第5頁

      嵌入式實驗報告

      ? 第6頁

      嵌入式實驗報告

      2、程序下載運行實驗 實驗步驟:

      ① 接好試驗箱電源,并將計算機的串口接到開發(fā)板上。② 運行超級終端,選擇正確的串口號。

      ③ 開起試驗箱,在超級終端出現(xiàn)“按ENTER鍵進入BIOS… 2”提示 ④ 按照提示按ENTER進入BIOS,選擇--“下載文件到ARM運行”這一項,鍵入回車,出現(xiàn)提示“請使用超級終端發(fā)送文件。

      ⑤ 點擊超級終端的“傳送”菜單,在下拉菜單中選擇“發(fā)送文件”,選擇編譯好的文件進行發(fā)送。

      ⑥ 當出現(xiàn)是否運行下載的程度的提示時,鍵入Y。

      ? 第7頁

      嵌入式實驗報告

      用ADS1.2集成開發(fā)環(huán)境對程序進行編譯可生成.bin文件,先生成文本文件,再通過編碼轉換工具轉化成bin文件。

      五、I/O 接口實驗 實驗步驟:

      1.參照模板,新建一個工程GPIO.mcp,添加相應的文件,并修改GPIO的工程設置;

      2.創(chuàng)建Main.c 文件,并加入到工程文件GPIO.mcp中; 3.為Main.c 文件的主任務maintask 添加如下的語句:

      #define GPIOLED_MARK(Led)(rGPBDAT =(rGPBDAT & ~0x1e0)|(~(Led & 0x1e0)))void APP_vMain(void){ CONSOL_Printf(“n [GPIOLED 實驗]n”);

      while(1){ GPIOLED_MARK(GPIOLED0);// 燈亮 DelayLoop(2500);//延遲250ms GPIOLED_MARK(GPIOLED1);DelayLoop(2500);GPIOLED_MARK(GPIOLED2);DelayLoop(2500);GPIOLED_MARK(GPIOLED3);DelayLoop(2500);}

      ? 第8頁

      嵌入式實驗報告

      4.編譯GPIO工程;

      5.下載程序并運行,觀察結果。

      6.注意接上仿真器,并保持 S1至右側,程序從線性 Flash啟動。本指導書附帶的光

      盤里面的Sample 目錄下的程序可以直接運行,打開相應的.mcp 文件,在Targets 中選擇

      DebugRel即可。讀者也可以修改程序,以觀察不同的實驗效果,這里要選擇 Debug,調用 AXD來調試,并注意Debug 中的設置(可以參考Samples的程序中DebugRel下的相應設置)。

      直接Copy其中的程序修改并Debug,有可能出現(xiàn)Error提示錯誤,這時可以重新建立工程,加入.c 等文件,或者在 PROJECT 選項里面單擊 Remove Object Code?,再重新

      Debug/DebugRel。

      五、心得體會:

      在嵌入式的學習過程中讓我了解了什么是嵌入式系統(tǒng)。它就是以應用為中心以計算機技術為基礎軟硬件可定制適用于不同應用場合對功能、可靠性、成本、體積、功耗有嚴格要求的計算機系統(tǒng)。他一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)、用戶應用程序四個部分組成用于實現(xiàn)對其他設備的控制、監(jiān)視或管理功能。嵌入式系統(tǒng)已經應用于科學研究、工業(yè)控制、軍事技術、交通通信、醫(yī)療衛(wèi)生、消費娛樂等領域人們日常使用的手機、PDA、汽車、智能家電、GPS等均是嵌入式系統(tǒng)的典型代表。

      學期開始,我開始學習《嵌入式系統(tǒng)》,由于初次接觸嵌入式系統(tǒng),感覺蠻難的,所以收獲不是很大,慢慢自己通過查資料等了解到了嵌入式的一些基本知識及應用領域。嵌入式系統(tǒng)是以應用為中心,以微電子技術、控制技術、計算機技術和通訊技術為基礎,強調軟硬件的協(xié)同性、整合性和可剪裁性,并能滿足目標應用對功能、可靠性、成本、體積、功耗等方面有嚴格要求的一種專用計算機系統(tǒng)。嵌入式微處理器對實時多任務有很強的支持能力,能完成多任務并且有較短的中斷響應時間,從而使內部的代碼和實時內核的執(zhí)行時間減少到最低限度。具有功能很強的臨界存儲區(qū)保護功能。這是由于嵌入式系統(tǒng)的軟件結構已模塊化,而為了避免在軟件模塊之間出現(xiàn)錯誤的交叉作用,需要設計強大的存儲區(qū)保

      ? 第9頁

      嵌入式實驗報告

      護功能,同時也有利于軟件診斷??蓴U展的處理器結構,以便能迅速地開發(fā)出滿足各種應用需求的高性能嵌入式微處理器。嵌入式微處理器內部通常包含專用調試電路,外部有JTAG邊界掃描接口供調試下載使用。

      在了解了基礎知識之后,開始進行上機操作,當然,其中遇到很多的難題,很多東西都是第一次接觸,完全要憑借自己去摸索練習。其中的困難可想而知。然而堅持就是勝利,牙一咬眼一閉堅持做下去,而通過本次實驗,我感覺收獲還是蠻多的。通過實驗和理論課的學習,讓我進一步地加深了對嵌入式系統(tǒng)的認識,對其軟硬件的特點都有了一定的了解。了解了ARM微處理器在工業(yè)控制領域、無線通訊領域、網絡應用、消費類電子產品、成像和安全產品等領域的應用。通過實驗也讓我對自己提出了新的要求,在擁有基本知識的情況下,對嵌入式系統(tǒng)進行更加深入的學習和研究。

      ? 第10頁

      第二篇:嵌入式實驗報告

      實驗一 ARM匯編語言程序設計

      一、實驗目的

      1.了解IAR Embedded Workbench 集成開發(fā)環(huán)境 2.掌握ARM匯編指令程序的設計及調試

      二、實驗設備

      1.PC操作系統(tǒng)WIN98或WIN2000或WINXP,ADSI.2集成開發(fā)環(huán)境,仿真驅動程序

      三、實驗內容

      1.熟悉IAR Embedded Workbench 集成開發(fā)環(huán)境

      2.理解下列程序,新建工程,加入下面的程序,并觀察實驗結果,解釋程序實現(xiàn)的功能

      分析:該程序實現(xiàn)的功能是程序功能:Y = A*B+C*D+E*F 程序代碼:

      AREA Examl, CODE,READONLY;定義一個代碼段 ENTRY

      ;程序入口

      MOV R0,#0;設置R0寄存器的值為0 MOV R8,#0;設置R8寄存器的值為0 ADR R2,N;將R2寄存器的值設為數據域N的地址 LDR R1,[R2];將以R2的值為地址的數據讀入R1 MOV R2,#0;設置R2的值為0 ADR R3,C;將R3寄存器的值設為數據域C的地址 ADR R5,X;將R5寄存器的值設為數據域X的地址 LOOP LDR R4,[R3,R8];將R3+R8的數據讀入R4 LDR R6,[R5,R8];將R5+R8的數據讀入R6 MUL R9,R4,R6;R9 = R4*R6 ADD R2,R2,R9;R2 = R2+R9 ADD R8,R8,#4;R8 = R8+4 ADD R0,R0,#1;R0 = R0+1 CMP R0,R1;比較R0和R1的值 BLT LOOP;R0

      執(zhí)行結果如下:

      3.實現(xiàn)1+2+3+4+····+100,求的值,并保存在地址0x90018的地址里面

      程序代碼:

      MOV R0,#100;設置R0寄存器的值為100 LDR R2,=0X90018;設置R2寄存器指向地址0x90018 MOV R1,#0;設置R1的值為0 MOV R3,#0;設置R3的值為0 LOOP ADD R3,R3,R0;R3 = R3+R0 SUB R0,R0,#1;R0 = R0-1 CMP R0,R1;將R0和R1的值比較

      BNE LOOP;不相等的話繼續(xù)執(zhí)行循環(huán)

      STR R3,[R2];將R3的值裝入到R2指向的地址塊中。END 程序執(zhí)行結果:程序執(zhí)行完在0x90018內存入的數據是0x13ba即5050

      實驗二 ARM匯編語言程序設計

      一、實驗目的

      1.了解ARM匯編語言的基本框架,學會使用ARM的匯編語言編程; 2.掌握ARM匯編指令中的堆棧指令的操作,以及存儲器的裝載指令操作。

      二、實驗設備 1.PC操作系統(tǒng)WIN98或WIN2000或WINXP,ADS1.2.集成開發(fā)環(huán)境,仿真器驅動程序。

      三、實驗內容

      1.理解下列程序,新建工程,加入下面的程序,并觀察實驗結果

      程序代碼:

      x EQU 15;定義常量x=15 y EQU 61;定義常量y=61 stack_top EQU 0X1000;定義堆棧棧頂地址為0x1000 ENTRY;程序入口處

      MOV sp,#stack_top;將堆棧指針指向棧頂 MOV r0,#x;將x的值放入r0 STR r0,[sp];將r0的值壓入堆棧 MOV r0,#y;將y的值放入r0 LDR r1,[sp];將x的值放入r1 ADD r0,r0,r1;r0 = r0+r1 STR r0,[sp];將r0的值裝入堆棧 Stop;B stop;程序結果為:r1 = x+y = 0x6D

      2.編寫程序循環(huán)R4~R11進行累加8次賦值,R4~R11初始值是1~8,每次操作后把R4~R11的內容放到SP棧中,SP初始設置為0x800,最后把R4~R11用LDMFD指令清空為0

      程序代碼如下: X EQU 1;定義常量x = 1 stack_top EQU 0X800;定義棧頂地址 ENTRY;MOV SP,#stack_top;將棧頂地址指向0x800 MOV R4,#1;設置R4 = 1 MOV R5,#2;設置R5 = 2 MOV R6,#3;設置R6 = 3 MOV R7,#4;設置R7 = 4 MOV R8,#5;設置R8 = 5 MOV R9,#6;設置R9 = 6 MOV R10,#7;設置R10 = 7 MOV R11,#8;設置R11 = 8 LOOP ADD R4,R4,#x;R4累加1 ADD R5,R5,#x;R5累加1 ADD R6,R6,#x;R6累加1 ADD R7,R7,#x;R7累加1 ADD R8,R8,#x;R8累加1 ADD R9,R9,#x;R9累加1 ADD R10,R10,#x;R10累加1 ADD R11,R11,#x;R11累加1 STMIA SP!,{R4-R11};將R4-R11的值壓入堆棧

      CMP R4,#9;比較R4和9的大小

      BLT LOOP;R4 < 9繼續(xù)執(zhí)行循環(huán)

      LDMFD SP!,{R4-R11};將R4-R11清零 END;實驗結果:主要實現(xiàn)將數據2-9,3-10,4-11……9-16壓入堆棧(初始地址是0x800處開始),最后將R4-R11全部清零。

      3.更改實驗中1中的X,Y的值,觀察期結果 程序代碼:

      x EQU 20 y EQU 120 stack_top EQU 0X1000 ENTRY MOV sp,#stack_top MOV r0,#x STR r0,[sp] MOV r0,#y LDR r1,[sp] ADD r0,r0,r1 STR r0,[sp] Stop B Stop END 程序結果為:r0 = x+y = 140 = 0X8C

      實驗三 ARM匯編語言程序設計

      一、實驗目的

      1.了解ARM匯編語言的基本框架,學會使用ARM的匯編語言編程

      2.掌握ARM匯編的存儲器加載/存儲指令,及if條件、循環(huán)、循環(huán)及循環(huán)的匯編實現(xiàn)

      二、實驗設備

      1.PC操作系統(tǒng)WIN98或WIN2000或WINXP,ADS1.2集成開發(fā)環(huán)境,仿真器驅動程序

      三、實驗內容

      1.理解下列程序,新建工程,加入下面的程序,并觀察實驗結果 程序代碼:

      Num EQU 20;定義常量Num = 20 START;LDR r0,=src;將src數據塊的開始地址存入r0中 LDR r1,=dst;將dst數據塊的開始地址存入r1中 MOV r2,#Num;設置r2的值為20 MOV sp,#0x400;堆棧指針sp指向0x400 blockcopy;MOVS r3,r2,LSR #3;將r2左移3位移入r3并且影響標志位 BEQ copywords;結果為0的話跳轉到copywords STMFD SP!,{r4-r11};將r4-r11的值入棧 octcopy;LDMIA r0!,{r4-r11};將src的前8個字數據存入讓r4-r11 STMIA r1!,{r4-r11};將r4-r11中的數據放入dst數據塊中 SUBS r3,r3,#1;r3 = r3-1 BNE octcopy;結果不為0跳轉到octcopy LDMFD SP!,{R4-R11};恢復原來的r4-r11 copywords;ANDS r2,r2,#7;r2 = r2&7 BEQ stop;結果為0跳轉到stop wordcopy;LDR r3,[r0],#4;將r0指向的字數據放入r3中,r0 = r0+4 STR r3,[r1],#4;將r3中的數據存入到dst數據塊中,r1 = r1+4 SUBS r2,r2,#1;r2 = r2-1 BNE wordcopy;不為0跳轉到wordcopy處 stop;B stop;src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4;dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;END;程序結果:將src的數據全部存入到dst中

      2.新建工程,并自行編寫程序,分別使用LDR,STR,LDMIA,STMIA操作,實現(xiàn)對某段連續(xù)存儲單元寫入數據,并觀察結果 程序代碼:

      MOV R4,#1;設置r4 = 1; MOV R5,#2;設置r5 = 1; MOV R6,#3;設置r4 = 1;

      LDR R0,=dst;R0保存dst的首地址

      STR R4,[R0];將r4的值裝入r0執(zhí)行的內存中

      STR R5,[R0,#4];將r5的值裝入r0+4執(zhí)行的內存中 STR R6,[R0,#8];將r6的值裝入r0+8執(zhí)行的內存中 LDR R7,=src;R0保存src的首地址

      LDMIA R7,{R8-R10};將r7執(zhí)行的地址的數據讀入r8=r10 LDR R3,=N;r3保存N的首地址

      STMIA R3!,{R8-R10};將r8-r10裝入r3指向的內存 N DCD 0,0,0 src DCD 1,2,3 dst DCD 0,0,0 END 程序結果:熟悉使用LDMIA,STMIA和LDR,STR指令

      3.使用ARM匯編指令實現(xiàn)if條件執(zhí)行,使用ARM匯編指令實現(xiàn)for條件執(zhí)行,使用ARM匯編指令實現(xiàn)while條件執(zhí)行,使用ARM匯編指令實現(xiàn)do…while條件執(zhí)行。程序代碼:

      實現(xiàn)if條件: MOV R0,#1 MOV R1,#2 CMP R0,R1 BGT LOOP1 BLT LOOP2 LOOP1 MOV R3,R0 LOOP2 MOV R3,R1 END 程序結果:

      實現(xiàn)for和while條件:

      MOV R1,#1 MOV R3,#0 MOV R2,#101;LOOP ADD R3,R1,R3 ADD R1,R1,#1 CMP R1,R2 BLT LOOP END 程序結果:

      實現(xiàn)do…while條件:

      MOV R0,#1 MOV R1,#100 MOV R3,#0 LOOP CMP R0,R1 BGT STOP ADD R3,R0,R3 ADD R0,R0,#1 B LOOP STOP END 程序結果:

      實驗四 基于ARM的C語言程序設計

      一、實驗目的

      1.了解ARM C語言的基本框架,學會使用ARM的C語言編程。2.掌握C語言和匯編語言編程的相互調用。

      二、實驗設備

      1.EL-ARM-830教學實驗箱,PentiumII以上的PC機,仿真器電纜。

      三、ARM C語言簡介與使用規(guī)則

      1.ARM使用C語言編程是大勢所趨

      在應用系統(tǒng)的程序設計中,若所有的編程任務均由匯編語言來完成,其工作量巨大,并且不宜移植。由于ARM的程序執(zhí)行速度較高,存儲器的存儲速度和存儲量也很高,因此,C語言的特點充分發(fā)揮,使得應用程序的開發(fā)時間大為縮短,代碼的移植十分方便,程序的重復使用率提高,程序架構清晰易懂,管理較為容易等等。因此,C語言的在ARM編程中具有重要地位。

      2.ARM C語言程序的基本規(guī)則

      在ARM程序的開發(fā)中,需要大量讀寫硬件寄存器,并且盡量縮短程序的執(zhí)行時間的代碼一般使用匯編語言來編寫,比如ARM的啟動代碼,ARM的操作系統(tǒng)的移植代碼等,除此之外,絕大多數代碼可以使用C語言來完成。

      C語言使用的是標準的C語言,ARM的開發(fā)環(huán)境實際上就是嵌入了一個C語言的集成開發(fā)環(huán)境,只不過這個開發(fā)環(huán)境和ARM的硬件緊密相關。

      在使用C語言時,要用到和匯編語言的混合編程。當匯編代碼較為簡潔,則可使用直接內嵌匯編的方法,否則,使用將匯編文件以文件的形式加入項目當中,通過ATPCS的規(guī)定與C程序相互調用與訪問。

      ATPCS,就是ARM、Thumb的過程調用標準(ARM/Thumb Procedure Call Standard),它規(guī)定了一些子程序間調用的基本規(guī)則。如寄存器的使用規(guī)則,堆棧的使用規(guī)則,參數的傳遞規(guī)則等。

      在C程序和ARM的匯編程序之間相互調用必須遵守ATPCS。而使用ADS的C語言編譯器編譯的C語言子程序滿足用戶指定的ATPCS的規(guī)則。但是,對于匯編語言來說,完全要依賴用戶保證各個子程序遵循ATPCS的規(guī)則。具體來說,匯編語言的子程序應滿足下面3個條件:

      ● 在子程序編寫時,必須遵守相應的ATPCS規(guī)則; ● 堆棧的使用要遵守相應的ATPCS規(guī)則; ● 在匯編編譯器中使用-atpcs選項。基本的ATPCS規(guī)定,請詳見相關技術文檔。

      匯編程序調用C程序

      匯編程序的設置要遵循ATPCS規(guī)則,保證程序調用時參數正確傳遞。在匯編程序中使用IMPORT偽指令聲明將要調用的C程序函數。在調用C程序時,要正確設置入口參數,然后使用BL調用。

      C程序調用匯編程序

      匯編程序的設置要遵循ATPCS規(guī)則,保證程序調用時參數正確傳遞。

      在匯編程序中使用EXPORT偽指令聲明本子程序,使其他程序可以調用此子程序。在C語言中使用extern關鍵字聲明外部函數(聲明要調用的匯編子程序)。

      在C語言的環(huán)境內開發(fā)應用程序,一般需要一個匯編的啟動程序,從匯編的啟動程序,跳到C語言下的主程序,然后,執(zhí)行C程序,在C環(huán)境下讀寫硬件的寄存器,一般是通過宏調用,在每個項目文件的Startup44b0/INC目錄下都有一個44b.h的頭文件,那里面定義了所有關于44B0的硬件寄存器的宏,對宏的讀寫,就能操作44B0的硬件。

      具體的編程規(guī)則同標準C語言。

      四、實驗內容

      1、理解下列程序,新建工程,加入下面的程序,并觀察實驗結果。程序代碼:

      /*實現(xiàn)5個數的相加*/ int sum5(int a,int b,int c,int d,int e){ return(a+b+c+d+e);};匯編語言

      IMPORT sum5;聲明調用c函數 CALLSUMS STMFD SP!,{LR};將LR寄存器入棧 MOV R0,#1;r0 = 1 ADD R1,R0,R0;r1 = 2 ADD R2,R1,R0;r2 = 3 ADD R3,R1,R2;r3 = 5 STR R3,[SP,#-4]!;將r3的值入棧當做第五個參數 ADD R3,R1,R1;R3 = R3+R1=4 BL sum5;調用sum5 ADD SP,SP,#4;sp = sp+4 LDMFD SP,{PC} 程序結果:實現(xiàn)了i+2i+3i+4i+5i的匯編語言調用c語言

      2、用匯編語言實現(xiàn)1到100累加的函數,用C言語編寫主程序,在主程序中調用所編寫的匯編函數 程序代碼:

      NAME asmfile PUBLIC sum5 SECTION.intvec : CODE(2)CODE32 sum5 ENTRY MOV R1,#1 MOV R2,#0 sum6 ADD R2,R1,R2 ADD R1,R1,#1 CMP R1,R0 BLE sum6 MOV PC,LR END

      #include extern void sum5(int x);int main(void){ const int n = 100;sum5(n);return(0);} 程序結果:

      總結

      本次實驗主要是通過對ARM的各種指令進行操作,通過對這些指令的應用,讓我們學會了如何使用匯編來進行編程,掌握匯編編程和C語言編程的技巧,并且能夠熟練的使用匯編語言,深刻理解ARM的工作。并且培養(yǎng)了我們寫代碼的能力以及對代碼的閱讀能力和修改能力。為我們在以后的學習和生活中更實用ARM,利用匯編進行編程奠定了一定的基礎!

      第三篇:嵌入式實驗報告

      計算機專業(yè)類課程

      實驗報告 課程名稱:嵌入式微處理器系統(tǒng)及應用 學 院:計算機科學與工程 專 業(yè):計算機科學與技術 學生姓名:廖雪平學 號:2011060120003 指導教師:陳麗蓉

      日 期:2014年5月15日

      電子科技大學計算機學院實驗中心

      電 子 科 技 大 學

      實驗一

      ? 實驗名稱:熟悉嵌入式系統(tǒng)軟件開發(fā)工具與環(huán)境

      一、實驗學時:4

      二、實驗內容和目的:

      AR熟悉嵌入式系統(tǒng)軟件開發(fā)工具與環(huán)境

      M處理器指令編程基礎實驗

      ARM處理器工作模式實驗

      ARM處理器異常處理實驗

      編寫2段匯編程序,一段實現(xiàn)數據區(qū)的拷貝,另一段實現(xiàn)對第一個程序的調用,完成參數傳遞和返回值的傳遞。數據拷貝程序需要判斷傳遞參數的正確性:源數據區(qū)和目的數據區(qū)不能重疊,如果重疊則不進行拷貝操作,并返回錯誤碼(1),否則進行數據拷貝并返回成功碼(0)。

      三、實驗原理:

      M處理器指令編程基礎。

      ARM處理器工作模式

      ARM處理器異常處理

      四、實驗器材(設備、元器件)

      Pc機、開發(fā)板

      五、實驗步驟

      1、了解并連接開發(fā)板。

      2、運行程序熟悉環(huán)境并對開發(fā)板進行測試。

      3、編寫程序并調試運行

      4、完成實驗內容。

      5、調試并撰寫實驗報告。

      六、實驗數據及結果分析:

      實驗代碼:

      實驗截圖:

      電子科技大學計算機學院實驗中心

      七、實驗結論、心得體會和改進建議:

      實驗本身不會很難,但初次開發(fā)還是不太熟練,不過本實驗讓我更加熟練了ARM匯編的開發(fā),以及熟悉了ARM的開發(fā)流程以及開發(fā)環(huán)境

      電子科技大學計算機學院實驗中心 電 子 科 技 大 學

      實驗二

      一、實驗名稱:UART串口通訊實驗

      二、實驗學時:4

      三、實驗內容和目的:

      1)

      在已有串口驅動軟件及測試程序的基礎上,修改測試程序,嘗試對串口的各項通訊參數進行修改,并調整相應的與主機的連接配置,以便修改參數后的串口仍然能夠正常通訊;

      2)通過查閱芯片手冊,嘗試自行實現(xiàn)串口的初始化函數,替代已有驅動軟件庫中的串口初始化函數,并通過測試程序驗證自行編寫的函數的正確性。

      四、實驗原理:UART串口通訊原理

      五、實驗器材(設備、元器件)

      pc、開發(fā)板、相關環(huán)境

      六、實驗步驟:

      1、了解實驗內容

      2、修改測試程序調整連接配置以便修改參數后的串口仍然能夠正常通訊

      2、編寫實驗代碼

      3、測試驗證自行編寫的函數的正確性。

      七、實驗數據及結果分析:

      實驗代碼:

      電子科技大學計算機學院實驗中心

      實驗截圖:

      電子科技大學計算機學院實驗中心

      八、實驗結論、心得體會和改進建議:

      通過本實驗讓我對串口程序的編寫有初步的了解,已經對軟硬件間的銜接更加深刻的理解

      第四篇:嵌入式實驗報告

      北京科技大學

      黃強

      41050176

      嵌入式實驗報告

      實驗一 建立并編譯WinCE平臺

      【實驗目的】

      掌握PB下WinCE平臺的定制 【實驗內容】

      開始利用Platform Builder定制平臺并編譯 【實驗流程】

      1. 將OURS-PXA270-EP實驗箱的電源線、串口、網線、同步線、鼠標等全部連接。

      2. 由于已經安裝好了BSP,我們可以直接打開Platform Builder5.0。3. 新建Platform Builder工程,在建立向導中進行名稱、路徑、BSP選擇、設計模板、可選項目等的設置,完成WinCE平臺的建立。

      北京科技大學

      黃強

      41050176 4. 設置編譯平臺的參數。

      5. 構建新建里的WinCE平臺的運行時映像。整個過程大約持續(xù)20分鐘,構建成功后得到操作系統(tǒng)運行時的映像?!緦嶒灲Y果】 見nk.bin 【小結】

      通過這個實驗,我們初步接觸了PXA270EP實驗箱,并通過Platform的建立,對Platform Builder有了一個初步了解,同時也對嵌入式開發(fā)的過程有了一個初步認識,掌握了PB下WinCE平臺的定制。

      實驗二 定制增強型內核

      【實驗目的】

      1.熟悉Platform Builder集成開發(fā)環(huán)境以及相關配置

      ·使用模板創(chuàng)建新平臺 ·添加和刪除組件 ·配置和運行平臺

      2.利用Platform Builder定制一個增強型內核,并下載到內存中。【實驗內容】

      參照本實驗指導書的步驟,定制一個包括Word(支持中文輸入法)、圖片瀏覽器、MediaPlayer、支持USB鼠標、鍵盤,并能通過USB從設備接口進行宿主機與目標版通信的內核。

      北京科技大學

      黃強

      41050176 【實驗流程】

      1.打開已創(chuàng)建好的PB,在PB右邊的Catalog中添加其他組件。這里我們所做的與實驗指導書上的不同,為了更好的配合我們的實驗,我們所添加的內容有: ·Third Party-BSPs-OURS PXA270-Device Drivers-OEM Devices下所有內容?!latform Manager ·Third Party-BSPs-OURS PXA270-Device Drivers-USB Host-USB Host Controllers-PXA270x USB Host{OHC} ·Core OS-Windows CE devices-Core OS Services-USB Host Support-USB HID-USB HID Keyboard and Mouse ·Third Party-BSPs-OURS PXA270-Device Drivers-Input Devices-Keyboard/Mouse-OURS270 KEYPAD Driver ·Third Party-BSPs-OURS PXA270-Device Drivers-Networking-LAN devices-OURS270 LAN91C111 Driver 2.選擇Build OS|Sysgn開始構建,編譯的結果生成了Eboot和NK.bin映像文件。

      3.在終端進行配置。打開“超級終端”進行連接端口、波特率、數據流控制等的設置,此時會彈出名為11520的超級終端的窗口。

      4.打開實驗箱電源,此時窗口里會出現(xiàn)字符,快速按空格鍵。

      5.當完成Eboot配置后,按下D,準備下載內核的映像文件NK.bin到實驗箱上。6.再進行PB里面的目標設備的配置。7.對映像文件進行下載。

      映像文件傳輸完成后,Eboot會根據設置,自動燒寫到內存中,完成燒寫以后,WinCE會自動啟動。至此,一個功能較強的內核定制成功了?!緦嶒灲Y果】 略 【小結】

      經過這個實驗,我熟悉了Platform Builder集成開發(fā)環(huán)境以及相關配置,雖然剛開始不知道這些配置有什么用,后來在老師的講解下才漸漸明白,這些配置是為了后續(xù)的編程做準備的。

      北京科技大學

      黃強

      41050176

      實驗三 定制SDK并建立EVC下的開發(fā)環(huán)境

      【實驗目的】

      熟悉SDK的概念,配置EVC下的開發(fā)環(huán)境 【實驗內容】

      生成SDK并安裝,配置Embedded Visual C++的開發(fā)環(huán)境 【實驗流程】

      1. 在已經建立好的PB中,新建一個SDK文件。2. 按步驟完成SDK的配置

      3. 點擊Build SDK 這個過程大概要3分鐘,在指定目錄下生成SDK文件。4. 安裝剛生成的SDK,之后即可在此模擬器上運行開發(fā)好的應用程序。【實驗結果】

      北京科技大學

      黃強

      41050176 見SDK文件

      【小結】

      SDK的概念其實對我們來說還是相對陌生的,在實驗的過程中由于概念不了解我們并不太清晰的知道我們在做什么,直到我們查閱并了SDK的相關概念后才有所收獲。SDK實際上是一個開發(fā)工具包,我們根據自己的開發(fā)需要,針對于自己的PB定制了一個專用開發(fā)工具包來便于我們的模擬開發(fā)。經過這個實驗,我們了解了更多關于軟件開發(fā)的知識,接觸到了許多課堂上所學不到的內容,受益匪淺。

      實驗五 建立宿主機與實驗箱的連接

      【實驗目的】

      學習并掌握利用SMSC91C111網口建立宿主機與實驗箱的連接 【實驗內容】

      利用SMSC91C111網口建立宿主機與實驗箱的連接 【實驗設備】

      1.OURS-PXA270-EP實驗儀,燒錄有WINCE的Flash,交叉網線,USB數據線。2.PC操作系統(tǒng),Platform Builder5.0集成開發(fā)環(huán)境?!緦嶒灢襟E】

      1.在PB的菜單下,點Remote File Viewer擊。

      北京科技大學

      黃強

      41050176 2.在彈出的“Windows CE Remote File Viewer”界面中,選擇“Configure Connection”按鈕,進入下一個畫面。

      3.選好目標設備,并單擊右邊的“Properties”按鈕。

      4.在彈出的對話框“Device Properties”中如下圖所示設置,單擊“Transport”下拉框右邊的“Configure...”按鈕。

      5.在彈出的對話框“Transport Configuration”中可以設置超時值、端口號、主機IP等。

      6.設置完畢后,打開實驗箱電源,啟動WinCE平臺,將宿主機與實驗箱網口用交叉線連接號,點擊“Text”按鈕。

      7.點擊Text按鈕后,出現(xiàn)所示窗口,它的意思是說,在試驗箱的命令行中鍵入“CEMGRC.EXE/S /T:TCPIPC.DLL /Q /D:192.168.0.21:5000”(其中IP地址是自己宿主機的IP地址),完成此項操作后,點擊OK。

      8.在實驗箱的CE系統(tǒng)中,設置IP地址與宿主機地址在同一網段內。具體操作為:在實驗箱的CE系統(tǒng)“開始”菜單中點擊運行命令,鍵入命:CEMGRC.EXE/S /T:TCPIPC.DLL /Q /D:192.168.0.21:5000,然后點擊OK。如果PC機上再出現(xiàn)運行CEMGRC.EXE/S /T:TCPIPC.DLL /Q /D:192.168.0.21:5000的提示,重復上述步驟,便會出現(xiàn)如下界面,點擊Export按鈕(黃色按鈕),可上傳文件。9.如下圖所示,可瀏覽遠程文件,并指定上傳文件,選中文件后,點擊“打開”按鈕。

      10.成功上傳文件,可以在實驗設備上看到上傳的文件。11.至此,利用SMSC91C111網口建立連接完畢?!緦嶒灲Y果】

      實驗失敗 【小結】

      通過這次試驗,我們掌握了利用SMSC91C111網口建立宿主機與實驗箱的連接的方法,實驗中要求IP地址與宿主機地址在同一網段,實驗中解決了這個問題,讓我們對網絡相關的概念也加深了理解。經過多次試驗,我們還是無法連通宿主機與實驗箱,我認為我們的步驟沒有問題,可能是設備有故障。

      北京科技大學

      黃強

      41050176

      實驗六 USB Device建立宿主機與實驗箱的連接

      【實驗目的】

      學習并掌握利用USB Device建立宿主機與實驗箱的連接 【實驗內容】

      利用USB Device建立宿主機與實驗箱的連接 【實驗設備】

      1.OURS-PXA270-EP實驗儀,燒錄有WINCE的Flash,交叉網線,USB數據線。2.PC操作系統(tǒng),Platform Builder5.0集成開發(fā)環(huán)境?!緦嶒灢襟E】

      北京科技大學

      黃強

      41050176 1.ActiveSync安裝

      Microsoft ActiveSync允許您使用電纜、底座或紅外線在移動設備和桌面計算機之間建立合作關系。建立合作關系后,如果您的設備支持調制解調器或(以太網)卡,就可以使它們同步數據。通過ActiveSync還可以使用現(xiàn)有計算機連接其他資源,也可以使用ActiveSync保持兩臺計算機上擁有最新信息。

      首先在主機端安裝ActiveSync程序。該程序安裝在D:科大目錄下的ActiveSyncsetup.smi。雙擊該文件開始安裝。

      2.用USB延長線連接試驗箱和PC,當PC發(fā)現(xiàn)新設備時安裝附帶的驅動,安裝完成后,打開Microsoft ActiveSync窗口進行連接。

      選擇“否”然后點擊行“下一步”按鈕。

      3.在“我的電腦”中添加“我的設備”,它對應于目標系統(tǒng)的WINCE文件系統(tǒng)。注意:

      如果WINCE運行以前USB線已經連接到PC機的USB插座,可能導致連接不上,此時,請將USB線拔下然后重新插入即可。4.通訊

      在上圖我的電腦中雙擊“我的設備”將打開WINCE同步目錄,可以和操作WINDOWS其他目錄一樣操作該目錄,包括拷貝文件到該目錄或見文件從該目錄拷貝到PC機。

      文件拷貝成功,可以成功將應用程序下載到試驗箱運行,這樣我們就完成了宿主機與實驗箱的通訊連接?!緦嶒灲Y果】

      北京科技大學

      黃強

      41050176

      【小結】

      通過實驗,我們掌握了利用USB Device建立宿主機與實驗箱的連接的具體方法,并且連接成功,與上一個方法比較,該方法簡單實用,成功率高,適合我們選用。

      實驗七 在實驗箱的WinCE平臺上的Hello World實驗

      【實驗目的】

      北京科技大學

      黃強

      41050176 1.熟悉EVC集成開發(fā)環(huán)境以及相關配置。2.利用EVC編寫WinCE的應用程序。【實驗內容】

      參照本實驗指導書的步驟,一步一步完成實驗,編寫、編譯并運行HelloWorld程序 【實驗設備】

      1.OURS-PXA270—EP實驗儀,交叉網線。

      2.PC操作系統(tǒng),Platform Builder4.2集成開發(fā)環(huán)境,eMbedded Visual C++集成開發(fā)環(huán)境?!緦嶒灲Y果】

      【小結】

      這是我首次接觸EVC集成開發(fā)環(huán)境,感覺有點陌生,但按照實驗指導書一步一步做下去之后,我終于對EVC集成開發(fā)環(huán)境有了初步的了解,收獲很大。

      實驗八 LED數碼管驅動

      【實驗目的】

      北京科技大學

      黃強

      41050176 1.熟悉EVC集成開發(fā)環(huán)境以及相關配置 2.利用EVC編寫一個針對實際硬件的驅動程序 【實驗內容】

      編寫一個針對硬件的驅動程序,硬件是LED 【實驗設備】

      PC機操作系統(tǒng),Platform Builder集成開發(fā)環(huán)境,OURS—PXA270-EP實驗箱。

      【實驗步驟】

      1.使用前面實驗所制作的內核 2.按照實驗指導書上添加窗口及代碼 3.測試與調試 【實驗結果】

      北京科技大學

      黃強

      41050176

      【小結】

      經過本次實驗,我熟悉了EVC集成開發(fā)環(huán)境以及相關配置,在EVC中編寫了一個程序,通過實驗,對開發(fā)環(huán)境有了更深入地了解,為日后的課程設計打下了堅實的基礎。

      第五篇:嵌入式實驗報告

      西安郵電大學

      嵌入式處理器及應用實驗報告書

      學院名稱學生姓名專業(yè)名稱班

      : : : :

      實驗一

      ADS 1.2 集成開發(fā)環(huán)境練習

      一、實驗目的:

      了解ADS 1.2 集成開發(fā)環(huán)境的使用方法。

      二、實驗內容:

      1.建立一個新的工程。

      2.建立一個C源文件,并添加到工程中。3.設置文本編輯器支持中文。4.編譯鏈接工程。5.調試工程。

      三、實驗步驟:

      1.啟動ADS 1.2 IDE集成開發(fā)環(huán)境,選擇File—New,使用ARM Executable Image工程模板建立一個工程,工程名稱為ADS。

      2.選擇File—New建立一個新的文件TEST1.S,設置直接添加到項目中,輸入程序代碼。3.由于ADS安裝后默認字體是Courier New,對于中文支持不完善,因此建議修改字體。選擇Edit—Perferences,在Font選項設置字體為Fixedsys,Script為CHINESE_GB2312。建議在Tab Inserts Spaces前打勾,使Tab鍵插入的是多個空格。

      4.選擇Edit—DebugRel Settings,在DebugRel Settings對話框的左邊選擇ARM Linker項,然后在Output頁設置連接地址ROBase 為0x40000000,RW Base 為0x40003000,在Options頁設置調試入口地址Image entry point 為 0x40000000。5.選擇Project—Make,將編譯鏈接整個工程。

      6.選擇Project—Debug,或單擊快捷鍵F5,IDE環(huán)境就會啟動AXD調試軟件。

      四、程序清單:

      AREA

      Example1,CODE,READONLY

      ;聲明代碼段Example1

      ENTRY

      ;標識程序入口

      CODE32

      ;聲明32 位ARM 指令

      START

      MOV

      R0,#15

      ;設置參數

      MOV

      R1,#8

      ADDS

      R0,R0,R1

      ;R0 = R0 + R1

      B

      START

      END

      五、心得體會:

      通過本次實驗,我熟悉了ADS 1.2 集成開發(fā)環(huán)境,學會了怎樣建立工程,在工程里面建立文件和進行最基本的運行操作。我感觸最深的是每次軟件的開始使用是最關鍵的,想要掌握一個軟件的使用必須進行多次的練習,多練幾遍自然而然的會熟練的操作。

      實驗二

      存儲器訪問指令練習實驗

      一、實驗目的:

      1.了解ADS 1.2 集成開發(fā)環(huán)境及ARMulator軟件仿真。

      2.掌握ARM7TDMI匯編指令的用法,并能編寫簡單的匯編程序。3.掌握指令的條件執(zhí)行以及使用LDR/STR指令完成存儲器的訪問。

      二、實驗內容:

      1.使用LDR指令讀取0x40003100上的數據,將數據加1,若結果小于10,則使用STR指令把結果回寫原地址;若結果大于或等于10,則把0寫回原地址。

      2.使用ADS 1.2軟件仿真,單步、全速運行程序,設置斷點,打開寄存器窗口(Processor Registers)監(jiān)視R0和R1的值,打開存儲器觀察窗口(Memory)監(jiān)視0x40003100上的值。

      三、實驗步驟:

      1.啟動ADS 1.2,使用ARM Executable Image工程模板建立一個工程Instruction2。2.建立匯編源文件TEST2.S,編寫實驗程序,然后添加到工程中。

      3.設置工程鏈接地址ROBase 為0x40000000,RW Base 為0x40003000。設置調試入口地址Image entry point 為 0x40000000。

      4.編譯鏈接工程,選擇Project —Debug,啟動AXD進行軟件仿真調試。

      5.打開寄存器窗口(Processor Registers),選擇Current 項監(jiān)視R0和R1的值。打開存儲器觀察窗口(Memory)設置觀察地址為0x40003100,顯示方式Size為32Bit,監(jiān)視0x40003100地址上的值。

      四、程序清單:

      COUNT

      EQU

      0x40003100

      ;定義一個變量,地址為0x40003100

      AREA

      Example2,CODE,READONLY;聲明代碼段Example2

      ENTRY

      ;標識程序入口

      CODE32

      ;聲明32 位ARM 指令

      START

      LDR

      R1,=COUNT

      ;R1 <= COUNT

      MOV

      R0,#0

      ;R0 <= 0

      STR

      R0,[R1]

      ;[R1] <= R0,即設置COUNT 為0

      LOOP

      LDR

      R1,=COUNT

      LDR

      R0,[R1]

      ;R0 <= [R1]

      ADD

      R0,R0,#1

      ;R0 <= R0 + 1

      CMP

      R0,#10

      ;R0 與 10 比較,影響條件碼標志

      MOVHS

      R0,#0

      ;若R0 大于等于 10,則此指令執(zhí)行,R0 <= 0

      STR

      R0,[R1]

      ;[R1] <= R0,即保存COUNT

      B

      LOOP

      END

      五、心得體會:通過本次實驗,讓我更深一步的了解了ADS 1.2 集成開發(fā)環(huán)境及ARMulator軟件仿真。通過對程序的解讀,我掌握一些匯編指令的寫法,同時也提高了我的讀程序的能力。本次實驗中我遇到了一個問題,在工程里加載文件的時候,沒注意文件的后綴應為“。S”,結果造成文件加載失敗。

      實驗三

      數據處理指令練習實驗

      一、實驗目的:

      1.掌握ARM數據處理指令的使用方法。2.了解ARM指令靈活的第2個操作數。

      二、實驗內容:

      1.使用MOV和MVN指令訪問ARM通用寄存器。

      2.使用ADD、SUB、AND、ORR、CMP和TST等指令完成數據加減運算及邏輯運算。

      三、實驗步驟:

      1)啟動ADS1.2,使用ARM Executable Image 工程模板建立一個工程Instruction3。2)建立匯編源文件TEST3.S ,編寫實驗程序,然后添加到工程中。

      3)設置工程鏈接地址RO Base為0x40000000,RW Base為0x40003000。設置調試入口地址Image entry point 為 0x40000000。

      4)編譯鏈接工程,選擇Project —Debug,啟動AXD進行軟件仿真調試。5)打開寄存器窗口(Processor Registers),選擇Current 項監(jiān)視各寄存器的值。6)單步運行程序,觀察寄存器值的變化。

      四、程序清單:

      X

      EQU

      ;定義X 的值為11

      Y

      EQU

      ;定義Y 的值為8

      BIT23

      EQU

      (1<<23)

      ;定義BIT23 的值為0x00800000

      AREA

      Example3,CODE,READONLY

      ;聲明代碼段Example3

      ENTRY

      ;標識程序入口

      CODE32

      ;聲明32 位ARM 指令

      START

      ;使用MOV、ADD 指令實現(xiàn):R8 = R3 = X + Y

      MOV

      R0,#X

      ;R0 <= X,X 的值必須是8 位圖數據

      MOV

      R1,#Y

      ;R1 <= Y,Y 的值必須是8 位圖數據

      ADD

      R3,R0,R1

      ;即是R3 = X + Y

      MOV

      R8,R3

      ;R8 <= R3

      ;使用MOV、MVN、SUB 指令實現(xiàn):R5 = 0x5FFFFFF8y;

      ;

      break;

      ;

      case

      7: x = key * y;

      ;

      break;

      ;

      default: x = 168;

      SWITCH

      CASE_0

      CASE_2

      CASE_3

      CASE_5

      CASE_7

      ;

      break;;};設x 為R0,y 為R1,key 為R2(x、y、key 均為無符號整數)MOV

      R1,#3

      ;初始化y 的值

      MOV

      R2,#2

      ;初始化key 的值

      AND

      R2,R2,#0x0F

      ;switch(key&0x0F)

      CMP

      R2,#0

      ;case 0:

      CMPNE

      R2,#2

      ;case 2:

      MPNE

      R2,#3

      ;case 3:

      BNE

      CASE_5

      ADD

      R0,R2,R1

      ;

      x = key + y

      B

      SWITCH_END

      ;

      break

      CMP

      R2,#5

      ;case 5:

      BNE

      CASE_7

      SUB

      R0,R2,R1

      ;

      x = key1)*4 SvcStackSpace +(SVC_STACK_LEGTH1)*4 FiqStackSpace +(FIQ_STACK_LEGTH1)*4

      UndtStackSpace +(UND_STACK_LEGTH-1)*4

      ;分配堆??臻g

      AREA

      MyStacks, DATA, NOINIT, ALIGN=2

      UsrStackSpace

      SPACE

      USR_STACK_LEGTH * 4

      ;用戶(系統(tǒng))模式堆棧空間

      SvcStackSpace

      SPACE

      SVC_STACK_LEGTH * 4

      ;管理模式堆??臻g

      IrqStackSpace

      SPACE

      IRQ_STACK_LEGTH * 4

      ;中斷模式堆??臻g

      FiqStackSpace

      SPACE

      FIQ_STACK_LEGTH * 4

      ;快速中斷模式堆??臻g

      AbtStackSpace

      SPACE

      ABT_STACK_LEGTH * 4

      ;中止義模式堆棧空間

      UndtStackSpace

      SPACE

      UND_STACK_LEGTH * 4

      ;未定義模式堆棧

      END

      五、心得體會:通過本次實驗,我較好的掌握了如何使用MRS/MSR指令實現(xiàn)ARM微控制器工作模式的切換。較好的了解了在各個工作模式下的寄存器。

      實驗六

      C語言程序實驗

      一、實驗目的:

      通過實驗了解使用ADS 1.2編寫C語言程序,并進行調試。

      二、實驗內容:

      編寫一個匯編程序文件和一個C程序文件。匯編程序的功能是初始化堆棧指針和初始化C程序的運行環(huán)境,然后跳轉到C程序運行,這就是一個簡單的啟動程序。C程序使用加法運算來計算1+2+3+…+(N-1)+N的值(N為0時,結果為0;N為1時,結果為1)。

      三、實驗步驟:

      1.啟動ADS1.2,使用ARM Executable Image 工程模板建立一個工程ProgramC。2.建立匯編源文件Startup.s和Test.c,編寫實驗程序,然后添加到工程中。

      3.設置工程鏈接地址RO Base為0x40000000,RW Base為0x40003000。設置調試入口地址Image entry point 為 0x40000000。

      4.設置位于開始位置的起始代碼段:選擇Edit—DebugRel Settings,在DebugRel Settings對話框的左邊選擇ARM Linker項,然后在Layout頁設置Object/Symbol為Startup.o,Section為Start。

      5.編譯鏈接工程,選擇Project—Debug,啟動AXD進行軟件仿真調試。6.在Startup.s的“B Main”處設置斷點,然后全速運行程序。

      7.程序在斷點處停止。單步運行程序,判斷程序是否跳轉到C程序中運行。

      選擇Processor Views—Variables打開變量觀察窗口,觀察全局變量的值,然后單步/全速運行程序,判斷程序的運算結果是否正確。

      四、程序清單:

      #define uint8

      unsigned char

      #define uint32

      unsigned int

      #define N

      uint32 sum;

      // 使用加法運算來計算 1+2+3+...+(N-1)+N 的值。(N>0)

      void Main(void)

      { uint32 i;

      sum = 0;

      for(i=0;i<=N;i++)

      { sum += i;

      }

      while(1);

      }

      程序清單3.9

      簡單的起動代碼

      ;起動文件。初始化 C 程序的運行環(huán)境,然后進入C 程序代碼。

      IMPORT

      |Image$$RO$$Limit|

      IMPORT

      |Image$$RW$$Base|

      IMPORT

      |Image$$ZI$$Base|

      IMPORT

      |Image$$ZI$$Limit|

      IMPORT

      Main

      ;聲明C 程序中的Main()函數

      AREA

      Start,CODE,READONLY

      ;聲明代碼段Start

      ENTRY

      ;標識程序入口

      CODE32

      ;聲明32 位ARM 指令

      Reset

      LDR

      SP,=0x40003F00

      ;初始化C 程序的運行環(huán)境

      LDR

      R0,=|Image$$RO$$Limit|

      LDR

      R1,=|Image$$RW$$Base|

      LDR

      R3,=|Image$$ZI$$Base|

      CMP

      R0,R1

      BEQ

      LOOP1

      LOOP0

      CMP

      R1,R3

      LDRCC

      R2,[R0],#4

      STRCC

      R2,[R1],#4

      BCC

      LOOP0

      LOOP1

      LDR

      R1,=|Image$$ZI$$Limit|

      MOV

      R2,#0

      LOOP2

      CMP

      R3,R1

      STRCC

      R2,[R3],#4

      BCC

      LOOP2

      B

      Main

      ;跳轉到 C 程序代碼Main()函數

      END

      五、心得體會:通過本次實驗,我學會并掌握使用ADS 1.2編寫C語言程序,并進行調試。這次實驗不同于前幾次,必須在一個工程里面同時加載兩個文件,分別是“。c”和“.s”文件。

      下載川大電氣學院自動化嵌入式實驗報告word格式文檔
      下載川大電氣學院自動化嵌入式實驗報告.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內容由互聯(lián)網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現(xiàn)有涉嫌版權的內容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯(lián)系你,一經查實,本站將立刻刪除涉嫌侵權內容。

      相關范文推薦

        嵌入式實驗報告

        《嵌入式Linux實驗開發(fā)》 ——實驗二、安裝和備份Linux 系統(tǒng) ——實驗三、ADS 集成開發(fā)環(huán)境的使用 ——實驗四、在虛擬機中安裝linux ——實驗五、虛擬機和主機數據通信......

        嵌入式實驗報告

        目錄 實驗一 跑馬燈實驗 ......................................................................... 1 實驗二 按鍵輸入實驗 ...............................................

        嵌入式實驗報告

        嵌入式系統(tǒng)及應用課 程設計報告姓名:陳宥祎 班級:14級計算機01班 學號:1255010116 指導老師:黃衛(wèi)紅 按鍵輸入實驗 一.實驗簡介 在實驗一的基礎上,使用按鍵控制流水燈速度,及使用......

        川大電力系統(tǒng)自動裝置實驗報告

        同步發(fā)電機并車實驗 一、 實驗目的 1、 加深理解同步發(fā)電機準同期并列原理,掌握準同期并列條件; 2、 熟悉同步發(fā)電機準同期并列過程; 3、 觀察、分析有關波形。 二、 原理與說......

        嵌入式系統(tǒng)實驗報告

        廣西工學院鹿山學院 實 驗 報 告 課程名稱: 嵌入式系統(tǒng) 指導教師: 劉瑞琪 班 級: 自動化101 姓 名: 楊杰 學 號: 20102787 成績評定: 指導教師簽字: 2013年5月25日 實驗一簡單的......

        嵌入式系統(tǒng)實驗報告

        嵌入式系統(tǒng)設計實驗報告 班 級:學 號:姓 名:成 績:指導教師: 20110612 2011061208 李曉虹 武俊鵬、劉書勇 1. 實驗一 1.1 實驗名稱 博創(chuàng)UP-3000實驗臺基本結構使用方法 1.2......

        嵌入式系統(tǒng)實驗報告

        嵌入式系統(tǒng)設計實驗報告 班 級: 學 號: 姓 名: 成 績: 指導教師: 1. 實驗一 1.1 實驗名稱 博創(chuàng)UP-3000實驗臺基本結構及使用方法 1.2 實驗目的 1.學習嵌入式系統(tǒng)開發(fā)流程。 2.熟悉U......

        嵌入式實驗報告五

        嵌入式實驗報告五實驗時間2013/6/9報告人一、實驗目的: 1.嵌入式文件燒寫; 2.通過上機實驗,使學生驗證、鞏固和充實所學理論知識,加深對相關內容的理解,了解嵌入式操作系統(tǒng)的鏡像文......