小粒なJava VM(Nano VM)の開発環境 avr-gcc-4.3の挑戦 | 組込みとともに

小粒なJava VM(Nano VM)の開発環境 avr-gcc-4.3の挑戦

昨日の段階で、avr-gccが4.2系でないといけないということを日記に書きましたが、どうして4.2系でないといけないのか調べてみました。


V4.3系でasuroをビルドした場合の結果です↓

------------------------------

c:/winavr-20080610/bin/../lib/gcc/avr/4.3.0/../../../../avr/bin/ld.exe: region t
ext is full
(NanoVM.elf section .text)
------------------------------

単純にROM領域が足りないってことじゃないですかぁ!!


一応マップファイルでどのくらい足りてないかを確認

CLDFLAGS += -Wl,-Map=Memory.map,--gc-sections -T$(ROOT_DIR)/vm/build/ldscripts/avr4_keep.x -mmcu=$(DEVICE)


V4.2系のときは下の構造でした

-------------------------------

NanoVM.elf :
section size addr
.text 7308 0
.trampolines 0 7308
.bss 816 8388704
.eeprom 512 8454144
.stab 888 0
.stabstr 95 0
Total 9619

-------------------------------

V4.3では(mapファイルから抽出した情報を整理したもの)

-------------------------------

NanoVM.elf :
section size addr
.text 8284 0

-------------------------------

あと284バイトに泣きですねあせる

環境の違いでROMサイズが1k程度も増えるとは・・・


対策としては

1.Nano VMを自力で軽量化する

2.ROMサイズを大きくする

3.Nano VMのバージョンアップに期待(汗


普通は2ですね^^;

ってことで他のサンプル環境をビルドして試してみました。

他の環境でもROMサイズに問題なければ大丈夫ですね!(unix除く)

なるほど!これで開発環境をもともと使ってたV4.3一本でいけちゃいますね^^