JPH03186927A - マイクロコンピュータのプログラム変更装置 - Google Patents
マイクロコンピュータのプログラム変更装置Info
- Publication number
- JPH03186927A JPH03186927A JP1325876A JP32587689A JPH03186927A JP H03186927 A JPH03186927 A JP H03186927A JP 1325876 A JP1325876 A JP 1325876A JP 32587689 A JP32587689 A JP 32587689A JP H03186927 A JPH03186927 A JP H03186927A
- Authority
- JP
- Japan
- Prior art keywords
- program
- data
- address
- rom
- change
- 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.)
- Pending
Links
- 230000004075 alteration Effects 0.000 title abstract 4
- 238000004891 communication Methods 0.000 abstract description 13
- 238000001514 detection method Methods 0.000 abstract description 6
- 230000004048 modification Effects 0.000 abstract description 6
- 238000012986 modification Methods 0.000 abstract description 3
- 230000008859 change Effects 0.000 description 64
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 4
- 230000009191 jumping Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 1
- 101150065817 ROM2 gene Proteins 0.000 description 1
- 235000009508 confectionery Nutrition 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は、マイクロコンピュータシステムに係り、詳し
くはリードオンリメモリの修正すべきプログラムデータ
に代えて修正されたプログラムデータを出力するマイク
ロコンピュータ(以下、マイコンと略記する。)のプロ
グラム変更装置に関する。
くはリードオンリメモリの修正すべきプログラムデータ
に代えて修正されたプログラムデータを出力するマイク
ロコンピュータ(以下、マイコンと略記する。)のプロ
グラム変更装置に関する。
[従来の技術]
一般的に、従来のワンチップマイコンは、第10図に示
すように、プログラムカウンタPC1所定のプログラム
が書込まれたプログラムメモリPMおよび命令デコーダ
IDを有する。このワンチップマイコンの動作はよく知
られているように、システムクロック(図示せず)によ
ってカウントアツプするプログラムカウンタPcによっ
てアドレスが指定されるプログラムメモリPMから続出
されるデータが命令デコーダIDによってデコードされ
ることによってプログラムが実行される。
すように、プログラムカウンタPC1所定のプログラム
が書込まれたプログラムメモリPMおよび命令デコーダ
IDを有する。このワンチップマイコンの動作はよく知
られているように、システムクロック(図示せず)によ
ってカウントアツプするプログラムカウンタPcによっ
てアドレスが指定されるプログラムメモリPMから続出
されるデータが命令デコーダIDによってデコードされ
ることによってプログラムが実行される。
プログラムメモリPMは、−数的にマスクROM (リ
ードオンリーメモリ)が用いられ、このマスクROMは
メーカの製造工程てメーカによりプログラムが書込まれ
、ユーザによる書換えは不可能である。
ードオンリーメモリ)が用いられ、このマスクROMは
メーカの製造工程てメーカによりプログラムが書込まれ
、ユーザによる書換えは不可能である。
また、最近では、ユーザによる書換えが1回だけ可能な
ワンタイムROMと呼ばれるものも販売されている。
ワンタイムROMと呼ばれるものも販売されている。
しかし、ワンチップマイコンの製造後にマスクROMの
書込みプログラムにバグなどが発見された場合やその一
部を修正したい場合、再度、ROMのマスクパターンを
書換えてから集積回路の製造プロセスをやり直す必要が
あるので、修正されたワンチップマイコンを人手するま
での期間が現状では数ケ月もかかる。
書込みプログラムにバグなどが発見された場合やその一
部を修正したい場合、再度、ROMのマスクパターンを
書換えてから集積回路の製造プロセスをやり直す必要が
あるので、修正されたワンチップマイコンを人手するま
での期間が現状では数ケ月もかかる。
しかも、マスクROMの書込みプログラムにバグなどが
発見されたワンチップマイコンは再利用することができ
ない。また、ワンタイムROMはマスクROMに比べて
非常に高価であり、ユーザがプログラムを書込むのに非
常に時間がかかり、量産品への採用には不向きである。
発見されたワンチップマイコンは再利用することができ
ない。また、ワンタイムROMはマスクROMに比べて
非常に高価であり、ユーザがプログラムを書込むのに非
常に時間がかかり、量産品への採用には不向きである。
このような課題を解決すべく、本発明者らは、「特願平
コ、−131861号」により、データ書換え用の電気
的に書込み可能な不揮発性メモリ部をワンチップマイコ
ンに内蔵することによってプログラムデータを修正する
方法を提案した。
コ、−131861号」により、データ書換え用の電気
的に書込み可能な不揮発性メモリ部をワンチップマイコ
ンに内蔵することによってプログラムデータを修正する
方法を提案した。
この方法は、ワンチップマイコン内の電気的に書込み可
能な不揮発性メモリ部に修正したいプログラムアドレス
および修正プログラムを記憶する場所を指定し、プログ
ラムカウンタと上記不揮発性メモリ部内の修正したいプ
ログラムアドレスとが一致した場合に修正プログラムを
実行するものであった。
能な不揮発性メモリ部に修正したいプログラムアドレス
および修正プログラムを記憶する場所を指定し、プログ
ラムカウンタと上記不揮発性メモリ部内の修正したいプ
ログラムアドレスとが一致した場合に修正プログラムを
実行するものであった。
こうすることにより、ワンチップマイコンの量産後にプ
ログラムのバグが発見された場合やその一部を修正した
い場合でも、再度、マスクROMを修正することなくプ
ログラムを変更でき、生産工程を止めなくて済む。
ログラムのバグが発見された場合やその一部を修正した
い場合でも、再度、マスクROMを修正することなくプ
ログラムを変更でき、生産工程を止めなくて済む。
[発明が解決しようとする課題]
上記したような方法は、比較的簡単な回路構成で実現可
能ではあるが、通常、CMO8(相補性絶縁ゲート型)
プロセスで製造されるワンチップマイコン内に電気的に
書込み可能な不揮発性メモリ部を作り込むプロセスが追
加する必要が生じるので、結果的に、ワンチップマイコ
ンのコストが上昇してしまうという問題がある。しかも
、内蔵した不揮発性メモリ部の容量の全てを使うとは限
らす、むしろ、全部は使わないことの方が多いので、容
量の無駄が生じる。
能ではあるが、通常、CMO8(相補性絶縁ゲート型)
プロセスで製造されるワンチップマイコン内に電気的に
書込み可能な不揮発性メモリ部を作り込むプロセスが追
加する必要が生じるので、結果的に、ワンチップマイコ
ンのコストが上昇してしまうという問題がある。しかも
、内蔵した不揮発性メモリ部の容量の全てを使うとは限
らす、むしろ、全部は使わないことの方が多いので、容
量の無駄が生じる。
このような問題を解決するために、ポートとアドレスバ
ス、データバスを切換えて、プログラムメモリをパラレ
ルデータ通信タイプのデバイスにより外付は拡張できる
方式のマイコンを使用することが考えられるが、これは
、ポートの有効活用上望ましくない。
ス、データバスを切換えて、プログラムメモリをパラレ
ルデータ通信タイプのデバイスにより外付は拡張できる
方式のマイコンを使用することが考えられるが、これは
、ポートの有効活用上望ましくない。
本発明は、このような課題に着目してなされたもので、
ワンチップマイコン内のり−ドオンリメモリの書込みプ
ログラムにバグなどが発見された場合やその一部を修正
したい場合に、リードオンリメモリの内容を書換えるこ
となく、一部を疑似的に書換えてプログラムを修正でき
、あるいは、割込み処理を行わせることにより実質的に
プログラムの追加とか削除を行なうことができ、しかも
、ワンチップマイコンをCMOSプロセスのままで実現
し得るマイクロコンピュータのプログラム変更装置を提
供することを目的とする。
ワンチップマイコン内のり−ドオンリメモリの書込みプ
ログラムにバグなどが発見された場合やその一部を修正
したい場合に、リードオンリメモリの内容を書換えるこ
となく、一部を疑似的に書換えてプログラムを修正でき
、あるいは、割込み処理を行わせることにより実質的に
プログラムの追加とか削除を行なうことができ、しかも
、ワンチップマイコンをCMOSプロセスのままで実現
し得るマイクロコンピュータのプログラム変更装置を提
供することを目的とする。
[課題を解決するための手段]
本発明のマイクロコンピュータのプログラム変更装置は
、リードオンリメモリに記憶されたプログラム命令に従
って動作するワンチップマイコンと、このワンチップマ
イコンに信号線で接続されている不揮発性メモリとから
なるマイコンシステムにおいて、上記不揮発性メモリに
は上記リードオンリメモリのプログラム変更用の変更ア
ドレスおよび命令コードを記憶させておき、上記ワンチ
ップマイコンでは、例えば電源投入時のリセット直後の
命令で上記不揮発性メモリから変更アドレスおよび命令
コードを受信してランダムアクセスメモリに記憶してお
き、上記変更アドレスとプログラムカウンタの内容とを
比較し、一致した場合に」二記命令コードを実行するよ
うにしている。
、リードオンリメモリに記憶されたプログラム命令に従
って動作するワンチップマイコンと、このワンチップマ
イコンに信号線で接続されている不揮発性メモリとから
なるマイコンシステムにおいて、上記不揮発性メモリに
は上記リードオンリメモリのプログラム変更用の変更ア
ドレスおよび命令コードを記憶させておき、上記ワンチ
ップマイコンでは、例えば電源投入時のリセット直後の
命令で上記不揮発性メモリから変更アドレスおよび命令
コードを受信してランダムアクセスメモリに記憶してお
き、上記変更アドレスとプログラムカウンタの内容とを
比較し、一致した場合に」二記命令コードを実行するよ
うにしている。
[作 用コ
ワンチップマイコン内のROMの書込みプログラムにバ
グなどが発見された場合やその一部を修正したい場合に
、このROMの修正したいアドレスに対応するアドレス
データと修正されたプログラムデータあるいは修正する
ための割込み用のプログラムデータをマイコンの外部に
設けられた不揮発性メモリに記憶させておき、ワンチッ
プマイコンの電源投入時のリセット直後の命令で不揮発
性メモリの記憶データをシリアル通信回路を介してプロ
グラム変更用のランダムアクセスメモリ(RAM)に読
み込む。これにより、プログラム変更用のRAMに記憶
されたアドレスデータとプログラムカウンタとが一致し
た時は、ROMの修正すべきプログラムデータに代えて
プログラム変更用のRAMに記憶されている修正された
プログラムデータが命令デコーダに出力される、あるい
は割込み用のプログラムデータに基すいて割込み処理が
行われるようになり、バグなどが修正されたプログラム
か実行される。なお、割込み処理では、メモリのデータ
の書換えとか、追加したい機能のサブルーチンのコール
とか、無条件ジャンプなどによりそれまでの処理の流れ
を変え、実質的にプログラムの追加とか削除を行なうこ
とが可能であり、プログラムの修正か可能になる。
グなどが発見された場合やその一部を修正したい場合に
、このROMの修正したいアドレスに対応するアドレス
データと修正されたプログラムデータあるいは修正する
ための割込み用のプログラムデータをマイコンの外部に
設けられた不揮発性メモリに記憶させておき、ワンチッ
プマイコンの電源投入時のリセット直後の命令で不揮発
性メモリの記憶データをシリアル通信回路を介してプロ
グラム変更用のランダムアクセスメモリ(RAM)に読
み込む。これにより、プログラム変更用のRAMに記憶
されたアドレスデータとプログラムカウンタとが一致し
た時は、ROMの修正すべきプログラムデータに代えて
プログラム変更用のRAMに記憶されている修正された
プログラムデータが命令デコーダに出力される、あるい
は割込み用のプログラムデータに基すいて割込み処理が
行われるようになり、バグなどが修正されたプログラム
か実行される。なお、割込み処理では、メモリのデータ
の書換えとか、追加したい機能のサブルーチンのコール
とか、無条件ジャンプなどによりそれまでの処理の流れ
を変え、実質的にプログラムの追加とか削除を行なうこ
とが可能であり、プログラムの修正か可能になる。
[実施例コ
以下、図面を参照して本発明の実施例を詳細に説明する
。
。
まず、本発明のマイコンのプログラム変更装置の概念を
第1図を参照して説明する。第1図に示すマイコンシス
テムにおいて、10はワンチップマイコン、20はこの
マイコン1oの外部に設けられ、このワンチップマイコ
ン10にセットずべきデータを記憶している電気的に書
込み可能な不揮発性メモリ、30は上記マイコン1oと
不揮発性メモリ20とを接続する信号!(例えばシリア
ル通信配線)である。
第1図を参照して説明する。第1図に示すマイコンシス
テムにおいて、10はワンチップマイコン、20はこの
マイコン1oの外部に設けられ、このワンチップマイコ
ン10にセットずべきデータを記憶している電気的に書
込み可能な不揮発性メモリ、30は上記マイコン1oと
不揮発性メモリ20とを接続する信号!(例えばシリア
ル通信配線)である。
上記ワンチップマイコン10において、1はプログラム
カウンタ、2は所定のプログラムが書込まれたマスクR
OM、3はプログラム変更用RAM、4はセレクタ、5
は命令デコーダ、6はメインメモリ用のRAM、7はシ
リアル通信回路であって、前記配線30を介して前記不
揮発性メモリ20に接続されている。
カウンタ、2は所定のプログラムが書込まれたマスクR
OM、3はプログラム変更用RAM、4はセレクタ、5
は命令デコーダ、6はメインメモリ用のRAM、7はシ
リアル通信回路であって、前記配線30を介して前記不
揮発性メモリ20に接続されている。
上記プログラムカウンターは、ROM2だけでなく、プ
ログラム変更用RAM3にもアドレス値を与えるように
接続されている。
ログラム変更用RAM3にもアドレス値を与えるように
接続されている。
前記プログラム変更用RAM3は、ROM2の書込みプ
ログラムにバグなどが発見された場合やその一部を修正
したい場合に、このROM2の修正したいアドレスに対
応するアドレスデータおよび修正するためのプログラム
データが対応して書込まれる変更アドレスRAM31お
よびプログラムRAM32を有する。これらのアドレス
データおよびプログラムデータは、ワンチップマイコン
10の電源投入(パワーオン)時のリセット直後の命令
で前記不揮発性メモリ2oの記憶データが前記シリアル
通信回路7を介してシリアル通信により読み込まれるよ
うになっており、上記プログラム変更用RAM3は実質
的に不揮発性メモリと同等になる。
ログラムにバグなどが発見された場合やその一部を修正
したい場合に、このROM2の修正したいアドレスに対
応するアドレスデータおよび修正するためのプログラム
データが対応して書込まれる変更アドレスRAM31お
よびプログラムRAM32を有する。これらのアドレス
データおよびプログラムデータは、ワンチップマイコン
10の電源投入(パワーオン)時のリセット直後の命令
で前記不揮発性メモリ2oの記憶データが前記シリアル
通信回路7を介してシリアル通信により読み込まれるよ
うになっており、上記プログラム変更用RAM3は実質
的に不揮発性メモリと同等になる。
前記セレクタ4は、通常はROM2の出力データを選択
して命令デコーダ5に人力させるが、変更アドレスRA
M3 ]−に記憶されたアドレスデータとプログラムカ
ウンタ1の出力内容とが一致したときにプログラムRA
M32からプログラムデータが出力すると、このプログ
ラムRAM32の出力データ(修正されたプログラムデ
ータ)をROM2の出力データ(修正すべきプログラム
データ)に代えて選択して命令デコーダ5に人力させる
ように構成されている。
して命令デコーダ5に人力させるが、変更アドレスRA
M3 ]−に記憶されたアドレスデータとプログラムカ
ウンタ1の出力内容とが一致したときにプログラムRA
M32からプログラムデータが出力すると、このプログ
ラムRAM32の出力データ(修正されたプログラムデ
ータ)をROM2の出力データ(修正すべきプログラム
データ)に代えて選択して命令デコーダ5に人力させる
ように構成されている。
一方、前記不揮発性メモリ20としては、電気的に消去
可能なEEFROM、紫外線消去型のEFROM、ワン
タイムFROM、バックアップ電池付きの通常のRAM
でもよいが、ここでは、シリアル通信可能なEEPRO
Mを示している。
可能なEEFROM、紫外線消去型のEFROM、ワン
タイムFROM、バックアップ電池付きの通常のRAM
でもよいが、ここでは、シリアル通信可能なEEPRO
Mを示している。
この場合、最近のカメラシステム等は、製品組立 0
て後の調整データの記憶用としてE E、 F ROM
を用いるものが多く、しかも、EEFROMのビット容
量当りの価格もかなり下かってきている。そこで、上記
EEFROMの調整データ記憶部以外の残りの部分をプ
ログラム変更用データの記憶用として使用すれば、製品
のコストアップを伴うことなくプログラムを変更するこ
とかできる。
を用いるものが多く、しかも、EEFROMのビット容
量当りの価格もかなり下かってきている。そこで、上記
EEFROMの調整データ記憶部以外の残りの部分をプ
ログラム変更用データの記憶用として使用すれば、製品
のコストアップを伴うことなくプログラムを変更するこ
とかできる。
第2図は、上記EEFROM20のデータマツプの一例
を示している。すなわち、EEPROM20の予め決め
られた番地までを調整データエリア、それ以降の番地(
ここでは、“hhh”番地以降)をプログラム変更デー
タエリアと決めておく。このプログラム変更データエリ
アは、変更アドレスデータエリア、変更プログラム容量
データエリア、変更プログラムデータエリアに分割して
おく。プログラム変更データエリアのデータ型式は、変
更アドレスデータエリアの変更アドレスデータ、変更プ
ログラム容量データエリアの変更プログラム容量データ
、変更プログラムデータエリアの変更プログラムデータ
が1組となっている。
を示している。すなわち、EEPROM20の予め決め
られた番地までを調整データエリア、それ以降の番地(
ここでは、“hhh”番地以降)をプログラム変更デー
タエリアと決めておく。このプログラム変更データエリ
アは、変更アドレスデータエリア、変更プログラム容量
データエリア、変更プログラムデータエリアに分割して
おく。プログラム変更データエリアのデータ型式は、変
更アドレスデータエリアの変更アドレスデータ、変更プ
ログラム容量データエリアの変更プログラム容量データ
、変更プログラムデータエリアの変更プログラムデータ
が1組となっている。
1
すなわち、変更アドレスデータエリアにおいては、“h
hh”番地に変更したい第1の変更アドレスデータA1
をセットし、次に変更したい第2の変更アドレスデータ
A2、第3の変更アドレスブタA3、・・・第mの変更
アドレスデータAmかある場合には”hhh”番地の次
に続けて順次セットする。この場合、予め、マイコン内
の修正箇所は、変更アドレスRAMの容量によってm箇
所とされているものとする。従って、マイコンは、プロ
グラムのm箇所を変更することができるが、変更アドレ
スの箇所がm個より少ない場合は、絶対に修正を行わな
いROMアドレス、たとえば0000(H)等のデータ
を変更アドレスデータエリアの残りの部分にセットして
おき、このアドレス0000(H)の場合はROMプロ
グラムを修正しないように、マイコンのハードウェアを
構成すればよい。
hh”番地に変更したい第1の変更アドレスデータA1
をセットし、次に変更したい第2の変更アドレスデータ
A2、第3の変更アドレスブタA3、・・・第mの変更
アドレスデータAmかある場合には”hhh”番地の次
に続けて順次セットする。この場合、予め、マイコン内
の修正箇所は、変更アドレスRAMの容量によってm箇
所とされているものとする。従って、マイコンは、プロ
グラムのm箇所を変更することができるが、変更アドレ
スの箇所がm個より少ない場合は、絶対に修正を行わな
いROMアドレス、たとえば0000(H)等のデータ
を変更アドレスデータエリアの残りの部分にセットして
おき、このアドレス0000(H)の場合はROMプロ
グラムを修正しないように、マイコンのハードウェアを
構成すればよい。
また、変更プログラム容量データエリアにおいては、“
hhh十m”番地以降に前記第1の変更アドレスデータ
A1−第mの変更アドレスデータ2 Amと対をなす変更プログラムの容量(長さ)を示す変
更プログラム容量データB1〜Bmを順次セットする。
hhh十m”番地以降に前記第1の変更アドレスデータ
A1−第mの変更アドレスデータ2 Amと対をなす変更プログラムの容量(長さ)を示す変
更プログラム容量データB1〜Bmを順次セットする。
この場合も、変更アドレスの箇所がm個より少ない場合
は、変更プログラム容量データエリアの残りの部分に0
000 (H)のデータをセットしておく。
は、変更プログラム容量データエリアの残りの部分に0
000 (H)のデータをセットしておく。
また、変更プログラムデータエリアにおいては、“hh
h+2m“番地以降に前記第1の変更アドレスデータA
1−第mの変更アドレスデータAmと対をなす変更プロ
グラムの内容を示す変更プログラムデータC1〜Cmを
順次セットする。ここで、変更プログラムデータC2の
先頭アドレスは”hhh+2m+Bl+1”番地、変更
プログラムデータCmの先頭アドレスは“hhh千2m
+81十B2+−B (m−1)+1”番地になる。
h+2m“番地以降に前記第1の変更アドレスデータA
1−第mの変更アドレスデータAmと対をなす変更プロ
グラムの内容を示す変更プログラムデータC1〜Cmを
順次セットする。ここで、変更プログラムデータC2の
先頭アドレスは”hhh+2m+Bl+1”番地、変更
プログラムデータCmの先頭アドレスは“hhh千2m
+81十B2+−B (m−1)+1”番地になる。
この場合も、変更アドレスの箇所がm個より少ない場合
は、変更プログラムデータエリアの残りの部分に0OO
OHのデータをセットしておく。
は、変更プログラムデータエリアの残りの部分に0OO
OHのデータをセットしておく。
次に、第1図のマイコンの動作を説明する。このマイコ
ンの動作は、基本的には従来のマイコン3 の動作と同様であるが、さらに、ROM2の書込みプロ
グラムの一部が疑似的に書換えられてプログラムか修正
されるようになっている。すなわち、前記したようなE
EPROM20のプログラム変更データエリアのデータ
は、ワンチップマイコン10の電源投入時のリセット直
後の命令で前記シリアル通信回路7を介してシリアル通
信により読み込まれて前記プログラム変更用RAM3に
セットされる。この場合、変更アドレスデータエリアの
変更アドレスデータは変更アドレスRAM31に順次セ
ットされ、変更プログラム容量データエリアの変更プロ
グラム容量データおよび変更プログラムデータエリアの
変更プログラムデータはプログラムRAM32に順次セ
ットされる。そして、通常は、システムクロック(図示
せず)によってカウントアツプするプログラムカウンタ
1によってアドレスが指定されるROM2から読出され
るデータがセレクタ4により選択されて命令デコーダ5
によってデコードされることによってプログラムが実行
される。しかし、変更アドレスRAM 4 3]に記憶されているアドレスデータとプログラムカウ
ンタ1の出力内容とが一致したときにプログラムRAM
32からブロクラムデータか出力すると、このプログラ
ムRAM32の出力データ(修正されたプログラムデー
タ)がROM2の出力データ(修正すべきプログラムデ
ータ)に代わってセレクタ4により選択されて命令デコ
ーダ5に入力する。これにより、疑似的に書換えられた
プログラムが命令デコーダ5によってデコードされ、修
正されたプログラムか実行されることになる。
ンの動作は、基本的には従来のマイコン3 の動作と同様であるが、さらに、ROM2の書込みプロ
グラムの一部が疑似的に書換えられてプログラムか修正
されるようになっている。すなわち、前記したようなE
EPROM20のプログラム変更データエリアのデータ
は、ワンチップマイコン10の電源投入時のリセット直
後の命令で前記シリアル通信回路7を介してシリアル通
信により読み込まれて前記プログラム変更用RAM3に
セットされる。この場合、変更アドレスデータエリアの
変更アドレスデータは変更アドレスRAM31に順次セ
ットされ、変更プログラム容量データエリアの変更プロ
グラム容量データおよび変更プログラムデータエリアの
変更プログラムデータはプログラムRAM32に順次セ
ットされる。そして、通常は、システムクロック(図示
せず)によってカウントアツプするプログラムカウンタ
1によってアドレスが指定されるROM2から読出され
るデータがセレクタ4により選択されて命令デコーダ5
によってデコードされることによってプログラムが実行
される。しかし、変更アドレスRAM 4 3]に記憶されているアドレスデータとプログラムカウ
ンタ1の出力内容とが一致したときにプログラムRAM
32からブロクラムデータか出力すると、このプログラ
ムRAM32の出力データ(修正されたプログラムデー
タ)がROM2の出力データ(修正すべきプログラムデ
ータ)に代わってセレクタ4により選択されて命令デコ
ーダ5に入力する。これにより、疑似的に書換えられた
プログラムが命令デコーダ5によってデコードされ、修
正されたプログラムか実行されることになる。
次に、本発明の第1実施例を説明する。第3図は、変更
アドレスRAM31の一具体例を示しており、第4図は
、ROM2とプログラムRAM3とが同一アドレス空間
に配置されている場合のメモリマツプを示している。
アドレスRAM31の一具体例を示しており、第4図は
、ROM2とプログラムRAM3とが同一アドレス空間
に配置されている場合のメモリマツプを示している。
第3図に示す変更アドレスRAM31は、アドレスデー
タ領域1.1 a〜1.1. mおよびベクターテーブ
ル12a〜12mおよび一致検出手段13a〜13mの
各1個を1組とする複数の組を持って 5 いる。
タ領域1.1 a〜1.1. mおよびベクターテーブ
ル12a〜12mおよび一致検出手段13a〜13mの
各1個を1組とする複数の組を持って 5 いる。
上記アドレスデータ領域1.1 a〜]−1,mには対
応して前記変更アドレスデータA]〜Amがセットされ
、ベクターテーブル1.2 a〜1.2mには割込み処
理の先頭アドレス(」二記変更アドレスデータA1〜A
mと対をなす変更プログラムデータC1〜Cmの先頭ア
ドレス)を格納しているプログラムRAMのベクターア
ドレス1〜mのデータがセットされている。
応して前記変更アドレスデータA]〜Amがセットされ
、ベクターテーブル1.2 a〜1.2mには割込み処
理の先頭アドレス(」二記変更アドレスデータA1〜A
mと対をなす変更プログラムデータC1〜Cmの先頭ア
ドレス)を格納しているプログラムRAMのベクターア
ドレス1〜mのデータがセットされている。
上記複数の組の一致検出手段13a〜13mにはプログ
ラムカウンタ1の値が入力し、これらのうちどれかで一
致が検出されると、一致したアドレスデータ領域11i
(a=1、・・・m)と同し組のベクターテーブル12
1に出力許可信号を送り、そのベクターテーブル12i
のデータ出力のみかプログラムカウンタ値変更手段14
に伝えられる。
ラムカウンタ1の値が入力し、これらのうちどれかで一
致が検出されると、一致したアドレスデータ領域11i
(a=1、・・・m)と同し組のベクターテーブル12
1に出力許可信号を送り、そのベクターテーブル12i
のデータ出力のみかプログラムカウンタ値変更手段14
に伝えられる。
また、上記複数の組の一致検出手段13a〜13mの各
出力はオア回路15を経て割込み発生回路16に人力し
、複数の組のうちどれかで一致が検出され、且つ、割り
込み許可フラグの内容が6 許可であると、割込みか発生し、プログラムカウンタ値
変更手段14により、一致した組のベクターテーブル1
21の値がプログラムカウンタ1に書込まれ、同時に、
プログラムカウンタ]の値がスタック(図示せず)に退
避される。また、割込み許可フラグの内容が禁止であれ
ば、割込みが発生せず、プログラムカウンタ]の値は変
化しない。
出力はオア回路15を経て割込み発生回路16に人力し
、複数の組のうちどれかで一致が検出され、且つ、割り
込み許可フラグの内容が6 許可であると、割込みか発生し、プログラムカウンタ値
変更手段14により、一致した組のベクターテーブル1
21の値がプログラムカウンタ1に書込まれ、同時に、
プログラムカウンタ]の値がスタック(図示せず)に退
避される。また、割込み許可フラグの内容が禁止であれ
ば、割込みが発生せず、プログラムカウンタ]の値は変
化しない。
第4図に示すメモリマツプにおいては、ROM領域のア
ドレスに続いてプログラムRAM領域のアドレスが割当
てられている。プログラムRAM飴域においては、ベク
ターアドレス1〜mに続いて変更プログラムデータc1
〜Cmが順次セットされている。この場合、ベクターア
ドレス1には、変更プログラムデータc1の先頭アドレ
スヘジャンプするためのアドレスデータAAAAがセッ
トされている。ベクターアドレスデータ2〜mには、変
更プログラムデータC2〜Cmの先頭アドレスヘジャン
ブするためのアドレスデータBBBB〜MMMMがセッ
トされている。このアドレスデータB B B B−M
MMMハ、EEPROM20から7 のデータ読み込み直後に変更プログラム容量データにし
たがって計算された後に再セットされる。
ドレスに続いてプログラムRAM領域のアドレスが割当
てられている。プログラムRAM飴域においては、ベク
ターアドレス1〜mに続いて変更プログラムデータc1
〜Cmが順次セットされている。この場合、ベクターア
ドレス1には、変更プログラムデータc1の先頭アドレ
スヘジャンプするためのアドレスデータAAAAがセッ
トされている。ベクターアドレスデータ2〜mには、変
更プログラムデータC2〜Cmの先頭アドレスヘジャン
ブするためのアドレスデータBBBB〜MMMMがセッ
トされている。このアドレスデータB B B B−M
MMMハ、EEPROM20から7 のデータ読み込み直後に変更プログラム容量データにし
たがって計算された後に再セットされる。
ここで、代表的に第1組の変更プログラムを例にとって
ROMプログラム変更のンーケンスを説明する。
ROMプログラム変更のンーケンスを説明する。
まず、アドレスデータ領域11aに変更アドレスデータ
A土がセットされている。いま、このアドレスデータ領
域11aにセットされている変更アドレスデータA1と
プログラムカウンタ1の出力内容とが一致すると、一致
検出手段1.3 aからベクターテーブル12aに出力
許可信号を送り、このベクターテーブル12aのデータ
出力(第4図中のベクターアドレス1)のみがプログラ
ムカウンタ値変更手段14に伝えられる。同時に、致検
出手段13aの出力がオア回路15を経て割込み発生回
路]6に入力すると、割込みが発生し、この割込みによ
り、前記ベクターテーブル12 aからのベクターアド
レス1がプログラムカウンタ値変更手段14に人力され
、ここで、ベクターアドレス1の内容AAAAを参照し
てプログラムヵ8 ウンタ1の内容をAAAAに変更する。従って、このプ
ログラムカウンタ1によりアドレス指定されたプログラ
ムRAM領域の変更プログラムデータB1がROM2の
出力データ(修正すべきプログラムデータ)に代わって
セレクタ4により選択されて命令デコーダ5に人力する
。これにより、疑似的に書換えられたプログラムが命令
デコーダ5によってデコードされ、第1組の変更プログ
ラムが実行されるようになり、ROMプログラムのAA
AA番地の内容が実質的に変更されることになる。
A土がセットされている。いま、このアドレスデータ領
域11aにセットされている変更アドレスデータA1と
プログラムカウンタ1の出力内容とが一致すると、一致
検出手段1.3 aからベクターテーブル12aに出力
許可信号を送り、このベクターテーブル12aのデータ
出力(第4図中のベクターアドレス1)のみがプログラ
ムカウンタ値変更手段14に伝えられる。同時に、致検
出手段13aの出力がオア回路15を経て割込み発生回
路]6に入力すると、割込みが発生し、この割込みによ
り、前記ベクターテーブル12 aからのベクターアド
レス1がプログラムカウンタ値変更手段14に人力され
、ここで、ベクターアドレス1の内容AAAAを参照し
てプログラムヵ8 ウンタ1の内容をAAAAに変更する。従って、このプ
ログラムカウンタ1によりアドレス指定されたプログラ
ムRAM領域の変更プログラムデータB1がROM2の
出力データ(修正すべきプログラムデータ)に代わって
セレクタ4により選択されて命令デコーダ5に人力する
。これにより、疑似的に書換えられたプログラムが命令
デコーダ5によってデコードされ、第1組の変更プログ
ラムが実行されるようになり、ROMプログラムのAA
AA番地の内容が実質的に変更されることになる。
なお、上記変更プログラムの最後の行に、ROM領域内
の戻したい番地へのジャンプ命令を書いておけば、任意
の長さのROM上のプログラムを任意の長さのRAM上
のプログラムに変更することができる。
の戻したい番地へのジャンプ命令を書いておけば、任意
の長さのROM上のプログラムを任意の長さのRAM上
のプログラムに変更することができる。
なお、第3図に示した変更アドレスRAM31は、割込
み発生回路16を用いてプログラムカウンタ値変更手段
14に指示を与えたが、割込み発生回路16は特に必要
とするものではなく、オア9 回路15の出力により直接にプログラムカウンタ値変更
手段14に指示を与えるようにしてもよい。
み発生回路16を用いてプログラムカウンタ値変更手段
14に指示を与えたが、割込み発生回路16は特に必要
とするものではなく、オア9 回路15の出力により直接にプログラムカウンタ値変更
手段14に指示を与えるようにしてもよい。
次に、本発明のマイコンの第2実施例を説明する。この
第2実施例は、実際に、ROMプログラムのバグなどを
修正する場合は、1〜2行のプログラムを修正すれば済
むことが非常に多いことに着目し、ROMプログラムの
任意の1行のみを変更して実行するためのものであり、
第1実施例と比べて、EEPROM20のデータ型式(
データ構成)を第5図に示すように変更し、プログラム
変更用RAMの構成を第6図に示すように変更した点が
異なり、その他は同じであるので第1実施例中と同一符
号を付している。
第2実施例は、実際に、ROMプログラムのバグなどを
修正する場合は、1〜2行のプログラムを修正すれば済
むことが非常に多いことに着目し、ROMプログラムの
任意の1行のみを変更して実行するためのものであり、
第1実施例と比べて、EEPROM20のデータ型式(
データ構成)を第5図に示すように変更し、プログラム
変更用RAMの構成を第6図に示すように変更した点が
異なり、その他は同じであるので第1実施例中と同一符
号を付している。
すなわち、EEPROM20においては、第5図に示す
ように、予め決められた番地までを調整データエリア、
それ以降の番地をプログラム変更データエリアと決めて
おく。そして、プログラム変更データエリアには、プロ
グラム変更データエリアに変更させたいアドレスのデー
タと変更プログラム1行分とのペアを、変更させたい組
数だけ0 連続して順次セットしておく。この場合、変更アドレス
データエリアの残りの部分には、前記したような000
0 (H)のデータをセットしておく。
ように、予め決められた番地までを調整データエリア、
それ以降の番地をプログラム変更データエリアと決めて
おく。そして、プログラム変更データエリアには、プロ
グラム変更データエリアに変更させたいアドレスのデー
タと変更プログラム1行分とのペアを、変更させたい組
数だけ0 連続して順次セットしておく。この場合、変更アドレス
データエリアの残りの部分には、前記したような000
0 (H)のデータをセットしておく。
また、プログラム変更用RAMにおいては、第6図に示
すように、所望のデータ修正数に対応して設けられた複
数(n)個のデータ修正ブロック61〜6nを設ける。
すように、所望のデータ修正数に対応して設けられた複
数(n)個のデータ修正ブロック61〜6nを設ける。
この各ブロック61〜6nにおいて、一対のメモリ領域
としてアドレスデータ領域62およびプログラムデータ
領域63が確保されており、このアドレスデータ領域6
2およびプログラムデータ領域63にはシリアル通信に
より変更アドレスおよび変更プログラム1行分のデータ
が対応してセットされる。この場合、データ修正ブロッ
ク61〜6nに対して、変更アドレスおよび変更プログ
ラム1行分のデータが順次セットされる。さらに、アド
レスデータ領域62およびプログラムデータ領域63に
対して1つのブタ判定回路64が設けられており、この
データ判定回路64は、プログラムカウンタ1からのア
ドレス人力とアドレスデータ領域62に記憶され1 ている変更アドレスとを比較判定し、一致時には一致信
号出力を活性化してプログラムデータ領域63に出力許
可信号を与えると共にオア回路65に人力する。上記出
力許可信号は、プログラムデータ領域63に記憶されて
いるプログラムデータ(修正データ)を出力させるよう
に制御し、各ブロック61〜6nの出力データ(修正デ
ータ)は、共通のバスを経てセレクタ4のデータ人力と
なる。
としてアドレスデータ領域62およびプログラムデータ
領域63が確保されており、このアドレスデータ領域6
2およびプログラムデータ領域63にはシリアル通信に
より変更アドレスおよび変更プログラム1行分のデータ
が対応してセットされる。この場合、データ修正ブロッ
ク61〜6nに対して、変更アドレスおよび変更プログ
ラム1行分のデータが順次セットされる。さらに、アド
レスデータ領域62およびプログラムデータ領域63に
対して1つのブタ判定回路64が設けられており、この
データ判定回路64は、プログラムカウンタ1からのア
ドレス人力とアドレスデータ領域62に記憶され1 ている変更アドレスとを比較判定し、一致時には一致信
号出力を活性化してプログラムデータ領域63に出力許
可信号を与えると共にオア回路65に人力する。上記出
力許可信号は、プログラムデータ領域63に記憶されて
いるプログラムデータ(修正データ)を出力させるよう
に制御し、各ブロック61〜6nの出力データ(修正デ
ータ)は、共通のバスを経てセレクタ4のデータ人力と
なる。
なお、各ブロック61〜6nが受は持つデータ修正箇所
(アドレス)は互いに異なるので、データ修正時にはど
れか1つのブロックから修正データが出力される。また
、上記オア回路65の出力はセレクタ4に対して切換制
御人力となり、上記オア回路65の出力はセレクタ4に
対して切換制御人力となり、このプログラム変更用RA
Mの出力データをROM2の出力データ(修正すべきプ
ログラムデータ)に代えて選択させる。
(アドレス)は互いに異なるので、データ修正時にはど
れか1つのブロックから修正データが出力される。また
、上記オア回路65の出力はセレクタ4に対して切換制
御人力となり、上記オア回路65の出力はセレクタ4に
対して切換制御人力となり、このプログラム変更用RA
Mの出力データをROM2の出力データ(修正すべきプ
ログラムデータ)に代えて選択させる。
上記した第2実施例では、基本的にはROMコードと同
じ長さもしくは短い長さのプログラムしか変更できない
。ここで、ROMコードと同じ長2 さのコードに変更する場合の一例を第7図に示す。
じ長さもしくは短い長さのプログラムしか変更できない
。ここで、ROMコードと同じ長2 さのコードに変更する場合の一例を第7図に示す。
すなわち、ROMアドレスの例えば107Aから始まる
例えば2ハイド命令コード(9A、OE)を(9B、3
D)という2バイト命令コードに変更する場合、図示の
ように、EEPROM20の例えば変更アドレス1,2
および変更プログラム1.2に変更アドレスのデータと
変更プログラム1行分とのペア(1,07A、9B)、
(107B。
例えば2ハイド命令コード(9A、OE)を(9B、3
D)という2バイト命令コードに変更する場合、図示の
ように、EEPROM20の例えば変更アドレス1,2
および変更プログラム1.2に変更アドレスのデータと
変更プログラム1行分とのペア(1,07A、9B)、
(107B。
3D)を順次書き込んでおく。
また、ROMコードをこれより短いコードに変更する場
合の一例を第8図に示す。すなわち、例えばROMアド
レスの例えば107Aから始まる2バイト命令コードを
1バイト命令コードC1に変更する場合は、2バイト命
令コードが書き込まれている2つのROMアドレスのい
ずれかの内容をNOP命令コード(例えば00)に書換
えればよく、図示のように、EEPROM20の例えば
変更アドレス1.2および変更プログラム1,2に変更
アドレスのデータと変更プログラム1行分とのペア(1
07A、CI)、(107B、00)3 を順次書き込んでおく。
合の一例を第8図に示す。すなわち、例えばROMアド
レスの例えば107Aから始まる2バイト命令コードを
1バイト命令コードC1に変更する場合は、2バイト命
令コードが書き込まれている2つのROMアドレスのい
ずれかの内容をNOP命令コード(例えば00)に書換
えればよく、図示のように、EEPROM20の例えば
変更アドレス1.2および変更プログラム1,2に変更
アドレスのデータと変更プログラム1行分とのペア(1
07A、CI)、(107B、00)3 を順次書き込んでおく。
上記したような2バイト命令コードの変更に準じて3バ
イト命令コード等も変更することができる。
イト命令コード等も変更することができる。
次に、前記第2実施例において、ROMコードをこれよ
り長いコードに変更する方法を説明する。
り長いコードに変更する方法を説明する。
第9図は、1バイト命令コードを3バイト命令コードに
変更する場合の一例として、ROMアドレスの例えば3
A02の1バイト命令コードC1を(79,46,B3
)という3バイト命令コードに変更する場合を示してい
る。この場合、ROMアドレスの3AO3,3AO4に
は、例えば図示のように、9ASOEのコードが書込ま
れているものとすれば、EEPROM20のプログラム
変更データエリアには、例えば図示のように、変更アド
レス1〜11および変更プログラム1〜11を使用して
変更アドレスのデータと変更プログラム1行分とのペア
を連続的に書き込んでおく。
変更する場合の一例として、ROMアドレスの例えば3
A02の1バイト命令コードC1を(79,46,B3
)という3バイト命令コードに変更する場合を示してい
る。この場合、ROMアドレスの3AO3,3AO4に
は、例えば図示のように、9ASOEのコードが書込ま
れているものとすれば、EEPROM20のプログラム
変更データエリアには、例えば図示のように、変更アド
レス1〜11および変更プログラム1〜11を使用して
変更アドレスのデータと変更プログラム1行分とのペア
を連続的に書き込んでおく。
ここで、1バイト命令コード90は、これに続く2バイ
トのコードにジャンプする命令であり、4 ROMアドレスのcooo以降は本発明のワンチップマ
イコンのプログラムで使用していない領域であるとする
。
トのコードにジャンプする命令であり、4 ROMアドレスのcooo以降は本発明のワンチップマ
イコンのプログラムで使用していない領域であるとする
。
次に、上記1バイト命令コードC1を3バイト命令コー
ド(79,46,B3)に変更するプログラムを実際に
実行する手順について説明する。
ド(79,46,B3)に変更するプログラムを実際に
実行する手順について説明する。
まず、ROMアドレスの3A02〜3A04に変更アド
レス]〜3のデータが順次一致すると、ROMアドレス
の3A02の時にコードC1をコード90に書き換え、
ROMアドレスの3AO3の時にコード9AをコードC
Oに書き換え、ROMアドレスの3A04の時にコード
OEをコード00に書き換えるようになるので、命令コ
ード90を実行し、本発明のワンチップマイコンのプロ
グラムで使用していないROMアドレスのcoooにジ
ャンプする。ここで、ROMアドレスのcooo以降は
プログラムがない領域であるので自由に使用してもよい
。次に、ROMアドレスのcooo〜C002に変更ア
ドレス4〜6のデータが順次一致すると、変更プログラ
ム4〜65 に書き込んでおいた変更したい3バイト命令コード(7
9,46,B3)を実行するようになる。
レス]〜3のデータが順次一致すると、ROMアドレス
の3A02の時にコードC1をコード90に書き換え、
ROMアドレスの3AO3の時にコード9AをコードC
Oに書き換え、ROMアドレスの3A04の時にコード
OEをコード00に書き換えるようになるので、命令コ
ード90を実行し、本発明のワンチップマイコンのプロ
グラムで使用していないROMアドレスのcoooにジ
ャンプする。ここで、ROMアドレスのcooo以降は
プログラムがない領域であるので自由に使用してもよい
。次に、ROMアドレスのcooo〜C002に変更ア
ドレス4〜6のデータが順次一致すると、変更プログラ
ム4〜65 に書き込んでおいた変更したい3バイト命令コード(7
9,46,B3)を実行するようになる。
次に、ROMアドレスのC003、C004に変更アド
レス7.8のデータが順次一致すると、変更プログラム
7.8に書き込んでおいたROMアドレスの3AO3,
3AO4の2バイトのコードと同じコード(9A、OE
)を実行するようになる。そして、次に、ROMアドレ
スのC005〜COO7に変更アドレス9〜11のデー
タが順次一致すると、変更プログラム9〜11に書き込
んでおいたジャンプ命令90およびジャンプ先(3A、
05)のコードを実行し、ROMアドレスの3AO5に
戻るようになる。
レス7.8のデータが順次一致すると、変更プログラム
7.8に書き込んでおいたROMアドレスの3AO3,
3AO4の2バイトのコードと同じコード(9A、OE
)を実行するようになる。そして、次に、ROMアドレ
スのC005〜COO7に変更アドレス9〜11のデー
タが順次一致すると、変更プログラム9〜11に書き込
んでおいたジャンプ命令90およびジャンプ先(3A、
05)のコードを実行し、ROMアドレスの3AO5に
戻るようになる。
以上の動作により、実質的には、1バイト命令コードを
3バイト命令コードに変更して実行したことになる。
3バイト命令コードに変更して実行したことになる。
上記したような変更方法を使用すれば、さらに長いプロ
グラムをROMコードに代えて実行することが可能にな
ることは言うまでもない。
グラムをROMコードに代えて実行することが可能にな
ることは言うまでもない。
6
[発明の効果]
以上詳述したように本発明のマイクロコンピュータのプ
ログラム変更装置によれば、ワンチップマイコンに内蔵
されたプログラム変更用RAMおよびマイコンに外付は
接続されてプログラム変更用データを記憶したシリアル
通信可能な不揮発性メモリを利用することにより、マイ
コンの電源投入時のリセット直後の命令で不揮発性メモ
リの変更記憶データをシリアル通信を介してプログラム
変更用のRAMに読み込むようにしている。これにより
、ROMの書込みプログラムにバグなどが発見された場
合やその一部を修正したい場合に、ROMの内容を書換
えることなく、一部を疑似的に書換えてプログラムを修
正することや、割込み処理を行わせることにより実質的
にプログラムの追加とか削除を行ない、プログラムを修
正することができる。
ログラム変更装置によれば、ワンチップマイコンに内蔵
されたプログラム変更用RAMおよびマイコンに外付は
接続されてプログラム変更用データを記憶したシリアル
通信可能な不揮発性メモリを利用することにより、マイ
コンの電源投入時のリセット直後の命令で不揮発性メモ
リの変更記憶データをシリアル通信を介してプログラム
変更用のRAMに読み込むようにしている。これにより
、ROMの書込みプログラムにバグなどが発見された場
合やその一部を修正したい場合に、ROMの内容を書換
えることなく、一部を疑似的に書換えてプログラムを修
正することや、割込み処理を行わせることにより実質的
にプログラムの追加とか削除を行ない、プログラムを修
正することができる。
したがって、バグなどが発見されたマイコンを再利用す
ることができ、再度、ROMを作り直す必要がなくなり
、生産工程に影響を与えないで済 7 み、修正されたマイコンを短期間に人手することができ
る。実際に、バグなどを修正する場合は、1〜2行のプ
ログラムを修正すれば済むことが多いので、本発明のマ
イコンは極めて有用である。
ることができ、再度、ROMを作り直す必要がなくなり
、生産工程に影響を与えないで済 7 み、修正されたマイコンを短期間に人手することができ
る。実際に、バグなどを修正する場合は、1〜2行のプ
ログラムを修正すれば済むことが多いので、本発明のマ
イコンは極めて有用である。
しかも、ワンチップマイコンをCMOSプロセスのまま
で実現できるので、結果的に、ワンチップマイコンのコ
ストの上昇を抑制することができる。
で実現できるので、結果的に、ワンチップマイコンのコ
ストの上昇を抑制することができる。
第1図は本発明のマイコンのプログラム変更装置の概念
を示す説明図、第2図は第1図中のEEPROMのデー
タ構成の一例を示す説明図、第3図は本発明の第1実施
例で使用されるプログラム変更用RAMの一具体例を示
すブロック図、第4図は本発明の第1実施例で使用され
るROMとプログラムRAMとが同一アドレス空間に配
置されている場合のメモリマツプを示す図、第5図は本
発明の第2実施例で使用されるEEPROMのデータ構
成を示す説明図、第6図は本発明の第2実施例で使用さ
れるプログラム変更用RAM8 の−具体例を示すブロック図、第7図は本発明の第2実
施例においてROMコードを同じ長さのコードに変更す
る場合のROMコードおよびEEFROMコードの一例
を示す図、第8図は本発明の第2実施例においてROM
コードをそれより短いコードに変更する場合のROMコ
ードおよびEEPROMコートの一例を示す図、第9図
は本発明の第2実施例においてROMコードをそれより
長いコードに変更する場合のROMコードおよびEEP
ROMコードの一例を示す図、第10図は従来のワンチ
ップマイコンを示すブロック図である。 1・・・プログラムカウンタ、2・・・ROM。 3・・・プログラム変更用RAM、4・・・セレクタ、
5・・・命令デコーダ、 6・・・シリアル通信回路、
7・・・不揮発性メモリ、1 ]、 a〜l1m・・・
アドレスデータ領域、12a〜12m・・・ベクターテ
ーブル、13a〜13m・・・一致検出手段、14・・
・プログラムカウンタ値変更手段、15・・・オア回路
、16・・・割込み発生回路、31・・・変更アドレス
9 AM。 プ ダラムRAM。 アドレスデータ領域、 3・・・プログラムデータ 領域、 64・・・データ判定回路、 5・・・オア回路。
を示す説明図、第2図は第1図中のEEPROMのデー
タ構成の一例を示す説明図、第3図は本発明の第1実施
例で使用されるプログラム変更用RAMの一具体例を示
すブロック図、第4図は本発明の第1実施例で使用され
るROMとプログラムRAMとが同一アドレス空間に配
置されている場合のメモリマツプを示す図、第5図は本
発明の第2実施例で使用されるEEPROMのデータ構
成を示す説明図、第6図は本発明の第2実施例で使用さ
れるプログラム変更用RAM8 の−具体例を示すブロック図、第7図は本発明の第2実
施例においてROMコードを同じ長さのコードに変更す
る場合のROMコードおよびEEFROMコードの一例
を示す図、第8図は本発明の第2実施例においてROM
コードをそれより短いコードに変更する場合のROMコ
ードおよびEEPROMコートの一例を示す図、第9図
は本発明の第2実施例においてROMコードをそれより
長いコードに変更する場合のROMコードおよびEEP
ROMコードの一例を示す図、第10図は従来のワンチ
ップマイコンを示すブロック図である。 1・・・プログラムカウンタ、2・・・ROM。 3・・・プログラム変更用RAM、4・・・セレクタ、
5・・・命令デコーダ、 6・・・シリアル通信回路、
7・・・不揮発性メモリ、1 ]、 a〜l1m・・・
アドレスデータ領域、12a〜12m・・・ベクターテ
ーブル、13a〜13m・・・一致検出手段、14・・
・プログラムカウンタ値変更手段、15・・・オア回路
、16・・・割込み発生回路、31・・・変更アドレス
9 AM。 プ ダラムRAM。 アドレスデータ領域、 3・・・プログラムデータ 領域、 64・・・データ判定回路、 5・・・オア回路。
Claims (1)
- 【特許請求の範囲】 リードオンリメモリに記憶されたプログラム命令に従っ
て動作するワンチップマイクロコンピュータと、このワ
ンチップマイクロコンピュータに信号線で接続されてい
る不揮発性メモリとからなるマイクロコンピュータシス
テムにおいて、上記不揮発性メモリは、上記リードオン
リメモリのプログラム変更用の変更アドレスおよび命令
コードを記憶する変更情報記憶部を有し、 上記ワンチップマイクロコンピュータは、 上記、不揮発性メモリから変更アドレスおよび命令コー
ドを受信する受信手段と、 上記変更アドレスおよび命令コードを記憶するためのラ
ンダムアクセスメモリと、 上記変更アドレスとプログラムカウンタの内容とを比較
する比較手段と、 この比較手段により一致信号が出力された場合に上記命
令コードを実行する命令実行手段とを有することを特徴
とするマイクロコンピュータのプログラム変更装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1325876A JPH03186927A (ja) | 1989-12-18 | 1989-12-18 | マイクロコンピュータのプログラム変更装置 |
| US08/040,562 US5357627A (en) | 1989-03-28 | 1993-03-31 | Microcomputer having a program correction function |
| US08/544,694 US5592613A (en) | 1989-03-28 | 1995-10-18 | Microcomputer having a program correction function |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1325876A JPH03186927A (ja) | 1989-12-18 | 1989-12-18 | マイクロコンピュータのプログラム変更装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03186927A true JPH03186927A (ja) | 1991-08-14 |
Family
ID=18181605
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1325876A Pending JPH03186927A (ja) | 1989-03-28 | 1989-12-18 | マイクロコンピュータのプログラム変更装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03186927A (ja) |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0615187A1 (en) | 1993-03-11 | 1994-09-14 | Olympus Optical Co., Ltd. | One-chip microcomputer system having function for substantially correcting contents of program |
| US5408672A (en) * | 1991-11-18 | 1995-04-18 | Matsushita Electric Industrial Co. | Microcomputer having ROM to store a program and RAM to store changes to the program |
| FR2714513A1 (fr) * | 1993-10-26 | 1995-06-30 | Intel Corp | Circuit programmable de mémoire de codes pour mémoire flash. |
| JPH0876990A (ja) * | 1994-09-07 | 1996-03-22 | Seikosha Co Ltd | カメラ用制御回路 |
| US5574926A (en) * | 1993-03-11 | 1996-11-12 | Olympus Optical Co., Ltd. | One-chip microcomputer system having function for substantially correcting contents of program |
| US5765184A (en) * | 1993-10-26 | 1998-06-09 | Intel Corporation | Method and apparatus for programming an array controller in a flash memory device |
| JP2004090232A (ja) * | 2002-08-29 | 2004-03-25 | Canon Inc | 記録装置及び記録装置の制御方法 |
| JP2005056546A (ja) * | 2003-08-06 | 2005-03-03 | Samsung Electronics Co Ltd | ワンチップの駆動情報の補償が可能なコンビネーションシステム及びその駆動情報の補償方法 |
| JP2005196266A (ja) * | 2003-12-26 | 2005-07-21 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
| JP2010140469A (ja) * | 2008-12-12 | 2010-06-24 | Genesys Logic Inc | 修正記憶部を有するプログラム更新システム及びその方法 |
-
1989
- 1989-12-18 JP JP1325876A patent/JPH03186927A/ja active Pending
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5408672A (en) * | 1991-11-18 | 1995-04-18 | Matsushita Electric Industrial Co. | Microcomputer having ROM to store a program and RAM to store changes to the program |
| EP0615187A1 (en) | 1993-03-11 | 1994-09-14 | Olympus Optical Co., Ltd. | One-chip microcomputer system having function for substantially correcting contents of program |
| US5574926A (en) * | 1993-03-11 | 1996-11-12 | Olympus Optical Co., Ltd. | One-chip microcomputer system having function for substantially correcting contents of program |
| FR2714513A1 (fr) * | 1993-10-26 | 1995-06-30 | Intel Corp | Circuit programmable de mémoire de codes pour mémoire flash. |
| US5765184A (en) * | 1993-10-26 | 1998-06-09 | Intel Corporation | Method and apparatus for programming an array controller in a flash memory device |
| JPH0876990A (ja) * | 1994-09-07 | 1996-03-22 | Seikosha Co Ltd | カメラ用制御回路 |
| JP2004090232A (ja) * | 2002-08-29 | 2004-03-25 | Canon Inc | 記録装置及び記録装置の制御方法 |
| JP2005056546A (ja) * | 2003-08-06 | 2005-03-03 | Samsung Electronics Co Ltd | ワンチップの駆動情報の補償が可能なコンビネーションシステム及びその駆動情報の補償方法 |
| US7450829B2 (en) | 2003-08-06 | 2008-11-11 | Samsung Electronics Co., Ltd. | Combination system capable of compensating for driving information of one chip and method thereof |
| JP2005196266A (ja) * | 2003-12-26 | 2005-07-21 | Matsushita Electric Ind Co Ltd | 情報処理装置 |
| JP2010140469A (ja) * | 2008-12-12 | 2010-06-24 | Genesys Logic Inc | 修正記憶部を有するプログラム更新システム及びその方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5357627A (en) | Microcomputer having a program correction function | |
| EP0554917B1 (en) | Digital signal processing system having two instruction memories accessed by a processor under control of host | |
| EP0315275B1 (en) | Flexible asic microcomputer | |
| US6804772B2 (en) | Dynamic field patchable microarchitecture | |
| JP3795744B2 (ja) | マイクロコントローラ | |
| JPS58151648A (ja) | プログラムパツチ手段を有するデ−タ処理装置 | |
| JP3563768B2 (ja) | Romプログラム変更装置 | |
| JPH03186927A (ja) | マイクロコンピュータのプログラム変更装置 | |
| US4321667A (en) | Add-on programs with code verification and control | |
| JPH06131171A (ja) | マスク・プログラマブル・マイクロプロセッサ | |
| JPH0333926A (ja) | ワンチップマイクロコンピュータ | |
| JPH0237600A (ja) | 読取り専用記憶装置の試験方法とその方法を実行するデバイス | |
| US20030154354A1 (en) | Digital signal processor system | |
| US6148362A (en) | Microcomputer using nonvolatile semiconductor memory to store user code/data | |
| JP3663043B2 (ja) | マイクロコンピュータの書き込み終了の判別方法 | |
| JP3190945B2 (ja) | マイクロプログラム制御回路 | |
| JP2001022573A (ja) | 電子機器 | |
| JPS63184858A (ja) | ワンチツプマイクロコンピユ−タ | |
| JP3022608B2 (ja) | マイクロコンピュータのプログラム変更装置 | |
| JPH0876990A (ja) | カメラ用制御回路 | |
| JPH02199535A (ja) | マイクロプログラム制御装置 | |
| JPH0991267A (ja) | 不揮発性メモリのデータ書き込み装置 | |
| JPH01131927A (ja) | プログラム修正方法 | |
| JPH0226252B2 (ja) | ||
| JPH0490032A (ja) | マイクロコンピュータ |