JP3022608B2 - マイクロコンピュータのプログラム変更装置 - Google Patents

マイクロコンピュータのプログラム変更装置

Info

Publication number
JP3022608B2
JP3022608B2 JP3026870A JP2687091A JP3022608B2 JP 3022608 B2 JP3022608 B2 JP 3022608B2 JP 3026870 A JP3026870 A JP 3026870A JP 2687091 A JP2687091 A JP 2687091A JP 3022608 B2 JP3022608 B2 JP 3022608B2
Authority
JP
Japan
Prior art keywords
program
change
address
memory
data
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
JP3026870A
Other languages
English (en)
Other versions
JPH04252334A (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.)
Panasonic Corp
Olympus Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Olympus Optic Co Ltd
Matsushita Electric Industrial Co 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 Panasonic Corp, Olympus Optic Co Ltd, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP3026870A priority Critical patent/JP3022608B2/ja
Publication of JPH04252334A publication Critical patent/JPH04252334A/ja
Application granted granted Critical
Publication of JP3022608B2 publication Critical patent/JP3022608B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロコンピュータ
システムに係り、詳しくは、リードオンリメモリの修正
すべきプログラムデータに代えて修正されたプログラム
データを出力するマイクロコンピュータ(以下、マイコ
ンと略記する。)のプログラム変更装置に関する。
【0002】
【従来の技術】一般的に、従来のワンチップマイコン
は、図10に示すように、プログラムカウンタPC、所
定のプログラムが書込まれたプログラムメモリPMおよ
び命令デコーダIDを有する。このワンチップマイコン
の動作はよく知られているように、システムクロック
(図示せず)によってカウントアップするプログラムカ
ウンタPCによってアドレスが指定されるプログラムメ
モリPMから読出されるデータが命令デコーダIDによ
ってデコードされることによってプログラムが実行され
る。
【0003】プログラムメモリPMは、一般的にマスク
ROM(リードオンリメモリ)が用いられ、このマスク
ROMはメーカの製造工程でメーカによりプログラムが
書込まれ、ユーザによる書換えは不可能である。
【0004】また、最近では、ユーザによる書換えが1
回だけ可能なワンタイムROMと呼ばれるものも販売さ
れている。
【0005】しかし、ワンチップマイコンの製造後にマ
スクROMの書込みプログラムにバグなどが発見された
場合やその一部を修正したい場合、再度、ROMのマス
クパターンを書換えてから集積回路の製造プロセスをや
り直す必要があるので、修正されたワンチップマイコン
を入手するまでの期間が現状では数ヶ月もかかる。
【0006】しかも、マスクROMの書込みプログラム
にバグなどが発見されたワンチップマイコンは再利用す
ることができない。また、ワンタイムROMはマスクR
OMに比べて非常に高価であり、ユーザがプログラムを
書込むのに非常に時間がかかり、量産品への採用には不
向きである。
【0007】そこで、このような課題を解決すべく、本
発明者らは、特願平1−131861号により、データ
書換え用の電気的に書込み可能な不揮発性メモリ部をワ
ンチップマイコンに内蔵することによってプログラムデ
ータを修正する方法を提案した。
【0008】この方法は、ワンチップマイコン内の電気
的に書込み可能な不揮発性メモリ部に修正したいプログ
ラムアドレスおよび修正プログラムを記憶する場所を指
定し、プログラムカウンタと上記不揮発性メモリ部内の
修正したいプログラムアドレスとが一致した場合に修正
プログラムを実行するものであった。
【0009】こうすることにより、ワンチップマイコン
の量産後にプログラムのバグが発見された場合やその一
部を修正したい場合でも、再度、マスクROMを修正す
ることなくプログラムを変更でき、生産工程を止めなく
て済む。
【0010】しかし、上記したような方法は、比較的簡
単な回路構成で実現可能であるが、通常、CMOS(相
補正絶縁ゲート型)プロセスで製造されるワンチップマ
イコン内に電気的に書込み可能な不揮発性メモリ部を作
り込むプロセスが追加する必要が生じるので、結果的
に、ワンチップマイコンのコストが上昇してしまうとい
う問題がある。しかも、内蔵した不揮発性メモリ部の容
量の全てを使うとは限らず、むしろ、全部は使わないこ
との方が多いので、容量の無駄が生じる。
【0011】そこで、このような問題を解決すべく、本
発明者らは、特願平1−325876号により、マイク
ロコンピュータのプログラム変更装置を提案した。この
装置は、ROMに記憶されたプログラム命令に従って動
作するワンチップマイコンと、このワンチップマイコン
と信号線で接続されている不揮発性メモリとからなるマ
イコンシステムにおいて、上記不揮発性メモリには、上
記ROMのプログラム変更用の変更アドレス及び命令コ
ードを記憶させておき、上記ワンチップマイコンでは、
例えば電源投入時のリセット直後の命令で上記不揮発性
メモリから変更アドレス及び命令コードを受信してプロ
グラム変更用RAMに記憶し、上記変更アドレスとプロ
グラムカウンタの内容とを比較して、両者が一致した場
合、上記命令コードを実行するものである。
【0012】
【発明が解決しようとする課題】しかし、上記したプロ
グラム変更装置は、比較的簡単な回路構成で実現可能で
あるが、マイコン内のプログラム変更用RAMの容量
は、ICチップの面積の制約上、あまり多くとれない。
従って、プログラムを修正したい箇所がプログラム変更
用RAMの容量(変更可能数)よりも多くなってしまっ
た場合は、修正箇所のいずれかを諦めざるを得なかっ
た。
【0013】本発明は、このような課題に着目してなさ
れたもので、マイコン内のプログラム変更用RAMの容
量を増すことなく、プログラム変更用RAMの容量以上
にプログラム修正を行なえるマイクロコンピュータのプ
ログラム変更装置を提供することを目的とする。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に記載の発明は、リードオンリメモリに記
憶されているプログラム命令の一部をプログラム変更用
ランダムアクセスメモリの記憶内容に従って修正して実
行可能なマイクロコンピュータのプログラム変更装置に
おいて、上記マイクロコンピュータの外部に設けられ、
上記プログラム変更用ランダムアクセスメモリに書き込
まれる変更アドレスと変更プログラムデータの組み合わ
せを複数組、記憶可能な不揮発性メモリと、この不揮発
性メモリに記憶された上記変更アドレスと上記変更プロ
グラムデータの組合せの内の一部をリードオンリメモリ
のプログラム実行中に上記プログラム変更用ランダムア
クセスメモリに入れ替えるための入替手段と、この入替
手段による変更アドレスの入替動作中は、上記変更アド
レスとプログラムカウンタが一致しても上記プログラム
変更用ランダムアクセスメモリの記憶内容に従ってプロ
グラムの修正動作を禁止する禁止手段とを具備したこと
を特徴とする。そして、請求項2に記載の発明は、リー
ドオンリメモリに記憶されているプログラム命令の一部
をプログラム変更用ランダムアクセスメモリの記憶内容
に従って修正して実行可能なマイクロコンピュータのプ
ログラム変更装置において、上記マイクロコンピュータ
の外部に設けられ、上記プログラム変更用ランダムアク
セスメモリに書き込まれる変更アドレスと変更プログラ
ムデータの組み合わせを複数組、記憶可能な不揮発性メ
モリと、この不揮発性メモリに記憶された上記変更アド
レスと上記変更プログラムデータの組み合わせの内の一
部を上記プログラム変更用ランダムアクセスメモリに入
れ替えるための入替手段と、上記不揮発性メモリに記憶
された上記入れ替え動作を実行すべきアドレスに従っ
て、リードオンリメモリのプログラム動作中に上記入れ
替え動作を行う実行手段とを具備したことを特徴とす
る。
【0015】
【作用】請求項1に記載の発明によれば、不揮発性メモ
リにより、プログラム変更用ランダムアクセスメモリに
書き込まれる変更アドレスと変更プログラムデータの複
数組の組み合わせが記憶され、入替手段により、この不
揮発性メモリに記憶された上記変更アドレスと上記変更
プログラムデータの組合せの内の一部がリードオンリメ
モリのプログラム実行中に上記プログラム変更用ランダ
ムアクセスメモリに入れ替えられ、禁止手段により、上
記入替手段による変更アドレスの入替動作中は、上記変
更アドレスとプログラムカウンタが一致しても上記プロ
グラム変更用ランダムアクセスメモリの記憶内容に従っ
てプログラムの修正動作が禁止される。そして、請求項
2に記載の発明によれば、不揮発性メモリにより、プロ
グラム変更用ランダムアクセスメモリに書き込まれる変
更アドレスと変更プログラムデータの組み合わせが複数
組記憶され、入替手段により、この不揮発性メモリに記
憶された上記変更アドレスと上記変更プログラムデータ
の組み合わせの内の一部が上記プログラム変更用ランダ
ムアクセスメモリに入れ替えられ、実行手段により、上
記不揮発性メモリに記憶された上記入れ替え動作を実行
すべきアドレスに従って、リードオンリメモリのプログ
ラム動作中に上記入れ替え動作が行われる。
【0016】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0017】まず、本発明のマイコンのプログラム変更
装置の概念を図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である。
【0019】プログラムカウンタ1は、ROM2だけで
なく、プログラム変更用RAM3にもアドレス値を与え
るように接続されている。
【0020】プログラム変更用RAM3は、ROM2の
書き込みプログラムにバグなどが発見された場合や、そ
の一部を修正したい場合に、このROM2の修正したい
アドレスに対応するアドレスデータおよび修正するため
のプログラムデータが対応して書込まれる変更アドレス
RAM(以下、単にEARと略称する)31、およびプ
ログラムRAM(以下、単にPRRと略称する)32を
有する。これらのアドレスデータおよびプログラムデー
タは、ワンチップマイコン10の電源投入(パワオン)
時のリセット直後の命令で不揮発性メモリ20の記憶デ
ータが受信回路6を介して、プログラム変更用RAM3
に書き込まれる様になっており、プログラム変更用RA
M3は実質的に不揮発性メモリと同等になる。
【0021】セレクタ4は、通常はROM2の出力デー
タを選択して命令デコーダ5に入力させるが、EAR3
1に記憶されたアドレスデータとプログラムカウンタ1
の出力内容とが一致した時にPRR32からプログラム
データが出力すると、このPRR32の出力データ(修
正されたプログラムデータ)をROM2の出力データ
(修正すべきプログラムデータ)に代えて選択して命令
デコーダ5に入力させるように構成されている。
【0022】禁止回路7は、セレクタ4の動作を禁止す
るもので、禁止信号を出力している間は、EAR31に
記憶されたアドレスデータとプログラムカウンタ1の出
力内容とが一致しても、通常通り、ROM2の内容を命
令デコーダ5に入力させる。
【0023】禁止回路7、受信回路6、プログラム変更
用RAM3はバス9に接続されていて、命令デコーダ5
からの指示でそれぞれの動作ができるようになってい
る。
【0024】不揮発性メモリ20は、たとえばEEPR
OM、EPROMなど、電気的に書き込み可能なものが
考えられる。
【0025】図2は、プログラム変更用RAM3および
セレクタ4、禁止回路7の関係をさらに詳細に示したも
のである。ここで、プログラムカウンタ1は16ビット
で示すが、何ビットでも同じ考え方で対応できる。ま
た、EAR31およびPRR32はそれぞれ8セットと
する。PRR32は、それぞれ命令コードのビット数の
メモリを持ち、ここでは8ビットとする。当然、10ビ
ット命令長の場合は、10ビットのメモリを使用すれば
良いことは言うまでもない。EAR31およびPRR3
2は、バス9に接続されていて、命令デコーダ5で解読
されたRAM書込み命令により、EAR31およびPR
R32の内容は書換えることができる。又、書換え中
は、同じく命令デコーダ5で解読された禁止命令によ
り、禁止回路7から禁止信号をセレクタ4に与えること
により、PRR32のデータ選択を禁止することができ
るようになっている。
【0026】禁止回路7は、電源投入時に発生するシス
テムリセット信号(SYSRESET)により禁止信号
を出力し、命令により許可信号に変更するまでは禁止信
号の出力を続ける。
【0027】EAR31には、それぞれ比較回路(CO
MP)41が接続されており、プログラムカウンタ1の
内容とEAR31の内容とが一致した時、それぞれのペ
アとなるPRR32のデータが出力されるよう、PRR
32に接続されたゲート42を開く。同時に、EAR3
1のいずれかの値がプログラムカウンタ1の内容と一致
した時は、オア回路43の出力によりセレクタ4を、禁
止回路7による禁止信号が出ていない場合に限り、PR
R32側のデータを命令デコーダ5に出力するよう切換
えるようになっている。
【0028】図3は、不揮発性メモリ20のアドレスマ
ップの一例である。すなわち、不揮発性メモリ20の予
め決められた番地までを、たとえばカメラシステムにお
ける自動焦点調節,自動露出制御などのための各種調整
データを記憶した調整データエリア20Aとし、それ以
降の番地をプログラム変更データエリア20Bと決めて
おく。プログラム変更データエリア20Bにおいて、X
〜Zは不揮発性メモリ20のアドレスを示す変数で、そ
れぞれ8ビットの変数であるとする。NXTADi,a
ddjk,codejk(i,j,kは正の整数の引
数)は、それぞれaddik〜NXTADjのグループ
のアドレスを示す変数名、EAR31およびPRR32
にセットするデータを記憶している不揮発性メモリ20
のアドレスを示す変数名である。ここでは、addj
1,codej1〜NXTAD1で代表される25バイ
トの連続したメモリを1グループ、つまり1セットとす
る。たとえば、図3においては、アドレスX(太線枠)
のadd11〜NXTAD1までを1セットと呼ぶ。
【0029】プログラムカウンタ1を16ビットとした
ので、addjkには、プログラムカウンタ1に対応す
るため上位と下位とに分けて2バイトを使用している。
プログラム命令長は8ビットなので、codejkは1
バイトで良い。この例では、アドレスWは変数NXTA
DOの位置を、X,Y,Zはそれぞれの1セットごとの
先頭変数add11,add21,…の位置を示してい
る。
【0030】図4は、ワンチップマイコン10のプログ
ラム変更用RAM3のメモリマップを示す。EAR31
は、プログラムカウンタ1が16ビットなので2バイト
必要である。1つ目の上位アドレスデータの変数名をE
AR1h、下位アドレスの変数名をEAR1b、それに
対応したPRR32の変数名をPRR1とし、以下、同
様にEAR8h,EAR8b,PRR8まで、変更可能
なアドレス位置は8個あるものとする。
【0031】変数名eNXTADのメモリは、プログラ
ム変更用RAM3で変更された命令で、後述する入れ替
えサブルーチンが呼ばれた場合に参照するメモリで、入
れ替えるための次の変更データの1セットにおける先頭
位置の不揮発性メモリ20のアドレスを記憶しておく通
常RAM8の1アドレスである。
【0032】次に、このような構成において、図5に示
すフローチャートを参照して、電源投入時にプログラム
変更用RAM3にデータをセットする動作を説明する。
電源が投入(パワオン)されるとシステムリセットがか
かり、パワオンからプログラムがスタートする。このと
き、システムリセットにより禁止回路7は禁止信号を出
力する。
【0033】まず、ステップS1では、ワンチップマイ
コン10のポートなどのイニシャライズが行なわれる。
イニシャライズの後、プログラム変更用RAM3をセッ
トするためのプログラムが実行される。すなわち、ステ
ップS2では、最初のプログラム変更用RAM3にセッ
トするための不揮発性メモリ20の最初にセットする1
セットのアドレスを示すNXTADOの番地Wを、マイ
コン10内の図示しないレジスタr1にセットし、ステ
ップS3に進む。なお、番地Wは、そのシステムにより
設計時に決められるので、あらかじめROM2に書くこ
とができる。
【0034】ステップS3では、不揮発性メモリ20の
データを読み込むサブルーチン「EEPRD」を呼びだ
す。ここでは、不揮発性メモリ20はEEPROMとし
て説明を続ける。上記サブルーチン「EEPRD」は、
図6に示すように、まずステップS21で、不揮発性メ
モリ20のレジスタr1の値で示された番地のデータを
受信回路6を介して読み込む。次に、ステップS22で
は、ステップS21における読み込み結果をレジスタr
1にセットする。
【0035】次に、ステップS4では、不揮発性メモリ
20から読み込んだ結果、つまりレジスタr1の値(N
XTAD0の値)を、通常RAM8のeNXTADに記
憶する。
【0036】次に、プログラム変更用RAM3に、後述
する入れ替えサブルーチン「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では、E
AR31のEAR2hにL番地の上位の値を、ステップ
S10では、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」を実行することになる。
【0039】図7および図8は、入れ替えサブルーチン
「CHGSB」の一例を示すフローチャートであり、以
下、このフローチャートを参照して動作を説明する。ま
ず、入れ替えサブルーチン「CHGSB」では、プログ
ラム変更用RAM3を実行するために実行できなかった
ROM2のプログラムを実行できるように、入れ替えサ
ブルーチン「CHGSB」の戻し先番地を3バイト分戻
す。これは、通常のマイコンであれば、スタックポイン
タに示される番地にリターン命令実行時に戻るようにな
っているので、スタックポインタの値を読取り、3バイ
ト分戻し、再びスタックポインタに戻すことにより実施
できる。ここに、レジスタr1,r2は、それぞれ8ビ
ットのレジスタとする。
【0040】すなわち、16ビットのプログラムカウン
タの値が上位、下位8ビットづつ、それぞれr2,r1
に対応するので、ステップS31,S32では、スタッ
クポインタの値を読取り、それをレジスタr1,r2に
セットし、ステップS33に進む。ステップS33で
は、レジスタr1の値を「−3」し、ステップS34に
進む。ステップS34では、ボローがでたか否かを判断
し、ボローが出た場合はステップS35を、出ない場合
はステップS36を実行する。ステップS35では、レ
ジスタr2の値を「−1」し、ステップS36,S37
に進む。ステップS36,S37では、レジスタr1,
r2の値をスタックポインタに戻し、ステップS38に
進む。
【0041】ステップS38では、eNXTADのデー
タを読取り、レジスタr2にセットし、ステップS39
に進む。ステップS39では、レジスタr2の値が
「0」であるか否かを判断し、「0」の場合は修正の箇
所なしということで、ステップS40に進む。ステップ
S40では、禁止回路7の出力を禁止とし、リターンす
る。この場合、L番地になった時、入れ替えサブルーチ
ン「CHGSB」を呼ぶ命令が実行された場合にはスタ
ックポインタはL番地に戻っていて、しかもセレクタ4
は禁止となっているので、元のL番地のROM2の命令
は実行されることになる。
【0042】ここで、eNXTAD(=NXTAD0)
のデータが「0」で修正箇所なしと判定できる理由は、
本システムが図3で示される様にアドレス「0」は調整
データとしてマッピングされているからである。他のシ
ステムの場合は、システム設計時に変更データに使用し
ないアドレスデータ等を使用すれば良いので、その場合
は「0」以外の値を使用しても良い。
【0043】ステップS39において、レジスタr2の
値が「0」でない場合、すなわちeNXTADのデータ
≠0の場合は、修正箇所ありということになるので、次
のステップでプログラム変更用RAM3の入れ替え作業
を実施する。本実施例では、不揮発性メモリ20のデー
タ順は、1セットごとに変更アドレスデータの上位、下
位、変更プログラムデータの順に8グループ及び次の不
揮発性メモリ20の次の1セットを示すアドレスの順に
決めてあるので、レジスタr2に代入されたeNXTA
Dの値で示される不揮発性メモリ20のデータからレジ
スタr2をインクリメントして順次読込み、EAR31
のEARih,EARibおよびPRR32のPRRi
にセットする。
【0044】すなわち、まず、ステップS41にて、マ
イコン10内の図示しないレジスタiの値を「0」に
し、ステップS42に進む。ステップS42では、レジ
スタr2の値をレジスタr1にセットし、ステップS4
3に進む。ステップ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の値をセットし、ステップS5
4に進む。ステップS54では、再び不揮発性メモリ2
0のデータを読み込むサブルーチン「EEPRD」を呼
びだして実行し、ステップS55に進む。ステップS5
5では、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上の変更アド
レスデータは、上述した様に他のデータに入れ代わって
いるので、前述した入れ替えサブルーチン「CHGS
B」を実行するために変更されたROMデータは、スタ
ックデータを3バイト戻しているのでリターン時に実行
することができる。従って、入れ替えサブルーチン「C
HGSB」を実行するためのプログラム変更用RAM3
にセットする入れ替えROMアドレスは任意の場所に設
定することができる。変更箇所が8箇所以内の場合は、
パワオン時、一度入れ替えれば良いので、1セット8バ
イトを全てプログラム変更用に使用し、NXTADiに
は「0」をセットすれば良い。
【0047】また、変更箇所が8箇所以上の場合は、プ
ログラム変更用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に示す。
【0049】
【表1】 以上のように、必要な変更アドレスで任意にプログラム
変更用RAM3を変更することにより、原理的には不揮
発性メモリ20の容量の許す限り任意の箇所を変更でき
る。また、変更箇所が1セット全部必要ない場合は、任
意のアドレスを選択し、ROM2と同じコードをプログ
ラム変更用RAM3に書いておけば、今回のハードのま
ま少ない変更箇所にも対応できる。
【0050】
【発明の効果】以上詳述したように、本発明によれば、
外部の不揮発性メモリにプログラム命令を変更するため
の変更アドレスと変更プログラムデータの組み合わせを
複数組、記憶させ、その内の一部を入替手段によってR
OMプログラム実行中であってもプログラム変更用RA
Mに書き込めるようにしたので、マイクロコンピュータ
内のプログラム変更用RAMの容量を増やすことなく、
プログラム変更用RAMの容量以上にプログラム修正を
行うことができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す構成図。
【図2】プログラム変更用RAMおよびセレクタ、禁止
回路の関係を詳細に示す構成図。
【図3】不揮発性メモリのアドレスマップを説明するた
めの図。
【図4】ワンチップマイコン内のプログラム変更用RA
Mのメモリマップを説明するための図。
【図5】プログラム変更用RAMにデータをセットする
動作を説明するフローチャート。
【図6】不揮発性メモリのデータを読み込むサブルーチ
ンの動作を説明するフローチャート。
【図7】プログラム入れ替えサブルーチンの動作を説明
するフローチャート。
【図8】プログラム入れ替えサブルーチンの動作を説明
するフローチャート。
【図9】プログラム入れ替えのイメージの一例を説明す
る図。
【図10】従来のワンチップマイコンを示すブロック
図。
【符号の説明】
1…プログラムカウンタ、2…ROM、3…プログラム
変更用RAM、4…セレクタ、5…命令デコーダ、6…
受信回路、7…禁止回路、8…通常RAM、9…バスラ
イン、10…ワンチップマイクロコンピュータ、20…
不揮発性メモリ、30…信号線、31…変更アドレスR
AM(EAR)、32…プログラムRAM(PRR)、
41…比較回路、42…ゲート、43…オア回路。
フロントページの続き (72)発明者 吉田 道雄 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (72)発明者 宮沢 秀雄 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (72)発明者 宮本 昭仁 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (56)参考文献 特開 平4−226437(JP,A) 特開 昭58−31450(JP,A) 特開 昭57−136258(JP,A) 特開 平1−286028(JP,A) 特開 平1−100800(JP,A) 特開 昭58−186875(JP,A) 特開 昭58−16350(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/06,15/78

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 リードオンリメモリに記憶されているプ
    ログラム命令の一部をプログラム変更用ランダムアクセ
    スメモリの記憶内容に従って修正して実行可能なマイク
    ロコンピュータのプログラム変更装置において、 上記マイクロコンピュータの外部に設けられ、上記プロ
    グラム変更用ランダムアクセスメモリに書き込まれる変
    更アドレスと変更プログラムデータの組み合わせを複数
    組、記憶可能な不揮発性メモリと、 この不揮発性メモリに記憶された上記変更アドレスと上
    記変更プログラムデータの組合せの内の一部をリードオ
    ンリメモリのプログラム実行中に上記プログラム変更用
    ランダムアクセスメモリに入れ替えるための入替手段
    と、 この入替手段による変更アドレスの入替動作中は、上記
    変更アドレスとプログラムカウンタが一致しても上記プ
    ログラム変更用ランダムアクセスメモリの記憶内容に従
    ってプログラムの修正動作を禁止する禁止手段と、 を具備したことを特徴とするマイクロコンピュータのプ
    ログラム変更装置。
  2. 【請求項2】 リードオンリメモリに記憶されているプ
    ログラム命令の一部をプログラム変更用ランダムアクセ
    スメモリの記憶内容に従って修正して実行可能なマイク
    ロコンピュータのプログラム変更装置において、 上記マイクロコンピュータの外部に設けられ、上記プロ
    グラム変更用ランダムアクセスメモリに書き込まれる変
    更アドレスと変更プログラムデータの組み合わせを複数
    組、記憶可能な不揮発性メモリと、 この不揮発性メモリに記憶された上記変更アドレスと上
    記変更プログラムデータの組み合わせの内の一部を上記
    プログラム変更用ランダムアクセスメモリに入れ替える
    ための入替手段と、 上記不揮発性メモリに記憶された上記入れ替え動作を実
    行すべきアドレスに従って、リードオンリメモリのプロ
    グラム動作中に上記入れ替え動作を行う実行手段と、 を具備したことを特徴とするマイクロコンピュータのプ
    ログラム変更装置。
JP3026870A 1991-01-28 1991-01-28 マイクロコンピュータのプログラム変更装置 Expired - Fee Related JP3022608B2 (ja)

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 JPH04252334A (ja) 1992-09-08
JP3022608B2 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0876990A (ja) * 1994-09-07 1996-03-22 Seikosha Co Ltd カメラ用制御回路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
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 プログラム変更方式

Also Published As

Publication number Publication date
JPH04252334A (ja) 1992-09-08

Similar Documents

Publication Publication Date Title
US5592613A (en) Microcomputer having a program correction function
US4319343A (en) Programmable digital memory circuit
KR100324834B1 (ko) 전자장치
US6237120B1 (en) Program patching of a ROM
US5701506A (en) Microcomputer having ROM program which can be altered
JP3022608B2 (ja) マイクロコンピュータのプログラム変更装置
JPH05217361A (ja) メモリカード
JPH03186927A (ja) マイクロコンピュータのプログラム変更装置
US6148362A (en) Microcomputer using nonvolatile semiconductor memory to store user code/data
US20050246513A1 (en) Electronic control device and data adjustment method
JPH04162300A (ja) 半導体メモリ
JP3226566B2 (ja) 電子交換機システム
JPH0430399A (ja) 半導体記憶システム
JPH0876990A (ja) カメラ用制御回路
JP5269020B2 (ja) 半導体集積回路装置およびメモリの管理方法
JP3663043B2 (ja) マイクロコンピュータの書き込み終了の判別方法
JP3152595B2 (ja) マイクロコンピュータの割り込み処理装置
JP4439685B2 (ja) 記憶データ修正回路
JP2000112818A (ja) フラッシュメモリ制御装置及び方法
JP2001203579A (ja) アナログモジュール
JP3597548B2 (ja) ディジタルシグナルプロセッサ
JPH0490032A (ja) マイクロコンピュータ
JPH04123140A (ja) 動作設定情報バックアップ回路
JP2001134429A (ja) 情報記憶装置
JPH0991130A (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