玄箱再び
なぜ玄箱かというと、MITOUJTAG新バージョンの動作検証のためです。
今回、MITOUJTAGのフラッシュROMライタを大きく改良したので、動作に間違いがないか、いろんな機器をつかってチェックしています。
というわけで、MITOUJTAGを使って玄箱のフラッシュROMをJTAGで書き換える手順を紹介します。
まず、玄箱にJTAGをつなぎます。
MPC8241のBSDLファイルを用意して、デバイスを追加します。自動シャットダウンを回避するため、後ろのスイッチを押しながら電源を入れます。
ちゃんとデバイスがつながっているかどうかを確認するため、とりあえずJTAGでサンプリングします。すると、下の図のように各ピンの状態が見えます。CPUのデータバスは、0x20040002と0x20040000を交互に繰り返しているようですが、これが何の命令を実行しているのかはわかりませんでした。(0x20040002の方が3倍くらい時間が長い)

JTAGフラッシュROMプログラマを立ち上げて、あらかじめ作っておいた「CPUのピンとフラッシュROMのピンの対応表」をロードします。MITOUJTAG BASICバージョン1.2.3では、接続形態が画面上に簡単に表示されるようになりました。この機器では、バス幅は8ビットでA-1を使うタイプ(つまりROMは16ビット品)であることが図示されます。

フラッシュROMライタの「調査」ボタンを押すとセクタ情報が自動的に調査されます。この玄箱に載っているフラッシュROMは、70個のセクタがありますが、全部のセクタが同じサイズではなく、ボトムの方のブロックサイズが細かくなっています。

ブートコードは、フラッシュメモリの物理アドレス0x300000番地から配置されますので、上の画面の左側に写っている表で、セクタ48(アドレス0x300000)のセルクリックし、この領域に40kバイト程度のブートコードを書き込みます。書き込みには約2分かかります。
今回のMITOUJTAGバージョンアップで、フラッシュROMのセクタ消去に対応したので、ブートコードだけを書いたり消したりするのが楽にできるようになりました。
玄箱にシリアルコンソールをつなげて起動すると、カーネルイメージがないとエラーを表示します。

また、ブートコードの起動から、エラー出力とシャットダウンまでの過程が、下の図のように波形でも見えました。ほんの一瞬なので撮るのはちょっとコツがいります。

カーネルは2Mバイト以上あるので、書き込みにはそれなりの時間がかかります。時間がかかる作業は夜間に行います。
玄箱を扱う詳しい手順などは、いずれチュートリアルに記載します。
MITOUJTAG BASIC Version1.2.3は、来週リリースします。
もちろん、MITOUJTAGは玄箱に特化したソフトではなく、汎用の組み込み開発ツールです。MITOUJTAGを使えば、個々の機器のCPUやフラッシュROMの種類といった構成に左右されずに、GUIで操作するだけで、簡単にフラッシュROMが扱えるようになるでしょう。
最近のコメント