o ぱらぱらとしか流れないのは USBのポーリングが効いて 1ms 間隔になっているらしい。
o Windows だと read/write を並行にしたいときはスレッドにするのかな…。 ややこしい。
o メイルが1週間分くらい未読。
o FTDI のドライバだとスレッドを切っても FT_Read/FT_Write がシリアライズされてしまうようだ。どうしろと。
1. timeout を短か目にして細かく read/write をスイッチする、 2. ドライバのバッファや FPGA 内の FIFO を大きくする、 3. read/write のサイズを微調整する ことで、なんとか切れ目なく流れるようになった。
o が、どこかで取りこぼすらしくうまく動かない…。
o 取りこぼすのはシミュレーションでも再現したので調べると FIFO full を見るタイミングが1クロック早すぎたらしい。1クロック遅らせて解決。 正確なシミュレーションモデル重要。
が、まだ動かない…。
o Lattice の SVF 拡張の LOOP/ENDLOOP の仕様が分からん。 単純に回数ループするとだめみたいだが…。 とりあえず標準形式のファイルを吐かせて回避。
o 献血車がいたので 400ml 献血。受付&休憩場所もテントでなくてバスになっていた。
けんけつちゃん携帯マスコットをGET。 鹿の着ぐるみなので奈良県版のはずだが、北海道旭川赤十字血液センター になっているのはいかなる事情によるものか。
o 2229頃ゆさゆさ……震度0だった。震央は薩摩半島西方沖で発生時刻は2226。
o 朝にも揺れた気がして目が覚めたが気のせいだったか。
o LOOP は期待値と一致していれば抜ければいいのかな。 とりあえずそう実装して動いたのだが仕様と合っているのかどうか不明。
o メガネのつるがぽきんと折れた(汗)。
o Microsoft C/C++ (cl) のリンク出力ファイル名の指定は、コマンドラインの最後の方に -link -out:prog.exe でいいらしい。 ふつうに -o で書いても今のところは動くけど。
o Microsoft C/C++ で strcpy_s() のような "Security Enhancements in the CRT" は Visual Studio 2005 かららしい。
predefined macro の _MSC_VER
は
VS6 が 1200, VS7 (VS .NET 2002)が 1300、VS7.1 (VS .NET 2003)が 1310、
VS8 (VS 2005)が 1400 らしいので、
#if defined(_MSC_VER) && _MSC_VER < 1400 strcpy(dest, src); #else strcpy_s(dest, size, src); #endif
みたいにしておけば VS6 でもコンパイルできる。 MS C 以外でエラーにしたくないときは
#if !defined(_MSC_VER) || _MSC_VER < 1400 ...
くらいで。
o twm のキー操作ができなくなったので twm を再起動してみたが直らないので X サーバを再起動。
o ふにふにとプログラミング。
o Verilog HDL で書き書き。 H の時間、L の時間を管理しても周期が一定しないので、周期を計るカウンタも追加。
o メイルを流し読みしていたらリマインダが来ていたのであわてて登録。
o 応募はがきを出してみたり。
o ニセ。ちょっと高速化したら半分くらいの時間になった。これ以上は難しいな。
o foo=1,bar=20 てな感じのオプション文字列を美しく処理するのはどうするのがいいかな…。
o 夜になって外気温が20℃を切ってきた。窓を閉めていると室温は30℃。なぜだ。
o ニセ。CPLDの容量がいっぱいでロジック貧乏暮らし。 記述をちょっと変えると増えたり減ったりして扱いづらい。
o ニセ。完璧……あれ?
o ねむい。腹の調子が悪い。
説1: ヒヨドリ、説2: ホシムクドリ、説3: トラツグミ。
模様があんまり典型的じゃないけど、ホシムクドリかなあ。
[2009/9/23追記] イソヒヨドリ(ツグミ科)の雌もしくは若鳥らしい。 黒い足とくちばし、尾を振るところ、きれいなさえずり(雌も)も合致する。 こんな山の中まで飛んでくるのか。
Zzz...
o メイルを流し読み。片付いた(←読んでない)。
o 市街地の方から音が聞こえる。お祭りかな。
o 夜には花火が上がっていたが山の向こうで見えない。
o Windows はふつうに non-blocking I/O みたいなのは無いのかなあ。 スレッドとか overlap とかあるけど単純じゃないし…。
o ニセ。それもうできてるんですけど…。後からしょぼいものを作ってどうする。
o QFP はがし。やっぱり石の方が死んでいるな。
引っ掛けてついでに取れてしまった部品をヒートガンで付けようとしたが、 風量を最弱にしても飛んで行ってしまう。こて先(≒小手先)の技で付ける。
あたまいたいので一回休み。
o 寝飽きたので洗濯したり軽く掃除機かけたり。
o すぐ近くの山(?)でモズがなわばり宣言をしている。狭くないか?
o Windows の API で FILE_FLAG_OVERLAPPED 付きで CreateFile() したハンドルは、 read/write は常に非同期にしなければならないらしい。write は overlap で、read の方は overlap しない普通の同期でいいと思っても両方 overlap で書かないとだめ。
overlap な read は SetCommTimeouts() で指定したタイムアウトが効かないようなので 1byte ずつ読むはめになる。
いや普通に non-blocking I/O があるだけでいいんですが…。
o 本日のバグ。sprintf(3) のつもりが sscanf(3) と書いていた。
o 赤十字血液センターから結果のお葉書。だいたい範囲内(汗)。
o なんか RS-232C の最後の方のデータをとりこぼすと思ったら、 テストデータを出すプログラム(NetBSD 上) が先に終了してしまって制御線の状態が変わるかららしい。 適当に時間待ちを入れてから終了するようにする。
o が、時々とりこぼす。115200baud でフロー制御なしはつらいか。 RTS/CTS フロー制御をすれば OK だが、実機がどうなってるか知らない(←…)。
o モズはどっか行っちゃった。
o またモズが鳴きまくっているな。
o 帰省するか。11時台のバスで発。
o 本屋に寄って、新・山野の鳥、新・水辺の鳥をGET。
o 17時過ぎに着。
o 晴れてきたが台風の風が強い。
o 稲扱きの手伝い。 田んぼも狭いしからからに乾いていて順調だったのでもみにするまで 2時間足らず。4時間くらい天日干しして袋づめ。
o カブに付く黒っぽいイモムシと戯れたり。触ると丸まってころんと落ちて行方不明に。 賢いな(汗)。
o つるがぽきんと折れたメガネを買った店で見てもらう。 修理ができるらしいのでお願いする。ついでに別のメガネもお願いしたり。
o 久しぶりに車を運転したり。エンスト1回。
o スズメバチの巣の近くのゴーヤ撤去。高枝切りばさみそーっと…(ぶーん)。
o 新米を持ってお寺へ。
o お彼岸なのでお墓参り。
o モズやサギを観察。いわゆるしらさぎの冬羽は区別しづらいが、たぶんダイサギ。
o 修理してもらったメガネを受け取り。創業20目年記念とかでメガネスタンドをくれた。
o 戻るか。12時半くらいに発。買い物しつつ18時過ぎに着。
o 録音していたのをいくつか処理。終わらない。
o 0.5mm の QFP にジャンパを飛ばす。はんだごてが太いのしかない…。 ブリッジしまくって散々だ。
o 奈良交通が値上げを申請とな。
o NHK-FM を聞いていたら、21:04:01頃ぶちっと切れて無音に。 21:05:24オルゴール演奏になった。21:08:56番組終了間際に復旧。 NHKホールからの中継で事故ったか。
だるい。Zzz...
o 駅前を通ったらせんとくんがいた。撤収中だった。
o 0530 ベランダに来たハシボソガラスにたたき起こされる。
o ごめん USB 忘れてた(←…)。
o ヒートガンであぶった所で部品がふっ飛んでいた(位置的に)。小さい部品は困るなあ。
o ニセでかかわった製品が国内発表。
o ニセ。部署が無くなることになったらしい。どこに移るのか謎。
o 歯の詰め物が変形したかな(汗)。
o HDD やらを買っていた秋葉原の BLESS が昨日で廃業とな。HDD どこで買おう…。