Eclipse+devkitPor搭个GBA开发环境

捡起Arduino的同时也捡起了GBA。。

于是又在伟大的Eclipse上搭开发环境~~

首先需要

devkitPro http://devkitpro.org

带CDT的Eclipse http://www.eclipse.org/

GNU ARM插件 http://gnuarmeclipse.livius.net/blog/

devkitPro安装:

过程就不用说了,自动安装的。我装在D盘根目录下。

devkitPro安装完后把d:\devkitPro\devkitARM\bin添加到环境变量Path里。

不加的话就得在Eclipse里设置一下Path。

GNU ARM插件:

1.help->install new software 

2.添加 http://gnuarmeclipse.sourceforge.net/updates

3.选择 GNU ARM C/C++ Development Support

4.装完重启Eclipse

项目设置:

1.File->new->c++ project

2.选ARM Cross Target Applicatio->Empty Project

3.Toolchains:下面选devkitPro然后点Next,别点Finish哟

4.把Configurations下的Debug前的勾去掉。

(我试过VBA模拟器不认编译出来的ELF,我很努力的让他认了,GDB连接也连上了,也还是不能在线调试)

5.点Advanced settings

5.1.设置C/C++ Build->Settings

5.1.1在Target Processor下把Processor设置为ARM7DTMI。把Thumb跟Thumb interwork都勾上。你可能会发现选项里有个ARM7DTMI-S是支持浮点的型号,任天堂真抠门,换个型号就好玩多了。

5.1.2在C Compiler跟C++ Compiler下的Optimization下的Other optimization flags里添加-fomit-frame-pointer -ffast-math。这只是个优化选项,加不加都不影响编译,devkitPro的makefile里加了,于是我也跟着加了。

5.1.3.先择C++ Linker,把General下的-nostartfiles前的勾去掉。然后把-specs=gba.specs添加到Miscellaneous下的Other flags里。这是个连接脚本,告诉链接程序具体的内存地址跟分配位置。如果你想程序通过multiBoot传到GBA上运行而非烧录卡就选gba_mb.specs

5.1.4.设置GUN Create Flash Image的Command line pattern为${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${ProjName}.gba ${INPUTS}作用就是编译好的文件后缀改成.gba,我实在找不到更好的方法了。设置GUN Create Flash Image下的Output的输出格式为binary。

5.2.C/C++ General->Paths and Symbols设置头文件跟库了,其实在上面也能设置,不过下面那里设置会比较方便一点。

5.2.1在Includes下点Add,找到devkitPro\libgba\include,把两个add to all选项也勾上会把另外的配置跟语言也同时设置好。
5.2.2在Libraries->add,填gba。库的文件名是libgba.a,链接的时候填gba就会找到这个。

5.2.3在Library Paths->add,找到devkitPro\libgba\lib。(告诉链接器库的所在目录)

6.设置完后点Finish就OK了。


给个简单的例子

[cpp]  view plain  copy
  1. #include   
  2.   
  3. int main(void) {  
  4.     irqInit();  
  5.     irqEnable(IRQ_VBLANK);  
  6.     consoleDemoInit();  
  7.     iprintf("FUCK ME!");  
  8.     while (1) {  
  9.         VBlankIntrWait();  
  10.     }  
  11. }  

最后编译后的GBA文件可能烧录卡不认,这时你在devkitPro里找到gbafix.exe,把ROM拖上去就可以了。原理很简单,ROM里头里会存着这个ROM的CRC,这个FIX工具就是重新把你算好。


转自:http://blog.csdn.net/eszeta/article/details/10762879


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
devkitadv GBA开发工具 任天堂GBA官方开发包安装及开发环境的设置 Romandoo 解压安装包至某目录后,安照以下步骤操作: 一: 安装CYGWIN工具 运行CYGWIN_SETUP目录下setup.exe进行cygwin的安装 选INSTALL FROM LOCAL DIRECTORY 在SELECT INSTALL ROOT diretory 选择安装目录 next> 再NEXT 在弹出的窗口中,在Perv Curr Exp 中选Curr 点开列表栏中各项, 选 base 的 cygwin ash bash login sh-utils 选 devel 的 autoconf automake binutils gcc gdb make 选 shell下的 ash bash sh-utils 置NEW栏显示版本号,表示将其安装,而其它的工具选为skip表示跳过不安装 最后选next开始安装! (注意,我为了节省空间,我删除了许多不重要的东西,其实cygwin下有高达几百m的各式各样的工具,今后你可根据自已需要到网上下载安装去) 二、安装任天堂官方开发包 在 AGB LIBRARY3.0中点 agbsetup1安装 注意,一定要安装到c:\agb目录下,因为这是官方的默认目录,有一些例子与这个目录关连了 所以最好选这个目录 ,不然可能编不过去。否则自已设置会麻烦一点的。 修改c:\autoexec.bat 文件增加如下代码行 SET AGBDIR=C:\AGB 三、安装CYGWIN补丁 (由于刚安装完的cygwin版本并不支持arm cpu,所以需要将某些程序、库覆盖成arm相关的程序库) 将arm-thumb-elf连目录一起copy到安装好的cygwin目录的\lib\gcc-lib下 将bin-patch目录下的所有文件copy到cygwin目录的bin下面覆盖 将include patch目录下文件copy到cygwin目录的include下面 四:编绎例子程序 OK!前三步已经将我们的开发环境构好了!! 现在我们可以正式进行开发了,至于开发技术吗,在agb目录的doc下应有尽有,大家可以好好研究一下子。 下面我就介绍如何编绎代码了。 编绎也是很简单的一件事情了。 官方资料里有许多的例子,和两个游戏demo源代码。 我们就拿里面的一个具有代表性的例子编绎吧 functional_sample 在编绎之前,你必须重起你的机器,因为刚才我们修改了 autoexec.bat 而设置此时需要生效才行。(当然也有其它办法不必重起就生效,说来话长了) 好,重起之后,我们运行刚才装好的cygwin程序 进入了一个控制台窗口 这个控制台shell,命令行支持的是类式linux的指令,你可能不太了解,不过你不用担心呵 我们不需要记太多的命令指令,很简单的几句这可以了 就当是dos命令,只不过命令名称变了而已 下面是几个对应 ls 相当于dos下的dir指令 cd 相当于dos下的cd 指令 你也就需要这两个指令就搞定了,呵 行,那么我们正式开始: cd c: cd agb cd src cd samples cd functional_sample //以上几步作的就是进入c:\agb\src\samples\functional_sample目录下,和dos一样吧,呵 然后注意了,忘了提醒有关functional_sample这个例子的一个问题, 就是这个例子源代码share.c 中定义了 vu16 Cont; vu16 Trg; 但是在share.h中又申明为 extern u16 Cont; extern u16 Trg; 该编绎器检查认为是错误,所以你要改一下 将share.h文件里改成 extern vu16 Cont; extern vu16 Trg; 否则编绎报错。 好,改好share.h之后,我们输入 make 回车! 好,你可以看到现在开始正式编绎了,太爽了,官方的例子在被编绎,呵 过了几十秒编绎完成之后,就会生成了bin与elf文件 你用visualBoyAdvance打开bin文件看一看是 什么例子,哇,原来是个非常强的GBA各个功能展示,有alpha混合,有图层显示 有马塞可显示,有放大缩小,有精灵移动,旋转,字体显示,声音,有地图显示,有窗口模式。 但是需要注意的一个问题:::::: 如果你想使用gcc里面的库函数 需要在makefile里面修改一下 CFLAGS 中加入 -I"C:\cygwin\include" LDFLAGS 中加入 -lm 否则你将无法使用sin,cos,sqrt等有用的库函数 编完这个,你可以再去试试看
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值