嵌入式实验1 ADS 1.2集成开发环境练习
嵌入式实验一
![嵌入式实验一](https://img.taocdn.com/s3/m/c5c57083b52acfc789ebc983.png)
洛阳理工学院实验报告系别计信学院班级学号姓名课程名称嵌入式教程实验日期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文件。
嵌入式系统ADS实验大纲
![嵌入式系统ADS实验大纲](https://img.taocdn.com/s3/m/43bdb90a5e0e7cd184254b35eefdc8d376ee149b.png)
嵌入式系统ADS实验大纲《嵌入式系统ADS》实验大纲学分:3学时:64适用专业:电子信息、通信技术、应用电子前导课程:电路分析基础、模拟电路、数字电路、高频电路、单片机原理、C语言一、课程的性质和任务本课程围绕目前流行的32位ARM处理器和嵌入操作系统,讲述嵌入式系统的概念、软硬件组成、开发过程以及嵌入式应用程序和驱动程序的开发设计方法。
《嵌入式系统》是培养学生具有嵌入式系统的应用知识、嵌入式系统的初步分析能力和具有使用RTOS(实时操作系统)构成嵌入式系统的应用能力等方面的学科,是电子信息与计算机类或相关工科专业的一门专业课。
二、课程的教学基本要求本课程是一门综合性、实践性、应用性很强的专业课。
课程教学所要达到的目的是:使学生掌握嵌入式系统体系结构,嵌入式处理器结构(ARM架构为主),异常处理、系统控制过程、存储处理、ARM内部资源、各种I/O接口;嵌入式系统开发应用方法;实时多任务操作系统。
本课程将为学生今后从事嵌入式系统研究与开发打下坚实的基础。
三、实验安排本实验课程18学时,共9次实验,每次2学时。
实验1 嵌入式系统软件开发环境认识1.熟悉ADS1.2开发环境的使用方法,熟悉针对实验台的嵌入式系统软件设计方法和流程,通过实验掌握嵌入式系统的编辑、编译、调试、下载及运行过程。
实验2 基于ARM的汇编语言设计11.掌握基本汇编语句的编辑、编译、调试、下载及运行过程。
2.进一步熟悉ADS1.2的编辑、编译、连接和运行的过程。
实验3 LPC2106程序设计与电路仿真实验:输入/输出端口GPIO 编程与仿真1.掌握ARM 中I/O 接口的使用,以实现对外围设备开关量的控制。
2.使用P0.9的输出功能来控制一个LED闪烁。
采用灌电流的方式驱动LED,即输出低电平时LED点亮。
首先进行引脚功能选择寄存器(PINSEL0和PINSEL1)配置,然后进行IODIR 寄存器设置,设置P0.9为输出模式,通过对IOSET和IOCLR寄存器进行置1或置0控制LED闪烁。
嵌入式实验—电气(要软件的m我,好东西啊)
![嵌入式实验—电气(要软件的m我,好东西啊)](https://img.taocdn.com/s3/m/fc08f61e227916888486d7dc.png)
实验一ADS1.2集成开发环境练习1.1 实验目的1.熟悉ADS1.2软件开发环境;2.掌握ARM汇编指令的用法,并能编写简单的汇编程序;3.掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。
1.2 实验内容1.使用LDR指令读取0x30003100上的数据,将数据加1,若结果小于10,则使用STR 指令把结果写回原地址,若结果大于等于10,则把0写回原地址。
2.使用ADS1.2软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口(Processor Registers)监视R0,R1的值,打开存储器观察窗口(Memory)监视0x30003100上的值。
1.3 预备知识1.ARM指令系统内容;2.ADS1.2工程编辑和AXD调试的内容。
1.4 实验设备硬件:PC机一台。
软件:Windows98/XP/2000系统,ADS1.2集成开发环境。
1.5 实验步骤1.启动ADS1.2,使用ARM Executable Image工程模板建立一个工程arm1.mcp。
2.建立汇编源文件arm1.s,编写实验程序,然后添加到工程中。
3.设置工程连接地址RO Base为0x30000000,RW Base为0x30003000,设置options 中的调试口地址Image entry point为0x30000000。
4.编译连接工程,选择Project|Debug,启动AXD进行软件仿真调试。
5.打开寄存器窗口(Processor Registers),选择Current项监视R0,R1的值。
打开存储器观察窗口(Memory),设置观察地址为0x30003100,显示方式Size为32Bit,监视0x30003100地址上的值。
说明:在Memory窗口中点击鼠标右键,Size项中选择显示格式为8bit,16bit,32bit,如图1.1所示。
图1.1 Memory窗口显示格式设置寄存器显示格式与之类似。
嵌入式系统 实验报告
![嵌入式系统 实验报告](https://img.taocdn.com/s3/m/173fb0720029bd64793e2cb8.png)
使能 IRQ 中断。
4 装载并使能外中断;
5 选用 DebugInExram 生成目标,然后编译连接工程。
6 选择【Project】->【Debug】,启动 AXD 进行 JTAG 仿真调试。
7 全速运行程序,LED 闪烁;
8 每一次按键 Key,蜂鸣器就会转换静音或鸣响状态。
四.测试数据及运行结果
1
五.总结
1.实验过程中遇到的问题及解决办法;
由于本次实验较简单,且我们之前学习的微机原理课程也进行了流水灯的设
计实验,所以对于本次实验,我完成地很顺利,在实验中没有遇到问题。
2.对设计及调试过程的心得体会。
本次实验是本学期该课程我们进行的第一次实验,总的来说,实验不是很难,
设计过程也相对简单,其主要目的是让我们熟悉一下实验环境,并且能在实验环
6
五.总结 1.实验过程中遇到的问题及解决办法;
实验第一次运行时,蜂鸣器一直处于鸣响状态,及时按了按键,蜂鸣器还是 一直鸣叫,不产生外中断。后来仔细检查了程序,发现原来是忘记使能 EINT0 中 断了,加上 VICIntEnable = 1<<0x0e 代码,程序就能正常运行了。 2. 对设计及调试过程的心得体会。
境下进行简单的实验操作,为之后的实验打下坚实的基础。
六.附录:源代码(电子版)
#include "config.h"
const uint32 LEDS8 = 0xFF << 18;//P1[25:18]控制 LED1~LED8,低电平点亮
const uint32 KEY = 1 << 16;
//P0.16 连接 KEY1
三.方案设计
① 启动 ADS1.2IDE 集成开发环境,选择 ARM Executable Image for lpc2131
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
嵌入式实验报告
![嵌入式实验报告](https://img.taocdn.com/s3/m/84c84556cc7931b765ce15fd.png)
实验一 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指向的地址块中。
实验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)
编译并运行程序
点击编译按钮生成目标文件
添加标题
添加标题
打开已写好的汇编程序文件
添加标题
添加标题
点击运行按钮执行程序
调试程序
打开实验箱电源确保电源指示灯亮起 将编写好的汇编程序通过串口发送到实验箱的微控制器中 按下实验箱上的“运行”按钮观察实验箱的输出是否符合预期 如果实验箱的输出不符合预期检查汇编程序是否有语法错误或逻辑错误并进行相应的修改
《嵌入式系统原理与应用》实验报告07-汇编指令实验2
![《嵌入式系统原理与应用》实验报告07-汇编指令实验2](https://img.taocdn.com/s3/m/cb207371a26925c52cc5bfa9.png)
《嵌入式系统原理与应用》实验报告实验序号:07 实验项目名称:汇编指令实验2学号X 姓名XXX 专业、班11计算机科学与技术实验地点实验楼1#416 指导教师XXX 实验时间2013-5-31 一、实验目的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;设X为R0,Y为 R1,Z为 R2。
;文件名:for.sAREA EXP1,CODE,READONLY ;声明代码段EXP1ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R0,#20MOV R1,#10MOV R2,#0CMP R0,R1MOVHI R2,#100MOVLS R2,#50END(2)for(i=0; i<10; i++){x++;}设x为R0,i为R2 (i、x均为无符号整数);文件名:for1.sAREA EXP1,CODE,READONLY ;声明代码段EXP1 ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R0,#0MOV R2,#0LOOP CMP R2,#10ADDLS R0,R0,#1ADDLS R2,R2,#1BLS LOOPEND(3)while(x<=y){x *= 2;}设x为R0,y 为R1 (x、y 均为无符号整数);文件名:while.sAREA EXP1,CODE,READONLY ;声明代码段EXP1 ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R0,#5MOV R1,#10LOOP CMP R0,R1MOVLS R0,R0,LSL #1BLS LOOPEND(4)do{x--;} while(x>0);设x为R0 (x为无符号整数);文件名:ADD.sAREA EXP1,CODE,READONLY ;声明代码段EXP1ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R0,#5LOOP SUB R0,R0,#1CMP R0,#0SUBHI R0,R0,#1BNE LOOPEND(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 均为无符号整数) ;文件名:switch.sAREA EXP1,CODE,READONLY ;声明代码段EXP1ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R1,#3 ; 初始化y的值MOV R2,#2 ; 初始化key的值MOV R0,#0 ; 初始化x的值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 = 168SWITCH_END NOPHALT B HALTEND五、分析与讨论没截图~switch这里研究了好久,一位运行结果出错了,结果它是从CASE_3这里执行完x = key + y再由B SWITCH_END ; break这个直接跳转出去~~六、教师评语成绩签名:日期:。
嵌入式系统原理与应用实验指导书(合稿+习题)
![嵌入式系统原理与应用实验指导书(合稿+习题)](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嵌入式C编程标准教程》
![《ARM嵌入式C编程标准教程》](https://img.taocdn.com/s3/m/4df771b6f121dd36a32d82d8.png)
第二章ADS 1.2开发环境创建与简介
2.1 ADS1.2开发环境创建
2.1.1 ADS1.2概述
ADS是个集成开发环境,主要包括编译器、链接器、调试 器、C和C++库等,是ARM公司推出的新一代ARM集成开 发工具。最新版本是ADS1.2,该版本支持包括Windows和 Linux在内的多种操作环境。ADS1.2的组成如下所述。 1. 编译器 ADS提供多种编译器,以支持ARM和Thumb指令的编译, 主要有: ·armcc:是ARM C编译器。 ·tcc:是Thumb C编译器。 ·armcpp:是ARM C++编译器。 ·tcpp:是Thumb C++编译器。 ·armasm:是ARM和Thumb的汇编语言编译器。
2.1.2 ADS1.2的安装
ADS全称为ARM Developer Suite,是ARM公司推出的新 的一代ARM集成开发工具。现在ADS的最新版本是1.2, 它取代了早期的ADS1.1和ADS1.0,该版本支持包Windows 和Linux在内的多种操作系统。安装步骤如下: 在ADS1.2的安装盘中运行setup.exe,安装ARM Developer Suite v1.2。出现图2-1对话框和图2-2对话框,同意产权协 义,选省缺安装路径(C:\Program Files\ARM\vADS1.2)和 典型安装模式(Typiflcation),按Next进入下一步,出现选 文件夹、编程语言和当前设定对话框,均按Next,开始安 装,如图2-3示。 安装结束,安装许可文件(Install License),这一步可 按安装向导进行,单击“下一步”按钮,会出现如图2-4 和图2-5所示的对话框。
实验一__熟悉ADS1.2 开发环境及教学实验箱
![实验一__熟悉ADS1.2 开发环境及教学实验箱](https://img.taocdn.com/s3/m/854a4f87d4d8d15abe234e4a.png)
实验一熟悉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参数命令。
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 目录中(所有的工程模板都在此目录下)。
《嵌入式系统原理与应用》实验报告07-汇编指令实验2
![《嵌入式系统原理与应用》实验报告07-汇编指令实验2](https://img.taocdn.com/s3/m/cb207371a26925c52cc5bfa9.png)
《嵌入式系统原理与应用》实验报告实验序号:07 实验项目名称:汇编指令实验2学号X 姓名XXX 专业、班11计算机科学与技术实验地点实验楼1#416 指导教师XXX 实验时间2013-5-31 一、实验目的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;设X为R0,Y为 R1,Z为 R2。
;文件名:for.sAREA EXP1,CODE,READONLY ;声明代码段EXP1ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R0,#20MOV R1,#10MOV R2,#0CMP R0,R1MOVHI R2,#100MOVLS R2,#50END(2)for(i=0; i<10; i++){x++;}设x为R0,i为R2 (i、x均为无符号整数);文件名:for1.sAREA EXP1,CODE,READONLY ;声明代码段EXP1 ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R0,#0MOV R2,#0LOOP CMP R2,#10ADDLS R0,R0,#1ADDLS R2,R2,#1BLS LOOPEND(3)while(x<=y){x *= 2;}设x为R0,y 为R1 (x、y 均为无符号整数);文件名:while.sAREA EXP1,CODE,READONLY ;声明代码段EXP1 ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R0,#5MOV R1,#10LOOP CMP R0,R1MOVLS R0,R0,LSL #1BLS LOOPEND(4)do{x--;} while(x>0);设x为R0 (x为无符号整数);文件名:ADD.sAREA EXP1,CODE,READONLY ;声明代码段EXP1ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R0,#5LOOP SUB R0,R0,#1CMP R0,#0SUBHI R0,R0,#1BNE LOOPEND(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 均为无符号整数) ;文件名:switch.sAREA EXP1,CODE,READONLY ;声明代码段EXP1ENTRY ;标识程序入口CODE32 ;声明32位ARM指令START MOV R1,#3 ; 初始化y的值MOV R2,#2 ; 初始化key的值MOV R0,#0 ; 初始化x的值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 = 168SWITCH_END NOPHALT B HALTEND五、分析与讨论没截图~switch这里研究了好久,一位运行结果出错了,结果它是从CASE_3这里执行完x = key + y再由B SWITCH_END ; break这个直接跳转出去~~六、教师评语成绩签名:日期:。
嵌入式实验
![嵌入式实验](https://img.taocdn.com/s3/m/d1ce22bb960590c69ec376ef.png)
• • • • • • • • • •
验
实验一:ADS 1.2集成开发环境练习 实验二:汇编指令实验 实验三:ARM处理器工作模式实验 实验四:C语言程序实验 实验一:GPIO输出控制实验 实验二:外部中断实验 实验三:UART通讯实验 实验四:I2C接口实验 实验五:ADC实验 实验六 Linux之HelloWorld程序实验
实验一:ADS 1.2集成开发环境练习
1.实验目的:了解ADS1.2集成开发环境的使用方法 2.实验设备: 硬件:PC机 软件:Windows xp系统,ADS1.2集成开发环境 3.实验内容: 1)建立一个新的工程; 2)建立一个汇编文件,并添加到工程中; 3)设置文本编辑器支持中文; 4)设置编译链接控制选项; 5)编译链接工程; 6)调试工程
实验三:ARM处理器工作模式实验
;名称:InitStack ;功能:堆栈初始化,即初始化各模式下的堆栈指针。 ;入口参数:无 ;出口参数:无 ;说明:在特权模式下调用此子程序,比如复位后的管理模式 InitStack MOV R0, LR ;R0<=LR ;设置管理模式堆栈 MSR CPSR_c, #0xd3 LDR SP, StackSvc ;设置中断模式堆栈 MSR CPSR_c, #0xd2 LDR SP, StackIrq ;设置快速中断模式堆栈 MSR CPSR_c, #0xd1 LDR SP, StackFiq ;设置终止模式堆栈 MSR CPSR_c, #0xd7 LDR SP, StackAbt ;设置未定义模式堆栈 MSR CPSR_c, #0xdb LDR SP, StackUnd
4.实验步骤 1)新建一个目录。启动ADS1.2,选择File-New,使用ARM Executable Image 工程模板建立一个工程; 2)选择File-New中的File新建一个新的汇编文件*.s,并添加到刚才的 项目中,并选中三种生成文件; 3)编写*.s程序; 4)Edit-DebugRel Settings-ARM Linker: 设置工程链接地址: Output-Simple:ROBase-0x40000000,RW Base-0x40003000 设置调试入口地址: Options-Image entry point:0x40000000 5)Project-Make:编译链接工程 6)Project-Debug:调试追踪程序 说明:在Memory窗口中,鼠标右键可设置显示格式8bit、16bit、32bit 或其它。 5. 思考 在AXD调试时复位程序:File-Reload Current Image,重新加载映 像文件
西南科技大学嵌入式实验报告
![西南科技大学嵌入式实验报告](https://img.taocdn.com/s3/m/98879ce0aff8941ea76e58fafab069dc502247cb.png)
西南科技大学嵌入式实验报告《嵌入式系统》
实验报告
姓名:
学号:
班级:
20xx年4月
实验一ARM汇编指令实验1
一、实验目的
1.初步学会使用ADS1.2 开发环境及ARM软件模拟器;
2.通过实验掌握简单ARM汇编指令的使用方法。
二.实验设备
1.硬件:PC机;
2.软件:ADS1.2集成开发环境。
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体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。
五.实验程序
1. 实验A参考程序
X EQU 45 :定义变量x,并赋值为45
Y EQU 64 :定义变量y,并赋值为64
STACK_TOP EQU 0x1000 :定义栈顶0x1000
AREA Example,CODE,READONLY :声明代码段
ENTRY :标识入口。
嵌入式实验一二
![嵌入式实验一二](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为接收数据的流程。
嵌入式实验开发环境熟悉实验
![嵌入式实验开发环境熟悉实验](https://img.taocdn.com/s3/m/cbe2e44a580216fc700afdd6.png)
实验一:嵌入式实验开发环境熟悉实验一实验目的●了解本课程使用的嵌入式开发平台UP-NetARM2410-S的基本组成、配置●熟悉ADS1.2 开发环境●学会ARM 仿真器的使用●使用ADS 编译、下载、调试并跟踪一段已有的程序●了解嵌入式开发的基本思想和过程。
二实验内容本次实验要求自己配置好实验环境;然后使用ADS 集成开发环境,新建一个简单的工程文件,并编译这个工程文件。
学习ARM 仿真器的使用和开发环境的设置。
下载已经编译好的文件到嵌入式控制器中运行。
学会在程序中设置断点,观察系统内存和变量,为调试使用程序打下基础。
三实验设备及工具●硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、用于ARM920T 的JTAG 仿真器、串口线。
●软件:PC 机操作系统Win2000 或WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。
四基础知识1嵌入式开发平台硬件平台是基于ARM体系结构,由北京博创兴业科技有限公司开发的UP-NetARM3000和UP-NetARM2410-S实验仪器。
UP-NetARM3000的CPU为ARM7TDMI内核的三星S3C44B0X01芯片,由于没有MMU(内存管理单元)只能运行uClinux,UP-NetARM2410-S的CPU为ARM920T 内核的三星S3c2410芯片,由于有MMU可以运行标准的ARM-LINUX内核,本实验室配备的实验开发平台就是UP-NetARM2410-S。
现对实验平台做个简要介绍,其硬件配置资源如表1所示:表1 UP-NetARM2410-S的硬件配置配置名称型号说明CPU ARM920T结构芯片三星S3c2410X 工作频率203MHzFLASH SAMSUNG K9F1208 64M NANDSDRAM HY57V561620AT-H 32M×2=64MEtherNet网卡AX88796 两片,10/100M自适应LCD LQ080V3DG01 8寸16bit TFT触摸屏SX-080-W4R-FB FM7843驱动LED ZLG7290 四个共阴极LEDUSB 接口4个HOST /1个DEVICE 由AT43301构成USB HUB UART/IrDA 2个RS232,1个RS485,1个IrDA 从处理器的UART2引出AD 由S3C2410芯片引出3个电位器控制输入AUDIO IIS总线,UDA1341芯片44.1KHz音频扩展卡插槽168Pin EXPORT 总线直接扩展GPS_GPRS扩展板SIMCOM的SIM100-E模块支持双道语音通信IDE/CF卡插座笔记本硬盘,CF卡PCMCIA和SD卡插座PCMCIA型号为DWL-650PS2 PC键盘和鼠标由ATMEGA8单片机控制IC卡座AT24CXX系列由ATMEGA8单片机控制DC/STEP电机DC由PWM控制,STEP由74HC573控制CAN BUS 由MCP2510和TJA1050构成Double DA MAX504 两个10位DAC端口调试接口JTAG 14针、20针UP-NetARM2410-S实验开发平台的外观图如图1所示:图1 UP-NetARM2410-S该实验平台的各模块功能如图2所示:和微机连接示意图:图3 UP-NetARM2410-S的连接示意图该硬件平台的基本架构如图4所示:图4 UP-NetARM2410-S的架构示意图(1)核心板●CPU: ARM920T结构芯片,工作频率202MHz ,SAMSUNG公司的S3c2410X●FLASH:64M NAND型,SAMSUNG的K9F1208●RAM:64MB SDRAM,HY57V561620AT-H200管脚精密插座图5 UP-NetARM2410-S的核心板S3c2410芯片介绍:S3c2410X芯片集成了大量的功能单元,包括:1).内部1.8V,存储器3.3V,外部IO3.3V,16KB数据CACH,16KB指令CACH,MMU;2).内置外部存储器控制器(SDRAM 控制和芯片选择逻辑);3). LCD控制器(最高4K色 STN和256K彩色TFT),一个LCD专用DMA;4). 4路带外部请求线的DMA;5).三个通用异步串行端口(IrDA1.0, 16-Byte Tx FIFO, and 16-Byte Rx FIFO),2通道SPI;6).一个多主IIC总线,一个IIS总线控制器;7). SD主接口版本1.0和多媒体卡协议版本2.11兼容;8). 2个USB HOST ,一个USB DEVICE(VER1.1);9). 4个PWM定时器和一个内部定时器;10).看门狗定时器;11).117个通用IO;12).24个外部中断;13).电源控制模式:标准、慢速、休眠、掉电;14).8通道10位ADC和触摸屏接口;15).带日历功能的实时时钟;16).芯片内置PLL;17).设计用于手持设备和通用嵌入式系统;18).16/32位RISC体系结构,使用ARM920T CPU核的强大指令集;19).ARM带MMU的先进的体系结构支持WINCE、EPOC32、LINUX;20).指令缓存(cache)、数据缓存、写缓冲和物理地址TAG RAM,减小了对主存储器带宽和性能的影响;21).ARM920T CPU 核支持 ARM 调试的体系结构;22).内部先进的位控制器总线(AMBA2.0, AHB/APB) .芯片封装如下图所示:(2)主板●USB口:包括一个USB Device接口和4个USB Host接口。
使用ADS1.2进行嵌入式软件开发(下).
![使用ADS1.2进行嵌入式软件开发(下).](https://img.taocdn.com/s3/m/d66f311ea6c30c2259019e97.png)
使用ADS1.2进行嵌入式软件开发(下)上期主要介绍了基于ARM的嵌入式系统软件开发中,怎样来对必要的C库函数进行移植和重定向,以及如何根据不同的目标存储器系统进行程序编译和连接设置。
本期介绍程序中的存储器分配和如何根据设置正确初始化系统。
放置堆栈和heapScatterloading机制提供了一种指定代码和静态数据布局的方法。
下面介绍如何放置应用程序的堆栈和heap。
* _user_initial_stackheap重定向应用程序的堆栈和heap是在C库函数初始化过程中建立起来的。
可以通过重定向对应的子程序来改变堆栈和heap的位置,在ADS的库函数中,即_user_initial_stackheap()函数。
_user_initial_stackheap()可以用C或汇编来实现,它必须返回如下参数:r0:heap基地址;r1:堆栈基地址;r2:heap长度限制值(需要的话);r3:堆栈长度限制值。
当用户使用分散装载功能的时候,必须重调用_user_initial_stackheap(),否则连接器会报错:Error: L6218E: Undefined symbol Image$$ZI$$Limit (referred from sys_stackheap.o)*存储器模型ADS提供了两种实时存储器模型。
缺省时为one-region,应用程序的堆栈和heap位于同一个存储器区块,使用的时候相向生长,当在heap区分配一块存储器空间时需要检查堆栈指针。
另一种情况是堆栈和heap使用两块独立的存储器区域。
对于速度特别快的RAM,可选择只用来作堆栈使用。
为了使用这种two-region模型,用户需要导入符号use_two_region_memory,heap使用需要检查heap的长度限制值。
对这两种模型来说,缺省情况下对堆栈的生长都不进行检查。
用户可以在程序编译时使用 -apcs/swst 编译器选项来进行软件堆栈检查。
(OK)嵌入式系统体系结构实验指导书(只含ADS)
![(OK)嵌入式系统体系结构实验指导书(只含ADS)](https://img.taocdn.com/s3/m/45af6b12cc17552707220862.png)
嵌入式系统体系结构实验指导书华东交通大学信息工程学院计算机系目录实验一ARM ADS集成开发环境练习 (3)实验二ARM汇编指令实验 (18)实验三ARM汇编语言程序设计实验(一) (20)实验四ARM汇编语言程序设计实验(二) (22)实验五ARM汇编与C语言混合程序设计实验 (26)实验六ARM的串行口实验 (29)实验七键盘及LED驱动实验 (32)实验八LCD与触摸屏程序设计 (35)特别说明:所有目录都应是英文字符,如出现中文字符会报错。
实验一ARM ADS集成开发环境练习一、实验目的熟悉ARM ADS1.2开发环境,并学会ADS1.2环境下工程的仿真、调试及配置方法。
使用ADS编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。
二、实验内容本次实验使用ARM ADS 1.2集成开发环境。
新建一个基于简单的工程文件,并编译这个工程文件。
学习ADS1.2环境下工程的仿真、调试及配置方法。
学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。
三、预备知识C语言的基础知识、程序调试的基础知识和方法。
四、实验设备及工具(包括软件调试工具)硬件:PC机Pentium100以上。
软件:PC机Windows操作系统、ARM ADS 1.2集成开发环境、AXD五、实验步骤(一)ADS1.2集成开发环境的使用1.新建工程现在可以通过“开始”—“程序”—“ ARM Developer Suite v1.2”—“ CodeWarrior for ARM Developer Suite”来打开开发软件了,如图1-14所示。
图1-14启动Metrowerks CodeWarrior for ARM Developer Suite v1.2后界面如图1-15所示。
图1-15在CodeWarrior中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮,如图1-16所示。
也可以在“File”菜单中选择“New。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专业班级:
学号:姓名:
嵌入式技术实验报告
实验项目名称:ADS 1.2集成开发环境练习
实验日期:2012年9月21日实验成绩:
实验评定标准:
一、实验目的:
了解ADS 1.2 集成开发环境的使用方法。
二.实验设备:
硬件:PC 机一台
软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境三、实验内容:
(1)建立一个新的工程。
(2)建立一个C 源文件,并添加到工程中。
(3)设置文本编辑器支持中文。
(4)设置编译链接控制选项。
(5)编译链接工程。
(6)调试工程。
四.实验预习要求:
仔细阅读产品光盘附带文档《ADS 集成开发环境及仿真器应用》或其它相关资料,了解ADS 工程编辑的内容。
说明:这里所指的“产品光盘”是MagicARM2200-S 教学实验开发平台的附带光盘,
五.实验步骤:
(1)启动ADS1.2 IDE 集成开发环境,选择【File】->【New…】,使用ARM Executable Image 工程模板建立一个工程,工程名称为ADS,见图2.1。
(2)选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中,见图2.2。
输入如程序清单2.1 所示的代码,并见图 2.3。
程序代码如下:
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
(3)由于ADS 安装以后默认字体是Courier New,对于中文支持
不完善,因此建议修
改字体。
选择【Edit】->【Perferences…】,可以看见以下对话框,如图2.4 所示。
在Font 选
项设置字体是Fixedsys,Script 是CHINESE_GB2312 。
由于Tab 在不同文本编辑器解释不
同,建议在Tab Inserts Spaces 前打勾,使Tab 键插入的是多个空格。
(4)选择【Edit】->【DebugRel Settings…】,在DebugRel Settings 对话框的左边选择ARM Linker 项,然后在Output 页设置链接地址(见图2.5),在Options 页设置调试入口地址
(5)选择【Project】->【Make】,将编译链接整个工程。
如果
编译成功,见图2.7,Errors& Warnings 对话框会报告编译错误为0,那么就可以对工程进行仿真。
(6)选择【Project】->【Debug】, 或者按下快捷键F5。
IDE 环境就会启动AXD 调试软件,见图2.8。
断点调试方法:首先设置断点,只需要在第6 行灰色区域双击鼠标即可,如果出现红色实心圆点,那么表示断点设置成功,然后选择【Execute】->【Go】全速运行,可以发现程序停止在第6 行。
还有一种比较方便的调试方法就是Run to Cursor,单击鼠标第8 行灰色区
域,如果AXD 将第8 行高亮就表示设置成功,然后选择【Execute】
->【Run to Cursor】运行到光标,可以发现程序停止在第8 行。
通过断点调试可以观察ARM 寄存器数值变化。
六、思考:
(1)工程模板有何作用?
答:对程序的运行起控制作用。
即把程序放在一个固定的地方,当程序运行时,处理器能快速的找到程序的存放路径,高效、快速的完成程序的处理。
(2)如何强行重新编译工程的所有文件?
答:强行重新编译工程的所有文件需要按如下步骤进行:选择【Project】->【Remove Object Code…】删除工程中的*.obj 文件。