27
Linux で AVR 開発環境を構築する +mbed 小江戸らぐ 2010 年 06 月のオフな集まり KenichiroMATOHARA(@matoken)

Linux でavr開発環境を構築する+mbed(20100612koedo94)

Embed Size (px)

Citation preview

Page 1: Linux でavr開発環境を構築する+mbed(20100612koedo94)

Linux で AVR 開発環境を構築する+mbed

小江戸らぐ 2010 年 06 月のオフな集まりKenichiroMATOHARA(@matoken)

Page 2: Linux でavr開発環境を構築する+mbed(20100612koedo94)

AVR?

● ATMEL 社の 8bit マイコン● 秋月電商で 100 円からある (TTINY2313)● 最近は PIC より元気がある?● Windows では開発環境がいくつか存在する。

– AVR Studio(ATMEL 純正 )– WinAVR– AVR-GCC

Page 3: Linux でavr開発環境を構築する+mbed(20100612koedo94)

Arduino でも利用

Page 4: Linux でavr開発環境を構築する+mbed(20100612koedo94)

Linux での開発環境

● 必須– AVR GCC コンパイラ– SDCC(small device c compiler) コンパイラ– AVRA アセンブラ– avrdude AVR へのライティング

● あると便利– Eclipse + AVR Eclipse 統合開発環境– avrdude-GUI avrdude の GUI

Page 5: Linux でavr開発環境を構築する+mbed(20100612koedo94)

書き込みに必要なハードウェア

● 自作やキットでは \1,000- 以下から、 USB 接続だと \2,000- 位から

– ストロベリーリナックス AT90USB162 \1,890-– デジット USB接続型AVRライタ \2,100-

● 今回は ATMEL 純正の AVR SPK mkII を利用– 秋月で \4,000-– Linux での事例あり– USB 接続– 純正

Page 6: Linux でavr開発環境を構築する+mbed(20100612koedo94)

AVR GCC + AVR Eclipse 環境の構築 1

● パッケージの導入$ sudo aptitude install gcc-avr binutils-avr avr-libc avrdude

● JAVA を Sun のものに設定% sudo update-alternatives --config java

There are 2 choices for the alternative java (providing /usr/bin/java).

Selection Path 優 Status

------------------------------------------------------------

0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode

1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode

* 2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode

Press enter to keep the current choice[*], or type selection number: 2

Page 7: Linux でavr開発環境を構築する+mbed(20100612koedo94)

AVR GCC + AVR Eclipse 環境の構築 2

● ライタ (AVR SPK mkII) をユーザモードで利用できるようにします

以下のファイルを作成% cat /etc/udev/rules.d/45-atmel.rules

{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="0660", GROUP="plugdev", SYMLINK+="avrispmkII"

Page 8: Linux でavr開発環境を構築する+mbed(20100612koedo94)

AVR GCC + AVR Eclipse 環境の構築 3

● AVR Eclipse を Eclipse に導入– [ ヘルプ ]->[ 新規ソフトウェアのインストール ]

Page 9: Linux でavr開発環境を構築する+mbed(20100612koedo94)

● [ 追加 ] ボタンで以下のサイトを追加名前 :avr

ロケーション :http://avr-eclipse.sourceforge.net/updatesite/

● [AVR Eclipse Plugin] が出てくるのでチェックしてインストール。

Page 10: Linux でavr開発環境を構築する+mbed(20100612koedo94)

AVR GCC + AVR Eclipse 環境の構築 4AVR プログラマの登録

● [ ウィンドウ ]->[ 設定 ]->[AVR]->[AVR Dude]● [Programmer configurations]->[ 追加 ]

– ConfigurationName:AVR ISP mkII( 適当に )– ProglammerHardware:Atmel AVR ISP mkII– Override Default Port: usb– [OK]

● usb 重要。ここで嵌りました

Page 11: Linux でavr開発環境を構築する+mbed(20100612koedo94)
Page 12: Linux でavr開発環境を構築する+mbed(20100612koedo94)

プロジェクトの作成

● [ ファイル ]->[ 新規 ]->[ プロジェクト ]● [c プロジェクト ]● [ プロジェクト名 ] を入力● [AVR Cross Target Application]->[ 空のプロジェ

クト ]->[AVR-GCC Toolchain]-[ 次へ ]● [ 次へ ]● [MCU Type] で [ATtiny2313]( 利用する石を選

択 ) を選択● [ 完了 ]

Page 13: Linux でavr開発環境を構築する+mbed(20100612koedo94)
Page 14: Linux でavr開発環境を構築する+mbed(20100612koedo94)
Page 15: Linux でavr開発環境を構築する+mbed(20100612koedo94)

ビルド構成の切り替え

● プロジェクトを右クリック● [ 構成のビルド ]->[ アクティブにする ]

->[Release] をチェック。

● Release にしないと、ビルドしても書き込み時のファイルが一部作成されません。

Page 16: Linux でavr開発環境を構築する+mbed(20100612koedo94)
Page 17: Linux でavr開発環境を構築する+mbed(20100612koedo94)

頑張ってコードを書きます

● とりあえず、 LED を点滅させる例

#include <avr/io.h>int main(void){

volatile long i;PORTB = 0xff;DDRB = 0xff;

while(1) {PINB |= _BV(PB0);for (i = 5000; i > 0; i--);

}

return 0;}

Page 18: Linux でavr開発環境を構築する+mbed(20100612koedo94)

ビルド、書き込み

● すべてビルドボタン (Ctrl + B)

● Upload current project to Atmel Target MPU(Ctrl+Alt+U)

Page 19: Linux でavr開発環境を構築する+mbed(20100612koedo94)

書き込む前に配線

● ライタからは 2x3 の 6Pin の ISP コネクタが伸びている。この pin を対応する AVR の足に接続する。

1:MISO -> 18

2:VCC -> 20

3:CSK -> 19

4:MOSI -> 17

5:RESET -> 1

6:GND -> 10

● AVR の Pin はデータシートで確認ATTiny2313 の場合 > http://www.atmel.com/dyn/resources/prod_documents/doc2543.PDF

Page 20: Linux でavr開発環境を構築する+mbed(20100612koedo94)

書き込んでいる様子

● 本当はちゃんと基板で組むべき…。

Page 21: Linux でavr開発環境を構築する+mbed(20100612koedo94)

動作しているところ

● CR2032 で 3日以上の連続動作を確認。

Page 22: Linux でavr開発環境を構築する+mbed(20100612koedo94)

mbed?

● ARM ベースのマイコンボード● 開発環境はクラウド ( ブラウザベース )● ポートも結構たくさんある (40pin)● 簡単にネットワークにも接続可能● 一寸高い、 (現在評価版が 6000 円くらい。そのうち 10000 円に )

Page 23: Linux でavr開発環境を構築する+mbed(20100612koedo94)

クラウドのデメリット

● サーバが落ちると orz

Page 24: Linux でavr開発環境を構築する+mbed(20100612koedo94)

HelloWorld の実行例

http://www.youtube.com/watch?v=7LPDRcahhUE

Page 25: Linux でavr開発環境を構築する+mbed(20100612koedo94)

ピンアサイン (付属のリファレンスカード便利 )

Page 26: Linux でavr開発環境を構築する+mbed(20100612koedo94)

開発例

● mbed.org にログイン● コンパイラ画面に移行 ( 右上の Compiler)● サンプルコードを探す

– みんなが書いたコードが公開されている● 自分向けに修正してコンパイルボタンを押す● bin ファイルが自動的にダウンロードされる● mbed を USB 接続すると USB メモリとして見え

るので、ダウンロードされたファイルを転送。● リセットボタンを押すと実行される● 自分で書いたプログラムを公開

Page 27: Linux でavr開発環境を構築する+mbed(20100612koedo94)

とりあえず試したこと

● 内蔵 LED 制御● 温度センサの値を取得● RJ-45 コネクタ (@300) を接続して Twitter 投稿

– インポートしたプログラムのユーザ名とパスワードを変更しただけ。

– 実行すると dhcp で ip を取得して Twitter に投稿

● 参考URLmbed を始めましょう! ("Let's get started!" in Japnaese) http://mbed.org/users/nxpfan/notebook/lets_get_started_jp/