ハードウェアが動かない!
ハードウェアが基板メーカから上がってきて、ひと通りハードの単体チェックを済ませたあと、初めてのソフトウェアとの結合テスト。
今日は帰れないなと覚悟する日でもあります。^^;;
まぁ、まず一発では動かないんですけどね。
とはいえ、ソフト屋さんとしてはひと通りの単体デバッグもしているし、ソフトには自信がある!でしょう。けれども、無用にハード屋さんと衝突しても一つも良いことはありません。
ソフトに自信がある。でも動かない。
そんな時に、確認するべきことを挙げてみたいと思います。
以下、ありがちな順番ではありません。あくまで、ケースバイケースです。
- ハードのミス
- コンパイラのバグ
- 初期設定漏れ、間違い
- エラッタ
Table of Contents
1.ハードのミス
これはあります。でも、怒らないでください。
ハード屋さんの心情としては、J-TAG ICEなどでポートを一つづつ叩いて確認したりするのは、効率の面でも辛いのです。
こういう時は、ハード屋さんは、想定しているパターンのテストをソフトで制御して早期の解決をしたい場合が多いです。
冷静になって、協力してあげてください。
会社が評価するあなたが書き上げたステップ数にはプラスにならないかもしれません。でも、ここでの協力がその後の大きな協力関係にきっとなります。
2.コンパイラのバグ
これは、結構あります。
私が経験した例としては、Syntax Errorがあった行が飛ばされた。
変数の二重定義がスルーされた。
変数のキャスティングや数値丸めがおかしい。
というものです。
もうこれはブレーク張りながら地道に追うしかありませんでした。
もっと効率的に発見する方法はないのでしょうかね。
3.初期設定漏れ、間違い
全く動かないとか、結果の桁数がおかしいとか、論理がおかしいとか、ある程度傾向でわかったりします。
動いたり動かなかったりというのも、初期化値でたまたま動いたり動かなかったりということがあります。
これはもう、ひたすらデータシートと比較チェックするしかありません。
一度設定を捨てて、一つづつ動作確認をすることが近道な場合もあります。
4.エラッタ
CPUや機能ICが仕様を満たしておらず、販売後に見つかったエラーをエラッタといいます。
メーカのサイトで公開されていますが、たいてい見つけるのは困難です。メーカの販売するチップ数も膨大ですからね。
なので、チップメーカの代理店に聞くのが手っ取り早いしお薦めです。代理店にしてみれば面倒な仕事ですが、半導体販社としての差別化には効果的だと思いますよ。
不具合の原因がエラッタだとわかった場合は、その不具合を避ける設計にするしかありません。最悪の場合はハード変更もありえますが、なんとか回避する方法を考えたいところです。
チップの代理店とのお付き合いは後述します。
ぜひ、親密な関係を築いて、強みにしてください。(後述)