Fri 08/01, 2008

インターフェース誌 ColdFire 基板(2) [Electronics ]

Recover IF-ColdFireプログラムをあれこれ弄り回していて 1 台目の基板で SilentC が起動しなくなってしまった。今日、追加部品が届いたので 2 台目を組み立て、リカバリにより初期状態に戻すことができた。MAC アドレスも初期化されるから、改めて設定しなおす必要がある。MAC アドレスの設定はリカバリ後に一度しかできない。リカバリは本誌の説明にあるように初期状態の基板と組み合わせて util::recover でクローンを作る方法、BDM デバッガを使う方法、それに util::update コマンドで SilentC のアップデートを行う方法の 3 種類がある。SilentC の最新版がダウンロードサイトにあると書かれているが、現時点ではまだ用意されていないようだ。オリジナルの SILENTC.BIN のバックアップを取得しておいてリカバリできることを確認した。手順は次の通り。

  1. 初期状態の基板から tftp で SILENTC.BIN, FILEDATA.BIN, COLDFIRE.BIN を取得、保存しておく。
  2. tftp で util (SilentC プログラム)を取得し、関数 update に手を入れてチェックサムを表示するように改造し、ut などと適当な名前に変更して tftp で基板に書き戻す。[変更済みのファイル(オリジナルは改行等を少なくしてファイルサイズを節約している)]
  3. tftp で保存しておいた初期状態の SILENTC.BIN を基板に書き戻す。おそらく、MAC アドレス設定後のものを使えば、その状態でリカバリされると思う。
  4. telnet で接続し、ut::update コマンドを実行。適当にチェックサムを入力して処理を継続すると正しいチェックサムを表示して終了するから、再度コマンドを実行して今度は正しいチェックサムを入力してリカバリをおこなう。
  5. 基板を再起動すれば SilentC は初期状態に戻っている。IP アドレスなどはそのまま。しかし、MAC アドレスが変わっているために、arp テーブルのエントリを削除しないと再接続できないことがある。スイッチングハブのリセットが必要な場合もある。

SilentC で用意されているファイルはプログラム、HTML コード、設定情報等であるが、これらはテキストファイルであるから、中身を見ると色々判ってくる。また、SILENTC.BIN を UNIX の strings コマンドにかけてみると、各種キーワードが取得できる。

例えば MAC アドレス設定のための util::macset 関数を見ると MAC アドレスの上位 4 バイトが固定値で、下位 2 バイトを設定することが判る。初期状態では 0xff, 0xff となっていて、この状態でないと設定ができないようになっている。試しにこの制限を外して実行してみると bit 1 を 0 にする方向にしか設定されずエラーになる。これはフラッシュメモリの特性によるもので、一旦「消去」してから書き込みをおこなう必要がある。ただし、消去はページ単位であるため、任意のバイトのみを消去することはできない。フラッシュ書き込みには組み込みの NvmWrite 関数が使用されていて、他 NvmErase という消去関数もあるようだが、引数などの仕様は不明だ。まぁ、これに失敗して中身を飛ばしてしまった次第である。例によって、ここに書いた情報は無保証であるから追試は自己責任でよろしく。

[2008.08.07 追記]
インターフェース誌のサイトにオリジナルデータが置かれた。*.BIN 形式の他に *.MOT 形式のものも用意されている。但し、SILENTC.BIN についてはチェックサムが記載されておらず、「SilentCシステムも消してしまった場合は、CPUカード単体では復旧の手立てはありません」とだけある。記述に間違いは無いが、上記の方法で MAC アドレスの再設定は可能な筈だ。

[2008.08.09 追記]
インターフェース誌のダウンロードデータ中の記述に上記のチェックサムが追加された。

Posted by masato at 10:20 PM
このエントリーのトラックバックURL: http://bird.dip.jp/cgi-bin/mt/mt-tb.cgi/1611
Trackbacks

付録基板のhttpサーバをダウングレードしてみた
SilentCにパッチをあてて、httpサーバをダウングレードしてみました。

From 新適当マイコン電子工作研究所 at 10/01, 2008 03:59 PM
コメント

うむ、人柱覚悟の実験は、非常に貴重な情報でござる。
感謝!

Posted by: せくすぃ部長 at 08/01, 2008 11:06 PM

デバッガもリカバリ用の2台目の用意も出来ていないうちに飛ばしてしまったのは大失敗でした。
てへっ。

Posted by: masato at 08/01, 2008 11:24 PM
コメントする

おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。










名前、アドレスを登録しますか?