文档库 最新最全的文档下载
当前位置:文档库 › ARM嵌入式实验报告

ARM嵌入式实验报告

ARM嵌入式实验报告
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

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*/ LDR R0, [SP] /*Y的值放入R1*/

MOV R1, #0X01

ORR R0, R0, R1

MOV R1, R2 /*Y的值放入R1*/

ADD R2, R0, R1, LSR #1 /*R1的值除以2加上R0的值放入R2*/

STOP: B STOP /*程序结束,进入死循环*/

.END

四、实验操作步骤

1.新建工程。先建立一个实验文件夹,如E\ARMSY\armasm1;然后运行Embest IDE集成开发环境,选择File→New Workspace菜单项,弹出一个对话框,输入工程名armasm1a/armasmlb等相关内容;最后单击OK按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将能打开该工作区和工程。

2.建立源文件。选择File→New菜单项,弹出一个新的、没有标题的文本编辑窗口,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。编辑完后,保存文件armasmla. s。

3.添加源文件。选择Project→Add To Project→File项或单击工程管理窗口中的相应右键快捷菜单命令,打开文件选择对话框,在工程目录下选择刚才建立的源文件armasmla.s/armasmlb.s。

4.基本设置。选择Project→Settings…菜单项或按下快捷键Alt+F7,弹出工程设置对话框;在工程设置对话框中选择Processor属性页,按照使用要求对目标板所用处理器进行设置。

5.生成目标代码。选择Build→Build armasmla菜单项或按下快捷键F7,生成目标代码。此步骤也可以通过单击工具栏上相应按钮来完成。

6.调试设置。选择选择Project→Settings…菜单项或按下快捷键Alt+F7,弹出工程设置对话框;在工程设置对话框中,若选择Remote页面则对调试设备模块进行设置;若选择Debug页面则对调试模块进行设置。

7.选择Debug→Remote Connect连接软件仿真器,执行Download命令下载程序,并打开寄存器窗口。

8.打开存储器窗口,观察地址0x8000~0x801F的内容以及地址0xFF0~0xFFF的内容。

9.单步执行程序,并观察和记录寄存器与存储器值的变化。

10.结合实验内容和相关资料观察程序运行,通过实验加深理解ARM指令的使用。

五、实验结果分析

1. 程序1用用来实现加法运算;程序2使用ADD/SUB/LSL/AND/ORR等指令,完成基本的数学/逻辑运算。

2. 通过记录程序1和程序2单步运行时有关寄存器与存储器的值,可以看出运行结果正确。

实验二 ARM汇编指令使用实验——存储区数据块的传送

一、实验目的

1.熟悉ARM ADS 1.2 / Embest IDE for ARM 开发环境及ARM软件模拟器的使用。

2.通过实验掌握使用LDM/STM、B、BL等指令完成较为复杂的存储区访问和分支程序的方法,学习使用条件码,加强对CPSR的认识。

二、实验设备

1. 硬件:PC机。

2. 软件:ADS 1.2 / Embest IDE 200X集成开发环境。

三、实验内容

设计并调试一个存储区数据块的传送程序,具体数据块的传送要求为:将数据从源数据区snum

复制到目标数据区dnum,数据的个数num假定为20,复制时以8个字为单位进行,对于最后不足8

个字的数据,以字为单位进行复制。

用ARM汇编语言设计该数据块复制程序的设计思想如下:先将源数据区的起始地址、目标数据区的起始地址以及数据个数赋给选定的寄存器R0、R1、R2,再根据每次批量/单个复制数据的个数R3

确定用于数据复制的中间寄存器R4~R11,之后先将源数据区的若干个数据批量装载到中间寄存器中,再将中间寄存器的数据批量存储到目的数据存储区,随后进行数据是否复制完毕的判断,若未复制完毕,则修改有关操作数据地址,并重复前面的数据复制操作,否则,终止操作,程序结束。程序如下:.GLOBAL _START

.TEXT

.EQU NUM, 20 /*定义需要复制的字数据个数NUM为20*/

_START:

LDR R0, =SRC /*将R0指向源数据区的起始地址*/

LDR R1, =DST /*将R1指向源数据区的起始地址*/

MOV R2, #NUM /*将需要复制的字数据个数存放在R2中*/

MOV SP, #0X400 /*将堆栈指针SP指向#0X400*/

BLKCOPY:

MOVS R3, R2, LSR #3 /*R2的值除以8的结果存入R3*/

BEQ COPYWORDS /*若Z=1,则转COPYWORDS*/

STMFD SP!, {R4-R11} /*将R4~R11的内容存入堆栈进行保护*/

OCTCOPY:

LDMIA R0!, {R4-R11} /*从源数据区装载8个字数据到R4~R11*/

STMIA R1!, {R4-R11} /*将R4~R11中的8个字数据存入目的数据区*/

SUBS R3, R3, #1 /*每复制一次R3减1*/

BNE OCTCOPY /*若R3不等于0,则转移到OCTCOPY*/

LDMFD SP!, {R4-R11} /*将堆栈内容恢复到R4~R11*/

COPYWORDS:

ANDS R2, R2, #7 /*计算需复制的奇数个字的个数*/

BEQ STOP /*若R2=0则停止*/

WORDCOPY:

LDR R3, [R0], #4 /*将源数据区的一个字装载至R3*/

STR R3, [R1], #4 /*将R3中的数据存到目的数据区*/

SUBS R2, R2, #1 /*数据传输控制计数器减1*/

BNE WORDCOPY /*若R2不等于0,则转移到WORDCOPY*/

STOP:

B STOP

.LTORG

SRC: /*源数据区起始地址标号*/

.LONG 1, 2,3 ,4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4

DST: /*目的数据区起始地址标号*/

.LONG 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

.END

四、实验操作步骤

1.新建工程。先建立一个实验文件夹,如E\ARMSY\armasm2;然后运行Embest IDE集成开发环境,选择File→New Workspace菜单项,弹出一个对话框,输入工程名ARMcode等相关内容;最后单击OK按钮,将创建一个新工程,同时创建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程。

2.建立源文件。选择File→New菜单项,弹出一个新的、没有标题的文本编辑窗口,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。编辑完后,保存文件armasm2.s。

3.添加源文件。选择Project→Add To Project→File项,或单击工程管理窗口中的相应右键快捷菜单命令,打开文件选择对话框,在工程目录下选择刚才建立的源文件armasm2.s。

4.基本设置。选择Project→Settings…菜单项或按下快捷键Alt+F7,弹出工程设置对话框;然后在工程设置对话框中,选择Processor属性页,对目标板所用处理器进行设置。

5.生成目标代码。选择Build→Build armasm2菜单项或按下快捷键F7,生成目标代码。也可以单击工具栏上的相应按钮来完成。

6.调试设置。选择Project→Settings…菜单项或按下快捷键Alt+F7,弹出工程设置对话框;在工程设置对话框中,若选择Remote页面则对调试设备模块进行设置;若选择Debug页面,则对调试模块进行设置。

7.选择Debug→Remote Connect连接软件仿真器,执行Download命令下载程序,并打开寄存器窗口。

8.打开存储器窗口,观察地址0x8054~0x80A0的内容以及地址0x80A4~0X80F0的内容。

9.单步执行程序并观察和记录寄存器与存储器值的变化,注意观察步骤8的地址中的内容变化。当执行STMFD、LDMFD、LDMIA和STMIA指令时,注意观察其后面的参数所指的地址段或寄存器段的内容变化。

10.结合实验内容和相关资料观察程序运行,通过实验加深理解ARM指令的使用。

五、实验结果分析

执行-START之后:

R0:0X00008054 R1:0X000080a4 R2:0X00000014 SP:0X00004000

执行STMIA R1!,{R4~R11}后:

R0:0X00008074 R1:0X000080a4 R4~R11:0X00000001~0X00000008

执行LDMFD之后:

SP:0X000004000 R4~R11:0X00000000~0X000000000

实验最终完成了将数据从源数据区snum复制到目标数据区dnum。

实验三汇编语言与C语言的相互调用实验——随机数发生器

一、实验目的

1.阅读实验程序,观察处理器启动过程,学会使用ADS1.2/Embest IDE辅助信息窗口来分析判断调试过程和结果。

2.学会在ADS1.2/Embest IDE中编写、编译与调试汇编语言和C语言相互调用的程序。

二、实验设备

1. 硬件:PC机。

2. 软件:ADS 1.2 / Embest IDE 200X集成开发环境。

三、实验内容

使用汇编语言设计一个产生随机数的函数,然后通过C语言来调用该函数产生一系列随机数,并存放到数组中。程序如下。

1.randtest.c源代码

/*随机数产生测试例子,程序通过调用random..s中的函数randomnumber来生成随机数*/ //#include

extern unsigned int randomnumber( void );

int main( )

{

int i;

int nTemp;

unsigned int random[10];

for( i = 0; i < 10; i++ )

{

nTemp = randomnumber( );

random[i] = nTemp;

}

return( 0 );

}

2.init.s源代码

/*系统初始化程序,用于硬件初始化设置,并转入外部的随机数产生主函数main( )*/

#程序入口,ARM汇编

#.ARM

.GLOBAL _START

.TEXT

_START: B RESET_HANDLER

UNDEFINED_HANDLER: B UNDEFINED_HANDLER

SWI_HANDLER: B SWI_HANDLER

PREFETCH_HANDLER: B PREFETCH_HANDLER

ABORT_HANDLER: B ABORT_HANDLER

NOP /* RESERVED VECTOR */

IRQ_HANDLER: B IRQ_HANDLER

FIQ_HANDLER: B FIQ_HANDLER

RESET_HANDLER: LDR SP, =0X00002000

.EXTERN MAIN

LDR R0, = MAIN

MOV LR, PC

BX R0

#- LOOP FOR EVER

END:

B END

.GLOBAL __GCCMAIN

__GCCMAIN:

MOV PC, LR

.END

3.random.s源代码

# 这是一个使用33位反馈移位寄存器产生伪随机数的函数产生器RANDOMNUMBER # AREA |Random$$code|, CODE, READONLY

.GLOBAL RANDOMNUMBER

RANDOMNUMBER:

# ON EXIT:

# A1 = 32伪随机数的低位数据

# A2 = 32伪随机数的高位数据

LDR IP, SEEDPOINTER

LDMIA IP, {A1, A2}

TST A2, A2, LSR#1

MOVS A3, A1, RRX

ADC A2, A2, A2

EOR A3, A3, A1, LSL#12

EOR A1, A3, A3, LSR#20

STMIA IP, {A1, A2}

MOV PC, LR

SEEDPOINTER:

.LONG SEED

.DATA

.GLOBAL SEED

SEED:

.LONG 0X55555555

.LONG 0X55555555

# END

4.链接脚本文件ldscript参考源代码

SECTIONS

{

. = 0x0;

.text : { *(.text) }

.data : { *(.data) }

.rodata : { *(.rodata) }

.bss : { *(.bss) }

}

链接脚本程序主要是描述编写的文件中的各个部分如何摆放在输出文件中,并控制这些文件如何定位这些输出文件。链接脚本文件必须以关键词SECTIONS开始,紧接着式大括号,后面是所有需要输出地描述部分,最后是闭括号收尾,并且全部使用半角符号。

本ldscript文件中各语句的含义是:“.=0x0”为将当前地址计数器指向0x0,“.text :

{ *(.text) }”为程序代码必须放在当前的地址计数器指向的0x0处,“.data : { *(.data) }”为已经初始化的数据必须放在当前的地址计数器指向的地方(紧接text区域后),“.rodata :

{ *(.rodata) }”为只读数据必须放在当前的地址计数器指向的地方(紧接data区域后),“.bss : { *(.bss) }”为未初始化的数据必须放在当前的地址计数器指向的地方(紧接rodata区域后)。

四、实验操作步骤

1.创建新的工程,工程名为armcasm。

2.按照参考程序编写源代码文件,并分别保存为 randtest.c、init. s、random. s和ldscript,然后把它们加入工程中。

3.按照编译→汇编器设置→链接器设置→调试器设置的顺序来设置新工程,并编译、链接工程。

4.下载调试文件,并打开Memrory/Register/Watch/Variable/Call Stack窗口,单步执行程序。通过以上窗口,跟踪程序运行,观察分析并记录运行结果,通过实验学会使用ADS1.2/Embest IDE 来进行应用程序的开发与调试。

五、实验总结与心得

学期开始,我们开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,很多的概念都学的比较模糊,面对课本,有时候总感觉茫然,无从下手,但实验帮助我们理解了很多之前没理解的概念,使我们对于嵌入式知识有了一个更深的了解。

在了解了基础知识之后,我开始进行上机操作,当然,其中遇到很多的难题,很多东西都是第一次接触,即使有老师在旁边指导操作,也需要自己去摸索练习。其中的困难也可想而知。然而坚持就是胜利,牙一咬眼一闭坚持做下去,而通过本次实验,我感觉收获还是蛮多的。可能我对于嵌入式的知识学习的还是不太多,但是这之外的东西收获颇丰。它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓“一份耕耘,一份收获。”没有付出,何谈回报呢?再者,通过本次实验,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。

当然,在这其中,我也发现自己的许多不足之处,由于学期伊始我没有好好学习,才落到如此地步,这也可以说是一个教训吧!我相信在以后的学习工作中,我一定会端正自己的学习态度,一丝不苟的去对待每一件事。只有做好足够的准备,才能事半功倍!

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:

ARM课程设计报告GPIO—流水灯

目录 一、设计目的 (3) 二、设计原理 1、GPIO—流水灯 (3) 2、SPI (7) 3、定时器 (10) 4、实时时钟 (12) 三、所用仪器 (18) 四、EasyARM2131开发套件功能介绍 (18) 五、设计内容:万年历-定时器-流水灯-SPI 1、功能描述 (21) 2、流程图 (22) 3、程序设计 (22) 六、心得体会 (28) 七、参考文献 (29)

一、设计目的 1、根据要求,复习巩固ARM的基础知识。 2、掌握ARM系统的设计方法,特别是熟悉模块化的设计思想。 3、熟练掌握ARM软件和2131开发板的使用。 4、提高综合运用所学的理论知识独立分析和解决问题的能力; 二、设计原理 1、GPIO—流水灯 (1)LPC2131具有多达47个通用I/O 口(GPIO,General Purpose I/O ports),分别为P0[31:0]、 P1[31:16],其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,因而需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。 当管脚选择GPIO 功能时,有IOSET、IOCLR和IOPIN 3 个寄存器用于控制GPIO 的使用。IOSET 用于口线置位,而IOCLR 则用于口线清零,IOPIN 则反映当前IO口的状态,读回IOSET 则反映当前IO口设定状态。 (2)GPIO的特性和应用 特性: 单个位的方向控制; 单独控制输出的置位和清零; 所有I/O口在复位后默认为输入。 应用: 通用I/O口 驱动LED或其它指示器 控制片外器件 检测数字输入 (3)GPIO引脚描述 GPIO管脚描述见表4.1。 表4.1 GPIO 管脚描述

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汇编与S3C6410接口设计 一.实验目的 熟悉裸板开发环境构建,掌握利用ADS开发工具或arm-linux-gcc开发工具编写裸板系统下程序的基本步骤和方法,掌握裸板程序的基本架构,熟悉汇编设计的基本指令和伪指令的使用方法,掌握S3C6410接口开发基本方法和步骤,并编程设计LED流水灯和看门狗程序设计。深刻体会软件控制硬件工作的基本思路和方法。 二.实验内容 实验1.1 熟悉ADS开发工具或交叉编译器arm-linux-gcc的安装和基本使用 实验1.2 LED流水灯实验 实验1.3 看门狗实验 三.预备知识 C 语言、微机接口等 四.实验设备及工具(包括软件调试工具) 硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、串口线。 软件:WinXP或UBUNTU开发环境。 五.实验步骤 5.1 ADS开发工具安装和使用 步骤: 第一步,ADS工具安装在 平台 B.linux平台)下,按照类似于VC++ 第二步,利用ADS打开demo项目模板,查看ADS中配置中几个重要选项, 第三步,参照demo项目代码结构,编写裸板程序完成两整数加和两整数减函数,分别用C代码实现,写出完成汇编启动代码和C代码。 第四步 用ADS自带的ARM的汇编代码,b被编译器优化到寄存器中,函数返回汇编语句 。 5.2 arm-linux-gcc编译工具安装和使用

第一步:arm-linux-gcc(A. WINDOWS平台 B.linux平台)下,按照类似于gcc 第二步:参看相关实验样例,一般基于arm-linux-gcc编译的裸板程序通常包含汇编启动代码文件,C功能代码文件和make工具文件Makefile。 5.3 LED流水灯设计实验 本实验要求使用arm-linux-gcc编译。备注,控制LED1的GPIO口为GPM0 步骤1:编写代码 参看相关实验样例,编写LED1报警灯代码,实现LED1以1秒左右的时间进行闪烁,要求LED 驱动代码编写在leddrv.c中,功能代码编写在main.c文件中,启动代码文件和Makefile文件参照实验样例代码来设计。 则启动代码文件内容: 功能层main.c文件内容: 步骤2:编译 编译步骤为: 步骤3:加载到内存中运行

arm课程设计报告

课程设计报告 (嵌入式接口技术) 学院:电气工程与自动化学院 题目:基于ARM的多路数据采集系统设计 专业班级:自动化113班 学号:35号 学生姓名:翁志荣 指导老师:温如春 2013 年12月19日

摘要 数据采集系统用于将模拟信号转换为计算机可以识别的数字信号.该系统目的是便于对某些物理量进行监视.数据采集系统的好坏取决于他的精度和速度.设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求.在科学研究中应用该系统可以获得大量动态;是研究瞬间物理过程的重要手段;亦是获取科学奥秘的重要手段之一. 本次设计是基于ARM的多路数据采集系统,主控器能够对模拟信号产生的各路数据,通过数据采集系统进行采集并在主控器的程控下显示。 关键字:数据采集;模数转换;ARM;实时采样。 Abstract Data acquisition system for digital signal to analog signal conversion can be identified by computer. The system is aimed at facilitating monitoring of some physical quantity. Data acquisition system is good or bad depends on the precision and speed. When the design, should be in the case of ensuring accuracy as much as possible to meet the high speed real-time sampling, real-time processing, the requirement of real time control. The application of this system in scientific research can obtain a large number of dynamic; is an important means to study the instantaneous physical process; and it is also one of the important means of access to the mysteries of Science. Keyword s: data acquisition; ARM; real-time sampling analog-to-digital conversion.

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创建虚拟机

基于ARM9的人脸识别系统 嵌入式报告 课程设计

嵌入式课程设计报告 学院信息电子技术 专业通信工程 班级 学号 姓名 指导教师 2017年07月01日

基于ARM9的人脸识别系统 一、引言 人脸识别背景和意义 人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化语音识别、体形识别等,而指纹识别、虹膜识别等都不具有自然性,因为人类或者其他生物并不通过此类生物特征区别个体。 人脸识别具有这方面的特点,它完全利用可见光获取人脸图像信息,而不同于指纹识别或者虹膜识别,需要利用电子压力传感器采集指纹,或者利用红外线采集虹膜图像,这些特殊的采集方式很容易被人察觉,从而更有可能被伪装欺骗。 二、系统设计 1、硬件电路设计 (1)ARM9处理器 本系统所采用的硬件平台是天嵌公司的TQ2440开发板,该开发板的微处理器采用基于ARM920T内核的S3C2440芯片。 ARM9对比ARM7的优势:虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz 以上。指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。 (2)液晶显示屏 为显示摄像头当前采集图像的预览,系统采用三星的320x240像素的液晶屏,大小为206.68cm。该液晶显示屏的每个像素深度为2bit,采用RGB565色彩空间。 (3)摄像头 摄像头采用市场上常见的网眼2000摄像头,内部是含CMOS传感器的OV511+芯片。CMOS传感器采用感光元件作为影像捕获的基本手段,核心是1个感光二极

ARM实验报告--Thumb

XI`AN TECHNOLOGICAL UNIVERSITY 实验报告

西安工业大学实验报告 一丶实验目的 通过实验掌握ARM处理器16位Thumb汇编指令使用方法 二、实验内容 使用Thumb汇编语言,完成基本reg/men访问,以及简单的算术/逻辑运算。 使用Thumb汇编语言,完成较为复杂的程序分支,领会立即数大小的限制,并体会ARM与Thunb的区别。 三、实验原理 ARM 处理器共有两种工作状态: ARM:32 位,这种状态下执行字对准的ARM 指令; Thumb:16 位,这种状态下执行半字对准的Thumb 指令 在Thumb 状态下,程序计数器PC 使用位1 选择另一个半字。 注意: ARM 和Thumb 之间状态的切换不影响处理器的模式或寄存器的内容。ARM 处理器在两种工作状态之间可以切换。 1)进入Thumb 状态。当操作数寄存器的状态位0 为1 时,执行BX 指令进入Thumb 状态。如果处理器在Thumb 状态进入异常,则当异常处理(IRQ,FIQ,Undef,Abort 和SWI)返回时,自动切换到Thumb 状态。 2) 进入ARM 状态。当操作数寄存器的状态位0 为0 时,执行BX 指令进入ARM 状

态。处理器进行异常处理(IRQ,FIQ,Undef,Abort 和SWI)。在此情况下,把PC 方入异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM 状态。 四、实验过程 1)打开Embest IDE Pro软件,选择菜单项File-->New Workspace,系统弹出对话框,创建名为TEXT的新工程,并同时创建一个与工程名相同的工作区。此时在工作窗口将打开该工作区和工程。 2)建立源文件: 点击菜单项File-->New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位玉窗口中第一行,将程序所需的源文件代码输入,编辑完后,进行保存,保存文件格式为_a.s文件。 3)添加源文件: 选择Project-->Add To Project-->File命令,弹出文件选择对话框,在工程目录下选择刚才建立的_a.s格式的源文件 4)基本配置: 选择菜单项Project-->Settings,弹出工程设置对话框,在工程设置对话框中,选择Processor设置对话框,选择ARM7对目标板所用处理器进行配置。

嵌入式系统课程设计报告

湖北民族学院 信息工程学院 课程设计报告书 题目 :基于A RM的数字式万年历 课程:嵌入式系统课程设计 专业:电子信息科学与技术 班级: 03114411 学号: 031441119 学生姓名:田紫龙 指导教师:易金桥 2017年6 月20 日

信息工程学院课程设计任务书 学号031441119学生姓名田紫龙专业(班级)0314411 设计题目基于 ARM 的数字式万年历 1.能测量温度并且实时显示; 2.具有时间显示功能,能够显示年月日,时分秒,并且可以手动调节时间。 设 3. 具有 12 小时制和 24 小时制切换功能。 计 技 术 参 数 对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集 选用 DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602 液晶显 示模块,可以在LCD1602 上同时显示年、月、日、周日、时、分、秒,还具有 设 时间校准整点灯光提醒等功能。制作仿真和实物。 计 要 求 [1]苏平 . 单片机的原理与接口技术 [M]. 北京 : 电子工业出版社, 2006,1-113. [2]王忠民 . 微型计算机原理 [M]. 西安 : 西安科技大学出版社, 2003,15-55. [3]左金生 . 电子与模拟电子技术 [M]. 北京 : 电子工业出版社, 2004,105-131. [4]新编单片机原理与应用(第二版). 西安电子科技大学出版社, 2007.2 [5]张萌 . 单片机应用系统开发综合实例 [M]. 北京:清华大学出版社, 2007.7 [6] 朱思荣. 51 单片机实现公历与农历、星期的转换[Z].当当电子网 [7]李广弟 . 单片机原理及应用 [M] 北京航空航天大学出版社 ,2004 年 参[8] 王越明 . 电子万年历的设计 [J]. 黑龙江科技信息, 2004 年 考 资 料 2017年 6 月 20 日

ARM实验报告

ARM嵌入式 实验报告 姓名:冯贤成 学号:120101021106 专业:电子信息工程 指导老师:郑汉麟

ARM嵌入式系统 一、实验目的 1、通过实验掌握ARM指令的特点和寻址方式; 2、掌握简单的ARM汇编语言的程序设计; 3、了解集成开发环境Embest IDE及其开发软件的应用; 二、实验平台 Windows 7系统下的Embest IDE嵌入式软件开发平台 三、实验内容 1.编写程序将R2的高8位传送到R3的低8位(不考虑R3的其它位) 程序如下: .global _start .text _start: MOV R2,#0x80000003 /*把第一个立即数送进R2*/ MOV R3,#0x40000013 /*把第二个立即数送进R3*/ AND R0,R2,#0xff000000 /*取R2高8位到R0*/ AND R3,R3,#0xffffff00 /*R3低8位清零*/ ORR R3,R3,R0,lsr #24 /*R0逻辑右移24位后与R3相或,结果送进R3*/ stop: b stop .end 调试结果: ①Download下载: ②把第一个立即数送进R2:

③把第二个立即数送进R3: ④取R2高8位到R0: ⑤R3低8位清零: ⑥R0逻辑右移24位后与R3相或,结果送进R3:

单步跟踪后的结果,存储器及寄存器的结果显示: 2.编程实现64位的加法运算,要求【R1:R0】+【R3:R2】结果放回【R1:R0】。

程序如下: .global _start .text _start: MOV R0,#12 /R0=12 MOV R1,#6 /R1=6 MOV R2,#8 /R2=8 MOV R3,#9 /R3=9 ADDS R0,R0,R2 /R0等于低32位相加,并影响标志位 ADC R1,R1,R3 /R1等于高32位相加,并加上低位进位stop: b stop .end 调试结果: ①Download下载: ②将12赋给R0 ③将6赋给R1

STM32-ARM-综合实验报告(南京航空航天大学)

南京航空航天大学研究生实验报告 项目名称:ARM嵌入式系统设计与应用技术 设计专题:综合实验二类:数据采集和显示系统 班级: 小组成员 (1)姓名:学号:学科:电话:Email:导师: (2)姓名:学号:学科:电话:Email:导师: (3)姓名:学号:学科:电话:Email:导师: 20XX年XX月XX日

一、本实验主要内容及要求 本次综合实验的主要内容是,利用ARM内部的A/D转换器进行数据采集和显示系统设计。实验要求如下: 1、采用STM32开发板上的12位A/D转换器(参考电压3.3V)采集电位器测 试点的电压值。电位器与A/D的输入通道14相连接。 2、当按下Key键之后任意旋转电位器,利用A/D转化器采样20组电压值(每 1ms采样一次,使用定时器TIM2计时),并在液晶屏幕上显示当前电压值,当再次按下Key键之后将20组电压值存入到FLASH中。 3、复位后按下Temper键将保存的20组电压值在液晶屏幕中央绘制出波形(要 求各点连接,每个点为5个像素,要有坐标系)。 1)横坐标为“1~20”,每个横坐标之间的间隔为8个像素点; 2)纵坐标为电压值“0V,1V,2V,3V,4V”,相邻坐标之间的为10个像素 点。 4、在液晶屏合适的位置显示组名、姓名、学号、开发日期等信息。可利用STM32 开发板的资源扩展其他自定义功能(如增加温度采集通道、当前采样频率显示和设置、采样率调节等)。 二、硬件框图 本次实验的硬件部分主要是计算机和STM32两个部分,对于计算机部分不做过多的介绍,下面着重介绍STM32中的与本实验相关模块。 1.1 ADC模块 12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。 STM32教学平台的电位器是信号是连接到STM32的PC4口的,PC4正好是A/D转换的通道14,STM32实验教学平台上也标注了ADC12_14(14通道),电位器硬件框图如图1所示,ADC硬件框图如图1所示。

基于ARM嵌入式系统接口技术课程设计报告

基于ARM嵌入式系统接口技术课程设计报告 课程设计题目:实时时钟设计 学院:计算机科学与技术学院 班级:计算机09-1班 学号: 姓名: 指导老师:

微型计算机系统与接口技术 课程设计 设计时间:2011年12月19日至 2011年12月23日 设计环境 1.硬件环境:计算机,EV44B0II实验台 2.软件环境:Jediview 集成开发环境 一、基本功能: 利用S3C44BOX的RTC和实验箱上的LCD液晶、4*4小键盘设计一个实时时钟。 1.在LCD上显示当前日期及时间。可按如下格式显示: 日期:XXXX年XX月XX日 时间:XX:XX:XX 班级,姓名 2.利用4*4小键盘校时 校时时LCD的相应位置要有光标提示。 二、定时报警功能 通过小键盘设定报警时刻,报警时刻到,则在LCD上显示(各自不同的)报警图像。 三、步骤: 1.掌握预备知识: a.液晶显示 b.键盘译码 c.掌握S3C44BO芯片 RTC的使用方法 2.设计: a.实现RTC实时时钟功能 b.显示实时时钟界面 c.实现校时功能 d.上机调试,运行,验收 e.实现定时报警功能 四、硬件接口逻辑图

电路连接图

五、程序代码 (1)44binits /* ******************************************************* * NAME : 44BINIT.S * * Version : 10.JAn.2003 * * Description: * * C start up codes * * Configure memory, Initialize ISR ,stacks * * Initialize C-variables * * Fill zeros into zero-initialized C-variables * *******************************************************/

北航ARM9实验报告:实验3uCOS-II实验

实验三UC-OS移植实验 一、实验目的 在内核移植了uCOS-II 的处理器上创建任务。 二、实验内容 1.运行实验十,在超级终端上观察四个任务的切换。 2. 任务1~3,每个控制“红”、“绿”、“蓝”一种颜色的显示,适当增加OSTimeDly()的时间,且优先级高的任务延时时间加长,以便看清三种颜色。 3.引入一个全局变量BOOLEAN ac_key,解决完整刷屏问题。 #define RdURXH0() 当键盘有输入时在超级终端上显示相应的字符。 三、实验设备 硬件:ARM嵌入式开发平台、用于ARM920T的JTAG仿真器、PC机Pentium100以上。 软件:PC机操作系统Win2000或WinXP、ARM ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。 四、实验原理 所谓移植,指的是一个操作系统可以在某个微处理器或者微控制器上运行。虽然uCOS-II的大部分源代码是用C语言写成的,仍需要用C语言和汇编语言完成一些与处理器相关的代码。比如:uCOS-II在读写处理器、寄存器时只能通过汇编语言来实现。因为uCOS-II在设计的时候就己经充分考虑了可移植性,所以,uCOS-II的移植还是比较容易的。 要使uCOS一工工可以正常工作,处理器必须满足以下要求: 1)处理器的C编译器能产生可重入代码。 2)在程序中可以打开或者关闭中断。 3)处理器支持中断,并A能产生定时中断(通常在10Hz}1000Hz之间)。 4)处理器支持能够容纳一定量数据的硬件堆栈。 5)处理器有将堆栈指针和其它CPU寄存器存储和读出到堆栈(或者内存)的指令。

uCOS-II进行任务调度的时候,会把当前任务的CPU寄存器存放到此任务的堆栈中,然后,再从另一个任务的堆栈中恢复原来的工作寄存器,继续运行另一个任务。所以,寄存器的入栈和出栈是uCOS一工工多任务调度的基础。 五、实验步骤 1 以实验十为模板,将实验六inc目录下的LCD320.H 和src目录下的LCD640.C 拷到模板下的相应目录,将LCD640.C加入工程中。 2包含以下头文件#include “inc/lcd320.h”。 3改LCD640.C 文件中包含头文件的路径。 #include "../inc/drv/reg2410.h" 4 声明引用的变量extern U32 LCDBufferII2[LCDHEIGHT][LCDWIDTH]; 六、源程序 #include"../ucos-ii/includes.h" /* uC/OS interface */ #include "../ucos-ii/add/osaddition.h" #include "../inc/drivers.h" #include "../inc/sys/lib.h" #include "../src/gui/gui.h" #include "../inc/lcd320.h" #include #include //#include "..inc/lcd320.h" //#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting OS_EVENT *MboxSem; ///******************任务定义***************/// /*OS_STK SYS_Task_Stack[STACKSIZE]= {0, }; //system task刷新任务堆栈 #define SYS_Task_Prio 1 void SYS_Task(void *Id);*/ OS_STK task1_Stack[STACKSIZE]={0, }; //Main_Test_Task堆栈 void Task1(void *Id); //Main_Test_Task #define Task1_Prio 12 OS_STK task2_Stack[STACKSIZE]={0, }; //test_Test_Task堆栈 void Task2(void *Id); //test_Test_Task #define Task2_Prio 15 OS_STK task3_Stack[STACKSIZE]={0, }; //test_Test_Task堆栈 void Task3(void *Id); //test_Test_Task #define Task3_Prio 17 OS_STK task4_Stack[STACKSIZE]={0, }; //test_Test_Task堆栈 void Task4(void *Id); //test_Test_Task #define Task4_Prio 10

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 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*/

嵌入式系统课程设计报告

嵌入式系统课程设计报告 课程名称:嵌入式系统课程设计 项目名称:基于ARM实现MP3音乐盒 专业:电子科学与技术

一、设计内容 基本功能:预存四首歌曲,实现循环播放; 每个按键对应一首歌曲。 拓展功能:通过按键简单演奏音乐,类似钢琴; 实现两个模式的切换,切歌模式和音量加减模式。 二、设计思路 基础功能: 将音频数据存储在SD卡中,使用FATFS文件系统进行数据的读写,通过SPI2总线将数据传到内核。内核再将数据通过SPI1总线传送到音频解码模块VS1053,输入的数据(即比特流数据)被解码后送到DAC发出声音。 将音乐存储在SD卡内,通过文件的地址来判别将要播放哪一首音乐,通过地址的递增和循环来实现音乐的自动循环播放。按键对曲目的控制,可通过键盘扫描函数,判断哪一个键被按下,使键盘扫描函数返回不同的返回值,实现对文件地址的控制。将此返回值设置为全局变量,可实现在音乐播放中曲目的切换。 另外,我们还利用解码模块实现对音量的控制,使用按键控制音量的提高或降低。使用SPI1总线将TFT显示屏连接到内核,显示按键功能、当前曲目、当前模式等信息。 由于开发板只有5个按键,按键数量有限,需要对按键实现曲目切换和音量功能的复用。我们小组设置了两种模式,切歌模式和音量模式,并定义左键为模式切换键,实现不同模式的选择和按键的复用。 拓展功能: 基本思路是通过定时器中断来产生一定频率的50% 空占比的脉宽调制波,用此脉宽调制波激励扬声器,从而使扬声器发出一定频率的声音。 所以只要将不同按键的中断子程序设置为对定时器进行不同数据的配置,即可实现不同按键与不同扬声器发生频率的对应。 然后使一个按键的按下与松开均进入中断,且分别实现开启(扬声器发声)与关闭(扬声器不发声)定时器的功能,从而使课题的附加功能表现地更自然。 三、硬件配置 基础功能: (1)SD卡:存储音频数据

arm实验报告

电子科技大学成都学院 实验报告册 课程名称:嵌入式系统开发实践 姓名:段定杰 学号:1140710726 院系:微电子技术系 专业:集成电路设计与集成系统(嵌入式)教师:李伟 2014 年6 月14 日

实验一:基于S3C2440 IIC控制 一、实验目的: 本次实验的目的是通过S3C2440的IIC接口,向EEPROM芯片AT24C02A写入8个数据,然后再将所写的数据读出,并显示在串口调试工具上。 二、实验原理和内容: IIC外接EEPROM的硬件原理图: 为了控制多主控 IIC 总线操作,必须写入值到以下寄存器中: –多主控IIC总线控制寄存器,IICCON –多主控IIC总线控制/状态寄存器,IICSTAT –多主控IIC总线 Tx/Rx 数据移位寄存器,IICDS –多主控IIC总线地址寄存器,IICADD 当释放了IIC总线时,SDA和SCL线应该都保持为高电平。一个高到低SDA 的变化可以启动一个起始条件。SCL稳定保持在高电平时的一个低到高SDA的变化可以启动一个停止条件。 起始和停止条件通常由主设备产生。第一个数据字节为7位地址值,其在启动起始条件后放到总线上,可以确定出主设备要选择的从设备。第8位是决定传输方向(读或写)。每个放到 SDA线上的字节都应该总共为8位。字节可以在总线传输操作期间无限制的发送或接收。数据通常从最高有效位(MSB)开始始发送,并且每个字节应该立即通过应答(ACK)位跟上。 实验内容:触摸屏的校准设计中通过IIC总线来存储校准参数到EEPROM,以便

以后校准时可以随时读出。 三:实验步骤: 1、首先在ADS上建立一个工程,工程名为IIC,然后选择一个合适的路径存放。 2、将光盘中TQ2440测试程序里面inc和src文件夹下的2440addr.h、2440lib.h、2440slib.h、def.h、Nand.h、Option.h、2440addr.inc、Memcfg.inc、Option.inc、2440init.s、2440slib.s、2440lib.c、nand.c这13个文件依次拷贝到刚才所建工程的文件夹下。 3、新建一个源文件,命名为IIC.c,存放到工程名为IIC的文件夹下。 4、在IIC.mcp下创建一个分组,取名为startcode,然后将前面拷贝的3个文件2440init.s、2440slib.s、nand.c依次添加到以startcode命名的文件夹下。 5、将IIC.c添加到工程里面去。 6、配置DebugRel Settings(参考实验一)。 7、在IIC.c里面进行程序的书写。 8、编译所写程序。 9、打开串口调试工具,将波特率设为115200。 10、将开发板、仿真器、串口线和电脑正确连接,打开Hjtag软件,调试程序。 四、实验数据和结果: 1.定义一个延迟函数: 2.IIC的写函数: void wr24c02(unsigned char worAddr,unsigned char *buffer,int date) { int i; flag=1; rIICDS=devaddr; rIICCON=~0x10; rIICSTAT=0xf0; while(flag==1) { delay(100); flag=1; rIICDS=worAddr;

arm机械臂课程设计报告代码

成绩评定表

课程设计任务书

目录 一、题目分析2 二、总体设计 (2) 三、详细设计6 四、实现代码8 五、相关图片20 六、结束语21 七、参考文献 (22) 1、实验题目分析 1.1 问题描述

结合实时时钟,IIC(控制小键盘和数码管等)来做具备定期功能的实时时钟。 1.2功能分析 至少完成以下功能: (1)能显示每秒的时刻 (2)按下功能键能切换显示日期 (3)能设置定时闹钟,定时到产生某种输出 (4)可以扩展考虑加入外部中断,如停止闹钟功能等。 1.3 开发平台及工具介绍 实验器材有: CITK2410开发板,JTAG连接线,RS-232直通连接线 RVDS集成开发环境,超级终端工具, 2、总体设计 2.1 实验基本原理 IIC总线:IIC总线的器件分为主器件和从器件。主器件的功能是启动在总线上传送数据,并产生时钟脉冲,以允许与被寻址的器件进行数据传送。 SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。 I2C总线进行数据传送时,时钟信号

为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据 线上的高电平或低电平状态才允许变化。 超始和停止信号图 数据传送时序图 IIC总线(IICSDA、IICSCL)经过VDD33的上拉后,进入ZLG7290 数码管:实验使用的数码管是广州周立公司单片机发展有限公司自行设计的一款数码管显示驱动及键盘扫描管理芯片。下面是介绍该数码管的特点还有电路图: 1 I2C 串行接口提供键盘中断信号方便与处理器接口 2 可驱动8 位共阴数码管或64 只独立LED 和64 个按键 3 可控扫描位数可控任一数码管闪烁 4 提供数据译码和循环移位段寻址等控制 5 8 个功能键可检测任一键的连击次数 6 无需外接元件即直接驱LED 可扩展驱动电流和驱动电压 7 提供工业级器件多种封装形式PDIP24 SO24 采用24 引脚封装引脚图如图所示其引脚功能分述如下:

湖南工业大学ARM实验报告

ARM嵌入式系统原理及应用开发 实验报告 学院:电气与信息工程学院 班级:电子信息1204 指导老师:谭会生 姓名: 学号: 实验一:ARM汇编指令使用实验——基本数学/逻辑运算一、实验目的 1.初步学会使用ARM ADS / Embest IDE for ARM 开发环境及ARM软件模拟器。 2.通过实验掌握数据传送和基本数学/逻辑运算的ARM汇编指令的使用方法。 二、实验设备 1.硬件:PC机。 2.软件:ADS 1.2 / Embest IDE 200X集成开发环境。 三、实验内容 熟悉ADS 1.2 / Embest IDE 200X开发环境的使用,使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算。具体实验参考程序如下: 四.实验操作步骤 1.新建工程。先建立一个实验文件夹,如E\ARMSY\armasm1;然后运行Embest IDE集成开发环境,选择File→New Workspace菜单项,弹出一个对话框,输入工程名armasm1a/armasmlb等相关内容;最后单击OK按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将能打开该工作区和工程。 2.建立源文件。选择File→New菜单项,弹出一个新的、没有标题的文本编辑窗口,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。编辑完后,保存文件armasmla. s。 1)armasmla. s源程序: /* armasm1a.s */ .EQU X, 45 /*定义变量X,并赋值为45*/ .EQU Y, 64 /*定义变量Y,并赋值为64*/ .EQU STACK_TOP, 0X1000 /*定义栈顶0X1000*/ .GLOBAL _START .TEXT

相关文档
相关文档 最新文档