AVR StudioのToolchainをバージョンアップする
2012年10月 AVR Studioインストール時にToolchain(AVR-GCC)も一緒にインストールされます。 その後、改良やバグ修正などでToolchainの新バージョンが公開されます。 AVR Studio自体は現行バージョンのままでToolchainをバージョンアップしたくなります。 そのやり方を示します。 |
バージョンアップの必要性 |
ツールチェインはAVR用プログラムをビルドするためのAVR-GCC(コパイラ)関連のセットです。 ツールチェインの動作において、よく使うtinyシリーズ/megaシリーズで今さら致命的なバグは、まずありません。 バージョンアップされる主な内容は細かいバグ修正やコード最適化の改良、そして新型番への追加対応です。 比較的最近出回り始めたATtiny10シリーズ(ATtiny10,20,40)はATtiny2313など他のtiny種と比べ、レジスタ構成が異なることからコンパイラの対応が遅れているようです。AVR Studio5.1でインストールされるツールチェインでは一部不具合が生じます。例えばグローバル変数が使えなかったり、_delay_ms()関数の動作に制限があったりです。 Atmel Studio6で一緒にインストールされるバージョンでは、これらの問題は解決されているようです。 AVR Studio5.1をアップデートしてもツールチェインは更新されません。 AVR Studio5.1をアンインストールし、Atmel Studio6をインストールすれば、大体の問題は解決すると思います。しかし開発環境を丸ごと入れ替えるというのは、人によっては気軽にできない事情があります。またAtmel Studio6をインストールしても、後からツールチェインはバージョンアップしていきます。 現在のAVR Studioのままツールチェインだけバージョンアップできれば都合がよいです。 インストールしただけではダメ 現時点で最新版のツールチェインをインストールし、_delay_ms()関数を含む適当なプロジェクトをビルドして結果を確かめてみました。…変わりません。AVR Studioは旧バージョンのツールチェインを参照してビルドしてしまいました。 AVR Studio内の設定を変更することで、新バージョンのツールチェインを参照するようになりました。 この記事では、AVR Studioに最新バージョンのToolchain(AVR-GCC)をインストールし、開発プロジェクトに適用する方法を説明します。 この記事で対象とする開発環境 WindowsXP/SP3(32bit) + AVR Studio 5.1 |
ダウンロードとインストール | ||||
手順1 Atmelのサイト http://www.atmel.com/ja/jp/ にアクセスします。 検索枠に「toolchain」と入力して検索開始。 検索結果の一覧から「Atmel AVR Toolchain 3.4.1 for Windows」のページへジャンプします。 ※バージョンは2012/09時点の最新版。新しいものがあればそちらを。 手順2 「avr-toolchain-installer-3.4.1.1195-win32.win32.x86.exe」をダウンロードし、インストールします。 ※バージョンは2012/09時点の最新版。新しいものがあればそちらを。
|
設定とビルド |
手順1 AVR Studioを起動し、新バージョンのツールチェインを適用したいプロジェクトを開きます。 手順2 メニューバーの ツール - オプション - Toolchain - Flavour Configuration を開きます。 Toolchains項目で「Atmel AVR-8-bit」を選択し、[Add Flavour]ボタンを押します。 適当な名前を付け、インストールしたツールチェインのbinフォルダを指定します。 名前の例… ATtiny10series ※話の流れでこんな名前にしましたが、実際は「toolchain3_4_1」などとした方がよいでしょう。 フォルダの例… C:\〜\Atmel\AVR Tools\AVR Toolchain\bin ※誤って旧バージョンのパスを指定しないよう注意。 手順3 メニューバーの プロジェクト - {プロジェクト名}のプロパティ を開きます。 Advancedタブを開きます。 Toolchain Flavour項目から「手順2」で名付けたツールチェイン名を選択します。 ビルド 以上のように設定すると、指定したツールチェインがビルド時に参照されるようになります。 Toolchain Flavour項目で「Native」を選択し直すと、デフォルトの(古い)ツールチェインの参照に戻せます。 |
◆ ◆ ◆ |
ATtiny10,20,40でグローバル変数が使えたり、_delay_ms()関数が正しく動作するようになりました。 「AVR 8-bit GNU Toolchain Readme.pdf」に、ATtiny10シリーズに対するbug-fixが挙がっています。 float型変数の操作に関する問題点は、Toolchain 3.4.1ではまだ対応されていないようです。 今後のバージョンアップでいつか解決されると思います。 |
(C) 『昼夜逆転』工作室 | [トップページへ戻る] |