2023年1月2日月曜日

TOPPERS/ASP - AVR32版 その3

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


Atmel Software Framework (ASF)とは?

ASFとは、ドライバ、プロトコル、スタック、コーディングユーティリティ、ビルドシステムなどを開発者に提供するソースコードのライブラリです。

いわゆる純正のライブラリパッケージであり、これを使用するとCPUに内蔵されているペリフェラル(周辺機器)を簡単に利用することができるというものです。

今回の「TOPPERS/ASP AVR32版」のカーネル内でも、割り込み、タイマーやシリアル通信ドライバなどは、このASFのドライバを使用しています。

ところが、このASFのソースコードのライセンスの条項が不明瞭なために再配布できません。

そのため「TOPPERS/ASP AVR32版」のソースコードが不完全なものとなり、そのままではビルドが通らず、通すためには手動で不足分のソースコードをコピーしていただくという手間を強いることになってしまいました。

面目無いです…。

では、そのASFのソースコードを何処から入手すれば良いのか?

そのためには、インストールした「Microchip Studio」上で雛形となるプロジェクトを作って、そこで生成されたASFのソースコードを「TOPPERS/ASP AVR32版」のソースツリーにコピーするという方法を採ります。


雛形プロジェクトの作成

まずは「Microchip Studio」を起動して下さい。

「Microchip Studio」 - 1


画面上部の「File」、「New」、「Project...」メニューを順にクリックしていきます。

「Microchip Studio」 - 2


以下のようなダイアログが表示されます。

ここでは「GCC ASF Board Project」を選択し、ダイアログ右下の「OK」ボタンをクリックしましょう。

これで「GccBoardProject1」という名前のプロジェクトを作成したことになります。

このプロジェクト名、覚えておいてください。

「New Project」ダイアログ


続いて、以下のようなダイアログが表示されます。

まずは「Extensions」コンボボックスに注目してください。

デフォルトでは「Atmel ASF(x.xx.x)」と言った具合に、「Microchip Studio」をインストールした時点での最新版のASFを使用するように選択されています。

「Board Selection」ダイアログ - 1


今回の場合、デフォルトの最新版でも多分大丈夫なのでしょうが、検証をしていないので「Atmel ASF(3.49.1)」に設定してください。

これで動くことを確認してから、最新版を試すことをオススメします。

気持ち悪いから最新版で試したい!って方は、貴殿のご武運をお祈りします!

「Board Selection」ダイアログ - 2


使用するASFのバージョンを設定したら、そのコンボボックスのすぐ左、「Select By Board」のラジオボタンをクリックします。

「Board Selection」ダイアログ - 3


このASFのバージョンでサポートされている多くの評価ボードがリストアップされています。

その中から、今回使用する「UC3-A3 Xplained - AT32UC3A3256」を選択し、ダイアログ右下の「OK」ボタンをクリックします。

「Board Selection」ダイアログ - 4


すると、以下のようにダイアログが消えて、元の「Microchip Studio」の画面に戻ります。

ただし「ASF Wizard」というタブが表示されていますね。

このタブの左上、「Project:」という表示のコンボボックスに注目してください。

「Microchip Studio」 - 3


このコンボボックスをクリックすると、作成した「GccBoardProject1」というプロジェクト名が選択できるようになっているので、これをクリック!

「Microchip Studio」 - 4


すると「ASF Wizard」というタブは、以下のような表示に切り替わります。

この画面の見方なのですが、左側のリストには、このプロジェクトで指定したデバイスである「AT32UC3A3256」で使用できるASFのライブラリが表示されています。

右側のリストには、このプロジェクトで既に選択されている(使用する)ASFのライブラリが表示されています。

デフォルトで選択されているのは「GPIO」と「Generic board support」のみですね。

つまり、左側のリストから右側のリストに項目を移動させることにより、自由に使用するASFのライブラリをプロジェクトに付け加えることができる訳ですね。

「Microchip Studio」 - 5


今回の「TOPPERS/ASP AVR32版」に必要な最低限のASFライブラリは以下の4つです。


●GPIO - General - Purpose Input / Output (driver)

●Generic board support (driver)

●TC - Timer / Counter (driver)

●USART - Serial interface (service)


このうち、上の2つは既に選択されていますので、残りのOSタイマーとして使用する「TC - Timer / Counter」と、デバッグ・シリアルに使用する「USART - Serial interface」の2つを追加しましょう。

まずは「TC - Timer / Counter」から。

左側の「Available Modules」リストから「TC - Timer / Counter (driver)」を選択して、「ASF Wizard」タブの下部にある「Add」ボタンをクリックします。

「Microchip Studio」 - 6


すると、無事、右側の「Selected Modules」リストに「TC - Timer / Counter (driver)」が追加されたでしょうか?

「Microchip Studio」 - 7


同じ要領で「USART - Serial interface」も追加しちゃいましょう。

左側の「Available Modules」リストから「USART - Serial interface (service)」を選択して、「ASF Wizard」タブの下部にある「Add」ボタンをクリックします。

「Microchip Studio」 - 8


すると、右側の「Selected Modules」リストに「USART - Serial interface (service)」が追加されるはずです。

「Microchip Studio」 - 9


以上で、必要なASFライブラリの設定は終わりました。

次は、この設定通りにASFライブラリのソースコードをプロジェクトに吐き出させる作業です。

なんてことはないです。

ただ「ASF Wizard」タブの下部にある「Apply」ボタンをクリックするだけです。

「Microchip Studio」 - 10


以下のダイアログが表示されます。

特にやることもなく「OK」ボタンをクリックします。


以下のように、派手な表示の変化もなく作業は終了します。

ちょっと不安ですね?

ちゃんとソースコードが吐き出されているかどうか、後で確認しましょう。

「Microchip Studio」 - 11


さて、必要なソースコードを雛形プロジェクトへ吐き出させたようなので「Microchip Studio」を一旦終了させましょうか。

左上のバッテン(X)をクリックすると以下のダイアログが表示されています。

この雛形プロジェクトを保存するかどうかを問われます。

保存しておいた方が良いでしょう。

(「Yes」ボタンをクリックです。)

変更の保存ダイアログ


もしこの先、無事に「TOPPERS/ASP」の起動に成功して、イザ何かを作ろう!となった場合、今回追加したASFライブラリだけでは絶対に足らなくなることでしょう。

評価ボードにセンサーを繋げて、そのセンサーとSPIで通信するとか、AD変換を使いたいだとか…。

その際には、再び今回の手順で必要になったASFライブラリを追加して、ソースコードを吐き出させて、更にそれを「TOPPERS/ASP」のソースツリーにコピーしなければなりません。

そういう意味では、この雛形プロジェクト、結構使用頻度が高くなるかもしれませんよ?

大切に取っておきましょう!


さて、一連の作業で吐き出されたASFライブラリのソースコードがどうなっているのか?確認しておきましょう。

特に変わったことをしていないのであれば、雛形プロジェクト「GccBoardProject1」は以下のディレクトリに保存されているはずです。


C:\Users\<ユーザー名>\Documents\Atmel Studio\7.0\GccBoardProject1

「GccBoardProject1」ディレクトリ - 1


さらに、このディレクトリの中にある、これまた「GccBoardProject1」というディレクトリの中は以下のようになっています。

「GccBoardProject1」ディレクトリ - 2


さらにさらに、このディレクトリの中にある「src」というディレクトリの中は以下のようになっていますでしょうか?

「src」ディレクトリ


ここで現れる「ASF」と「config」(さらに「asf.h」)こそが、欲しかったモノです!

これらが見つかれば、作業は成功です!


さて「TOPPERS/ASP AVR32版」を動かす上で足りないソースコードのゲットに成功しました。

次のステップは、これらのソースコードのコピーと配置、そして若干の修正です。

忙しいですが、一個ずつやっつけて行きましょう!


<続く>

0 件のコメント:

コメントを投稿

TOPPERS/ASP - Arduino UNO R4版 その7

前回からの続き です。 このテーマを最初からご覧になる場合は こちら からどうぞ。 プログラムの転送とデバッグ ターゲットの「Arduino UNO R4」とデバッガの「E2 emulator Lite」を 前々回 作成したケーブルで接続します。 こんな感じ。 これからTOPPE...