小粒な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一本でいけちゃいますね^^