嵌入式实验报告

更新时间:2023-11-07 12:46:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验报告

专业名称 班级学号 学生姓名

实验一

1、编写程序循环对R4~R11进行累加8次赋值,R4~R11起始值为1~8,每次加操作后把R4~R11的内容放入SP栈中,SP初始设置为0x800。最后把R4~R11用LDMFD指令清空赋值为0。

.global _start

.equ stack_top , 0x800 .text _start:

MOV sp,#stack_top MOV r4,#1 MOV r5,#2 MOV r6,#3

MOV r7,#4 MOV r8,#5 MOV r9,#6 MOV r10,#7 MOV r11,#8

STMFD sp!,{r4-r11} MOV r3,#0 /*r3=0*/ addBlock: b addBlock .end

实验二 存储器实验

实验目的:

1.通过实验熟悉ARM 的内部存储空间分配。 2.掌握对存储区配置方法。

3.掌握对存储区进行读写访问的方法。 实验设备:

硬件:Embest EduKit-III 实验平台,Embest ARM 标准/增强型仿真器套件,PC 机; 软件:Embest IDE for ARM 集成开发环境,Windows 98/2000/NT/XP。 实验内容:

1.熟练使用命令脚本文件对ARM 存储控制寄存器进行正确配置; 2.使用C 语言编程,实现对RAM 的读写访问。 实验原理:

2410init.s 整个系统的入口点,建立中断向量表 2410lib.c 包括所有程序调用的函数,驱动 Call_int.s 中断向量映射时进行现场保护 2410addr.h 寄存器的地址 2410addr.inc 寄存器的地址 Memcfg.h 内存的定义 Option.inc 配置参数

实验步骤:

1. 准备实验环境

拷贝光盘CD1\\Software\\EduKit2410 文件夹EmbestIDE\\Examples\\Samsung 目录下(如果已经拷贝,跳过该操作);使用EduKit-III 目标板附带的串口线连接目标板上UART0 和PC 机串口COMx; 2. 串口接收设置

在 PC 机上运行windows 自带的超级终端串口通信程序(波特率115200、1 位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。 3. 打开实验例程

1)运行Embest IDE 开发环境,进入实验例程目录EduKit2410\\4.1.1_memory_test子目录下的memory_test.pjf 例程,编译链接工程;

2) 点击IDE 的Debug 菜单,选择Remote Connect 项或F8 键,远程连接目标板; 3) 点击IDE 的Debug 菜单,选择Download 下载调试代码到目标系统的RAM 中; 4) 打开Memory 窗口,点击Memory1 在地址输入栏中输入0x30010000; 5) 在工程管理窗口中双击memory_test.c 就会打开该文件, 在约第37 行 (*pt=(UINT32T)pt;)设置断点后,点击Debug 菜单Go 或F5 键运行程序;

6) 当程序停留到断后,按F10,在Memory1 窗口观察地址的内容并与地址相比较,对比是否一致,继续执行F10。

7)去掉断点,按F5 并执行程序,观察超级终端串口程序的输出。

8) 结合实验内容和实验原理部分,掌握汇编语言和高级语言程序访问RAM 指令的使用方法。

4. 观察实验结果

在 PC 机上观察超级终端程序主窗口,可以看到如下界面:

实验程序:

/*****************************************************/ * File: main.c * Author: embest

* Desc: c main entry * History:

*****************************************************/ #include \#include \

/* function declare */ /*****************************************************/

* name: main

* func: c code entry * para: none * ret: none * modify: * comment:

******************************************************/ void Main(int argc,char **argv) {

sys_init(); /* Initial s3c2410's Clock, MMU, Interrupt,Port and UART */ // user interface

uart_printf(\memory_test(); }

/****************************************************/ * File: memory.c * Author: embest * Desc: memory test file * History:

*****************************************************/ #include \#include \void memory_test(void) { int i;

UINT32T data; int memError=0; UINT32T *pt; // memory test

Uart_printf(\

Test(%xh-%xh):WR\\n\00));

//memory write

pt=(UINT32T *)(_RAM_STARTADDRESS+0x10000);

while((UINT32T)pt<(_ISR_STARTADDRESS&0xf0ff0000)) {

*pt=(UINT32T)pt; pt++; }

//MEMORY READ uart_printf(\

Test(%xh-%xh):RD\\n\000));

//uart_printf(\

pt=(UINT32T *)(_RAM_STARTADDRESS+0x10000);

while((UINT32T)pt<(_ISR_STARTADDRESS&0xf0ff0000)) {

data=*pt;

if(data!=(UINT32T)pt) {

memError=1;

uart_printf(\break; } pt++; }

if(memError==0)

uart_printf(\}

课后练习

实验三 IO口实验

实验目的

1.掌握S3C2410X芯片的I/O控制寄存器的配置;

2.通过实验掌握ARM芯片使用I/O口控制LED显示; 3.了解ARM芯片中复用I/O口的使用方法。 实验设备

硬件:Embest EduKit-III实验平台,Embest ARM标准/增强型仿真器套件,PC机。 软件:Embest IDE for ARM集成开发环境,Windows 98/2000/NT/XP。 实验内容

编写程序,控制实验平台的发光二极管LED1,LED2,LED3,LED4,使它们有规律的点亮熄 灭,具体顺序如下:LED1亮->LED2亮->LED3亮->LED4亮->LED1灭->LED2灭->LED3 灭->LED4灭->全亮->全灭,如此反复 实验操作步骤 1. 准备实验环境

拷贝光盘CD1\\Software\\EduKit2410文件夹到EmbestIDE\\Examples\\Samsung\\目录下(如果已经拷贝,跳过该操作);使用EduKit-III 目标板附带的串口线连接目标板上UART0和PC机串口COMx;

2. 串口接收设置在PC机上运行windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。 3. 打开实验例程

1) 运行Embest IDE开发环境,进入实验例程目录EduKit2410\\4.2_led_test子目录下的 led_test.pjf例程,编译链接工程;

2) 点击IDE 的Debug菜单,选择Remote Connect项或F8键,远程连接目标板; 3) 点击IDE 的Debug菜单,选择Download下载调试代码到目标系统的RAM中; 4) 在工程管理窗口中双击led_test.c 就会打开该文件,分别在约第34 行 (for(i=0;i<100000;i++);)和58行(for(i=0;i<100000;i++);)设置断点后,

本文来源:https://www.bwwdw.com/article/1u72.html

Top