マイコン工作実験日記

Microcontroller を用いての工作、実験記録

DfUseでハマる

2015-05-26 12:29:34 | Weblog
仕事がらみでSTM32を使っているのですが、USB DFU対応のためにDfUseを使おうとしてはまったので、メモしておきます。

STM32のブートローダがDFU対応していることは知っていましたが、Flash書き込みにはいつもJTAGを使っていたので、DFU書き込みのためのPC側ユーティリティーであるDfUseを使ったこともありませんでした。DfUseが操作対象とするのはDFU形式のファイルですので、ビルドしたバイナリはあらかじめ.dfuファイルに変換しておく必要があります。DfUseのパッケージにはこの変換作業のためのツールとしてDfuFileMgrというプログラムが含まれており、Sレコードファイルやバイナリファイルを読み込んで、DFUファイルに変換することができます。ところが、このDfuFieMgrが出力先に指定した場所にファイルを生成してくれないのです。いや、最初はちゃんと動作していたように記憶しているのですが、いつの間にやら指定場所にファイルを作らず、いつもバイナリファイルが置かれている場所に出力しているようです。使用しているWindows 10の更新をしたことと関係があるのかもしれません。DfUseをインストールし直してみても症状が変わらないので、STのe2eで調べてみるとv3.04のDfuFileMgrにはバグがあるとの指摘が。。

そこでv3.03のパッケージを見つけてインストール。ところが、今度はDfUseで書き込み後にベリファイを使用とすると、DfUseが終了してしまいます。最初はマイコン側のUSB DFUドライバが悪いのかと思いましたが、そんなことは無さそう。再度、e2eで調べてみると同じ問題が報告されていました。v3.03のバグでv.3.04で修正されるとのこと。。

というわけで、あちらが立てば、こちらが立たず状態。しょうがないので、DfuFileMgrはv.303を使い、DfUseはv3.04を使うことでなんとか問題を回避して作業を進めることにしました。今やSTの評価ボードにはST Linkが備わっているので、DfUseを使う人も減ってしまっているだろうことは想像できます。しかし、bootloaderツールのような基本ツールがこんな状態でおざなりにされているとは驚きです。