プログラムをあれこれ弄り回していて 1 台目の基板で SilentC が起動しなくなってしまった。今日、追加部品が届いたので 2 台目を組み立て、リカバリにより初期状態に戻すことができた。MAC アドレスも初期化されるから、改めて設定しなおす必要がある。MAC アドレスの設定はリカバリ後に一度しかできない。リカバリは本誌の説明にあるように初期状態の基板と組み合わせて util::recover でクローンを作る方法、BDM デバッガを使う方法、それに util::update コマンドで SilentC のアップデートを行う方法の 3 種類がある。SilentC の最新版がダウンロードサイトにあると書かれているが、現時点ではまだ用意されていないようだ。オリジナルの SILENTC.BIN のバックアップを取得しておいてリカバリできることを確認した。手順は次の通り。
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 追記]
インターフェース誌のダウンロードデータ中の記述に上記のチェックサムが追加された。
付録基板のhttpサーバをダウングレードしてみた
SilentCにパッチをあてて、httpサーバをダウングレードしてみました。
うむ、人柱覚悟の実験は、非常に貴重な情報でござる。
感謝!
デバッガもリカバリ用の2台目の用意も出来ていないうちに飛ばしてしまったのは大失敗でした。
てへっ。
おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。