QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1557|回复: 0

从GBA开始,步入ARM开发的殿堂(转发)

[复制链接]
发表于 2005-7-8 13:36:46 | 显示全部楼层 |阅读模式
从GBA开始,步入ARM开发的殿堂(硬件篇~数据线)
主页:http://www.gbaline.com/
日期:2004-3-18



本系列文章的读者对象是:
A).对硬件一窍不通的纯软件开发人员。(IT行业中大部分研发人员都属于这支队伍,包括许多即将步入此行业的毕业生或立志于IT事业的有志者)。
B).对硬件稍微有些了解,但是对于硬件设计、调试极为头痛,却又想学习嵌入式开发的读者。
C).急于迈过硬件这道门槛,尽快熟悉ARM体系结构的软件高手。

通过对目标读者群的划分,就应该知道为什么对上述入门者要推荐GBA这个平台,而不采用专业的ARM开发板。因为,"专业"一词本身就意味着进入门槛高,学习难度大。当然,专门做硬件开发,或者对硬件比较熟悉,经验较为丰富的开发者则另当别论,暂不在此讨论之列。


至于,有些读者认为在GBA上移植、开发操作系统难度大,认为不应当使用ARM作为入门平台。对于想入门的绝大部分读者来说,刚接触硬件就要研究、开发操作系统,这恐怕不太现实,同时也违反了由简到难这一循序渐进的学习过程。


综上所述,本系列文章的主要关键词是"入门"。


接下来就言规正传,开始这一次的主题《硬件篇~数据线》,在这里将教你如何连接制作一条数据线(侧重于电路连接,需要一定的电路知识),此条DIY的数据线最高传输速率约为100KB/s,录制64Mbits可擦写卡时间约1分钟22秒,支持各种兼容卡带。


2.关于数据线
众所周知,电脑已经步入我们的生活,正逐渐成为这个时代的必需品。我们大部分工作都要使用电脑,至于嵌入式开发那就更不用说了。如何将你的工作成果放到GBA上检验呢?在电脑上用软件模拟?可以,但是并不能完全模拟出硬件的真实环境,还是需要到真正的硬件环境上运行测试。


在这个过程中,数据线就派上用场了,可以将工作成果下载到GBA的存储单元中,可以实现PC<-->GBA的双向数据交换,当然也可以实现远程调试。


有人会疑惑,数据线的效用大家都清楚,是用来交换数据的,那么实现原理呢?为什么数据线能实现交换,这种数据线跟手机以及其他电脑外设的数据线差别在哪里呢?
我们都知道,大多数的电子设备一般都会提供电气接口,用于交换数据。但是不同的电子设备的接口之间的电气参数一般是不相同的,因此数据线就应运而生,成为适应双方电气参数,传输协议的物理通道,简而言之就是一种接口转换工具。对于我们要使用的GBA来说,PC与GBA之间可以有不同的方式进行连接。GBA只有一个串行传输口(SIO),而PC则拥有类型不同的接口(并口、串口、USB、1394等等),GBA-PC之间是一对多的关系,我们可以按照需要设计并实现不同电气接口的数据线。例如:SIO-并口,SIO-串口,SIO-USB,SIO-1394等等。设计时可以依据数据传输率,经济性等参考因素。其中SIO-串口最为简单,但是速度也最慢,国外已经有人介绍过此类数据线的原理。而SIO-USB和SIO-1394技术又较为复杂,因此在这里仅介绍SIO-并口数据线的原理以及实现。


3.自己动手DIY GBALine数据线
在介绍SIO-并口数据线之前不得不提到GBALine,因为下面将以GBALine作为参考对象。


GBALine是SIO-并口结构的数据线,目前2.0版本的传输率达到了150KB/s,1.0版本的也有115KB/s,是真正意义上的高速数据线。
下面是GBALine的原理、接线图:

说明如下:
本电路采用的是ATMEL公司的AT90S1200-12芯片,整个电路是由GBA供电。电脑端为DB25接头,GBA端为SIO接头。其中,GBA的SIO接头如下图所示:





连线时引脚对应关系为:
1.GBA-SIO端口与AT90S1200-12芯片的引脚关系为:
SIO 1-6脚分别对应AT90S1200-12的20、2、3、6、7、10脚。


2.DB25接头与AT90S1200-12芯片的引脚关系为:
DB25 16、17、11、15、13、12、10、2、3、4、5共11条引脚对应AT90S1200-12的8、9、11、12、13、14、15、16、17、18、19引脚。


3. XTAL2-XTAL1接晶振的两脚,不分方向。
(发光二极管串连一个电阻之后连接在DB25的第9脚,用于显示电路是否通电,此部分是可选部件一般不需要)


4.关于数据线的软件
因为此篇文章是侧重于电路连接,因此暂时不对电路实现原理以及软件部分做详细讲解。


AT90S1200-12的firmware将会预先录制在芯片中,PC端的软件则使用Vigor Studio,此条DIY的数据线最高传输速率约为100KB/s,可以对GBALine可擦写卡进行读写,同时也兼容自行改制的可擦写卡。


5. 实物参考图片



6. DIY组件的提供
为了便于读者DIY数据线,我们将提供整套散件,不含万用板PCB,可以在当地买到,或者不用PCB,导线可以直接焊在IC上。
1. DB25接头(LPT头)、外壳
2. GBA-SIO线
3. AT90S1200-12芯片(含预先录制的程序)
4. 相关电容、电阻、晶振
5. 配套Vigor Studio软件(请到http://www.gbaline.com/自行下载)

GBA开发所用的C语言编译器主要有两种,一种是免费的gcc,一种是Arm公司提供的ArmSDT.
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工程文件,这是强烈推荐的方式。


这里的gcc当然不是简单的linux下的gcc,而是Arm Gcc.简单地说就是把我们平时常见的gcc改造成生成ARM CPU代码的gcc.你可能会问难道我们要使用linux操作系统了吗?其实我们还是在windows下做GBA开发,虽然gcc主要是在linux下的东西,但是我们也可以从cygwin(在windows下模拟UNIX的工具)中得到在windows下运行的gcc.你可以根据这个cygwin下的gcc,自己去配置Arm Gcc,也可以直接去下载个配置好了的Arm Gcc.比如DevKitAdv,你可以到http://www.gbadev.org 去下载这个软件.DevKitAdv大概10多MB.有了它,你用不着去找什么cygwin(200-300MB)和配置什么Arm Gcc了,DevKitAdv已经帮你做好了一切,你只需安装它就OK了.
整套DIY散件售价28元整。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 02:06 , Processed in 0.038460 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表