今回使用するBlackfin用の開発ツールは、メーカーが提供するVisualDSP++です。
名前から推測されるのはMicrosoftの開発ツールを意識していること、そしてC++をサポートしていることです。
Microsoftの開発ツールは使い慣れています。
C++で高度に抽象化したプログラミングも捨てがたいのですが、メモリ制限が厳しい組み込みソフトでは、オーバーヘッドが大きくなりがちなこれらの言語は今回は避けようと思います。
ライブラリやサンプルプログラムも用意されているのは嬉しいです。
ライブラリは内部の入出力ユニットの複雑な操作を容易にしてくれるはずですし、サンプルプログラムは、確実に動作するひな形として利用できます。
しかし、後でわかるのですが、この楽観的な考えの向うに困難が控えているのです。
デバッグに関しては、JTAGインターフェースが用意されており、オンチップ・エミュレータによりオンボード/リアルタイムデバッグが可能となっています。
特に、今回貸し出された評価ボードではUSBインターフェース経由でのデバッグが可能となっていたので、特別なインターフェースを用意しなくてもデバッグはできそうです。
それでは、開発環境の構築から始めます。
今回使用するVisualDSP++5.0はメーカーサイトからダウンロードできます。
有償ソフトですが、Webからユーザー登録すれば90日間のテスト用ライセンスが取得できます。
サイトにはWindows7までしかサポートしていませんが、現在の私のPC環境であるWindows8.1/32bitにインストールしてみます。
インストール
インストールするとライセンスの入力を求められます。
メーカーサイトにアクセスし、テストライセンスを取得します。
スタート画面から[Manage Licenses]を起動し、取得したserialNoを入力します。
今回は開発キットを使用するので、このキット関連の機能を使用するため、キットのシリアル番号を入力し、バリデーションコードをテストライセンスと同様にWebから取得します。
次にツールのアップデートをします。
まずメーカーサイトからUpdateSoftwareをダウンロードします。
http://www.analog.com/jp/content/visualdsp_tools_upgrades/fca.html#vdsp50
マニュアルには[Maintain this Installation]メニューからアップデートするように書かれているのですが、このメニューが見つからないのです。おそらくOSのバージョンの問題と思われます。
色々試してみると、セットアッププログラムからアップデートできることがわかりました。
インストールディレクトリのセットアッププログラム(Program Files\Analog Devices\VisualDSP 5.0\Setup.exe)を起動し、[Apply Dounloaded update file]を選択します。ダウンロードしたファイルを指定して実行します。
デバッグ環境の設定として[VisualDSP Configurator]でPloatformを追加します。
type:ADSP-BF592 (1 processor) via HPUSB-ICE
Device ID:0
ビルド
操作方法はMicrosoftのVisual Studioと似ています。
試しに、スタートアップマニュアルに書かれてある、サンプルプログラムをビルドしてみます。
ところが、コンパイルエラーが発生します。
[Error ea1011] "command-line":1 'K': Already saw input filename C:\Users\.
これは関連フォルダパスに日本語が含まれる場合に発生するようで、日本語のない名前でユーザーを作成し、サインインすることで解決しました。しかし、未だに言語依存するプログラムがあることに驚きです。
ライブラリ
メーカーが開発ツールとして提供しているライブラリには次のものがあります。
言わずと知れたANSI標準ライブラリです。
信号処理用の演算ライブラリです。
プロセッサの各種機能(特にIOインターフェース機能)を抽象化し、利用を容易にします。
IO機器を共通の操作関数で操作できるように抽象化し、制御を容易にします。
これはサービスに含まれるデバイス管理機能にプラグインされるもので、名前からもわかる通り、、WindowsやLinuxのデバイスドライバと同じ位置づけとなります。
サンプルプログラム
開発ツールには開発キット毎にサンプルプログラムが用意されています。
インストールディレクトリ(\Program Files\Analog Devices\VisualDSP 5.0\Blackfin\Examples\ADSP-BF592 EZ-KIT Lite)にあります。
+ background_telemetry
+ Drivers
| + Ppi
| + Spi
| + Sport
| + Uart
| + Autobaud
| + Echo
+ Flash Programmer
| + Serial
+ Power_On_Self_Text
他の開発キットに比べれば、サンプル数は少ないですが、取りあえず、すべての機能のサンプルプログラムはありそうです。
中を調べてみると、Driver関連以外は、ライブラリをほとんど使わないレジスタを直接操作するプリミティブな方法でコーディングされています。
折角、動作確認されているライブラリコードがあるのに使わないのは不思議と思いつつ、これらサンプルコードとライブラリマニュアルと睨めっこしながら、調査を続けます。
(後々、サンプルプログラムがライブラリを使用しない理由は判明することになるのですが。)