JP3102568B2 - ソフトウエア開発装置 - Google Patents

ソフトウエア開発装置

Info

Publication number
JP3102568B2
JP3102568B2 JP02166028A JP16602890A JP3102568B2 JP 3102568 B2 JP3102568 B2 JP 3102568B2 JP 02166028 A JP02166028 A JP 02166028A JP 16602890 A JP16602890 A JP 16602890A JP 3102568 B2 JP3102568 B2 JP 3102568B2
Authority
JP
Japan
Prior art keywords
microcomputer
stack
program
software development
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP02166028A
Other languages
English (en)
Other versions
JPH0454648A (ja
Inventor
武史 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Ten Ltd
Original Assignee
Denso Ten Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP02166028A priority Critical patent/JP3102568B2/ja
Publication of JPH0454648A publication Critical patent/JPH0454648A/ja
Application granted granted Critical
Publication of JP3102568B2 publication Critical patent/JP3102568B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 〔概 要〕 マスク版マイクロコンピュータ(以下、マイコンと略
す)のプログラムをデバッグするソフトウエア開発装置
に関し、 プログラムのバグによるスタック不整合を検出するこ
とを目的とし、 マスク化されるマイクロコンピュータのプログラム
を、該マイクロコンピュータより大容量のメモリを有す
る他のコンピュータシステムで検査するソフトウエア開
発装置において、該コンピュータシステムのイニシャル
ルーチンによって前記マイクロコンピュータと同じアド
レスで前記メモリにスタックを設定すると共に、該スタ
ックの底より深い領域に特定の値を書込み、また前記コ
ンピュータシステムのメインルーチンで前記マイクロコ
ンピュータのプログラムを実行すると共に、前記領域の
値をチェックして該領域の値が変更されているか否かに
応じて前記スタックの不整合を検出するよう構成する。
〔産業上の利用分野〕
本発明は、マスク版マイコンのプログラムをデバッグ
するソフトウエア開発装置に関する。
マスク版マイコンのプログラムはマスク化されてから
修正することはできないので、開発段階で他のコンピュ
ータシステムを使ってデバッグする必要がある。
〔従来の技術〕
マスク版マイコンのソフトウエア開発は、一般にCPU
ボード版で行うことが多い。このCPUボード版マイコン
は、マイコンを構成するCPU(プロセッサ)やRAM(書き
替え可能なメモリ)をプリント基板上に搭載したもので
あるが、一般にそのRAMの容量は開発しようとするマス
ク版マイコンのRAMより大きい。例えばマスク版マイコ
ンのRAM領域が第3図の¥0040〜¥00FFであるとき、こ
れを開発するCPUボード版のRAMは¥0040〜¥07FFまで拡
張されている。つまり、¥0100〜¥07FFはマスク版RAM
にはない拡張RAM領域である。
ところで、マスク版マイコンにおいて、サブルーチン
コールの戻り番地をストアしたり、割込み発生時にレジ
スタの値をストアするスタックは、RAM領域の最終番地
¥00FFを底として設定される。
この場合、CPUボード版で拡張RAMの最終番地¥07FFを
スタックの底とする場合には良いが、マスク版の仕様に
合わせて途中の¥00FFに設定すると、バグによるスタッ
ク不整合を検出できないことがある。
つまり、マスク版マイコンのプログラムが第4図のよ
うに構成されている場合、先ずステップでスタックの
底が¥00FFに設定される。その後ステップでプッシュ
命令PSHが実行されてスタックの底に戻り番地等がスト
アされ、次にステップでプル命令PULが実行されたと
すると、スタックの底は空き状態になる。ところが、こ
のプログラムではステップに余分なプル命令PULが誤
って書込まれている。このためステップのプル命令PU
Lを実行すると、マスク版マイコンでは存在しない¥00F
F+1番地をポインタが指すため、次のステップのサ
ブルーチンコールの戻り番地が異常となって暴走する可
能性がある。第3図はこの説明図である。
〔発明が解決しようとする課題〕
ところで、第4図のプログラムをCPUボード版で実行
すると、ステップのプル命令PULでアクセスするアド
レス¥0100が拡張RAM上に実在するため、ステップの
サブルーチンコールを実行しても暴走しない。このた
め、同プログラムのバグ(スタック不整合)を検出でき
ず、マスク化して初めてその不良が発見される欠点があ
る。
本発明はこの点を改善し、RAM容量の大きなCPUボード
版でもマスク版マイコンのスタック不整合を事前に検出
できるようにするものである。
〔課題を解決するための手段〕
第1図は本発明の原理図で、第1図と同様に¥0040〜
¥00FFがマスク版マイコンのRAM領域、¥0100〜¥07FF
がCPUボード版で拡張されたRAM領域を示している。
〔作 用〕
本発明ではCPUボード版でスタックの底をマスク版マ
イコンの仕様と同じ¥00FFに設定する場合、その次の番
地¥0100にイニシャルルーチンで特定の値(例えば¥5
A)を書込む。場合によっては更に次の番地¥0101にも
特定の値(例えば¥A5)を書込んでおく。
そしてメインルーチンでマスク版マイコンのプログラ
ムを実行すると共に、拡張RAMの番地¥0100,¥0101から
データをリードし、それらが破壊されているか否かをチ
ェックする。破壊されていなければこれらの番地¥010
0,¥0101が使用されていないので、スタック不整合はな
いと判断できるが、第4図のようなバグのあるプログラ
ムでは少なくとも¥0100のデータは破壊されて元の¥5A
ではなくなっている。従って、このことからマスク版マ
イコン用に開発されたプログラムのスタック不整合を検
出できる。
〔実施例〕
第2図は本発明の実施例を示すフローチャートで、マ
スク版マイコンのプログラムをCPUボード版でデバッグ
する際の処理を示している。
先ずイニシャルルーチンにおいてステップS1,S2を実
行し、ステップS1ではマスク版マイコンのRAM領域の最
終番地¥00FFをスタックの底STACKに設定する。次にス
テップS2では¥00FFの次の番地に¥5Aを、またその次の
番地に¥A5を書込む。
続くメインルーチンではステップS3でSTACK+1番地
の内容をリードして¥5Aと比較し、またSTACK+2番地
の内容をリードして¥A5と比較する。いずれも一致した
場合には開発中のプログラムを実行してからステップS4
でWDT(ウォッチ・ドッグ・タイマ)出力を反転してス
テップS3へ戻る。
このメインルーチンを実行中に第4図のようなスタッ
ク不整合上のバグがあると、ステップS3でY(イエス)
とならない。このときは無限ループに突入させ、この間
ウォーニングランプを点灯させる等の異常処理をする。
これで検出者はスタック不整合を検知できる。ステップ
S3から無限ループに入るとステップS4のWDT出力が変化
しなくなるので、やがて外部からハード的にリセットが
かかる。
〔発明の効果〕
以上述べたように本発明によれば、マスク版マイコン
のプログラム開発時にRAM容量の大きなCPUボード版コン
ピュータシステムでスタック不整合のバグを検出するこ
とができる。
【図面の簡単な説明】
第1図は本発明の原理図、 第2図は本発明のフローチャート、 第3図はスタック不整合の説明図、 第4図はバグのあるプログラムのフローチャートであ
る。
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 11/00

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】マスク化されるマイクロコンピュータのプ
    ログラムを、該マイクロコンピュータより大容量のメモ
    リを有する他のコンピュータシステムで検査するソフト
    ウエア開発装置において、 該コンピュータシステムのイニシャルルーチンによって
    前記マイクロコンピュータと同じアドレスで前記メモリ
    にスタックを設定すると共に、該スタックの底より深い
    領域に特定の値を書込み、 また前記コンピュータシステムのメインルーチンで前記
    マイクロコンピュータのプログラムを実行すると共に、
    前記領域の値をチェックして該領域の値が変更されてい
    るか否かに応じて前記スタックの不整合を検出するよう
    にしてなることを特徴とするソフトウエア開発装置。
JP02166028A 1990-06-25 1990-06-25 ソフトウエア開発装置 Expired - Fee Related JP3102568B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02166028A JP3102568B2 (ja) 1990-06-25 1990-06-25 ソフトウエア開発装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02166028A JP3102568B2 (ja) 1990-06-25 1990-06-25 ソフトウエア開発装置

Publications (2)

Publication Number Publication Date
JPH0454648A JPH0454648A (ja) 1992-02-21
JP3102568B2 true JP3102568B2 (ja) 2000-10-23

Family

ID=15823605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02166028A Expired - Fee Related JP3102568B2 (ja) 1990-06-25 1990-06-25 ソフトウエア開発装置

Country Status (1)

Country Link
JP (1) JP3102568B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4609381B2 (ja) 2006-06-14 2011-01-12 株式会社デンソー 異常監視用プログラム、記録媒体及び電子装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59220849A (ja) * 1983-05-31 1984-12-12 Toshiba Corp イメ−ジ比較制御方式

Also Published As

Publication number Publication date
JPH0454648A (ja) 1992-02-21

Similar Documents

Publication Publication Date Title
US7752427B2 (en) Stack underflow debug with sticky base
US20070118725A1 (en) CPU life-extension apparatus and method
EP0111952B1 (en) Verification of a processor architecture having a partial instruction set
US6052801A (en) Method and apparatus for providing breakpoints on a selectable address range
US5894549A (en) System and method for fault detection in microcontroller program memory
WO1998034170A1 (en) Method and apparatus for allowing continued operation for overflow and invalid data
JP3102568B2 (ja) ソフトウエア開発装置
JP3219082B2 (ja) データ格納方法
JP7316613B2 (ja) 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置
JPH09319615A (ja) カーネルデバッガにおけるソフトウェアブレークポイント管理方式
JP2677043B2 (ja) プログラム開発支援装置
JP2502128B2 (ja) コンパイラ装置
JP3124788B2 (ja) 組込型マルチタスクオペレーティングシステムの例外処理方法
JPH03296146A (ja) プログラム開発支援装置
JP3166167B2 (ja) マイクロコンピュータ
JPH02135545A (ja) デバッガの実行制御処理方式
JPH11212945A (ja) マイクロコンピュータおよびそのメモリ
JPS60112148A (ja) メモリ装置
JPS6214240A (ja) プログラム検査方式
JPH0319574B2 (ja)
JPH0333939A (ja) マイクロプロセッサ
JPS6031650A (ja) 計算機
JPH03166689A (ja) プログラムチェック方法
JPH0665941U (ja) プログラム動作装置
JPH04205144A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees