Arduinoのコードサイズ削減
このページのソースです。
!Arduino-lite Arduinoと同じようなコードをpure cでコンパイルして、バイナリサイズを削減するとのこと。 -*コード>https://code.google.com/p/arduino-lite/* -*リファレンス>http://www.robopeak.net/blog/?p=185* !Arduino-lite をOS X で動かす Windows環境決め打ちになってるので、CrossPack向けにパスを変更する。 scripts/mak_avr_def.infを変更。 {{{ ifndef WINAVR_HOME WINAVR_HOME := /usr/local/CrossPack-AVR endif REMOVE := rm -f MV := mv -f MKDIR := mkdir -p SED := sed FIND := find DIRNAME := dirname #we use the modified avrdude version provided by Arduino AVRDUDE := avrdude }}} とか。 手持ちのライタはAVRISP mk2なので、 {{{ AVRDUDE_PROGRAMMER := avrisp2 BURNING_PROGRAMMER := avrisp2 BURNING_PORT = usb }}} とか。 !動かしてみる attiny2313、8MHzで動かしてみよう。スケッチのMakefileを {{{ MCU := attiny2313 F_CPU := 8000000 }}} として、下記のようなスケッチをビルド。 {{{ #include "arduino_lit.h" #define ledPin 0 void setup() { PIN_MODE(ledPin,OUTPUT); } void loop() { DIGITAL_WRITE(ledPin,HIGH); sleep(100); DIGITAL_WRITE(ledPin,LOW); sleep(100); } int main() { init(); setup(); while(1) loop(); } }}} {{{ make make fuse make burn }}} で、AVRISPmk2からのburnに成功。 まあ、こんなスケッチではarduino-lite化する意味がほとんどないのだが。。 !注意事項 -DIGITAL_READの返答はHIGH/LOWではなく、0/NonZero -タイマ割り込みはなんだか誰かに使われてる様子