JX44B0 ARM嵌入式教学实验系统.docx
《JX44B0 ARM嵌入式教学实验系统.docx》由会员分享,可在线阅读,更多相关《JX44B0 ARM嵌入式教学实验系统.docx(32页珍藏版)》请在冰豆网上搜索。
JX44B0ARM嵌入式教学实验系统
第3章JX44B0ARM嵌入式教学实验系统
3.1JX44B0ARM嵌入式教学实验系统介绍
JX44B0教学实验系统是一套硬件、软件集成的,基于ARM的完整的教学实验系统,系统包含丰富的硬件资源、完善而优越的调试手段和详尽的教学实验教程。
JX44B0目标处理器采用三星的S3C44B0X处理器,开发平台采用武汉创维特信息技术有限公司的ADT集成开发环境(以下简称ADTIDE),嵌入式开发的所有过程都可以在该环境下完成。
1.使用方便:
ADTIDE采用了一个通用的界面,可以非常方便的进行工程管理、编辑、编译、链接和调试,使得我们可以很快地进入到具体的实验中;
2.接口丰富:
含多种外设接口:
LED输出、7段码输出、LCD输出、触摸屏、4×4键盘输入、外部中断输入、串行接口、A/D转换接口、步进电机接口、网络接口、USB接口、标准计算机打印口(并口)、I2C总线接口、IIS数字音频接口、IDE接口、CF卡接口、GPRS模块和GPS模块等;
3.扩充性好:
采用模块化设计,便于硬件升级换代,并提供丰富的扩展槽以便扩充外部接口;
4.实验丰富:
本系统专门为嵌入式系统教学进行了定制,精心设计了多个实验,包括嵌入式软件开发基础实验、基本接口实验、Bootloader及操作系统实验和高级接口实验,内容由浅入深,涵盖面广,适合不同学习层次人员的学习和教学,并可以方便地进行实验扩展。
3.2JX44B0教学实验系统组成
1.ADTIDE集成开发环境;
2.ADTEmulatorforARMJTAG仿真器;
3.JX44B0系列教学实验箱:
JX44B0-1B、JX44B0-1、JX44B0-2、JX44B0-3;
4.各种连接线、电源适配器以及实验指导书等;
5.教学实验系统配套光盘。
JX44B0ARM教学实验系统基本实验模型如图3-1所示。
图3-1实验模型示意图
3.2.1ADTIDE集成开发环境
1.ADTIDE简介
ADTIDE是一套应用于嵌入式软件开发的新一代集成开发环境,它提供高效、清晰、可视化的嵌入式软件开发平台,包括一整套完备的面向嵌入式系统的开发和调试工具:
编辑器、编译器、链接器、工程管理器以及调试器等。
ADTIDE运行于WindowsNT、98、2000及XP,采用类VisualStdio界面风格,其界面如图3-2所示。
图3-2ADTIDE集成开发环境软件界面图
2.ADTIDE主要特性
◆中文、英文版本支持
◆操作系统支持
★支持Vxworks,uCLinux,Linux,Nucleus等操作系统的开发和调试。
◆可视化的源码编辑和工程管理功能:
★界面友好,使用方便:
类似MSVisualStudio的用户界面,支持打印功能,支持文件内查找功能和FindinFiles功能。
★工程管理器:
ADTIDE提供图形化的工程管理工具,以project为单位为用户提供应用源程序的文件组织和管理,管理用户的应用程序,编译链接选项以及调试参数等。
★源码编辑器:
支持标准的文本编辑功能,支持C语言、汇编语言语法高亮显示。
★辅助编辑工具:
提供多剪贴板工具、代码模板工具、头文件和源文件切换工具、注释工具、符号配对书写工具等多种辅助编辑工具。
◆交叉编译功能:
★支持开发语言:
ANSIC、EmbeddedC++、汇编语言。
★编译工具:
使用著名优秀自由软件GNU的GCC交叉编译工具,并经过优化和严格测试,支持C语言、汇编语言等。
★编译参数设置:
完全图形界面方式的编译参数设置,提供可视化的设置功能。
支持工程级/文件目录级/文件级编译参数设置。
◆强大的源代码级调试功能:
★图形和命令行两种调试方式。
★断点功能。
支持软件断点和硬件断点,实现断点设置、断点屏蔽、断点取消、断点列表。
★程序的单步执行。
★变量监视功能。
随程序运行同步更新变量,即时修改变量值,可设置自动刷新方式、十进制/十六进制显示。
★ARM各种模式的寄存器即时查看与修改。
当前模式显示,寄存器值修改时红色突显。
★存储器查看与修改。
可设置自动刷新方式、字节/双字节/四字节显示、大/小端方式显示,存储器值修改时红色突显。
★函数堆栈显示。
可设置自动刷新方式、十进制/十六进制显示、参数值显示,参数类型显示。
★支持源程序、反汇编程序和混合窗口显示,支持ARM/THUMB方式显示。
★具有与MSVisualStudio类似的调试菜单功能:
Go、Stop、Reset、Stepinto、Stepover、Stepout、RuntoCursor等。
★支持程序下载。
★板上寄存器(OnBoardRegister)的查看和修改。
可以查看支持CPU的所有板上寄存器的具体意义、当前值、各个位的意义;可设置自动刷新方式、二进制/十进制/十六进制显示、大/小端方式显示,支持十进制/十六进制方式修改寄存器值,寄存器值修改时红色突显。
★存储区下载和上载功能。
★工程级调试参数的保存。
★提供Simulator模拟器,支持脱机模拟调试。
★集成elftobin及反汇编常用工具。
★丰富的例程程序。
◆FLASHMemory在线编程。
★支持对多种FLASH芯片的实时检查、擦除、编程、校验等操作。
★支持8/16/32位Flash访问宽度,支持多片Flash同时编程,无需劈分文件。
★高速编程,编程速度约为80Kbytes/S.
★提供统一的Flash编程接口,用户可灵活地添加配置Flash编程方案。
3.2.2ADTEmulatorforARMJTAG仿真器
1.支持ADTIDEForARM集成开发环境;完全兼容ADS集成开发环境;
2.支持GDB调试(Linux/windows/uC-OS等操作系统下);
3.支持ARM系列CPU内核:
ARM7、ARM7DI、ARM7TDMI、ARM7TDMI-S、ARM710T、ARM720T、ARM726FZ、ARM9、ARM9TDMI、ARM940T、ARM920T、ARM922T、ARM9E-S、ARM966E-S、IntelXscale、Securcore……
4.支持Windows98/NT/2000/XP;
5.支持外接电源供电,2.5V/3V/5V兼容电平接口;
6.支持标准的14/20针JTAG接口;
7.支持汇编级调试,支持ARM、THUMB及指令集交叉调试;
8.下载速度大于120Kbytes/S;
9.支持标准C语言程序调试;
10.非插入式调试,不占用板上任何资源;
11.支持Flash在线编程;
图3-3ADTEmulatorforARMJTAG仿真器
12.采用标准并口技术,无须选择ECP、EPP;
13.LED指示运行状态;
14.通过软件升级方式支持更高版本的ARM核处理器。
15.支持硬件断点与不限个数的软件断点。
3.2.3JX44B0系列教学实验箱
JX44B0系列教学实验箱是实验系统的主要硬件平台,它包含一系列嵌入式教学实验方案:
图3-4JX44B0-1B教学实验箱
1.JX44B0-1B教学实验箱:
硬件系统包含了嵌入式系统开发应用所需的大部分接口,如:
以太网、USB口、音频接口、LCD以及触摸屏、键盘。
是一款经济型的ARM教学实验平台。
2.JX44B0-1/JX44B0-2/JX44B0-3教学实验箱:
除了包含JX44B0-1B的所有硬件接口以外,JX44B0-1另外添加了多个高级接口:
如CF卡接口、IDE接口、标准计算机打印口等;JX44B0-2在JX44B0-1的基础上添加GPRS无线通讯模块,可以进行通话和短信等高级实验;JX44B0-3在JX44B0-2的基础上又添加了GPS全球定位模块。
且JX44B0-1/JX44B0-2/JX44B0-3采用模块化设计,可任意选配和升级高级模块(ARM核心板、GPRS模块和GPS模块)。
JX44B0-3所包含的接口如下图所示:
图3-5JX44B0-3教学实验箱
3.3JX44B0教学实验系统硬件资源
3.3.1JX44B0教学实验系统硬件模块
JX44B0教学实验系统的硬件部分包括:
基本模块、调试模块、通讯模块、人机交互模块、A/D模块、步进电机驱动模块、IDE/CF接口模块、GPRS模块、GPS模块。
1.基本模块:
✧SDRAM存储器。
主板包含8MBSDRAM。
由一片16位数据宽度的SDRAM存储器组成,地址从0x0c000000~0x0c800000。
S3C44B0X微处理器内部集成了8KBRAM,它既可作为RAM用,也可以作为高速缓存即cache使用,我们通常将它配置为Cache以提高系统性能;
✧FLASH存储器:
主板包含4MBFLASH存储器,内部存放启动代码Bootloader、uCLinux内核映象、uC/OS-II演示程序代码、IIS测试声音文件等。
其数据宽度为16位,地址从:
0x00000000~0x00400000;
✧串行通讯口:
主板包含2个UART接口:
UART0和UART1,UART0在Bootloader、演示程序、uCLinux和多个实验中用于人机交互(通过超级终端)以及文件传输;
✧IIS录放音接口:
主板有一个可以基于DMA操作的IIS总线接口,可进行立体声录放音;
✧I2C总线接口:
与24C08芯片接口,可以存放一些固定的配置数据;
✧4个LED跑马灯:
可独立软件编程;
✧6个七段数码管:
6个共阳七段数码管;
✧外部中断测试:
一个按键用于外部中断0的测试;
✧复位按键:
按键用于CPU复位;
✧两通道通用DMA,两通道具有外部请求引脚的外设DMA;
✧五个PWM定时器和一个内部定时器;
✧看门狗定时器;
✧71个通用I/O端口,8个外部中断源;
✧8通道10-bitADC。
2.调试模块:
✧标准JTAG接口:
14针标准JTAG接口,该接口用于高速仿真调试;
✧简易JTAG调试接口:
直连标准计算机并口,调试接口,该接口用于简易仿真调试。
3.通讯模块:
✧以太网通讯接口:
10M以太网卡;
✧USB接口:
遵循USB1.1标准;
✧标准计算机打印口(并口)。
4.人机交互模块:
✧显示器/触摸屏:
5.7英寸,STN256色LCD显示器,320×240的分辨率;
✧按键:
4X4按键。
5.A/D模块:
✧8通道10bitA/D模块。
6.步进电机驱动模块:
✧两相步进电机驱动。
7.IDE/CF接口模块:
✧标准IDE硬盘接口;
✧标准CF卡接口。
8.GPRS模块:
✧GPRS无线通讯模块。
9.GPS模块:
✧GPS全球定位系统模块。
3.3.2JX44B0教学实验系统硬件资源分配
1.地址空间分配以及片选信号定义
表3-1JX44B0地址空间分配表
地址区间
说明
数据宽度(位)
读/写
属性
0x00000000~0x0003fffff
FLASH存储器:
28F320,4M字节;
16
R/W
0x02000000
控制LED跑马灯及键盘扫描:
bit0~3控制键盘扫描;
bit4~7控制跑马灯的显示。
低电平有效。
8
W
0x02000002
读入键盘扫描值:
bit0~3有效,某位为低时,对应列有键按下。
8
R
0x02000004
数码管数据寄存器。
8
W
0x02000006
数码管扫描控制寄存器:
bit0~bit5:
低电平有效。
8
W
0x04000000~0x0400000f
网络接口芯片CS8900A读写
16
R/W
0x06000000~0x06000001
USB接口芯片PDIUSBD12读写
8
R/W
0x08000000~0x080007ff
CF卡MEMORY模式属性寄存器
8/16
R/W
0x08000800~0x080008ff
CF卡MEMORY模式公共寄存器
8/16
R/W
0x08040000~0x080407ff
CF卡I/O模式
8/16
R/W
0x080d0000~0x080d000f
选择IDE命令块寄存器
8/16
R/W
0x080e0000~0x080e000f
选择IDE控制块寄存器
8/16
R/W
0x0a000000
并口控制寄存器:
bit4:
nERRORbit3:
SELECTbit2:
PEbit1:
BUSY
bit0:
nACK
8
W
0x0a000000
并口状态寄存器:
bit3:
nSTROBEbit2:
AUTOFEED
bit1:
nINITbit0:
nSELECT_IN
8
R
0x0a000002
并口数据缓存器
8
R/W
0x0a000004
控制寄存器0:
bit5:
CF卡电源控制;1:
打开;0:
关闭
bit4:
CF卡复位信号;1:
复位;0:
工作模式
bit3:
IOIS16,CF卡IO模式16位指示,MEMORY模式写保护
1:
MEMORY模式可写;
0:
IO模式16位读写,MEMORY模式写保护
bit2:
GPRS睡眠控制。
1:
持续两秒将使GPRS进入睡眠模式;0:
正常工作模式
bit1..0:
串行口切换控制
00:
两串口均直接通过DB9接口接出
01:
串口0直接接出,串口1接到GPRS
10:
串口0接到GPS,串口1直接接出
11:
串口0接到GPS,串口1接到GPRS
8
W
0x0a000006
控制寄存器1
bit4:
IDE_RST,IDE复位信号。
1:
持续25us复位;0:
正常工作模式
bit3:
MOTOR_CTRL,步进电机驱动使能信号。
1:
驱动使能;0:
驱动禁止
bit2:
电机正反转控制。
1:
电机正转;0:
电机反转
bit1..0:
步进电机工作模式控制
00:
Halfstepmode01:
Normaldrivemode其他:
保留
8
W
0x0C000000~0x0C7fffff
SDRAM存储器地址空间:
8M字节
16
R/W
2.外部中断分配
表3-2JX44B0外部中断分配表
中断口
说明
备注
INT0
按键中断测试
INT1
IDE中断
INT2
USB中断
INT3
触摸屏中断
INT4
网口中断
INT5
GPRS中断
JP2的1、2断接,选择L3DATA;2、3断接,选择GPRS中断。
INT6
CF卡中断
JP2的1、2断接,选择L3LOCK;2、3断接,选择CF卡中断。
3.A/D端口分配
表3-3JX44B0A/D端口分配表
A/D口
说明
备注
AIN0
采集触摸屏的X坐标
用于触摸屏
AIN1
采集触摸屏的Y坐标
用于触摸屏
AIN2
A/D采集口测试0
用于A/D测试
AIN3
A/D采集口测试1
用于A/D测试
4.RAM空间组织
存储空间的定制是嵌入式系统开发的一个特色,我们可以根据自己的需要自行规定内存的使用。
在本教学实验系统中,SDRAM地址范围从0x0c000000–0x0c800000共8Mbytes。
在不同的程序中,SDRAM空间范围被分配成不同的区域用于不同的用途,下表是实验测试程序所用的一个默认分配方式,它的代码空间和数据空间分配如下:
表3-4BOOTLOADER程序SDRAM空间分配表
开始地址
结束地址
用途
0x0c000000
0x0c200000
未用
0x0c200000
0x0c700000
程序升级用(大小由待升级的程序决定)
0x0c700000
0x0c710000
Bootloader程序
0x0c710000
0x0c7fff00
栈
表3-5用户程序SDRAM空间分配表
开始地址
结束地址
用途
0x0c000000
0x0c000008
未用
0x0c000008
0x0c700000
功能演示程序
0x0c7ffa00
0x0c7fff00
栈
0x0c7fff00
0x0c800000
中断向量表
5.FLASH空间组织
FLASH地址范围从0x00000000–0x00400000共4Mbytes。
其空间组织如下表:
表3-6FLASH空间分配表
开始地址
结束地址
用途
0x00000000
0x00010000
BOOTLOADER代码
0x00010000
0x00090000
16×16汉字库
0x00090000
0x00A00000
16×8ASCII字库
0x000A0000
0x00100000
IIS录音测试wav文件
0x00100000
0x001A0000
演示程序代码
0x001A0000
0x00400000
uClinux演示程序
3.4JX44B0教学实验系统的软件安装
运行ADTIDE安装光盘中的setup程序,该程序位于光盘setup目录下。
按照提示操作即可。
安装序列号位于ADT1000仿真器的背面。
注意事项:
1.安装路径可以任意指定。
由于GNU编译器不识别包含空格的路径,所以设定安装路径时不能指定包含空格的路径,如:
“C:
\ProgramFiles\adt1000”就是一个非法路径;同时在以后建立的工程,或者文件,以及需要链接的库,所在的完整路径中都不能包含空格,否则将会导致编译失败;
2.安装完毕后,需要重新启动计算机,使一些默认的设置以及环境生效;
3.如果是WinNT、Win2000或WinXP操作系统,安装软件时需要以管理员(Administrator)的身份进行操作,调试时也需要使用者有管理员权限。
3.5JX44B0教学实验系统编程实例
下面通过一个简单的例子来介绍ADTIDE的使用方法,关于ADTIDE的更加详细的使用说明请参考“附录BANSIC和GCC库文件的使用及设置”以及“ADTIDE用户手册”。
3.5.1工程文件的建立
1)安装完ADTIDE并重新启动计算机后,就可以开始创建工程。
运行ADTIDE,出现如下的界面:
图3-6ADTIDE运行界面
2)创建一个新工程;
选择File菜单的New,出现一个新建对话框,如图3-7。
我们可以通过该对话框建立新文件,建立新工程,以及新的工作区,分别对应于该对话框的第1、2、3子框。
此时我们选择第二个页面创建新工程。
在该页面中“TargetDevice”指出了可选的目标连接设备:
SoftSim、ARM7LPT、ARM9LPT,分别表示使用软件仿真模拟、使用并口调试基于ARM7核的目标系统、使用并口调试基于ARM9核的目标系统。
该目标平台使用的CPU是S3C44B0X,它使用ARM7内核,所以此处选择ARM7LPT。
图3-7ADTIDE创建工程的对话框
如上图所示,在“ProjcetName”位置输入工程的名称,在“Location”中修改该工程的位置,最后在“ProjcetType”中选择“EXEC”,表示该工程要生成一个可执行代码。
点击“OK”,按照上图的输入,将在“F:
\Examples\LedDemo”下建立一个叫LedDemo的工程。
注意事项:
1.可以创建一个工程来生成库,以便其他工程可以调用。
要建立一个库可以通过在“ProjectType”中选择“LIB”实现;
2.在创建工程前已经打开了工作区,最下面的选项“Addtocurrentworkspace”将会变成使能状态;如果选择该选项,创建的工程将被加入到当前已经打开的工作区中;
3.与软件安装一样,工程的保存路径不能包含空格。
3)建立一个新的代码文件,输入实验代码并存盘;
选择File菜单的New,并选择第一个子页面,如图3-8。
在右边显示了4种常见的
图3-8ADTIDE创建文件对话框
文件类型:
C源代码、C头文件、汇编代码、文本文件。
如果创建前三种类型的文件,IDE会在输入的文件名“Filename”后分别添加后缀“.c”、“.s”、“.h”,可以在创建文件时加入到工程中,即在“Addtoproject”选项前打“√”,如上图;点击“OK”,并在编辑窗口输入实验代码。
实验代码如下:
voidMain(void){
inti;
for(;;){
*((unsignedchar*)0x02000000)=0xFF;/*关闭LED*/
for(i=100000;i!
=0;i--);/*延时*/
*((unsignedchar*)0x02000000)=0x0F;/*打开LED*/
for(i=100000;i!
=0;i--);/*延时*/
}
}
注意事项:
1.GNU编译工具根据文件名的后缀来选择编译器,并且后缀有大小写区分,对于汇编和C代码的后缀分别是:
“.s”和“.c”;
2.在“Filename”输入栏,无需输入后缀,IDE会根据不同的文件类型自动添加后缀;
3.在创建新文件前,如果已经打开工作区,且工作区中包含多个工程,则可以在“Addtoproject”下拉列表框中选择需要加入的工程;
4.在上述实例代码中,只简单的实现了对发光二极管的控制,实际上在具体的嵌入式系统中,应用程序执行前还有一个初始化过程,用于进行硬件初始化和软件环境的配置,本实验系统的初始化工作已经由Bootloader完成,有关Bootloader的细节请参见“Bootloader编写实验”部分。
4)将输入的文件添加到工程中;
如果在上一步创建文件时选中了“Addtoproject”,可以跳过该步骤,如果当时没有选择该选项,则需要将文件手工添加到工程中,方法如下:
选择菜单“Project”的“Addtoproject”,可以看到两个子菜单,选择“AddfilestoLedDemo”(此处的LedDemo为当前的工程名),并通过文件选择对话框将刚才输入的文件加入到工程中即可。
3.5.2工程环境配置
由于嵌入式系统的可定制性,使得嵌入式系统软件的设置变得比较复杂,通过设置我们可以明确地定义软件的代码组织、数据组织、规定程序入口等。
选择菜单“Project”的“Setting”子菜单,如图3-9。
这是一个包含多页的对话框,我们可以对工程的各个部分进行相应的设置,操作步骤如下:
图3-9ADTIDE工程设置对话框
1)General设置
General页包括调试器的选择以及恢复缺省配置参数功能,如图3-9所示。
在Debuggerdevice下拉式列表中选择调试设备。
目前提供三个版本的调试设备,软件仿真版本(SoftSim)、并口ARM7调试设备ARM7LPT以及并口ARM9调试设备ARM9LPT。
对于具体硬件调试设备还需要进一