Hack BBS

[全部のスレッド一覧][新規投稿][記事の削除・変更] [Home Page]

返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.764】の中の記事をすべて表示しています

【No.764】のスレッド
04/06/11(金) 03:33:54 投稿者[たつや] <http://linkstation.yi.org/> [No.764]のスレッド内
【No.764】 タイトル[HLAN 復活ぅ?] この記事がスレッドの最初です
起動しなくなってしまった私の HLAN ですが、なんとか(修理に
出すこともなく)復旧しました。

原因は、、、、、はっきり分からないのですが、FLASH の書き換え
に失敗していた可能性が高いです。
RAM 上にあるブートローダを debug mode のコマンドで書き直し、
debug mode から抜けたところなぜか(?)カーネルが起動しまし
た。
FLASH に書いてあるはずのブートローダとこのとき RAM に書き込
んだものの内容はほとんど同じなので、これで起動できるはずが
ないのですが、、、

FLASH に正常にデータが書き込めていなかったと考えるほかなさ
そうです。書き換え後の確認方法を再検討する必要があるかもし
れません。

04/06/12(土) 00:15:18 投稿者[山下康成] <http://www.yamasita.jp> [No.764]のスレッド内
【No.772】 タイトル[Re: HLAN 復活ぅ?] 【No.764】に対する返信
>起動しなくなってしまった私の HLAN ですが、なんとか(修理に
>出すこともなく)復旧しました。

あらら。

>RAM 上にあるブートローダを debug mode のコマンドで書き直し、
>debug mode から抜けたところなぜか(?)カーネルが起動しまし
>た。

「RAM 上」というのは、起動時に fl2 から RAM に展開された
ということでしょうか?
それとも、もっと別のことでしょうか?
#たつやさんならありえそう、、

>FLASH に正常にデータが書き込めていなかったと考えるほかなさ
>そうです。書き換え後の確認方法を再検討する必要があるかもし
>れません。

標準のファームウェアでは、
Flash に書き込む前後に、良く AVR にコマンドをなげています
ひょっとすると、何かあるのかも
#単に LED の制御だけなのかもしれませんが、、、

04/06/12(土) 01:01:15 投稿者[たつや] <http://linkstation.yi.org/> [No.764]のスレッド内
【No.774】 タイトル[Re: HLAN 復活ぅ?] 【No.772】に対する返信
>「RAM 上」というのは、起動時に fl2 から RAM に展開された
>ということでしょうか?
>それとも、もっと別のことでしょうか?
>#たつやさんならありえそう、、

ブートローダは FLASH 上にあり、そのアドレスは 0xfff00000
からですが、リンク時には 0x800000 から実行されるように作ら
れています。最初、どうやってアドレスの異なるコードを実行し
ているのかさっぱり分からなかったのですが、実際にローダが実
行されているときには確かに 0x800000 からのアドレスに FLASH
とまったく同じ内容がコピーされており、実行されています。
(どうやってコピーしているかはまだよく理解できていませんが、
ブートローダの最初の部分で MMU の設定により行っているのでは
ないかと、、、)

ですから、関数のアドレスが変わらないような軽微な修正なら、
RAM 上のコードを直接書き換えることで修正が可能ではないか
と考えていろいろ試行錯誤していたわけです。
(この時点でまだブートローダから FLASH の書き換えができて
はいませんので、直すなら RAM を変更するほかなかったのです
が。)

でも、RAM にパッチを当てたのは FLASH 書き換えルーチンの方
で、カーネル起動部分にはまったく手を加えていなかったので
すが、なぜかカーネルが起動できてしまい、??? という状態
だったのです。

>標準のファームウェアでは、
>Flash に書き込む前後に、良く AVR にコマンドをなげています
>ひょっとすると、何かあるのかも
>#単に LED の制御だけなのかもしれませんが、、、

そうなんですよね。私もその辺が気になっているので、AVR の
ファームの解析なんぞを始めています。
単に LED の制御だけならあんなに多くのコマンドがある必要は
ないのではないかな? とか、、、