MacでMacPortsのavrホニャララを使ってArduinoに普通のCのコードを転送するメモ
作業メモ。大体下記のエントリを参考に。ここでは差分だけ。
Program Arduino with AVR-GCC
Arduino(Duemilanove)を普通のAVRマイコンとして使う
上の記事をそのままなぞるだけ。ちょっとはまったのがXCodeが提供するコンパイラがllvmになったのと、MacのUSBを示すデバイスファイルがどれか探すのが困った程度。
MacOS X LionにXCode 4.3とMacPorts 2.0.4がインストールされている状況下で、クロスコンパイル環境を整える。
$ sudo port install apple-gcc42 $ sudo port install avr-gcc avr-libc avrdude configure.compiler=apple-gcc-4.2 configure.cxx=g++-apple-4.2
あとは、
/opt/local/share/doc/avr-libc-1.8.0/examples/demo/Makefile
を参考にMakefile書き換えて、コンパイルしてアップロード。
アップロードはavrdudeを使う。USBのデバイスファイルはdmesg見てても見つけられなかっために、
$ ls /dev | grep usb
を眺めて見つけるという原始的手段。自分の環境では/dev/tty.usbmodemfd121というファイル名。
$ avrdude -p m2560 -P /dev/tty.usbmodemfd121 -c avrisp2 -F -u -U flash:w:main.hex
で、アップロード。「Program Arduino with AVR-GCC」のコードを転送すると組付けの超小さいLEDが点滅する。
avrdudeが手持ちのArduinoに対応しているかは /opt/local/etc/avrdude.conf を見る。未対応の場合は、上で紹介したエントリ「Arduino(Duemilanove)を普通のAVRマイコンとして使う」にarduino-IDEの設定を使う方法が書かれている。avr-gccの対応状況は、man avr-gccで確認できる。
自分のArduinoはMEGA 2560で、CPUがATMEGA 2560なので、m2560という設定名が使われる。
コードは↓にあげておいた。
https://github.com/takeshinoda/avr-test