Repo
kjana00@gmail.com
2009-05-22 01:12:19
今朝はくもり。朝ごはんはパンとソーセージとゆでたまごとサラダ。昨日は帰りに 28 ℃ なんていうのを見て笑えたわけだけど、今日はずっと涼しい感じ。何か極端だな。
何でちゃんと動いてないんでしょうとあれこれ確認。大量にデバッグ出力っぽいものを出してるけどちゃんと確認してなかったというか確認しようのない形だったのを確認出来るようにするところから始める。まあ、単にどのポートがどれを出してるっていうのの一覧表を作ってみましょうっていうだけの話なんだけど。機械生成で済んでる uniform なところだけわかるようにしてみたらそれだけで結構様子が見える。割とちゃんと動いてるのね。
何かエラーになってるんだろうなという先入観の下、まずはちょっと変な気がしてた入力の一部を調べてみる。うん、おかしい。しばらく悩んでみた後で、ここはエミュレータの入力と単位が違うから合わせなきゃいけないのに同じ値を喰わせてるなというのに気付く。そりゃ、オーバーフローもするわな……うん、とりあえずオーダーは同じになった。でもまだ動かないね?
やっぱり定数を入れてたら駄目なのかなっていう信号の周りをちょっと真面目に調べてみたら、HI になってから LO になって、また HI になってをちゃんと繰り返さないといけないっていうのがわかる。まあ簡単なパルスだから簡単に作ればいいんで簡単に片付けて、はい、まだ動かない。
故障検出の結果ってどこに出てるかなと探してみたら、デバッグ出力の山の中には入ってなかったのでした。ということで別口で表示してみたらやっぱり何か検出してる。ええと? ……ロジックを追ってみるに、出力のループバックなのに最初から HI になってると問題ありと判断されるらしいね? ということで出力にステップ遅延を噛まして入力に持ってくるようにしたら故障は消えた。でもまだ動かない。あれ?
要求の信号はちゃんと渡ってるしなと思いつつ、ふとモジュール内での値を出力させてみたら実は渡っていなかったというお笑い。ああ、この関数で構造体に値をセットして上で、別の関数でもって適当な間隔で値を取り込ませる作りだったのか、これ。構造体に値をセットするところまでじゃ当然、信号は中身に渡らないと。……まあ、あっさり動いてたら見落してたバグも拾えたから良しとするか……
直ってみると、起動して信号を受け取って状態遷移するついでに色々してっていうのがちゃんと動く。思ったよりずっとまともに動くね。まあ引っ掛かりそうなバグが先に潰れたからっていうのが大きいか。これだとエミュレータでやれる起動からスリープまでの一連のシーケンスが全部動きそうだとやってみる。何か、刺さる……初めはメモリ不足か何かの影響かと思った。シーケンスを動かすのに必要なんで付け足した信号発生ブロックを定数に置き換えると、定数値が与えられていたらそう動くであろう形で動くから。でもちょっと定数に置き換えるブロックのパターンを試してたらどうもそうじゃないみたい。何かスリープする前に busy wait じみたことをやってるのが、この環境に持って来た時に問題になってる風。
それがどこかというのをちょっと見たけどわからなかったんで、明日もっと真面目に調べようということでお開きにする。明日の朝当番のためにセキュリティカードを借りて……危うく忘れて帰るところだった。危ない……で、帰って晩ごはんにとり汁でそば。山菜たっぷりといってもまあとり汁だよね、あれは。それになすの塩もみを付けて。みりんを抑えめにしたんで最近のよりすっきりめの味わい。
WWW 見て本読んでゲームして死にかけて、みたいな。Lousy 相手にするのに範囲攻撃魔法無しとか無理、と思いかけて、自分が悪臭雲の杖を持ってるのに気付くとか何かこう、間が抜けた感じ。思い出さなかったらもっと情無いからまだましか。