« Mac OS X で DevKitAdvance 相当をソースからビルドしてみる | Main | Mac OS X で DevKitAdvance 相当をソースからビルドしてみる (3) »

Mac OS X で DevKitAdvance 相当をソースからビルドしてみる (2)

できたできた。
http://www.gbadev.org/
でリンクされている C++ ソースのうち, ColorDemo をビルドしてみることにする。
http://www.gbadev.org/sources_cd.html
http://www.gbadev.org/download.php?section=demos&filename=colorDemo.zip

まず, #include のパス区切り文字を「¥」から「/」に変えてコンパイルは通るようになった。

自前で crt0.S や, lnkscript を用意しようとして,ハマってしまったが,
付属の DOS BAT ファイルを見習って,素直に gcc で普通にリンクしたらエミュレータで動作した。

気を良くして, optusb で実機へ転送したら,動かない(転送されているみたいだが,何も起こらない)。
そういえば, 以前 DevKit Advance のリンカースクリプトをみた時, FlashROM に転送するのか, ケーブル boot するのかをリンク時に指示するためのダミーの変数 __gba_multiboot があったことを思い出した。

/usr/local/apps/cross-arm-agb-elf/arm-agb-elf/lib/ldscripts/armelf_agb.* より
(略)
__memmap_ewram_start = 0x02000000;
__memmap_ewram_end = 0x02040000;
__memmap_iwram_start = 0x03000000;
__memmap_iwram_end = 0x03008000;
__memmap_rom_start = 0x08000000;
SECTIONS
{
/*** read-only sections ***/
. = DEFINED(__gba_multiboot) ? __memmap_ewram_start : __memmap_rom_start ;
.text :
(略)

そこで, int のグローバル変数として
int __gba_multiboot = 123456789;
を定義してコンパイルし,再リンクしたところ見事実機でも動作。
よしよし。
<Color Demo のビルド〜エミュレータでの実行〜optusbを使った実機での実行>
export PATH=/usr/local/apps/cross-arm-agb-elf/bin:$PATH
arm-agb-elf-gcc -O2 colorDemo.cpp -o colorDemo.elf
arm-agb-elf-objcopy -v -O binary colorDemo.elf colorDemo.gba

open colorDemo.gba

optusb colorDemo.gba

|

« Mac OS X で DevKitAdvance 相当をソースからビルドしてみる | Main | Mac OS X で DevKitAdvance 相当をソースからビルドしてみる (3) »

Comments

The comments to this entry are closed.

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/11543/70891

Listed below are links to weblogs that reference Mac OS X で DevKitAdvance 相当をソースからビルドしてみる (2):

« Mac OS X で DevKitAdvance 相当をソースからビルドしてみる | Main | Mac OS X で DevKitAdvance 相当をソースからビルドしてみる (3) »