Da Vinci 32U with Arduino BootloaderにGentooで書き込み
Gentooでダ・ヴィンチ 32Uマイコンボードに書き込みを行う方法です.
# emerge -avq icedtea crossdev layman
icedtea :
Arduino IDEは, Javaで書かれているので好きなJavaプラットフォームを入れます.
crossdev, layman :
ツールチェイン構成用.
インストールが終わったら, 以下のように設定を行います.
# echo "source /var/lib/layman/make.conf" >> /etc/portage/make.conf # mkdir -pv /usr/local/portage
以下のようにツールチェインを作成します.
# USE="-openmp" crossdev -t avr -s4 -S --without-headers
ツールチェインの作成には,少し時間がかかるかもしれないので気長に待ちます.
もし, 以下のようなエラーメッセージが出た場合,
please convert /etc/portage/package.use to a directory
次のようにします.
# mv /etc/portage/package.use /etc/portage/use_backup # rm /etc/portage/package.use # mkdir /etc/portage/package.use
修正が終わったら,もう一度ツールチェインの作成コマンドを入力します.
2. カーネルの設定
みんな大好きカーネルコンフィグレーションを行います.
一応, ttyとuucpをユーザに追加します.
# gpasswd -a YOUR_USERNAME tty # gpasswd -a YOUR_USERNAME uucp
カーネルの設定画面を開きます.
# cd /usr/src/linux # make menuconfig
以下の2つをモジュールに設定します.
Device Drivers -> USB support -> USB Serial Converter support -> [M] USB FTDI Single Port Serial Driver Device Drivers -> USB support -> [M] USB Modem (CDC ACM) support
設定をインストールします.
# make && make modules && make modules_install && modprobe ftdi_sio
ここまで終わったら, ダ・ヴィンチをPCに接続します.
dmesgで認識しているか確認できたら次に進みます.
3. Arduino IDEのインストール
Arduino IDEのインストールをします.
# emerge -avq arduino
起動するか確認してください.
4. Da Vinci 32Uのドライバ設定
初期状態では, Arduino IDEのメニュー -> ツール -> マイコンボードにDa Vinci 32Uはないと思うので設定ファイルを書き追加します.
# cd /usr/share/arduino/hardware/arduino
お好きなエディタでboards.txtを開き末尾に以下を追加します.
davinci.name=Da Vinci 32U davinci.upload.protocol=avr109 davinci.upload.maximum_size=28672 davinci.upload.speed=57600 davinci.upload.disable_flushing=true davinci.bootloader.low_fuses=0xff davinci.bootloader.high_fuses=0xd8 davinci.bootloader.extended_fuses=0xcb davinci.bootloader.path=caterina davinci.bootloader.file=davinci.hex davinci.bootloader.unlock_bits=0x3F davinci.bootloader.lock_bits=0x2F davinci.build.mcu=atmega32u4 davinci.build.f_cpu=16000000L davinci.build.vid=0x1774 davinci.build.pid=0x8032 davinci.build.core=arduino davinci.build.variant=leonardo
Arduino IDEを起動し, Da Vinci 32Uがあるのを確認し選択します.
5. Da Vinci 32Uへの書き込み
スケッチに以下のLEDをチカチカさせるプログラムを書き込み, 確認を行います.
int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(100); digitalWrite(led, LOW); delay(100); }
もし, 以下のようなエラーメッセージが出た場合,
/usr/libexec/gcc/avr/ld: cannot open linker script file ldscripts/avr5.x: No such file or directory
次のコマンドを入力.
# ln -s /usr/lib/binutils/avr/YOUR_VERSION/ldscripts /usr/avr/lib/ldscripts
Da Vinci 32Uに書き込み, LEDが高速でチカチカしたら成功です.
参考文献
Arduino Playground - Gentoo
GentooでARM(CortexA8)クロスコンパイル環境の構築 » 旧・LGA128のメモ帳
Strawberry Linux ダ・ヴィンチ32U with Arduino Bootloader のメモ | 趣味関係のメモ帳