2012年12月7日金曜日

Blackfin BlueBoot - Blackfinに接続されたブート用外付けフラッシュ・ロムを書き換える事ができるソフトウェアのデビューです!

このプロジェクトって何なの?

Blackfin BlueBootとは、Blackfinに接続されたブート用フラッシュ・ロムを書き換える事のできるソフトウェアです。

ターゲット用の専用ブート・ローダとホスト用の専用アプリケーションから構成され、両者が協調動作する事でBlackfinに接続されたブート用フラッシュ・ロムの書き換えを実行します。



Blackfinは、SPIに接続された外部フラッシュ・ロムからブートさせる事ができます。
しかし、Blackfinは予めどんな外付けフラッシュ・ロムが接続されるのか知るよしもありません。


当然のようにBlackfinが外付けフラッシュ・ロムの書き換え機能を持つわけもなく、「一体どうやったら書き換えができるの?」というわけです。

Analog Devices社は、同社純正ソフトウェアであるVisualDSP++でこの問題を解決しており、Blackfinに接続されたフラッシュ・ロムの型式を選択する事で、GUIから書き換えができるようなサービスを提供しています。

うーん、さすが有償ツール!なんて感動している場合ではありません。
VisualDSP++はとても高価なツールです。
業務で使うならまだしも、趣味のDSP開発で手の出せる金額ではない事がわかりました。

Blackfin BlueBootは、このような背景から高価なツールを購入せずともBlackfinに接続されたフラッシュ・ロムを書き換えられるようにしようというプロジェクトです。

プロジェクトのゴール

このプロジェクトは、以下のゴールを設定しました。
  • Blackfin搭載のターゲットに対応可能な事。
  • 幅広いフラッシュ・ロムに対応可能な事。
  • とにかく簡単に使える事。
  • ユーザが自由にターゲットを追加できる事。
  • 業務でも趣味でも少ない制約で利用できる事。
  • 入手性の良いDSPボードを使って実例を示す事。
  • CUIとGUIでホスト側ツールを用意する事。
  • 将来的にWindows、Linux、Mac OSのプラットフォームをサポートする事。
  • ターゲット側のコードは公開し、幅広く利用してもらえるようにする事。
  • その他。
上記のゴールを基に設計したのが、今回公開するBlackfin BlueBootです。

簡単に使える

Blackfin BlueBootが標準でサポートするBlackfin基板を使う場合、特に簡単に使う事ができます。
最初にリリースされるWindows版における動作を見てみましょう。

インストーラでソフトウェアをインストールすると、デスクトップにアイコンが作られます。
ダブルクリックしてソフトウェアを起動します。


ソフトウェアを起動すると、以下のような画面が出現します。


初めに行なうのは、ターゲットとホストを接続するシリアル・ポートの設定です。


次に標準的にサポートされているターゲット・ボードの選択を行ないます。


このリストにないターゲット・ボードの場合、インストール先ディレクトリに公開されているターゲット用ソース・コードと設定ファイルの更新により、独自にブート・ローダを記述する事で対応させる事ができます。(これは後日、別途記事を書きたいなぁ。)


最後に、使用するブートローダとアプリケーションを指定して選択は完了です。

Boot Loaderとは、初段でターゲットに流し込むフラッシュ・ロム書き換え用プログラムです。
Boot Loaderを流し込んで書き込みを行なう場合、ターゲットをUARTブート・モードにしておく必要があります。

Applicationとは、ターゲット上のフラッシュ・ロムに書き込むバイナリを指します。
Applicationは、初段で流し込んだブート・ローダを経由してフラッシュ・ロムに書き込まれます。

こんな風に「シリアル・ポート」、「ターゲット・ボード」、「ファイル」の3つの選択をするだけで、即座に書き込みを実行できるのがBlackfin BlueBootです。


ちょっと便利なLDR表示機能

単に書き込めるだけでは面白くないのでBlackfinで使用しているLDRファイルの属性も表示できるようにしました。


Version 0.2.0ではBF592形式しか対応していませんが、順次対応を拡大しようと考えています。
あ、DEADBEEFなんて洒落ていますね。

ダウンロード

  • こちらからダウンロードできます。
  • ライセンスはMITです。
  • 業務の開発に、趣味の開発に存分に御活用下さい。
  • 無保証です。使用した結果起きる如何なる損害も当方は責任を負いません。

関連文書

  • 先日の記事でM25P16の書き換えコードを公開しました。
  • DSPいじりを楽しみたい方には、金子システム株式会社さんが販売されているACB-BF592をお勧めします。
  • DSPなどの話題が盛りだくさんの酔漢さんのページ、DSP空挺団もお勧めです。

まとめ

今回のBlackfin BlueBootツールは、これからBlackfinを使ってみたいけどツールは高価で手が届かないという人にも、手軽にDSPを体験して頂く事のできるツールとして設計しました。

Blackfin BlueBootで用いた、「第1段階に書き換え機能を持ったプログラムを流し込み」、「本当にやりたい事を第2段階でやる」という手法は、一般的に用いられる手法の一つです。
実はXilinx社のFPGAツールでもプラットフォーム・フラッシュの書き換えで同様の手法が用いられていたりします。

世の中の色々なツールの動作を観察してみるのも意外に面白いかもしれませんね。

0 件のコメント:

コメントを投稿