阅读:2287回复:4
GBA开始,步入ARM开发的殿堂(初学者入门篇)
GBA开始,步入ARM开发的殿堂(初学者入门篇)
1.为什么要选用GBA作为嵌入式系统学习平台 我们知道,任天堂公司的GameBoy Advance(简称GBA)一款非常出色的掌上游戏机,该产品占领了全球90%以上的掌上游戏机市场。 抛开游戏功能不说,GBA本身就是一个很好的嵌入式系统开发学习平台,因为GBA采用ARM7 CPU(RISC),拥有240×160 64K色彩色液晶、立体声系统、按键、DMA、通讯口、32K的CPU高速RAM(32Bit)和256K外部RAM(16Bit),还有可外接的游戏卡,可扩充至256Mbit的FLASH ROM以及用于保存进度的128K EEPROM(或FLASH、带电池记忆的SRAM)。 现在,许多开发者都开始学习嵌入式开发,并购买ARM实验板和JTAG仿真器。从成本的角度来看,ARM实验板和JTAG仿真器价格不菲,但是非常适合于拥有长期硬件开发经验的开发者;对于想踏入嵌入式开发殿堂的初学者而言,高昂的硬件价格以及过高的硬件调试门槛,自然成为阻碍学习嵌入式开发的拦路虎,许多初学者正是因为入门无路而中途放弃。从许多硬件工程师的开发经验来看,无论是低级的单片机开发还是高级的嵌入式系统设计,学习重点都应该在软件编程设计上,因为硬件部分都是有成熟的电路,熟悉以后自然水到渠成。因此,对于初学嵌入式开发的开发者而言,GBA也就成为最便宜、最容易入门的硬件平台,GBA可以让初学者把烦人的硬件调试抛开,而将注意力集中到学习软件开发。 开发套件 价格 使用难易程度 备注 ARM实验板+JTAG仿真器 昂贵 困难 适合于拥有长期硬件开发经验的工程师 GBALine+GBA 便宜 容易 适合于嵌入式开发初学者 2.GBA硬件平台的特点 从功能上来看,GBA包括声效处理,彩色LCD显示,以及输入输出等功能。GBA的显示屏幕是240×160像素,可以支持8bit(256色)或16bit(64k色),带有硬件加速能力、支持Alpha渲染(alpha blending)、旋转(rotation)、缩放(scaling)、镶嵌(mosaic)等效果。GBA的屏幕模式有6种,分别为Mode 0 - Mode5。 从使用者的角度来看,GBA涉及人的手,眼,耳等感觉器官;从开发者角度看,它是完整的嵌入式系统。 3. 必备的硬件GBALine GBALINE是为GBA精心设计的一套外设,它完成PC<=>GBA的高速数据交换,以及数据存储,整套的价格也就百来块钱。 关于GBALine,具体的网址:http://www.sudt.com 编译好的二进制代码需要写入GBA卡带才能在真实的硬件平台上运行,这就需要一套下载存储系统帮助完成最后的工作,GBALine套件正是为实现此功能而诞生的。该套件包括GBALine下载线以及可擦写卡带,下载线直接将GBA游戏机与电脑连接,实现高速数据交换;可擦写卡带用于存储编译好的二进制代码。 4. 如何进行嵌入式开发 GBA的硬件和PC完全不一样,究竟该如何学习呢?难道还要去买GBA开发工具,要学GBA的开发语言?许多开发者都会有同样的疑问。不必紧张,只要开发者懂得C语言,会使用ARM C的编译系统,就可以开发GBA程序,使用GBA作为入门级嵌入式学习平台的优点就在此。目前,在Linux下和Windows下都有免费的编译工具,推荐的是DevKitAdv开发包,该开发包使用的是GCC编译器。当然,编译效率比较高的有SDT2.51、ADS1.2、metaware for ARM等等,但是这些都是收费的,对此有兴趣的开发者可以自己研究。源代码编辑工具推荐Visual C++。 5.模拟运行环境 PC端的模拟运行环境可以采用GBA模拟器,例如VisualboyAdvance等。编译好的ELF或BIN文件用模拟器打开就模拟硬件运行ARM程序。 6.硬件组成 6.1. GBA系统 CPU 32位RISC CPU(ARM7TDMI)/16.78MHz 兼容性 集成8位CISC CPU兼容于GBC,但是不能和GBA的CPU同时工作 内存 系统ROM 16K字节(GBC是2K) 工作RAM 32K字节+CPU外部256K字节(2倍周期) VRAM 96K字节 OAM 64位×128 调色板RAM 16位×512(256色用于精灵,256色用于背景) 卡带记忆体 最多32M ROM或闪存+最多512Kbit SRAM或闪存 显示 240×160×RGB点、32,768色模拟显示、带有应将加速,支持旋转(rotation)、缩放(scaling)、Alpha渲染(alpha blending)、镶嵌(mosaic);6种屏幕模式,分别为Mode0-Mode5。 操作 控制键(A、B、L、R、START、SELECT和方向键) 声音 4声道(相应于GBC的声道)+2个CPU直接声道(PCM格式) 通讯 串口通讯(8位/32位、UART、多玩家、多用途、JOY总线) 卡带 同DMG和GBC一样,GBA的卡带使用32针接口,GBA自动检测插入卡带的类型并切换GBC或GBA模式。GB卡带、GB/GBC双重模式卡带、GBC专用卡带、GBA专用卡带都可以在GBA系统上使用。 6.2. GBALine下载线, http://www.sudt.com PC端接口 LPT,自动设置 GBA端接口 SIO,串口通讯 数据传输率 115K Byte/s(随操作系统负荷的变化相应波动,范围:90KB/s~115KB/s) 电源 自供电 6.3. 64Mbit Flash Card Flash容量 64Mbit Flash擦写次数 10万次 NV-SRAM 32K Byte,带电池记忆 7.编译环境设置 DevKitAdv是免费的GCC开发包,目前的最新版本是R5-Beta-3,下面将以此版本为例介绍如何在windows nt、2000、xp平台下使用该开发包。 下载并安装DevKitAdv开发包到C:devkitadv-r5-beta-3目录,进入该目录运行DevKit-Advance-R5-Beta-3.lnk文件,此时会出现蓝色的console控制台窗口。 在c:devkitadv-r5-beta-3目录下有example、testsuite等目录,现在以testsuite目录为例示范如何通过命令行方式编译文件。 在上面的窗口中输入命令: cd testsuite make 之后就开始编译testsuite项目并生成agbmain.bin、agbmain.elf等文件,此时就可以先使用模拟器VisualBoyAdvance运行其中一个文件,或者通过GBALine下载线下载到Flash卡中实际运行。 除了命令行方式之外,也可以自己创建Visual C++的makefile工程文件,这是强烈推荐的方式。 最简单的入门过程就是这样,祝各位玩的开心! |
|
最新喜欢:huoyan |
沙发#
发布于:2004-02-13 15:44
也算是降低入门者的门槛,好文,支持。
|
|
板凳#
发布于:2004-02-17 17:04
一台GBA不知道要多少银子呀
|
|
地板#
发布于:2004-03-22 11:01
GBA560。00带背光的700多
这篇文章好象C51BBS上的啊 |
|
地下室#
发布于:2004-05-14 19:33
我现在就打算搞这东东,但我还想学点“硬”的,不知道谁有GBA硬件的开发经验,如果可以的话,带带我,谢谢!!
|
|