« トラ技78Kマイコンの各種アプリケーションを公開しました | トップページ | VerilogでBLOGANAを使う »

2008.11.30

MITOUJTAG Pro. 2.0.4リリースします

最近、MITOUJTAG Proを注文していただけることが増えてきました。

しかし、今のMITOUJTAG Pro(2.03a)は不可解な動作が多く、これではさすがにまずいと思い、この3日間徹夜してMITOUJTAG Proを改良しつづけました。

じつは9月に「子ウィンドウによってツールバーが変わる」という改良をおこなったのですが、この改良が大失敗でした。

作業内容(アクティブなMDI子ウィンドウ)によってツールバーが変われば便利かと思ったのですが、BorlandC++ Builder(いや、Windowsの仕様?)ではツールバーへのボタンの追加や削除がやたらと面倒で遅いのです。使うなと言っているとしか思えない機能でした。
しかも、この改良を行ったときから、Abstractエラーとかいう極めて不可解なエラーを発生するようになりました。

問題の原因は次のとおりでした。ツールバーのボタンを押すとOnClickイベント関数が実行されますが、この関数の中でアクティブなMDI子ウィンドウが変わることもあるので、ツールバーのボタンも変わってしまい、イベント関数がリターンするときに自分自身がいなくなっているので、大変なことになるのです。

諸悪の根源は、ツールバーが動的に変わるしくみだったので、それをやめました。かわりに、現在アクティブなウィンドウの内容や現在できる操作によって、ツールバーのアクティブなボタンが変わるようにしました。
これが大正解。もう、不可解なランタイムエラーは全く発生しなくなりました。

またついでに、現在できない操作(バウンダリスキャンのCLAMP命令をもっていないデバイスにCLAMP命令を発行するとか)や、してはいけない操作(ロジアナ実行中にケーブルを切断するなど)はできないようになったので、とても操作性がよくなりました。

Bscancpld
バウンダリスキャン画面で、CPLDを選択した状態

Logiana
ロジアナウィンドウがアクティブな状態

Ajfg
JTAGスクリプト編集画面

Windowsアプリケーションとしてはごくあたりまえのことなのですが、プログラムの規模が大きいので、ボタンを押す順番とか様々な可能性を考えていたら、丸2日くらいかかっていました。


また、タスクマネージャというものを作りました。
Task

これは何をするものかというと、JTAGではたとえば、
・JTAGバウンダリスキャン(端子の観察)を連続で行う
・JTAGロジアナでキャプチャする
・JTAGスクリプトを実行する
・SVFプレイヤーを実行する
・フラッシュROMへの書き込みを行う
・FPGAやCPLDへ書き込みを行う
などの操作は、互いに排他的であって、かつ、「実行」「停止」という概念があります。
つまり、FPGAに書き込みながらロジアナでキャプチャすることはできません。

そのため、各ウィンドウごとに「実行」や「停止ボタン」を作るのではなく、システムが今なんの作業をしているかを1箇所で管理できるようにしました。
ロジアナの画面をアクティブにして「実行ボタン」をおせばロジアナが開始するし、JTAGスクリプトの編集画面で「実行ボタン」を押せばスクリプトがコンパイルされて実行されます。各種機能の「停止」はどの画面からでもおこなえます。このちょっとしたしくみが実はすごく快適でした。ようやく自信が持てるようになってきました。

このほかにも10個くらい大きなバグをとったので、ようやく出荷です。
ただ今ご注文いただいているお客様には、MITOUJTAG Pro version 2.0.4をお届けします。

Mjpro204

どうぞよろしくお願いします。

|

« トラ技78Kマイコンの各種アプリケーションを公開しました | トップページ | VerilogでBLOGANAを使う »

コメント

コメントを書く



(ウェブ上には掲載しません)




« トラ技78Kマイコンの各種アプリケーションを公開しました | トップページ | VerilogでBLOGANAを使う »