Repo

kjana00@gmail.com

older <-

2012-04-07 01:29:48

今朝はくもり。朝ごはんはパンとサラダとソーセージ。ほんと、週末毎に天気が悪くなる気がするな……多分、気のせいではあるんだけど。ちょっと気温も低めな中仕事場へ。

サブマイコンで見てるセンサーがちゃんとしてるんだかどうなんだか、ということで先週 A/D 値のログを吐けるようにしておいたのを確認……っていうか、こうすると値が変わるはず、っていうのでとにかく変わるっていうことを確認。思ったのと逆方向に動いてるけど、ソース見るとそう動くのが正しいみたい。っていうことは、とりあえずいいのか。

この A/D 値を見てエラー検出してメイン側に通知してるわけで、というのを追い掛けてるうちに、天絡なり地絡なり、単に繋ぎ忘れるなりした場合にエラーにならないなっていうのに気付く。エラーの時は特別な値を返してるけど、特別な値として扱ってないからエラーにならないっていう。それはまずいだろうと直してやったらいきなりブレーカ落ちるようになったけど。

何でかっていうと、センサーの A/D 値を物理値に換算した上で移動平均を取ってアプリケーションに渡すモジュールが、データが足りないうちはエラー値を返すようになってたからでした……ということでエラーにならない値を返すようにしてやる。でも、まだ落ちる。何だと思ったら、メインマイコンから渡してる値も同じところでエラー検出に使ってるんだけど、応答が返ってきてキャッシュが更新されるまではこれもエラー値を返すようになってるからでした……ということでこっちも直してめでたし、めでたし。適当にエラーにするしきい値を変えて、最初にやったのと同じように測定値が変わるようにしてやると、ちゃんと条件に合わせてエラーになる。後は実際の状況と A/D 値から算出してる値が十分に近いことを確認出来ればっていうところだけど……さて、どうしようかね?

ちょっと道具が見当たらないから保留しておいて、月曜日の出張に持って行くからリリース版のプログラム焼いといてと言われた基板をチェックしたり、メインマイコンとサブマイコンの通信周りがどうにも脆弱なのをどうにかしようと考えてみたり。非同期な通知があるのに要求送って応答を待つっていうのを基本にしてちゃだめだろう……

要求と応答の厳密な対応が必要なわけでもなし、ということでメインマイコン側からのメッセージはとにかく受信して処理する、適当な間隔で要求を送り付けておくという形にしてみた。受信するメッセージが途中で切れてたりしても大丈夫なように、コードとペイロード長を読んで、それからペイロード読んで一メッセージ分になったら処理するように、と。要求と応答の形っていうだけならまだしも、応答にしろ非同期な通知にしろ UART モジュールのバッファを一回読み出すだけできっちりメッセージバウンダリで区切ってメッセージ取れるっていう想定なのが気持ち悪かったのを解消。

……したのはいいけど、通信出来なくなりましたとさ……ということでしばらくデバッグ。要求送り付けるのに使うタイマーキックしてないとか、ペイロード長とヘッダ含めたメッセージ長が一致するわけないとか、キャッシュエントリをちゃんと探索しないで適当な番号のキャッシュにデータ放り込んだらそりゃだめだろうとか、色々と細かくもばかばかしいバグを片付けたら一応、ちゃんと通信出来るようになった。月曜日にもうちょっと様子見るとして、これを本当にコミットするかどうかは……どうしようね。

そんな感じで今日はおしまい。帰って晩ごはんに牛と野菜のオイスターソース炒め。ちょっと青椒牛肉絲風。適当だけど。胡椒よりも何か他のもののが良かったのかな。微妙に後味が微妙。

後は WWW 見たりゲームしたり本を読んだり。昨日ちらっとやってすぐ死んだアンドロイドの狂戦士が割と面白かったんで真面目にやってみる。「巻物なんて読めない」とか初めて見たわ。杖も巻物もさっぱり使えないから色々さっぱり。ただひたすらに近接攻撃が強いという。隠し扉は多分そこにあると思って穴を掘れ。罠ははまって踏み潰す。……狂戦士なんだか蛮族なんだか。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12