avr-toolchainを使う   

 avrのプログラムを作るときは、最初の頃はWINAVRを使っていましたが、IDEの儀式がいやでmakefileを作り、コマンドプロンプト上でmakeを実行してhexファイルを作っていました。 2010年を最後にWINAVRの更新がなくなり、avr-toolchainに引き継がれました。

 1 旧のavr-toolchain
 2 現在のavr-toolchain
 3 PCの設定
 4 makefileの例
 5 ビルド(コンパイル)の操作
 6 make.exeの情報とメモ
 7 趣味のバッチファイル
 8 MinGWと使う方法(ノートPC)
 9 デスクトップPCの設定 2016.10.29






 1 旧のavr-toolchain (2016.09.22)
 WINAVRがなくなったあと何回か改訂があったと思いますが、最終ははavr-toolchain-installer-3.4.2.1573-win32.win32.x86.exeでした。このシステムは展開すると526MBほどのものです。
展開すると programfiles に組み込まれ必要なパスも自動で設定されます。makefileを設定して、プログラムがあるホルダーでコマンドプロンプトを立ち上げ make を実行するとhexファイルほかがホルダーにできてきます。エラーがあるときはコマンドプロンプト画面に表示されますのでやや見にくい状態ですが修正のヒントが得られます。makefileの作り方でROMとRAMの使用量を表示することもできました。安定した状態だったので使い続けていました。  


 2 現在のavr-toolchain (2016.09.22)
 最新のavr-toolchainは avr8-gnu-toolchain-installer-3.5.3.90-win32.any.x86.exe です。展開すると139MBほどになります。少し前からこのタイプになっていますが、旧のバージョンと比べると随分小さくなっています。実行しても圧縮ファイルが展開するだけでprogramfilesに登録されることもなく、またパスの設定も行われません。更に、旧バージョンには含まれていた make.exe も含まれていません。そのようなわけで「使い方がわからない」ことから旧バージョンで辛抱していました。
しかし、便利な使い方があるはずだと思い、掲示板に書いてみるとラジオ少年さんから「コンパイルできた」と報告がありました。よくわからないのでsenshuさんのサイトにお願いしたところ、senshuさんから丁寧な解説を頂いて、かつ、丁寧に教えていただきましたので使えるようになりました。これからは新バージョンで進めます。
senshuさんのお話では、
 1. 「最新版のAVR toolchainはAVRマイコン用GCCのみであり、GNU toolsは含まない」
 2. 「以前のtoolchainでは、GNU toolsが同梱されていたこともあった」
と理解するのが正しいとのことです。
素人向きに、どこかに、「 AVRマイコン用GCCのみです」「他に◯◯を用意しなさい」「このように使いなさい」と教えてくれるところがあればよかったな、と思います。その点も含めて、私の取った方法をまとめておきます。    



 3 PCの設定 (2016.09.22)
 OSはWindows10です。senshuさんに教えていただきながらいろいろとテストを繰り返しましたが、新バージョンだけでは正常にビルドできませんでした。旧バージョンと新バージョンの両方をインストールしています。MinGWを勧められましたが勉強不足ですから、しばらくはこれでいきます。
このサイトには多くのバージョンが用意されています。このサイトから AVR Toolchain 3.4.2-1573 (旧のバージョンです) と AVR Toolchain 3.5.1(新のバージョン)をダウンロードします。 最新版は avr8-gnu-toolchain-installer-3.5.3.90-win32.any.x86.exe からダウンロードできます。

私が行った設定は次のとおりです。
@ 旧バージョンの AVR Toolchain 3.4.2-1573 をインストールします。
A 新バージョンの avr8-gnu-toolchain-installer-3.5.3.90-win32.any.x86.exe をインストールします。と言っても解凍
   されるだけですからそのホルダを私は C:\avr に作りました。 C:\avr\avr8-gnu-toolchain-3.5.3.90
B C:\avr\avr8-gnu-toolchain-3.5.3.90\bin に 旧バージョンの\bin\にある make.exe をコピーします。
C (Win10ですから)システム→システムの詳細設定→環境変数→Pathをダブルクリック→編集画面 を出し、
  新バージョンの\bin\を一番上の欄に設定します。(都合により再起動します)
以上でPCの設定は終わりです。    



 4 makefileの例 (2016.09.22)
 工夫したところもあるのですが、コンパイラのバージョンの表示とプログラムのROMとRAMの使用量の表示をする希望を持っていました。今はこれで満足しています。makefileの例 不要な落書きも残っていますが私用のメモです。
プログラムによって変更しなければならない場所は5行あるのですが、最後の最適化OPTIMIZEは変更せずに使っていますから実質は4行です。
  3行目 PRG はプログラム名。 .c は書きません。
  6行目 SRCは同時にコンパイルするファイルが有れば追加記入します。.cをつけます。
  9行目 MCU_TARGETはMCチップの型名
  12秒目 F_CPUはクロック数。単位はHzです。
を書けば終わりです。
新しいプログラムを作るときは、このmakefileをコピーして上記の4箇所を書き換えます。(IDEの儀式より簡単です)     



 5 ビルド(コンパイル)の操作 (2016.09.22)
 プログラムごとにホルダーを作り、ホルダー名はプログラムと同じ名にしています。
ホルダーには main.c の他に必要なインクルードファイル.hと.c、makefileを置きます。場合よっては下記の 0.bat、3.bat のバッチファイルも置きます(趣味の世界です)。

Win10を使っていますので、エクスプローラでプログラムホルダーを開いてメニューバーの「ファイル」を左クリックすると「コマンドプロンプトを開く」が現れるので、これをクリックすると現在のホルダーでコマンドプロンプトが開かれます。
ここで、make、make all、make clean などのコマンドを実行します。下記の 0.bat 3.bat を実行することもあります。
通常は make で.hexなど必要なファイルが生成されます。     



 6 make.exeの情報とメモ (2016.09.22)
 コマンドプロンプト(Win10)でmakeの次の情報が分かります。
 1 make -v → make.exeコマンドのバージョン【下記どちらのコマンドプロンプトでも】 
 2 where make.exe → makeコマンドの場所【コマンドプロンプト(管理者)で】
 3 make gccversion → avr-gccのバージョン【プログラムホルダーのコマンドプロンプトで】

(メモ)
・特定のターゲットのみ実行する → make targetA targetAだけ実行する(複数指定可=空白区切り)
・makefile 以外の名前のものをmakefileとして使う → make -f foo.mk (.mkが普通)
・実行されるコマンドだけを見たい(ファイルを作らない)→ make -n 
    



 7 趣味のバッチファイル (2016.09.22)
 make だけでビルドできるのですが次のような趣味のファイルも作ります。
0.bat makeして .hex だけを残して生成ファイルを削除するバッチです。
echo off
make clean
make all
rm *.elf *.lst *.map *eeprom.hex *.o *.bin *.srec
echo on
3.bat makeで生成されたファイルをすべて削除するバッチです。ソースだけにする目的で使います。
rm *.hex *.elf *.lst *.map *eeprom.hex *.o *.bin *.srec
コマンドプロンプトで 0エンター または 3エンター で目的が果たせます。0と3はテンキーでENTERに近い理由で
つけています。これらのバッチファイルはエクスプローラー上でダブルクリックするだけで実行できます。     



 8 MinGWと使う方法(ノートPC) (2016.09.25)
 MinGWと新toolchainで構成する方法をノートPC(Win10)で行っていみました。結果的には両者をインストールして、少しの設定を変えるだけでできました。
新toolchainのインストールは上記のとおりです。MinGWのインストールはこのサイトの右にある Download Installer をクリックするとインストーラーがダウンロードされるので、それを実行します。ディレクトリはデフォルトにしています。インストールの選択メニューが表示されたら mingw-basemingw-gcc-g++msys-base にチェックを入れて、左上の Installation を選び、Apply Changes を選びます。次の画面で Apply をクリックします。

あとは設定です。
1 avr toolchain\nin をパスの第一位に設定します
2 MinGW\bin をパスの第二位に設定します
 (Win10の設定画面では「新規」を選んでも一番下のパスが上書きされてしまいます。「テキストの編集」を選んで最後尾
 に;c;cなどのダミーを入れておいてからそのダミーを参照で置き換える方法を取りました)
3 MinGW\bin\mingw32-make.exeをコピー・リネームして make.exe として置きます(他のmakeを使わないとき)

・旧toolchainだと526MB、MinGWだと231MBです。MinGW使用の方が軽くなります。
・デスクトップPCにも入れてみました。区別するように mmake.exe の名にしています。     



 9 デスクトップPCの設定 (2016.10.29)
PCのOSを anniversary update のクリーンインストールに変更したので、toolchain も上記のノートPCと同じく、最新のavr-toolchainは avr8-gnu-toolchain-installer-3.5.3.90-win32.any.x86.exe と MinGW の組み合わせとしました。\mingw32-make.exeは単に make.exe としています。インストールの注意点は上記のノートPCと同じです。

(2017.05.11追記) 久しぶりにavr-gccを扱うと、今まで問題がなかったmakefileが通りません。バッチファイルもエラーになります。よく見ると rmコマンドが動いていないようです。MinGWのbinフォルダを見ると rmコマンドがありません。近くのあたりを探しt見ると C:\MinGW\msys\1.0\bin にあります。ここにパスが通っていなかったためのようです。
win10ですから、 スタートボタン右クリック→システム→システムの詳細設定→環境変数(下にある)→システム環境変数(下の欄)→(Pathを選んで)編集→新規・追加 で行いました。上に書いたように注意が必要です(Win10の設定画面では「新規」を選んでも一番下のパスが上書きされてしまいます。「テキストの編集」を選んで最後尾に;c;cなどのダミーを入れておいてからそのダミーを参照で置き換える方法を取りました)。
    









































工事中














  

inserted by FC2 system