AVRライタの製作1
この前の記事でも書きましたが、Mac OS Xで使えるAVRライタが無いかと探していると、Morosanさんの「AVRのためのPIC再入門」というのがあったので作ってみました。

まず、秋月のプログラマでこいつのPICに制御プログラムを書き込み、部品を接続。
最後に、ターゲットAVRのISPに接続します。
avrdudeは上のページにあるようにpagesizeを変更したものを使いました。変更しないでもやってみましたが、やっぱり上手くいかない模様。
USBシリアルと電源を接続したら、
と出れば成功。 Device signatureにはデバイスの固有IDが出ます。
あとはこのままXCodeからターゲットのProgramを選んでビルドを押せばOK。
自動で再ビルド(コンパイル・リンク)した後、AVRにプログラムがダウンロードされます。
一回慣れてしまうと超便利!!
ダウンロード速度も秋月のものに比べて断然早いです。ものの数秒で完了します。

まず、秋月のプログラマでこいつのPICに制御プログラムを書き込み、部品を接続。
最後に、ターゲットAVRのISPに接続します。
avrdudeは上のページにあるようにpagesizeを変更したものを使いました。変更しないでもやってみましたが、やっぱり上手くいかない模様。
USBシリアルと電源を接続したら、
$ avrdude -p at90s2313 -P /dev/cu.usbserial-* -c avrispv2な感じのコマンドを打って、(-p にはデバイス名、 -Pにはポート、 -cにはプログラマの種類を設定します。Morosanさんのはavrispv2です。)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.05s
avrdude: Device signature = 0x*
avrdude: safemode: Fuses OK
avrdude done. Thank you.
と出れば成功。 Device signatureにはデバイスの固有IDが出ます。
あとはこのままXCodeからターゲットのProgramを選んでビルドを押せばOK。
自動で再ビルド(コンパイル・リンク)した後、AVRにプログラムがダウンロードされます。
一回慣れてしまうと超便利!!
ダウンロード速度も秋月のものに比べて断然早いです。ものの数秒で完了します。
XCode で AVR 開発
実はOSX-AVRというのがあって、これ一発でAVR環境が簡単に構築できるという優れモノ。
特に、Xcode用のAVRのテンプレートが入っているのでこれをインストールすると、XCodeでそのまま編集・ビルドができるようになります。
ソースの編集は好みのテキストエディタがあればそれで十分なんですが、XCodeだとコードの補完や予測変換?をしてくれるので結構便利。
インストール方法はイメージをマウントして、そのまま普通にインストーラでインストールすれば良いです。もちろんバイナリなのでMacPortsのようにコンパイルする必要もないです。
もし、すでにavr-gccなんかをインストールしてる人はカスタマイズでチェックを外せばOK。
XCodeでプロジェクトを作るときは新規プロジェクトから「Basic AVR C Project」を選びます。
そうすると、すでにプロジェクト名.cというのがあるのでこのままビルドを押せば.hexを作ってくれます。.hexが生成されるのはMakefileと同じフォルダです。
ただし、これだけではデバイスの設定などができていないのでMakefileをダブルクリックして編集ウインドウを出し、必要なところを変えていきます。
説明が書いてあるのでそれ通りにやっていけば大丈夫。
一応必要そうなところだけ書いておくと、MCU、F_CPUにデバイス名とクロック周波数を入れるくらいです。
SRCというところにはコンパイル&リンクするソース.cの名前。
プロジェクトに新しくソースファイル.cを追加したときにはここにも書いておく必要があります。本当は自動でやってくれたりもするのかもしれませんがやり方が分からないので^^;
初期設定では$(TARGET).cとなっているので必要であれば、main.c 232.c lcd.c ext.c ...などに変えればよいでしょう。関数mainがあるファイルを先頭に置きます。
ここで記述されたファイル.cはMakefileと同じ場所にある必要があるので、プロジェクトに既存のソースファイル.cを追加するときにはMakefileと同じフォルダにコピーしておく必要があります。参照のみでは正しくコンパイルできません。
新規ファイル...で作成した場合はMakefileと同じフォルダにできるので問題無いと思います。
特に、Xcode用のAVRのテンプレートが入っているのでこれをインストールすると、XCodeでそのまま編集・ビルドができるようになります。
ソースの編集は好みのテキストエディタがあればそれで十分なんですが、XCodeだとコードの補完や予測変換?をしてくれるので結構便利。
インストール方法はイメージをマウントして、そのまま普通にインストーラでインストールすれば良いです。もちろんバイナリなのでMacPortsのようにコンパイルする必要もないです。
もし、すでにavr-gccなんかをインストールしてる人はカスタマイズでチェックを外せばOK。
XCodeでプロジェクトを作るときは新規プロジェクトから「Basic AVR C Project」を選びます。
そうすると、すでにプロジェクト名.cというのがあるのでこのままビルドを押せば.hexを作ってくれます。.hexが生成されるのはMakefileと同じフォルダです。
ただし、これだけではデバイスの設定などができていないのでMakefileをダブルクリックして編集ウインドウを出し、必要なところを変えていきます。
説明が書いてあるのでそれ通りにやっていけば大丈夫。
一応必要そうなところだけ書いておくと、MCU、F_CPUにデバイス名とクロック周波数を入れるくらいです。
SRCというところにはコンパイル&リンクするソース.cの名前。
プロジェクトに新しくソースファイル.cを追加したときにはここにも書いておく必要があります。本当は自動でやってくれたりもするのかもしれませんがやり方が分からないので^^;
初期設定では$(TARGET).cとなっているので必要であれば、main.c 232.c lcd.c ext.c ...などに変えればよいでしょう。関数mainがあるファイルを先頭に置きます。
ここで記述されたファイル.cはMakefileと同じ場所にある必要があるので、プロジェクトに既存のソースファイル.cを追加するときにはMakefileと同じフォルダにコピーしておく必要があります。参照のみでは正しくコンパイルできません。
新規ファイル...で作成した場合はMakefileと同じフォルダにできるので問題無いと思います。
avr-gccでのコンパイルとmakefile作成
avr-gccでコンパイル -mmcuにはデバイス名を入れます。
オブジェクトファイルからhexを生成
ただし、これだけでは最適化やリンクができないのでmakefileを作成したほうが良いでしょう。
手でやってもいいですが、ひじょーに面倒くさいです。
makefileはこちらの方のものを参考にしました。(というか少し変えただけです。)
タブ文字などが入るのでこちらのmakefileのテキストファイルをダウンロードしてください。
「.txt」が付いていますが、削除して「makefile」にします。
必要なライブラリやソース、それからこのmakefileを同じフォルダに置いて、makeを実行します。何もエラーが無ければこんな感じに表示されます。
$ avr-gcc -mmcu=at90s2313 main.c -o main.o
オブジェクトファイルからhexを生成
$ avr-objcopy -O ihex main.o main.hex
ただし、これだけでは最適化やリンクができないのでmakefileを作成したほうが良いでしょう。
手でやってもいいですが、ひじょーに面倒くさいです。
makefileはこちらの方のものを参考にしました。(というか少し変えただけです。)
タブ文字などが入るのでこちらのmakefileのテキストファイルをダウンロードしてください。
「.txt」が付いていますが、削除して「makefile」にします。
必要なライブラリやソース、それからこのmakefileを同じフォルダに置いて、makeを実行します。何もエラーが無ければこんな感じに表示されます。
avr-gcc -Wall -Os -mmcu=at90s2313 -DF_CPU=4000000UL -c -o main.o main.c
avr-gcc -Wall -Os -mmcu=at90s2313 -DF_CPU=4000000UL -c lcd.c -o lcd.o
avr-gcc -Wall -Os -mmcu=at90s2313 -DF_CPU=4000000UL -Wl,-Map,volctrl.map -o volctrl.elf main.o lcd.o
avr-objcopy -O ihex volctrl.elf volctrl.hex
avr-objdump -h volctrl.elf > memmap.map
avr-objdump -S volctrl.elf > volctrl.s
Mac OS X 上にAVR環境を構築 2007/Aug版
Mac OS Xでもavr-gccというコンパイラをを使ってAVRを開発することができます。
そのインストール方法の覚え書き。
ひとりぶろぐ: Mac OS X Tiger上にAVR-GCC環境を構築する@2006
このように既に解説してる方がいるのでわざわざ書く必要も無いかと思いますが、一応最新版ということで。
実はもっと簡単な方法があるのでこちらの記事でどうぞ。
まず、インストールに必要なツール。
・Xcode環境(要はgccです。)
AVR開発に必要なツール
・avr-binutils(アセンブラ・リンカ)
・avr-gcc(Cコンパイラ)
・avr-libc(AVRライブラリ)
・avr-gdb(デバッガ)※必要な場合のみ
・avrdude(プログラマ)
インストールにはいくつか方法はありますが、一番簡単なのがMacPortsを使う方法。
ダウンロード、ビルド、インストールをすべて自動でやってくれます。
ライブラリのヘッダは標準でここへインストールされます。
そのインストール方法の覚え書き。
ひとりぶろぐ: Mac OS X Tiger上にAVR-GCC環境を構築する@2006
このように既に解説してる方がいるのでわざわざ書く必要も無いかと思いますが、一応最新版ということで。
実はもっと簡単な方法があるのでこちらの記事でどうぞ。
まず、インストールに必要なツール。
・Xcode環境(要はgccです。)
AVR開発に必要なツール
・avr-binutils(アセンブラ・リンカ)
・avr-gcc(Cコンパイラ)
・avr-libc(AVRライブラリ)
・avr-gdb(デバッガ)※必要な場合のみ
・avrdude(プログラマ)
インストールにはいくつか方法はありますが、一番簡単なのがMacPortsを使う方法。
ダウンロード、ビルド、インストールをすべて自動でやってくれます。
$ sudo port install avr-binutils avr-gcc avr-libc avr-gdb avrdudeと打つだけ。
ライブラリのヘッダは標準でここへインストールされます。
/opt/local/avr/
秋月のPICプログラマーを Mac OS X で使う
PG2311がまだ来ないのでその間プログラムを作ることにしました。
(今日はRUUさんのを書き込んだだけですが^^;)
PICなので(僕はAVR派でw)秋月のプログラマを使いました。
これについては特に書くことはないんですが、シリアル通信を使うのでその辺について覚え書き。

続きから

