Repo

kjana00@gmail.com

older <-

2012-07-03 00:57:30

今朝は晴れ。朝ごはんはパンとサラダとソーセージ。じりじりと暑いわね……

あんまり大幅に書き換えるのもなと手を止めてみたものの、どう考えても今の作りのままじゃ後に禍根を残すのが目に見えてるもんだから結局大幅な修正を加えてみるという辺りからお仕事スタート。前の EEPROM 周りのコードを出来るだけいじらないようにというのにも限度があるわな。挙句に実際の書き込みが起こるまでに、大域変数な構造体とそのコピーを比べて変わってたらキャッシュに書き込み、キャッシュが汚れてたら EEPROM に書き込みなんていう無意味な多段バッファリングが起こってたりするし。保存しないことにした構造体メンバの初期化が保存するのと同列に並んでたりもするし。自分で良くわからなくなるわ。

そんなこんなでいらないところをばっさり切って、普通っぽいコードに近付けた上でようやく動作確認してみる。EEPROM の初期化はちゃんと動いてるっぽい。使ってないところ 0 クリアするコード入れ忘れてたけど。で、.xls ファイルのツールでコマンド投げてみると……書き変わらないね? 何で?

コマンド投げた応答からするとちゃんとエラー無く通ってるのは間違い無い。キャッシュへの書き込みが起こらないと、この返事を作るのに使ってる構造体に値入らないから設定した値が見えるはずもないということで。ちょっと、開始時刻と終了時刻が同じに設定される辺り、呼ぶ関数を間違えてたりはしそうだけど。まあそれはそれで直すとして。

そうなるとキャッシュのフラッシュが為されてないとか、そんな話になるんだけどそんなことあるのかとしばらく悩む。初期値書き込むところではキャッシュのフラッシュは関係無いんだよね。で、フラッシュするのがこれ……ああ、ダーティフラグ落すの忘れてる、これ呼ばれる度に EEPROM に書き込んでたとすると寿命的にとてもよろしくない……それはともかく、ここで書いて、……書いて、ポインタ進めてないな。最初のブロックだけひたすらフラシュしてる。現状最初のブロックは書き換えしないブロックで、書き換えるはずのブロックにポインタが進んでないから書き換わったキャッシュがフラッシュされない……

……直したら、直った。何て間抜けな。良くある話ではあるけど。構造体配列をそのまま添字でアクセスするのが面倒だからってポインタ越しに操作しようとすると、どうしても間抜けなことをしがちか……それでバグを作り込んで悩んでたら世話無い。とりあえず、普通にブロック単位で読み書きする部分の普通の動作についてはこれで大丈夫っぽい。余分なところを 0 クリアするコードを入れた時に、主ブロックだけ潰してみたら初期化されるんじゃなくて副ブロックの内容がコピーされたっぽいからその辺も動いてるみたいだし。その辺りとエラーログの読み書きを確認したら、とりあえず基本は OK かな。EEPROM の読み書きにまつわるエラーへの対処をどうしようかっていのがまだなわけだけど。

そんな感じで終わって帰る。晩ごはんは冷奴と豚汁うどん。さっぱり涼しく。エアコンはいいね……ってそれだと晩ごはんのメニューが関係無い。まあ、この豆腐おいしいし。それで後は WWW 見たりゲームしたり。迷宮のミノタウルスを倒したんでまあ行けるだろうとアゾクに挑んで勝ってみた。ちょっと鎧が良くなって、なかなかに、それなり。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12