ARM实验报告

合集下载

ARM设计实验报告

ARM设计实验报告

目录一,实验目的二,实验软件, 硬件三,实验题目及要求(设计要求)四,软件时钟设计总体方案五,软件时钟的电路原理图六,程序流程图及C程序(软件部分)七,Proteus仿真图(硬件部分)一实验目的。

1,应用所学的ARM知识设计一个实时时钟掌握LPC2106中断处理, RTC的使用。

二实验软件, 硬件。

软件:proteus6.9仿真软件, ARM开发环境ADS.硬件: WINDOW 2000/XP PC机一台。

三实验题目及要求(设计要求)。

题目: 带报警功能并且可以调节时间的实时时钟。

要求: 1, 实时时间可通过按键选择调节。

2, 可以通过按键设定报警时间。

3, 当达到报警时间时, 蜂鸣器响一下, LED灯点亮。

4, 报警时间和实时时间通过液晶模块LCD1602显示四软件时钟设计总体方案本实验是基于LPC2106ARM处理器而设计的实时时钟, 综合性较强, 涉及到RTC外部中断, 引脚的GPIO功能, C语言编程等知识。

首先要定义P0口为基本I\O功能, 然后通过引脚功能选择寄存器PINSEL0及PINSEL1定义输入输出外部中断口所在的位, 另外还要对外部中断进行初始化, 其中有规定他们的优先级, 中断触发方式, 中断地址分配, 本实验采用液晶模块LCD1602同时显示实时时间和报警时间, 同样要对他们进行初始化, 包括检查总线忙与闲, 传送地址, 传送数据及显示函数的编程、1,LPC2106微控制器自带有一个实时时钟RTC带日历和时钟功能, 要使用它也要进行一下的基本操作:2,设置RTC基准时钟分频器3,初始化RTC的时钟值如, YEAR,MONTH,HOUR等4,启动RTC即CCR的CLKEN位职位5,读取完整时间寄存器值或等待中断。

陈述完以上的模块初始化后, 下面简要说明一下程序的流程先调用以上各个模块的初始化函数lcd_int(),RTCint()然后开启RTC时钟, 并调用LCD显示函数SendTimetRtc(),如果没用中断发生就判断实时时间是否与以设定的报警时间相同, 如果相同就马上接通蜂鸣器报警并且点亮LED灯。

ARM汇编实验报告

ARM汇编实验报告

ARM汇编实验报告一、实验目的本次实验旨在通过编写ARM汇编程序,加深对ARM架构和指令集的理解,并掌握ARM汇编程序的设计和调试技巧。

二、实验内容本次实验分为两个部分,分别是基础部分和进阶部分。

1.基础部分基础部分要求编写一个ARM汇编程序,实现输入一个整数n,并输出从1到n的所有奇数的和。

具体要求如下:(1)使用汇编语言实现。

(2)使用r0寄存器保存输入的整数n。

(3)使用r1和r2寄存器保存计算中的临时变量。

(4)使用r3寄存器保存输出的结果。

(5)使用ldr指令从内存中加载数据,str指令将数据保存到内存中。

(6)使用循环实现计算。

(7)使用swi指令终止程序。

2.进阶部分进阶部分要求实现一个排序算法,将从键盘输入的n个整数进行排序,并输出排序后的结果。

具体要求如下:(1)使用汇编语言实现。

(2)使用r0寄存器保存排序的整数个数n。

(3)使用r1寄存器保存指向数组的指针。

(4)使用r2和r3寄存器保存计算中的临时变量。

(5)使用ldr指令从内存中加载数据,str指令将数据保存到内存中。

(6)使用循环实现排序算法。

(7)使用swi指令终止程序。

三、实验步骤1.基础部分实现:(1)将输入的整数n保存到r0寄存器中。

(2)初始化r1和r3寄存器,将计算所需的临时变量置为0。

(3)使用ldr指令读取r0寄存器的值到r2寄存器。

(4)使用循环实现奇数求和的计算,将结果保存到r3寄存器。

(5)使用str指令将r3寄存器的值保存到内存中。

(6)使用swi指令终止程序。

2.进阶部分实现:(1)将输入的整数n保存到r0寄存器中。

(2)使用ldr指令将数组的首地址保存到r1寄存器。

(3)使用循环结构实现排序算法。

(4)使用str指令将排序后的结果保存到内存中。

(5)使用swi指令终止程序。

四、实验结果经过编写和调试,基础部分程序可以正确输入整数n,并输出从1到n的所有奇数的和。

进阶部分程序可以正确输入整数n,并对输入的n个整数进行排序,并输出排序后的结果。

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汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。

arm实训总结

arm实训总结

arm实训总结标题:ARM实验实训总结报告一、前言本次ARM实验实训是我对嵌入式系统设计与开发的一次深度实践。

通过这次实训,我对ARM微处理器的结构原理、指令集以及基于ARM架构的嵌入式系统开发流程有了更为直观和深入的理解。

二、实训内容回顾在实训过程中,我们主要围绕ARM Cortex-M系列处理器进行学习和实践。

首先,从理论层面,我们系统地学习了ARM体系结构、工作模式、存储器管理、异常处理等基础知识;其次,在实践环节,我们使用Keil MDK等开发工具进行了汇编和C语言编程,完成了中断服务程序设计、定时器应用、串口通信等多个实战项目。

三、实训过程及收获1. 硬件操作与调试:通过对ARM开发板的实际操作,我亲身体验了硬件连接、程序下载、在线调试等环节,对硬件底层的工作原理有了更清晰的认识,也锻炼了我的动手能力和问题解决能力。

2. 软件编程与实现:通过编写和调试ARM汇编和C语言代码,我对ARM的指令集、寄存器配置、中断处理机制等有了深入理解,同时也提升了我的编程技能和逻辑思维能力。

3. 团队协作与交流:在完成复杂项目的过程中,我们分工合作,共同探讨解决方案,这不仅提高了我在团队环境下的工作效率,也锻炼了我与他人沟通协调的能力。

四、实训反思与展望尽管在实训过程中取得了一定的进步,但我也意识到自身在某些方面还有待提升,如对实时操作系统RTOS的理解与应用、硬件驱动程序的设计与优化等。

未来的学习中,我将深化对这些领域的研究,努力提升自己在嵌入式系统开发方面的综合能力。

总结,此次ARM实训是一次宝贵的实践经历,它使我对嵌入式系统的软硬件协同设计有了更深层次的认知,并为我后续从事相关领域的工作或研究打下了坚实的基础。

五、结语ARM实训不仅是对我现有知识的检验,更是对未来专业技能的磨砺。

我会珍视这份实践经验,以此为契机,持续探索并深化对嵌入式系统尤其是ARM架构技术的研究,为我国的科技创新事业贡献自己的力量。

ARM实验报告.

ARM实验报告.
void frequecy_time(int f)
{ T0MR0 =(int)(110592/f) ;//产生特定频率时给T0MR0的初值
}
/****Байду номын сангаас***********************************************************************
*名称:IRQ_Time0()
frequecy_time(freq[music[j]*2]);//播放下一个频率值
T0TCR = 0x03;//启动并复位T0TC
T0TCR = 0x01;
n=0;
j++;
if(j==25) j=0;//播放完毕后从新播放
/*设置定时器0中断IRQ */
VICIntSelect = 0x00;//所有中断通道设置为IRQ中断
三,程序流程图
四:主函数代码和相关注释.
/****************************************************************************
*文件名:main.c
*功能:使用定时器0实现1秒定时,控制蜂鸣器蜂鸣。(中断方式)
*说明:短接蜂鸣器跳线JP7。断开CF卡跳线JP13、GPIO接口J17。
T0IR = 0x01;//清除中断标志
VICVectAddr = 0x00;//通知VIC中断处理结束
}
/****************************************************************************
*名称:Time0Init()
*功能:初始化定时器0,定时时间为1S,并使能中断。

arm实验报告——流水灯

arm实验报告——流水灯

实验六 ARM环境下汇编语言与C语言实验一、实验目的1 掌握基本的ARM汇编语言和C语言编程方法2 掌握ADS下C语言和汇编语言互相调用的方法3 深入理解ARM开发环境的体系结构4 初步掌握S3C2410的I/O口德操作方法5 巩固使用AXD和Multi-ICE调试的方法二、实验内容1 单独使用ARM汇编语言编写一个程序,在AXD下调试,观察结果。

2 采用内嵌汇编和C完成一个工程在AXD下调试,观察结果。

3 用C语言实现跑马灯功能。

三、实验设备1 硬件:DM2410B+实验系统PC机JTAG仿真器串口线2 软件:PC机操作系统ARM Developer Suiter v1.2Multi-ICE v2.2.5(Build1319)DNW2410(或超级终端)四、实验说明汇编语言程序实验程序程序代码如下:#include <string.h>#include "2410addr.h"#include "2410lib.h"//================================ //名称:Led_Test//功能:LED循环显示//参数: void//返回值: void//================================ void Led_Test(){unsigned long LED;Uart_Printf("Led_Test.\n");//GPBCON GPB10 [21:20] = 01 : Output//GPBCON GPB10 [19:18] = 01 : Output//GPBCON GPB10 [17:16] = 01 : Output//GPBCON GPB10 [15:14] = 01 : OutputrGPBCON &= (~(0x3<<20));rGPBCON |= ((0x1<<20));rGPBCON &= (~(0x3<<18));rGPBCON |= ((0x1<<18));rGPBCON &= (~(0x3<<16));rGPBCON |= ((0x1<<16));rGPBCON &= (~(0x3<<14));rGPBCON |= ((0x1<<14));//GPBDAT GPB[10:0] [10:0] : Output DatarGPBDAT = 0xf7f;Delay(100);Uart_Printf("PRESS ANY KEY TO STOP.");while (!Uart_GetKey()){LED = rGPBDAT;LED = (LED<<1); //下一个灯亮rGPBDAT = LED;Delay(200);if(!(rGPBDAT & 0x400)) //保证第四个LED点亮后重新点亮第一个LED;rGPBDAT=0xf7f;Delay(200);}Uart_Printf("\nTEST FINISHED.");}//============================//名称:delay//功能:延迟指定时间//参数: x//返回值: void//============================void delay(unsigned int x){unsigned int i,j,k;for(i=0;i<=x;i++)for(j=0;j<0xff;j++)for(k=0;k<0xff;k++);}六实验步骤第一大部分(目标机的连接):把开发板电源接口、Muilti-ICE Embeded接口连接好,如下图,然后打开开发板电源。

ARM实验报告_百度文库.

ARM实验报告_百度文库.

ARM实验报告专业:计算机科学与技术班级: 080613学号: 080613309姓名:周之平实验一 ARM汇编指令一实验目的1、初步学会使用 Embest IDE for ARM 开发环境及 ARM软件模拟器;2、通过实验掌握简单 ARM汇编指令的使用方法。

二实验设备1、硬件:PC机2、软件:Embest IDE Pro 2004集成开发环境,Windows 98/2000/NT/XP。

三实验内容1、熟悉开发环境的使用,并使用ldr/str,mov等指令访问寄存器或存储单元;2、使用 add/sub/lsl/lsr/and/orr等指令,完成基本数学/逻辑运算。

四实验原理ARM处理器共有 37个寄存器:1、31个通用寄存器,包括程序计数器(PC。

这些寄存器都是 32位的。

2、6个状态寄存器。

这些寄存器也是32位的,但是只是使用了其中的12位。

4.1 ARM通用寄存器通用寄存器(R0~R15)可分为 3类:o 不分组寄存器 R0~R7;o 分组寄存器 R8~R14;o 程序计数器 R15;4.2 存储器格式ARM体系结构将存储器看作是从零地址开始的字节的线性组合。

字节零到字节三放置第一个字(WORD),字节四到字节七存储第二个字,以此类推。

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

4.3 GNU基础知识Embest IDE集成了 GNU 汇编器 as,编译器 gcc,链接器 ld。

因此,我们写程序要符合 GNU 的语法和规则。

1 程序默认入口点为“_start”,代码段默认起始地址为 0x80002 as常用伪操作符.equ.equ伪操作为数字常量、基于寄存器的值和程序中的标号定义一个字符名称。

语法格式.equ symbol,expr其中,expr为基于寄存器的地址值、程序中的标号,32位的地址常量或者32位的常量。

Symbol为.equ伪操作为 expr定义的字符名称。

ARM实验报告

ARM实验报告

ARM 实验报告学院:计算机科学与工程学院班级: 070603 学号: 070603115 姓名:张鑫实验一:工程配置一、处理器配置选择菜单项Project > Settings…或快捷键Alt+F7,弹出工程设置对话框。

在工程设置对话框中,选择Processor设置对话框,如下图,可进行目标板所用处理器的配置。

图1 处理器配置对话框用户选择对应的工程文件名进行相应的配置。

图中各项设置定义如下:处理器模块(CPU Module)选择当前所使用的处理器模块,不同的处理器模块将支持不同的处理器系列,目前Embest IDE for ARM 支持ARM7、ARM9核系列处理器。

处理器系列(CPU Family)选择用户使用的处理器所属处理器系列。

处理器成员(CPU Member)设置处理器系列中具体的处理器成员。

字节排列方式(Endian)设置该处理器当前所支持的存储区字节排列方式是大字节结尾(Big Endian)还是小字节结尾方式(Little Endian)。

处理器制造商(Peripheral Maker)选择处理器生产厂家。

处理器型号(Peripheral Chip)选择相应的处理器型号。

编译工具(Build Tools)设置该处理器对应的编译链接器。

Embest IDE for ARM 支持ARM核系列处理器。

开发ARM7核系列处理器,按照图5-11中设置;开发ARM9核系列处理器,可依照图5-11设置作相应的改变。

二、仿真器配置选择菜单项Project>Settings…,弹出工程设置对话框。

在工程设置对话框中,选择Remote设置对话框,如下图,可进行仿真器的连接配置。

图2 仿真器的连接配置在该对话框中,有两项设置:远程连接设备(Remote device)设置连接的调试设备,例如Embest IDE for ARM支持英蓓特公司的Embest Emulator for ARM和Embest PowerICE for ARM。

arm实验报告

arm实验报告

arm实验报告ARM实验报告引言:ARM(Advanced RISC Machines)是一种基于精简指令集计算机(RISC)架构的微处理器系列,广泛应用于移动设备、嵌入式系统和智能家居等领域。

本实验报告旨在介绍ARM架构的基本原理、应用领域以及在实验中的应用。

一、ARM架构的基本原理ARM架构采用精简指令集计算机(RISC)的设计理念,注重指令的简洁性和执行效率。

相较于复杂指令集计算机(CISC),ARM架构的指令集更为简单,指令长度固定,执行速度更快,能够提高处理器的性能和能效比。

ARM架构的核心特点包括:1. 简洁指令集:ARM指令集采用三地址指令格式,指令长度为32位,操作码和寄存器字段清晰明了,易于编程和优化。

2. 统一寄存器:ARM架构中的寄存器集合统一,包括13个通用寄存器、程序计数器(PC)和状态寄存器(CPSR),简化了编程和寄存器间的数据传输。

3. 流水线技术:ARM处理器采用流水线技术,将指令的执行过程分为多个阶段,使得多条指令可以同时执行,提高了处理器的吞吐量。

4. 片上缓存:ARM架构支持片上缓存(Cache),能够提高数据的访问速度和处理器的效率。

二、ARM架构的应用领域1. 移动设备:由于ARM处理器具有低功耗和高性能的特点,广泛应用于智能手机、平板电脑和可穿戴设备等移动设备中。

ARM处理器能够提供流畅的用户体验和长时间的电池续航能力。

2. 嵌入式系统:ARM架构适用于嵌入式系统,如智能家居、工业自动化和车载电子等。

ARM处理器的小尺寸、低功耗和高性能使其成为嵌入式系统的首选。

3. 服务器和云计算:ARM架构逐渐在服务器和云计算领域崭露头角。

ARM服务器具有低能耗和高并发处理的特点,能够满足云计算和大数据处理的需求。

三、ARM实验应用在本次实验中,我们使用ARM开发板进行了一系列实验,包括LED控制、按键输入和串口通信等。

1. LED控制实验:通过编写ARM汇编语言程序,实现对开发板上的LED灯进行控制。

ARM9实验报告(一)

ARM9实验报告(一)

实验一ARM串行口实验一、实验目的1.掌握ARM的串行口工作原理2.学习编程实现ARM的UART通讯3.掌握S3C2410寄存器配置方法。

二、预备知识1.了解EWARM集成开发环境的基本功能2.学习串口通讯的基本知识3.熟悉S3C2410串口有关的寄存器三、实验设备1.2410s教学实验箱2.ARM920T的JTAG仿真器3.ARM EWARM5.3集成开发环境4.串口连接线四、实验内容1.熟悉打开已有工程的步骤,掌握仿真调试的方法。

2.建立一个新工程,熟练掌握编译器和链接器的设置方法。

3.从串口输入字符串,将0~9数字在超级终端上连续显示,“Enter”键换行。

4.将第三步得到的字符转换成BCD码,限制在0~1023,用于控制直流电机。

五、实验步骤1.创建新工程(1)在D盘根目录创建一个newproj的目录,将ARM串口实验的5个文件夹和2个文件拷入,如上图所示,这5个文件夹是:inc(库文件)、init(初始化文件)、src(源文件)、startup(启动文件)和uhal(串口文件),这2个文件是:s3c2410_ram.icf和上从410_ram.mac(2)运行IAR Embedded Workbench,执行file>new>workspace,工程名newproj1.ewp,保存在d:\newproj下,保存Workspace,和工程名一样,存在同一目录。

此时编译,出现错误。

(3)有3个头文件做以下修改:#include “../inc/macro.h”,#include“../inc/drivers.h“,#include ”../uhal/isr.h“ General Option>Library configuration选Full,C/C++ Compiler>Code>Processor mode选ARM,编译通过。

(4)选CPU,选仿真器RDI、“Run to Main”打勾、选mac文件s3c2410_ram.mac,选链接器配置文件s3c2410_ram.icf,配置仿真器的动态链接库H-JTAG.dll,IAR 生成的out文件供RDI等仿真器使用,通过输出转换可生成bin文件,供vivi 烧写Flash使用。

ARM实训报告汇总

ARM实训报告汇总

实训一、绘出STM32开发板的MCU外围硬件连接图学生:吴磊郑黄庆阿不力孜指导老师:王宜结电子工程学院电子信息工程一、实训目的1.握STM32开发板的封装和引脚2.能够测量开发板外围器件与STM32芯片的实际连接,并画出电路图二、实训内容1.画出开发板上MCU与发光二极管DS0、DS1的连接示意图2.画出开发板上MCU与按键KEY0、KEY1、KRY2、KEYM的连接示意图3.画出开发板上MCU与24C02芯片的连接示意图4.画出开发板上MCU与W25X16芯片的连接示意图5.画出开发板上MCU与温度传感器18B20的连接示意图6.画出开发板上MCU与2.8寸液晶的连接示意图7.画出开发板上MCU与红外接收头的连接示意图8.画出开发板上MCU与PL2302芯片的连接示意图三、实训过程1、MCU图1图1中上部的BOOT1用于设置STM32的启动方式,其对应启动模式如下表所示:表1我们用串口下载代码,则配置BOOT0为1,BOOT1为0即可,如果想让STM32一按复位键就开始跑代码,则需要配置BOOT0为0,BOOT1随便设置都可以。

2、LED图2其中PWR是系统电源指示灯,为蓝色。

LED0和LED1分别接在PA8和PD2上,PA8还可以通过TIM1的通道1的PWM输出来控制DS0的亮度。

为了方便大家判断,我们选择了DS0为红色,DS1为绿色的LED灯。

3、按键图3KEY0、KEY1和KEY2用作普通按键输入,分别连接在PA13、PA15和PA14上。

WK_UP 按键连接到PA0(STM32的WKUP引脚),它除了可以用作普通输入按键外,还可以用作STM32的唤醒输入。

4、EEPROMALIENTEK MiniSTM32自带了24C02的EEPROM芯片,该芯片的容量为2Kbit,也就是256个字节。

图4这里我们把A0~A2均接地,对24C02来说也就是把地址位设置成了0了。

5、SPI FLASHALIENTEK MiniSTM32开发板载有SPI FLASH芯片W25X16,该芯片的容量为2M字节。

嵌入式实验报告_ARM的串行口实验

嵌入式实验报告_ARM的串行口实验

嵌入式实验报告_ARM的串行口实验一、实验目的本次实验的主要目的是深入了解和掌握 ARM 处理器的串行口通信原理及编程方法。

通过实际操作和编程实践,能够实现基于 ARM 的串行数据收发功能,为后续在嵌入式系统中的应用打下坚实的基础。

二、实验原理串行通信是指数据一位一位地顺序传送。

在 ARM 系统中,串行口通常由发送器、接收器、控制寄存器等组成。

发送器负责将并行数据转换为串行数据并发送出去,接收器则将接收到的串行数据转换为并行数据。

控制寄存器用于配置串行口的工作模式、波特率、数据位长度、停止位长度等参数。

波特率是串行通信中的一个重要概念,它表示每秒传输的比特数。

常见的波特率有 9600、115200 等。

在本次实验中,需要根据实际需求设置合适的波特率,以保证数据传输的准确性和稳定性。

三、实验设备与环境1、硬件设备:ARM 开发板、USB 转串口线、电脑。

2、软件环境:Keil MDK 集成开发环境、串口调试助手。

四、实验步骤1、建立工程在 Keil MDK 中创建一个新的工程,选择对应的 ARM 芯片型号,并配置工程的相关参数,如时钟频率、存储分配等。

2、编写代码(1)初始化串行口首先,需要设置串行口的工作模式、波特率、数据位长度、停止位长度等参数。

例如,设置波特率为 115200,数据位长度为 8 位,停止位长度为 1 位。

(2)发送数据通过编写发送函数,将要发送的数据写入串行口的数据寄存器,实现数据的发送。

(3)接收数据通过中断或者查询的方式,读取串行口的接收寄存器,获取接收到的数据。

(4)主函数在主函数中,调用发送函数发送数据,并处理接收的数据。

3、编译下载编写完成代码后,进行编译,确保代码没有语法错误。

然后,将生成的可执行文件下载到 ARM 开发板中。

4、连接设备使用 USB 转串口线将 ARM 开发板与电脑连接起来,并在电脑上打开串口调试助手,设置与开发板相同的波特率等参数。

5、测试实验在串口调试助手中发送数据,观察开发板是否能够正确接收并回传数据。

ARM汇编实验报告(精品文档)_共42页

ARM汇编实验报告(精品文档)_共42页

《嵌入式系统原理与应用B》课程实验报告ARM汇编语言编程与调试要求完成的主要实验1、给出的数据中寻找最大、最小数问题2、两种求和运算的编程与调试3、第四章作业第9题4、排序冒泡程序的调试与总结5、第四章作业第11题说明:标注完成的实验,未完成的给予说明专业名称:通信工程班级:1510班学生姓名:石龙飞学号(8位):03151307指导教师:刘钊远给出的数据中寻找最大、最小数问题一、实验目的1、学习汇编软件的安装、使用,熟悉汇编环境。

2、学会使用汇编软件,如何新建一个工程,如何书写源代码,如何进行链接、编译,以及如何调试。

3、尝试一些简单的指令,学会用汇编指令写一些简单的程序。

二、实验内容编写一个汇编程序,要求在给定的一组数中找到最大数和最小数。

三、实验主要步骤1、首先建立一个工程2、再新建.s的源文件,添加到工程中3、编写源代码,这里主要是实现在一组数中寻找最大数和最小数,最后将找到的两个数放到相应的寄存器中。

型以及在哪里出错。

5、进行debug调试,查找代码中的逻辑错误,若无逻辑错误,可在debug界面查看运行结果,其最需要的关注的几个地方是菜单栏的一组运行按钮、源码执行的步骤以及断点、左边的寄存器状态、下方的存储器状态,将这些综合起来,就可以很明确的回到程序如何运行,运行结果如何。

四、实验代码AREA symbol,CODE,READONLYENTRYCODE32STARTLDR R0, =numsMOV R2, #1INITNUMSSTR R2, [R0], #4ADD R2, R2, #2CMP R2, #101BNE INITNUMSLDR R0, =numsLDR R2, [R0]LDR R3, [R0]MOV R1, #1FINDMAXMINLDR R4, [R0], #4CMP R2, R4MOVCC R2, R4CMP R3, R4MOVCS R3, R4ADD R1, R1, #1CMP R1, #101BNE FINDMAXMINSTOPb STOPAREA Data, DATA, READWRITEnums SPACE100END五、实验总结与分析1、实验结果分析其中用红色方框框起来的是最后程序运行的结果,也就是在R3中保存了最小数在R2中保存了最大数,完成了实验要求。

arm开发环境搭建实验报告实验内容

arm开发环境搭建实验报告实验内容

ARM开发环境搭建实验报告一、实验目的本实验旨在帮助学生了解和掌握ARM开发环境的搭建过程,包括交叉编译环境的搭建、嵌入式系统开发环境的搭建、ARM Linux操作系统的搭建以及应用软件的开发与部署。

通过本次实验,学生将能够熟悉ARM开发的基本流程,为后续的ARM开发打下基础。

二、实验内容1. 开发环境介绍本部分将介绍ARM开发环境的基本概念、组成和搭建流程。

重点讲解ARM架构的特点、开发板的选择以及开发工具链的组成。

通过本部分的学习,学生将能够对ARM开发环境有基本的了解和认识。

2. 交叉编译环境搭建交叉编译是指在一种平台上生成另一种平台上的可执行文件。

本部分将介绍如何搭建ARM交叉编译环境,包括交叉编译工具链的安装、配置和使用。

同时,学生将通过实践操作,掌握交叉编译的基本方法。

3. 嵌入式系统开发环境搭建嵌入式系统是指专为特定应用而设计的计算机系统。

本部分将介绍如何搭建嵌入式系统开发环境,包括开发板的连接、调试工具的安装以及嵌入式操作系统的选择和烧写。

通过本部分的学习,学生将能够掌握嵌入式系统开发的基本流程。

4. ARM Linux 操作系统搭建ARM Linux操作系统是一种针对ARM架构的开源操作系统。

本部分将介绍如何搭建ARM Linux操作系统,包括操作系统的下载、烧写以及启动过程。

同时,学生将学习如何在ARM Linux上安装软件、配置网络等操作,以便进行后续的应用软件开发。

5. 应用软件开发与部署本部分将介绍如何进行ARM应用软件开发与部署。

首先,学生将学习如何使用交叉编译工具链编译应用程序;其次,学生将学习如何将应用程序部署到ARM设备上,并进行测试和调试。

通过本部分的学习,学生将能够掌握ARM应用软件开发的整个流程。

三、实验步骤1. 安装交叉编译工具链,并配置环境变量;2. 连接开发板,并安装调试工具;3. 下载并烧写嵌入式操作系统;4. 安装ARM Linux操作系统;5. 编写应用软件源代码;6. 使用交叉编译工具链编译应用软件;7. 将应用软件部署到ARM设备上;8. 进行测试和调试。

ARM实验报告综合实验

ARM实验报告综合实验

ARM实验报告综合实验摘要:ARM微处理器已经在各种电子产品中得到广泛应用。

本实验旨在通过对ARM实验板的详细学习,深入理解和掌握ARM微处理器的工作原理及应用。

通过搭建实验平台,完成基本的指令执行、数据传输和I/O操作等功能。

通过实验,掌握ARM汇编语言的基本语法和实现方法,同时提升对嵌入式系统的理解和应用能力。

关键词:ARM微处理器、实验平台、指令执行、数据传输、I/O操作、汇编语言1.引言ARM(Advanced RISC Machines)微处理器是一种精简指令集(RISC)的微处理器架构,以其高性能、低功耗和广泛应用等特点受到了广泛的关注和应用。

本实验旨在通过对ARM实验板的学习和研究,深入理解ARM微处理器的工作原理和应用。

2.实验目的2.1理解ARM微处理器的工作原理;2.2掌握ARM汇编语言的基本语法和实现方法;2.3学习搭建实验平台,完成指令执行、数据传输和I/O操作等功能;2.4提升对嵌入式系统的理解和应用能力。

3.实验内容3.1搭建实验平台3.2学习ARM汇编语言通过阅读相关资料,了解ARM汇编语言的基本语法和寄存器等特点,了解ARM微处理器的指令集和指令执行方式。

3.3编写实验程序根据实验指导书中的要求,编写实验程序,包括基本的指令执行、数据传输和I/O操作等功能实现。

3.4调试和测试经过编写程序后,需要进行调试和测试,确保程序能够正确执行,并达到预期的功能。

4.实验结果通过实验,成功搭建了ARM实验平台,并且实现了基本的指令执行、数据传输和I/O操作等功能。

通过对ARM汇编语言的学习和实践,掌握了其基本语法和实现方法。

5.结论本实验通过对ARM实验板的学习和研究,深入理解了ARM微处理器的工作原理和应用。

通过搭建实验平台和编写实验程序,进一步掌握了ARM 汇编语言的基本语法和实现方法。

通过调试和测试,验证了程序的正确性和功能实现。

通过本实验,提升了对嵌入式系统的理解和应用能力。

arm实习报告

arm实习报告

arm实习报告篇一:ARM实习报告通过这次模具设计,本人在多方面都有所提高。

通过这次设计,综合运用本专业所学课程的理论和实际知识进行设计,提高学生独立工作能力,巩固与扩充了arm等课程所学的内容,掌握arm设计的方式和步骤,同时各科相关的课程都有了全面的温习,独立试探的能力也有了提高。

在短短的一个礼拜中,让咱们初步让理性回到感性的从头熟悉,也让咱们初步的熟悉了那个社会,关于以后做人所应把握的方向也有所启发,表现出团队课程设计的能力和综合运用知识的能力,体会了学以致用、突出自己劳动功效的喜悦心情,从中发觉自己平常学习的不足和薄弱环节,从而加以弥补。

这次课程实际仅仅是基于arm微处置器应用的一个开端,在这期间咱们还有很多的不足,比如不能完成引脚的最优连接,不能完成硬件系统和软件程序的自主设置和编写,但我相信通过以后对arm嵌入式系统的继续学习,自己会取得进一步的提高。

我会把这此实习作为我人一辈子的起点,在以后的工作学习中不断要求自己,完善自己,让自己做的更好。

篇二:arm实习报告嵌入式课程设计与总结报告摘要通过嵌入式操纵系统的实习,使咱们了解并把握依照嵌入式操纵系统项目要求,如何设计符合操纵逻辑的原理图,复合原理图及电子电气emc 的pcb图,学习电子元器件的焊接,pcb板的调试等,最终把握嵌入式操纵系统的设计及工艺等。

一、设计实习任务1. 焊接arm7(lpc2132)最小系统pcb。

要求认真认真焊接,并调试使其能正常工作(提供最简易测试程序)。

2. 设计数码管动态扫描显示电路,三个按键的键盘电路,模拟电压取样电路等。

要求原理图设计合理,要求有与最小系统板的接口,正确焊接,调试后能正常工作。

3. 操纵软件设计在嵌入式操纵系统的设计中,系统操纵软件的设计是一项超级重要且艰巨的工作,系统可否正常靠得住的工作,成败在此一举。

因此要求同窗们认真认真的设计、调试操纵软件。

要求软件语句精炼,整体健壮,有必然的抗干扰能力。

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

《嵌入式系统》
实验报告
实验一ARM汇编指令
一实验目的
1.1 初步学会使用Embest IDE for ARM 开发环境及ARM软件模拟器;
1.2 通过实验掌握简单ARM汇编指令的使用方法。

二实验设备
2.1 硬件:PC机;
2.2 软件:Embest IDE 2004集成开发环境。

Windows98/2000/NT/XP;
2.3 ARM实验箱。

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

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

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

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

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

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

4.3 GNU基础知识
Embest IDE集成了GNU汇编器as、编译器gcc和链接器ld。

因此,编写程序要符合CNU的语法和规则。

关于as.gcc和ld的具体使用,请参照Embest IDE所带的电子文档ProgRef.chm。

五实验程序
使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算:
x equ 45 /* 定义变量x并赋值为45*/
y equ 64 /* 定义变量y,并赋值为64*/
STACK_TOP equ 0x1000 /* 定义栈顶0X1000*/
AREA HHHH,CODE,READONLY /* 声明代码段HHHH,只读属性*/
ENTRY /* 伪指令标识程序入口点*/
start /* 程序代码开始标志*/
MOV sp,#STACK_TOP
MOV r0,#x /* 变量x的值放入R0*/
STR r0,[sp] /* 将R0的值传送到以SP值为地址的堆栈中*/ MOV r0,#y /* 变量y的值放入R0*/
LDR r1,[sp] /* 将堆栈中的数传送到R1*/
ADD r0,r0,r1 /* 将寄存器R0和R1的值相加,结果保存到R0*/ STR r0,[sp] /* 将R0的值传送到以SP值为地址的堆栈中*/ Stop
b stop /* 程序结束,进入死循环*/
End
2.使用指令,完成基本数学/逻辑运算:
X EQU 45 /* 定义变量X,并赋值为45*/
Y EQU 64 /* 定义变量Y并赋值为64*/
Z EQU 87 /* 定义变量Z并赋值为87*/
STACK_TOP EQU 0X1000 /* 定义栈顶0X1000*/
AREA HHHHH,CODE,READONLY /* 声明代码段HHHHH,只读属性*/
ENTRY /* 伪指令标识程序入口点*/
START /* 程序代码开始标志*/
MOV R0,#X /* 变量X的值放入R0*/
MOV R0,R0,LSL#8 /* 将R0的值左移8位*/
MOV R1,#Y /* 变量Y的值放入R1*/
ADD R2,R0,R1,LSR#1 /* 将R1的值右移1位再和R0相加,结果存在R2*/ MOV SP,#0X1000
STR R2,[SP] /* 将R2的值传送到以SP值为地址的堆栈中*/
MOV R0,#Z /* 变量Z的值放入R0*/
AND R0,R0,#0XFF /* R0与上0XFF,取低八位*/
MOV R1,#Y /* 变量Y的值放入R1*/
ADD R2,R0,R1,LSR#1 /* 将R1的值右移1位再和R0相加,结果存在R2*/ LDR R0,[SP] /* 以SP值为地址的堆栈值传送到R0*/
MOV R1,#0X01 /* 将OX01传送到R1*/
ORR R0,R0,R1 /* 将R0和R1逻辑或,结果存在R0*/
MOV R1,R2 /* 将R2的值传送到R1*/
ADD R2,R0,R1,LSR#1 /* 将R1的值右移1位再和R0相加,结果存在R2*/ STOP
B STOP *程序结束,死循环*/
END
六实验结果及分析
(一)实验1:
(图一)
实验一结论:
使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算,先定义变量,然后用到堆栈,将两个数相加后保存。

(二)实验2:
(图二)
实验二结论:
用ADD/SUB/LSL/LSR/AND/ORR等指令,来完成基本的数学/逻辑运算,先定义变量,然后将R0左移保存,再将R1中的Y变量除以2,加上R0保存在R2,并将Z变量保存到R0取低八位,将变量Y放入R1,除以2再加R0存在R2,最后将R1的值除以2再加上R0存在R2中来完成基本计算。

七心得与体会
这学期接触了ARM9,无论是理论还是上机,都有些生疏。

但好在课堂上先进行了一些知识的铺垫,并且和曾经学得C语言相结合,对于代码的理解稍微好点。

当然实验的成功也离不开老师的指导与演示,在此非常感谢老师。

相关文档
最新文档