コンパイルと書き込みの方法  2010.01.08

 プログラムを書いて、コンパイルして、ターゲットに書き込むという操作を繰り返して意図したプログラムを完成するわけですが、私に取っては統合環境と呼ばれるAVRstudioはプログラム作製までの儀式が多くて好きになれません。気に入ったエディタを使えば画面が大きくて見やすく、それだけにプログラムつくりに専念できます。
また、コンパイル時のエラーがあるときは、通常は多くのエラーが表示されても最初の一つのエラーが原因している場合が多いので統合環境でなくても、コマンドプロンプト画面のエラー(またはワーニング)メッセージで原因が推定されます。問題の行番号も表示されるので修正に手間取ることもありません。
コマンドプロンプト画面の操作がめんどうだと言われることもありますが編集可能にしておくとほとんどタイピングは無くなります。
ターゲットへの書き込みはsenshuさんのhidspxのGUIであるhidspxGを使うとドラッグアンドドロップとボタンクリックでほとんど済みます。
毎回の儀式が少ないので覚えることが少なく気に入っている方法です。人それぞれですからこの方法が最善とは言えませんが、私にとって最善の方法をご紹介します。
なお、AVRstudioと違ってシミュレーションはできません。私自身がシミュレータを使うのが苦手なために(使い方を知らないために)困ることは無いのですが。


準 備
WINAVRのダウンロードとインストール:
ここを参考にWINAVRをダウンロードします。
得られたWinAVR-20yymmdd-install.exeをダブルクリックするとインストールが始まります。Cドライブに余裕があればデフォルトでインストールするのが良いでしょう。ただ、ファイル名はバージョンのない「WINAVR」だけにする方が良いのではないかと思います。pathは設定します。NotePadは不要でしょう。

テキストエディタの準備:
気に入ったテキストエディタがあればそれを使います。私は「sakura」エディタが気に入って使っています。インストール無しでファイルを置くだけになっているのも好きなところです。C言語のための設定ができるものが便利です。内容による色分け、オートインデント、行番号表示などはほしいところです。ショートカットをデスクトップに作っておくと便利です。

コマンドプロンプト画面を使いやすく:
コマンドプロンプトはカレントがどこになっているかが一つの問題です。スタート→プログラム→アクセサリから起動したコマンドプロンプトはカレントが c:\Documents and settings\user に固定されていてプログラムソースのあるフォルダではありません。プログラムのあるフォルダでコマンドプロンプトが立ち上がると便利ですから方法を講じます。
ここの「フォルダアイコンの右クリックでCMD窓(コマンドプロンプト)を起動する」方法のどれかで設定すると便利になります。
 ソースのあるフォルダでコマンドプロンプトを開く簡便な方法をsenshuさんに教えていただきました。
 hidspxG窓でhexファイルが指定されていると CMDpromptボタン を押すと hexファイルのあるフォルダがカレントになるコマンドプロ
 ンプトが起動します。 これを利用します。
 コンパイルするときに、
  @ソースファイルを含むフォルダが表示されている状態で、
  AhidspxGを立ち上げます。 
  Bソースファイルのフォルダにダミーのhexファイルを貼り付けます。(どんなhexでもよろしい。空でも、中身がhexでなかっても
   名前が.hexならよろしい)
  CダミーのhexファイルをhidspxGにドラッグアンドドロップします。
  DCMDpromptボタンを押します。
  E目的のフォルダでコマンドプロンプトが起動します。(作業終了まで消しません)

もう一つはコマンドプロンプトを編集可能にすることです。コマンドプロンプトを起動して、タイトルバーを右クリックすると「プロパティ」が現れます。
「重複する古い履歴を破棄」にチェックを入れ
編集オプションの「簡易編集モード」にチェックを入れます。
進んで、「同じタイトルのウインドウに適用する」にチェックを入れて終了します。
この結果、
↑↓キーで以前にタイプしたコマンドを再利用できる
→←キーでコマンドを編集できる
文字列のドラッグで範囲を指定して、右クリックでコピーできる
右クリックでペーストができる
という便利な機能が利用できます。

書き込みソフトhidspxとGUIの準備:
senshuさんのアーカイブのページへ行き、2ページほど下の表からhidspx-2009-1125.zip をダウンロードします。日付は更新によって変わります。
解凍して得られるファイルの 「bin」→「setup.bat」をダブルクリックで実行すると必要なファイルが c:\binフォルダ にコピーされます。そして、このc:\binフォルダにpathを通します。
また、この中の hidspxG.exe のショートカットもデスクトップに作っておきます。

プログラムライタ:
もちろん HIDaspx を使います。


コンパイルと書き込みの練習
まずプログラム一つについて一つのフォルダを準備します
サンプルプログラムをダウンロードして解凍してください。得られたled01フォルダがled01プログラムのフォルダです。任意の場所に置いてください。私は C:\avrprgフォルダに置きました。
次の画面のように

プログラムソースのあるフォルダを小さく表示します。
このフォルダのタイトルバーの左端のフォルダアイコンを右クリックしてコマンドプロンプトを起動します。
 このとき、カレントがプログラムソースのあるフォルダにあることが大切です。
同時にショートカットから hidspxG を起動しておきます。
 上に付け加えたようにhidspxGからコマンドプロンプトを起動するときは、
 @hidspxGをショートカットから起動して、
 Aダミーのhexファイルをプログラムソースがあるフォルダからドラッグアンドドロップします。
 Bこの条件でCMDpromptボタンを押すとカレントが目的の場所にあるコマンドプロンプトが起動できます。

まずコンパイルの練習です。
0cc.batをコマンドプロンプトにドラッグアンドドロップしてenterキーで実行します。
ここにはmakeが書かれていますので、カレントのmakefileを見て、コンパイルが進みます。
コンパイルエラーが無ければ、カレントディレクトリ(ソースのあるところ)にhexファイルが生成されます。
そのhexファイルをhidspxGにドラッグアンドドロップしてWriteボタンをクリックします。
ライタとターゲットに間違いが無ければターゲットがプログラムどおりの動作をします。

別のプログラムを作るときは
このled01フォルダを親のフォルダc:\avrprgにコピーして、
フォルダの名前を新しい名前test2に変更します。
test2フォルダを展開して、led01.cをtest2.cに変更します。
makefileをエディタsakuraのショートカットにドラッグアンドドロップして変更します。
私のmakefileは変更が必要な部分の下に ############ ラインがありますから その上の行を必要に応じて変更します。
makefileを上書き保存します。
新しいtest2.cをsakuraにドラッグアンドドロップしてエディタを立ち上げ、プログラムを書きます。
上書き保存して、コマンドプロンプトをこのフォルダをカレントとして立ち上げます。
0cc.batをドラッグアンドドロップして実行します。
コンパイルエラーが出たら、test2.cのエディタを表示して(終了していない。最小化して置いてあるもの)修正し、保存します。
無事エラー無くコンパイルできたらhidspxGにドラッグアンドドロップして書き込みます。
一通りの作業が終わるまで、カレントディレクトリフォルダ、テキストエディタ(ソースファイル)、コマンドプロンプト、hidspxGを閉じることがありませんのでソースの修正・加筆以外はほとんどタイプすることなく作業を続けられます。このように書くと難しいようですが、窓を渡り歩くだけで進めることができます。

コピペとボタン操作が好きな人には快適な作業です。










コンパイルの方法  記述が古くなりましたので上に改めて書き直しました。
 winavrのコンパイルの方法を復習します。
ここでは「周波数カウンタ」を例にとってコンパイルすることにしました。
@プログラムを保存するフォルダを決めます。どこでも良いのですがここでは Dドライブに D:\avrprg\fc フォルダを作りました。
A「周波数カウンタ」のページの fc.c を開き、テキストエディタにコピーします。これを上記のfcフォルダに、fc.c の名前で保存します。
B同様に lcd.c を同じフォルダに作ります。
Clcd.hファイルは圧縮してありますので、DLののちに解凍して、同じフォルダに置きます。
 lcd.txtファイルをAと同じ方法で作りlcd.hと名前を変えて、同じフォルダに置きす。
D同じフォルダに makefile を用意します。(不勉強でmakefileはよくわかりません。が、次の方法でokです。)
・winavr\sample\makefile を同じフォルダにコピーします。
・makefile をエディタで開いて、
・MCU = の行を探して、 MCU = at90s2313 と書き換えます。ここには使用するデバイス名を書きます。
・TARGET = の行を探して、TARGET = fc と書き換えます。コンパイルするファイルの.cを除いて書きます。
・SRC = $(TARGET).c の行を探して、SRC = lcd.c $(TARGET).c と書き換えます。同時にコンパイルするファイルを指定します。 これでmakefileは完成です。新しいプログラムではいつもこの3行に注意します。
Eあとはコマンドプロンプトの黒い窓でmakeを実行すればよいのですが、カレントディレクトリを毎回書くのは面倒ですからバッチファイルにします。
Fバッチファイルの名前は何でも良いのですが、ここではmc.batとします。このファイルの1行目には、ドライブ名(D:)、2行目にはカレントディレクトリを プログラムフォルダに変更(D:\avrprg\fc)、3行目に make を書きます。
Gこれで準備ができました。コマンドプロンプトの黒い窓に mc.bat をDDしてENTERキーをたたくとコンパイルが始まります。

ひとたび動くと、後はコピーして、必要なところだけ書き換えています。
私がDドライブに作ってみたファイルを圧縮してここに置きます。

TOPページへもどる


inserted by FC2 system