2013年4月28日日曜日

avr-gcc/g++ の link で flash イメージがやたら大きくなる

自分でコンパイルしてビルドする場合,イメージがやたら大きくてアップロードでエラーが出ていた.
リンカがフラッシュ書き込みイメージに不必要な部分をふくめないようコンパイラには
--ffunction-sections --fdata-sections
オブションを,リンカ avr-gcc/g++ には
--gc-sections
を-Wl,-Map,avrfreertos.map,--gc-sections のように入れる必要があるようだ.
Eclipse の auto makefile でビルドするときは Properties/C/C++ Build/Tool Settings の AVR C++ Linker/General で Map filename の最後に , をつけてムリヤリ入れる.

Arduino IDE でコンパイル/リンクメッセージの表示をさせて,同じにすればいいようだ.