FAQ

Microsoft

連続稼働テストで役に立つツール
Q:

現在開発中の電話機において、長時間の連続運転ができない状況にあります。
現象としては、OS Timer(4~11)のうち、6と7を使用しています。6は 2msで、7は 25msとして使用。連続で通話をしていると、途中で各Timerの割り込みが上がってこなくなります。
そこでガード処理として、割込みが上がらないときにOS Timer(6,7)を以下のとおりリセットして、Timerを再起動するように対策を入れました。

(1) Machレジスタに0を入れる。
(2) Mach Cntrlレジスタに0を入れる。
(3) カウントレジスタを0にする。(Timer(6,7)が動き出す)

ところが、TimeOutすると割込みのStatusは立ちますが、割込みはかかりません。
以上の状況となり、連続運転が途中で止まってしまいます。
何かよい方法、または既知の障害などに該当して対応した実績などありませんでしょうか。

A:

通常、連続稼動テストなどで障害がある場合に原因を追求するのは簡単にはいかない場合が多く、Windows CEでもツールがいくつか用意されています。
状況に応じてシステムの現状を把握して対策することになります。

1. メモリ(Heap)リークによるもの
Application Verifier Tool
http://msdn.microsoft.com/en-us/library/aa934674.aspx

2. 現状のトレース
Remote Kernel Tracker
http://msdn.microsoft.com/en-us/library/aa935817.aspx

Call Profiler
http://msdn.microsoft.com/en-us/library/aa934480.aspx

WindowsCEのリモートツール(CE5.0用ですが6.0でも使用できます)
http://msdn.microsoft.com/en-us/library/aa446911.aspx

3. 割込みのレイテンシー
ILTiming.exe というツールがあります。
http://msdn.microsoft.com/en-us/library/aa911504.aspx
http://msdn.microsoft.com/en-us/library/aa913464.aspx

この他には、OEMInitの実装や割り込みIDの定義に重複(固定IDにした場合、ENUMで追加する実装だといつか重複する)等の原因が考えられます。