ARM 实验报告Word格式.docx
- 文档编号:20666344
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:13
- 大小:27.50KB
ARM 实验报告Word格式.docx
《ARM 实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《ARM 实验报告Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
intReadAdc(intch)
{
inti;
staticintprevCh=-1;
rADCCON=(1<
<
14)|(preScaler<
6)|(ch<
3);
//设立通道
if(prevCh!
=ch)
{rADCCON=(1<
for(i=0;
i<
LOOP;
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
ldrr0,=UMCON0;
//禁用AFC
ldrr0,=ULCON0;
//设置线寄存器
ldrr1,=0x3;
//UARTLINECONFIG正常模式,无奇偶校验,一个停止位,8个数据位
ldrr0,=UCON0;
//设置Uart0控制器
ldrr1,=0x245;
//RX边沿触发,TX电平触发,禁用延时中断,使用RX错误中断,正常操作模式,中断请求或表决模式
ldrr0,=UBRDIV0;
//设置波特率为115200
ldrr1,=0x1a;
//int(50700000/16/115200)-1=26
movr1,#100
Delay
subr1,r1,#0x1
bneDelay
;
//开中断
ldrr0,=INTMSK
ldrr1,[r0]
andr1,r1,#0xefffffff
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平台的过程。
三、实验原理
ADS是ARM公司的集成开发环境软件,串口线负责三星S3C2410处理器与PC机超级终端之间的通信,H-JTAG软件负责通过并口线探测处理器内核,CodeWarriorforARMDeveloperSuite为代码编辑环境,AXDDebugger通过并口线调试。
ADS1.2开发环境创建与简要介绍
1、ADS1.2下建立工程
2、ADS1.2下仿真、调试
基于ARM的C语言程序设计简介
5、编译通过后,进入ADS1.2调试界面,加载映像文件C.axf;
之后,在ADS调试环境下全速运行映像文件,从PC机超级终端输出“55”数据。
五、实验结果讨论
实验主程序:
#include<
string.h>
#include"
..\INC\config.h"
voidMain(void){
unsignedchardata;
Target_Init();
Delay(1000);
//延时
data=0x55;
//给全局变量赋值
while
(1)
{
Uart_Printf("
%x"
data);
//串口0输出
}
从实验主程序预测实验结果是在PC机超级终端输出“55”数据,与实验结果相吻合。
实验四ARM9基础实验(AD接口实验)
1、实验目的
2、实验设备
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、实验步骤
{inti;
实验五LINUX交叉实验环境的建立
1、掌握Linux开发环境
2、熟悉Linux—GCC编译器的安装
3、掌握VM中和XP系统文件共享的方法
THUEA-1型实验箱,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:
starfun.h"
hello.h"
stdio.h>
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;
=(NUM-k);
++i)
printf("
"
);
for(j=1;
j<
=(2*k-1);
++j)
*"
\n"
intstar2(){
for(k=NUMBER;
k>
=0;
--k){
=(NUMBER-k+1);
#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、掌握VIVI实现的两个过程
2、掌握VIVI的编译
3、掌握VIVI的烧写
2、实验仪器设备
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已经成功烧录。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 实验报告 实验 报告