linux でavr開発環境を構築する+mbed(20100612koedo94)
TRANSCRIPT
Linux で AVR 開発環境を構築する+mbed
小江戸らぐ 2010 年 06 月のオフな集まりKenichiroMATOHARA(@matoken)
AVR?
● ATMEL 社の 8bit マイコン● 秋月電商で 100 円からある (TTINY2313)● 最近は PIC より元気がある?● Windows では開発環境がいくつか存在する。
– AVR Studio(ATMEL 純正 )– WinAVR– AVR-GCC
Arduino でも利用
Linux での開発環境
● 必須– AVR GCC コンパイラ– SDCC(small device c compiler) コンパイラ– AVRA アセンブラ– avrdude AVR へのライティング
● あると便利– Eclipse + AVR Eclipse 統合開発環境– avrdude-GUI avrdude の GUI
書き込みに必要なハードウェア
● 自作やキットでは \1,000- 以下から、 USB 接続だと \2,000- 位から
– ストロベリーリナックス AT90USB162 \1,890-– デジット USB接続型AVRライタ \2,100-
● 今回は ATMEL 純正の AVR SPK mkII を利用– 秋月で \4,000-– Linux での事例あり– USB 接続– 純正
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
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"
AVR GCC + AVR Eclipse 環境の構築 3
● AVR Eclipse を Eclipse に導入– [ ヘルプ ]->[ 新規ソフトウェアのインストール ]
● [ 追加 ] ボタンで以下のサイトを追加名前 :avr
ロケーション :http://avr-eclipse.sourceforge.net/updatesite/
● [AVR Eclipse Plugin] が出てくるのでチェックしてインストール。
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 重要。ここで嵌りました
プロジェクトの作成
● [ ファイル ]->[ 新規 ]->[ プロジェクト ]● [c プロジェクト ]● [ プロジェクト名 ] を入力● [AVR Cross Target Application]->[ 空のプロジェ
クト ]->[AVR-GCC Toolchain]-[ 次へ ]● [ 次へ ]● [MCU Type] で [ATtiny2313]( 利用する石を選
択 ) を選択● [ 完了 ]
ビルド構成の切り替え
● プロジェクトを右クリック● [ 構成のビルド ]->[ アクティブにする ]
->[Release] をチェック。
● Release にしないと、ビルドしても書き込み時のファイルが一部作成されません。
頑張ってコードを書きます
● とりあえず、 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;}
ビルド、書き込み
● すべてビルドボタン (Ctrl + B)
● Upload current project to Atmel Target MPU(Ctrl+Alt+U)
書き込む前に配線
● ライタからは 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
書き込んでいる様子
● 本当はちゃんと基板で組むべき…。
動作しているところ
● CR2032 で 3日以上の連続動作を確認。
mbed?
● ARM ベースのマイコンボード● 開発環境はクラウド ( ブラウザベース )● ポートも結構たくさんある (40pin)● 簡単にネットワークにも接続可能● 一寸高い、 (現在評価版が 6000 円くらい。そのうち 10000 円に )
クラウドのデメリット
● サーバが落ちると orz
HelloWorld の実行例
http://www.youtube.com/watch?v=7LPDRcahhUE
ピンアサイン (付属のリファレンスカード便利 )
開発例
● mbed.org にログイン● コンパイラ画面に移行 ( 右上の Compiler)● サンプルコードを探す
– みんなが書いたコードが公開されている● 自分向けに修正してコンパイルボタンを押す● bin ファイルが自動的にダウンロードされる● mbed を USB 接続すると USB メモリとして見え
るので、ダウンロードされたファイルを転送。● リセットボタンを押すと実行される● 自分で書いたプログラムを公開
とりあえず試したこと
● 内蔵 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/