JPH04252334A - マイクロコンピュータのプログラム変更装置 - Google Patents
マイクロコンピュータのプログラム変更装置Info
- Publication number
- JPH04252334A JPH04252334A JP3026870A JP2687091A JPH04252334A JP H04252334 A JPH04252334 A JP H04252334A JP 3026870 A JP3026870 A JP 3026870A JP 2687091 A JP2687091 A JP 2687091A JP H04252334 A JPH04252334 A JP H04252334A
- Authority
- JP
- Japan
- Prior art keywords
- program
- address
- change
- microcomputer
- memory
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、マイクロコンピュータ
システムに係り、詳しくは、リードオンリメモリの修正
すべきプログラムデータに代えて修正されたプログラム
データを出力するマイクロコンピュータ(以下、マイコ
ンと略記する。)のプログラム変更装置に関する。
システムに係り、詳しくは、リードオンリメモリの修正
すべきプログラムデータに代えて修正されたプログラム
データを出力するマイクロコンピュータ(以下、マイコ
ンと略記する。)のプログラム変更装置に関する。
【0002】
【従来の技術】一般的に、従来のワンチップマイコンは
、図10に示すように、プログラムカウンタPC、所定
のプログラムが書込まれたプログラムメモリPMおよび
命令デコーダIDを有する。このワンチップマイコンの
動作はよく知られているように、システムクロック(図
示せず)によってカウントアップするプログラムカウン
タPCによってアドレスが指定されるプログラムメモリ
PMから読出されるデータが命令デコーダIDによって
デコードされることによってプログラムが実行される。
、図10に示すように、プログラムカウンタPC、所定
のプログラムが書込まれたプログラムメモリPMおよび
命令デコーダIDを有する。このワンチップマイコンの
動作はよく知られているように、システムクロック(図
示せず)によってカウントアップするプログラムカウン
タPCによってアドレスが指定されるプログラムメモリ
PMから読出されるデータが命令デコーダIDによって
デコードされることによってプログラムが実行される。
【0003】プログラムメモリPMは、一般的にマスク
ROM(リードオンリメモリ)が用いられ、このマスク
ROMはメーカの製造工程でメーカによりプログラムが
書込まれ、ユーザによる書換えは不可能である。
ROM(リードオンリメモリ)が用いられ、このマスク
ROMはメーカの製造工程でメーカによりプログラムが
書込まれ、ユーザによる書換えは不可能である。
【0004】また、最近では、ユーザによる書換えが1
回だけ可能なワンタイムROMと呼ばれるものも販売さ
れている。
回だけ可能なワンタイムROMと呼ばれるものも販売さ
れている。
【0005】しかし、ワンチップマイコンの製造後にマ
スクROMの書込みプログラムにバグなどが発見された
場合やその一部を修正したい場合、再度、ROMのマス
クパターンを書換えてから集積回路の製造プロセスをや
り直す必要があるので、修正されたワンチップマイコン
を入手するまでの期間が現状では数ヶ月もかかる。
スクROMの書込みプログラムにバグなどが発見された
場合やその一部を修正したい場合、再度、ROMのマス
クパターンを書換えてから集積回路の製造プロセスをや
り直す必要があるので、修正されたワンチップマイコン
を入手するまでの期間が現状では数ヶ月もかかる。
【0006】しかも、マスクROMの書込みプログラム
にバグなどが発見されたワンチップマイコンは再利用す
ることができない。また、ワンタイムROMはマスクR
OMに比べて非常に高価であり、ユーザがプログラムを
書込むのに非常に時間がかかり、量産品への採用には不
向きである。
にバグなどが発見されたワンチップマイコンは再利用す
ることができない。また、ワンタイムROMはマスクR
OMに比べて非常に高価であり、ユーザがプログラムを
書込むのに非常に時間がかかり、量産品への採用には不
向きである。
【0007】そこで、このような課題を解決すべく、本
発明者らは、特願平1−131861号により、データ
書換え用の電気的に書込み可能な不揮発性メモリ部をワ
ンチップマイコンに内臓することによってプログラムデ
ータを修正する方法を提案した。
発明者らは、特願平1−131861号により、データ
書換え用の電気的に書込み可能な不揮発性メモリ部をワ
ンチップマイコンに内臓することによってプログラムデ
ータを修正する方法を提案した。
【0008】この方法は、ワンチップマイコン内の電気
的に書込み可能な不揮発性メモリ部に修正したいプログ
ラムアドレスおよび修正プログラムを記憶する場所を指
定し、プログラムカウンタと上記不揮発性メモリ部内の
修正したいプログラムアドレスとが一致した場合に修正
プログラムを実行するものであった。
的に書込み可能な不揮発性メモリ部に修正したいプログ
ラムアドレスおよび修正プログラムを記憶する場所を指
定し、プログラムカウンタと上記不揮発性メモリ部内の
修正したいプログラムアドレスとが一致した場合に修正
プログラムを実行するものであった。
【0009】こうすることにより、ワンチップマイコン
の量産後にプログラムのバグが発見された場合やその一
部を修正したい場合でも、再度、マスクROMを修正す
ることなくプログラムを変更でき、生産工程を止めなく
て済む。
の量産後にプログラムのバグが発見された場合やその一
部を修正したい場合でも、再度、マスクROMを修正す
ることなくプログラムを変更でき、生産工程を止めなく
て済む。
【0010】しかし、上記したような方法は、比較的簡
単な回路構成で実現可能であるが、通常、CMOS(相
補正絶縁ゲート型)プロセスで製造されるワンチップマ
イコン内に電気的に書込み可能な不揮発性メモリ部を作
り込むプロセスが追加する必要が生じるので、結果的に
、ワンチップマイコンのコストが上昇してしまうという
問題がある。しかも、内蔵した不揮発性メモリ部の容量
の全てを使うとは限らず、むしろ、全部は使わないこと
の方が多いので、容量の無駄が生じる。
単な回路構成で実現可能であるが、通常、CMOS(相
補正絶縁ゲート型)プロセスで製造されるワンチップマ
イコン内に電気的に書込み可能な不揮発性メモリ部を作
り込むプロセスが追加する必要が生じるので、結果的に
、ワンチップマイコンのコストが上昇してしまうという
問題がある。しかも、内蔵した不揮発性メモリ部の容量
の全てを使うとは限らず、むしろ、全部は使わないこと
の方が多いので、容量の無駄が生じる。
【0011】そこで、このような問題を解決すべく、本
発明者らは、特願平1−325876号により、マイク
ロコンピュータのプログラム変更装置を提案した。この
装置は、ROMに記憶されたプログラム命令に従って動
作するワンチップマイコンと、このワンチップマイコン
と信号線で接続されている不揮発性メモリとからなるマ
イコンシステムにおいて、上記不揮発性メモリには、上
記ROMのプログラム変更用の変更アドレス及び命令コ
ードを記憶させておき、上記ワンチップマイコンでは、
例えば電源投入時のリセット直後の命令で上記不揮発性
メモリから変更アドレス及び命令コードを受信してプロ
グラム変更用RAMに記憶し、上記変更アドレスとプロ
グラムカウンタの内容とを比較して、両者が一致した場
合、上記命令コードを実行するものである。
発明者らは、特願平1−325876号により、マイク
ロコンピュータのプログラム変更装置を提案した。この
装置は、ROMに記憶されたプログラム命令に従って動
作するワンチップマイコンと、このワンチップマイコン
と信号線で接続されている不揮発性メモリとからなるマ
イコンシステムにおいて、上記不揮発性メモリには、上
記ROMのプログラム変更用の変更アドレス及び命令コ
ードを記憶させておき、上記ワンチップマイコンでは、
例えば電源投入時のリセット直後の命令で上記不揮発性
メモリから変更アドレス及び命令コードを受信してプロ
グラム変更用RAMに記憶し、上記変更アドレスとプロ
グラムカウンタの内容とを比較して、両者が一致した場
合、上記命令コードを実行するものである。
【0012】
【発明が解決しようとする課題】しかし、上記したプロ
グラム変更装置は、比較的簡単な回路構成で実現可能で
あるが、マイコン内のプログラム変更用RAMの容量は
、ICチップの面積の制約上、あまり多くとれない。 従って、プログラムを修正したい箇所がプログラム変更
用RAMの容量(変更可能数)よりも多くなってしまっ
た場合は、修正箇所のいずれかを諦めざるを得なかった
。
グラム変更装置は、比較的簡単な回路構成で実現可能で
あるが、マイコン内のプログラム変更用RAMの容量は
、ICチップの面積の制約上、あまり多くとれない。 従って、プログラムを修正したい箇所がプログラム変更
用RAMの容量(変更可能数)よりも多くなってしまっ
た場合は、修正箇所のいずれかを諦めざるを得なかった
。
【0013】本発明は、このような課題に着目してなさ
れたもので、マイコン内のプログラム変更用RAMの容
量を増すことなく、プログラム変更用RAMの容量以上
にプログラム修正を行なえるマイクロコンピュータのプ
ログラム変更装置を提供することを目的とする。
れたもので、マイコン内のプログラム変更用RAMの容
量を増すことなく、プログラム変更用RAMの容量以上
にプログラム修正を行なえるマイクロコンピュータのプ
ログラム変更装置を提供することを目的とする。
【0014】
【課題を解決するための手段】本発明のマイクロコンピ
ュータのプログラム変更装置は、リードオンリメモリの
プログラム命令を変更するための変更アドレスと変更命
令コードを組み合わせて記憶する変更情報記憶手段を有
する不揮発性メモリと、上記リードオンリメモリに記憶
されたプログラム命令に従って動作するとともに、上記
不揮発性メモリに接続され、接続線を介して受信した上
記変更アドレスと上記変更命令コードをプログラム変更
用ランダムアクセスメモリに記憶し、上記変更アドレス
とマイクロコンピュータのプログラムカウンタの値を比
較手段により比較し、比較の結果一致した場合に上記変
更命令コードを実行するワンチップマイクロコンピュー
タとを有するマイクロコンピュータのプログラム変更装
置において、上記不揮発性メモリの上記変更情報記憶手
段は、上記変更アドレスと変更命令コードの複数の組み
合わせからなる1セットごとに、上記変更アドレスおよ
び上記変更命令コードの入れ替えを実行する上記リード
オンリメモリ上の入れ替えROMアドレスと、上記不揮
発性メモリ上の入れ替えアドレスを記憶する入れ替え記
憶部を有し、上記マイクロコンピュータは、上記接続線
を介して上記プログラム変更用ランダムアクセスメモリ
に記憶された上記入れ替えROMアドレスと上記プログ
ラムカウンタの値とが一致した場合に、1セットの上記
変更アドレスと変更命令コードを、上記入れ替えアドレ
スに従って書き替えるデータ入れ替えプログラムと、上
記プログラム変更用ランダムアクセスメモリの書き替え
中は上記比較手段の動作を禁止する禁止手段とを具備し
ている。
ュータのプログラム変更装置は、リードオンリメモリの
プログラム命令を変更するための変更アドレスと変更命
令コードを組み合わせて記憶する変更情報記憶手段を有
する不揮発性メモリと、上記リードオンリメモリに記憶
されたプログラム命令に従って動作するとともに、上記
不揮発性メモリに接続され、接続線を介して受信した上
記変更アドレスと上記変更命令コードをプログラム変更
用ランダムアクセスメモリに記憶し、上記変更アドレス
とマイクロコンピュータのプログラムカウンタの値を比
較手段により比較し、比較の結果一致した場合に上記変
更命令コードを実行するワンチップマイクロコンピュー
タとを有するマイクロコンピュータのプログラム変更装
置において、上記不揮発性メモリの上記変更情報記憶手
段は、上記変更アドレスと変更命令コードの複数の組み
合わせからなる1セットごとに、上記変更アドレスおよ
び上記変更命令コードの入れ替えを実行する上記リード
オンリメモリ上の入れ替えROMアドレスと、上記不揮
発性メモリ上の入れ替えアドレスを記憶する入れ替え記
憶部を有し、上記マイクロコンピュータは、上記接続線
を介して上記プログラム変更用ランダムアクセスメモリ
に記憶された上記入れ替えROMアドレスと上記プログ
ラムカウンタの値とが一致した場合に、1セットの上記
変更アドレスと変更命令コードを、上記入れ替えアドレ
スに従って書き替えるデータ入れ替えプログラムと、上
記プログラム変更用ランダムアクセスメモリの書き替え
中は上記比較手段の動作を禁止する禁止手段とを具備し
ている。
【0015】
【作用】ワンチップマイコン内のROMプログラムにバ
グなどが発見された場合やその一部を修正したい場合に
、このROMの修正したいアドレスに対応するアドレス
データと修正されたプログラムデータをマイコンの外部
に設けられた不揮発性メモリに複数記憶させておき、ワ
ンチップマイコンの電源投入時のリセット直後の命令で
不揮発性メモリの複数の記憶データのうち1セットをシ
リアル通信を介してプログラム変更用RAMに読み込む
。これにより、プログラム変更用RAMに記憶されたア
ドレスデータとプログラムカウンタの内容とが一致した
時は、ROMのデータに代えてプログラム変更用RAM
に記憶されたデータが命令デコーダに出力され、バグな
どが修正できる。そして、プログラム変更用RAMの容
量よりも修正したい箇所が多い場合は、上記プログラム
変更用RAMにプログラム入れ替えサブルーチンを呼び
だす命令コードを任意の入れ替えROMアドレス(M,
N)で入れ替えられるよう設定し、プログラム入れ替え
サブルーチンが実行された場合には、不揮発性メモリに
記憶されたデータの次の1セットを示す入れ替えアドレ
ス(NXTADi)を参照することにより、不揮発性メ
モリに記憶されたアドレスデータとプログラムデータを
ワンチップマイコンのプログラム変更用RAMにセット
しなおす。又、アドレスデータの書換え中は誤動作を防
止するため、アドレスデータとプログラムカウンタの内
容との比較を禁止する。
グなどが発見された場合やその一部を修正したい場合に
、このROMの修正したいアドレスに対応するアドレス
データと修正されたプログラムデータをマイコンの外部
に設けられた不揮発性メモリに複数記憶させておき、ワ
ンチップマイコンの電源投入時のリセット直後の命令で
不揮発性メモリの複数の記憶データのうち1セットをシ
リアル通信を介してプログラム変更用RAMに読み込む
。これにより、プログラム変更用RAMに記憶されたア
ドレスデータとプログラムカウンタの内容とが一致した
時は、ROMのデータに代えてプログラム変更用RAM
に記憶されたデータが命令デコーダに出力され、バグな
どが修正できる。そして、プログラム変更用RAMの容
量よりも修正したい箇所が多い場合は、上記プログラム
変更用RAMにプログラム入れ替えサブルーチンを呼び
だす命令コードを任意の入れ替えROMアドレス(M,
N)で入れ替えられるよう設定し、プログラム入れ替え
サブルーチンが実行された場合には、不揮発性メモリに
記憶されたデータの次の1セットを示す入れ替えアドレ
ス(NXTADi)を参照することにより、不揮発性メ
モリに記憶されたアドレスデータとプログラムデータを
ワンチップマイコンのプログラム変更用RAMにセット
しなおす。又、アドレスデータの書換え中は誤動作を防
止するため、アドレスデータとプログラムカウンタの内
容との比較を禁止する。
【0016】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
に説明する。
【0017】まず、本発明のマイコンのプログラム変更
装置の概念を図1を参照して説明する。図1に示すマイ
コンシステムにおいて、10はワンチップマイコン、2
0はこのマイコン10の外部に設けられ、このワンチッ
プマイコン10にセットすべきデータを記憶している電
気的に書込み可能な不揮発性メモリ、30は上記マイコ
ン10と不揮発性メモリ20とを接続する信号線(例え
ばシリアル通信配線)である。
装置の概念を図1を参照して説明する。図1に示すマイ
コンシステムにおいて、10はワンチップマイコン、2
0はこのマイコン10の外部に設けられ、このワンチッ
プマイコン10にセットすべきデータを記憶している電
気的に書込み可能な不揮発性メモリ、30は上記マイコ
ン10と不揮発性メモリ20とを接続する信号線(例え
ばシリアル通信配線)である。
【0018】ワンチップマイコン10において、1はプ
ログラムカウンタ、2はメインプログラムおよびプログ
ラムの入れ替えを行なうための入れ替えサブルーチンな
どが書き込まれたマスクROM、3はプログラム変更用
RAM、4はセレクタ、5は命令デコーダ、6はシリア
ル通信などで代表される受信回路(不揮発性メモリのデ
ータを受信する)で、信号線30を介して不揮発性メモ
リ20に接続されている。7はセレクタを禁止する禁止
回路、8は通常RAMである。
ログラムカウンタ、2はメインプログラムおよびプログ
ラムの入れ替えを行なうための入れ替えサブルーチンな
どが書き込まれたマスクROM、3はプログラム変更用
RAM、4はセレクタ、5は命令デコーダ、6はシリア
ル通信などで代表される受信回路(不揮発性メモリのデ
ータを受信する)で、信号線30を介して不揮発性メモ
リ20に接続されている。7はセレクタを禁止する禁止
回路、8は通常RAMである。
【0019】プログラムカウンタ1は、ROM2だけで
なく、プログラム変更用RAM3にもアドレス値を与え
るように接続されている。
なく、プログラム変更用RAM3にもアドレス値を与え
るように接続されている。
【0020】プログラム変更用RAM3は、ROM2の
書き込みプログラムにバグなどが発見された場合や、そ
の一部を修正したい場合に、このROM2の修正したい
アドレスに対応するアドレスデータおよび修正するため
のプログラムデータが対応して書込まれる変更アドレス
RAM(以下、単にEARと略称する)31、およびプ
ログラムRAM(以下、単にPRRと略称する)32を
有する。これらのアドレスデータおよびプログラムデー
タは、ワンチップマイコン10の電源投入(パワオン)
時のリセット直後の命令で不揮発性メモリ20の記憶デ
ータが受信回路6を介して、プログラム変更用RAM3
に書き込まれる様になっており、プログラム変更用RA
M3は実質的に不揮発性メモリと同等になる。
書き込みプログラムにバグなどが発見された場合や、そ
の一部を修正したい場合に、このROM2の修正したい
アドレスに対応するアドレスデータおよび修正するため
のプログラムデータが対応して書込まれる変更アドレス
RAM(以下、単にEARと略称する)31、およびプ
ログラムRAM(以下、単にPRRと略称する)32を
有する。これらのアドレスデータおよびプログラムデー
タは、ワンチップマイコン10の電源投入(パワオン)
時のリセット直後の命令で不揮発性メモリ20の記憶デ
ータが受信回路6を介して、プログラム変更用RAM3
に書き込まれる様になっており、プログラム変更用RA
M3は実質的に不揮発性メモリと同等になる。
【0021】セレクタ4は、通常はROM2の出力デー
タを選択して命令デコーダ5に入力させるが、EAR3
1に記憶されたアドレスデータとプログラムカウンタ1
の出力内容とが一致した時にPRR32からプログラム
データが出力すると、このPRR32の出力データ(修
正されたプログラムデータ)をROM2の出力データ(
修正すべきプログラムデータ)に代えて選択して命令デ
コーダ5に入力させるように構成されている。
タを選択して命令デコーダ5に入力させるが、EAR3
1に記憶されたアドレスデータとプログラムカウンタ1
の出力内容とが一致した時にPRR32からプログラム
データが出力すると、このPRR32の出力データ(修
正されたプログラムデータ)をROM2の出力データ(
修正すべきプログラムデータ)に代えて選択して命令デ
コーダ5に入力させるように構成されている。
【0022】禁止回路7は、セレクタ4の動作を禁止す
るもので、禁止信号を出力している間は、EAR31に
記憶されたアドレスデータとプログラムカウンタ1の出
力内容とが一致しても、通常通り、ROM2の内容を命
令デコーダ5に入力させる。
るもので、禁止信号を出力している間は、EAR31に
記憶されたアドレスデータとプログラムカウンタ1の出
力内容とが一致しても、通常通り、ROM2の内容を命
令デコーダ5に入力させる。
【0023】禁止回路7、受信回路6、プログラム変更
用RAM3はバス9に接続されていて、命令デコーダ5
からの指示でそれぞれの動作ができるようになっている
。
用RAM3はバス9に接続されていて、命令デコーダ5
からの指示でそれぞれの動作ができるようになっている
。
【0024】不揮発性メモリ20は、たとえばEEPR
OM、EPROMなど、電気的に書き込み可能なものが
考えられる。
OM、EPROMなど、電気的に書き込み可能なものが
考えられる。
【0025】図2は、プログラム変更用RAM3および
セレクタ4、禁止回路7の関係をさらに詳細に示したも
のである。ここで、プログラムカウンタ1は16ビット
で示すが、何ビットでも同じ考え方で対応できる。また
、EAR31およびPRR32はそれぞれ8セットとす
る。PRR32は、それぞれ命令コードのビット数のメ
モリを持ち、ここでは8ビットとする。当然、10ビッ
ト命令長の場合は、10ビットのメモリを使用すれば良
いことは言うまでもない。EAR31およびPRR32
は、バス9に接続されていて、命令デコーダ5で解読さ
れたRAM書込み命令により、EAR31およびPRR
32の内容は書換えることができる。又、書換え中は、
同じく命令デコーダ5で解読された禁止命令により、禁
止回路7から禁止信号をセレクタ4に与えることにより
、PRR32のデータ選択を禁止することができるよう
になっている。
セレクタ4、禁止回路7の関係をさらに詳細に示したも
のである。ここで、プログラムカウンタ1は16ビット
で示すが、何ビットでも同じ考え方で対応できる。また
、EAR31およびPRR32はそれぞれ8セットとす
る。PRR32は、それぞれ命令コードのビット数のメ
モリを持ち、ここでは8ビットとする。当然、10ビッ
ト命令長の場合は、10ビットのメモリを使用すれば良
いことは言うまでもない。EAR31およびPRR32
は、バス9に接続されていて、命令デコーダ5で解読さ
れたRAM書込み命令により、EAR31およびPRR
32の内容は書換えることができる。又、書換え中は、
同じく命令デコーダ5で解読された禁止命令により、禁
止回路7から禁止信号をセレクタ4に与えることにより
、PRR32のデータ選択を禁止することができるよう
になっている。
【0026】禁止回路7は、電源投入時に発生するシス
テムリセット信号(SYSRESET)により禁止信号
を出力し、命令により許可信号に変更するまでは禁止信
号の出力を続ける。
テムリセット信号(SYSRESET)により禁止信号
を出力し、命令により許可信号に変更するまでは禁止信
号の出力を続ける。
【0027】EAR31には、それぞれ比較回路(CO
MP)41が接続されており、プログラムカウンタ1の
内容とEAR31の内容とが一致した時、それぞれのペ
アとなるPRR32のデータが出力されるよう、PRR
32に接続されたゲート42を開く。同時に、EAR3
1のいずれかの値がプログラムカウンタ1の内容と一致
した時は、オア回路43の出力によりセレクタ4を、禁
止回路7による禁止信号が出ていない場合に限り、PR
R32側のデータを命令デコーダ5に出力するよう切換
えるようになっている。
MP)41が接続されており、プログラムカウンタ1の
内容とEAR31の内容とが一致した時、それぞれのペ
アとなるPRR32のデータが出力されるよう、PRR
32に接続されたゲート42を開く。同時に、EAR3
1のいずれかの値がプログラムカウンタ1の内容と一致
した時は、オア回路43の出力によりセレクタ4を、禁
止回路7による禁止信号が出ていない場合に限り、PR
R32側のデータを命令デコーダ5に出力するよう切換
えるようになっている。
【0028】図3は、不揮発性メモリ20のアドレスマ
ップの一例である。すなわち、不揮発性メモリ20の予
め決められた番地までを、たとえばカメラシステムにお
けるAF,AEなどのための各種調整データを記憶した
調整データエリア20Aとし、それ以降の番地をプログ
ラム変更データエリア20Bと決めておく。プログラム
変更データエリア20Bにおいて、X〜Zは不揮発性メ
モリ20のアドレスを示す変数で、それぞれ8ビットの
変数であるとする。NXTADi,addjk,cod
ejk(i,j,kは正の整数の引数)は、それぞれa
ddik〜NXTADjのグループのアドレスを示す変
数名、EAR31およびPRR32にセットするデータ
を記憶している不揮発性メモリ20のアドレスを示す変
数名である。ここでは、addj1,codej1〜N
XTAD1で代表される25バイトの連続したメモリを
1グループ、つまり1セットとする。たとえば、図3に
おいては、アドレスX(太線枠)のadd11〜NXT
AD1までを1セットと呼ぶ。
ップの一例である。すなわち、不揮発性メモリ20の予
め決められた番地までを、たとえばカメラシステムにお
けるAF,AEなどのための各種調整データを記憶した
調整データエリア20Aとし、それ以降の番地をプログ
ラム変更データエリア20Bと決めておく。プログラム
変更データエリア20Bにおいて、X〜Zは不揮発性メ
モリ20のアドレスを示す変数で、それぞれ8ビットの
変数であるとする。NXTADi,addjk,cod
ejk(i,j,kは正の整数の引数)は、それぞれa
ddik〜NXTADjのグループのアドレスを示す変
数名、EAR31およびPRR32にセットするデータ
を記憶している不揮発性メモリ20のアドレスを示す変
数名である。ここでは、addj1,codej1〜N
XTAD1で代表される25バイトの連続したメモリを
1グループ、つまり1セットとする。たとえば、図3に
おいては、アドレスX(太線枠)のadd11〜NXT
AD1までを1セットと呼ぶ。
【0029】プログラムカウンタ1を16ビットとした
ので、addjkには、プログラムカウンタ1に対応す
るため上位と下位とに分けて2バイトを使用している。 プログラム命令長は8ビットなので、codejkは1
バイトで良い。この例では、アドレスWは変数NXTA
D0の位置を、X,Y,Zはそれぞれのグループごとの
先頭変数add11,add21,…の位置を示してい
る。
ので、addjkには、プログラムカウンタ1に対応す
るため上位と下位とに分けて2バイトを使用している。 プログラム命令長は8ビットなので、codejkは1
バイトで良い。この例では、アドレスWは変数NXTA
D0の位置を、X,Y,Zはそれぞれのグループごとの
先頭変数add11,add21,…の位置を示してい
る。
【0030】図4は、ワンチップマイコン10のプログ
ラム変更用RAM3のメモリマップを示す。EAR31
は、プログラムカウンタ1が16ビットなので2バイト
必要である。1つ目の上位アドレスデータの変数名をE
AR1h、下位アドレスの変数名をEAR1b、それに
対応したPRR32の変数名をPRR1とし、以下、同
様にEAR8h,EAR8b,PRR8まで、変更可能
なアドレス位置は8個あるものとする。
ラム変更用RAM3のメモリマップを示す。EAR31
は、プログラムカウンタ1が16ビットなので2バイト
必要である。1つ目の上位アドレスデータの変数名をE
AR1h、下位アドレスの変数名をEAR1b、それに
対応したPRR32の変数名をPRR1とし、以下、同
様にEAR8h,EAR8b,PRR8まで、変更可能
なアドレス位置は8個あるものとする。
【0031】変数名eNXTADのメモリは、プログラ
ム変更用RAM3で変更された命令で、後述する入れ替
えサブルーチンが呼ばれた場合に参照するメモリで、入
れ替えるための次の変更データの1セットにおける先頭
位置の不揮発性メモリ20のアドレスを記憶しておく通
常RAM8の1アドレスである。
ム変更用RAM3で変更された命令で、後述する入れ替
えサブルーチンが呼ばれた場合に参照するメモリで、入
れ替えるための次の変更データの1セットにおける先頭
位置の不揮発性メモリ20のアドレスを記憶しておく通
常RAM8の1アドレスである。
【0032】次に、このような構成において、図5に示
すフローチャートを参照して、電源投入時にプログラム
変更用RAM3にデータをセットする動作を説明する。 電源が投入(パワオン)されるとシステムリセットがか
かり、パワオンからプログラムがスタートする。このと
き、システムリセットにより禁止回路7は禁止信号を出
力する。
すフローチャートを参照して、電源投入時にプログラム
変更用RAM3にデータをセットする動作を説明する。 電源が投入(パワオン)されるとシステムリセットがか
かり、パワオンからプログラムがスタートする。このと
き、システムリセットにより禁止回路7は禁止信号を出
力する。
【0033】まず、ステップS1では、ワンチップマイ
コン10のポートなどのイニシャライズが行なわれる。 イニシャライズの後、プログラム変更用RAM3をセッ
トするためのプログラムが実行される。すなわち、ステ
ップS2では、最初のプログラム変更用RAM3にセッ
トするための不揮発性メモリ20のグループのアドレス
を示すNXTAD0の番地Wを、マイコン10内の図示
しないレジスタr1にセットし、ステップS3に進む。 なお、番地Wは、そのシステムにより設計時に決められ
るので、あらかじめROM2に書くことができる。
コン10のポートなどのイニシャライズが行なわれる。 イニシャライズの後、プログラム変更用RAM3をセッ
トするためのプログラムが実行される。すなわち、ステ
ップS2では、最初のプログラム変更用RAM3にセッ
トするための不揮発性メモリ20のグループのアドレス
を示すNXTAD0の番地Wを、マイコン10内の図示
しないレジスタr1にセットし、ステップS3に進む。 なお、番地Wは、そのシステムにより設計時に決められ
るので、あらかじめROM2に書くことができる。
【0034】ステップS3では、不揮発性メモリ20の
データを読み込むサブルーチン「EEPRD」を呼びだ
す。ここでは、不揮発性メモリ20はEEPROMとし
て説明を続ける。上記サブルーチン「EEPRD」は、
図6に示すように、まずステップS21で、不揮発性メ
モリ20のレジスタr1の値で示された番地のデータを
受信回路6を介して読み込む。次に、ステップS22で
は、ステップS21における読み込み結果をレジスタr
1にセットする。
データを読み込むサブルーチン「EEPRD」を呼びだ
す。ここでは、不揮発性メモリ20はEEPROMとし
て説明を続ける。上記サブルーチン「EEPRD」は、
図6に示すように、まずステップS21で、不揮発性メ
モリ20のレジスタr1の値で示された番地のデータを
受信回路6を介して読み込む。次に、ステップS22で
は、ステップS21における読み込み結果をレジスタr
1にセットする。
【0035】次に、ステップS4では、不揮発性メモリ
20から読み込んだ結果、つまりレジスタr1の値(N
XTAD0の値)を、通常RAM8のeNXTADに記
憶する。
20から読み込んだ結果、つまりレジスタr1の値(N
XTAD0の値)を、通常RAM8のeNXTADに記
憶する。
【0036】次に、プログラム変更用RAM3に、後述
する入れ替えサブルーチン「CHGSB」を呼びだすた
めのコール(CALL)命令をセットする。入れ替えサ
ブルーチンを実行するアドレスは、プログラム変更用R
AM3に上記データをセットした後、実際に修正が必要
なアドレスの前までのいずれかの間であればどこでも良
いが、ここでは、プログラム変更用RAM3にデータセ
ット直後の番地Lを使用する。ここで、入れ替えサブル
ーチンを呼ぶためのコール文は3バイト命令とし、コー
ルのコード1バイトと、入れ替えサブルーチンを示すア
ドレス2バイトからなるものとする。
する入れ替えサブルーチン「CHGSB」を呼びだすた
めのコール(CALL)命令をセットする。入れ替えサ
ブルーチンを実行するアドレスは、プログラム変更用R
AM3に上記データをセットした後、実際に修正が必要
なアドレスの前までのいずれかの間であればどこでも良
いが、ここでは、プログラム変更用RAM3にデータセ
ット直後の番地Lを使用する。ここで、入れ替えサブル
ーチンを呼ぶためのコール文は3バイト命令とし、コー
ルのコード1バイトと、入れ替えサブルーチンを示すア
ドレス2バイトからなるものとする。
【0037】すなわち、ステップS5では、EAR31
のEAR1hにL番地の上位の値を、ステップS6では
、EAR31のEAR1bにL番地の下位の値をセット
し、ステップS7では、PRR32のPRR1にコール
に相当するコードをセットする。次に、ステップS8で
は、L番地の値に「+1」し、ステップS9では、EA
R31のEAR2hにL番地の上位の値を、ステップS
10では、EAR31のEAR2bにL番地の下位の値
を、ステップS11では、PRR32のPRR2に入れ
替えサブルーチン「CHGSB」のアドレスの上位の値
をセットする。次に、ステップS12では、再びL番地
の値に「+1」し、ステップS13では、EAR31の
EAR3hにL番地の上位の値を、ステップS14では
、EAR31のEAR3bにL番地の下位の値を、ステ
ップS15では、PRR32のPRR3に入れ替えサブ
ルーチン「CHGSB」のアドレスの下位の値をセット
する。
のEAR1hにL番地の上位の値を、ステップS6では
、EAR31のEAR1bにL番地の下位の値をセット
し、ステップS7では、PRR32のPRR1にコール
に相当するコードをセットする。次に、ステップS8で
は、L番地の値に「+1」し、ステップS9では、EA
R31のEAR2hにL番地の上位の値を、ステップS
10では、EAR31のEAR2bにL番地の下位の値
を、ステップS11では、PRR32のPRR2に入れ
替えサブルーチン「CHGSB」のアドレスの上位の値
をセットする。次に、ステップS12では、再びL番地
の値に「+1」し、ステップS13では、EAR31の
EAR3hにL番地の上位の値を、ステップS14では
、EAR31のEAR3bにL番地の下位の値を、ステ
ップS15では、PRR32のPRR3に入れ替えサブ
ルーチン「CHGSB」のアドレスの下位の値をセット
する。
【0038】その後、ステップS16において、禁止回
路7から許可信号を出力することにより、セレクタ4を
有効にする。従って、その後のL番地にプログラムカウ
ンタ1が移行した時、セレクタ4はPRR32の値を選
択し、ROM2のコードに代えて入れ替えサブルーチン
「CHGSB」を実行することになる。
路7から許可信号を出力することにより、セレクタ4を
有効にする。従って、その後のL番地にプログラムカウ
ンタ1が移行した時、セレクタ4はPRR32の値を選
択し、ROM2のコードに代えて入れ替えサブルーチン
「CHGSB」を実行することになる。
【0039】図7および図8は、入れ替えサブルーチン
「CHGSB」の一例を示すフローチャートであり、以
下、このフローチャートを参照して動作を説明する。ま
ず、入れ替えサブルーチン「CHGSB」では、プログ
ラム変更用RAM3を実行するために実行できなかった
ROM2のプログラムを実行できるように、入れ替えサ
ブルーチン「CHGSB」の戻し先番地を3バイト分戻
す。これは、通常のマイコンであれば、スタックポイン
タに示される番地にリターン命令実行時に戻るようにな
っているので、スタックポインタの値を読取り、3バイ
ト分戻し、再びスタックポインタに戻すことにより実施
できる。ここに、レジスタr1,r2は、それぞれ8ビ
ットのレジスタとする。
「CHGSB」の一例を示すフローチャートであり、以
下、このフローチャートを参照して動作を説明する。ま
ず、入れ替えサブルーチン「CHGSB」では、プログ
ラム変更用RAM3を実行するために実行できなかった
ROM2のプログラムを実行できるように、入れ替えサ
ブルーチン「CHGSB」の戻し先番地を3バイト分戻
す。これは、通常のマイコンであれば、スタックポイン
タに示される番地にリターン命令実行時に戻るようにな
っているので、スタックポインタの値を読取り、3バイ
ト分戻し、再びスタックポインタに戻すことにより実施
できる。ここに、レジスタr1,r2は、それぞれ8ビ
ットのレジスタとする。
【0040】すなわち、ステップS31,S32では、
スタックポインタの値を読取り、それをレジスタr1,
r2にセットし、ステップS33に進む。ステップS3
3では、レジスタr1の値を「−3」し、ステップS3
4に進む。ステップS34では、ボローがでたか否かを
判断し、ボローが出た場合はステップS35を、出ない
場合はステップS36を実行する。ステップS35では
、レジスタr2の値を「−1」し、ステップS36,S
37に進む。ステップS36,S37では、レジスタr
1,r2の値をスタックポインタに戻し、ステップS3
8に進む。
スタックポインタの値を読取り、それをレジスタr1,
r2にセットし、ステップS33に進む。ステップS3
3では、レジスタr1の値を「−3」し、ステップS3
4に進む。ステップS34では、ボローがでたか否かを
判断し、ボローが出た場合はステップS35を、出ない
場合はステップS36を実行する。ステップS35では
、レジスタr2の値を「−1」し、ステップS36,S
37に進む。ステップS36,S37では、レジスタr
1,r2の値をスタックポインタに戻し、ステップS3
8に進む。
【0041】ステップS38では、eNXTADのデー
タを読取り、レジスタr2にセットし、ステップS39
に進む。ステップS39では、レジスタr2の値が「0
」であるか否かを判断し、「0」の場合は修正の箇所な
しということで、ステップS40に進む。ステップS4
0では、禁止回路7の出力を禁止とし、リターンする。 この場合、スタックポインタはL番地に戻っていて、し
かもセレクタ4は禁止となっているので、元のL番地の
ROM2の命令は実行されることになる。
タを読取り、レジスタr2にセットし、ステップS39
に進む。ステップS39では、レジスタr2の値が「0
」であるか否かを判断し、「0」の場合は修正の箇所な
しということで、ステップS40に進む。ステップS4
0では、禁止回路7の出力を禁止とし、リターンする。 この場合、スタックポインタはL番地に戻っていて、し
かもセレクタ4は禁止となっているので、元のL番地の
ROM2の命令は実行されることになる。
【0042】ここで、eNXTAD(=NXTAD0)
のデータが「0」で修正箇所なしと判定できる理由は、
本システムが図3で示される様にアドレス「0」は調整
データとしてマッピングされているからである。他のシ
ステムの場合は、システム設計時に変更データに使用し
ないアドレスデータ等を使用すれば良いので、その場合
は「0」以外の値を使用しても良い。
のデータが「0」で修正箇所なしと判定できる理由は、
本システムが図3で示される様にアドレス「0」は調整
データとしてマッピングされているからである。他のシ
ステムの場合は、システム設計時に変更データに使用し
ないアドレスデータ等を使用すれば良いので、その場合
は「0」以外の値を使用しても良い。
【0043】ステップS39において、レジスタr2の
値が「0」でない場合、すなわちeNXTAD≠0の場
合は、修正箇所ありということになるので、次のステッ
プでプログラム変更用RAM3の入れ替え作業を実施す
る。本実施例では、不揮発性メモリ20のデータ順は、
1セットごとに変更アドレスデータの上位、下位、変更
プログラムデータの順に8グループ及び次の不揮発性メ
モリ20の次の1セットを示すアドレスの順に決めてあ
るので、レジスタr2に代入されたeNXTADの値で
示される不揮発性メモリ20のデータからレジスタr2
をインクリメントして順次読込み、EAR31のEAR
ih,EARibおよびPRR32のPRRiにセット
する。
値が「0」でない場合、すなわちeNXTAD≠0の場
合は、修正箇所ありということになるので、次のステッ
プでプログラム変更用RAM3の入れ替え作業を実施す
る。本実施例では、不揮発性メモリ20のデータ順は、
1セットごとに変更アドレスデータの上位、下位、変更
プログラムデータの順に8グループ及び次の不揮発性メ
モリ20の次の1セットを示すアドレスの順に決めてあ
るので、レジスタr2に代入されたeNXTADの値で
示される不揮発性メモリ20のデータからレジスタr2
をインクリメントして順次読込み、EAR31のEAR
ih,EARibおよびPRR32のPRRiにセット
する。
【0044】すなわち、まず、ステップS41にて、マ
イコン10内の図示しないレジスタiの値を「0」にし
、ステップS42に進む。ステップS42では、レジス
タr2の値をレジスタr1にセットし、ステップS43
に進む。ステップS43では、不揮発性メモリ20のデ
ータを読み込むサブルーチン「EEPRD」を呼びだし
て実行し、ステップS44に進む。ステップS44では
、マイコン10内の図示しないレジスタr3にレジスタ
r1の値をセットし、ステップS45に進む。ステップ
S45では、レジスタr2の値に「+1」し、ステップ
S46に進む。ステップS46では、レジスタr1にレ
ジスタr2の値をセットし、ステップS47に進む。 ステップS47では、再び不揮発性メモリ20のデータ
を読込むサブルーチン「EEPRD」を呼びだして実行
する。ここで、EAR31にデータをセットする場合、
ステップS48にて、禁止回路7の出力を禁止とし、セ
レクタ4の入力をROM2側に固定する。これは、EA
R31の書換えは通常8ビットづつしか行なえず、たと
えばEARihを書換え中、EARibとの組合せアド
レスがたまたま入れ替えサブルーチン「CHGSB」の
アドレスと一致し、誤動作するのを禁止するためである
。
イコン10内の図示しないレジスタiの値を「0」にし
、ステップS42に進む。ステップS42では、レジス
タr2の値をレジスタr1にセットし、ステップS43
に進む。ステップS43では、不揮発性メモリ20のデ
ータを読み込むサブルーチン「EEPRD」を呼びだし
て実行し、ステップS44に進む。ステップS44では
、マイコン10内の図示しないレジスタr3にレジスタ
r1の値をセットし、ステップS45に進む。ステップ
S45では、レジスタr2の値に「+1」し、ステップ
S46に進む。ステップS46では、レジスタr1にレ
ジスタr2の値をセットし、ステップS47に進む。 ステップS47では、再び不揮発性メモリ20のデータ
を読込むサブルーチン「EEPRD」を呼びだして実行
する。ここで、EAR31にデータをセットする場合、
ステップS48にて、禁止回路7の出力を禁止とし、セ
レクタ4の入力をROM2側に固定する。これは、EA
R31の書換えは通常8ビットづつしか行なえず、たと
えばEARihを書換え中、EARibとの組合せアド
レスがたまたま入れ替えサブルーチン「CHGSB」の
アドレスと一致し、誤動作するのを禁止するためである
。
【0045】次に、ステップS49にて、EAR31の
EARihにレジスタr3の値を、ステップS50では
、EAR31のEARibにレジスタr1の値をそれぞ
れセットし、ステップS51に進む。ステップS51で
、禁止回路7の出力を許可とし、ステップS52に進む
。ステップS52では、レジスタr2の値に「+1」し
、ステップS53に進む。ステップS53では、レジス
タr1にレジスタr2の値をセットし、ステップS54
に進む。ステップS54では、再び不揮発性メモリ20
のデータを読み込むサブルーチン「EEPRD」を呼び
だして実行し、ステップS55に進む。ステップS55
では、PRR32のPRRiにレジスタr1の値をセッ
トし、ステップS56に進む。ステップS56では、レ
ジスタr2の値に「+1」し、ステップS57に進む。 ステップS57では、レジスタiの値に「+1」し、ス
テップS58に進む。ステップS58では、レジスタi
の値が「8」になったか否かを判断し、「8」になって
いなければステップS42に戻り、再び上記同様な動作
を繰り返す。
EARihにレジスタr3の値を、ステップS50では
、EAR31のEARibにレジスタr1の値をそれぞ
れセットし、ステップS51に進む。ステップS51で
、禁止回路7の出力を許可とし、ステップS52に進む
。ステップS52では、レジスタr2の値に「+1」し
、ステップS53に進む。ステップS53では、レジス
タr1にレジスタr2の値をセットし、ステップS54
に進む。ステップS54では、再び不揮発性メモリ20
のデータを読み込むサブルーチン「EEPRD」を呼び
だして実行し、ステップS55に進む。ステップS55
では、PRR32のPRRiにレジスタr1の値をセッ
トし、ステップS56に進む。ステップS56では、レ
ジスタr2の値に「+1」し、ステップS57に進む。 ステップS57では、レジスタiの値に「+1」し、ス
テップS58に進む。ステップS58では、レジスタi
の値が「8」になったか否かを判断し、「8」になって
いなければステップS42に戻り、再び上記同様な動作
を繰り返す。
【0046】ステップS58において、レジスタiの値
が「8」になると、変更アドレスデータの1セットであ
る8グループを全て書き替えたものと判断し、ステップ
S59に進む。ステップS59では、レジスタr1にレ
ジスタr2の値をセットし、ステップS60に進む。ス
テップS60では、再び不揮発性メモリ20のデータを
読み込むサブルーチン「EEPRD」を呼びだして実行
し、ステップS61に進む。ステップS61では、eN
XTADにレジスタr1の値、すなわち、NXTADi
のデータをセットし、リターンする。このリターンの際
、既に今回の入れ替えサブルーチン「CHGSB」を呼
びだすためのプログラム変更用RAM3上の変更アドレ
スデータは、上述した様に他のデータに入れ代わってい
るので、前述した入れ替えサブルーチン「CHGSB」
を実行するために変更されたROMデータは、スタック
データを3バイト戻しているのでリターン時に実行する
ことができる。従って、入れ替えサブルーチン「CHG
SB」を実行するためのプログラム変更用RAM3にセ
ットする入れ替えROMアドレス(M,N)は任意の場
所に設定することができる。変更箇所が8箇所以内の場
合は、パワオン時、一度入れ替えれば良いので、1セッ
ト8バイトを全てプログラム変更用に使用し、NXTA
Diには「0」をセットすれば良い。
が「8」になると、変更アドレスデータの1セットであ
る8グループを全て書き替えたものと判断し、ステップ
S59に進む。ステップS59では、レジスタr1にレ
ジスタr2の値をセットし、ステップS60に進む。ス
テップS60では、再び不揮発性メモリ20のデータを
読み込むサブルーチン「EEPRD」を呼びだして実行
し、ステップS61に進む。ステップS61では、eN
XTADにレジスタr1の値、すなわち、NXTADi
のデータをセットし、リターンする。このリターンの際
、既に今回の入れ替えサブルーチン「CHGSB」を呼
びだすためのプログラム変更用RAM3上の変更アドレ
スデータは、上述した様に他のデータに入れ代わってい
るので、前述した入れ替えサブルーチン「CHGSB」
を実行するために変更されたROMデータは、スタック
データを3バイト戻しているのでリターン時に実行する
ことができる。従って、入れ替えサブルーチン「CHG
SB」を実行するためのプログラム変更用RAM3にセ
ットする入れ替えROMアドレス(M,N)は任意の場
所に設定することができる。変更箇所が8箇所以内の場
合は、パワオン時、一度入れ替えれば良いので、1セッ
ト8バイトを全てプログラム変更用に使用し、NXTA
Diには「0」をセットすれば良い。
【0047】また、変更箇所が8箇所以上の場合は、プ
ログラム変更用RAM3の入れ替えが必要となるので、
変更箇所の3バイト分を入れ替えサブルーチン「CHG
SB」を呼びだすためのコール文のために使用すれば良
い。この場合、変更箇所が[8−3=5]バイトに減少
するが、例えば10バイトまでの変更箇所なら一度入れ
替えれば良く、二度入れ替えれば15バイトまで修正可
能となる。
ログラム変更用RAM3の入れ替えが必要となるので、
変更箇所の3バイト分を入れ替えサブルーチン「CHG
SB」を呼びだすためのコール文のために使用すれば良
い。この場合、変更箇所が[8−3=5]バイトに減少
するが、例えば10バイトまでの変更箇所なら一度入れ
替えれば良く、二度入れ替えれば15バイトまで修正可
能となる。
【0048】ここで、プログラム入れ替えのイメージの
一例を図9を参照して説明する。たとえば、パワオンか
らM番地までは初期設定で、この間に不揮発性メモリ2
0のX番地の変更が必要だとする。ループ1がメインル
ープで、スイッチ入力などの判断によりループ2に分岐
するとする。ループ1では不揮発性メモリ20のY番地
のグループ、ループ2では不揮発性メモリ20のZ番地
のグループの変更が必要だとする。この場合、EAR3
1およびPRR32、eNXTADにセットするための
不揮発性メモリ20のデータを表1に示す。
一例を図9を参照して説明する。たとえば、パワオンか
らM番地までは初期設定で、この間に不揮発性メモリ2
0のX番地の変更が必要だとする。ループ1がメインル
ープで、スイッチ入力などの判断によりループ2に分岐
するとする。ループ1では不揮発性メモリ20のY番地
のグループ、ループ2では不揮発性メモリ20のZ番地
のグループの変更が必要だとする。この場合、EAR3
1およびPRR32、eNXTADにセットするための
不揮発性メモリ20のデータを表1に示す。
【0049】
【表1】
以上のように、必要な変更アドレスで任意にプログラム
変更用RAM3を変更することにより、原理的には不揮
発性メモリ20の容量の許す限り任意の箇所を変更でき
る。また、変更箇所が1セット全部必要ない場合は、任
意のアドレスを選択し、ROM2と同じコードをプログ
ラム変更用RAM3に書いておけば、今回のハードのま
ま少ない変更箇所にも対応できる。
変更用RAM3を変更することにより、原理的には不揮
発性メモリ20の容量の許す限り任意の箇所を変更でき
る。また、変更箇所が1セット全部必要ない場合は、任
意のアドレスを選択し、ROM2と同じコードをプログ
ラム変更用RAM3に書いておけば、今回のハードのま
ま少ない変更箇所にも対応できる。
【0050】
【発明の効果】以上詳述したように本発明によれば、外
部の不揮発性メモリに修正プログラムを複数セット記憶
させておくとともに、マイコンのメインプログラムの中
に上記不揮発性メモリの1セット内容をプログラム変更
用RAMに移すための入れ替えサブルーチンを設け、修
正プログラムの中にその入れ替えサブルーチンを呼びだ
す命令を入れておくことにより、マイコン内のプログラ
ム変更用RAMの容量を増すことなく、プログラム変更
用RAMの容量以上にプログラム修正を行なえるマイク
ロコンピュータのプログラム変更装置を提供することが
できる。
部の不揮発性メモリに修正プログラムを複数セット記憶
させておくとともに、マイコンのメインプログラムの中
に上記不揮発性メモリの1セット内容をプログラム変更
用RAMに移すための入れ替えサブルーチンを設け、修
正プログラムの中にその入れ替えサブルーチンを呼びだ
す命令を入れておくことにより、マイコン内のプログラ
ム変更用RAMの容量を増すことなく、プログラム変更
用RAMの容量以上にプログラム修正を行なえるマイク
ロコンピュータのプログラム変更装置を提供することが
できる。
【図1】本発明の一実施例を示す構成図。
【図2】プログラム変更用RAMおよびセレクタ、禁止
回路の関係を詳細に示す構成図。
回路の関係を詳細に示す構成図。
【図3】不揮発性メモリのアドレスマップを説明するた
めの図。
めの図。
【図4】ワンチップマイコン内のプログラム変更用RA
Mのメモリマップを説明するための図。
Mのメモリマップを説明するための図。
【図5】プログラム変更用RAMにデータをセットする
動作を説明するフローチャート。
動作を説明するフローチャート。
【図6】不揮発性メモリのデータを読み込むサブルーチ
ンの動作を説明するフローチャート。
ンの動作を説明するフローチャート。
【図7】プログラム入れ替えサブルーチンの動作を説明
するフローチャート。
するフローチャート。
【図8】プログラム入れ替えサブルーチンの動作を説明
するフローチャート。
するフローチャート。
【図9】プログラム入れ替えのイメージの一例を説明す
る図。
る図。
【図10】従来のワンチップマイコンを示すブロック図
。
。
1…プログラムカウンタ、2…ROM、3…プログラム
変更用RAM、4…セレクタ、5…命令デコーダ、6…
受信回路、7…禁止回路、8…通常RAM、10…ワン
チップマイクロコンピュータ、20…不揮発性メモリ、
30…信号線、31…変更アドレスRAM(EAR)、
32…プログラムRAM(PRR)、41…比較回路、
42…ゲート、43…オア回路。
変更用RAM、4…セレクタ、5…命令デコーダ、6…
受信回路、7…禁止回路、8…通常RAM、10…ワン
チップマイクロコンピュータ、20…不揮発性メモリ、
30…信号線、31…変更アドレスRAM(EAR)、
32…プログラムRAM(PRR)、41…比較回路、
42…ゲート、43…オア回路。
Claims (1)
- 【請求項1】 リードオンリメモリのプログラム命令
を変更するための変更アドレスと変更命令コードを組み
合わせて記憶する変更情報記憶手段を有する不揮発性メ
モリと、上記リードオンリメモリに記憶されたプログラ
ム命令に従って動作するとともに、上記不揮発性メモリ
に接続され、接続線を介して受信した上記変更アドレス
と上記変更命令コードをプログラム変更用ランダムアク
セスメモリに記憶し、上記変更アドレスとマイクロコン
ピュータのプログラムカウンタの値を比較手段により比
較し、比較の結果一致した場合に上記変更命令コードを
実行するワンチップマイクロコンピュータとを有するマ
イクロコンピュータのプログラム変更装置において、上
記不揮発性メモリの上記変更情報記憶手段は、上記変更
アドレスと変更命令コードの複数の組み合わせからなる
1セットごとに、上記変更アドレスおよび上記変更命令
コードの入れ替えを実行する上記リードオンリメモリ上
の入れ替えROMアドレスと、上記不揮発性メモリ上の
入れ替えアドレスを記憶する入れ替え記憶部を有し、上
記マイクロコンピュータは、上記接続線を介して上記プ
ログラム変更用ランダムアクセスメモリに記憶された上
記入れ替えROMアドレスと上記プログラムカウンタの
値とが一致した場合に、1セットの上記変更アドレスと
変更命令コードを、上記入れ替えアドレスに従って書き
替えるデータ入れ替えプログラムと、上記プログラム変
更用ランダムアクセスメモリの書き替え中は上記比較手
段の動作を禁止する禁止手段とを具備することを特徴と
するマイクロコンピュータのプログラム変更装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3026870A JP3022608B2 (ja) | 1991-01-28 | 1991-01-28 | マイクロコンピュータのプログラム変更装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3026870A JP3022608B2 (ja) | 1991-01-28 | 1991-01-28 | マイクロコンピュータのプログラム変更装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04252334A true JPH04252334A (ja) | 1992-09-08 |
| JP3022608B2 JP3022608B2 (ja) | 2000-03-21 |
Family
ID=12205329
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3026870A Expired - Fee Related JP3022608B2 (ja) | 1991-01-28 | 1991-01-28 | マイクロコンピュータのプログラム変更装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3022608B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0876990A (ja) * | 1994-09-07 | 1996-03-22 | Seikosha Co Ltd | カメラ用制御回路 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS57136258A (en) * | 1981-02-16 | 1982-08-23 | Nec Corp | Microprogram controller |
| JPS5831450A (ja) * | 1981-08-19 | 1983-02-24 | Fujitsu Ltd | プログラム変更方式 |
-
1991
- 1991-01-28 JP JP3026870A patent/JP3022608B2/ja not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS57136258A (en) * | 1981-02-16 | 1982-08-23 | Nec Corp | Microprogram controller |
| JPS5831450A (ja) * | 1981-08-19 | 1983-02-24 | Fujitsu Ltd | プログラム変更方式 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0876990A (ja) * | 1994-09-07 | 1996-03-22 | Seikosha Co Ltd | カメラ用制御回路 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3022608B2 (ja) | 2000-03-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5357627A (en) | Microcomputer having a program correction function | |
| JP2682700B2 (ja) | Icカード | |
| US20140156904A1 (en) | Bus controller | |
| JPH05189987A (ja) | データ処理システムにおける漸進的にプログラム可能な不揮発性メモリおよびその漸進的なプログラム方法 | |
| JP3563768B2 (ja) | Romプログラム変更装置 | |
| US5828911A (en) | One chip microcomputer built-in system | |
| JPH06131171A (ja) | マスク・プログラマブル・マイクロプロセッサ | |
| JPH05217361A (ja) | メモリカード | |
| US5606715A (en) | Flexible reset configuration of a data processing system and method therefor | |
| US5956480A (en) | Terminal and online system for tracking version of data and program | |
| JPH03186927A (ja) | マイクロコンピュータのプログラム変更装置 | |
| JP3022608B2 (ja) | マイクロコンピュータのプログラム変更装置 | |
| US6148362A (en) | Microcomputer using nonvolatile semiconductor memory to store user code/data | |
| KR100321745B1 (ko) | 외부메모리액세스를위한마이크로컨트롤러유닛 | |
| EP0461631B1 (en) | Data storing device having a plurality of registers allotted for one address | |
| US4675843A (en) | Programmable logic controller | |
| JP3226566B2 (ja) | 電子交換機システム | |
| EP1456757B1 (en) | Penalty free address decoding scheme | |
| US7652503B2 (en) | Semiconductor device | |
| JP5269020B2 (ja) | 半導体集積回路装置およびメモリの管理方法 | |
| JP3152595B2 (ja) | マイクロコンピュータの割り込み処理装置 | |
| US12608139B2 (en) | Configuration method for a phase-change non-volatile memory | |
| JPH0876990A (ja) | カメラ用制御回路 | |
| US7234048B2 (en) | Method for initializing or configuring an electrical circuit | |
| JPH0991267A (ja) | 不揮発性メモリのデータ書き込み装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19991207 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |