RAMチェックエラーでビックリ!
想定外=予期せぬこと、日常の仕事でも発生します。
とある装置の制御回路を試験していたらこんなことに
遭遇し、あせってしまいました。
※福島第一原発の事故以降、想定外だと許して
もらえるような雰囲気が漂っているのはいい
ことじゃありません。
この回路、ハードもソフトも私の設計。
初出荷からだいぶなります。
そして、忘れた頃に追加製作の依頼がやってくるのです。
問題もなく安定して動作していると客先から聞いています。
その基板のテストプログラムを走らせて試験を行って
いるときでした。
回路には、測定データを記録させるため512kバイトの
スタティックRAMを乗せています。
そのRAMのチェックでエラーが発生したのです。
RAMは測定データの記録やシリアル通信データのための
バッファ、そしてグラフィック・プリント用の展開エリア
として使っています。
※スタックや変数はワンチップマイコン(H8S)
内蔵のRAM領域を使っています。(早いから)
この外部RAMのチェックでエラーが出ました。
RAMがおかしいのかと思って交換しようとしたのですが、
(過去、そんなトラブルもあったので)、何度もチェック
を繰り返すとエラーの出るアドレスが変わることに気が付
きました。
『ちょっと待て!』です。
「何が違うねん?」っと、試験環境を確認しますと、
やってました。 想定外を。
このRAMはシリアル通信の送受バッファにも使っています。
RAMチェック中も割り込みは禁止していません。
チェック中に外から通信が行われると「割り込み」でもっ
てシリアル受信データがこのRAM内に確保されたバッファに
書き込まれます。
ということは、データを受信するとRAMの内容が受信データ
に書き換えられるのです。
当然、実行しているRAMチェックの結果はエラー。
RAMチェック時の「操作仕様」として
・RAMチェック中のシリアル通信はダメ。
・コネクタを抜いておくか試験用PCのプログラムを
止めておく。
が必須だったのです。
この条件を守らずにRAMチェックしたものだからビックリ!
という事態に陥ったのです。
通常の検査では
(1)基板に電源投入
(2)各部の電圧や電流値を確認
(3)基本的入出力をチェック
(4)RTCなどのバックアップ系のチェック
(5)RAMチェック
(6)PCとつないでシリアル通信系をチェック
(7)総合運転
およそこんな手順です。
(6)(7)のあとに、なぜかRAMチェックをしたものだから、
試験用PCが定期的に出すシリアルデータ(マイコン側との
接続確認通信)を受けてしまい、エラーが出たのです。
これ、ある意味、エラーが出て正解なんです。
RAMチェックルーチンがちゃんとエラーを検出しているか
どうかの検証になりました。
まっ。結果オーライということなんですが、想定外で出る
エラーメッセージにはビックリします。
|
2013年6月13日 10時06分
|
記事へ |
コメント(0) |
トラックバック(0) |
|
・電子回路工作 |
トラックバックURL:http://blog.zaq.ne.jp/igarage/trackback/3418/
※ブログ管理者が承認するまで表示されません