ARM实验3

ARM实验3
ARM实验3

实验3 ADS集成开发环境应用实例

1. 实验目标

◆掌握ADS集成开发环境CodeWarrior IDE和调试工具AXD的使用

◆掌握ARM汇编程序的编辑与调试的基本操作

2. 考核点

◆CodeWarrior IDE集成编辑环境和调试工具AXD的应用

◆ARM汇编程序的编辑、调试方法

3. 实验环境

(1)硬件环境

◆CPU:Intel Pentium III 500MHz或以上;

◆RAM:256MB或以上;

◆硬盘:至少有6GB或以上的空余磁盘空间。

(2)软件环境

装有ADS12.集成开发环境的PC机

4. 实验要求

(1)启动ADS 1.2集成开发环境CodeWarrior IDE,单击【开始】→【程序】→【ARM Developer Suite v1.2】→【CodeWarrior for ARM Developer Suite】,启动Metrowerks CodeWarrior,使用ARM Executable Image 工程模板建立一个工程Test1。如图3-1所示。

图3-1 新建工程对话框

(2)从Location处选择好新建工程的存储路径后,单击【确定】按钮()确认,然后在新建的工程里面建立一个新文件(汇编程序),添加一个汇编语言的程序,添加到我们这个新建工程中。添加命令如图3-2所示,添加对话框如图3-3所示。

图3-2 在新建的工程中添加文件

图3-3 添加文件对话框

(3)执行完文件的添加后,我们就可以对汇编程序进行编译和链接了。在编译程序之前首先要对工程进行相应的设置,对于一般的简单程序而言,我们直接可以对程序进行编译了,而对复杂的程序,可能需要对连接地址进行相应的设置。如图3-4默认的连接地址是从0x8000开始的,这是相对于存储设备的起始地址而言,假如系统的起始地址为0x80000000,程序实际的运行的起始地址为0x80008000。下图为工程设置对话框:

图3-4 DebugRel设置对话框

(4)设置完工程参数后,就可以进行编译连接了,单击工程窗口上的Make按钮,完成程序的编译连接。如下图3-5所示编译连接输出窗口。编译完成,在对应的工程文件夹下的DebugRel文件夹下生成对应的工程文件的可执行文件,扩展名名为.axf,对于本例将会生成Test1.axf。

图3-5 编译连接输出窗口

(5)打开ADS1.2的集成开发环境中调试工具AXD,当单击工程窗口中的Debug按钮,就可启动调试工具AXD。然后单击【Options】选择【Configure Target…】,即弹出Choose Target 窗口,如图3-6所示。

图3-6 Choose Target

在没有添加其它仿真驱动程序前,Target 项中只有两项,分别为ADP(JTAG 硬件仿真)和ARMUL(软件仿真)。在这里我们选择软件仿真。

(6)选择软件仿真之后,单击【File】选择【Load Image…】加载ELF 格式的可执行文件,即*.axf 文件。我们加载我们在前面生成的Test1.axf可执行文件。如下图3-7所示。

说明当工程编译连接通过后,在“工程名\工程名_Data\当前的生成目标”目录下就会

生成一个*.axf 调试文件。

图3-7 加载可执行文件后的窗口

(7)利用AXD运行调试工具条如图3-8所示。调试我们的可执行调试文件,也可以利用调试快捷键F8(单步执行函数中的每一条语句),F10也是单步执行,就是函数被认为是一条语句来执行。

图3-8 调试工具条

(8)单击【Processor Views】选择【Registers】打开寄存器窗口(Processor Registers),并设置R0的显示格式Format为Decimal(右击R0寄存器)使用单步运行程序,运行结果如图3-9所示。它实现了寄存器循环相加的实验。每调用一次ADD_SUB子程序后R0的值将会加10,在进入ADD_SUB 子程序后R14(即LR)寄存器值为0x0000800C。

3-9 汇编程序单步执行结果

(9)实验汇编程序清单如下所示:

程序清单寄存器相加参考程序

; 文件名:Test1.S

; 功能:实现两个寄存器相加

; 说明:使用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 ; R0 = R0 + R1

MOV PC,LR ; 子程序返回

END ; 文件结束

(10)通过这个简单的汇编程序,我们了解了在ADS1.2集成开发环境下,建立一个程序文件,并通过编译、连接,最后利用AXD进行调试的全过程。熟悉了ADS集成开发环境编辑环境CodeWarrior IDE和调试工具AXD的应用,同时了解了汇编程序的基本调试过程。不管是复杂程序的调试还是简单程序的调试,大体都是按照这种编辑调试步骤进行的。

5. 实验要点与注意事项

◆在CodeWarrior IDE下工程文件的建立

◆工程文件的设置

◆工程文件生成的可执行调试文件在AXD中的加载

◆AXD调试工具中仿真驱动程序的选择,根据不同的调试方法选择相应的调试

驱动

◆AXD中对于寄存器、变量、内存等参数的查看

6. 实验记录

___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________

7. 实验总结与评价(由实验指导老师填写)

嵌入式实验报告二

实习二建立交叉编译环境 实习内容: 本次实验主要包括二部分内容:开发环境配置,主要有配置NFS,Samba和超级终端;编写编译程序。 1、配置NFS(实现宿主机和目标机的信息共享) 打开Linux虚拟机,点击主菜单运行系统设置->服务器设置->NFS 服务器,点击增加,在出现的界面中的目录中填入需要共享的路径,在主机中填入允许进行连接的主机的IP地址(注意:这里主机IP指的是开发板的IP)。并选择允许客户对共享目录的操作为只读或读写(注意:实验中选的是读写,一定不能忽略),如下图: 对客户端存取服务器的一些其他设置,一般不需要设置,取默认值。然后退出,完成了NFS配置。 2、配置Samba(实现Windows和Linux系统的文件共享) ①关闭防火墙,这个地方和上面的NFS的配置是一样的。 ②配置Samba服务器 选择“系统设置”—>“服务器配置”—>“Samba服务”,进行Samba 服务器配置。首先创建Samba共享,选择“基本”选项卡,在“目录”

的文本框中输入要共享的文件,基本权限设为读/写。在“访问”选项卡中选择“允许所有用户访问”选项,通过“首选项”进行服务器配置。在“基本”选项卡中设置工作组和描述,在“安全性”选项卡中设置“验证模式”为共享,“加密口令”为否,“来宾账号”为无来宾账号。 ③设置Samba服务器IP地址(与前面的NFS的设置相同) ④启动Samba服务器 在命令行中输入service smb start,即可启动Samba服务器。 ⑤配置Windows下的IP地址 将Windows下的IP地址和Samba服务器IP地址设置在同一网段中即可(注意:这里设置IP时一定要注意在同一网段) ⑥在Windows下访问共享 在Windows中的“运行”窗口中输入Samba服务器的IP地址,就可以看见在虚拟机中共享的文件。 3、配置超级终端 ①在linux操作系统Xwindow界面下建立终端,在终端的命令行提示符后输入minicom,回车,然后就会看见minicom的启动画面,若没有启动Xwindow则在命令行提示符后直接输入minicom即可。 ② minicom启动后,先按Ctrl+A键,然后按Z键进入主配置界面,按“O”进入配置界面,按上下键选择Serial port setup,进入端口设置界面,然后按照指导书中的指示修改几个重要选项。 ③选好后按ESC键退出端口设计界面,选择Save setup as df1保存

arm实验8

实验八 IIC 接口实验 1.实验目的 (1)熟悉S3C2410A 处理器的硬件I2C 接口的使用。 (2)了解CAT1025 EEPROM 的操作方法及注意事项。 2.实验设备 PC 机一台;MagicARM2410 教学实验开发平台一套 ADS 1.2 集成开发环境 3.实验内容 使用I2C 接口主模式向CAT1025 写入10 字节数据,然后读出校验,若校验通过则蜂鸣器 响一声,否则不断地蜂鸣报警。I2C 接口操作采用查询方式。 4.实验原理 S3C2410A 具有1 个硬件I2C 接口,可以配置为主发送、主接收、从发送和从接收等4种 操作模式。I2C 接口共包含4 个寄存器,控制寄存器IICCON 用于设置I2C 总线时钟和中断(标志)使能,还有1 位中断标志位;状态寄存器IICSTAT 除了指示当前I2C 总线状态外,还有2 位I2C 操作模式控制位和总线启动/结束控制位;数据寄存器IICDS 用来发送数据或接收数据;从机地址寄存器IICADD 用来保存S3C2410A 作I2C 从机时的器件地址。对I2C 接口进行初始化时,首先要设置相应I/O 为IICSDA、IICSCL 功能引脚,然后通过IICCON 寄存器来设置I2C 总线时钟,并使能I2C 中断(标志),通过IICSTAT 寄存器来设置I2C 接口为主发送模式。 在进行每一次数据传送之前,都需要产生IIC 总线启动信号。先把要访问的IIC 器件的 地址写入IICDS 寄存器当中,然后将IICSTAT 寄存器的d5 位置位,即可产生结束总线信号,并且将从机地址发送出去。通过读取IICCON 寄存器的值来等待总线启动和发送从机地址,通过读取IICSTAT 寄存器的值判断是否有从机应答,如果没有从机应答,则只能进行结束总线操作。 启动总线后,就可以进行多个数据的发送或接收操作。进行I2C 数据发送时,将待发送 数据写入IICDS 寄存器,然后还要写IICCON 寄存器清除I2C 中断标志,总线才开始发送数据。通过读取IICCON、IICSTAT 寄存器的值判断数据是否发送完成。 进行IIC 数据接收时,通过读取IICCON、IICSTAT 寄存器的值判断是否接收到数据,如 果接收到数据,则可以从IICDS 寄存器中读出数据。接收完一字节数据后,需要写IICCON 寄存器清除I2C 中断标志(同时,可以控制输出应答或非应答信号),总线才允许接收下一字节数据。

嵌入式实验报告

嵌入式技术 实验报告 系别:计算机与科学技术系 班级:计12-1班 姓名:刘杰 学号:12101020128 总成绩: 评语: 日期:

2.在弹出的对话框中依次选择“cedevice emulator emulator kdstub”。 3.选择“Build OS”菜单的“sysgen”开始构建平台。 1.1.4连接,下载和运行平台 1.选择“Target”菜单下的“Connection option”菜单项。 2.在新的对话框中,配置连接关系 3.选择“Target”菜单下的“attach”菜单项,开始下载。 ?实验结果 操作系统定制成功,能正常运行。 ?结果截图 ?问题总结 由于对实验平台了解不够,致使操作过程中添加和删除组件时不知道该如何下手,影响整个实验进度。 实验1.2: 1.打开Platform Builder,并且打开实验1的工程,在实验1的工程基础上做本实验。

进程显示 IE信息查看

报文监测 实验1.3使用Platform Builder开发应用程序 简单实验步骤 1.打开Platform Builder。 2.选择“File”菜单下的“Open Workspace…”,然后打开实验1中创建的平台,本实验要基于 上面的实验的基础上做。 3.选择“File”菜单下的“New Project or File…”,打开“New Project or File”对话框。 4.在“Projects”选项页中选择“WCE Application”;在“Project Name”中输入项目的名字,例 如“MyApp”。 5.在“New Project Wizard – step 1 of 1”中选择“A typical Hello World Application”,点击“Finish” 按钮。 6.选择“Build”菜单中的“Build MyApp.exe”来编译应用程序。

实验五 ARM 指令系统实验二

实验五ARM指令系统实验二 注意:本实验在模拟环境下进行,请不要打开实验箱电源!! 一、实验目的: 1、掌握MDK开发环境下多文件编程的方法; 二、实验原理 我们编程时会以工程为单位来解决一个问题,为了解决问题的复杂性和人脑的局限性之间的矛盾,编程人员常常把把一个大问题分解成若干过小问题,每个小问题的解决方法在一个文件中实现,把每个文件解决问题的方法综合起来就够成了解决了大问题的方法。 这些文件之间是存在一定关系的,如果一个文件与其他文件不发生任何关系,那么就没有在工程中存在的必要了!从ARM汇编程序员的角度理解这种关系为: 一个文件有标号被其他文件引用,另一个文件应用了其他文件的标号;这用引用与被应用的关系分别通过import和export实现。 例如: 三、实验任务 下面文件中的定义的数据为某科目学生成绩,试编程找出最高分数的放在maxscore,score.s的内容如下: ;score.s area score,data,readwrite

scores dcb65,78,92,47,77,83,59,93,82,97;学生成绩numofstudent dcb10;学生人数 maxscore dcb0;存放最高分数 end 四、实验步骤 ;A.s …… export label label ……;B.s……import label bl label…… 说明标号label可以被其他文件引定义了标号label说明标号label可以被其他文件引引用了标号label 1、用自然语言描述解决给问题的算法,可以尽可能的抽象! 2、建立工程并建立源文件score.s并把输入(复制)上面内容,并将该文件添加到工 程; 3、建立文件maxoftwo.s,在文件中实现子程序getmax,调用者传入的参数位于 r0、r1中,要求找出r0、r1中的较大值,并把较大值保存在r0

arm嵌入式系统课后习题部分答案

a r m嵌入式系统课后习题 部分答案 The pony was revised in January 2021

一填空题嵌入式系统从大的方面分为(嵌入式系统硬件平台)和(嵌入式软件)两大部分。 驱动层程序一般包括(硬件抽象层HAL)、(板级支持包BSP)和(设备驱动程序)。 嵌入式系统核心是嵌入式处理器,可分为(嵌入式微处理器)、(嵌入式微控制器)、嵌入式DSP处理器和(嵌入式片上系统SoC)4大类。处理器分为(ARM)和(Thumb)两种操作状态。 状态下,SP寄存器指的是(R13)、LR寄存器指的是(R14)、PC寄存器指的是(R15). 处理器支持的数据类型中,字节为(8)位、半字为(16)位、字为(32)位。 (-S)指令集包括(ARM)指令集和(Thumb)指令集。 指令用于从(存储器)中将一个32位的字数据传送到(目的寄存器)中。 指出下面各条指令的寻址方式。 SUB R0,R1,R2 ;寻址方式:(寄存器寻址)。

SUBS R0,R0,#1 ;寻址方式:(立即寻址)。 MOV R0,R2,LSL#3 ;寻址方式:(寄存器移位寻址)。 SWP R1,R1,[R2] ;寻址方式:(寄存器间接寻址)。 LDR R2,[R3,#0x0C] ;寻址方式:(基址寻址)。 汇编语言源程序中语句一般有(指令)、(伪指令)、(伪操作)和宏指令组成。 对Flash存储器的编程可通过(JTAG仿真/调试器)、( ISP )和(IAP)3重方法来实现。 异常向量表可以来自4个不同的存储器区域,分别是(片内Flash )、(片内SRAM )、( Boot Block )和片外存储器。 系列的定时器主要用于3个方面:(对内部事件进行计数的间隔定时器)、(通过捕获输入实现脉宽解调器)、(自由运行的定时器)。二选择题 可以表示微控制器的缩略词是( B ) A. MPU B. MCU C. WDT 类存储器包括( ABD )

ARM实验指导

ADS 集成开发环境及EasyJTAG 仿真器应用 ADS 集成开发环境是ARM 公司推出的ARM 核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为ADS1.2。ADS1.2 支持ARM10 之前的所有ARM 系列微控制器,支持软件调试及JTAG 硬件仿真调试,支持汇编、C、C++源程序,具有编译效率高、系统库功能强等特点,可以在Windows98、Windows XP、Windows2000 以及RedHat Linux上运行。 这里将简单介绍使用ADS1.2 建立工程,编译连接设置,调试操作等等。最后还介绍了基于LPC2100 系列ARM7 微控制器的工程模板的使用,EasyJTAG 仿真器的安装与使用。 一、ADS 1.2 集成开发环境的组成 ADS 1.2 由6 个部分组成,如表1 所示。 表1 ADS 1.2 的组成部分 由于用户一般直接操作的是CodeWarrior IDE 集成开发环境和AXD 调试器,所以这一章我们只介绍这两部分软件的使用,其它部分的详细说明参考ADS 1.2 的在线帮助文档或相关资料。 1. CodeWarrior IDE 简介

ADS 1.2 使用了CodeWarrior IDE 集成开发环境,并集成了ARM 汇编器、ARM 的C/C++编译器、Thumb 的C/C++编译器、ARM 连接器,包含工程管理器、代码生成接口、语法敏感(对关键字以不同颜色显示)编辑器、源文件和类浏览器等等。CodeWarrior IDE 主窗口如图1所示。 2. AXD 调试器简介 AXD 调试器为ARM 扩展调试器(即ARM eXtended Debugger),包括ADW/ADU 的所有特性,支持硬件仿真和软件仿真(ARMulator)。AXD 能够装载映像文件到目标内存,具有单步、全速和断点等调试功能,可以观察变量、寄存器和内存的数据等等。AXD 调试器主窗口如图2 所示。

嵌入式系统综合实验一

嵌入式系统综合实验一

学号: 装 订 线 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 专业:测控技术与仪器 姓名:颜睿

装订 线1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出40bit 的数据,幵触发一次信采集。

b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低 电平保持时间不能小于18ms,然后等待DHT11 作出 应答信号。 装 线 订 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时, 等待外部信号低电平结束,延迟后DHT11 的DATA 引脚处于输出状态,输出80 微秒的低电平作为应答信 号,紧接着输出80 微秒的高电平通知外设准备接收数 据。

装 订线 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。 (2)数据格式 一次传送40 位数据,高位先出 8bit 湿度整数数据+ 8bit 湿度小数数据+8bit 温度整

ARM嵌入式系统基础试验参考指导书

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 ;/*指定函数的入口*/ START MOV R0,#0xFF ;/*把#0xFF传送到R0*/ MOV R1,#0xEF000000 ;/*把#0XEF000000传送到R1*/ MOV R2,#0x2F000000 ;/*把#0x2F000000传送到R2*/ MVN R3,#0Xff ;/*把#0xFF取反后传送到R3*/ ADD R4,R2,R1 ;/*把R2加R1的值传送到R4*/ ADDS R5,R2,R1 ;/*把R2加R1的值传送R5,s表示会影响cpsr*/ ADCS R6,R2,R1 ;/*把R2加R1的值,再加上carry的值后传送到R6. ;s表示值会影响cpsr*/ SUB R4,R2,R1 ;/R2减R1的值传送到R4*/ SUBS R4,R2,R1 ;/*R2减R1的值传送到R4, s表示影响cpsr*/ RSB R5,R2,R1 ;/*R1减R2的值传送到R5*/

armhelloworld实验.

实验一HelloWorld 一、实验目标: 1.了解实验箱的使用; 2.了解ADS的使用(建立新的工程并正确设置和编译); 3.调试HelloWorld程序,体会整个过程; 4.了解三个警告,如何消除?(选做); 二、任务: 1、给出建立新工程的步骤; 1、首先了解ADS软件使用 ADS非常易于初学者上手,该软件的操作尤为简单,对于一般ARM程序的开发,可以分为以下几个过程:编写ARM代码->译、链接产生可执行二进制代码->利用实验箱上ARM系统自带的Bootloader,通过串口大师把可执行代码通过计算机串口下载到硬件板->实验系统在接受完下载的代码后即自动执行->查看实验结果。 下面详细的讲述如何利用该软件开发适合本实验系统的ARM程序。 1.首先在开始菜单中,点击“程序->ARM Developer Suite V1.2->CodeWarrior for ARM Developer Suite”,即可弹出如图2.1.13所示界面。

图2.1.13 ADS软件界面 2.点击“File->New”,会弹出如图2.1.14所示的建立新工程界面。 3.在Project中选择“ARM Executable Image”选择好路径,并在工程名中输入HelloWorld,后点击【确定】,即出现如图2.1.15所示的空的工程界面。 4.此时的工程是一个空的,必须加入相应的代码才行。首先将实验1文件夹下面的inc文件夹和src文件夹拷贝到刚刚建立的HelloWorld文件夹下面;然后在ADS软件中的HelloWorld工程窗口的空白处点击鼠标右键,选择“Add Files…”,选择刚刚拷贝的src文件夹下面的所有文件,如图2.1.16所示。 5.点击【打开】后,会出现如图2.1.17所示的编译类型对话框。

嵌入式实验报告

目录 实验一跑马灯实验 (1) 实验二按键输入实验 (3) 实验三串口实验 (5) 实验四外部中断实验 (8) 实验五独立看门狗实验 (11) 实验七定时器中断实验 (13) 实验十三ADC实验 (15) 实验十五DMA实验 (17) 实验十六I2C实验 (21) 实验十七SPI实验 (24) 实验二十一红外遥控实验 (27) 实验二十二DS18B20实验 (30)

实验一跑马灯实验 一.实验简介 我的第一个实验,跑马灯实验。 二.实验目的 掌握STM32开发环境,掌握从无到有的构建工程。 三.实验内容 熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现跑马灯工程。通过ISP 下载代码到实验板,查看运行结果。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。 四.实验设备 硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1.熟悉MDK KEIL开发环境 2.熟悉串口编程软件ISP 3.查看固件库结构和文件 4.建立工程目录,复制库文件 5.建立和配置工程

6.编写代码 7.编译代码 8.使用ISP下载到实验板 9.测试运行结果 10.使用JLINK下载到实验板 11.单步调试 12.记录实验过程,撰写实验报告 六.实验结果及测试 源代码: 两个灯LED0与LED1实现交替闪烁的类跑马灯效果,每300ms闪烁一次。七.实验总结 通过本次次实验我了解了STM32开发板的基本使用,初次接触这个开发板和MDK KEILC 软件,对软件操作不太了解,通过这次实验了解并熟练地使用MDK KEIL软件,用这个软件来编程和完成一些功能的实现。作为STM32 的入门第一个例子,详细介绍了STM32 的IO口操作,同时巩固了前面的学习,并进一步介绍了MDK的软件仿真功能。

arm实验报告最终版

ARM与嵌入式技术 实验报告 专业班级:10通信工程1班 姓名:万洁 学号:100103011125 实验日期:2013年5月28日 指导老师:郑汉麟

1、 通过实验掌握ARM 指令的特点和寻址方式; 2、 掌握简单的ARM 汇编语言的程序设计; 3、 了解集成开发环境 Embest IDE 及其开发软件的应用; 、实验环境 Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备 的面向嵌入 式系统的开发和调试工具。其开发软件 Embest IDE for ARM 是集编辑器、编译 器、调试器、工程管理器( projectma nager )于一体的高度集成的窗口环境,用户可以在 Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应 用程序。 三、实验步骤 1)新建工程: 运行Embest IDE 集成开发环境,选择菜单项 File 宀New Workspace ,如图一,系统弹 出一个对话框,键入文件名“ wj ”,如图二,点击 0K 按钮。将创建一个新工程,并同时创 建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程 .。 (老师提醒:不要放入Bin 文件夹中) ■ Emb?t QE Pre 亠 Educat 「販]£dii_Vww Buid frtbug D if** Qri+W 诊 Open-" Qrl*O 2)建立源文件: 点击菜单项 File T New ,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。 编辑完后,保存文件“ wj.s ”后缀,如图三,四。 Hr* Open Workspace.? 图一 ■■ rflJO IUU rl jil rd f rfl,rl Clop : h Ho. .end 图 tut vUrl:

(完整版)2014完整ARM嵌入式系统实验报告

郑州航空工业管理学院 嵌入式系统实验报告 (修订版) 20 – 20第学期 赵成,张克新编著

院系: 姓名: 专业: 学号: 电子通信工程系 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中包括和两个软件组件。在ADS1.2中建立类型的工程,工程目标配置为;接着,还需要对工程进行、及链接器设置;最后,配置仿真环境为仿真方式。 2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名:

嵌入式实验结果

源程序a ; NAME: asm1_a.s ; Author: TYW /WUHAN R&D Center,Embest ; Desc: ARM instruction examples ; History: 2007.5.1 x EQU 45 ; x=45 y EQU 64 ; y=64/ stack_top EQU 0x30200000 ; define the top address for stacks export Reset_Handler AREA text,CODE,READONL Y export Reset_Handler ; code start */ ldr sp, =stack_top mov r0, #x ; put x value into R0 str r0, [sp] ; save the value of R0 into stacks mov r0, #y ; put y value into R0 ldr r1, [sp] ; read the data from stack,and put it into R1 add r0, r0, r1 ;R0=R0+R1 str r0, [sp] stop b stop ; end the code ,cycling end 调试脚本 //*** <<< Use Configuration !disalbe! Wizard in Context Menu >>> *** //Name: DebugINRam.ini FUNC void Setup (void) { // Program Entry Point, .AXF File download Address PC = 0x030000000; } //map 0x00000000,0x0200200 READ WRITE exec map 0x30000000,0x30200000 read WRITE exec Setup(); // Setup for Running //g,main 源程序b ;# NAME: ARMcode.s * ;# Author: EWUHAN R & D Center, st * ;# Desc: ARMcode examples * ;# copy words from src to dst ;# History: shw.He 2005.02.22 GLOBAL Reset_Handler area start,code,readwrite entry code32

实验五 (ARM指令系统实验二)

实验五 ARM 指令系统实验二 注意:本实验在模拟环境下进行,请不要打开实验箱电源!! 一、 实验目的: 1、 掌握MDK 开发环境下多文件编程的方法; 二、 实验原理 我们编程时会以工程为单位来解决一个问题,为了解决问题的复杂性和人脑的局限性之间的矛盾,编程人员常常把把一个大问题分解成若干过小问题,每个小问题的解决方法在一个文件中实现,把每个文件解决问题的方法综合起来就够成了解决了大问题的方法。 这些文件之间是存在一定关系的,如果一个文件与其他文件不发生任何关系,那么就没有在工程中存在的必要了!从ARM 汇编程序员的角度理解这种关系为: 一个文件有标号被其他文件引用,另一个文件应用了其他文件的标号;这用引用与被应用的关系分别通过import 和export 实现。 例如: 三、 实验任务 下面文件中的定义的数据为某科目学生成绩,试编程找出最高分数的放在maxscore ,score.s 的内容如下: ;score.s area score,data,readwrite scores dcb 65,78,92,47,77,83,59,93,82,97;学生成绩 numofstudent dcb 10;学生人数 maxscore dcb 0;存放最高分数 end 四、 实验步骤 ;A.s …… export label label …… ;B.s …… import label bl label …… 说明标号label 可以被其他文件引定义了标号label 说明标号label 可以被其他文件引引用了标号label

1、用自然语言描述解决给问题的算法,可以尽可能的抽象! 2、建立工程并建立源文件score.s并把输入(复制)上面内容,并将该文件添加到工 程; 3、建立文件maxoftwo.s,在文件中实现子程序getmax,调用者传入的参数位于 r0、r1中,要求找出r0、r1中的较大值,并把较大值保存在r0当中,该文件架构如下: ;maxoftwo.s ;两个要比较的数在r0,r1中 ;比较所得的最大数放在r0当中 area max,code,readonly getmax end 4、建立文件init.s,通过调用maxoftwo.s和score.s完成任务,自己编写代码, 注意下页有该文件的参考代码,但希望同学在实验课上尽量不看参考代码或少看代码!

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汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名: AREA XTF,CODE,READONLY 声明32位ARM指令 R0arm嵌入式实验报告完整版) ADD R0,R1,R2 3.列写出使用LDR、STR指令的汇编程序,并在关键语句后面给出相应的注释。 AREA XTF,CODE,READONLY ;声明代码段XTFENTRY ;标示程序入口CODE32 ;声明32位ARM 指令START LDR R0,=1 ;加载数据LDR R1,=2LDR R3,=ADDR_1;载符号地址 ADD R2,R0,R1;R2[R3] ;数据空间定义 AREA Data_1,DATA,ALIGN=2 ADDR_1 DCD 0 END ;结束 4.“使用多寄存器传送指令进行数据复制”汇编程序分析。 LDR R0,=SrcData ;

实验二 ARM指令系统试验

实验二ARM指令系统试验 讲师:杨行 【实验目的】 1、了解ARM汇编语言 2、掌握简单C语言嵌套ARM汇编语言编程; 3、了解APCS规范; 【实验原理】 一、介绍 APCS,ARM 过程调用标准(ARM Procedure Call Standard),提供了紧凑的编写例程的一种机制,定义的例程可以与其他例程交织在一起。最显著的一点是对这些例程来自哪里没有明确的限制。它们可以编译自C、Pascal、也可以是用汇编语言写成的。 APCS 定义了: 对寄存器使用的限制。 使用栈的惯例。 在函数调用之间传递/返回参数。 可以被‘回溯’的基于栈的结构的格式,用来提供从失败点到程序入口的函数(和给予的参数)的列表。 APCS 不一个单一的给定标准,而是一系列类似但在特定条件下有所区别的标准。例如,APCS-R (用于RISC OS)规定在函数进入时设置的标志必须在函数退出时复位。在32 位标准下,并不是总能知道进入标志的(没有USR_CPSR),所以你不需要恢复它们。如你所预料的那样,在不同版本间没有相容性。希望恢复标志的代码在它们未被恢复的时候可能会表现失常... 如果你开发一个基于ARM 的系统,不要求你去实现APCS。但建议你实现它,因为它不难实现,且可以使你获得各种利益。但是,如果要写用来与编译后的C 连接的汇编代码,则必须使用APCS。编译器期望特定的条件,在你的加入(add-in)代码中必须得到满足。一个好例子是APCS 定义a1 到a4 可以被破坏,而v1 到v6 必须被保护。 二、C语言嵌套ARM汇编语言 int (*my_printf)(const char *format, ...); int main(void) { int n = 5; int m = 1; int ret; my_printf = (void *)0x33f963a8;

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。 图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 的工程管理窗口

ARM实验报告

湖南科技学院ARM嵌入式设计实验报告题目:基于ARM嵌入式系统跑马灯的设计 专业:电子信息工程 班级:电信1102班 姓名:段相辉 学号:201106002232 指导教师:陈光辉 2014年11 月

目录 摘要............................................. 错误!未定义书签。ABSTRACT .......................................... Ⅰ错误!未定义书签。 1 题目要求 (1) 2 设计软件的安装 (2) 3 开发平台的搭建 (22) 4 项目设计 (23) 4.1 设计思路概述 (2) 4.1.1 设计层次介绍 (2) 4.1.2 设计模块介绍 (3) 5总结 (6) 致谢 (25) 参考文献 (26) 附录 (27)

引言 随着生活水平的提高和IT技术的进步,8位处理器的处理能力已经不能满足嵌入式系统的需要了;而16位处理器在性能和成本上都没有很大的突破。并且在8位机的开发中,大多使用汇编语言来编写用户程序。这使得程序的可维护性、易移植性等都受到了极大的挑战。正是基于此,ARM公司适时的推出了一系列的32位嵌入式微控制器。目前广泛使用的是ARM7和ARM9系列,ARM7TDMI内核的ARM7处理器广泛应用于工业控制、仪器仪表、汽车电子、通讯、消费电子等嵌入式设备。

1、题目要求 构建嵌入式Linux开发环境,熟悉linux的命令操作,并在嵌入式Linux 开发环境中设计跑马灯。 2、设计软件的安装 2.1 VMware Player简介 (a) VMware Workstation是一个“虚拟机”软件.它使用户可以在一台机 器上同时运行多个操作系统. (b) VMware Player是VMware Workstation的精简版,最初只是虚拟机的“播放机”, 但最新版本的已经具有创建虚拟机的功能.具有体积小,使用灵活,免费等特点. (c) 多个操作系统在主系统的平台上,可像Windows应用程序那样切换.而且每个操作系统都可以进行虚拟的分区、配置而不影响真实硬盘的数据. (d) 利VMware Player创建虚拟机

ARM嵌入式实验报告

实验一 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_TOP MOV R0, #X /*X的值放入R0*/ STR R0, [SP] /*R0的值保存到堆栈*/ MOV R0, #Y /*Y的值放入R0*/ LDR R1, [SP] /*取堆栈中的数到R1*/ ADD R0, R0, R1 STR R0, [SP] STOP: B STOP /*程序结束,进入死循环*/ .END 2.使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。具体实验程序如下:/* armasm1b.s */ .EQU X, 45 /*定义变量X,并赋值为45*/ .EQU Y, 64 /*定义变量Y,并赋值为64*/ .EQU Z, 87 /*定义变量Z,并赋值为87*/ .EQU STACK_TOP, 0X1000 /*定义栈顶0X1000*/ .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

ARM实验三 ARM的串行口实验

实验三 ARM的串行口实验 一、实验目的 1.掌握ARM的串行口工作原理。 2.学习编程实现ARM的UART通讯。 3.掌握CPU利用串口通讯的方法。 二、实验内容 学习串行通讯原理,了解串行通讯控制器,阅读ARM芯片文档,掌握ARM的UART相关寄存器的功能,熟悉ARM系统硬件的UART相关接口。编程实现ARM和计算机实现串行通讯: ARM监视串行口,将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的),即按PC键盘通过超级终端发送数据,开发板将接收到的数据再返送给PC,在超级终端上显示。 三、预备知识 1.用EWARM集成开发环境,编写和调试程序的基本过程。 2.ARM应用程序的框架结构。 3、了解串行总线。 四、实验设备及工具 硬件:ARM嵌入式开发平台、PC机Pentium100以上、用于ARM920T的JTAG 仿真器、串口线。 软件:PC机操作系统Win2000或WinXP、EWARM集成开发环境、仿真器驱动程序、超级终端通讯程序。 五、实验原理及说明 1.异步串行I/O 异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据的各不同位可以分时使用同一传输通道,因此串行I/O可以减少信号连线,最少用一对线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行I/O方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。

嵌入式实验报告二

嵌入式实验报告二 一、实验目的: 1.学习cygwin; 2.通过上机实验,使学生验证、巩固和充实所学理论知识,加深对相关内容的理解,了解嵌入式Linux的工具链,掌握基于Linux的C程序设计。 二、实验要求: 1.安装cygwin; 2.学习GCC的使用和Makefile的编写。 3.编程实现文件拷贝功能。 三、问题: 1.简述Gcc的常用选项并举例说明。 Linux中gcc常用编译选项 -x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定,C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是. pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。可以使用的参数有下面的这些: `c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `a ssembler-with-cpp'. 例子用法: cd.. gcc -x c hello.pig -x none filename 关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型 例子用法: gcc -x c hello.pig -x none hello2.c -c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例子用法: gcc -c hello.c 他将生成.o的obj文件 -S 只激活预处理和编译,就是指把文件编译成为汇编代码。 例子用法 gcc -S hello.c 他将生成.s的汇编代码,你可以用文本编辑器察看 -E

相关文档
最新文档