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

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

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

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

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

      南昌大學(xué)嵌入式實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三范文大全

      時(shí)間:2020-09-29 12:03:58下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《南昌大學(xué)嵌入式實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《南昌大學(xué)嵌入式實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三》。

      第一篇:南昌大學(xué)嵌入式實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三

      綜合 實(shí)驗(yàn)三 三 觸摸屏控制

      一、實(shí)驗(yàn)項(xiàng)目名稱

      觸摸屏控制 二、實(shí)驗(yàn)?zāi)康?了解觸摸屏的基本工作原理,學(xué)會(huì) s3c2410ADC 的配置 三、實(shí)驗(yàn)基本原理:

      通過(guò)設(shè)置 GPIO 口及液晶觸摸屏控制器等相關(guān)寄存器來(lái)達(dá)觸摸相應(yīng)菜單鍵來(lái)控制直流步進(jìn)電機(jī)的轉(zhuǎn)動(dòng),加速減速和改變方向,并同步超級(jí)終端。

      程序思路和部分代碼:

      1.本次實(shí)驗(yàn)主要是設(shè)置觸摸屏中斷和 ADC 轉(zhuǎn)換中斷來(lái)實(shí)現(xiàn)將觸摸屏觸點(diǎn)轉(zhuǎn)換成坐標(biāo)。在寫下筆中斷和抬筆中斷時(shí)一定要在最開始寫

      rINTSUBMSK |=(BIT_SUB_ADC|BIT_SUB_TC);來(lái)禁止 ADC 中斷和觸摸屏中斷,否則按下一次有可能會(huì)多次中斷,這是不允許的。

      2.

      實(shí)驗(yàn)通過(guò)在中斷中處理 AD 轉(zhuǎn)換后的坐標(biāo)值,并設(shè)置了一個(gè)全局變量,通過(guò)改變這個(gè)全局變量的值達(dá)到不同的效果。通過(guò)比較液晶屏上規(guī)劃好的各個(gè)觸摸范圍,來(lái)跳轉(zhuǎn)到相應(yīng)的功能。其具體函數(shù)如下:

      // 左 上 角 按 鈕 表 示 步 進(jìn) 電 機(jī) 加 速 if(point_adcx>=0&&point_adcx<=500&&point_adcy>=0&&point_adcy<=300)

      {step_delay=step_delay-1;

      UART_SendStr(“電機(jī)加速”);

      sprintf(disp_buf, “delay is %d n”, step_delay);

      UART_SendStr(disp_buf);

      if(step_delay<=1)

      step_delay=1;

      }

      // 上 中 角 按 鈕 表 示 步 進(jìn) 電 機(jī) 減 速 if(point_adcx>=0&&point_adcx<=500&&point_adcy>=300&&point_adcy<=600)

      {step_delay=step_delay+1;

      UART_SendStr(“電機(jī)減速”);

      sprintf(disp_buf, “delay is %d n”, step_delay);

      UART_SendStr(disp_buf);

      if(step_delay>=10)

      step_delay=10;

      }

      //右上角按鈕表示步進(jìn)電機(jī)正反轉(zhuǎn)

      if(point_adcx>=0&&point_adcx<=500&&point_adcy>=600)

      {sprintf(disp_buf, “STEP_Motoflag is %d n”, STEP_Motoflag);

      UART_SendStr(disp_buf);

      if(STEP_Motoflag==0)

      STEP_Motoflag=1;

      else STEP_Motoflag=0;

      DelayNS(50);

      // 停止步進(jìn)電機(jī),延時(shí)

      UART_SendStr(“步進(jìn)電機(jī)正反轉(zhuǎn)n”);

      sprintf(disp_buf, “STEP_Motoflag is %d n”, STEP_Motoflag);

      UART_SendStr(disp_buf);

      //左下角按鈕表示直流電機(jī)加速

      if(point_adcx>=500&&point_adcy>=0&&point_adcy<=300)

      {

      pwm_duty= pwm_duty + 255/6;

      // 改變當(dāng)前電機(jī)的速度

      if(pwm_duty>255)

      {pwm_duty = 255/6;

      }

      rTCMPB0 = pwm_duty;

      UART_SendStr(“直流電機(jī)加速”);

      }

      //下中角按鈕表示直流電機(jī)減速

      if(point_adcx>=500&&point_adcy>=300&&point_adcy<=600)

      {

      pwm_duty= pwm_duty-255/6;

      // 改變當(dāng)前電機(jī)的速度級(jí)別

      if(pwm_duty<10)

      {

      pwm_duty = 255;

      }

      rTCMPB0 = pwm_duty;

      UART_SendStr(“直流電機(jī)減速”);

      }

      //右下角按鈕表示直流電機(jī)正反轉(zhuǎn)

      if(point_adcx>=500&&point_adcy>=600)

      { if(DC_Motoflag==0)

      DC_Motoflag=1;

      else DC_Motoflag=0;

      UART_SendStr(“直流電機(jī)正反轉(zhuǎn)”);

      } 四、主要儀器設(shè)備及耗材 實(shí)驗(yàn)箱一臺(tái),PC 機(jī)一臺(tái),JTAG 一個(gè)。

      五、

      實(shí)驗(yàn)步驟 1,設(shè)置 ADS 編譯器各種選項(xiàng) 在 Targets 的 DebugRel 中 Target Settings 中 Post-linker 中選擇 ARM formELF

      Language setting 中 編譯器選項(xiàng)內(nèi)核選中 ARM920T ARM Linker 中 RO Base 設(shè)置為 0x30000000 自此,編譯器設(shè)置成功 2 將程序加入到 ADS 編譯器并且編譯。編譯成功后會(huì)生成.AXF 二進(jìn)制文件 將.Axf 文件導(dǎo)入到 AXD 仿真軟件,即可進(jìn)行單步運(yùn)行,全速運(yùn)行程序 六、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果 加載程序到 SDRAM 全速運(yùn)行: LCD 出現(xiàn)一張圖片:

      此圖片是 640*480 的,恰好覆蓋整個(gè) LCD 區(qū)域。

      當(dāng)按下步進(jìn)電機(jī)控制區(qū)域,步進(jìn)電機(jī)轉(zhuǎn)動(dòng),當(dāng)按下直流電機(jī)控制區(qū)域,直流電機(jī)轉(zhuǎn)動(dòng),虛擬串口也會(huì)輸出相應(yīng)信息:

      四、

      實(shí)驗(yàn)心得 通過(guò)本實(shí)驗(yàn)明白了 S3C2410 的 GPIO 的配置,觸摸屏的原理和配置。

      剛開始,按照上次實(shí)驗(yàn)的思想,認(rèn)為觸摸屏的范圍是 640*480,結(jié)果發(fā)現(xiàn)觸摸相應(yīng)區(qū)域,電機(jī)不是按照規(guī)定好的邏輯進(jìn)行旋轉(zhuǎn),后來(lái)自己排查,給程序每一行加入了輸出觸點(diǎn)坐標(biāo)的函數(shù),發(fā)現(xiàn)觸摸屏范圍是 1024*1024 的,由于 ADC 是 10 位的,所以橫縱坐標(biāo)都是 0-1024這個(gè)范圍。通過(guò)這次實(shí)驗(yàn)我學(xué)習(xí)到了,不要墨守成規(guī),在調(diào)試的過(guò)程中要多做機(jī)器反饋。

      雖然在調(diào)試過(guò)程中遇到很多的困難,但是靜下心來(lái)用 AXD 單步調(diào)試之后問(wèn)題都一一解決。這樣提高了自己獨(dú)立解決問(wèn)題的能力和學(xué)習(xí)能力!

      五、

      實(shí)驗(yàn)參考手冊(cè) 《S3C2410 實(shí)驗(yàn)實(shí)驗(yàn)手冊(cè)》 《嵌入式系統(tǒng)開發(fā)與實(shí)驗(yàn)教程》

      第二篇:嵌入式實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)一 ARM匯編語(yǔ)言程序設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康?/p>

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

      二、實(shí)驗(yàn)設(shè)備

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

      三、實(shí)驗(yàn)內(nèi)容

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

      2.理解下列程序,新建工程,加入下面的程序,并觀察實(shí)驗(yàn)結(jié)果,解釋程序?qū)崿F(xiàn)的功能

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

      AREA Examl, CODE,READONLY;定義一個(gè)代碼段 ENTRY

      ;程序入口

      MOV R0,#0;設(shè)置R0寄存器的值為0 MOV R8,#0;設(shè)置R8寄存器的值為0 ADR R2,N;將R2寄存器的值設(shè)為數(shù)據(jù)域N的地址 LDR R1,[R2];將以R2的值為地址的數(shù)據(jù)讀入R1 MOV R2,#0;設(shè)置R2的值為0 ADR R3,C;將R3寄存器的值設(shè)為數(shù)據(jù)域C的地址 ADR R5,X;將R5寄存器的值設(shè)為數(shù)據(jù)域X的地址 LOOP LDR R4,[R3,R8];將R3+R8的數(shù)據(jù)讀入R4 LDR R6,[R5,R8];將R5+R8的數(shù)據(jù)讀入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í)行結(jié)果如下:

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

      程序代碼:

      MOV R0,#100;設(shè)置R0寄存器的值為100 LDR R2,=0X90018;設(shè)置R2寄存器指向地址0x90018 MOV R1,#0;設(shè)置R1的值為0 MOV R3,#0;設(shè)置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í)行結(jié)果:程序執(zhí)行完在0x90018內(nèi)存入的數(shù)據(jù)是0x13ba即5050

      實(shí)驗(yàn)二 ARM匯編語(yǔ)言程序設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康?/p>

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

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

      三、實(shí)驗(yàn)內(nèi)容

      1.理解下列程序,新建工程,加入下面的程序,并觀察實(shí)驗(yàn)結(jié)果

      程序代碼:

      x EQU 15;定義常量x=15 y EQU 61;定義常量y=61 stack_top EQU 0X1000;定義堆棧棧頂?shù)刂窞?x1000 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;程序結(jié)果為:r1 = x+y = 0x6D

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

      程序代碼如下: X EQU 1;定義常量x = 1 stack_top EQU 0X800;定義棧頂?shù)刂?ENTRY;MOV SP,#stack_top;將棧頂?shù)刂分赶?x800 MOV R4,#1;設(shè)置R4 = 1 MOV R5,#2;設(shè)置R5 = 2 MOV R6,#3;設(shè)置R6 = 3 MOV R7,#4;設(shè)置R7 = 4 MOV R8,#5;設(shè)置R8 = 5 MOV R9,#6;設(shè)置R9 = 6 MOV R10,#7;設(shè)置R10 = 7 MOV R11,#8;設(shè)置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;實(shí)驗(yàn)結(jié)果:主要實(shí)現(xiàn)將數(shù)據(jù)2-9,3-10,4-11……9-16壓入堆棧(初始地址是0x800處開始),最后將R4-R11全部清零。

      3.更改實(shí)驗(yàn)中1中的X,Y的值,觀察期結(jié)果 程序代碼:

      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 程序結(jié)果為:r0 = x+y = 140 = 0X8C

      實(shí)驗(yàn)三 ARM匯編語(yǔ)言程序設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.了解ARM匯編語(yǔ)言的基本框架,學(xué)會(huì)使用ARM的匯編語(yǔ)言編程

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

      二、實(shí)驗(yàn)設(shè)備

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

      三、實(shí)驗(yàn)內(nèi)容

      1.理解下列程序,新建工程,加入下面的程序,并觀察實(shí)驗(yàn)結(jié)果 程序代碼:

      Num EQU 20;定義常量Num = 20 START;LDR r0,=src;將src數(shù)據(jù)塊的開始地址存入r0中 LDR r1,=dst;將dst數(shù)據(jù)塊的開始地址存入r1中 MOV r2,#Num;設(shè)置r2的值為20 MOV sp,#0x400;堆棧指針sp指向0x400 blockcopy;MOVS r3,r2,LSR #3;將r2左移3位移入r3并且影響標(biāo)志位 BEQ copywords;結(jié)果為0的話跳轉(zhuǎn)到copywords STMFD SP!,{r4-r11};將r4-r11的值入棧 octcopy;LDMIA r0!,{r4-r11};將src的前8個(gè)字?jǐn)?shù)據(jù)存入讓r4-r11 STMIA r1!,{r4-r11};將r4-r11中的數(shù)據(jù)放入dst數(shù)據(jù)塊中 SUBS r3,r3,#1;r3 = r3-1 BNE octcopy;結(jié)果不為0跳轉(zhuǎn)到octcopy LDMFD SP!,{R4-R11};恢復(fù)原來(lái)的r4-r11 copywords;ANDS r2,r2,#7;r2 = r2&7 BEQ stop;結(jié)果為0跳轉(zhuǎn)到stop wordcopy;LDR r3,[r0],#4;將r0指向的字?jǐn)?shù)據(jù)放入r3中,r0 = r0+4 STR r3,[r1],#4;將r3中的數(shù)據(jù)存入到dst數(shù)據(jù)塊中,r1 = r1+4 SUBS r2,r2,#1;r2 = r2-1 BNE wordcopy;不為0跳轉(zhuǎn)到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;程序結(jié)果:將src的數(shù)據(jù)全部存入到dst中

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

      MOV R4,#1;設(shè)置r4 = 1; MOV R5,#2;設(shè)置r5 = 1; MOV R6,#3;設(shè)置r4 = 1;

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

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

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

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

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

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

      實(shí)現(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 程序結(jié)果:

      實(shí)現(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 程序結(jié)果:

      實(shí)現(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 程序結(jié)果:

      實(shí)驗(yàn)四 基于ARM的C語(yǔ)言程序設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.了解ARM C語(yǔ)言的基本框架,學(xué)會(huì)使用ARM的C語(yǔ)言編程。2.掌握C語(yǔ)言和匯編語(yǔ)言編程的相互調(diào)用。

      二、實(shí)驗(yàn)設(shè)備

      1.EL-ARM-830教學(xué)實(shí)驗(yàn)箱,PentiumII以上的PC機(jī),仿真器電纜。

      三、ARM C語(yǔ)言簡(jiǎn)介與使用規(guī)則

      1.ARM使用C語(yǔ)言編程是大勢(shì)所趨

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

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

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

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

      在使用C語(yǔ)言時(shí),要用到和匯編語(yǔ)言的混合編程。當(dāng)匯編代碼較為簡(jiǎn)潔,則可使用直接內(nèi)嵌匯編的方法,否則,使用將匯編文件以文件的形式加入項(xiàng)目當(dāng)中,通過(guò)ATPCS的規(guī)定與C程序相互調(diào)用與訪問(wèn)。

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

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

      ● 在子程序編寫時(shí),必須遵守相應(yīng)的ATPCS規(guī)則; ● 堆棧的使用要遵守相應(yīng)的ATPCS規(guī)則; ● 在匯編編譯器中使用-atpcs選項(xiàng)?;镜腁TPCS規(guī)定,請(qǐng)?jiān)斠娤嚓P(guān)技術(shù)文檔。

      匯編程序調(diào)用C程序

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

      C程序調(diào)用匯編程序

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

      在匯編程序中使用EXPORT偽指令聲明本子程序,使其他程序可以調(diào)用此子程序。在C語(yǔ)言中使用extern關(guān)鍵字聲明外部函數(shù)(聲明要調(diào)用的匯編子程序)。

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

      具體的編程規(guī)則同標(biāo)準(zhǔn)C語(yǔ)言。

      四、實(shí)驗(yàn)內(nèi)容

      1、理解下列程序,新建工程,加入下面的程序,并觀察實(shí)驗(yàn)結(jié)果。程序代碼:

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

      IMPORT sum5;聲明調(diào)用c函數(shù) 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的值入棧當(dāng)做第五個(gè)參數(shù) ADD R3,R1,R1;R3 = R3+R1=4 BL sum5;調(diào)用sum5 ADD SP,SP,#4;sp = sp+4 LDMFD SP,{PC} 程序結(jié)果:實(shí)現(xiàn)了i+2i+3i+4i+5i的匯編語(yǔ)言調(diào)用c語(yǔ)言

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

      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);} 程序結(jié)果:

      總結(jié)

      本次實(shí)驗(yàn)主要是通過(guò)對(duì)ARM的各種指令進(jìn)行操作,通過(guò)對(duì)這些指令的應(yīng)用,讓我們學(xué)會(huì)了如何使用匯編來(lái)進(jìn)行編程,掌握匯編編程和C語(yǔ)言編程的技巧,并且能夠熟練的使用匯編語(yǔ)言,深刻理解ARM的工作。并且培養(yǎng)了我們寫代碼的能力以及對(duì)代碼的閱讀能力和修改能力。為我們?cè)谝院蟮膶W(xué)習(xí)和生活中更實(shí)用ARM,利用匯編進(jìn)行編程奠定了一定的基礎(chǔ)!

      第三篇:嵌入式實(shí)驗(yàn)報(bào)告

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

      實(shí)驗(yàn)報(bào)告 課程名稱:嵌入式微處理器系統(tǒng)及應(yīng)用 學(xué) 院:計(jì)算機(jī)科學(xué)與工程 專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名:廖雪平學(xué) 號(hào):2011060120003 指導(dǎo)教師:陳麗蓉

      日 期:2014年5月15日

      電子科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心

      電 子 科 技 大 學(xué)

      實(shí)

      驗(yàn)

      報(bào)

      實(shí)驗(yàn)一

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

      一、實(shí)驗(yàn)學(xué)時(shí):4

      二、實(shí)驗(yàn)內(nèi)容和目的:

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

      M處理器指令編程基礎(chǔ)實(shí)驗(yàn)

      ARM處理器工作模式實(shí)驗(yàn)

      ARM處理器異常處理實(shí)驗(yàn)

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

      三、實(shí)驗(yàn)原理:

      M處理器指令編程基礎(chǔ)。

      ARM處理器工作模式

      ARM處理器異常處理

      四、實(shí)驗(yàn)器材(設(shè)備、元器件)

      Pc機(jī)、開發(fā)板

      五、實(shí)驗(yàn)步驟

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

      2、運(yùn)行程序熟悉環(huán)境并對(duì)開發(fā)板進(jìn)行測(cè)試。

      3、編寫程序并調(diào)試運(yùn)行

      4、完成實(shí)驗(yàn)內(nèi)容。

      5、調(diào)試并撰寫實(shí)驗(yàn)報(bào)告。

      六、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析:

      實(shí)驗(yàn)代碼:

      實(shí)驗(yàn)截圖:

      電子科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心

      七、實(shí)驗(yàn)結(jié)論、心得體會(huì)和改進(jìn)建議:

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

      電子科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心 電 子 科 技 大 學(xué)

      實(shí)

      驗(yàn)

      報(bào)

      實(shí)驗(yàn)二

      一、實(shí)驗(yàn)名稱:UART串口通訊實(shí)驗(yàn)

      二、實(shí)驗(yàn)學(xué)時(shí):4

      三、實(shí)驗(yàn)內(nèi)容和目的:

      1)

      在已有串口驅(qū)動(dòng)軟件及測(cè)試程序的基礎(chǔ)上,修改測(cè)試程序,嘗試對(duì)串口的各項(xiàng)通訊參數(shù)進(jìn)行修改,并調(diào)整相應(yīng)的與主機(jī)的連接配置,以便修改參數(shù)后的串口仍然能夠正常通訊;

      2)通過(guò)查閱芯片手冊(cè),嘗試自行實(shí)現(xiàn)串口的初始化函數(shù),替代已有驅(qū)動(dòng)軟件庫(kù)中的串口初始化函數(shù),并通過(guò)測(cè)試程序驗(yàn)證自行編寫的函數(shù)的正確性。

      四、實(shí)驗(yàn)原理:UART串口通訊原理

      五、實(shí)驗(yàn)器材(設(shè)備、元器件)

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

      六、實(shí)驗(yàn)步驟:

      1、了解實(shí)驗(yàn)內(nèi)容

      2、修改測(cè)試程序調(diào)整連接配置以便修改參數(shù)后的串口仍然能夠正常通訊

      2、編寫實(shí)驗(yàn)代碼

      3、測(cè)試驗(yàn)證自行編寫的函數(shù)的正確性。

      七、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析:

      實(shí)驗(yàn)代碼:

      電子科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心

      實(shí)驗(yàn)截圖:

      電子科技大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心

      八、實(shí)驗(yàn)結(jié)論、心得體會(huì)和改進(jìn)建議:

      通過(guò)本實(shí)驗(yàn)讓我對(duì)串口程序的編寫有初步的了解,已經(jīng)對(duì)軟硬件間的銜接更加深刻的理解

      第四篇:嵌入式實(shí)驗(yàn)報(bào)告

      北京科技大學(xué)

      黃強(qiáng)

      41050176

      嵌入式實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)一 建立并編譯WinCE平臺(tái)

      【實(shí)驗(yàn)?zāi)康摹?/p>

      掌握PB下WinCE平臺(tái)的定制 【實(shí)驗(yàn)內(nèi)容】

      開始利用Platform Builder定制平臺(tái)并編譯 【實(shí)驗(yàn)流程】

      1. 將OURS-PXA270-EP實(shí)驗(yàn)箱的電源線、串口、網(wǎng)線、同步線、鼠標(biāo)等全部連接。

      2. 由于已經(jīng)安裝好了BSP,我們可以直接打開Platform Builder5.0。3. 新建Platform Builder工程,在建立向?qū)е羞M(jìn)行名稱、路徑、BSP選擇、設(shè)計(jì)模板、可選項(xiàng)目等的設(shè)置,完成WinCE平臺(tái)的建立。

      北京科技大學(xué)

      黃強(qiáng)

      41050176 4. 設(shè)置編譯平臺(tái)的參數(shù)。

      5. 構(gòu)建新建里的WinCE平臺(tái)的運(yùn)行時(shí)映像。整個(gè)過(guò)程大約持續(xù)20分鐘,構(gòu)建成功后得到操作系統(tǒng)運(yùn)行時(shí)的映像?!緦?shí)驗(yàn)結(jié)果】 見nk.bin 【小結(jié)】

      通過(guò)這個(gè)實(shí)驗(yàn),我們初步接觸了PXA270EP實(shí)驗(yàn)箱,并通過(guò)Platform的建立,對(duì)Platform Builder有了一個(gè)初步了解,同時(shí)也對(duì)嵌入式開發(fā)的過(guò)程有了一個(gè)初步認(rèn)識(shí),掌握了PB下WinCE平臺(tái)的定制。

      實(shí)驗(yàn)二 定制增強(qiáng)型內(nèi)核

      【實(shí)驗(yàn)?zāi)康摹?/p>

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

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

      2.利用Platform Builder定制一個(gè)增強(qiáng)型內(nèi)核,并下載到內(nèi)存中?!緦?shí)驗(yàn)內(nèi)容】

      參照本實(shí)驗(yàn)指導(dǎo)書的步驟,定制一個(gè)包括Word(支持中文輸入法)、圖片瀏覽器、MediaPlayer、支持USB鼠標(biāo)、鍵盤,并能通過(guò)USB從設(shè)備接口進(jìn)行宿主機(jī)與目標(biāo)版通信的內(nèi)核。

      北京科技大學(xué)

      黃強(qiáng)

      41050176 【實(shí)驗(yàn)流程】

      1.打開已創(chuàng)建好的PB,在PB右邊的Catalog中添加其他組件。這里我們所做的與實(shí)驗(yàn)指導(dǎo)書上的不同,為了更好的配合我們的實(shí)驗(yàn),我們所添加的內(nèi)容有: ·Third Party-BSPs-OURS PXA270-Device Drivers-OEM Devices下所有內(nèi)容?!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開始構(gòu)建,編譯的結(jié)果生成了Eboot和NK.bin映像文件。

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

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

      5.當(dāng)完成Eboot配置后,按下D,準(zhǔn)備下載內(nèi)核的映像文件NK.bin到實(shí)驗(yàn)箱上。6.再進(jìn)行PB里面的目標(biāo)設(shè)備的配置。7.對(duì)映像文件進(jìn)行下載。

      映像文件傳輸完成后,Eboot會(huì)根據(jù)設(shè)置,自動(dòng)燒寫到內(nèi)存中,完成燒寫以后,WinCE會(huì)自動(dòng)啟動(dòng)。至此,一個(gè)功能較強(qiáng)的內(nèi)核定制成功了?!緦?shí)驗(yàn)結(jié)果】 略 【小結(jié)】

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

      北京科技大學(xué)

      黃強(qiáng)

      41050176

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

      【實(shí)驗(yàn)?zāi)康摹?/p>

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

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

      1. 在已經(jīng)建立好的PB中,新建一個(gè)SDK文件。2. 按步驟完成SDK的配置

      3. 點(diǎn)擊Build SDK 這個(gè)過(guò)程大概要3分鐘,在指定目錄下生成SDK文件。4. 安裝剛生成的SDK,之后即可在此模擬器上運(yùn)行開發(fā)好的應(yīng)用程序?!緦?shí)驗(yàn)結(jié)果】

      北京科技大學(xué)

      黃強(qiáng)

      41050176 見SDK文件

      【小結(jié)】

      SDK的概念其實(shí)對(duì)我們來(lái)說(shuō)還是相對(duì)陌生的,在實(shí)驗(yàn)的過(guò)程中由于概念不了解我們并不太清晰的知道我們?cè)谧鍪裁矗钡轿覀儾殚啿⒘薙DK的相關(guān)概念后才有所收獲。SDK實(shí)際上是一個(gè)開發(fā)工具包,我們根據(jù)自己的開發(fā)需要,針對(duì)于自己的PB定制了一個(gè)專用開發(fā)工具包來(lái)便于我們的模擬開發(fā)。經(jīng)過(guò)這個(gè)實(shí)驗(yàn),我們了解了更多關(guān)于軟件開發(fā)的知識(shí),接觸到了許多課堂上所學(xué)不到的內(nèi)容,受益匪淺。

      實(shí)驗(yàn)五 建立宿主機(jī)與實(shí)驗(yàn)箱的連接

      【實(shí)驗(yàn)?zāi)康摹?/p>

      學(xué)習(xí)并掌握利用SMSC91C111網(wǎng)口建立宿主機(jī)與實(shí)驗(yàn)箱的連接 【實(shí)驗(yàn)內(nèi)容】

      利用SMSC91C111網(wǎng)口建立宿主機(jī)與實(shí)驗(yàn)箱的連接 【實(shí)驗(yàn)設(shè)備】

      1.OURS-PXA270-EP實(shí)驗(yàn)儀,燒錄有WINCE的Flash,交叉網(wǎng)線,USB數(shù)據(jù)線。2.PC操作系統(tǒng),Platform Builder5.0集成開發(fā)環(huán)境?!緦?shí)驗(yàn)步驟】

      1.在PB的菜單下,點(diǎn)Remote File Viewer擊。

      北京科技大學(xué)

      黃強(qiáng)

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

      3.選好目標(biāo)設(shè)備,并單擊右邊的“Properties”按鈕。

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

      5.在彈出的對(duì)話框“Transport Configuration”中可以設(shè)置超時(shí)值、端口號(hào)、主機(jī)IP等。

      6.設(shè)置完畢后,打開實(shí)驗(yàn)箱電源,啟動(dòng)WinCE平臺(tái),將宿主機(jī)與實(shí)驗(yàn)箱網(wǎng)口用交叉線連接號(hào),點(diǎn)擊“Text”按鈕。

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

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

      10.成功上傳文件,可以在實(shí)驗(yàn)設(shè)備上看到上傳的文件。11.至此,利用SMSC91C111網(wǎng)口建立連接完畢?!緦?shí)驗(yàn)結(jié)果】

      實(shí)驗(yàn)失敗 【小結(jié)】

      通過(guò)這次試驗(yàn),我們掌握了利用SMSC91C111網(wǎng)口建立宿主機(jī)與實(shí)驗(yàn)箱的連接的方法,實(shí)驗(yàn)中要求IP地址與宿主機(jī)地址在同一網(wǎng)段,實(shí)驗(yàn)中解決了這個(gè)問(wèn)題,讓我們對(duì)網(wǎng)絡(luò)相關(guān)的概念也加深了理解。經(jīng)過(guò)多次試驗(yàn),我們還是無(wú)法連通宿主機(jī)與實(shí)驗(yàn)箱,我認(rèn)為我們的步驟沒(méi)有問(wèn)題,可能是設(shè)備有故障。

      北京科技大學(xué)

      黃強(qiáng)

      41050176

      實(shí)驗(yàn)六 USB Device建立宿主機(jī)與實(shí)驗(yàn)箱的連接

      【實(shí)驗(yàn)?zāi)康摹?/p>

      學(xué)習(xí)并掌握利用USB Device建立宿主機(jī)與實(shí)驗(yàn)箱的連接 【實(shí)驗(yàn)內(nèi)容】

      利用USB Device建立宿主機(jī)與實(shí)驗(yàn)箱的連接 【實(shí)驗(yàn)設(shè)備】

      1.OURS-PXA270-EP實(shí)驗(yàn)儀,燒錄有WINCE的Flash,交叉網(wǎng)線,USB數(shù)據(jù)線。2.PC操作系統(tǒng),Platform Builder5.0集成開發(fā)環(huán)境。【實(shí)驗(yàn)步驟】

      北京科技大學(xué)

      黃強(qiáng)

      41050176 1.ActiveSync安裝

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

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

      2.用USB延長(zhǎng)線連接試驗(yàn)箱和PC,當(dāng)PC發(fā)現(xiàn)新設(shè)備時(shí)安裝附帶的驅(qū)動(dòng),安裝完成后,打開Microsoft ActiveSync窗口進(jìn)行連接。

      選擇“否”然后點(diǎn)擊行“下一步”按鈕。

      3.在“我的電腦”中添加“我的設(shè)備”,它對(duì)應(yīng)于目標(biāo)系統(tǒng)的WINCE文件系統(tǒng)。注意:

      如果WINCE運(yùn)行以前USB線已經(jīng)連接到PC機(jī)的USB插座,可能導(dǎo)致連接不上,此時(shí),請(qǐng)將USB線拔下然后重新插入即可。4.通訊

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

      文件拷貝成功,可以成功將應(yīng)用程序下載到試驗(yàn)箱運(yùn)行,這樣我們就完成了宿主機(jī)與實(shí)驗(yàn)箱的通訊連接。【實(shí)驗(yàn)結(jié)果】

      北京科技大學(xué)

      黃強(qiáng)

      41050176

      【小結(jié)】

      通過(guò)實(shí)驗(yàn),我們掌握了利用USB Device建立宿主機(jī)與實(shí)驗(yàn)箱的連接的具體方法,并且連接成功,與上一個(gè)方法比較,該方法簡(jiǎn)單實(shí)用,成功率高,適合我們選用。

      實(shí)驗(yàn)七 在實(shí)驗(yàn)箱的WinCE平臺(tái)上的Hello World實(shí)驗(yàn)

      【實(shí)驗(yàn)?zāi)康摹?/p>

      北京科技大學(xué)

      黃強(qiáng)

      41050176 1.熟悉EVC集成開發(fā)環(huán)境以及相關(guān)配置。2.利用EVC編寫WinCE的應(yīng)用程序?!緦?shí)驗(yàn)內(nèi)容】

      參照本實(shí)驗(yàn)指導(dǎo)書的步驟,一步一步完成實(shí)驗(yàn),編寫、編譯并運(yùn)行HelloWorld程序 【實(shí)驗(yàn)設(shè)備】

      1.OURS-PXA270—EP實(shí)驗(yàn)儀,交叉網(wǎng)線。

      2.PC操作系統(tǒng),Platform Builder4.2集成開發(fā)環(huán)境,eMbedded Visual C++集成開發(fā)環(huán)境?!緦?shí)驗(yàn)結(jié)果】

      【小結(jié)】

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

      實(shí)驗(yàn)八 LED數(shù)碼管驅(qū)動(dòng)

      【實(shí)驗(yàn)?zāi)康摹?/p>

      北京科技大學(xué)

      黃強(qiáng)

      41050176 1.熟悉EVC集成開發(fā)環(huán)境以及相關(guān)配置 2.利用EVC編寫一個(gè)針對(duì)實(shí)際硬件的驅(qū)動(dòng)程序 【實(shí)驗(yàn)內(nèi)容】

      編寫一個(gè)針對(duì)硬件的驅(qū)動(dòng)程序,硬件是LED 【實(shí)驗(yàn)設(shè)備】

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

      【實(shí)驗(yàn)步驟】

      1.使用前面實(shí)驗(yàn)所制作的內(nèi)核 2.按照實(shí)驗(yàn)指導(dǎo)書上添加窗口及代碼 3.測(cè)試與調(diào)試 【實(shí)驗(yàn)結(jié)果】

      北京科技大學(xué)

      黃強(qiáng)

      41050176

      【小結(jié)】

      經(jīng)過(guò)本次實(shí)驗(yàn),我熟悉了EVC集成開發(fā)環(huán)境以及相關(guān)配置,在EVC中編寫了一個(gè)程序,通過(guò)實(shí)驗(yàn),對(duì)開發(fā)環(huán)境有了更深入地了解,為日后的課程設(shè)計(jì)打下了堅(jiān)實(shí)的基礎(chǔ)。

      第五篇:嵌入式實(shí)驗(yàn)報(bào)告

      西安郵電大學(xué)

      嵌入式處理器及應(yīng)用實(shí)驗(yàn)報(bào)告書

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

      級(jí)

      : : : :

      實(shí)驗(yàn)一

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

      一、實(shí)驗(yàn)?zāi)康模?/p>

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

      二、實(shí)驗(yàn)內(nèi)容:

      1.建立一個(gè)新的工程。

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

      三、實(shí)驗(yàn)步驟:

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

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

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

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

      四、程序清單:

      AREA

      Example1,CODE,READONLY

      ;聲明代碼段Example1

      ENTRY

      ;標(biāo)識(shí)程序入口

      CODE32

      ;聲明32 位ARM 指令

      START

      MOV

      R0,#15

      ;設(shè)置參數(shù)

      MOV

      R1,#8

      ADDS

      R0,R0,R1

      ;R0 = R0 + R1

      B

      START

      END

      五、心得體會(huì):

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

      實(shí)驗(yàn)二

      存儲(chǔ)器訪問(wèn)指令練習(xí)實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康模?/p>

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

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

      二、實(shí)驗(yàn)內(nèi)容:

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

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

      三、實(shí)驗(yàn)步驟:

      1.啟動(dòng)ADS 1.2,使用ARM Executable Image工程模板建立一個(gè)工程Instruction2。2.建立匯編源文件TEST2.S,編寫實(shí)驗(yàn)程序,然后添加到工程中。

      3.設(shè)置工程鏈接地址ROBase 為0x40000000,RW Base 為0x40003000。設(shè)置調(diào)試入口地址Image entry point 為 0x40000000。

      4.編譯鏈接工程,選擇Project —Debug,啟動(dòng)AXD進(jìn)行軟件仿真調(diào)試。

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

      四、程序清單:

      COUNT

      EQU

      0x40003100

      ;定義一個(gè)變量,地址為0x40003100

      AREA

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

      ENTRY

      ;標(biāo)識(shí)程序入口

      CODE32

      ;聲明32 位ARM 指令

      START

      LDR

      R1,=COUNT

      ;R1 <= COUNT

      MOV

      R0,#0

      ;R0 <= 0

      STR

      R0,[R1]

      ;[R1] <= R0,即設(shè)置COUNT 為0

      LOOP

      LDR

      R1,=COUNT

      LDR

      R0,[R1]

      ;R0 <= [R1]

      ADD

      R0,R0,#1

      ;R0 <= R0 + 1

      CMP

      R0,#10

      ;R0 與 10 比較,影響條件碼標(biāo)志

      MOVHS

      R0,#0

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

      STR

      R0,[R1]

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

      B

      LOOP

      END

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

      實(shí)驗(yàn)三

      數(shù)據(jù)處理指令練習(xí)實(shí)驗(yàn)

      一、實(shí)驗(yàn)?zāi)康模?/p>

      1.掌握ARM數(shù)據(jù)處理指令的使用方法。2.了解ARM指令靈活的第2個(gè)操作數(shù)。

      二、實(shí)驗(yàn)內(nèi)容:

      1.使用MOV和MVN指令訪問(wèn)ARM通用寄存器。

      2.使用ADD、SUB、AND、ORR、CMP和TST等指令完成數(shù)據(jù)加減運(yùn)算及邏輯運(yùn)算。

      三、實(shí)驗(yàn)步驟:

      1)啟動(dòng)ADS1.2,使用ARM Executable Image 工程模板建立一個(gè)工程Instruction3。2)建立匯編源文件TEST3.S ,編寫實(shí)驗(yàn)程序,然后添加到工程中。

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

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

      四、程序清單:

      X

      EQU

      ;定義X 的值為11

      Y

      EQU

      ;定義Y 的值為8

      BIT23

      EQU

      (1<<23)

      ;定義BIT23 的值為0x00800000

      AREA

      Example3,CODE,READONLY

      ;聲明代碼段Example3

      ENTRY

      ;標(biāo)識(shí)程序入口

      CODE32

      ;聲明32 位ARM 指令

      START

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

      MOV

      R0,#X

      ;R0 <= X,X 的值必須是8 位圖數(shù)據(jù)

      MOV

      R1,#Y

      ;R1 <= Y,Y 的值必須是8 位圖數(shù)據(jù)

      ADD

      R3,R0,R1

      ;即是R3 = X + Y

      MOV

      R8,R3

      ;R8 <= R3

      ;使用MOV、MVN、SUB 指令實(shí)現(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;;};設(shè)x 為R0,y 為R1,key 為R2(x、y、key 均為無(wú)符號(hào)整數(shù))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

      ;分配堆棧空間

      AREA

      MyStacks, DATA, NOINIT, ALIGN=2

      UsrStackSpace

      SPACE

      USR_STACK_LEGTH * 4

      ;用戶(系統(tǒng))模式堆??臻g

      SvcStackSpace

      SPACE

      SVC_STACK_LEGTH * 4

      ;管理模式堆??臻g

      IrqStackSpace

      SPACE

      IRQ_STACK_LEGTH * 4

      ;中斷模式堆棧空間

      FiqStackSpace

      SPACE

      FIQ_STACK_LEGTH * 4

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

      AbtStackSpace

      SPACE

      ABT_STACK_LEGTH * 4

      ;中止義模式堆棧空間

      UndtStackSpace

      SPACE

      UND_STACK_LEGTH * 4

      ;未定義模式堆棧

      END

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

      實(shí)驗(yàn)六

      C語(yǔ)言程序?qū)嶒?yàn)

      一、實(shí)驗(yàn)?zāi)康模?/p>

      通過(guò)實(shí)驗(yàn)了解使用ADS 1.2編寫C語(yǔ)言程序,并進(jìn)行調(diào)試。

      二、實(shí)驗(yàn)內(nèi)容:

      編寫一個(gè)匯編程序文件和一個(gè)C程序文件。匯編程序的功能是初始化堆棧指針和初始化C程序的運(yùn)行環(huán)境,然后跳轉(zhuǎn)到C程序運(yùn)行,這就是一個(gè)簡(jiǎn)單的啟動(dòng)程序。C程序使用加法運(yùn)算來(lái)計(jì)算1+2+3+…+(N-1)+N的值(N為0時(shí),結(jié)果為0;N為1時(shí),結(jié)果為1)。

      三、實(shí)驗(yàn)步驟:

      1.啟動(dòng)ADS1.2,使用ARM Executable Image 工程模板建立一個(gè)工程ProgramC。2.建立匯編源文件Startup.s和Test.c,編寫實(shí)驗(yàn)程序,然后添加到工程中。

      3.設(shè)置工程鏈接地址RO Base為0x40000000,RW Base為0x40003000。設(shè)置調(diào)試入口地址Image entry point 為 0x40000000。

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

      5.編譯鏈接工程,選擇Project—Debug,啟動(dòng)AXD進(jìn)行軟件仿真調(diào)試。6.在Startup.s的“B Main”處設(shè)置斷點(diǎn),然后全速運(yùn)行程序。

      7.程序在斷點(diǎn)處停止。單步運(yùn)行程序,判斷程序是否跳轉(zhuǎn)到C程序中運(yùn)行。

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

      四、程序清單:

      #define uint8

      unsigned char

      #define uint32

      unsigned int

      #define N

      uint32 sum;

      // 使用加法運(yùn)算來(lái)計(jì)算 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

      簡(jiǎn)單的起動(dòng)代碼

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

      IMPORT

      |Image$$RO$$Limit|

      IMPORT

      |Image$$RW$$Base|

      IMPORT

      |Image$$ZI$$Base|

      IMPORT

      |Image$$ZI$$Limit|

      IMPORT

      Main

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

      AREA

      Start,CODE,READONLY

      ;聲明代碼段Start

      ENTRY

      ;標(biāo)識(shí)程序入口

      CODE32

      ;聲明32 位ARM 指令

      Reset

      LDR

      SP,=0x40003F00

      ;初始化C 程序的運(yùn)行環(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

      ;跳轉(zhuǎn)到 C 程序代碼Main()函數(shù)

      END

      五、心得體會(huì):通過(guò)本次實(shí)驗(yàn),我學(xué)會(huì)并掌握使用ADS 1.2編寫C語(yǔ)言程序,并進(jìn)行調(diào)試。這次實(shí)驗(yàn)不同于前幾次,必須在一個(gè)工程里面同時(shí)加載兩個(gè)文件,分別是“。c”和“.s”文件。

      下載南昌大學(xué)嵌入式實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三范文大全word格式文檔
      下載南昌大學(xué)嵌入式實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三范文大全.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


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

      相關(guān)范文推薦

        嵌入式實(shí)驗(yàn)報(bào)告

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

        嵌入式實(shí)驗(yàn)報(bào)告

        目錄 實(shí)驗(yàn)一 跑馬燈實(shí)驗(yàn) ......................................................................... 1 實(shí)驗(yàn)二 按鍵輸入實(shí)驗(yàn) ...............................................

        嵌入式實(shí)驗(yàn)報(bào)告

        嵌入式系統(tǒng)及應(yīng)用課 程設(shè)計(jì)報(bào)告姓名:陳宥祎 班級(jí):14級(jí)計(jì)算機(jī)01班 學(xué)號(hào):1255010116 指導(dǎo)老師:黃衛(wèi)紅 按鍵輸入實(shí)驗(yàn) 一.實(shí)驗(yàn)簡(jiǎn)介 在實(shí)驗(yàn)一的基礎(chǔ)上,使用按鍵控制流水燈速度,及使用......

        單片機(jī)與嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告三

        武夷學(xué)院實(shí)驗(yàn)報(bào)告課程名稱:__單片機(jī)與嵌入式技術(shù)__ 項(xiàng)目名稱:鍵盤中斷編程姓名:_安小圣_ 專業(yè):_計(jì)科_ 班級(jí):_10(2)班__學(xué)號(hào):_20104061049___同組成員_____無(wú)____1 注:1、實(shí)驗(yàn)準(zhǔn)備部分......

        嵌入式實(shí)驗(yàn)四實(shí)驗(yàn)報(bào)告(共五則范文)

        專業(yè):自動(dòng)化1402 日期:2016.11.01 地點(diǎn):教2-104 成績(jī):________________ 實(shí)驗(yàn)報(bào)告 同組學(xué)生姓名:施興棋學(xué)號(hào):3140103039 同組學(xué)生姓名:______________________________學(xué)號(hào):_________......

        嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告

        廣西工學(xué)院鹿山學(xué)院 實(shí) 驗(yàn) 報(bào) 告 課程名稱: 嵌入式系統(tǒng) 指導(dǎo)教師: 劉瑞琪 班 級(jí): 自動(dòng)化101 姓 名: 楊杰 學(xué) 號(hào): 20102787 成績(jī)?cè)u(píng)定: 指導(dǎo)教師簽字: 2013年5月25日 實(shí)驗(yàn)一簡(jiǎn)單的......

        嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告

        嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告 班 級(jí):學(xué) 號(hào):姓 名:成 績(jī):指導(dǎo)教師: 20110612 2011061208 李曉虹 武俊鵬、劉書勇 1. 實(shí)驗(yàn)一 1.1 實(shí)驗(yàn)名稱 博創(chuàng)UP-3000實(shí)驗(yàn)臺(tái)基本結(jié)構(gòu)使用方法 1.2......

        嵌入式系統(tǒng)實(shí)驗(yàn)報(bào)告

        嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告 班 級(jí): 學(xué) 號(hào): 姓 名: 成 績(jī): 指導(dǎo)教師: 1. 實(shí)驗(yàn)一 1.1 實(shí)驗(yàn)名稱 博創(chuàng)UP-3000實(shí)驗(yàn)臺(tái)基本結(jié)構(gòu)及使用方法 1.2 實(shí)驗(yàn)?zāi)康?1.學(xué)習(xí)嵌入式系統(tǒng)開發(fā)流程。 2.熟悉U......