ARM 实验报告.docx

上传人:b****5 文档编号:7552664 上传时间:2023-01-24 格式:DOCX 页数:13 大小:27.50KB
下载 相关 举报
ARM 实验报告.docx_第1页
第1页 / 共13页
ARM 实验报告.docx_第2页
第2页 / 共13页
ARM 实验报告.docx_第3页
第3页 / 共13页
ARM 实验报告.docx_第4页
第4页 / 共13页
ARM 实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

ARM 实验报告.docx

《ARM 实验报告.docx》由会员分享,可在线阅读,更多相关《ARM 实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

ARM 实验报告.docx

ARM实验报告

实验一熟悉THUEA-1开发系统、ADS开发环境、建立工程模板

一、实验目的

了解在ADS环境下对s3c2410芯片的8通道10位AD的操作和控制。

二、实验设备

硬件:

THUEA-1型实验箱,PC机。

软件:

PC机操作系统:

windows+ADS+Multi-ICE和RedHatLinux+Minicom+ArmLinux

开发环境。

三、实验步骤

1.建立实验环境(详见附录):

连接仿真器,连接实验箱串口0与计算机串口,打开超级终

端,端口设置为“每秒位数:

115200;数据位:

8;奇偶校验:

无;停止位:

1;数据流控制:

无”。

2.打开实验箱电源,打开仿真器驱动程序,在ADS下打开并运行2410test.mcp,根据超级

终端提示选择ADC实验,出现如下界面:

[ADC_INTest]

0.DispalyCount101.Continued...Enteranykeytoexit

Selet:

3.按电脑键盘选择0或1,缓慢调节实验箱模拟信号源(R31,R32),观察输出数字量AIN4、

AIN6(在超级终端显示)变换情况。

4.分析实验程序,理解ARMS3C2410芯片的A/D转换器控制方法:

读取采样值函数:

intReadAdc(intch)

{

inti;

staticintprevCh=-1;

rADCCON=(1<<14)|(preScaler<<6)|(ch<<3);//设立通道

if(prevCh!

=ch)

{rADCCON=(1<<14)|(preScaler<<6)|(ch<<3);//设立通道

for(i=0;i

prevCh=ch;

}

rADCCON|=0x1;//开始ADC

while(rADCCON&0x1);//检查Enable_start位是否变低

while(!

(rADCCON&0x8000));//检查EC(EndofConversion)flag是否为高

return((int)rADCDAT0&0x3ff);

}

在超级终端显示数字量:

{a4=ReadAdc(4);

a6=ReadAdc(6);

Uart_Printf("AIN4:

%0.2fAIN6:

%0.2f\n",a4*3.3/1024,a6*3.3/1024);

}

实验二ADS环境下ARM汇编语言程序设计

一、实验目的

1、了解ARM汇编语言的基本架构,学会使用ARM汇编语言编程

二、实验仪器设备

1、教学实验箱,奔腾E系列PC机,仿真调试电缆;

2、PC操作系统WINXP,ADS1.2集成开发环境,仿真调试电缆驱动程序。

三、汇编语言介绍

1、ARM汇编语言的一些简要的书写规范。

2、ARM汇编语言程序的基本架构。

四、实验内容

用汇编语言写一个简单的应用程序:

;//呼叫主应用程序

bUART

UART

ldrr0,=GPHCON;//设置RxD0,TxD0引脚

ldrr1,=0x2afaaa

strr1,[r0]

ldrr0,=GPHUP

ldrr1,=0x7ff

strr1,[r0];//ThepullupfunctionisdisabledGPH[10:

0]

 

ldrr0,=UFCON0;//禁用FIFO

ldrr1,=0x0

strr1,[r0]

ldrr0,=UMCON0;//禁用AFC

ldrr1,=0x0

strr1,[r0]

ldrr0,=ULCON0;//设置线寄存器

ldrr1,=0x3;//UARTLINECONFIG正常模式,无奇偶校验,一个停止位,8个数据位

strr1,[r0]

ldrr0,=UCON0;//设置Uart0控制器

ldrr1,=0x245;//RX边沿触发,TX电平触发,禁用延时中断,使用RX错误中断,正常操作模式,中断请求或表决模式

strr1,[r0]

ldrr0,=UBRDIV0;//设置波特率为115200

ldrr1,=0x1a;//int(50700000/16/115200)-1=26

strr1,[r0]

movr1,#100

Delay

subr1,r1,#0x1

bneDelay

;//开中断

ldrr0,=INTMSK

ldrr1,[r0]

andr1,r1,#0xefffffff

strr1,[r0]

MOVR5,#127;//设置要打印的字符的个数

MOVR1,#0x0;//设置要打印的字符

LOOP

LDRR3,=UTRSTAT0

LDRR2,[R3]

TSTR2,#0x04;//判断发送缓冲区是否为空

BEQLOOP;//为空则执行下边的语句,不为空则跳转到LOOP

LDRR0,=UTXH0

STRR1,[R0];//向数据缓冲区放置要发送的数据

ADDR1,R1,#1

SUBR5,R5,#0x01;//计数器减一

CMPR5,#0x0

BNELOOP

LOOP2BLOOP2

五、试验步骤:

1、该实验仅使用实验教学系统的CPU板、串口。

在进行该实验时LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态;

2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接针/孔接头串口线;

3、检查连接是否可靠,可靠后,接入电源线,系统上电;

4、打开ADS1.2开发环境,打开C.mcp项目文件,进行编译;

5、编译通过后,进入ADS1.2调试界面,加载映像文件asm.axf;

6、打开PC机的超级终端,配置波特率为1152000,校验位无,数据位为8,停止位为1。

之后,在ADS调试环境下全速运行映像文件,从PC机超级终端输出128个ASCII字符。

 

实验三基于ARM92410启动代码分析

一、实验目的

1、掌握汇编和C的混合编程;

2、掌握2410启动过程——2410init.s文件

3、了解嵌入式C语言的基本框架,学会使用嵌入式C语言,并在三星S3C2410芯片上编程练习。

4、深刻了解ARM汇编转到C平台的过程。

二、实验仪器设备

1、教学实验箱,奔腾E系列PC机,仿真调试电缆;

2、PC操作系统WINXP,ADS1.2集成开发环境,仿真调试电缆驱动程序。

三、实验原理

ADS是ARM公司的集成开发环境软件,串口线负责三星S3C2410处理器与PC机超级终端之间的通信,H-JTAG软件负责通过并口线探测处理器内核,CodeWarriorforARMDeveloperSuite为代码编辑环境,AXDDebugger通过并口线调试。

四、实验内容

ADS1.2开发环境创建与简要介绍

1、ADS1.2下建立工程

2、ADS1.2下仿真、调试

基于ARM的C语言程序设计简介

1、该实验仅使用实验教学系统的CPU板、串口。

在进行该实验时LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态;

2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接针/孔接头串口线;

3、检查连接是否可靠,可靠后,接入电源线,系统上电;

4、打开ADS1.2开发环境,打开C.mcp项目文件,进行编译;

5、编译通过后,进入ADS1.2调试界面,加载映像文件C.axf;

6、打开PC机的超级终端,配置波特率为1152000,校验位无,数据位为8,停止位为1。

之后,在ADS调试环境下全速运行映像文件,从PC机超级终端输出“55”数据。

五、实验结果讨论

实验主程序:

#include

#include"..\INC\config.h"

voidMain(void){

unsignedchardata;

Target_Init();

Delay(1000);//延时

data=0x55;//给全局变量赋值

while

(1)

{

Uart_Printf("%x",data);//串口0输出

Delay(1000);

}

}

从实验主程序预测实验结果是在PC机超级终端输出“55”数据,与实验结果相吻合。

实验四ARM9基础实验(AD接口实验)

1、实验目的

了解在ADS环境下对s3c2410芯片的8通道10位AD的操作和控制。

2、实验设备

硬件:

THUEA-1型实验箱,PC机。

软件:

PC机操作系统:

windows+ADS+Multi-ICE和RedHatLinux+Minicom+ArmLinux

开发环境。

3、实验原理

1.A/D转换器

A/D转换器是模拟信号源和CPU之间联系的接口,它的主要任务是将连续变化的模拟信号

转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。

在工业控制和数字采集

及许多其他领域中,A/D转换是必不可少的。

A/D转换器有以下类型:

逐为比较型、积分型、计数型、并行比较型、电压-频率型,主要

根据使用场合的具体要求,按照转换速度、精度、价格、功能以及接口条件等因素来决定选择何

种类型。

A/D转换器有几个重要指标:

分辨率、精度、转换时间、电源灵敏度,量程、输出逻辑电平

和工作温度范围。

2.S3C2410自带的十位A/D转换器

ARMS3C2410芯片自带一个8路10位的A/D转换器,并且支持触摸屏功能。

在THUEA-1

型上只用了2路A/D转换器,起最大转换率为500K,非线性度为正负1.5位,其转换时间可以

通过下式计算:

如果系统时钟为50MHz,比例值为49,则

A/D转换器频率=50MHz/(49+1)=1MHz

转换时间=1/(1MHz/5cycles)=1/200kHz(相当于5us)=5us

2.1AD控制寄存器的设置及描述

4、实验步骤

1.建立实验环境(详见附录):

连接仿真器,连接实验箱串口0与计算机串口,打开超级终

端,端口设置为“每秒位数:

115200;数据位:

8;奇偶校验:

无;停止位:

1;数据流控制:

无”。

2.打开实验箱电源,打开仿真器驱动程序,在ADS下打开并运行2410test.mcp,根据超级

终端提示选择ADC实验,出现如下界面:

[ADC_INTest]

0.DispalyCount101.Continued...Enteranykeytoexit

Selet:

3.按电脑键盘选择0或1,缓慢调节实验箱模拟信号源(R31,R32),观察输出数字量AIN4、

AIN6(在超级终端显示)变换情况。

4.分析实验程序,理解ARMS3C2410芯片的A/D转换器控制方法:

读取采样值函数:

intReadAdc(intch)

{inti;

staticintprevCh=-1;

rADCCON=(1<<14)|(preScaler<<6)|(ch<<3);//设立通道

if(prevCh!

=ch)

{rADCCON=(1<<14)|(preScaler<<6)|(ch<<3);//设立通道

for(i=0;i

prevCh=ch;

}

rADCCON|=0x1;//开始ADC

while(rADCCON&0x1);//检查Enable_start位是否变低

while(!

(rADCCON&0x8000));//检查EC(EndofConversion)flag是否为高

return((int)rADCDAT0&0x3ff);

}

 

实验五LINUX交叉实验环境的建立

1、实验目的

1、掌握Linux开发环境

2、熟悉Linux—GCC编译器的安装

3、掌握VM中和XP系统文件共享的方法

二、实验仪器设备

硬件:

THUEA-1型实验箱,PC机。

软件:

PC机操作系统:

windows+ADS+Multi-ICE和RedHatLinux+Minicom+ArmLinux开发环境

三、Linux特点

(1)可运行于多种硬件平台

(2)可裁减,性能优异,应用软件丰富

(3)使用成本低(4)强大的网络功能(5)GUI开发支持

(6)丰富的开发技术资源

四、实验步骤

1)在/home/nfs下建立工作目录

#mkdirhello

#cdhello

2)编写程序源代码

在Linux下的文本编辑器有许多,常用的是vi、xWindow界面下的gedit等,在开发过程中

推荐使用vi,vi的相关操作参考Vi的操作指南。

该实验是在终端上打印出一个菱形,一个三角形(由*号构成)及打印以行字符hello,my

friends!

主函数文件为start.c:

#include"starfun.h"

#include"hello.h"

#include

intmain(){

star1();

star2();

showhello();

return0;

}

其中所包含的头文件为:

hello.h,starfun.h,stdio.h

在starfun.h中定义了两个函数star1(),star2()打印两个三角形:

#ifndefSTARFUN_H

#defineSTARFUN_H

#defineNUM4

#defineNUMBER3

intstar1(){

inti,j,k;

for(k=1;k<=NUM;++k){

for(i=1;i<=(NUM-k);++i)

printf("");

for(j=1;j<=(2*k-1);++j)

printf("*");

printf("\n");

}

return0;

}

intstar2(){

inti,j,k;

for(k=NUMBER;k>=0;--k){

for(i=1;i<=(NUMBER-k+1);++i)

printf("");

for(j=1;j<=(2*k-1);++j)

printf("*");

printf("\n");

}

return0;

}

#endif

五、实验内容

1)RedHatLinux9.0的安装

在一台PC上安装RedHatLinux9.0,选择完全安装,需要磁盘空间大约5G。

因此在安装之

前需预留大约5-15G的空间,具体视用户的硬盘空间大小来定,在安装完ReadHat后还要安装

Linux的编译器和开发库以及ARM-Linux的所有源代码。

2)安装交叉编译工具。

该交叉编译工具在光盘的toolchains目录下。

以root身份登陆,具体步骤如下:

#cd/mnt/cdrom/toolchains

#rpm–ivh*.rpm--force

注意:

force前有两个中画线,安装完后修改PATH环境变量。

#vi/root/.bash_profile

在这个文件中加入:

PATH=$PATH:

$HOME/bin:

/opt/host/armv4l/bin,存盘后执行:

#source/root/.bash_profile,则可以在中断上输入armv,然后按tab键,会自动显示

armv4l-unknown-linux-

3)配置MINICOM

在linux操作系统Xwindow界面下建立终端(在桌面上点击右键→新建终端),

 

实验六BootLoader——VIVI的编译与烧录

1、实验目的

1、掌握VIVI实现的两个过程

2、掌握VIVI的编译

3、掌握VIVI的烧写

2、实验仪器设备

硬件:

THUEA-1型实验箱,PC机。

软件:

PC机操作系统:

windows+ADS+Multi-ICE和RedHatLinux+Minicom+ArmLinux

开发环境。

3、vivi的功能

原有功能:

(1)分区管理

(2)参数管理(3)通过串口下载程序到flash或者ram(4)启动linux操作系统(5)bon文件系统的管理

新增功能:

1增加了网络的支持,可以使用TFTP,NFS等网络功能。

2增加了引导WindowsCE以及其他操作系统的引导函数。

3增加了Logo部分,用户可以方便地添加自己的Logo

4、实验内容及步骤

1、vivi的配置与编译

安装好Linux系统以及完整的编译工具,并安装交叉编译工具(具体操作建立嵌入式开发环境)。

然后进行vivi的编译,具体步骤如下:

#mkdir/home/THUEA

#mkdir/home/THUEA/bootloader;建立存放vivi的目录

#cd/home/THUEA/bootloader;进入vivi的目录

#tarzxvf/mnt/cdrom/bootloader/vivi-sd-040403.tar.gz

#cdvivi-sd

#makedistclean

#makemenuconfig

选择CS8900networkfunctionsupport(可以支持TFTP

功能),不选择GZSDVGAandTVinitfunctionsupport后退出,保存。

然后执行make命令编译bootloader。

#make

这样,在vivi-sd目录下会得到vivi这个文件,这就是要用的bootloader。

2、vivi烧录

1、正确连接Jtag板、开发板和PC机。

2在windows下烧写flash

该程序在光盘(JTAG/win/GiveIO/)

1)安装并口驱动(GIVEIO.SYS)

进入JTAG/win/GiveIO目录下,双击GiveIOInstaller.exe文件,

点击InstallService,当Status栏显示Serviceisinstalledandrunning,表明并口驱动已安装完成。

2)运行sjf2410(JTAG/win/sjf2410/debug),选择nand(K9F1208)并烧录第0地址

3)等待烧录完成大约需要5分钟的时间。

4)检查烧录是否正确。

打开windows的超级终端,进行串口配置界面,然后断开JTAG板和开发板的连接并按下实验箱上的Reset键

bootloader启动后,出现了vivi>终端提示符,表明bootloader已经成功烧录。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1