説明

マイクロコンピュータ及びマイクロコンピュータのデバッグ方法

【課題】セキュリティ解除に用いるプログラムが更新された場合においても、煩雑な作業なしに、デバッグを開始するためのセキュリティ解除を行うこと。
【解決手段】本発明にかかるマイクロコンピュータは、複数の格納領域を備えプログラムが前記複数の格納領域に分散して格納される不揮発性メモリ203と、プログラムを実行する中央演算処理装置270とを有するマイクロコンピュータ201であって、プログラムのデバッグを行うために使用するデバッグ用装置600を接続するためのデバッグ用端子と、複数の格納領域の各々に対応付けられた複数のデバッグ機能設定値を格納するデバッグ機能設定用メモリ206と、デバッグ機能設定値に基づいて選択される格納領域に格納されたプログラムの一部とデバッグ用端子から入力されるデータとを比較し、当該比較の結果に基づいて、外部からのアクセスの許否を判断するデバッグ判断部260とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイクロコンピュータのデバッグにおいてメモリに書き込まれたプログラムの読み出し許可のセキュリティ確保が可能なマイクロコンピュータ及びプログラムのデバッグ方法に関する。
【背景技術】
【0002】
マイクロコンピュータのプログラム開発においては、マイクロコンピュータとパーソナルコンピュータ等のホストPCとを接続して、作成したプログラムに問題がないかを検証又は修正するデバッグによってプログラムの完成度を高めていく。このデバッグにおいてプログラムが格納されているメモリを読み出す必要がある。すなわち、デバッグではメモリに格納されているプログラムを読み出すことができるため、悪意のある第三者等にマイクロコンピュータのプログラムが漏洩するという問題点があった。
【0003】
デバッグの際にマイクロコンピュータのプログラムが第三者に漏洩することを防止するために、プログラムのアクセスキーが一致した場合にのみマイクロコンピュータ内のプログラムを読み出してデバッグする方法が特許文献1に記載されている。図5に特許文献1に記載のオンチップデバッグセキュリティの構成について示す。オンチップデバッグとは、マイクロコンピュータをユーザ基板に搭載した状態のまま、ユーザ基板のデバッグを行うことである。
【0004】
図5に示すマイクロコンピュータ901は、周辺I/O(Input/Output)902と、CPU(Central Processing Unit)903と、ROM(Read Only Memory)904と、RAM(Random Access Memory)905と、デバッグ機能制御回路906と、デバッグIF(Interface)端子907と、これらの機器を接続する内部バス908と、内部バスを制御するバス制御回路909と、バス制御回路に接続された外部バス端子910とを有している。デバッグ機能制御回路906は、内部バスに接続されたリソースアクセス回路911及びCPU制御回路912と、リソースアクセス回路911及びCPU制御回路912に接続されたプロテクトチェック回路913と、プロテクトチェック回路913に接続されたアクセスキーレジスタ914、デバッグI/F入出力回路915を有している。
【0005】
デバッグにはJTAG−ICE(Joint Test Action Group In−Circuit Emulator)が使用されている。ICEは、マイクロコンピュータのシステム状態の設定及び変更機能、システムの実行状態が確認できるトレース機能、プログラムの特定部分においてプログラムの実行を中断させるブレーク機能等を有するデバイスである。また、JTAGとは、バウンダリスキャンテスト(BST:Boundary Scan Test:境界走査試験)のテスト規格であってこのバウンダリスキャンの機能を有するICEをJTAG−ICEという。このJTAG−ICEはデバッグIF端子907を介してマイクロコンピュータ901と接続されている。
【0006】
このマイクロコンピュータ901において、ROM904のオンチップデバッグ時におけるプログラムの読み出しを、アクセスキーレジスタ914及び機能制限モードレジスタ916によって制限している。すなわち、アクセスキーレジスタ914に、プロテクトチェック回路913の後述する機能制限モードを解除するための、ROM904又はRAM905から読み出されたアクセスキーが格納されている。ここで、機能制限モードレジスタ916には、マイクロコンピュータ内のデータを読み出す機能を制限すること(以下、機能制限モードという。)を示す値(以下、機能制限モード設定値という。)又はマイクロコンピュータ内のデータを読み出す機能を制限しないことを示す値(以下、機能制限モード非設定値という。)が格納されている。
【0007】
次に、デバッグにおいてROM904からプログラムを読み出す際のセキュリティ確保の手順を説明する。まず、JTAG−ICEを用いてユーザがアクセスキーを入力すると、入力されたアクセスキーがプロテクトチェック回路913に送られる。次に、プロテクトチェック回路913においてアクセスキーレジスタ914に予め設定されたセキュリティコードとホストPC917から送出されたキーとの比較を行う。この比較の結果、セキュリティコードとホストPC917から送出されたキーとが一致した場合、機能制限モードレジスタ916は機能制限モード非設定値に設定される。すなわち、リソースアクセス回路911、あるいはCPU制御回路912を通じてROM904に格納されているプログラムの読み出し、実行、及び書換え等の処理を行うことができる。一方、比較の結果、セキュリティコードとホストPC917から送出されたキーとが一致しない場合、機能制限モードレジスタ916は機能制限モード設定値に設定される。すなわち、ROM904に格納されているプログラムの読み出し、実行、及び書換え等ができない。
【0008】
しかしながら、特許文献1に記載のマイクロコンピュータのオンチップデバッグセキュリティにおいては、セキュリティ確保のために、デバッグの際にセキュリティコードを用いてマイクロコンピュータのセキュリティを解除する必要があった。すなわち、プログラムだけでなくセキュリティコードも管理する必要があった。これにより、ユーザは管理する対象が増えることにより、デバッグの際のデバッグ操作の工数が増えるという問題があった。
【0009】
そこで、特許文献2に、ユーザがセキュリティコードを用いずにROMに格納されているデータと入力したデータとの一致又は不一致に基づいて、ROMに格納されたデータのセキュリティを確保するROMに格納されたデータの読み出し方法が記載されている。特許文献2に記載のプログラムの読み出し方法に用いるマイクロコンピュータを図6に示す。図6に示すマイクロコンピュータ920は、ROM921と、ROMデータラッチ回路922と、一致検出回路923と、入力データラッチ回路924と、入力回路925と、制御回路926と、出力回路927とを有している。テスト状態においてこのマイクロコンピュータ920に電源が投入されると、比較用の入力データが入力回路925に入力され、入力データラッチ回路924に出力される。そして、ROM921から読み出したデータがROMデータラッチ回路922に出力される。次に、ROMデータラッチ回路922と、入力データラッチ回路924の出力が一致した場合にROM921のデータを読み出すことができる。
【特許文献1】特開2003−186693号公報
【特許文献2】特開平2−050226号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
昨今、マイクロコンピュータが搭載される最終製品は、より高機能化し、当該最終製品が市場に出荷された後においても、機能追加のためにマイクロコンピュータに格納されたプログラムの更新が行われる場合がある。また、高機能化及び製品のライフサイクルが短くなるにつれ、製品出荷前の動作確認テストが十分に行うことができず、製品の出荷後に、修正プログラムを配布して、マイクロコンピュータに格納されたプログラムのバグ修正を行う場合もある。このような場合、マイクロコンピュータに書き換え可能な不揮発性メモリを搭載することによって、当該不揮発性メモリにプログラムを格納し、機能追加やバグ修正のためのプログラムの更新に対応できるようにしている。
【0011】
このように、不揮発性メモリに格納されるプログラムは、機能追加やバグ修正等のために更新され、製品の出荷前と製品の出荷後とでは異なる場合があり、さらに更新されたプログラムのパターンは、機能追加やバグ修正のためのプログラム更新の回数分存在することになる。
【0012】
しかしながら、特許文献2のマイクロコンピュータ920は、このようなプログラムの更新が複数回にわたって行われる可能性があることを全く想定していない。すなわち、特許文献2に記載のROM921が書き換え可能な不揮発性メモリであり、ROM921にマイクロコンピュータが実行するプログラムが格納されている場合、このROM921に格納されたプログラムが書き換えられてしまう場合について、何ら記載されていない。
【0013】
特許文献2においては、製品出荷後の不具合解析のためにROM921に格納されたプログラムのデバッグが必要になった場合、不具合品として回収された製品に搭載されたROM921に格納されたプログラムと、入力回路925から入力される比較用データとの一致が必要になる。しかし、前述の通り、不具合品として回収された製品に搭載されたROMに格納されたプログラムが、どのようなプログラムに更新されているか判断することができない。そのため、考えられる全てのプログラム(出荷の際の元々のプログラムと複数の更新プログラム)を準備し、全てのプログラムに対し比較の結果が一致するまで、当該比較作業を実行しなければならない。その際、プログラムの更新が多ければ多いほど、また、対象となる不具合品が多ければ多いほど、デバッグのためのセキュリティ解除の作業が煩雑となってしまう。
【課題を解決するための手段】
【0014】
上述した課題を解決するために、複数の格納領域を備えプログラムが前記複数の格納領域に分散して格納される不揮発性メモリと、前記プログラムを実行する中央演算処理装置とを有するマイクロコンピュータであって、前記プログラムのデバッグを行うために使用するデバッグ用装置を接続するためのデバッグ用端子と、前記複数の格納領域の各々に対応付けられた複数のデバッグ機能設定値を格納するデバッグ機能設定用メモリと、前記デバッグ機能設定値に基づいて選択される前記格納領域に格納された前記プログラムの一部と前記デバッグ用端子から入力されるデータとを比較し、当該比較の結果に基づいて、外部からのアクセスの許否を判断するデバッグ判断部とを備えることを特徴とする。
【0015】
本発明においては、マイクロコンピュータのメモリに書き込まれたプログラムの一部とマイクロコンピュータの外部機器に格納されているプログラムの一部とが一致するか否かによってデバッグを行うか否かを判断する。
【発明の効果】
【0016】
本発明によれば、セキュリティ解除に用いるプログラムが更新された場合においても、煩雑な作業なしに、デバッグを開始するためのセキュリティ解除を行うことができる。
【発明を実施するための最良の形態】
【0017】
実施の形態1.
以下、実施の形態1について、図面を参照しながら詳細に説明する。まず、図1(a)に実施の形態1にかかるマイクロコンピュータのデバッグシステムの全体構成を示す。図1(a)に示すように、実施の形態1にかかるマイクロコンピュータのデバッグシステムは、マイクロコンピュータ201、及び、例えばUSBコントローラ等のIC500を有するユーザ基板100と、プログラムのブレーク機能等を有するデバッグ用装置600と、書き込み用装置700と、プログラムのデバッグ及びプログラムの書き込み等を行うEWS(Engineering Workstation)パーソナルコンピュータ800(以下ホストPCという。)とからなる。デバッグ用装置600は、ユーザ基板100に形成された接続端子302に接続され、後述するデバッグ判断部260とデバッグ用通信路300を介して接続されている。また、書込み用装置700は、ユーザ基板100に形成された接続端子402に接続され、後述する書込み用通信路400を介してマイクロコンピュータ201の書込み用回路250と接続されている。ホストPC800は、デバッグ用装置600を介してマイクロコンピュータ201に格納されているプログラムのデバッグを行なう。また、書込み用装置700を介して、デバッグを行なったプログラムをマイクロコンピュータ201に書き込む。
【0018】
マイクロコンピュータ201は、プログラムの格納等を行うメモリ202と、メモリ202にプログラムを書き込むための書き込み用回路250と、後述するデバッグ機能設定用メモリ206の値に応じてメモリ202に格納されているプログラムとデバッグを行うホストPC800に格納されているプログラムとの比較結果に基づきデバッグの許否を判断するデバッグ判断部260と、プログラムを実行する中央演算処理装置(CPU)270とを有する。その他に、インターバル割り込みやPWM(Pulse Width Modulation)出力等ができるタイマ220と、通信用のUART(Universal Asynchronous Receiver Transmitter)221と、その他周辺機能を有する回路230と、マイクロコンピュータに外付けで素子を接続する際の仲介装置である外部バスI/F240等を有する。ここで、マイクロコンピュータ201が有する機器等は内部バス280によって相互に接続されている。また、CPU270とデバッグ判断部260は専用バス290で接続されている。さらに、マイクロコンピュータ201はユーザ基板100と接続するための接続端子301及び接続端子401等を有している。
【0019】
また、マイクロコンピュータ201のメモリ202は、書き換え可能な不揮発性メモリ(以下、不揮発性メモリという。)203、RAM204、SFR(Special Function Register)205、及びデバッグ機能設定用メモリ206を有する。SFR205は、特殊機能レジスタであって、マイクロコンピュータ201のタイマ220、UART221、及びその他周辺回路230等の制御を行うためのレジスタである。RAM204はマイクロコンピュータ201で演算した結果等のデータを保持する。また、RAM204はプログラムを実行する際にも使用可能であり、プログラム実行の際にデータの一時保存等を行う。
【0020】
不揮発性メモリ203はマイクロコンピュータ201のプログラムやデータを格納するメモリである。この不揮発性メモリ203のデータは、書き込み用回路250によってプログラム等が書き込まれる。また、機能追加やバグ修正のためのプログラム更新が行われた場合にもデバッグを可能にするために、不揮発性メモリ203を複数のブロックに分ける。そして、1つのプログラムを複数のブロックに分けて格納する。すなわち、プログラムの一部を複数のブロックにそれぞれ格納する。ここで不揮発性メモリ203のブロックのサイズはマイクロコンピュータ設計者が任意に決定することができる。
【0021】
デバッグ機能設定用メモリ206には、不揮発性メモリ203のブロック毎に設定されたデバッグ機能設定値が格納されている。デバッグ機能設定値は、デバッグの許否の判断を行なうか否かを示す値である。
【0022】
ここで、図1(b)に不揮発性メモリ203とデバッグ機能設定用メモリ206の関係を示す。不揮発性メモリ203の各ブロックに対応したデバッグ機能設定値がデバッグ機能設定用メモリ206に格納されている。すなわち、1つのプログラムを不揮発性メモリ203の複数のブロックに分けて格納し、デバッグ機能設定用メモリ206に、不揮発性メモリ203の各ブロックに格納されているプログラムの一部に対応したデバッグ機能設定値を設定し格納する。これにより、デバッグの許否の判断を行うか否かを不揮発性メモリ203のブロック単位で設定することができる。さらに、プログラムの更新を行う不揮発性メモリ203のブロックに格納されているプログラムの一部はデバッグの許否の判断を行わない設定にすることができ、プログラムの更新を行った場合でもデバッグを行うことができる。
【0023】
プログラムの更新が行われる不揮発性メモリ203のブロックはプログラム設計者が予めわかっているため、ユーザはプログラムの更新が行われない不揮発性メモリ203のブロックに対応するデバッグ機能設定用メモリ206のデバッグ機能設定値を0にする。これにより、プログラムの更新が行われる不揮発性メモリ203のブロックに格納されているプログラムの一部はデバッグの許否判断を行わない。このため、プログラムの更新を行った場合でもデバッグを行うことができる。
【0024】
例えば、実施の形態1ではデバッグ機能設定用メモリ206に格納するデバッグ機能設定値は、不揮発性メモリ203に格納されているデータ、すなわちプログラムの一部と、当該プログラムの一部に対応しホストPC800に格納されているプログラムの一部(以下、比較用データという。)との一致判定を行なって、デバッグの許否を判断する場合を0に対応させる。そして、ホストPC800が格納している比較用データと、不揮発性メモリ203に格納されているプログラムの一部とを比較せずに、デバッグを許可する場合を1に対応させることとする。
【0025】
すなわち、後述するようにホストPC800からデバッグ判断部260にデバッグ開始信号が送信される。そして、デバッグ判断部260は、デバッグの許否の判断を行うか否かを判断するために、不揮発性メモリ203のそれぞれのブロック(Area0乃至Area3)に対応するデバッグ機能設定用メモリ206のデバッグ機能設定値を読み出す。デバッグ機能設定値が1の場合は、一致判定を行わずにデバッグを許可する。一方、デバッグ機能設定値が0の場合は、ホストPC800に格納されている比較用データと、不揮発性メモリ203のブロックに格納されているプログラムの一部とを比較して一致判定を行う。この一致判定において、ホストPC800に格納されている比較用データと不揮発性メモリ203に格納されているプログラムの一部が一致することを確認する。そして、不揮発性メモリ203のブロック全てにおいて、格納されているプログラムの一部と、ホストPC800に格納されている比較用データと一致した場合にデバッグを許可する。
【0026】
また、実施の形態1ではデバッグ判断部260がデバッグ機能設定用メモリ206に格納されているデバッグ機能設定値を読み出してその値に応じて不揮発性メモリ203に格納されているプログラムの一部と、このプログラムに対応し、ホストPC800に格納されている比較用データとの一致判定を行って、デバッグの許否を判断することとしたが、例えばCPU270がこの判断を行ってもよい。さらに、実施の形態1において、デバッグ機能設定用メモリ206に格納されているデバッグ機能設定値が0の場合、ホストPC800に格納されている比較用データと、不揮発性メモリ203に格納されているプログラムの一部との一致判定を行なって、デバッグの許否を判断し、デバッグ機能設定値が1の場合、ホストPC800が格納している比較用データと、不揮発性メモリ203に格納されているプログラムの一部とを比較せずに、デバッグを許可することとするが、デバッグ機能設定値が1の場合にプログラムの一致判定を行い、デバッグ機能設定値が0の場合はプログラムの一致判定を行うことなくデバッグを許可することとしてもよい。
【0027】
以上のことから、不揮発性メモリ203のそれぞれのブロックにおいて、デバッグ機能設定用メモリ206に1が格納されている場合は、デバッグ判断部260が不揮発性メモリ203に格納されたプログラムの一部とホストPC800からデバッグ用装置600を経由して送られてきた比較用データとの比較を行うことなく、デバッグを許可する。一方、デバッグ機能設定用メモリ206に0が格納されている場合は、デバッグ判断部260が、不揮発性メモリ203に格納されているプログラムの一部とホストPC800からデバッグ用装置600を経由して送られてきた比較用データとを比較する。不揮発性メモリ203のブロック全てにおいて、ホストPC800から送られる比較用データと一致する場合は、そのままデバッグを許可する。そして、プログラムの比較の結果、少なくとも1以上ブロックにおいて比較が一致しない場合は、デバッグ判断部260がデバッグを許可しないためホストPC800はデバッグを行えない。すなわち、プログラム自体を、デバッグを行う際のセキュリティコードとして、ホストPC800が格納している比較用データと不揮発性メモリ203に格納されているプログラムの一部とを比較して、両者が一致した場合にのみホストPC800は、デバッグを行うことができる。また、プログラムが一致しない場合は、ホストPC800はデバッグを行えないため、マイクロコンピュータ201のRAM204及びSFR205等に格納されているデータ及びCPU270等の内部の状態を示すデータが漏洩することを防止することができる。
【0028】
ここで、上述のマイクロコンピュータのデバッグシステムを用いて、ユーザがマイクロコンピュータのプログラムの開発を行い、プログラムの書き込み、プログラムのデバッグ、そして製品として出荷するまでの手順を以下に説明する。まず、プログラムの開発を行う。すなわち、ユーザは、ユーザが作成するシステムに合わせてマイクロコンピュータ201の動作を規定する。そして、ホストPC800を用いてマイクロコンピュータ用プログラムのコーディング(作成)を行う。
【0029】
次に、コーディングしたプログラムの書き込みを行う。ユーザはコーディングしたプログラムを、書き込み用装置700を介してホストPC800からマイクロコンピュータ201の書き込み用回路250に転送する。書き込み用回路250は、ホストPC800から送信されたプログラムを受け取り、マイクロコンピュータ201の不揮発性メモリ203にホストPC800から送られてきたプログラムを書き込む。実施の形態1では、マイクロコンピュータ201上にメモリ202及びデバッグ判断部260等の素子を形成した後、ホストPC800から書き込み用装置700及び書き込み用回路250を介して不揮発性メモリ203にプログラムを書き込むこととしたが、マイクロコンピュータ201の製造過程において、例えば書き込み用の装置を直接不揮発性メモリ203に接続して、ホストPC800等を介さずにプログラムを書き込むことも可能である。
【0030】
また、不揮発性メモリ203にプログラムが書き込まれる際にデバッグ機能設定用メモリ206に格納するデバッグ機能設定値を決めることができる。すなわち、上述したように、デバッグ機能設定用メモリ206には0又は1のデバッグ機能設定値が格納される。ここで、プログラムの開発中及びプログラムのデバッグ中は、頻繁にデバッグ機能を利用するため、デバッグ機能設定用メモリ206のデバッグ機能設定値は1にすることが好ましい。すなわち、プログラムの開発中及びプログラムのデバッグ中は、不揮発性メモリ203の各ブロックに格納されているプログラム一部とホストPC800からデバッグ用装置600を経由して送られてきた比較用データとの一致判定を行なわずに、デバッグの要請があった場合にはそのままデバッグを許可することが好ましい。これにより、デバッグ作業の時間短縮をすることができる。
【0031】
プログラムのコーディング終了後、マイクロコンピュータ201の不揮発性メモリ203の各ブロックに格納するプログラムの一部の書き込みを全てのブロックで行う。このとき、不揮発性メモリ203の各ブロックに対応するデバッグ機能設定値を設定し、ブロック毎に0又は1のデバッグ機能設定値を格納する。実施の形態1では、デバッグ機能設定値が1の場合、プログラムの比較を行うことなくデバッグを行い、デバッグ機能設定値が0の場合はプログラムの比較を行うこととするが、デバッグ機能設定値が1の場合にプログラムの比較を行い、デバッグ機能設定値が0の場合はプログラムの比較を行うことなくデバッグを行うこととしてもよい。また、プログラムの開発中及びデバッグ中においては、頻繁にデバッグ機能を利用することを考慮してデバッグ機能設定値は1にすることが好ましい。これにより、不揮発性メモリ203の各ブロックに格納されているプログラムの一部とホストPC800から送られる比較用データとの一致判定を行わずに、デバッグの要請があった場合にはデバッグを行うため、プログラム開発及びデバッグ作業に要する時間を短縮することができる。
【0032】
次に、プログラムのデバッグ時のマイクロコンピュータ201の動作フローを図2に示す。図2を用いてプログラムのデバッグの動作を詳細に説明する。まず、マイクロコンピュータ201のデバッグ判断部260は、デバッグ用装置600を介してホストPC800と接続され、ホストPC800がデバッグ開始信号を送信する。デバッグ判断部260はこの開始信号を受信する(ステップS101)。これにより、デバッグ判断部260が動作する。そして、不揮発性メモリ203の任意のブロックに対応し、デバッグ機能設定用メモリ206に格納されているデバッグ機能設定値を読み出し(ステップS102)、当該デバッグ機能設定用メモリ206の不揮発性メモリ203のブロックに対応するデバッグ機能設定値が0又は1のどちらの値が格納されているか判断する(ステップS103)。ここで、一般的にデータを格納したメモリのブロックを表す数値(番地)であるメモリアドレスが使用される。実施の形態1は例えば、不揮発性メモリ203のメモリアドレスが小さい値の下位のブロックからプログラムの比較が必要かどうかの判断を行う。
【0033】
そして、当該不揮発性メモリ203の任意のブロックに対応するデバッグ機能設定値が1である場合は、当該不揮発性メモリ203のブロックに格納されているプログラムの一部とホストPC800に格納されている比較用データとの一致判定を行わないことを表すACK信号を、デバッグ判断部260を介してホストPC800に送信する(ステップS110)。そして、ステップS108に移る。
【0034】
一方、当該不揮発性メモリ203の任意のブロックに対応するデバッグ機能設定値が0である場合は、先ず、当該不揮発性メモリ203に格納されているプログラムの一部と、このプログラムの一部に対応し、ホストPC800に格納されている比較用データとを比較する。この場合、デバッグ判断部206は、当該不揮発性メモリ203に格納されているプログラムの一部に対応し、ホストPC800に格納されている比較用データを送信するように要求する(ステップS104)。そして、ホストPC800はホストPC800に格納されている比較用のプログラムをデバッグ判断部260に送信し、デバッグ判断部260はその比較用のプログラムを受信する(ステップS105)。ここで、受信したプログラムは一時的にRAM204に保存される。
【0035】
そして、デバッグ判断部260において、RAM204に保存された比較用データと不揮発性メモリ203に格納されているプログラムの一部との一致判定を行う(ステップS106)。この判定の結果、不揮発性メモリ203に格納されているプログラムの一部とホストPC800に格納されている比較用データとが一致しない場合は、デバッグを許可しないため、デバッグモード不許可のNACK信号をホストPC800に送信する(ステップS111)。そして、デバッグモード不許可の通知を表示してデバッグ作業を終了する。すなわち、デバッグ判断部260を停止させる(ステップS112)。
【0036】
一方、ステップS106において不揮発性メモリ203に格納されているプログラムの一部と比較用データとの一致判定の結果、プログラムが一致する場合は、当該一致判定を行った不揮発性メモリ203のブロックはデバッグを許可する。すなわち、当該一致判定を行った不揮発性メモリ203のブロックのデバッグモード許可のACK信号を、デバッグ判断部260を介してホストPC800に送信する(ステップS107)。そして、ステップS108に移る。
【0037】
ステップS108では、不揮発性メモリ203のブロック全てにおいて、このブロックに対応するデバッグ機能設定値が0又は1のどちらの値がデバッグ機能設定用メモリ206に格納されているかを判断する。そして、不揮発性メモリ203のブロック全てにおいて、ステップS103が行われていない場合は、残りのブロックにおいても当該ブロックに対応するデバッグ機能設定用メモリ206の値を読み出し、プログラムの一致判定を行うか否かの判断を行う必要がある。すなわち、全ての不揮発性メモリ203のブロックにおいてステップS103が行われていない場合は、ステップS102に戻り、ステップS103が行われていない不揮発性メモリ203のブロックに対応するデバッグ機能設定用メモリ206のデバッグ機能設定値を読み出す。そして、デバッグ機能設定値を読み出した後のステップは上述のステップS103乃至ステップS108及びステップS110乃至ステップS112と同様である。
【0038】
すなわち、ステップS103において、不揮発性メモリ203のブロックに対応するデバッグ機能設定値は、0又は1のどちらの値が格納されているか判断し、判断の結果、デバッグ機能設定値が1である場合は、当該ブロックに格納されているプログラムの一部のデバッグを許可し、ステップS108に移る。一方、デバッグ機能設定用メモリ206に0が格納されている場合は、デバッグ許否の判断を行う。すなわち、不揮発性メモリ203のブロックに格納されているプログラムの一部と、ホストPC800に格納されていて当該不揮発性メモリ203のブロックに格納されているプログラムの一部に対応するプログラムの一部と、一致判定を行う。判定の結果、一致する場合は、ステップS108に移る。一方、一致しない場合は、デバッグを終了する。
【0039】
そして、ステップS108においてデバッグ機能設定用メモリ206に格納されているデバッグ機能設定値が全て1である場合、又は不揮発性メモリ203のブロックに格納されているプログラムの一部に対応するデバッグ機能設定値が0である場合の比較用データと不揮発性メモリ203に格納されているプログラムの一部とが全て一致した場合のみ、デバッグ判断部206はデバッグを許可する(ステップS109)。
【0040】
ここで、実施の形態1では、不揮発性メモリ203の全てのブロックにおいてデバッグ機能設定値を判断する(ステップS108)こととした。すなわち、不揮発性メモリ203の全てのブロック(Area0乃至Area3)においてデバッグ機能設定値に基づいてデバッグの許否の判断をすることとしたが、例えば、不揮発性メモリ203のブロックのうち一部のブロック(例えば、Area1)のみデバッグ許否を判断し、当該一部のブロックでデバッグが許可された場合に、デバッグを行うこととしてもよい。すなわち、Area0乃至Area3全てのデバッグ機能設定値を判断するのではなく、Area1のみデバッグ機能設定値を判断すればよい。このため、デバッグのためのセキュリティ解除の作業の煩雑さがより解消され、デバッグ作業の時間が短縮される。また、実施の形態1では、デバッグ機能設定用メモリ206に、不揮発性メモリ203のブロックに対応するデバッグ機能設定値(0又は1)がそれぞれ格納されているとしたが、例えば、デバッグ機能設定値を4ビットとし、デバッグ機能設定値が0000の場合はArea0、1111の場合は、Area1乃至3に格納されているプログラムの一部のデバッグ許否を判断し、それ以外のブロックはデバッグの許否の判断をしないとしてもよい。また、デバッグ機能設定値を2ビットにし、デバッグ機能設定値が00の場合はArea0、デバッグ機能設定値が11の場合は、Area1及びArea3においてデバッグの許否の判断を行い、それ以外のブロックにおいてはデバッグの許否判断を行わないとしてもよい。
【0041】
以上のように、実施の形態1のマイクロコンピュータ201は、複数のブロックで構成された不揮発性メモリ203と、不揮発性メモリ203の各ブロックに対応するデバッグ機能設定値を格納しているデバッグ機能設定用メモリ206とを有する。すなわち、1つのプログラムを不揮発性メモリ203のブロック毎に分けて格納し、不揮発性メモリ203の各ブロックに対応するデバッグ機能設定値を格納するデバッグ機能設定用メモリ206を設ける。そして、不揮発性メモリ203の各ブロックに対応するデバッグ機能設定値(0又は1)をデバッグ機能設定用メモリに格納する。これにより、不揮発性メモリ203のブロック毎、すなわち、プログラムの部分毎にデバッグの許否の判断を行うか否かを判断することができる。
【0042】
例えば、プログラムの更新を行う不揮発性メモリ203のブロックに対応するデバッグ機能設定値は、プログラムの比較を行わないデバッグ機能設定値を格納し、プログラムの更新を行わない不揮発性メモリ203のブロックに対応するデバッグ機能設定値は、プログラムの比較を行うデバッグ機能設定値を格納する。これによりプログラムの更新によって不揮発性メモリ203のプログラムが書き換えられた場合であっても、その書き換えられた不揮発性メモリ203のブロックはプログラムの一致判定を行わずにデバッグを行い、プログラムの更新を行わない不揮発性メモリ203のブロックのみプログラムの一致判定を行い、プログラムが一致した場合にホストPC800はデバッグを行うことができる。すなわち、不揮発性メモリ203のブロック毎にデバッグの許否の判断を行うか否かを判断することができるため、プログラミングの更新を行った場合でも煩雑な作業なしにデバッグを開始するためのセキュリティ解除を行うことができる。また、デバッグを行う際のセキュリティ確保の方法として、マイクロコンピュータのプログラム自体をセキュリティコードとするため、ユーザはプログラムのみを管理すればよいため、プログラム管理を簡素化することができる。
【0043】
実施の形態2.
次に実施の形態2について説明する。上述の実施の形態1ではプログラムの更新が行われることを前提としているが、プログラムの更新が行われない場合は、例えば、不揮発性メモリを複数のブロックにわけなくてもよい。すなわち、不揮発性メモリは1つのブロックのみ有し、このブロックにプログラム全てを格納する。そして、ユーザがデバッグを行う際は、この不揮発性メモリに格納されているプログラム全てが一致しているか否かを判断する。以下に実施の形態2のマイクロコンピュータのデバッグシステムの構成及びプログラムの開発からシステムの出荷までの手順について詳細に説明する。ここで、実施の形態1と同一の構成要素には同一の符号を付し、その詳細な説明は省略する。
【0044】
図3に実施の形態2にかかるマイクロコンピュータのデバッグシステムの全体構成を示す。図3に示すように、実施の形態2にかかるマイクロコンピュータのデバッグシステムは、メモリ210、タイマ220、UART221、その他周辺回路230、外部バスI/F240、書き込み用回路250、デバッグ判断部260、及びCPU270等からなるマイクロコンピュータ200及びIC500とを有するユーザ基板100と、デバッグ用装置600と、書き込み用装置700と、プログラムのデバッグ及びプログラムの書き込み等を行うEWSパーソナルコンピュータ800(以下ホストPCという。)とからなる。デバッグ用装置600は、ホストPC800及びデバッグ判断部260と接続されている。また、書き込み用装置700はホストPC800及び書き込み用回路250と接続されている。
【0045】
ここで、メモリ210は、SFR211、RAM212、不揮発性メモリ213、及びデバッグ機能設定用メモリ214を有する。ここで、不揮発性メモリ213は一つのブロックで構成されていて、マイクロコンピュータのプログラム全てが格納されている。
【0046】
そして、実施の形態2にかかるマイクロコンピュータ200は、デバッグ機能設定値が格納されたデバッグ機能設定用メモリ214を有する。デバッグ機能設定値は、デバッグの許否の判断を行なうか否かを示す値である。例えば、実施の形態2ではデバッグ機能設定用メモリ214は1bitとし、ホストPC800に格納されているプログラムと、不揮発性メモリ213に格納されているプログラムとの一致判定を行なって、デバッグの許否を判断する場合のデバッグ機能設定値を0に対応させる。そして、ホストPC800が格納しているプログラムと、不揮発性メモリ213に格納されているプログラムとを比較せずに、デバッグを許可する場合のデバッグ機能設定値を1に対応させることとする。
【0047】
すなわち、後述するようにホストPC800からデバッグ判断部260にデバッグ開始信号が送信される。そして、デバッグ判断部260は、デバッグの許否の判断を行うか否かを判断するためにデバッグ機能設定用メモリ214のデバッグ機能設定値を読み出す。デバッグ機能設定値が1の場合は、一致判定を行わずにデバッグを許可する。一方、デバッグ機能設定値が0の場合は、ホストPC800に格納されているプログラムと不揮発性メモリ213に格納されているプログラムとを比較して一致判定を行う。この一致判定において、ホストPC800に格納されているプログラム全部と不揮発性メモリ213に格納されているプログラム全部が一致した場合にデバッグを許可する。
【0048】
実施の形態2においては実施の形態1と同様に、デバッグ機能設定用メモリ214に格納されているデバッグ機能設定値が0の場合、ホストPC800に格納されているプログラムと、不揮発性メモリ213に格納されているプログラムとの一致判定を行なって、デバッグの許否を判断し、デバッグ機能設定値が1の場合、ホストPC800が格納しているプログラムと、不揮発性メモリ213に格納されているプログラムとを比較せずに、デバッグを許可することとするが、デバッグ機能設定値が1の場合にプログラムの一致判定を行い、デバッグ機能設定値が0の場合はプログラムの一致判定を行うことなくデバッグを行うこととしてもよい。
【0049】
以上のことから、デバッグ機能設定用メモリ214に1が格納されている場合は、デバッグ判断部260が不揮発性メモリ213に格納されたプログラムとホストPC800からデバッグ用装置600を経由して送られてきたプログラムとの比較を行うことなく、ホストPC800はデバッグを行う。一方、デバッグ機能設定用メモリ214に0が格納されている場合は、デバッグ判断部206が、不揮発性メモリ213に格納されているプログラムとホストPC800からデバッグ用装置600を経由して送られてきたプログラムとを比較する。両者のプログラム全部が一致する場合は、ホストPC800はそのままデバッグを行う。そして、プログラムの比較の結果、両者が一致しない場合は、ホストPC800はデバッグを行わない。すなわち、プログラム自体を、デバッグを行う際のセキュリティコードとして、ホストPC800が格納しているプログラムと不揮発性メモリ213に格納されているプログラムとを比較して、両者が一致した場合にのみデバッグを行うことができる。
【0050】
また、デバッグ機能設定用メモリ214は、再書き込み可能なメモリであることが好ましい。後述するように、例えば、プログラムを開発する段階ではホストPC800に格納されているプログラムと、不揮発性メモリ213に格納されているプログラムとを比較せずにデバックを許可する値に設定しておく。一方、デバッグの要請を行う際はプログラムの一致判定を行なって、一致した場合にのみデバッグを許可する値に設定することが好ましい。このため、デバッグ機能設定用メモリ214は、再書き込み可能なメモリであることが好ましい。
【0051】
ここで、上述のマイクロコンピュータのデバッグシステムを用いて、ユーザが行うプログラムの開発、プログラムの書き込み、プログラムのデバッグ、そして製品として出荷するまでの手順を以下に説明する。まず、プログラムの開発を行う。すなわち、ユーザは、ユーザが作成するシステムに合わせてマイクロコンピュータ200の動作を規定する。そして、ホストPC800を用いてマイクロコンピュータ用プログラムのコーディング(作成)を行う。
【0052】
次に、コーディングしたプログラムの書き込みを行う。ユーザはコーディングしたプログラムを、書き込み用装置700を介してホストPC800からマイクロコンピュータ200の書き込み用回路250に転送する。書き込み用回路250は、ホストPC800から送信されたプログラムを受け取り、マイクロコンピュータ200の不揮発性メモリ213にホストPC800から送られてきたプログラムを書き込む。実施の形態2では、マイクロコンピュータ200上にメモリ210及びデバッグ判断部260等の素子を形成した後、ホストPC800から書き込み用装置700及び書き込み用回路250を介して不揮発性メモリ213にプログラムを書き込むこととしたが、マイクロコンピュータ200の製造過程において、例えば書き込み用の装置を直接不揮発性メモリ213に接続して、ホストPC800等を介さずにプログラムを書き込むことも可能である。
【0053】
また、不揮発性メモリ213にプログラムが書き込まれる際にデバッグ機能設定用メモリ214に格納するデバッグ機能設定値を決めることができる。すなわち、上述したように、デバッグ機能設定用メモリ214には0又は1のデバッグ機能設定値が格納される。ここで、プログラムの開発中及びプログラムのデバッグ中は、頻繁にデバッグ機能を利用するため、デバッグ機能設定用メモリ214のデバッグ機能設定値は1にすることが好ましい。すなわち、プログラムの開発中及びプログラムのデバッグ中は、不揮発性メモリ213に格納されているプログラムとホストPC800からデバッグ用装置600を経由して送られてきたプログラムとの一致判定を行なわずに、デバッグの要請があった場合にはそのままデバッグを許可することが好ましい。これにより、デバッグ作業の時間短縮をすることができる。
【0054】
次に、マイクロコンピュータ200のデバッグについて説明する。デバッグにおけるマイクロコンピュータ200の動作フローを図4に示す。まず、ユーザはデバッグ用装置600を介してマイクロコンピュータ200とホストPC800とを接続する。そして、ユーザはホストPC800からデバッグ開始信号を送信する。マイクロコンピュータ200のデバッグ判断部260は、デバッグ用装置600を介してデバッグ開始信号を受信する(ステップS201)。
【0055】
デバッグ判断部260は、デバッグ開始信号を受信すると、デバッグ機能設定用メモリ214のデバッグ機能設定値を読み出す(ステップS202)。そして、デバッグ機能設定用メモリ214に0又は1のどちらの値が格納されているか判断する(ステップS203)。そして、デバッグ機能設定用メモリ214に1が格納されている場合は、デバッグ用装置600を介してホストPC800にデバッグモード許可を表すACK(Acknowledgement)信号を送信し(ステップS209)、ホストPC800がデバッグを行う(ステップS210)。
【0056】
一方、デバッグ機能設定用メモリ214に0が格納されている場合は、先ず、不揮発性メモリ213のプログラムとホストPC800に格納されているプログラムとを比較する。この場合、デバッグ判断部260はデバッグ用装置600を介してホストPC800に格納されているプログラムを送信するように要求する(ステップS204)。そして、ホストPC800は、デバッグ判断部260からプログラム送信要求を受けると格納されているプログラムをマイクロコンピュータ200のデバッグ判断部260へ送信する。そして、デバッグ判断部260はホストPC800から送られてきた比較用のプログラムを受信する(ステップS205)。受信したプログラムは一時的にRAM212に保存される。
【0057】
次に、デバッグ判断部260において、RAM212に保存された比較用のプログラムと不揮発性メモリ213に格納されているプログラムとの一致判定をする(ステップS206)。このとき、例えば、RAM212に保存される比較用のプログラムの容量が大きく、RAM212に入りきらない場合、比較用のプログラムを複数回に分けてRAM212に格納する。すなわち、まず、プログラムの一部のデータをRAM212に格納し、比較が終わった部分のデータから破棄し、残りのデータを順次RAM212に格納して比較する。そして、マイクロコンピュータ200のデバッグ判断部260が、RAM212に保存された比較用のプログラムと不揮発性メモリ213に格納されているプログラムとを比較した結果、プログラムの内容が全部一致していれば、デバッグモード許可を表すACK信号をホストPC800へ送信する(ステップS207)。ホストPC800がデバッグモード許可を表すACK信号を受信した場合は、デバッグを行う(ステップS208)。
【0058】
一方、ステップ106において、RAM212に保存された比較用のプログラムと不揮発性メモリ213に格納されているプログラムとの比較結果が一致していない場合は、デバッグモード不許可をあらわすNACK信号をホストPC800に送信(ステップS211)する。そして、ユーザにデバッグモード不許可を伝えるメッセージをホストPC800に表示してデバッグを終了する。すなわちデバッグ判断部260を停止させ(ステップS212)、ホストPC800がデバッグを行うことなくホストPC800の処理を終了させる。
【0059】
また、マイクロコンピュータ200のデバッグ判断部260は、ホストPC800がデバッグを行う場合(ステップS208、ステップS210)、不揮発性メモリ213に格納されているプログラムの読み出しを許可する。すなわち、プログラムの読み出しが可能となる。ユーザはホストPC800を操作してマイクロコンピュータ200の不揮発性メモリ213に格納されているプログラムを読み出し、あるいは実行、修正等のデバッグの操作を行い、プログラムの修正を行う。そして、プログラムを修正した場合、修正後のプログラムをホストPC800に格納する。
【0060】
このように、デバッグ判断部260は、デバッグ機能設定用メモリ214に0が格納されている場合は、マイクロコンピュータの不揮発性メモリ213に格納されているプログラムとホストPC800に格納されているプログラムとを比較し、一致判定を行う。そして、両者のプログラムが一致しなければデバッグを許可しない。一方、両者のプログラムが一致する場合はデバッグを許可する。また、デバッグ機能設定用メモリ214に1が格納されている場合は、デバッグ判断部260は、不揮発性メモリ213に格納されているプログラムとホストPC800が格納しているプログラムとの一致判定を行なわずにデバッグを許可する。
【0061】
このデバッグ機能設定値を使用することにより、例えば、デバッグ及び書込みを頻繁に繰り返す場合は、比較作業の時間短縮の為に、デバッグ機能設定用メモリ214を1に設定し、マイクロコンピュータ200の不揮発性メモリ213に格納されているプログラムとホストPCタ800に格納されているプログラムとの比較を行わないようにすることも可能である。
【0062】
そして、プログラムのデバッグを行った後、ユーザはマイクロコンピュータ200を使ったシステムを出荷する。出荷後、マイクロコンピュータを使ったシステムが不良となった場合、ユーザは上述したようにホストPC800からデバッグ開始信号をマイクロコンピュータ200のデバッグ判断部260に送信し、デバッグを行う。これにより、マイクロコンピュータの不良の解析を行うことができる。また、デバッグ機能設定用メモリ214を0に設定することによって、プログラムを知らない第三者が不正にマイクロコンピュータ200の不揮発性メモリ213を読み出すことを防止することができる。さらに、マイクロコンピュータ200のその他のメモリであるSFR211、及びCPU270等の内部状態を示すデータ等の漏洩を防止することができる。
【0063】
なお、実施の形態2においては、プログラムの更新が行われる場合には、当該プログラムの更新の際に、デバッグ用設定値の値を1(比較しない)に変更するようにしてもよい。このような構成にすれば、不揮発性メモリ213に格納されているプログラムとホストPC800が格納しているプログラムとの一致判定を行わずに、ホストPC800はデバッグを許可することができるため、デバッグのためのセキュリティ解除の際に煩雑な作業を伴うことはない。なお、その際は、従来技術のID及びパスワード等をマイクロコンピュータ200のセキュリティコードとすることが好ましい。
【0064】
以上のように、実施の形態2においては、マイクロコンピュータ200のプログラム自体をマイクロコンピュータ200のセキュリティコードとする。すなわち、マイクロコンピュータ200のプログラムのデバッグを行う際、まずデバッグ機能設定用メモリ214のデバッグ機能設定値を読み出し、その値に応じて、不揮発性メモリ213に格納されているプログラムとホストPC800に格納されているプログラムとを比較するか否かを判断し、この判断結果に応じてデバッグを行うか否か判断する。プログラムの比較を行わない場合は、デバッグ判断部260はそのままデバッグを許可する。また、プログラムの比較を行う場合はホストPC800に格納されているプログラムと不揮発性メモリ213に格納されているプログラムの一致判定を行う。そして、プログラムが一致した場合にのみ、デバッグ判断部260はデバッグを許可する。一方、プログラムの比較の結果、プログラムが一致しない場合は、デバッグ判断部260はデバッグを許可しない。すなわち、マイクロコンピュータ200のプログラム自体をセキュリティコードとすることにより、ユーザはプログラムのみを管理すればよいため、プログラム管理の簡素化をすることができる。また、マイクロコンピュータ200のプログラムを知らない第三者にプログラムが漏洩することを防ぐことができる。そして、プログラムの更新が行われた場合にはデバッグ機能設定値をプログラムの比較を行わない値に設定することにより、煩雑な作業を行わずに、デバッグを開始するためのセキュリティ解除を行うことができる。
【0065】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、実施の形態1と実施の形態2を組み合わせてもよい。すなわち、実施の形態1及び実施の形態2の機能を有するマイクロコンピュータであってもよい。例えば、プログラムの更新が行われるまでは実施の形態2を用いて、プログラム全体の比較を行う。そして、プログラムの更新が行われた後は、実施の形態1を用いて不揮発性メモリのブロックに格納されているプログラムの一部とホストPCに格納されているプログラムの一部との比較を行うこととしてもよい。
【図面の簡単な説明】
【0066】
【図1】実施の形態1のマイクロコンピュータのデバッグシステムを示すブロック図である。
【図2】実施の形態1のマイクロコンピュータのデバッグ時の動作を示す動作フロー図である。
【図3】実施の形態2のマイクロコンピュータのデバッグシステムを示すブロック図である。
【図4】実施の形態2のマイクロコンピュータのデバッグ時の動作を示す動作フロー図である。
【図5】従来のマイクロコンピュータのデバッグシステムを示すブロック図である。
【図6】従来のマイクロコンピュータの動作を示す概略図である。
【符号の説明】
【0067】
100、900 ユーザ基板
200、201、901、920 マイクロコンピュータ
202、210 メモリ
203、213 不揮発性メモリ
204、212、905 RAM
205、211 SFR
206、214 デバッグ機能設定用メモリ
220 タイマ
221 UART
230 その他周辺回路
240 外部バスI/F
250 書き込み用回路
260 デバッグ判断部
270、903 CPU
280、908 内部バス
300 デバッグ用通信回路
400 書き込み用通信路
500 その他のIC
600 デバッグ用装置
700 書き込み用装置
800、917 ホストPC
902 周辺I/O
904、921 ROM
906 デバッグ機能制御回路
907 デバッグIF端子
909 バス制御回路
910 外部バス端子
911 リソースアクセス回路
912 CPU制御回路
913 プロテクトチェック回路
914 アクセスキーレジスタ
915 デバッグI/F入出力回路
916 機能制御モードレジスタ
922 ROMデータラッチ回路
923 一致検出回路
924 入力データラッチ回路
925 入力回路
926 制御回路
927 出力回路

【特許請求の範囲】
【請求項1】
複数の格納領域を備えプログラムが前記複数の格納領域に分散して格納される不揮発性メモリと、
前記プログラムを実行する中央演算処理装置とを有するマイクロコンピュータであって、
前記プログラムのデバッグを行うために使用するデバッグ用装置を接続するためのデバッグ用端子と、
前記複数の格納領域の各々に対応付けられたデバッグ機能設定値を格納するデバッグ機能設定用メモリと、
前記デバッグ機能設定値に基づいて選択される前記格納領域に格納された前記プログラムの一部と前記デバッグ用端子から入力されるデータとを比較し、当該比較の結果に基づいて、外部からのアクセスの許否を判断するデバッグ判断部とを備えるマイクロコンピュータ。
【請求項2】
前記デバッグ判断部は、
前記格納領域に格納されているプログラムの一部と前記デバッグ用端子から入力されるデータとが一致する場合にデバッグを許可する
ことを特徴とする請求項1記載のマイクロコンピュータ。
【請求項3】
前記デバッグ機能設定値は前記複数の格納領域の各々に対応付けられた複数のデバッグ機能設定値を有し、
前記デバッグ判断部は、
前記デバッグ機能設定値が第1の値の場合は、前記格納領域に格納されているプログラムの一部と前記デバッグ用端子から入力されるデータとが一致するか否かの一致判定に基づき前記デバッグを許可し、前記デバッグ機能設定値が第2の値の場合は当該一致判定を行わず前記デバッグを許可する
ことを特徴とする請求項1又は2項記載のマイクロコンピュータ。
【請求項4】
前記複数の格納領域のうち、任意の前記格納領域に格納されているプログラムの一部が前記中央演算処理装置によって書き換えられるものであり、
前記書き換えられる前記格納領域に格納されているプログラムの一部に対応する前記デバッグ機能設定値は前記第2の値に設定される
ことを特徴とする請求項3記載のマイクロコンピュータ。
【請求項5】
前記デバッグ判断部は、
全ての前記格納領域において、前記格納領域のそれぞれに格納されているプログラムの一部と前記デバッグ用端子から入力されるデータとを比較し、当該比較の結果に基づいて、外部からのアクセス許否を判断する
ことを特徴とする請求項1乃至4のいずれか1項記載のマイクロコンピュータ。
【請求項6】
マイクロコンピュータと、
前記マイクロコンピュータのデバッグを行うデバッグ装置とを有し、
前記マイクロコンピュータは、
複数の格納領域を備えプログラムが前記複数の格納領域に分散して格納される不揮発性メモリと、
前記プログラムを実行する中央演算処理装置とを有するマイクロコンピュータであって、
前記プログラムのデバッグを行うために使用するデバッグ用装置を接続するためのデバッグ用端子と、
前記複数の格納領域の各々に対応付けられたデバッグ機能設定値を格納するデバッグ機能設定用メモリと、
前記デバッグ機能設定値に基づいて選択される前記格納領域に格納された前記プログラムの一部と前記デバッグ用端子から入力されるデータとを比較し、当該比較の結果に基づいて、外部からのアクセスの許否を判断するデバッグ判断部とを備えるデバッグシステム。
【請求項7】
前記デバッグ判断部は、
前記格納領域に格納されているプログラムの一部と前記デバッグ用端子から入力されるデータとが一致する場合にデバッグを許可する
ことを特徴とする請求項6記載のデバッグシステム。
【請求項8】
前記デバッグ機能設定値は前記複数の格納領域の各々に対応付けられた複数のデバッグ機能設定値を有し、
前記デバッグ判断部は、
前記デバッグ機能設定値が第1の値の場合は、前記格納領域に格納されているプログラムの一部と前記デバッグ用端子から入力されるデータとが一致するか否かの一致判定に基づき前記デバッグを許可し、前記デバッグ機能設定値が第2の値の場合は当該一致判定を行わず前記デバッグを許可する
ことを特徴とする請求項6又は7項記載のデバッグシステム。
【請求項9】
前記複数の格納領域のうち、任意の前記格納領域に格納されているプログラムの一部が前記中央演算処理装置によって書き換えられるものであり、
前記書き換えられる前記格納領域に格納されているプログラムの一部に対応する前記デバッグ機能設定値は前記第2の値に設定される
ことを特徴とする請求項8記載のデバッグシステム。
【請求項10】
前記デバッグ判断部は、
全ての前記格納領域において、前記格納領域のそれぞれに格納されているプログラムの一部と前記デバッグ用端子から入力されるデータとを比較し、当該比較の結果に基づいて、外部からのアクセス許否を判断する
ことを特徴とする請求項6乃至9のいずれか1項記載のデバッグシステム。
【請求項11】
複数の格納領域を備え、プログラムが前記複数の格納領域に分散して格納される不揮発性メモリと、前記プログラムを実行する中央演算処理装置とを有するマイクロコンピュータのデバッグ方法であって、
前記プログラムのデバッグを行うために使用するデバッグ用装置をデバッグ用端子に接続し、
デバッグ機能設定用メモリに格納され、前記複数の格納領域の各々に対応付けられたデバッグ機能設定値に基づいて選択される前記格納領域に格納された前記プログラムの一部と前記デバッグ用端子から入力されるデータとを比較し、
当該比較の結果に基づいて、外部からのアクセスの許否を判断するマイクロコンピュータのデバッグ方法。
【請求項12】
前記格納領域に格納されているプログラムの一部と前記デバッグ用端子から入力されるデータとが一致する場合にデバッグを許可する
ことを特徴とする請求項11記載のマイクロコンピュータのデバッグ方法。
【請求項13】
前記デバッグ機能設定値は前記複数の格納領域の各々に対応付けられた複数のデバッグ機能設定値を有し、
前記デバッグ機能設定値が第1の値の場合は、前記格納領域に格納されているプログラムの一部と前記デバッグ用端子から入力されるデータとが一致するか否かの一致判定に基づき前記デバッグを許可し、前記デバッグ機能設定値が第2の値の場合は当該一致判定を行わず前記デバッグを許可する
ことを特徴とする請求項11又は12項記載のマイクロコンピュータのデバッグ方法。
【請求項14】
前記複数の格納領域のうち、任意の前記格納領域に格納されているプログラムの一部が前記中央演算処理装置によって書き換えられるものであり、
前記書き換えられる前記格納領域に格納されているプログラムの一部に対応する前記デバッグ機能設定値は前記第2の値に設定される
ことを特徴とする請求項13記載のマイクロコンピュータのデバッグ方法。
【請求項15】
前記デバッグ判断部は、
全ての前記格納領域において、前記格納領域に格納されているプログラムの一部と前記デバッグ用端子から入力されるデータとを比較し、当該比較の結果に基づいて、外部からのアクセス許否を判断する
ことを特徴とする請求項11乃至14のいずれか1項記載のマイクロコンピュータのデバッグ方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2008−123106(P2008−123106A)
【公開日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願番号】特願2006−304228(P2006−304228)
【出願日】平成18年11月9日(2006.11.9)
【出願人】(302062931)NECエレクトロニクス株式会社 (8,021)
【Fターム(参考)】