首页 / 专利库 / 计算机网络 / 软件缺陷 / Method for detecting defect of software and microcomputer system

Method for detecting defect of software and microcomputer system

阅读:333发布:2020-11-19

专利汇可以提供Method for detecting defect of software and microcomputer system专利检索,专利查询,专利分析的服务。并且PURPOSE:To provide a method for detecting defect of the software by which the bug of a program is found out and the microcomputer system making the execution possible. CONSTITUTION:When data are written in a data RAM 2, a level '1' is written in an address of a test RAM 3 corresponding to the data RAM 2. When data are read from the data RAM 2, data in the test RAM 3 corresponding to the data RAM 2 are simultaneously referenced. When the data in the test RAM 3 indicate a level '1', it is discriminated that the data read from the data RAM 2 are valid and the processing is continued. When the data in the test RAM 3 indicate a level '0', it is discriminated that the data read from the data RAM 2 are invalid data read from a non-setting data area and exception processing is conducted. This is very effective to improve the quality of the software. Furthermore, it is also possible to realize a fail-safe function that the fault of a microcomputer is detected to stop the system safely.,下面是Method for detecting defect of software and microcomputer system专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】 マイクロコンピュータシステムのデータ記憶領域の1ワード毎に設けられてなる各フラグを初期状態に設定し、前期データ記憶領域にデータを書き込む際に、書き込まれるワードに対応するフラグの状態を反転しておき、同データ記憶領域からデータを読み出す際に、読み出されるワードに対応するフラグの状態を参照し、そのワードにデータが格納されているか否かの判断を行なうことを特徴とするソフトウェアの不良検出方法。
  • 【請求項2】 マイクロコンピュータシステムのデータ記憶領域の1ワード毎に設けられてなる各フラグを格納するフラグ格納領域と、前期各フラグを初期状態に設定可能な初期設定手段と、前期データ記憶領域にデータを書き込む際に、書き込まれるワードに対応するフラグの状態を反転可能な反転手段と、同データ記憶領域からデータを読み出す際に、読み出されるワードに対応するフラグの状態を参照可能な読出し手段とを備えていることを特徴とするマイクロコンピュータシステム。
  • 【請求項3】 上記初期設定手段及び上記反転手段は、
    上記フラグ格納領域に、マイクロコンピュータに設けられてなるフラグ用の拡張データバスが直接接続されていることにより構成されていることを特徴とする請求項2
    記載のマイクロコンピュータシステム。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【産業上の利用分野】本発明は、マイクロコンピュータシステムさらにはソフトウェアのデバッグ技術に適用して特に有効な技術に関し、例えばデータの未設定領域又はアクセス禁止領域を読み出すというソフトウェアの不良をなくす場合に利用して有用なソフトウェアの不良検出方法及びマイクロコンピュータシステムに関する。

    【0002】

    【従来の技術】マイクロコンピュータの応用システムの開発にあたっては、通常、システムの完成後にテストを行って、そのシステムの良否を判断している。 一般に、
    マイクロコンピュータシステムにおいては、システム開発者が作成したプログラム(ソフトウェア)に従って、
    メモリ領域に対するデータの書込み・読出し処理、読み出したデータの演算処理、さらに演算で得られた新たなデータの再書込み処理等の動作をマイクロコンピュータにより繰り返し行なっている。 従って、従来より行われていたテスト方法は、上記マイクロコンピュータにおける動作に鑑みて、システムに入したテストデータに対してシステムから期待通りの出力や反応が得られたか否かを判断基準とするものであった。 そして、そのテストをプログラムの例えば全分岐又は全命令に付いて行っていた。

    【0003】

    【発明が解決しようとする課題】しかしながら、上述した技術には、次のような問題のあることが本発明者らによってあきらかとされた。 すなわち、その問題点とは、
    実際には不良であるにもかかわらずテストでは正常であるとの結果が得られてしまい、システム完成後の実稼働状態(即ち、ユーザーにおける使用状態)において初めて不良であることが顕在化することがある、というものである。 これは、プログラムの読出し命令に従って、マイクロコンピュータがRAMなどの該当するメモリ領域を読みに行った時に、その読出し動作の前にそのメモリ領域に目的とするデータが書き込まれていなかったり、
    或は既に不要となった古いデータが消去されずに残っていたりすることが原因と考えられる。

    【0004】つまり、上述したように目的とするデータが格納されていないデータ未設定領域であっても、その領域の各ビットには“0”か“1”の何れかが書き込まれた状態となっており、従ってその領域には“0”や“1”が並んでなる何等かのデータらしきものが格納されていることになる。 そのようなデータらしきものや上述した古いデータの“0”や“1”の並び方の一部又は全部が、偶然にも本来の正しいデータにおける並び方と一致している場合、上述したテストにおいてシステムから期待通りの出力等が得られてしまう。

    【0005】従って、テスト結果が正常となってしまうため、従来は、データ未設定領域を読み出す命令の存在や、古いデータを消去して新しいデータを書き込む命令の欠如、というプログラム上のバグ、即ちソフトウェアの不良を発見することができない。 このような不都合な現象が起こる確率は、例えばデータを一バイトの値として使用する場合には1/256であり小さいが(正規のデータとそうでないものとの間で8ビットの各ビットにおける“0”や“1”が完全に一致しなければならないため)、一バイトデータにおけるある一ビットの値のみを使用する場合には1/2となり極めて深刻である(正規のデータとそうでないものとの間で8ビット中の該当するビットにおいてのみ一致していればよいため)。

    【0006】本発明はかかる事情に鑑みてなされたもので、その目的とするところは、データ未設定領域を読み出す命令の存在や、古いデータを消去して新しいデータを書き込む命令の欠如、というプログラム上のバグを発見することを可能ならしめるソフトウェアの不良検出方法を提供することにある。 また、本発明の他の目的は、
    上記ソフトウェアの不良検出方法の実行を可能ならしめるマイクロコンピュータシステムを提供することである。 この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述及び添附図面から明らかになるであろう。

    【0007】

    【課題を解決するための手段】本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。 すなわち、本発明のソフトウェアの不良検出方法においては、マイクロコンピュータシステムのデータ記憶領域の1ワード毎に、そのワードにデータが格納されていることを識別するフラグを設け、データ記憶領域からデータを読み出す際にはそのフラグの状態を参照することによって、そのワードに有効なデータが格納されているか否かの判断を行なうようにしたものである。

    【0008】具体的には、特に限定はしないが、例えばCLR(クリア)命令などの特定の命令または命令群により、先ず各フラグを例えば“0”の初期状態にする。
    そして、マイクロコンピュータからデータ記憶領域にデータを書き込む時に、フラグを立てる。 即ち、フラグを反転させて“1”にしておく。 また、書き込んだデータが不要となったときには、再びフラグを初期状態、即ち“0”に戻しておく。

    【0009】以上の処理を常時行いながら、読みだし命令の実行によりデータ記憶領域からデータを読みだした場合、同時に対応するフラグの値を参照する。 そして、
    その値が“1”なら読み出したデータは有効、即ち正常であると判断して、以後プログラムに従って処理を続ける。 フラグの値が“0”であれば、そのデータは無効、
    即ち未だ正規にデータ設定されていない領域から読み出したデータであると判断して、アラームを発するなどの例外処理を行なう。 このようにして、プログラム上のバグを検出する。

    【0010】なお、上記特定の命令または命令群とは、
    CLR命令に限らず、少なくとも各フラグを初期状態に設定することができれば、如何なる命令でもよく、データ記憶領域の初期化の可否に付いては問わない。 また、
    フラグにおける上記値を逆にしてもさしつかえない。 即ち、初期状態において“1”とし、データ記憶領域へのデータの書込みにより“0”としてもよい。

    【0011】さらに、データ記憶領域へのデータの書込み処理には、通常の書込み命令による書込みは勿論、サブルーチンジャンプ時の戻り番地や割込み発生時の戻り番地等をスタックに退避するための暗黙的な書込みなど、すべての書込み処理が含まれる。 同様に、読出し処理には、通常の読出し命令による読出し処理は勿論、サブルーチンからの戻り番地や割込みルーチンからの戻り番地等をスタックから回復するための暗黙的な読出しなど、すべての読出し処理が含まれる。

    【0012】また、本発明のマイクロコンピュータシステムにおいては、上記各フラグを格納するフラグ格納領域として、各フラグに対して夫々1ビットの記憶領域を設け、その1ビットの記憶領域に対する読出し手段を設けるとともに、各フラグの初期設定手段と反転手段とを設ける。 その初期設定手段及び反転手段は、上記フラグ格納領域に、マイクロコンピュータに設けられてなるフラグ用の拡張データバスが直接接続されていることにより構成されているとしてもよい。

    【0013】

    【作用】上記した手段によれば、データ記憶領域からデータを読み出すのと同時にデータの格納領域の対応するフラグの状態を参照するようになっているので、フラグが反転状態になっていればその読み出したデータが事前に設定された有効なデータであると判定し、一方フラグが初期状態になっていれば未だ正規に設定されていない無効データ(データらしきもの)を読み出したと判定することができる。 従って、そのような無効データを誤って使用することを未然に防ぐことができるとともに、プログラム中にデータ未設定領域の読出し命令が存在するというバグを発見することができる。

    【0014】また、フラグの初期化をマイクロコンピュータシステムの動作開始時、即ち電源投入時又はリセット時だけでなく、プログラムの途中においても不要となった古いデータを格納している領域に対応するフラグを随時初期化しておくことにより、以後その領域のデータの読出し命令が実行された場合に、読み出したデータが無効データであることを判別することができる。 従って、そのような無効データを誤って使用することを未然に防ぐことができるとともに、プログラム中に古いデータを消去して新しいデータを書き込む命令が欠如しているというバグを発見することができる。

    【0015】さらに、記憶領域以外の、本来システム上読み出すはずのない領域を誤って読み出した場合にも、
    フラグの初期状態と同じ信号がマイクロコンピュータに入力されるようにしておくことにより、読み出したデータが無効であると判定することができる。 従って、そのような無効データを誤って使用することを未然に防ぐことができるとともに、プログラム中に本来システム上読み出すはずのない領域の読出し命令が存在するというバグを発見することができる。

    【0016】

    【実施例】

    (第1実施例)図1には、本発明に係るソフトウェアの不良検出方法の実施に供せられるマイクロコンピュータシステムの回路の一例が示されている。 同図に示すように、このマイクロコンピュータシステムは、例えばマイクロコンピュータ1と、それに夫々接続されてなるデータRAM2及びテスト用RAM3並びに制御回路4とを備えてなる構成となっている。

    【0017】ここで、データRAM2はデータを格納する記憶領域(データ記憶領域)を構成している。 一方、
    テスト用RAM3は、データRAM2の各ワードに目的とするデータが書き込まれているか否かを識別するフラグを格納する領域(フラグ格納領域)を構成しており、
    特に限定しないが例えば1ビットのメモリである。 このフラグは、データRAM2の1ワード毎に設けられている。 制御回路4は、データRAM2及びテスト用RAM
    3に対する書込み処理及び読出し処理に関する制御を行うものである。

    【0018】マイクロコンピュータ1は、図示省略するが、例えば8ビットデータ用の8個のデータバスの他に、上記フラグ用の拡張データバスを新たに設けてなるものである。 そして、マイクロコンピュータ1には、それら各データバス及び拡張データバスに夫々接続されてなるデータ端子0 ,D 1 ,D 2 ,D 3 ,D 4 ,D 5 ,D 6
    7 (便宜上、図1ではD 0 〜D 7と略記した。)及び拡張データ端子D xが設けられている。

    【0019】上記各データバスは、夫々、データRAM
    2に設けられてなる8個のデータ入出力バッファ(図示省略)に、各入出力バッファ用のデータ端子D ' 0
    ' 1 ,D ' 2 ,D ' 3 ,D ' 4 ,D ' 5 ,D ' 6 ,D ' 7 (便宜上、
    図1ではD ' 0 〜D ' 7と略記した。 )を介して個々に接続されている(便宜上、図1では対応する端子間の各配線を省略して1本の線で示した)。 また、上記拡張データバスは、テスト用RAM3に設けられてなる拡張データ入力バッファ(図示省略)に、その入力バッファ用の拡張データ入力端子D iを介して接続されているとともに、テスト用RAM3に設けられてなる拡張データ出力バッファ(図示省略)に、その出力バッファ用の拡張データ出力端子D oを介して接続されている。

    【0020】上記拡張データバスからは“0”又は“1”の信号が出力されるようになっている。 従って、
    上述した配線により、拡張データバスから出力された例えば“0”信号をテスト用RAM3の拡張データ入力バッファに入力して書き込むようになっていることにより、フラグを初期状態に設定する手段(初期設定手段)
    が構成されている。 一方、フラグを反転させる手段(反転手段)は、上記拡張データバスから出力された例えば“1”信号をテスト用RAM3の拡張データ入力バッファに入力して書き込むようになっていることにより構成されている。 また、フラグの状態を読み出す手段(読出し手段)は、上記拡張データバスとテスト用RAM3の拡張データ出力バッファとが直接接続されていて、マイクロコンピュータ1がテスト用RAM3のデータを読み込むことができるようになっていることにより構成されている。

    【0021】また、上記拡張データ端子D xは、制御回路4からの制御信号により開閉可能なゲート5を介して接地されている。 このゲート5は、マイクロコンピュータ1の誤動作等により本来システム上読み出すはずのない領域を読み出した場合に、拡張データ端子D xに“0”信号を返すためのものである。

    【0022】図2には、本システムにおけるメモリマップが示されている。 同図において、例えば、領域(イ),(ハ),(ニ),(ホ)はマイクロコンピュータ1に内蔵されてなるROMやRAMやIOポートなどのメモリ領域、領域(ロ)はデータRAM2のメモリ領域、領域(ヘ)はテスト用RAM3のメモリ領域である。 同図に示すように、テスト用RAM3はデータRA
    M2の全メモリ領域と同じアドレスに重なるようになっている。 なお、マイクロコンピュータ1の内蔵RAM
    は、CLR命令等の実行によりデータRAM2及びテスト用RAM3の全体を初期化する時に、スタック用及びワーク用メモリとして使用される。

    【0023】次に、このマイクロコンピュータシステムを用いたソフトウェアの不良検出方法に付いて説明する。 先ず、テストされるプログラム(被テストプログラム)を、特に制限しないがマイクロコンピュータ1の上記内蔵ROMに格納する。 また、このプログラム内で使用するデータエリアに付いては、スタックを含めて全てデータRAM2を使用するようにプログラムの割付けを行なう。 そして、CLR命令等を実行する初期化プログラム(被テストプログラム内に組み込んでおいても可)
    を起動してデータRAM2及びテスト用RAM3の各ビットを予め“0”に初期化する。 しかる後、被テストプログラムを起動する。

    【0024】被テストプログラムの書込み命令が実行されると、先ずマイクロコンピュータ1は、そのライト端子WRから制御回路4にライト信号S WRを送信する。 それによって、データRAM2及びテスト用RAM3の各チップセレクト入力端子CS 1に、制御回路4のRAM
    イネーブル端子RAMEから出力したRAMイネーブル信号S RAMEが夫々入力する。 同時に、データRAM2及びテスト用RAM3の各ライトイネーブル端子WEに、
    制御回路4から出力したライト信号S WRが夫々入力して、データRAM2及びテスト用RAM3は何れも書込み可能な状態となる。

    【0025】また、マイクロコンピュータ1はデータR
    AM2に各データ信号S D0 〜S D7を送信するとともに、
    テスト用RAM3に拡張データ信号S DXを送信する。 そのデータ信号S D0 〜S D7に基くデータは、マイクロコンピュータ1に設けられてなる図示しないアドレスバス用のアドレス端子A 0 〜A 15から出力した信号S A0 〜S A 12
    によりアドレス指定されて、データRAM2に書き込まれる。 同時に、同じアドレス信号S A0 〜S A12によりテスト用RAM3の同じアドレスに“1”が書き込まれる。

    【0026】被テストプログラムの読出し命令が実行されると、先ずマイクロコンピュータ1は、そのリード端子RDから制御回路4にリード信号S RDを送信し、それによって、データRAM2及びテスト用RAM3の各チップセレクト入力端子CS 1に、RAMイネーブル信号S RAMEが夫々入力する。 同時に、データRAM2のアウトプットイネーブル端子OEに、制御回路4から出力したアウトプット信号S OEが入力して、データRAM2及びテスト用RAM3は何れも読出し可能な状態となる。

    【0027】そして、マイクロコンピュータ1は、アドレス信号S A0 〜S A12により指定されてなるアドレスのデータ信号S D0 〜S D7をデータRAM2から受信することによりデータの読込みを行うと同時に、テスト用RA
    M3から同じアドレスの拡張データ信号S DXを受信することにより拡張データ(即ち、フラグの状態を“0”又は“1”で表したデータ)の読込みを行う。

    【0028】読み込んだ拡張データが“1”の場合には、データRAM2から読み込んだデータは、この読込み処理よりも前に書込みを行った有効なデータであると判断して、以後プログラムに従って処理を続ける。 一方、拡張データが“0”の場合には、データRAM2から読み込んだデータは、この読込み処理で読み込むべきデータの書込みを未だ行っていない無効データであると判断して、アラームを発するなどの例外処理を行なう。
    それによって、データRAM2のデータ未設定領域を読み込むというバグがプログラムにあることがわかる。

    【0029】また、テスト用RAM3の各データは、一度“1”が設定されるとそのまま保持されるので、データRAM2に格納されているデータ群のうち不要となったデータに対応するテスト用RAM3の拡張データを、
    CLR命令等により再度初期化して“0”に戻しておく。 それによって、再度、データ未設定領域を読み出すというプログラム不良の検出が可能となる。

    【0030】なお、図1においては、マイクロコンピュータ1の16個のアドレスバス用のアドレス端子に付いては、上記データ端子D 0 〜D 7と同様に、A 0 〜A 15と略記するとともに、データRAM2及びテスト用RAM
    3の13個のアドレス入力バッファ用のアドレス端子に付いても、A ' 0 〜A ' 12と略記した。 また、マイクロコンピュータ1、データRAM2、テスト用RAM3及び制御回路4の各アドレス端子間に個々に設けられている各配線を1本の線で省略して示した。 さらに、図1において、ASはアドレス・ストローブ信号S AS用の端子であり、またS A1 3 〜S A15はマイクロコンピュータ1から制御回路4に送信されるアドレス信号である。 さらにまた、アドレス・ストローブ端子AS、リード端子RD及びライト端子WRに夫々接続されてなる各配線を1本の線で省略して示した。

    【0031】以上詳述したように、この実施例によれば、データRAM2にデータを書き込むと同時に、テスト用RAM3の対応するアドレスに拡張データとして“1”を書き込み、一方データRAM2からデータを読み出すと同時にテスト用RAM3から対応するアドレスの拡張データを読み出すようになっていることによって、その読み出した拡張データが“1”であればプログラムが正常であり、また拡張データが“0”であればプログラム上にバグがあることが検出される。 さらに、データRAM2の不要となった古いデータの消去及びそのアドレスに対する新データの書込み命令が欠如しているというバグや、本来システム上読み出すはずのない領域の読出し命令が存在するというバグの検出も可能であり、ソフトウエアの品質向上に極めて有効である。

    【0032】加えて、プログラム上にバグがなくても、
    システムの稼働中において外来ノイズ等によりマイクロコンピュータ1が異常動作して、本来システム上読み出すはずのない領域を読み出した場合に、その異常動作を検出することができ、従って安全にシステムを停止させるようなフェールセーフ機能の実現を図ることもできる。

    【0033】なお、RAM13を設ける代わりに、RA
    M12を9ビットのメモリで構成し、そのうち8ビットを通常のデータ用に割り当て、残り1ビットをフラグの格納用に割り当てるようにしてもよい。 また、マイクロコンピュータ1の上記以外の機能は、特に制限されない。 さらに、CLR命令の実行時に、少なくともテスト用RAM3の各フラグを初期状態、即ち“0”を書き込んだ状態にすることができれば、マイクロコンピュータ1の通常のデータバスから“0”信号を出力してデータRAM2の各ビットに“0”を書き込むようになっていなくてもよい。 さらにまた、上記実施例では一例として8ビットマイクロコンピュータ1を用いてシステムの説明をしたが、マイクロコンピュータ1は8ビットに限らないのは勿論である。 また、フラグの初期設定状態を“1”とし、反転状態を“0”としてもよいのはいうまでもない。

    【0034】(第2実施例)図3には、本発明に係るソフトウェアの不良検出方法の実施に供せられるマイクロコンピュータシステムの回路の他の例が示されている。
    このシステムが上記第1実施例と異なるのは、テスト用RAM3のアクセスに上記第1実施例の拡張データバスの代りとしてマイクロコンピュータ101のデータ端子D 7のデータバスを用いるとともに、例外処理の代りとしてマスクできない割込み(Nonmaskable
    Interrupt)を用いる点である。 なお、上記第1実施例と同一の構成要素及び端子並びに信号等に付いては同一の符号を付し、その説明を省略する。

    【0035】上記データ端子D 7のデータバスは、データRAM2のデータ端子D ' 7を介して同RAM2の対応するデータ入出力バッファ(図示省略)に接続可能になっているとともに、テスト用RAM3の拡張データ入力端子D iを介して同RAM3の拡張データ入力バッファに接続可能になっている。 そして、上記データ端子D 7
    のデータバスを何れのRAMに接続するかの切替えはマイクロコンピュータ101のパラレルポートP 71のレベルの切替え(即ち、“0”か“1”)により行なうようになっている。 また、マイクロコンピュータ101のデータ端子D 0 ,D 1 ,D 2 ,D 3 ,D 4 ,D 5 ,D 6は、夫々、データRAM2のデータ端子D ' 0 ,D ' 1 ,D ' 2 ,D
    ' 3 ,D ' 4 ,D ' 5 ,D ' 6に直接接続されている(便宜上、
    図3では夫々D 0 〜D 6 、D ' 0 〜D ' 6と略記するとともに、対応する端子間の各配線を省略して1本の線で示した)。

    【0036】この実施例では、フラグの初期設定手段は、マイクロコンピュータ101のデータ端子D 7のデータバスから出力された“0”信号を、テスト用RAM
    3の拡張データ入力端子D iに接続されてなる拡張データ入力バッファに入力して書き込むことができるようになっていることにより構成されている。 一方、フラグの反転手段は、テスト用RAM3の拡張データ入力端子D
    iに接続されているプルアップ抵抗9aによってテスト用RAM3の拡張データ入力バッファに“1”信号を入力して書き込むようになっていることにより構成されている。 また、フラグの読出し手段は、テスト用RAM3
    の拡張データ出力端子D oとマイクロコンピュータ10
    1の上記マスクできない割込み用の端子NMIとを接続して、マイクロコンピュータ101がテスト用RAM3
    のデータを読み込むことができるようになっていることにより構成されている。

    【0037】また、データ端子D 7のデータバスからは“0”信号のみならず“1”信号も出力されるようになっているため、上述したプルアップ抵抗9aによる反転手段(第1の反転手段とする。)の他に、データ端子D
    7のデータバスから出力された“1”信号を、テスト用RAM3の拡張データ入力バッファに入力して書き込むことができるようになっていることにより構成されてなる手段(第2の反転手段とする。)も設けられている。
    この第2の反転手段は、テスト用RAM3の故障診断を行なうためにテスト用RAM3に“1”を書き込む際に用いられる。

    【0038】さらに、上述したマスクできない割込み用端子NMIによる読出し手段(第1の読出し手段とする。)の他に、テスト用RAM3の拡張データ出力端子D oとマイクロコンピュータ101のデータ端子D 7とを接続して、そのデータ端子D を介してマイクロコンピュータ101がテスト用RAM3のデータを読み込むことができるようになっていることにより構成されてなる手段(第2の読出し手段とする。)も設けられている。
    この第2の読出し手段は、テスト用RAM3の故障診断の際に、テスト用RAM3に予め書き込んでおいたデータを読み出すのに用いられる。

    【0039】次に、このマイクロコンピュータシステムを用いたソフトウェアの不良検出方法に付いて説明する。 先ず、上記第1実施例と同様に、被テストプログラムの内蔵ROMへの格納、データエリアの割付け、及びデータRAM2及びテスト用RAM3の初期化を行なう。

    【0040】データRAM2の初期化にあたっては、パラレルポートP 71を“0”レベルにする。 それによって、NORゲート6a及びインバータ7cを介して、制御回路4から出力されてなるライト信号S WR及びRAM
    イネーブル信号S RAMEに応じてゲート8aが開放し、マイクロコンピュータ101のデータ端子D 7がデータR
    AM2のデータ端子D ' 7に接続する。 そして、マイクロコンピュータ101のデータ端子D 0 〜D 6及びD 7から“0”信号を出力して、データRAM2の全ビットに“0”を書き込む。

    【0041】テスト用RAM3の初期化にあたっては、
    パラレルポートP 71を“1”レベルにする。 それによって、NORゲート6a及びNANDゲート7aを介して、制御回路4から出力されてなるライト信号S WR及びRAMイネーブル信号S RAMEに応じてゲート8cが開放し、マイクロコンピュータ101のデータ端子D 7がテスト用RAM3の拡張データ入力端子D iに接続する。
    そして、データ端子D 7から“0”信号を出力して、テスト用RAM3の全ビットに“0”を書き込む。

    【0042】初期化が済んだら、パラレルポートP 71を“0”レベルにして、マイクロコンピュータ101のデータ端子D 7をゲート8aを介してデータRAM2のデータ端子D ' 7に接続し得るようにしておく。 その後、被テストプログラムを起動する。

    【0043】被テストプログラムの書込み命令が実行されると、制御回路4からライト信号S WR及びRAMイネーブル信号S RAMEが出力され、それに応じて、NORゲート6a及びインバータ7cを介して、ゲート8aが開放し、データ端子D 7がデータ端子D ' 7に接続する。 そして、マイクロコンピュータ101は各データ端子D 0
    〜D 6及びD 7を介してデータRAM2に各データ信号S
    D0 〜S D6及びS D7を送信する。 その際、テスト用RAM
    3の拡張データ入力端子D iにはプルアップ抵抗9aによって“1”信号が入力する。 それによって、テスト用RAM3には、データRAM2に書き込まれたデータと同じアドレスに”1”が書き込まれる。

    【0044】被テストプログラムの読出し命令が実行されると、制御回路4からリード信号S RD及びRAMイネーブル信号S RAMEが出力され、それに応じて、NORゲート6b及びNANDゲート7dを介して、ゲート8b
    が開放し、データ端子D 7がデータ端子D ' 7に接続する。 そして、データ端子D 0 〜D 6とデータ端子D ' 0 〜D
    ' 6とは夫々直結しているので、マイクロコンピュータ1
    01はデータ信号S D0 〜S D6及びS D7をデータRAM2
    から受信することによりデータの読込みを行う。 また、
    マイクロコンピュータ101は、そのマスクできない割込み用端子NMIにおいて、テスト用RAM3の拡張データ出力端子D oから送信されてなるデータ信号S
    DOを、ゲート10及びラッチ回路11を介して、受信することにより、テスト用RAM3のデータ(即ち、フラグの状態を“0”又は“1”で表したデータ)を読み込む。

    【0045】テスト用RAM3から読み込んだフラグのデータが“1”の場合には、データRAM2から読み込んだデータは有効であると判断して、以後プログラムに従って処理を続ける。 一方、上記フラグのデータが“0”の場合には、データRAM2から読み込んだデータは無効であると判断して、マスクできない割込みが発生する。 それによって、データRAM2のデータ未設定領域を読み込むというバグがプログラムにあることがわかる。

    【0046】上述したプログラム不良を再度検出可能な状態にするため、データRAM2の不要となったデータに対応するテスト用RAM3のデータに付いては、以下の3命令を実行することにより再度初期化して“0”に戻しておく。 先ず、パラレルポートP 71を“1”レベルにしてマイクロコンピュータ101のデータ端子D 7をテスト用RAM3の拡張データ入力端子D iに接続する。 そして、データ端子D 7から“0”信号を出力して、テスト用RAM3の初期化したいアドレスのビットに“0”を書き込む。 その後、パラレルポートP 71を“0”レベルにしてマイクロコンピュータ101のデータ端子D 7を再びデータRAM2のデータ端子D ' 7に接続する。 以上の3命令を被テストプログラム中に適宜設けておく。

    【0047】次に、このマイクロコンピュータシステムにおけるテスト用RAM3の故障診断方法に付いて説明する。 これは、テスト用RAM3にマイクロコンピュータ101から“0”又は“1”を書き込み、それを読み出し、書き込んだデータと同じものが読み出されたか否かによって行なう。

    【0048】書込みを行なう時は、パラレルポートP 71
    を“1”レベルにし、NORゲート6a及びNANDゲート7aを介して、ライト信号S WR及びRAMイネーブル信号S RAMEに応じてゲート8cを開放し、マイクロコンピュータ101のデータ端子D 7とテスト用RAM3
    の拡張データ入力端子D iとを接続する。 そして、データ端子D 7から“0”又は“1”信号を出力して、テスト用RAM3に“0”又は“1”を書き込む。

    【0049】読込みを行なう時は、パラレルポートP 71
    を“1”レベルにし、NORゲート6b及びNANDゲート7bを介して、リード信号S RD及びRAMイネーブル信号S RAMEに応じてゲート8dを開放し、マイクロコンピュータ101のデータ端子D 7とテスト用RAM3
    の拡張データ出力端子D oとを接続する。 それによって、マイクロコンピュータ101はデータ端子D 7のデータバスを用いてテスト用RAM3のデータを読み込む。

    【0050】なお、図3において、プルアップ抵抗9
    b,9cは、信号線がハイインピーダンスとなった場合に“1”レベルにするためのものである。 また、P 72はパラレルポートであり、CS 2はチップセレクト入力端子であり、A ' 13はアドレス端子である。

    【0051】以上詳述したように、この実施例によれば、上記第1実施例と同様な効果、即ちデータ未設定領域を読み出すというプログラム上のバグを検出することができるという効果に加えて、マイクロコンピュータ1
    01のデータ端子D 7のデータバスを用いて、テスト用RAM3に対する書込み及び読出しを行うことができるので、テスト用RAM3の故障診断を行うことができる。

    【0052】なお、マイクロコンピュータ101、データRAM2、テスト用RAM3及び制御回路4以外の回路は、上記実施例により何等制限をされるものではなく、同等の機能を有していれば如何様に構成されていてもよい。 また、フラグの初期設定状態を“1”とし、反転状態を“0”としてもよいのはいうまでもなく、その場合にはプルアップ抵抗9aの代わりにプルダウン抵抗を用いることとなる。

    【0053】(第3実施例)図4には、本発明に係るソフトウェアの不良検出方法の実施に供せられるマイクロコンピュータシステムにパリティチェック回路を付加してなる例が示されている。 このシステムが上記第1実施例と異なるのは、パリティ発生回路12を設け、それによってテスト用RAM3を、上記第1実施例と同様にソフトウエアのテストに用いるのに加えて、ソフトウエアのテスト完了後においてはパリティチェックにも利用可能にした点である。 なお、上記第1実施例と同一の構成要素及び端子並びに信号等に付いては同一の符号を付し、その説明を省略する。

    【0054】ソフトウエアのテスト段階では、マイクロコンピュータ1のパラレルポートP 71から“0”を出力してゲート15a,15bを開いておく。 そして、マイクロコンピュータ1がテスト用RAM3に拡張データ(フラグの状態を表したデータ)を書き込む時には、マイクロコンピュータ1の拡張データバスの拡張データ端子D xを、ゲート13a,15aを介して、テスト用R
    AM3の拡張データ入力端子D iに接続する。 マイクロコンピュータ1がテスト用RAM3から拡張データを読み出す時には、拡張データ端子D xを、ゲート13b,
    15b及びORゲート16を介して、テスト用RAM3
    の拡張データ出力端子D oに接続する。 それによって、
    上記第1実施例と同様に、未設定データエリアの読み出し不良というプログラム上のバグを検出することができる。

    【0055】ソフトウエアのテスト完了後の実稼働段階では、パラレルポートP 71から“1”を出力してゲート14a,14bを開いておく。 マイクロコンピュータ1
    からの書込み時には、パリティ発生回路12にマイクロコンピュータ1のデータバス情報を入力してパリティ信号を作成し、ゲート14aを通じてテスト用RAM3の拡張データ入力端子D iに入力する。 読出し時には、テスト用RAM3に書き込んだパリティ情報を読み出し、
    そのパリティ情報とパリティ発生回路12により生成したパリティ情報とをEOR17において比較する。 そして、その比較結果を、NANDゲート18、ゲート14
    b,13bを介して拡張データ端子D x 、即ち拡張データバスに入力する。

    【0056】ここで、NORゲート19は、データRA
    M2のデータを読み出す時にのみNANDゲート18を有効にするようになっている。 これによって、ハードウエアの故障または外来ノイズ等の要因によりデータの読出し経路上においてデータが突発的に変わってしまう、
    所謂データ化けを検出することが可能となっている。

    【0057】なお、図4において破線で囲んだ回路部分20をマイクロコンピュータ1の同一シリコンチップ上に設けてもよい。 また、ソフトウエアのテストとパリティチェックの2通りの機能の切替えをパラレルポートP
    71により行わずに、ハードウエアのスイッチで行うようにしてもよい。

    【0058】(第4実施例)図5には、本発明に係るソフトウェアの不良検出方法の実施に供せられるマイクロコンピュータシステムをインサーキットエミュレータに適用してなる例が示されている。 なお、上記第1実施例と同一の構成要素及び端子並びに信号等に付いては同一の符号を付し、その説明を省略する。

    【0059】本実施例では、特に限定はしないが、ユーザシステム50上のデータRAM(図示しないが、上記第1実施例におけるデータRAM2に相当する。)に対応するアドレスにインサーキットエミュレータ内部のテスト用RAM3を割り付けている。 そして、制御回路4
    で作った書込みタイミングで、ユーザシステム50上のデータRAMの割付けアドレスの上位4ビットの値を、
    エミュレータ本体30(図5において破線で囲んだ部分)の制御用CPU21からラッチ22に設定する。

    【0060】このラッチ22から出力される上記アドレスの上位4ビットと、評価チップ、即ちマイクロコンピュータ1から出力されるアドレスの上位4ビットとをコンパレータ23を用いて比較し、両者が一致している場合にコンパレータ23から一致信号S 0を出力する。 その一致信号S 0によりテスト用RAM3をアクセスするとともにマイクロコンピュータ1のEN端子を通じて、
    マイクロコンピュータ1内に構成した未設定データエリア読出し不良検出機能を動作可能な状態(即ち、マイクロコンピュータ1内の例外処理機能を有効にした状態)
    とする。

    【0061】図5において、符号31を付して破線で囲んだ部分はエミュレータBOXであり、符号32を付して破線で囲んだ部分は未設定データ読出し検出回路である。

    【0062】なお、インサーキットエミュレータの構成は、上記実施例により何等制限されるものではないのはいうまでもない。 例えば、マイクロコンピュータ1の全アドレスに対してテスト用RAM3を割り付け、テスト用RAM3を初期化する際に、マイクロコンピュータ1
    のデータエリアとして使用しない領域で且つアクセスする領域(即ち、内蔵ROM領域や内蔵IO領域)に対応するテスト用RAM3のアドレスのビットに付いては“1”となるようにしてもよい。 そうすれば、被テストプログラムが一度もデータを書き込むことなく読み出してもエラーとならない。 マイクロコンピュータ1のアクセスしない領域に対応するテスト用RAM3のアドレスのビットに付いては“0”となるように初期化し、被テストプログラムの不良により、アクセスするはずのない領域を読みだした場合にエラー検出できるようしてもよい。

    【0063】以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。

    【0064】

    【発明の効果】本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。 すなわち、未だ正規に設定されていない無効データを読み出し誤って使用したり、不要となった古いデータを読み出し誤って使用したり、本来システム上読み出すはずのない領域を読み出し誤って使用してしまうということが起こるのを未然に防ぐことができる。

    【0065】また、プログラム中に、データ未設定領域の読出し命令が存在するというバグや、古いデータを消去して新しいデータを書き込む命令が欠如しているというバグや、本来システム上読み出すはずのない領域の読出し命令が存在するというバグを発見することができ、
    ソフトウェアの不良を検出することができる。 従って、
    ソフトウエアの品質向上に極めて有効である。

    【0066】さらに、ソフトウエアのテスト中のみならず、システムの稼働中において生ずる虞のある、外来ノイズ等によるマイクロコンピュータの異常動作を検出し、安全にシステムを停止させるようなフェールセーフ機能の実現を図ることも可能である。

    【図面の簡単な説明】

    【図1】本発明に係るソフトウェアの不良検出方法の実施に供せられるマイクロコンピュータシステムの第1実施例を示す回路図である。

    【図2】第1実施例のマイクロコンピュータシステムにおけるメモリマップ図である。

    【図3】本発明に係るソフトウェアの不良検出方法の実施に供せられるマイクロコンピュータシステムの第2実施例を示す回路図である。

    【図4】本発明に係るソフトウェアの不良検出方法の実施に供せられるマイクロコンピュータシステムにパリティチェック回路を付加してなる第3実施例を示す回路図である。

    【図5】本発明に係るソフトウェアの不良検出方法の実施に供せられるマイクロコンピュータシステムをインサーキットエミュレータに適用してなる第4実施例を示す回路図である。

    【符号の説明】

    0 〜A 15 ,A ' 0 〜A ' 12アドレス端子 D 0 〜D 6 ,D ' 0 〜D ' 6 ,D 0 〜D 7 ,D ' 0 〜D ' 7データ端子 D i拡張データ入力バッファ用の拡張データ入力端子 D o拡張データ出力バッファ用の拡張データ出力端子 D x拡張データバス用の拡張データ端子 1 マイクロコンピュータ 2 データRAM(データ記憶領域) 3 テスト用RAM(フラグ格納領域)

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈