ARM嵌入式-ADS-1.2-集成开发环境练习实验报告

合集下载

嵌入式实验1

嵌入式实验1

实验目的:1熟悉ADS1.2软件开发环境。

2 掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序。

3掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。

实验内容:使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10,则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址。

使用ADS1.2软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口(Processor Registers)监视R0,R1的值,打开存储器观察窗口(Memory)监视0x30003100 上的值。

程序流程图:程序清单:COUNT EQU 0x30003100 ;定义地址0x30003100的值为COUNTAREA Example1,CODE,READONLY ;定义Example代码段,属性只读ENTRY ;指定应用程序入口点CODE32 ;通知编译器其后的指令为32位ARM指令START LDR R1,=COUNT ;取COUNT地址给R1MOVE R0,#0STR R0,[R1] ;将R0中的子数据写入以R1为地址的储存器中LOOP LDR R1,=COUNT ;取COUNT地址给R1LDR R0,[R1] ;将R1地址的子数据读入寄存器R0中ADD R0,R0,#1 ;R0数据加一CMP R0,#10 ;将值与10比较MOVHS R0,#0 ;C=1即大于或等于,将0写入原地址STR R0,[R1] ;小于将R0写入原地址B LOOP ;跳转至LOOPEND调试内容:1.启动ADS1.2,使用ARM Executable Image工程模板建立一个工程arm1.mcp。

2.建立汇编源文件arm1.s,编写实验程序,然后添加到工程中。

3.设置工程连接地址RO Base为0x30000000,RW Base为0x30003000,设置调试口地址Image entry point为0x30000000。

嵌入式实验一

嵌入式实验一

洛阳理工学院实验报告系别计信学院班级学号姓名课程名称嵌入式教程实验日期2019.10.23 实验名称实验一 ADS 1.2 集成开发环境练习成绩实验目的:了解 ADS 1.2 集成开发环境的使用方法。

实验设备:硬件:PC 机一台软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境实验内容:1.建立一个新的工程;启动ADS1.2 IDE 集成开发环境,选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,工程名称为 ADS,见下图1。

(图1)2.建立一个 C 源文件,并添加到工程中;选择【File】->【New…】建立一个新的文件 TEST1.S,设置直接添加到项目中,见图2。

输入如文件TEST1.S程序清单1所示的代码,并保存,见图3。

(图2)文件 TEST1.S程序清单1:AREA Example1,CODE,READONLY; 声明代码段 Example1ENTRY; 标识程序入口CODE32; 声明 32 位 ARM 指令START MOV R0,#15; 设置参数MOV R1,#8ADDS R0,R0,R1; R0 = R0 + R1B STARTEND(图3)3.设置编译连接控制选项;4.选择【Edit】->【DebugRel Settings…】,在 DebugRel Settings 对话框的左边选择ARMLinker 项,然后在Output 页设置连接地址如图4,在Options 页设置调试入口地址如图5。

(图4)(图5)5.编译连接工程。

选择【Project】->【Make】,将编译连接整个工程。

6.思考(1)工程模板有何作用?答:编译控制设置(2)如何强行重新编译工程的所有文件?答:选择【Project】->【Remove Object Code…】删除工程中的*.obj文件。

ARM9实验

ARM9实验

实验一:ADS 1.2集成开发环境练习1.1 实验目的:了解ADS1.2集成开发环境的使用方法1.2 实验设备:①硬件:PC机②软件:Windows xp系统,ADS1.2集成开发环境1.3 实验内容:①建立一个新的工程;②建立一个汇编文件,并添加到工程中;③设置文本编辑器支持中文;④设置编译链接控制选项;⑤编译链接工程;⑥调试工程1.4 实验步骤①新建一个目录。

启动ADS1.2,选择File-New,使用ARM Executable Image 工程模板建立一个工程;②选择File-New中的File新建一个新的汇编文件*.s,并添加到刚才的项目中,并选中三种生成文件。

③编写*.s中的内容:把R0和R1中的内容相加并保存到R0中④设置Edit-Perference-Font & Tabs:Font:Fixedsys;选中Tab Inserts Spaces⑤设置Edit-DebugRel Settings-ARM Linker:Output-Simple:ROBase-0x40000000,RW Base-0x40003000Options-Image entry point:0x40000000⑥P roject-Make:编译链接工程⑦P roject-Debug:调试追踪程序1.5 思考强行重新编译工程的所有文件:Project-Remove Object code,删除工程中的*.obj文件*.s 文件程序参考:AREA Example1, CODE,READONL Y ;声明代码段ExampleENTRY ;声明程序入口CODE32 ;声明32位ARM指令STARTMOV R0, #15 ;设置参数MOV R1,#8ADDS R0,R0,R1 ;R0=R0+R1B STARTEND实验二:汇编指令实验2.1 实验目的:①了解ADS1.2集成开发环境的使用方法;②掌握ARM 汇编指令的用法,并能编写简单的汇编程序;③掌握指令的条件执行和使用LDR/STR指令完成存储器的访问2.2 实验设备:①硬件:PC机②软件:Windows xp系统,ADS1.2集成开发环境2.3 实验内容:①使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写原地址。

arm嵌入式实验报告完整版

arm嵌入式实验报告完整版

arm嵌入式实验报告完整版篇一:ARM嵌入式系统实验报告1郑州航空工业管理学院嵌入式系统实验报告第赵成,张克新院姓专学系:名:业:号:电子通信工程系周振宇物联网工程 121309140电子通信工程系XX年3月制实验一 ARM体系结构与编程方法一、实验目的了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。

二、实验内容1.ADS1.2 IDE的安装、环境配置及工程项目的建立;2.ARM汇编语言程序设计(参考附录A):(1)两个寄存器值相加;(2)LDR、STR指令操作;(3)使用多寄存器传送指令进行数据复制;(4)使用查表法实现程序跳转;(5)使用BX指令切换处理器状态;(6)微处理器工作模式切换;三、预备知识了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。

四、实验设备 1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置操作系统:Microsoft Windows XP Professional Service Pack 2;集成开发环境:ARM Developer Suite (ADS)1.2。

五、实验分析1.安装的ADS1.2 IDE中包括两个软件组件。

在ADS1.2中建立 ARM Executable Image(ARM可执行映像)类型的工程,工程目标配置为 Debug;接着,还需要对工程进行目标设置、语言设置及链接器设置;最后,配置仿真环境为ARMUL仿真方式。

2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。

Get清风ARM嵌入式ADS1.2集成开发环境练习实验报告

Get清风ARM嵌入式ADS1.2集成开发环境练习实验报告

ARM嵌入式-ADS-1.2-集成开发环境练习实验报告专业班级:学号:实验名称:姓名:实验所属课程:实验室(中心):指导教师:实验完成时间:年月日一、实验目的:了解ADS 1.2 集成开发环境的使用方法。

二、实验设备:1.硬件:PC 机一台2.软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境三、实验内容:1.建立一个新的工程;2.建立一个C 源文件,并添加到工程中;3.设置文本编辑器支持中文;4.设置编译链接控制选项;5.编译链接工程;6.调试工程。

四、实验预习要求:仔细阅读产品光盘附带文档?ADS 集成开发环境及仿真器应用?或其它相关资料,了解ADS 工程编辑的内容。

五、实验步骤:1. 启动ADS1.2 IDE 集成开发环境,选择【File】->【New…】,使用ARM Executable Image 工程模板建立一个工程,工程名称为ADS,见图。

图2.1 建立ARM 指令代码的工程2.选择【File】->【New…】建立一个新的文件,设置直接添加到工程中,见图。

输入如程序清单2.1 所示的代码,并保存,见图。

图2.2 新建文件程序清单2.1 TEST1.S 文件代码AREA Example1,CODE,READONLY ; 声明代码段Example1ENTRY ; 标识程序入口CODE32 ; 声明32 位ARM 指令START MOV R0,#15 ; 设置参数MOV R1,#8ADDS R0,R0,R1 ; R0 = R0 + R1B STARTEND图2.3 添加了TEST1.S 的工程管理窗口3. 由于ADS 安装以后默认字体是Courier New,对于中文支持不完善,因此建议修改字体。

选择【Edit】->【Perferences…】,可以看见以下对话框,如图 2.4 所示。

在Font 选项设置字体是Fixedsys,Script 是CHINESE_GB2312 。

嵌入式报告1

嵌入式报告1

中南大学嵌入式系统与单片机实验报告学生姓名惠苗壮指导教师贺建飚学院信息科学与工程学院专业班级计科0904班学号 0909091627 完成时间 2012年4月10日ARM汇编指令实验一一.实验目的:实验A:1)初步学会使用ADS1.2集成开发环境及ARM软件模拟器;2)通过实验掌握简单ARM汇编指令的使用方法。

实验B:该实验通过使用MOV/STR等指令完成简单的加操作运算1.参照实验A和本实验的实验参考程序,简历工程asml_b;2.建立并编辑asml_b.s,添加新建立的文件到工程中;3.参照实验A的步骤完成目标代码的生成与调试;4.理解和掌握实验和完成实验练习题。

二.实验设备:1.硬件:PC机;2.软件:ADS1.2集成开发环境,Windows 98/2000/NT/XP。

三.实验内容:1.熟悉ADS开发环境,并使用LDR、STR和MOV等指令访问寄存器或存储单元;2.使用ADD/SUB/LSL/LSR/AND/ORR等指令完成基本数学/逻辑运算。

四.实验原理ARM处理器共有37个寄存器:31个通用寄存器.包括程序计数器(PC)这些寄存器都是32位的6个状态寄存器这些寄存器也是32位的,但只使用了其中的12位这里简要介绍通用寄存器1) ARM通用寄存器通用寄存器(R0-R15)可分为3类:末分组寄存器RO-R7、分组寄存器R8- R14和程序计数器R15(1)末分组寄存器R0-R7 。

RO-R7是不分组寄存器。

这意味着在所有处理器模式下.它们每一个都访问一样的32位寄存器。

它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。

(2)分组寄存器R8-R14。

R8-R14是分组寄存器。

它们每一个访问的物理寄存器取决于当前的处理器模式若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。

寄存器R8-R12各有两组物理寄存器:一组为FIQ模式,另一组为除了FIQ 以外的所有模式寄存器R8-R12没有任何指定的特殊用途.只是使用R8-K14来简单地处理中断寄存器K13,K14各有n个分组的物理寄存器.l个用于用户模式和系统模式.其他5个分别用于只种异常模式寄存器R13通常用做堆栈指针.称为SP。

《嵌入式系统原理与应用》实验报告02-汇编指令实验2

《嵌入式系统原理与应用》实验报告02-汇编指令实验2

《嵌入式系统原理与应用》实验报告实验序号:02 实验项目名称:汇编指令实验21学号1207012117 姓名黄明专业、班实验地点实验楼1#318 指导教师黄鹏程实验时间4-18 一、实验目的1.了解ADS 1.2 集成开发环境及ARMulator 软件仿真;2.掌握ARM7TDMI 汇编指令的用法,并能编写简单的汇编程序;3. 通过实验了解如何使用 ARM 汇编指令实现结构化程序编程。

二、实验设备(环境)及要求硬件:PC机;软件:PC机操作系统windows XP,ADS1.2集成开发环境。

三、实验内容与步骤实验内容:使用 ARM 汇编指令实现 if条件执行;使用 ARM 汇编指令实现 for循环结构;使用 ARM 汇编指令实现 while 循环结构;使用 ARM 汇编指令实现 do…while 循环结构;使用 ARM 汇编指令实现 switch 开关结构。

实验步骤:1. 思考如何使用 ARM 汇编指令实现结构化编程,具体的条件自己设定。

比如if条件执行,if(x>y) z=0,设 x 为 R0,y为 R1,z 为 R2,汇编代码如何编写。

2. 启动 ADS 1.2,使用 ARM Executable Image 工程模板建立一个工程Instruction5。

3. 建立汇编源文件 TEST2.S,编写实验程序,然后添加到工程中。

4. 编译连接工程,选择【Project】->【Debug】,启动 AXD进行软件仿真调试。

5. 打开寄存器窗口(Processor Registers),选择 Current 项监视各寄存器的值。

6. 单步运行程序,判断程序是否按设计的程序逻辑执行。

四、实验结果与数据处理(1)if(x>y) z=100;else z=50;源程序:MOV R0,#101 ; 初始化x的值MOV R1,#250 ; 初始化y的值CMP R0,R1MOVHI R2,#100MOVLS R2,#50(2)for(i=0; i<10; i++){x++;}设x为R0,i为R2 (i、x均为无符号整数) 源程序:MOV R0,#0MOV R2,#0FOR_L1 CMP R2,#10BHS FOR_ENDADD R0,R0,#1ADD R2,R2,#1 ; i++B FOR_L1FOR_END NOP(3)while(x<=y) {x*=2;R0,y 为R1 (x、y 均为无符号整数)源程序:MOV R0,#1 ; 初始化x的值MOV R1,#10 ; 初始化y的值B WHILE_L2WHILE_L1 MOV R0,R0,LSL #1WHILE_L2 CMP R0,R1BLS WHILE_L1WHILE_END NOP(4)do{x--;} while(x>0);设x为R0 (x为无符号整数)源程序MOV R0,#5 ; 初始化x的值DOWHILE_L1 ADD R0,R0,#-1 ; 循环体,x--DOWHILE_L2 MOVS R0,R0 ; R0 ←R0,并影响条件码标志BNE DOWHILE_L1 ; 若R0不为0(即x不为0),则继续循环DOWHILE_END NOP(5); switch(key&0x0F); { case 0:; case 2:; case 3: x = key + y;; break;; case 5: x = key - y;; break;; case 7: x = key * y;; break;; default: x = 168;; break;; }; 设x为R0,y 为R1,key 为R2 (x、y、key 均为无符号整数)源程序MOV R1,#3 ; 初始化y的值MOV R2,#2 ; 初始化key的值SWITCH AND R2,R2,#0x0F ; switch(key&0x0F) CASE_0 CMP R2,#0 ; case 0:CASE_2 CMPNE R2,#2 ; case 2:CASE_3 CMPNE R2,#3 ; case 3:BNE CASE_5ADD R0,R2,R1 ; x = key + yB SWITCH_END ; breakCASE_5 CMP R2,#5 ; case 5:BNE CASE_7SUB R0,R2,R1 ; x = key - yB SWITCH_END ; breakCASE_7 CMP R2,#7 ; case 7:BNE DEFAULTMUL R0,R2,R1 ;x = key * yB SWITCH_END ; breakDEFAULT MOV R0,#168 ; default: x = 168 SWITCH_END NOPHALT B HALTEND五、分析与讨论六、教师评语成绩签名:日期:。

ADS1.2

ADS1.2

2. ARM C语言程序的基本规则 语言程序的基本规则 在ARM程序的开发中,需要大量读写硬件寄存器,并且尽 量缩短程序的执行时间的代码一般使用汇编语言来编写,比如 ARM的启动代码,ARM的操作系统的移植代码等,除此之外,绝 大多数代码可以使用C语言来完成。 C语言使用的是标准的C语言,ARM的开发环境实际上就是嵌入 了一个C语言的集成开发环境,只不过这个开发环境和ARM的硬 件紧密相关。 在使用C语言时,要用到和汇编语言的混合编程。当汇编代 码较为简洁,则可使用直接内嵌汇编的方法,否则,使用将汇编 文件以文件的形式加入项目当中,通过ATPCS的规定与C程序相 互调用与访问。 ATPCS,就是ARM、Thumb的过程调用标准 (ARM/Thumb Procedure Call Standard),它规定了一些子程 序间调用的基本规则。如寄存器的使用规则,堆栈的使用规则, 参数的传递规则等。
图2-1-10
8. 到此,在ADS1.2中的基本设置已经完成,可以将该新建的空 的项目文件作为模板保存起来。首先,要将该项目工程文件改一个 合适的名字,如S3C2410 ARM.mcp等,然后,在ADS1.2软件安 装的目录下的Stationary 目录下新建一个合适的模板目录名,如, S3C2410 ARM Executable Image,再将刚刚设置完的S3c2410 ARM.mcp项目文件存放到该目录下即可。这样,就能在图2-1-10中 看到该模板。 9.新建项目工程后,就可以执行菜单 Project|Add Files把和工程 所有相关的文件加入,ADS1.2不能自动进行文件分类,用户必须 通过 Project|Create Group 来创建文件夹,然后把加入的文件选中, 移入文件夹。或者鼠标放在文件填加区,右键点击,即出!如图21-11

嵌入式实验报告

嵌入式实验报告

实验一 ARM汇编语言程序设计一、实验目的1.了解IAR Embedded Workbench 集成开发环境2.掌握ARM汇编指令程序的设计及调试二、实验设备1.PC操作系统WIN98或WIN2000或WINXP,ADSI.2集成开发环境,仿真驱动程序三、实验内容1.熟悉IAR Embedded Workbench 集成开发环境2.理解下列程序,新建工程,加入下面的程序,并观察实验结果,解释程序实现的功能分析:该程序实现的功能是程序功能:Y = A*B+C*D+E*F程序代码:AREA Examl, CODE,READONLY ;定义一个代码段ENTRY ;程序入口MOV R0,#0;设置R0寄存器的值为0MOV R8,#0;设置R8寄存器的值为0ADR R2,N;将R2寄存器的值设为数据域N的地址LDR R1,[R2];将以R2的值为地址的数据读入R1MOV R2,#0;设置R2的值为0ADR R3,C; 将R3寄存器的值设为数据域C的地址ADR R5,X; 将R5寄存器的值设为数据域X的地址LOOPLDR R4,[R3,R8];将R3+R8的数据读入R4LDR R6,[R5,R8];将R5+R8的数据读入R6MUL R9,R4,R6;R9 = R4*R6ADD R2,R2,R9;R2 = R2+R9ADD R8,R8,#4;R8 = R8+4ADD R0,R0,#1;R0 = R0+1CMP R0,R1;比较R0和R1的值BLT LOOP;R0<R1的话执行循环N DCD 0X03;C DCD 0X01,0X02,0X03,0X04,0X05,0X06;X DCD 0X01,0X02,0X03,0X04,0X05,0X06;END程序结果:各个寄存器的结果执行结果如下:3.实现1+2+3+4+····+100,求的值,并保存在地址0x90018的地址里面程序代码:MOV R0,#100;设置R0寄存器的值为100LDR R2,=0X90018;设置R2寄存器指向地址0x90018MOV R1,#0;设置R1的值为0MOV R3,#0;设置R3的值为0LOOPADD R3,R3,R0;R3 = R3+R0SUB R0,R0,#1;R0 = R0-1CMP R0,R1;将R0和R1的值比较BNE LOOP;不相等的话继续执行循环STR R3,[R2];将R3的值装入到R2指向的地址块中。

ARM嵌入式实验报告

ARM嵌入式实验报告
点击【File】菜单,选择【New ...】即弹出 New 对话框,如图 2 所示。
选择工程模板为 ARM 可执行映象(ARM Executable Image)或 Thumb 可执行映象 (Thumb Executable Image),或 Thumb、ARM 交织映象(Thumb ARM Interworking Image), 然后在【Location】项选择项目存放途径,并在【Project name】项输入项目名称,点 击【确定】按钮即可建立相应工程。
void UART0_SendStr(uint8 const *str)
{ while(1)
{ if( *str == '\0' ) break;
UART0_SendByte(*str++);
// 发送数据
}
}
/**************************************************************************
; 功能 实现两个寄存器相加
; 说明 使用 ARMulate 软件仿真调试
AREA Example1,CODE,READONLY ; 声明代码段 Example1
ENTRY
; 标识程序入口
CODE32
; 声明 32 位 ARM 指令
START MOV R0,#0
; 设置参数
MOV R1,#10
LOOP BL ADD_SUB
; 调用子程序 ADD_SUB
B
LOOP
; 跳转到 LOOP
ADD_SUB ADDS R0,R0,R1 MOV PC,LR
; R0 = R0 + R1 ; 子程序返回

实验一__熟悉ADS1.2 开发环境及教学实验箱

实验一__熟悉ADS1.2 开发环境及教学实验箱

实验一熟悉ADS1.2 开发环境及教学实验箱一、实验目的1.熟悉ADS1.2开发环境,正确进行编译、下载、调试。

2.了解ARM9的结构特点3.了解VIVI引导程序常用命令的使用方法4.理解NAND FLASH的用途与分区方法5.掌握用VIVI下载ARM程序方法二、实验仪器设备及软件1.ARM9教学实验箱,PentiumII以上的PC机2.PC操作系统WINXP,ADS1.2集成开发环境三、实验原理1.ARM实验箱基本结构S3C2410核心板资源介绍NANDFLASH 32MB K9F5608U,8位总线占用地址空间0x0000 0000 – 0x01ff ffff 将OM[1:0]设置成00b(Nand BOOT)同步动态存储器HY57V561620,8MB 32位总线,占用地址空间0x3000 0000 –0x33ff ffff(BANK6,7)电源转换5V转成3.3V ,5V转成1.8V网卡芯片AX88796LFUSB(主/从接口)串口芯片MAX3232(电源电压3.3V)J-TAG接口LED灯(两个,接在GPIOG)实验箱其它电路SD卡接口电路键盘鼠标电路16键键盘电路扩展接口(8位,32位)外部温度传感器CPLD主板各芯片地址译码电路扩展从USB电路LED指示灯(8个,低电平亮)信号扩展电路(IDE接口)2.VIVI引导程序VIVI是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。

VIVI有两种工作模式:启动加载模式和下载模式。

启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,这时vivi的默认模式。

在下载模式下,vivi为用户提供一个命令行接口,通过接口可以使用vivi提供的一些命令。

(1)help显示vivi引导程序的命令信息(2)Part 操作MTD分区信息。

显示、增加、删除、复位、保存MTD分区part show 显示分区信息part add partname part_start_addr part_leng 0 添加分区part del partname 删除分区part save 保存part 分区信息(3)Load 把二进制文件载入Flash或RAMload flash partname x 使用xmodom协议通过串口下载文件并且烧写到partname分区load ram partname or addr x使用xmodom协议通过串口下载文件到内存中(4)param 操作vivi参数命令。

嵌入式系统——实验3_已做

嵌入式系统——实验3_已做

实验一:基于ADS的C语言程序实验一、实验环境PC机一台ADS 1.2集成开发环境一套二、实验目的通过实验了解使用ADS 1.2编写C语言程序,并进行调试。

三、实验内容编写一个汇编程序文件Startup.S和一个C程序文件Test.c。

汇编程序的功能是初始化堆栈指针和初始化C程序的运行环境,然后调跳转到C程序运行,这就是一个简单的启动程序。

C程序使用加法运算来计算1+2+3+...+(N-1)+N的值(N>0)。

四、实验预习要求(1)仔细阅读《ARM嵌入式系统》中第3和4章ARM指令系统的内容。

(2)仔细阅读产品配套光盘附带文档《ADS集成开发环境及仿真器应用》或其他相关资料,了解ADS工程编辑和AXD调试的内容。

(本实验使用软件仿真)五、实验步骤(1)启动ADS 1.2,使用ARM Executable Image工程模板建立一个工程ProgramC。

(2)建立源文件Startup.S和Test.c,编写实验程序,然后添加到工程中。

(3)设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。

设置调试入口地址Image entry point为Ox40000000。

(4)设置位于开始位置的起始代码段,如图1-1,1-2所示。

图1-1设置位于开始位置的起始代码段(1)图1-2 设置位于开始位置的起始代码段(2)(5)编译链接工程,选择Project—Debug,启动AXD进行软件仿真调试。

(6)在Startup.s的“B Main”处设置断点,然后全速动行程序。

(7)程序在断点处停止。

单步运行程序,判断程序是否跳转到C程序中运行。

(8)诜择Processor vlews—variables打开变量观察窗口,观察全局变量的值,然后单步/全速运行程序,判断程序的运算结果是否正确。

如图1-3所示。

图1-3 ARM实验3的运行观察结果六、思考题(1)在实验参考程序中,Startup.s文件的作用是什么?如果没有Startup.s文件,C程序运行会出错吗?作用:用于引导程序,特别是找到main函数的地址位置。

ADS1.2__实验报告

ADS1.2__实验报告

ADS1.2集成开发环境熟悉及调式学号:姓名:日期:一、实验目的及要求1、了解ADS1.2安装进程2、熟悉ADS1.2开发环境3、了解汇编程序运行进程、调试程序二、实验设备及要求1、实验室PC机2、实验软件ADS1.2三、实验内容及步骤一、软件的安装1、打开ADS1.2软件安装包2、双击“setup”进入安装界面,然后选择“NEXT”3、进入下一个安装界面,选择“YES”同意安装许可4、选择适合的安装途径,然后选择“NEXT”进入下一个安装界面5、进入下个安装界面,选择全安装“FULL”然后选择“NEXT”继续下步6、选择“NEXT”继续,其他选项选择默许直到开始安装界面7、安装完后,然后选择“下一步”8、进入下个界面选择“Install License”选择项,然后选择“下一步”9、进入这一步时需要到安装包里找到“CRACK”文件,把此文件复制到ADS1.2安装目录下。

复制完成后选择“Browse”,然后找到适才复制的文件夹,打开文件夹找到“LICENSE.dat”双击即可,然后选择“下一步”进入下一界面10、选择“finish”安装终止二、ADS1.2的应用1、新建工程项目文件通过“开始”——“程序”——“ARM DeveloperSuite v1.2”——“CodeWarrior for ARM DeveloperSuite”来打开软件,然后选择“file”——“New”将打开一个新窗口,该窗口包括Project、File、Object选项。

咱们新建工程选择Project 选项,将为咱们提供7个工程类型选择,依照需要咱们还能够自概念工程类型,那个地址不作具体介绍。

咱们实验选择的工程类型“ARM Executable Image”,在Project name下输入工程名,然后在“Location”——“set…”选择工程途径,然后创建工程文件夹并保留文件后,将自动生成一个以.mcp后缀的文件。

大学ARM嵌入式实验报告范文

大学ARM嵌入式实验报告范文

大学ARM嵌入式实验报告范文《嵌入式系统》实验报告姓名:学号:班级:2022年4月实验一ARM汇编指令实验1一、实验目的1.初步学会使用ADS1.2开发环境及ARM软件模拟器;2.通过实验掌握简单ARM汇编指令的使用方法。

二.实验设备1.硬件:PC机;2.软件:ADS1.2集成开发环境。

Window98/2000/NT/某P。

三.实验内容1.熟悉开发环境的使用,并使用LDR/STR和MOV等指令访问寄存器或存储单元。

2.使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。

四.实验原理ARM处理器共有37个寄存器:31个通用寄存器,包括程序计数器(PC),这些寄存器都是32位;6个状态寄存器,这些寄存器也是32位,但只使用了其中的12位。

1.ARM通用寄存器通用寄存器(R0~R15)可分为3类,即不分组寄存器R0~R7.分组寄存器R8~R14.程序计数器R15。

2.存储器格式ARM体系结构将存储器看作是从零地址开始的字节的线性组合。

字节0~3存放第一个字,字节4~7存放第2个字,以此类推。

ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。

五.实验程序1.实验A参考程序某EQU45:定义变量某,并赋值为45YEQU64:定义变量y,并赋值为64STACK_TOPEQU0某1000:定义栈顶0某1000AREAE某ample,CODE,READONLY:声明代码段ENTRY:标识入口STARTMOVSP,#STACK_TOPMOVR0,#某:某的值放入R0STRR0,[SP]:R0的值保存到堆栈MOVR0,#Y:y的值放入R0LDRR1,[SP]:取堆栈中的数到R1ADDR0,R0,R1STRR0,[p]STOPBSTOP:死循环END:结束2.实验B参考程序某EQU45:定义变量某,并赋值为45YEQU64:定义变量y,并赋值为64ZEQU87:定义变量z,并赋值为87STACK_TOPEQU0某1000:定义堆栈顶0某1000AREAHU某IANG,CODE,READONLY:声明代码段,只读ENTRY:标识入口STARTMOVR0,#某:某的值放入R0MOVR0,R0,LSL#8:R0的值乘以2的8次方MOVR1,#Y:y的值放入R1ADDR2,R0,R1,LSR#1:R1的值除以2加上r0的值放入R2MOVSP,#0某1000STRR2,[SP]MOVR0,#Z:z的值放入R0ANDR0,R0,#0某FF:取R0的低八位MOVR1,#Y:y的值放入R1ADDR2,R0,R1,LSR#1:R1的值除以2加上r0的值放入R2LDRR0,[SP]:y的值放入R1MOVR1,#0某01ORRR0,R0,R1MOVR1,R2:y的值放入R1ADDR2,R0,R1,LSR#1:R1的值除以2加上r0的值放入R2STOPBSTOP:死循环END:结束六.实验结果及分析1.程序A的实验结果截图如下:实验分析;本实验使用LDR、STR、MOV等指令访问寄存器和存储单元,使用堆栈和寄存器R0,R1存储变量。

嵌入式实验报告

嵌入式实验报告

实验模块一说明:该模块分为3个子实验,每个实验均为设计性实验,实验设计的内容由简到繁,系统功能在前序实验基础上逐渐增加。

实验一实验目的:掌握输出设备程序控制的原理实验设备:TCP-I实验箱,文祥500台式电脑实验内容:采用8086与8255组成系统,8个发光二极管为输出,编程实现控制8个发光二极管一盏灯循环点亮。

实验步骤:1、将输出端口引脚与LED相连2、编程实现对8个LED的输出控制将实验箱中的8255片选信号连接到218H~21FH,将8255的4个寄存器地址(A、B、C端口及控制字寄存器端口)设置为218H~21BH。

将8255的端口A的8个引脚:PA0~PA7与8个LED对应相连,然后打开实验箱电源,最后编程对8个LED进行显示控制。

程序如下:程序清单:CODE SEGMENTASSUME CS:CODESTART:MOV DX,21BHMOV AL,80HOUT DX,AL;工作方式初始化MOV DX,218HMOV AL,0FEH;设置输出数据,即显示模式MOV CX,80;设置循环次数XH:OUT DX,ALROL AL,1CALL DELAY;调用延迟程序LOOP XHMOV AH,4CHINT 21H;返回dosDELAY PROC;延迟子程序PUSH CXMOV BX,2000A0:MOV CX,3000A1:LOOP A1DEC BXJNZ A0POP CXRETDELAY ENDPCODE ENDSEND START实验总结:主要包括对实验结果、调试过程、错误及产生的原因的分析,以及本次实验的重要收获等。

此项为实验成绩评定的重要依据。

实验二实验目的:掌握输出设备程序控制的原理的基础上进一步掌握输入设备与输出设备协同控制的原理。

实验设备:TCP-I实验箱,文祥500台式电脑实验内容:采用8086与8255组成系统,8个发光二极管为输出,开关为输入。

编程实现控制8个发光二极管一盏灯循环点亮,并用开关控制显示状态的暂停。

嵌入式实验一二

嵌入式实验一二

实验一:开发环境实验实验学时:2实验类型:验证+设计实验要求:必做一、实验目的熟悉ADS1.2开发环境,掌握ARM汇编语言,能编写汇编程序实现一定功能,学会ARM仿真器的使用,使用ADS编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

二、实验设备计算机;博创UP-3000实验箱三、实验步骤1.打开ADS软件,新建工程,编写汇编程序,在数据段sourcedata中给定10个数字,实现数字排序功能,将结果存储在finaldata中,在ADS仿真环境下观察寄存器内容的变化。

2.打开ADS软件,按照《博创实验指导书》建立工程模板,了解各参数含义。

3.打开超级终端,与实验箱连接,以步骤2中的模板新建工程,导入“..\3000的ADS实验\Exp1开发环境实验”目录下所有文件,编译、下载、调试并跟踪程序运行,在超级终端中观察程序运行结果。

4.熟悉实验箱BIOS指令。

5.记录和整理实验报告四、实验报告内容1.画汇编程序流程图,附汇编程序源代码,并加注释及程序运行结果(截屏)。

2.简述通过ADS编译、下载、调试并跟踪程序的过程。

3.回答思考题。

五、思考题1.超级终端的作用是什么?2.ADS工程文件的Debug和Release版本有何不同,各有什么作用?实验二:串行口实验实验学时:2实验类型:设计实验要求:必做一、实验目的1.掌握ARM的串行口工作原理。

2.学习编程实现ARM的UART通讯。

3.掌握CPU利用串口通讯的方法。

二、实验设备计算机;博创UP-3000实验箱三、实验步骤1.新建工程,将“\3000的ADS实验\Exp2串行口实验”中的文件添加到工程中,这些是启动时所需要的文件。

2.查找S3C44B0工作手册,定义与UART有关的各个寄存器地址和一些特殊的位命令。

主要有以下各寄存器(44b.h):/* UART的全部功能寄存器 */#define rULCON0#define rULCON1#define rUCON0#define rUCON1#define rUFCON0 (*(volatile unsigned *)0x1d00008)#define rUFCON1 (*(volatile unsigned *)0x1d04008)#define rUMCON0 (*(volatile unsigned *)0x1d0000c)#define rUMCON1 (*(volatile unsigned *)0x1d0400c)#define rUTRSTAT0 (*(volatile unsigned *)0x1d00010)#define rUTRSTAT1 (*(volatile unsigned *)0x1d04010)#define rUERSTAT0 (*(volatile unsigned *)0x1d00014)#define rUERSTAT1 (*(volatile unsigned *)0x1d04014)#define rUFSTAT0 (*(volatile unsigned *)0x1d00018)#define rUFSTAT1 (*(volatile unsigned *)0x1d04018)#define rUMSTAT0 (*(volatile unsigned *)0x1d0001c)#define rUMSTAT1 (*(volatile unsigned *)0x1d0401c)#define rUBRDIV0#define rUBRDIV1#ifdef __BIG_ENDIAN //大端摸式#define rUTXH0 (*(volatile unsigned char *)0x1d00023)#define rUTXH1 (*(volatile unsigned char *)0x1d04023)#define rURXH0 (*(volatile unsigned char *)0x1d00027)#define rURXH1 (*(volatile unsigned char *)0x1d04027)#define WrUTXH0(ch) (*(volatile unsigned char *)(0x1d00023))=(unsigned char)(ch)#define WrUTXH1(ch) (*(volatile unsigned char *)(0x1d04023))=(unsigned char)(ch)#define RdURXH0() (*(volatile unsigned char *)(0x1d00027))#define RdURXH1() (*(volatile unsigned char *)(0x1d04027))#define UTXH0 (0x1d00020+3) //byte_access address by BDMA#define UTXH1 (0x1d04020+3)#define URXH0 (0x1d00024+3)#define URXH1 (0x1d04024+3)#else //小端摸式#define rUTXH0 (*(volatile unsigned char *)0x1d00020)#define rUTXH1 (*(volatile unsigned char *)0x1d04020)#define rURXH0 (*(volatile unsigned char *)0x1d00024)#define rURXH1 (*(volatile unsigned char *)0x1d04024)#define WrUTXH0(ch) (*(volatile unsigned char *)0x1d00020)=(unsigned char)(ch)#define WrUTXH1(ch) (*(volatile unsigned char *)0x1d04020)=(unsigned char)(ch)#define RdURXH0() (*(volatile unsigned char *)0x1d00024)#define RdURXH1() (*(volatile unsigned char *)0x1d04024)#define UTXH0 (0x1d00020) //byte_access address by BDMA#define UTXH1 (0x1d04020)#define URXH0 (0x1d00024)#define URXH1 (0x1d04024)#endif3.编写串口驱动函数(MyUart.c):图2-1为串口初始化的实现流程,图2-2为发送数据的流程,图2-3为接收数据的流程。

嵌入式实验报告

嵌入式实验报告

2.1 ADS1.2 开发环境一、实验目的熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。

使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

二、实验内容本次实验使用ADS 集成开发环境。

新建一个简单的工程文件,并编译这个工程文件。

学习ARM 仿真器的使用和开发环境的设置。

下载已经编译好的文件到嵌入式控制器中运行。

学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。

三、预备知识C 语言的基础知识、程序调试的基础知识和方法。

四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、PC机Pentium100 以上、用于ARM920T的JTAG 仿真器、串口线。

软件:PC 机操作系统Win2000或WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

五、实验步骤1、建立工程(1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。

选择File|New…菜单,在对话框中选择Project,新建一个工程文件。

图中示例的工程名为Exp6.mcp。

点set…按钮可为该工程选择路径,选中CreatFolder 选项后将以ProjectName 或文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。

在工程模板列表中的2410 ARM Executable Image 是专为本嵌入式开发板设置的工程模板,后文有具体说明。

在此也可选择ARM Executable Image 通用模板。

(2)在新建的工程中,选择Debug 版本,使用Edit | Debug Settings菜单对Debug 版本进行参数设置。

(3)在Debug Settings对话框中选择Target Settings项。

在Post-linker一栏中选择ARM fromELF。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专业班级:
学号:
实验名称:
姓名:
实验所属课程:
实验室(中心):
指导教师:
实验完成时间:年月日
一、实验目的:
了解ADS 1.2 集成开发环境的使用方法。

二、实验设备:
1.硬件:PC 机一台
2.软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境
三、实验容:
1.建立一个新的工程;
2.建立一个C 源文件,并添加到工程中;
3.设置文本编辑器支持中文;
4.设置编译控制选项;
5.编译工程;
6.调试工程。

四、实验预习要求:
仔细阅读产品光盘附带文档《ADS 集成开发环境及仿真器应用》或其它相关资料,了解ADS 工程编辑的容。

五、实验步骤:
1. 启动ADS1.2 IDE 集成开发环境,选择【File】->【New…】,使用ARM Executable Image 工程模板建立一个工程,工程名称为ADS,见图
2.1。

图2.1 建立ARM 指令代码的工程
2.选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中,见图2.2。

输入如程序清单2.1 所示的代码,并保存,见图2.3。

图2.2 新建文件TEST1.S
程序清单2.1 TEST1.S 文件代码
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
图2.3 添加了TEST1.S 的工程管理窗口
3. 由于ADS 安装以后默认字体是Courier New,对于中文支持不完善,因此建议修改字体。

选择【Edit】->【Perferences…】,可以看见以下对话框,如图2.4 所示。

在Font 选项设置字体是Fixedsys,Script 是CHINESE_GB2312 。

由于Tab 在不同文本编辑器解释不同,建议在Tab Inserts Spaces 前打勾,使Tab 键插入的是多个空格。

图2.4 字体和Tab 设置
4. 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings 对话框的左边选择ARM Linker 项,然后在Output 页设置地址(见图2.5),在Options 页设置调试入口地址(见图2.6)。

图2.5 工程地址设置
图2.6 工程调试入口地址设置
5. 选择【Project】->【Make】,将编译整个工程。

如果编译成功,见图2.7,Errors & Warnings 对话框会报告编译错误为0,那么就可以对工程进行仿真。

图2.7 编译错误和警告对话框
6. 选择【Project】->【Debug】, 或者按下快捷键F5。

IDE 环境就会启动AXD 调试软件,见图2.8。

断点调试方法:首先设置断点,只需要在第 6 行灰色区域双击鼠标即可,如果出现红色实心圆点,那么表示断点设置成功,然后选择【Execute】->【Go】全速运行,可以发现程序停止在第6 行。

还有一种比较方便的调试方法就是Run to Cursor,单击鼠标第8 行灰色区域,如果AXD 将第8 行高亮就表示设置成功,然后选择【Execute】->【Run to Cursor】运
行到光标,可以发现程序停止在第8 行。

通过断点调试可以观察ARM 寄存器数值变化,具体的操作方法在后面的实验会具体介绍。

图2.8 AXD 调试窗口
六、思考题解答:
1. 工程模板的作用:ADS工程文件的设置比较复杂,不同的实验板、开发板由于硬件电路结构和资源不同,需要进行不同的设置,而对于同一实验板(或开发板),则其启动文件、ADS工程文件的配置及主要的初始化代码是相对固定的,因此可以把这些相关文件按一定方式组织起来,称为工作模板。

在工程模板的基础上,可以很方便的在同一实验板(或开发板)上开发或编写不同的应用程序。

2. 强行重新编译工程所有文件的方法:在Project菜单中选择Remove Object
Code选项,然后重新Make编译就行了。

七、心得体会:
通过本次的实验,我基本了解了ADS 1.2 集成开发环境的使用方法,掌握了如何在ADS 1.2 集成开发环境下建立工程、添加C源程序到工程、环境的设置、编译的控制和工程调试的方法。

同时也加强了对ARM7芯片存储器工作原理的了解,在实验中看到了相关存储器数值的变化,验证了实验程序的正确性,并且理解了一些ARM芯片中汇编语言的一些规则,收获甚大。

相关文档
最新文档