ARM嵌入式系统实验实验一参考答案(ADS1.2集成开发环境练习实验)
ARM嵌入式系统结构与编程习题答案(全).
![ARM嵌入式系统结构与编程习题答案(全).](https://img.taocdn.com/s3/m/f1c566845fbfc77da269b16a.png)
《ARM嵌入式系统结构与编程》习题答案第一章绪论1.国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:国内嵌入式行业一个普遍认同的定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专业计算机系统。
从这个定义可以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的剪裁利用。
因此有人把嵌入式系统比作是一个针对特定的应用而“量身定做”的专业计算机系统。
2.嵌入式系统是从何时产生的,简述其发展历程。
答:从20世纪70年代单片机的出现到目前各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了30多年的发展历史。
嵌入式系统的出现最初是基于单片机的。
Intel公司1971年开发出第一片具有4位总线结构的微处理器4004,可以说是嵌入式系统的萌芽阶段。
80年代初的8051是单片机历史上值得纪念的一页。
20世纪80年代早期,出现了商业级的“实时操作系统内核”,在实时内核下编写应用软件可以使新产品的沿着更快,更节省资金。
20世纪90年代实时内核发展为实时多任务操作系统。
步入21世纪以来,嵌入式系统得到了极大的发展。
在硬件上,MCU的性能得到了极大的提升,特别是ARM技术的出现与完善,为嵌入式操作系统提供了功能强大的硬件载体,将嵌入式系统推向了一个崭新的阶段。
3.当前最常用的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。
答:主要有嵌入式Linux和嵌入式实时操作内核uC/OS-II嵌入式Linux操作系统是针对嵌入式微控制器的特点而量身定做的一种Linux操作系统,包括常用的嵌入式通信协议和常用驱动,支持多种文件系统。
主要有以下特点:源码开放,易于移植,内核小,功能强大,运行稳定,效率高等。
uC/OS是源码工卡的实时嵌入式系统内核,主要有以下特点:源码公开,可移植性强,可固化,可剪裁,占先式,多任务,可确定性,提供系统服务等。
嵌入式实验1
![嵌入式实验1](https://img.taocdn.com/s3/m/c2b50f1cb7360b4c2e3f6441.png)
实验目的: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。
ARM嵌入式实验报告
![ARM嵌入式实验报告](https://img.taocdn.com/s3/m/8d92d66b0912a2161579294e.png)
实验一ARM 汇编指令使用实验——基本数学/ 逻辑运算一、实验目的1. 初步学会使用ARM ADS / Embest IDE for ARM 开发环境及ARM 软件模拟器。
2. 通过实验掌握数据传送和基本数学/ 逻辑运算的ARM 汇编指令的使用方法。
二、实验设备1. 硬件:PC机。
2. 软件:ADS 1.2 / Embest IDE 200X 集成开发环境。
三、实验内容1 .熟悉ADS 1.2 / Embest IDE 200X 开发环境的使用,使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算。
具体实验程序如下:/* armasm1a.s */• EQU X, 45 /*定义变量X,并赋值为45*/.EQU Y, 64 /*定义变量Y,并赋值为64*/.EQU STACK_TOP, 0X1000 /* 定义栈顶0X1000*/.GLOBAL _START.TEXT_START: /* 程序代码开始标志*/MOV SP, #STACK_TOPMOV R0, #X/*X 的值放入R0*/STR R0, [SP]/*R0 的值保存到堆栈*/MOV R0, #Y/*Y 的值放入R0*/LDR R1, [SP]/* 取堆栈中的数到R1*/STRR0, [SP] STOP: B STOP/* 程序结束,进入死循环 */.END等指令,完成基本数学 / 逻辑运算。
具体实验程序如下:/* armasm1b.s */ .EQU X, 45 /*定义变量X ,并赋值为45*/ .EQU Y, 64 /*定义变量Y ,并赋值为64*/ .EQU 乙87/*定义变量Z ,并赋值为87*/.GLOBAL _START .TEXT_START: /* 程序代码开始标志 */MOV R0, #X/*X 的值放入 R0*/MOV R0, R0, LSL #8 /*R0 的值乘以 2 的 8 次方 */ MOV R1, #Y/*Y 的值放入 R1*/ADD R2, R0, R1, LSR #1 /*R1 的值除以 2 再加上 R0 后的值放入 R2*/MOV SP, #0X1000 STR R2, [SP] MOV R0, #Z/*Z 的值放入 R0*/ AND R0, R0, #0XFF /* 取 R0 的低八位 */ MOV R1, #Y/*Y 的值放入 R1*/ADD R2, R0, R1, LSR #1 /*R1 的值除以 2 再加上 R0 后的值放入 R2*/ADDR0, R0, R1 2.使用 ADD/SUB/LSL/LSR/AND/ORR .EQU STACK_TOP, 0X1000 /* 定义栈顶 0X1000*/1.新建工程。
最新西安邮电大学嵌入式系统实验报告
![最新西安邮电大学嵌入式系统实验报告](https://img.taocdn.com/s3/m/2f787880f8c75fbfc77db2d7.png)
西安邮电大学(计算机学院)课内实验报告实验名称:嵌入式系统开发专业名称:软件工程班级:学生姓名:学号(8位):指导教师:实验日期:2014年11月27日一、A DS1.2集成开发环境练习二、蜂鸣器三、跑马灯四、外中断实验五、定时器中断六、UART串行数据通信(查询方式)一、ADS1.2集成开发环境练习1.1实验目的及实验环境1.1.1实验目的:学习ADS1.2集成开发环境的使用方法。
1.1.2实验环境硬件:PC机一台软件:Windows 98/XP/2000系统,ADS1.2集成开发环境。
1.2实验内容:(1)ADS的启动;(2)使用asm for lpc2131工程模板,建立一个新的工程。
(3)在模板文件main.S文件中,加入用户汇编代码。
(4)编译链接工程。
(5)调试工程。
(6)学习ADS工具的使用。
1.3实验步骤:①启动ADS1.2IDE集成开发环境。
②在ADS主窗口主菜单选择File->New,使用asm for lpc2131工程模板建立一个工程(图例中工程名称为:ZQL_LIB1),指定工程路径(图例中工程路径为D:\ARM_Lib_Bak\ARM_asm)。
③点击确认<按钮>,创建工程。
④可在主窗口菜单选择Edit->Perferences,设置字体和字号。
⑤在main.S文件编辑窗的“add the user code here. 添加用户代码”行下建立用户汇编程序代码。
⑥选择Project->Make(或快捷键<F7>),编译链接整个工程。
若编译成功,则Erros &Warnings对话框会报告编译错误为0,此时即可对工程进行仿真。
⑦选择Project->Debug(或快捷键<F5>),IDE环境就会启动AXD调试软件。
1.4实验结果1.5实验总结这次实验主要是学习ADS1.2集成开发环境的使用,通过这次实验,我掌握了嵌入式系统编程的流程,我学会了ADS的启动,学会了使用asm for lpc2131工程模板,建立一个新的工程,在模板文件main.S文件中,加入用户汇编代码,然后编译链接工程,调试工程。
Get清风ARM嵌入式ADS1.2集成开发环境练习实验报告
![Get清风ARM嵌入式ADS1.2集成开发环境练习实验报告](https://img.taocdn.com/s3/m/91b5ba931711cc7930b71688.png)
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 。
(3-4)嵌入式实现使用开发板显示自己的相片
![(3-4)嵌入式实现使用开发板显示自己的相片](https://img.taocdn.com/s3/m/ab0c3727ed630b1c59eeb5f4.png)
16
编译链接
进入编译链接设置:
17
ADS1.2的配置问题
18
19
20
21
22
23
24
L/O/G/O
第二部分 项目实现的相关知识链接
25
首先使用 ADS 打开出厂程序如下:
然后双击,打开 Main.c 文件。打开此文件之后我们就可 以开始我们的源代码分析学习。
26
1、 学会使用外部函数的声明
32
关于在多文件的程序中声明外部变量: 如果一个程序包含两个文件,在两个文件中都 要用到同一个外部变量n,不能分别在两个文件中 各自定义一个外部变量n,否则在进行程序的连接 时会出现“重复定义”的错误。正确的做法是:在 任一个文件中定义外部变量n,而在另一个文件中 用extern 对n 作“外部变量声明”。在编译和连 接时,系统会由此知道n 是一个已在别处定义的外 部变量,并将在另一个文件中定义的外部变量的作 用域扩展到本文件,在本文件中可以合法地引用外 部变量n。
27
2、学会灵活的使用:“go to 命令” 在语句extern void Lcd_TFT_Test( void ) 中的函数名上面点击右键选择:Go to function definition of Lcd_TFT_Test 如图:
我们马上就可以跳转到 Lcd_TFT.c 文件中的void Lcd_TFT_Test( void )函数处。 以此来实现于对函数定义的查看或者其他相关的操作。ADS 的这一个功能。对于 我们代码的分析和学习有着非常重要的意义。
8
工具调用及流程
名称 描述 使用方式
代码生成工 具
ARM汇编器 ARM C/C++编译器 Thumb C/C++编译器 ARM 链接器 Code Warrior AXD/ADW/ADU/armsd ARMulator
ADS1.2
![ADS1.2](https://img.taocdn.com/s3/m/68a97a170b4e767f5acfcee3.png)
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嵌入式实验报告
![ARM嵌入式实验报告](https://img.taocdn.com/s3/m/7acf1426a5e9856a561260f4.png)
选择工程模板为 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 ; 子程序返回
实验1-ADS1.2安装及简单的汇编程序
![实验1-ADS1.2安装及简单的汇编程序](https://img.taocdn.com/s3/m/047c9f806037ee06eff9aef8941ea76e58fa4aeb.png)
展示程序运行结果
程序链接:生成可执行文件
程序运行:查看输出结果验 证程序功能
程序编译:确保程序语法正 确无错误
结果分析:分析实验数据得 出结论
分析程序的正确性和效率
程序运行结果与预期是否一致 程序是否存在语法错误或逻辑错误 程序运行效率是否满足要求 程序是否存在内存泄漏或性能瓶颈
总结实验经验和教训
了解汇编语言在计 算机科学领域中的 应用和重要性
安装DS1.2集成开发环境
打开安装包点击“Next”
同意许可协议选择安装路径
下载并安装适合你操作系统 的版本
等待安装完成启动DS1.2 IDE
创建新工程并配置工程选项
打开DS1.2软件选 择“File”菜单中 的“New Project” 选项
在弹出的“New Project”对话框中 输入工程名称和保 存路径
解决方案:检查输入数据或代码逻辑错 误确保程序正确执行
问题4:实验时间不够 解决方案:合理安排时 间提前准备实验所需材料和工具
解决方案:合理安排时间提前准备实验 所需材料和工具
提出改进和优化建议
针对实验过程中出现的问题提出具体的改进措施。 根据实验结果分析可能存在的优化空间提出相应的优化建议。 结合实验经验提出对实验流程、实验设备的改进和优化建议。
打开集成开发环境(IDE)
编译并运行程序
点击编译按钮生成目标文件
添加标题
添加标题
打开已写好的汇编程序文件
添加标题
添加标题
点击运行按钮执行程序
调试程序
打开实验箱电源确保电源指示灯亮起 将编写好的汇编程序通过串口发送到实验箱的微控制器中 按下实验箱上的“运行”按钮观察实验箱的输出是否符合预期 如果实验箱的输出不符合预期检查汇编程序是否有语法错误或逻辑错误并进行相应的修改
ADS1.2开发环境配置
![ADS1.2开发环境配置](https://img.taocdn.com/s3/m/2f6a6912aa00b52acec7ca7e.png)
实验一 ADS1.2开发环境创建(2个学时)一、实验目的熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。
使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。
超级终端设置及BIOS功能使用。
二、实验内容本次实验配置ADS 集成开发环境,新建一个简单的工程文件,并编译这个工程文件。
学习ARM 仿真器的使用和开发环境的设置。
下载已经编译好的文件到嵌入式控制器中运行。
学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。
运行Windows系统下的超级终端,通过超级终端查看BIOS启动情况。
三、预备知识C 语言的基础知识、程序调试的基础知识和方法。
四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、串口线。
软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。
五、实验步骤1 配置ADS 集成开发环境(1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。
选择File|New…菜单,在对话框中选择Project,如图1-17 所示,新建一个工程文件。
图中示例的工程名为Exp6.mcp。
点set…按钮可为该工程选择路径如图1-18 所示,选中CreatFolder 选项后将以图1-17 中的ProjectName 或图1-18 中的文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。
(2)在图1-17 中工程模板列表中我们选择ARM Executable Image 通用模板。
我们随后将一步一步的把它配置成针对我们ARM3000 开发板的模板44B0 ARM ExecutableImaage,并把它拷贝到ADS1.2 安装目录下的Stationery 目录中(所有的工程模板都在此目录下)。
嵌入式系统原理与应用实验指导书(合稿+习题)
![嵌入式系统原理与应用实验指导书(合稿+习题)](https://img.taocdn.com/s3/m/ac05b8a9581b6bd97e19ea95.png)
嵌入式系统原理与应用实验指导书南航金城学院2013.2目录目录 (1)第一部分试验箱硬件结构 (2)第二部分实验 (11)实验一ADS1.2集成开发环境练习 (11)实验二汇编指令实验1 (17)实验三汇编指令实验2 (20)实验四汇编指令实验3 (23)实验五ARM微控制器工作模式实验 (28)实验六 C语言程序实验 (33)实验七 C语言调用汇编程序实验 (36)实验八GPIO输出控制实验 (39)实验九GPIO输入实验 (46)实验十外部中断实验 (50)实验十一UART通讯实验 (56)实验十二I2C接口实验 (64)实验十三定时器实验 (75)实验十四PWM DAC实验 (81)实验十五ADC实验 (87)实验十六RTC实验 (94)实验十七步进电机控制实验 (101)实验十八直流电机控制实验 (105)附录1 DeviceARM2410 专用工程模板 ..................................................... 错误!未定义书签。
第一部分试验箱硬件结构MagicARM2410教学实验开发平台是一款可使用μC/OS-II、Linux和WinCE操作系统、支持QT、MiniGUI图形系统、集众多功能于一身的ARM9教学实验开发平台。
采用Samsung公司的ARM920T内核的S3C2410A微处理器,扩展有充足的存储资源和众多典型的嵌入式系统接口。
MagicARM2410实验箱参考如图1.1所示。
图1.1 MagicARM2410实验箱外观图MagicARM2410实验箱功能框图如图1.2所示。
图1.2 MagicARM2410实验箱功能框图1.1 S3C2410A芯片简介S3C2410A是Samsung公司推出的16/32位RISC处理器(ARM920T内核),适用于手持设备、POS机、数字多媒体播放设备等等,具有低价格、低功耗、高性能等特点。
嵌入式系统原理与应用实验指导书(合稿+习题)
![嵌入式系统原理与应用实验指导书(合稿+习题)](https://img.taocdn.com/s3/m/ac05b8a9581b6bd97e19ea95.png)
嵌入式系统原理与应用实验指导书南航金城学院2013.2目录目录 (1)第一部分试验箱硬件结构 (2)第二部分实验 (11)实验一ADS1.2集成开发环境练习 (11)实验二汇编指令实验1 (17)实验三汇编指令实验2 (20)实验四汇编指令实验3 (23)实验五ARM微控制器工作模式实验 (28)实验六 C语言程序实验 (33)实验七 C语言调用汇编程序实验 (36)实验八GPIO输出控制实验 (39)实验九GPIO输入实验 (46)实验十外部中断实验 (50)实验十一UART通讯实验 (56)实验十二I2C接口实验 (64)实验十三定时器实验 (75)实验十四PWM DAC实验 (81)实验十五ADC实验 (87)实验十六RTC实验 (94)实验十七步进电机控制实验 (101)实验十八直流电机控制实验 (105)附录1 DeviceARM2410 专用工程模板 ..................................................... 错误!未定义书签。
第一部分试验箱硬件结构MagicARM2410教学实验开发平台是一款可使用μC/OS-II、Linux和WinCE操作系统、支持QT、MiniGUI图形系统、集众多功能于一身的ARM9教学实验开发平台。
采用Samsung公司的ARM920T内核的S3C2410A微处理器,扩展有充足的存储资源和众多典型的嵌入式系统接口。
MagicARM2410实验箱参考如图1.1所示。
图1.1 MagicARM2410实验箱外观图MagicARM2410实验箱功能框图如图1.2所示。
图1.2 MagicARM2410实验箱功能框图1.1 S3C2410A芯片简介S3C2410A是Samsung公司推出的16/32位RISC处理器(ARM920T内核),适用于手持设备、POS机、数字多媒体播放设备等等,具有低价格、低功耗、高性能等特点。
ARM嵌入式系统基础试验参考指导书
![ARM嵌入式系统基础试验参考指导书](https://img.taocdn.com/s3/m/ee2e503bbe23482fb5da4c52.png)
ARM嵌入式系统基础试验参考指导书ARM嵌入式系统基础 1实验指导书原大明 2013.9实验一 ADS 开发环境实验一、实验目的1、掌握 ADS 开发环境的使用;2、了解 ADSModule 工程基本结构和内容;3、掌握在 ADS 下建立工程进行开发的基本技巧。
二、实验内容1、熟悉 ADS 开发环境中的各个组件;2、建立并编译一个工程;3、使用AXD调试仿真。
三、实验设备1、硬件:PC 机2、软件:PC 机操作系统(WINDOWS XP);ARM Developer Suite v1.2。
四、预备知识1、了解 ARM 和 S3C2410 体系结构;2、了解 ARM 和 S3C2410 汇编语言。
五、实验内容1、实验程序AREA EXAMPLE3,CODE,READONLY ;/*声明一段名为EXAMPLE3的CODE*/ ENTRY ;/*指定函数的入口*/STARTMOV R0,#0xFF ;/*把#0xFF传送到R0*/ MOVR1,#0xEF000000 ;/*把#0XEF000000传送到R1*/ MOVR2,#0x2F000000 ;/*把#0x2F000000传送到R2*/ MVNR3,#0Xff ;/*把#0xFF取反后传送到R3*/ ADDR4,R2,R1 ;/*把R2加R1的值传送到R4*/ADDS R5,R2,R1 ;/*把R2加R1的值传送R5,s表示会影响cpsr*/ ADCSR6,R2,R1 ;/*把R2加R1的值,再加上carry的值后传送到R6. ;s表示值会影响cpsr*/ SUB R4,R2,R1 ;/R2减R1的值传送到R4*/SUBS R4,R2,R1 ;/*R2减R1的值传送到R4, s表示影响cpsr*/ RSBR5,R2,R1 ;/*R1减R2的值传送到R5*/RSBS R5,R2,R1 ;/*R1减R2的值后传送到R5,; s表示会影响cpsr*/SBC R6,R1,R2 ;/*R1减R2的值再减去!CARRY ;后传送到R6*/RSC R7,R1,R2 ;/*R2减R1的值再减去!CARRY ;后传送到R7*/stopBL stopEND ;/*程序结束*/2、实验步骤1)编程Step1: 启动 ADS点击桌面开始程序ARM Developer Suite v1.2 CodeWarrior for ARM Developer Suite,弹出 CodeWarrior for ARM Developer Suite 的界面。
嵌入式实验一资料
![嵌入式实验一资料](https://img.taocdn.com/s3/m/acbc27b9960590c69ec37693.png)
实验一、ADS开发环境使用,测试程序一、实验目的a)ads安装使用b)arm在ads中的配置c)掌握 S3C2440A 的 I/O 控制寄存器的配置d)掌握ARM 汇编语法指令、c语言编程实验二、实验设备a)PC 机、实验箱、串口线、usb线、ads开发软件三、实验内容a)熟悉ARM 开发裸机环境的建立b)使用ARM 汇编指令设置GPIO 口的相应寄存器,编写跑马灯程序四、实验原理a)ARM ADS全称为ARM Developer Suite。
是ARM公司在2001年推出的ARM集成开发工具。
ADS 由命令行开发工具,ARM运行时库,GUI开发环境(Code Warrior和AXD),实用程序和支持软件组成。
使用ADS,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序了。
下面就详细介绍一下ADS的各个组成部分b)命令行开发工具这些工具完成将源代码编译,链接成可执行代码的功能。
ADS提供下面的命令行开发工具:armccarmcc是ARM C编译器。
这个编译器通过了Plum Hall C Validation Suite为ANSI C的一致性测试。
armcc用于将用ANSI C编写的程序编译成32位ARM指令代码。
armcpparmcpp是ARM C++编译器。
它将ISO C++ 或EC++ 编译成32位ARM指令代码。
tcctcc是Thumb C 编译器。
该编译器通过了Plum Hall C Validation Suite为ANSI 一致性的测试。
tcc将ANSI C源代码编译成16位的Thumb指令代码。
tcpptcpp是Thumb C++ 编译器。
它将ISO C++ 和EC++ 源码编译成16位Thumb指令代码。
armasmarmasm是ARM和Thumb的汇编器. 它对用ARM 汇编语言和Thumb 汇编语言写的源代码进行汇编。
armlinkarmlink是ARM连接器。
嵌入式实验报告(答案)
![嵌入式实验报告(答案)](https://img.taocdn.com/s3/m/d7b140f404a1b0717fd5dd62.png)
实验报告ARM嵌入式系统原理及应用开发目录实验一 ARM汇编指令实验1 (1)实验二 ARM汇编指令实验2 (4)实验三汇编与C语言的相互调用实验 (8)实验一ARM汇编指令实验1一、实验目的1.初步学会使用Embest IDE for ARM 开发环境及ARM软件模拟器;2.通过实验掌握简单ARM汇编指令的使用方法。
二.实验设备1.硬件:PC机;2.软件:Embest IDE 2004集成开发环境。
Windows98/2000/NT/XP。
三.实验内容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体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。
3.GNU基础知识Embest IDE集成了GNU汇编器as、编译器gcc和链接器ld。
因此,编写程序要符合CNU的语法和规则。
关于as.gcc和ld的具体使用,请参照Embest IDE 所带的电子文档ProgRef.chm。
五.实验操作步骤1. 实验A(1)新建工程:先建一个文件夹如:H:\ test1。
然后运行ADS1.2集成开发环境,选择File→New 菜单项,弹出一个对话框,然后出来图1.1新建工程类型选择对话框,选择project,在“Project name”中输入工程文件名”test1”,点击确定,同时创建一个与工程名相同的工作区。
ARM嵌入式系统实验报告1
![ARM嵌入式系统实验报告1](https://img.taocdn.com/s3/m/16e5a14ebcd126fff7050bd3.png)
郑州航空工业管理学院嵌入式系统实验报告20 13 – 20 14 第2 学期赵成,张克新院系:电子通信工程系姓名:周振宇专业:物联网工程学号:121309140电子通信工程系2014年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中包括CodeWarrior 和AXD Dubugger 两个软件组件。
在ADS1.2中建立ARM Executable Image(ARM可执行映像)类型的工程,工程目标配置为Debug ;接着,还需要对工程进行目标设置、语言设置及链接器设置;最后,配置仿真环境为ARMUL 仿真方式。
2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。
实验ADS安装及简单的汇编程序
![实验ADS安装及简单的汇编程序](https://img.taocdn.com/s3/m/c35cfd92a5e9856a5712601c.png)
一、ADS1.2软件安装
2、ADS1.2安装
点击了Yes之后,我们选择安装目录,这里我 们可以直接安装在C盘,你如果想要安装在其 他位置,你也可以点击“ Browse”,然后点击 “ Next ” 。
一、ADS1.2软件安装
2、ADS1.2安装 然后进入选择安装类型,我们选择Typical就 OK了,然后点击“Next”。点击了Next之后, 会有一个信息,我们这里直接点击 “确定”即 可。
二、ADS1.2使用介绍
5、编译
– 选择“project”/“Make”,出现下图: – 有“Errors”必须改正,它会告诉你哪里有“Errors” – 有“Warnings”可以不理会
二、ADS1.2使用介绍
6、Debug2
– 选择“project”/“Debug”,出现“AXD”界面(如链接嵌入式板 子,也需要进行一定的配置,此步请自行查阅资料)
再选择“Add”并“Close”就能看到Registers列表二、AD源自1.2使用介绍6、Debug3
– 在你的实验报告纸上抄写上面的程序,并写出 每一步执行后改变的寄存器的编号及改变后的 内容 – 在AXD中展开所有“Registers”列表,使用 单步执行,并记录下每个改变的寄存器的编号 及改变后的内容
嵌入式原理与应用
实验一 ADS1.2的安装及简单的汇编程序
一、实验目的
• 了解ADS1.2的安装 • 熟悉ADS1.2的开发环境 • 掌握ARM汇编语言的编写 • 熟悉汇编程序运行、调试过程
二、实验内容
一、ADS1.2软件安装 ADS(ARM Developer Suite)1.2是ARM公司的集成
正确与错误的比较
• Str1 SETS My string1.” ;设置字符串变量Str1
嵌入式实验一二
![嵌入式实验一二](https://img.taocdn.com/s3/m/cbdbaaba1a37f111f1855bbe.png)
实验一:开发环境实验实验学时: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为接收数据的流程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ARM嵌入式系统实验实验一参考答案(ADS1.2集成开发环境练习实验)
1.实验目的
了解ADS1.2 集成开发环境的使用方法。
2.实验设备
硬件:PC机一台
软件:Windows98/XP/2000 系统,ADS1.2集成开发环境
3.实验内容
(1)建立一个新的工程。
(2)建立一个汇编文件,并添加到工程中。
(3)设置文本编辑器支持中文。
(4)设置编译链接控制选项。
(5)编译链接工程。
(6)调试工程。
4.实验步骤
(1)在D:\新建一个目录,目录名为experiment。
启动ADS1.2 IDE集成开发环境,选择【File】-> 【New...】,使用ARM Executalbe Image工程模板建立一个工程,工程名称为ADS,工程目录为D:\experiment。
(2)选择【File】-> 【New…】建立一个新的文件test1.s,设置直接添加到项目中。
输入实验程序并保存,此时在工程窗口中可以看到test1.s文件了。
(3)由于ADS安装以后默认字体是Courier New,对于中文支持不完善,因此建议修改字体。
选择【Edit】-> 【Perferences…】,在其中的Font选项中设置字体为Fixedays,Script 是CHINESE_GB2312,另外由于Tab在不同文本编辑器解释不同,建议在Tab Inserts Spaces 前打勾,使Tab键插入的是多个空格。
(4)选择【Edit】->【DebugRel Settings…】,在弹出的对话框的左边选择ARM Linker 项,然后在Output页设置链接地址为Simple,其中Ro Base为0x40000000,RW Base为0x40003000;并设置Option页中Image entry Point地址为0x40000000.
(5)选择【Project】-> 【Make】,编译链接整个工程,如果编译成功,则Errors&Warnings 对话框会报告编译错误为0,那么就可以对工程进行仿真了。
(6)选择【Project】-> 【Debug】,或者按下F5。
IDE环境将会启动AXD调试软件,接着便可以执行单步、全速运行调试。
注意,要在AXD的Choose Target窗口中选用ARMUL 软件仿真。
断点调试方法:首先设置断点,只需要在第6行灰色区域双击鼠标即可,如果出现红色实心圆点,那么表示断点设置成功,然后选择【Execute】-> 【Go】全速运行可以发现程序停止在第6行。
还有一种比较方便的调试方法就是Run to Cursor,单击鼠标第8行灰色区域,如果AXD将第8行高亮就表示设置成功,然后选择【Execute】-> 【Run to Cursor】运行到光标,可以发现程序停止在第8行。
5.实验程序
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。