プログラムの作成と書き込み   

  本館に同じことを書いていますが最近の私の方法を改めて書いてみます。
プログラムを組み立てて、コンパイルして、ターゲットに書き込むという操作を繰り返して意図したプログラムを完成するわけですが、統合環境AVRstudioは儀式が多く、かつ、エディタが見にくいので好きではありません。シミュレーションができますが使いこなしができていません。もっぱら一般エディタで書いて、コマンドプロンプト画面でコンパイルして、同じ画面でターゲットに書き込んでいます。
コンパイル時のエラーがあるときは、コマンドプロンプト画面のエラー(またはワーニング)メッセージで原因が推定されることが多いので修正に手間取ることもありません。コマンドプロンプト画面を編集可能にしておくとタイピングは極端に少なくなります。
このための環境設定と日頃行っている方法をまとめてみます。


コンパイラ winavrのインストール
http://sourceforge.net/projects/winavr/files/WinAVR/からwinavr最新版をダウンロードします。2011年12月現在の最新版は WinAVR-20100110-install.exe です。
得られたWinAVR-20yymmdd-install.exeをダブルクリックするとインストールが始まります。Cドライブに余裕があればデフォルトでインストールするのが良いでしょう。ただ、ファイル名はバージョンのない「WINAVR」だけにする方が良いのではないかと思います(あとでjunctionコマンドを使うときのために)。pathは設定します。NotePadは使いません。

エディタの準備
私の好みで「サクラエディタ」を使っています。
http://sakura-editor.sourceforge.net/download.htmlからダウンロードしてインストールします。このページの注意書き「注意: パッケージが最新版の実行ファイルを含んでいないことがあります.新規にインストールされる場合にはパッケージ版をインストールした後でsakura.exeのみを最新版EXEと差し替えることをおすすめします.」に従います。
なお、このファイルはくせがあって、一度起動すると「使用中」となってしまって次のインストールができません。windowsを再起動するかユーザーのログオフをすると追加インストールができるようになります。
好みの設定ができますので使う内に徐々に変更すると良いでしょう。

プログラムローダ(書き込みソフト)の準備
別項のプログラムローダ(書き込みソフト)に関係するファイルを準備してpathを通しておきます。現在はプログラマとしてpic18spxを最もよく使いますのでその環境をつくります。3種のプログラムローダ(書き込みソフト)の準備をしても手間はかかりませんのでそうしておくと他のプログラマも使えて便利です。

コマンドプロンプトの準備
別項の Windows tips の フォルダアイコンの右クリックでCMD窓(コマンドプロンプト)を起動する を参考にプログラムのあるフォルダをカレントとしてコマンドプロンプトを起動するよう設定します。また、CMDプロンプト画面のコピー&ペーストの方法 を参考に編集機能を変更しておきます。

プログラムファイル類のフォルダの準備
一つのプログラム毎にフォルダを作っています。プログラム名をフォルダ名にしておくと便利です。多くのプログラムを1ケ所に置けるように例えば c:\prog などの中に test1 などの名で準備しています。
この中には コンパイルのためのバッチファイル、makefile、.cファイル、などを置いています。後でわかりやすいように 回路図や写真を置くときもあります。
コンパイルで.hexファイルもここにできます。

コンパイルのためのバッチファイル
このバッチファイルを置かなくても make.exe を実行すればよいのですが、 他のコンパイラの make.exe が実行されるのを防ぐためと、通常は使わないその他のファイルが生成されるのでそれを削除するために使っています。内容は、
c:\winavr\utils\bin\make clean
c:\winavr\utils\bin\make all
REM del *.o *.lst *.eep *.lss *.map *.sym *.elf *.bin *.srec
と書いています。その他のファイルが必要なときは REM を消しています。
バッチファイル名は 0cc.bat としていますが、上方に表示されるように0を付けています。

makefileの修正
C:\WinAVR10\sample\ にある makefile を使っています。
変更の必要は次の行です。
MCU = atmega128 ・・・ cpu名
F_CPU = 8000000 ・・・ クロック
TARGET = main ・・・ .cファイル名
SRC = $(TARGET).c ・・・ その他の.cファイルを同時にコンパイルするとき
ASRC = ・・・ アセンブラソースファイルがあるとき
OPT = s ・・・ オプションを変更するとき(変更していない)
いずれも次の行に
########################################################
を入れて注意する行が見やすいように工夫しています。
(次のプログラムではこれをコピーして変更しています)

コンパイルする
ソースファイルが必要ですから サクラエディタ を使って .c ファイルを作ります。このとき画面にプログラムのフォルダを小さく開けて置きます。
.cファイルの最小機能が書けたら保存してコンパイルのテストを行います。
プログラムフォルダのタイトルバーにある左上のフォルダアイコンを右クリックして コマンドプロンプト を開きます。その中に cc.bat をドラッグアンドドロップして<ENTER>を押しますとコンパイラが走ります。エラーがなければhexファイルができます。ワーニングはあってもコンパイルは正常に行われますので注意が必要です。
エラーがあればソースを開いて変更、上書き保存をして再コンパイルをしますが、コマンドプロンプト窓では「上向き矢印キー↑」でバッチファイルを実行するコマンドが再表示されますからタイプの必要はありません。

ターゲットへ書き込み
部分的なプログラムができたらターゲットに書き込んでいます。
しかし、その前に、私の癖ですが、ターゲットボードに電源回路、プログラム書き込み回路、(クロック発振回路)、ができた時点でライタを繋ぎ デバイス情報を読みとる習慣があります。電源回路の誤配線と書き込み回路の正常を確認する習慣です。(いくつ作っても最初に電源を入れるときは緊張します。電源に保護抵抗を入れて電流計を見ながら電源をつなぎます。異常電流が流れなければほっとします。)

ターゲットへの書き込みはコンパイルと同じコマンドプロンプト窓を使って
>picspx スペース を書いた後に main.hex をドラッグアンドドロップして ENTER を押します。

部分的プログラム実行
例えばLEDの点灯が確認されれば成功ですから次へ進みます。

プログラムの完成へ
追加のプログラムを少し書いては コンパイル → 書き込み → 実行 を繰り返しています。
初めてのケースでは最終的には関係のないプログラムを書いて、実験しながら進めるのが常になっています。
必要な時期に ヒューズ を設定しています。
思うように動作しないときは適当なルーチンに LEDの点灯や点滅、UART使用のときは適当なメッセージがPCに送られるように設定してプログラムの完成を目指します
「ひと月経てば赤の他人」という言葉もあるのでコメントはできるだけ入れるように心がけていますが、思うようにはなっていないようです。


読んでいただいた方に参考になるかどうか・・・    おしまいです。




inserted by FC2 system