投稿

8月, 2015の投稿を表示しています

AVR開発環境設定 for Ubuntu 15.04 (Part2)

前回の設定だけではrootユーザでないと、AVRに書き込めないので makeで自動処理できなくて困る。 なので、Kenichiro MATOHARAさんの スライド に書いてあったように、udevの設定を行う。 しかし、うごかない。なんで??よーく見たら、 == と = をきちんと見てなかったみたい。で、直してみてもう一度・・・・ やっぱり、認識せんぞ?? ん??何か変だなこの設定ファイル・・・ お、間違いを発見!!  先頭のATTRが抜け落ち てますぜ。 で、修正したのがこれです↓ /etc/udev/rules.d/50-avr.rules ATTR{idVendor}=="03eb",ATTR{idProduct}=="2104",MODE="0660",GROUP="plugdev",SYMLINK+="avrisp_mk2" この設定で、AVRISPmkIIを接続したら、上手く認識したみたい。。。 デバイスファイルを見てみる $ ls /dev/avr* /dev/avrisp_mk2 ちなみに、lsusbコマンドで、idVendorとidProductは確認できるよ。 あとの細かいことは、 SUSE Linuxのページ に詳しく書いてある。 適当に、Makefileを作ってみる。 Makefile PROGRAM = hello F_CPU = 1000000UL CC = avr-gcc CFLAGS = -g -O2 -mmcu=attiny2313 -std=c99 OBJCP = avr-objcopy OFLAGS = -j .text -j .data -O ihex AVRDUDE = avrdude AFLAGS = -e -c avrisp2 -p t2313 .SUFFIXES: .c .elf .PHONY: clean install $(PROGRAM).hex: $(PROGRAM).elf $(OBJCP) $(OFLAGS) $< $@ .c.elf: $(CC) $(CFLAGS) -o $@ -DF_CPU=$(F_CPU) $< install: $(PR

AVR開発環境設定 for Ubuntu 15.04

久々にAVRで電子工作をしたくなった・・・・ 前はAVR Studioを使ってたけど、最近はWindowsよりUbuntuばっかり使ってるのでLinuxで環境設定するのだ。 で、世の中の人に聞いてみると・・・ Kenichiro MATOHARAさんが、 スライドで紹介 してくれていました。感謝! 必要な環境として コンパイル環境 AVR書き込み環境 の2つを整える必要がある。 コンパイル環境 コンパイルするにはコンパイラとして gcc-avr、プログラミングツールに binutils-avr、ライブラリに avr-libcが必要なようだ。 コンパイル環境のインストール # apt-get install gcc-avr binutils-avr avr-libc AVR書き込み環境 AVRに実際に書き込むためのプログラムには avrdudeを使いましょうって事ですね。 ここでは、書込み器には AVRISPmkII を使うよ。 AVR書き込み環境のインストール # apt-get install avrdude サンプル作成 ひとまず、そこらにあったATtiny2313で作ることにする。 hello.c /* LED点滅プログラム */ #include <util/delay.h> #include <avr/io.h> int main(void) { DDRB = _BV(DDB0); for(;;){ PINB = _BV(PINB0); _delay_ms(500); } return 0; } コンパイル & リンク ATtiny2312用にコンパイル & リンク $ avr-gcc -g -O2 -mmcu=attiny2313 -DF_CPU=1000000UL hello.c 今回は ATtiny2313を使ったので、 オプションの -mmcu に attiny2313 を指定する。 後は、delay.hを利用するので、 -D オプションで、 F_CPU を 1MHz に設定し、 最適化 は程々の -O2 にする。ちなみに-