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
  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芯片中汇编语言的一些规则,收获甚大。

相关文档
最新文档