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