分享
 
 
 

从GBA开始,步入ARM开发的殿堂(初学者入门篇)

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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工程文件,这是强烈推荐的方式。

最简单的入门过程就是这样,祝各位玩的开心!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有