ARM嵌入式系统基础实验指导书文档格式.docx

上传人:b****5 文档编号:19930579 上传时间:2023-01-12 格式:DOCX 页数:22 大小:1.46MB
下载 相关 举报
ARM嵌入式系统基础实验指导书文档格式.docx_第1页
第1页 / 共22页
ARM嵌入式系统基础实验指导书文档格式.docx_第2页
第2页 / 共22页
ARM嵌入式系统基础实验指导书文档格式.docx_第3页
第3页 / 共22页
ARM嵌入式系统基础实验指导书文档格式.docx_第4页
第4页 / 共22页
ARM嵌入式系统基础实验指导书文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

ARM嵌入式系统基础实验指导书文档格式.docx

《ARM嵌入式系统基础实验指导书文档格式.docx》由会员分享,可在线阅读,更多相关《ARM嵌入式系统基础实验指导书文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

ARM嵌入式系统基础实验指导书文档格式.docx

/*把R2加R1值,再加上carry值后传送到R6.;

s表示值会影响cpsr*/

SUBR4,R2,R1;

/R2减R1值传送到R4*/

SUBSR4,R2,R1;

/*R2减R1值传送到R4,s表示影响cpsr*/RSBR5,R2,R1;

/*R1减R2值传送到R5*/

RSBSR5,R2,R1;

/*R1减R2值后传送到R5,

;

s表示会影响cpsr*/

SBCR6,R1,R2;

/*R1减R2值再减去!

CARRY;

后传送到R6*/

RSCR7,R1,R2;

/*R2减R1值再减去!

后传送到R7*/

stop

BLstop

END;

/*程序结束*/

2、试验步骤

1)编程

Step1:

开启ADS

点击桌面开始程序ARMDeveloperSuitev1.2CodeWarriorforARMDeveloperSuite,弹出CodeWarriorforARMDeveloperSuite界面。

Step2:

建立新工程,点击FileNew,弹出新建工程对话框。

Step3:

建立新汇编文件,点击FileNew,弹出新建工程对话框。

Step4:

将汇编文件添加至工程列表,编程。

Step5:

设置工程属性。

Step6:

编译连接工程。

点击工程管理对话框中编译链接按钮。

2)调试

Step1:

运行AXD,开启调试界面。

Step2:

设置调试属性。

Step3:

加载映像文件。

Step4:

单步实施,观察程序运行,寄存器值改变。

3)保留退出。

试验二ARM实时仿真环境建立

1、熟悉Multie-Server和JTAG下载方法;

2、熟悉ADS开发环境中“AXDDebugger”组建使用;

3、熟悉掌握ADS调试程序方法。

1、正确连接试验系统硬件系统;

2、使用Multie-Server建立主机和试验板连接;

3、使用仿真器在线调试程序。

THUEA-1A试验系统;

PC机;

JTAG仿真器;

串口线;

并口线。

PC机操作系统(WINDOWSXP);

ARMDeveloperSuitev1.2;

Multi-ICEV2.2;

超级终端。

1、了解ARM体系结构;

2、了解ARM汇编语言;

3、掌握C、C++语言;

4、掌握“试验一ADS开发环境试验”内容。

五、基础知识

1、ARMJTAG接口电路

JTAG(JointTestActionGroup,联合测试行动小组)是一个国际标准测试协议,关键用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一个嵌入式调试技术,它在芯片内部封装了专门测试电路TAP(TestAccessPort,测试访问口),经过专用JTAG测试工具对内部节点进行测试。

现在大多数比较复杂器件全部支持JTAG协议,如ARM、DSP、FPGA器件等。

标准JTAG接口是4线:

TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。

2、Multi-ICEServer介绍

Multi-ICEServer是由ARM企业提供Windows操作系统下ARMJTAG配置程序。

经过它能够使ARMJTAG和目标板建立通讯连接,并能够反馈目标板上ARM处理器硬件信息。

Multi-ICEServer能够适应大多数JTAG仿真器而不需要其它尤其驱动。

这个软件为主机(上位机)和试验板(下位机)之间打建了软件桥梁(硬件桥梁就是仿真器)。

在工程下载,调试,单步运行中这个软件要一直打开。

六、试验步骤

1、硬件连接:

断电进行(串并口不支持热插拔)

2、建立超级终端:

点击“程序→开始→附件→通讯→超级终端”,进入以下画面,输入名称并选择

图标:

点击确定出现以下画面,选择COM1,点击确定:

对端口进行以下设置,并确定:

显示超级终端界面:

3、建立实时仿真

安装Multi-ICE2.2软件

打开Multi-ICE2.2安装文件夹,点击Setup.exe可实施文件,根据软件提醒选择合适路径安装Multi-ICE2.2,假设安装路径为:

C/ProgramFiles/ARM/Multi-ICE。

正确安装Multi-ICE2.2后,打开:

C/ProgramFiles/ARM/Multi-ICE,右键单击single.cfg配置文件,选择打开方法为记事本。

在single.cfg相同目录:

C/ProgramFiles/ARM/Multi-ICE下,新建记事本文件:

920t.cfg,将single.cfg记事本内容复制到920t.cfg,然后在920t.txt中将全部“ARM7TDMI”更改为“ARM920t”,保留。

配置Multi-ICE2.2软件

检验好试验箱仿真器和电脑并口连接,打开试验箱电源。

在PC开发主机上选择开始>

程序>

ARMMulti-ICEv2.2>

Multi-ICEServer进入Multi-ICEServer主界面

使用Multi-ICE2.2软件

点击File/LoadConfiguration,查找路径为:

C/ProgramFiles/ARM/

Multi-ICE/920t.cfg,打开920t.cfg后,出现以下画面:

实时在线仿真器配置完成。

注意:

并口类型是在PCBIOS中进行设置通常提供四种类型

□Basictype部分BIOS提供值为Default或SPP等

□EPP

□ECP

□EPP+ECP

因为ARMJTAG使用双向并口数据总线通常ECP或EPP类型能够符合要求,但在部分比较新BIOS版本中可能要选择基础类型而不是ECP或其它增强型,因为历史上原因并口规范和IEEE1283协议实施存在弹性,所以不一样计算机主板厂商在并口设计上存在部分差异,当第一次使用ARMJTAG时需要对并口类型设置多作几次试验现在我们推荐用户选择EPP类型。

4、ADS编程

打开2410TEST例程。

确定RO_Base地址映射在SDRAM:

0x30000000。

5、AXD仿真

运行AXD,加载映像文件。

点击“Options/ConfigureTarget„”,选择Multi-ICE.dll,然后点击configure,

出现以下界面:

点击“确定”按钮,回到上一界面,点击“OK”,AXDDebugger下实时在线仿真器设置完成,关闭AXDDebugger界面,再次运行,就可经过实时在线仿真器进行目标代码下载调试。

试验三数码管显示试验

1、了解数码管显示原理;

2、掌握数码管显示编程方法;

3、熟悉AXD仿真调试;

4、掌握超级终端下载BIN可实施文件。

1、编写程序控制数码管显示;

2、ADS软件编写程序;

3、AXD调试程序;

4、超级终端下载程序。

1、掌握在ADS集成开发环境中编写和调试程序基础过程;

2、了解ARM应用程序框架结构;

3、了解S3C2410I/O口控制。

1、LED显示原理

发光二极管数码显示器简称LED显示器。

LED显示器含有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,现在广泛应用于各类电子设备之中。

7段LED由7个发光二极管按“日”字排列。

全部发光二极管阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。

通常共阴极能够不需要外接电阻。

其中各二极管排列如上图在共阳极接法中,假如显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。

这么假如码表根据h、g、f、e、d、c、b、a次序由高位到低位排列话对应码段是“6DH”。

其它字符同理能够得到。

2、数码管显示驱动

数码管显示通常有动态显示和静态显示两大类,另外根据驱动方法又分串行驱动和并行驱动两种方法。

串行驱动关键是提供串——并转换,降低控制线数量;

并行驱动对每一个段提供单独驱动,电路相对简单。

1)静态显示:

LED数码管采取静态接口时,共阴极或共阳极节点连接在一起接地或接高电平。

每个显示位段选线和一个8位并行口线相连,只要在显示位上段选位保持段码电平不变,则该位就能保持对应显示字符。

这里8位并行口能够直接采取并行I/O口驱动,也能够采取串行驱动。

对应电路以下:

很显著采取静态显示方法要求有较多控制端(并行)或较复杂电路(串行)。

不过在设计中对器件要求低。

2)动态显示

在多位LED显示时,为了简化电路、节省端口(在很多系统中I/O端口资源很宝贵),将全部段选线并联在器件上由一个8位I/O口控制。

而共阴极(或共阳极)分别由对应I/O口控制,实现各位分时选通。

因为各个数码管共用一个段码输出口,分时轮番通电,从而大大简化了硬件线路。

降低了成本。

不过这种方法数码管接口电路中数码管不宜太多,通常应控制在8个以内。

不然会因为每个数码管发光时间太短而造成亮度低。

若LED位数较多,应采取增加驱动能力方法提升显示亮度。

1、试验电路

4位共阴极并行动态数码管显示电路。

ADDR20-23是位选信号引脚,DATA0-7是段码信号引脚,rGCS7和rGCS4为74HC573选通信号引脚。

2、ADS编程:

led.c源程序文件

/***************************************************/

#include"

2410addr.h"

2410lib.h"

led.h"

#definerSMG0(*(volatileunsignedchar*)0x20XX0000)

/****************共阴极数码管段码表*****************/

unsignedcharst[16]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71

};

/***************************************************/voidtest_led(void)

{

rGPACON=rGPACON&

0x7f7e1f;

//端口A设置,位选数码管显示

//GPA5,6,7,8,15

rGPADAT=0x8000;

//打开74HC573rSMG0=st[0];

//送显示"

0"

rGPADAT=0x0000;

//关闭74HC573}

3、AXD调试:

led.axf映像文件

4、超级终端下载:

led.bin二进制文件

Xmodem协议传输BIN二进制文件。

试验四按键数码管显示试验

1、了解键盘电路原理;

2、掌握键盘电路编程方法;

2、键盘驱动原理

把键盘接入嵌入式应用系统中,使系统能够感知按键状态改变方法有轮询和中止。

轮询方法经过把按键直接连接到系统外部I/O总线上,使程序以访问外部端口方法获知总线状态,然后再读取按键所连接位,从而判定出开关状态。

程序不停地读入外部端口数值,假如有改变,就能够判定按键已经被按下或被放开。

采取轮询方法效率是很低,它只能用于部分比较简单且功效单一应用系统中。

在大多数情况下,全部是使用中止方法。

带有中止方法矩阵键盘连接以下图:

列线经过电阻接正电源,并将行线所接I/O作为输出端,而列线所接I/O口则作为输入端。

这么,当按键没有按下时,全部输出端全部是高电平,代表无键按下。

因为行线输出是低电平,一旦有键按下,则输入线(列线)就会被拉低,并经过SN74LV08,把EINT7信号拉低,CPU就会收到一个中止信号,这时CPU就能够跳入中止子程序去判定哪个键被按下了。

而不一样于轮询方法,CPU要不停地扫描键盘,降低了CPU地效率。

在产生中止后就确定有键被按下,然后确定闭合键所在地位置。

其方法使:

依次将行线置为低电平,在逐行检测各列线电平状态。

若某列为低,则该列线和置为低行线交叉处按键即为闭合键。

1、ADS编程:

KEYBOARD.c源程序文件

/*********************按键显示程序******************/

#include<

string.h>

def.h"

voidRead_value(intdata);

//按键显示函数

void__irqKeyboard_Int(void);

//键盘扫描函数

unsignedcharst[4][4]={//共阴极数码管段码表

{0x71,0x79,0x5e,0x39},

{0x7c,0x77,0x6f,0x7f},

{0x07,0x7d,0x6d,0x66},

{0x4f,0x5b,0x06,0x3f},

voidTest_keyboard(void)//键盘显示函数初始化

pISR_EINT4_7=(unsigned)Keyboard_Int;

rGPECON=rGPECON&

0xffC0157f;

//端口E设置,用于连接4*4键盘

rGPECON=rGPECON|0x1540;

//GPE3~GPE6:

输出;

GPE7~GPE10:

输入rGPEUP=rGPEUP|0x7f8;

//GPE3~10pull-upDISABLErGPEDAT=rGPEDAT&

0xff87;

Output0

//端口A设置,位选数码管显示//GPA5,6,7,8,15IOaboutsmgrGPADAT=0x8000;

//初始显示"

rSMG0=0x3f;

rGPADAT=0x0000;

rGPFCON=rGPFCON&

0x3fff;

//端口F设置,外中止设置,检测键盘rGPFCON|=(2<

<

14);

//GPF7:

INT7

rGPFUP|=(0x01<

7);

//GPF7pull-upDISABLE

rEXTINT0&

=~(0x1<

28);

//

29);

30);

//INT7Lowlevel

rEINTMASK&

//INT7Enable外中止开启

rSRCPND&

4);

rINTMOD&

rINTPND&

rINTMSK&

=~(BIT_EINT4_7);

}

/***************************************************/voidRead_value(intdata)//键值显示函数

unsignedintkeydata;

keydata=(rGPEDAT>

>

7)&

0xf;

switch(keydata)

case(0x7):

//GPA5,6,7,8输出0,15输出高

rSMG0=st[data][3];

//数码管显示

//GPA5,6,7,8输出0,15输出低

break;

case(0xb):

rSMG0=st[data][2];

case(0xd):

rSMG0=st[data][1];

case(0xe):

rSMG0=st[data][0];

void__irqKeyboard_Int(void)//扫描键值中止函数

inti;

//定义行变量

rGPEDAT=rGPEDAT&

0xfff7;

//置GPE3为低,扫描键盘第四行rGPEDAT=rGPEDAT|0x70;

//GPE4、5、6为高

i=3;

Read_value(i);

//读列键值

0xffef;

//置GPE4为低,扫描键盘第三行rGPEDAT=rGPEDAT|0x68;

//GPE3、5、6为高

i=2;

0xffdf;

//置GPE5为低,扫描第二行键盘rGPEDAT=rGPEDAT|0x58;

//GPE3、4、6为高

i=1;

0xffbf;

//置GPE6为低,扫描第一行键盘rGPEDAT=rGPEDAT|0x38;

//GPE3、4、5为高

i=0;

2、AXD调试:

Xmodem协议传输BIN二进制文件。

VIVI采取LOAD命令加载程序。

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

当前位置:首页 > 工作范文

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

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