(57)【要約】【課題】プログラムの多くの修正に対応可能なプログラム修正装置を提供すること。【解決手段】タスク切り替え及び割り込み処理ごとに、各タスク及び割り込みにＲＡＭ領域に用意された修正アドレスデータ及び修正ベクタアドレスデータを修正レジスタ部の修正アドレスレジスタ及び修正ベクタアドレスレジスタへデータ転送することで、各タスク及び割り込み用の修正プログラムを動作させる。【選択図】図１
2009122740.tif 000002
【特許請求の範囲】
【請求項１】
実行中の命令のアドレスを指すプログラムカウンタと、
複数の修正アドレスを記憶する修正アドレスレジスタ、及び修正プログラムが格納されているアドレスを指定する複数の修正ベクタアドレスを記憶する修正ベクタアドレスレジスタを有する修正レジスタ部と、
全タスク及び割り込みに対して用意されている修正アドレスが格納された第１のＲＡＭ領域、全タスク及び割り込みに対して用意されている修正ベクタアドレスが格納された第２のＲＡＭ領域、及び全タスク及び割り込みに対して用意されている修正プログラムが格納された第３のＲＡＭ領域を有する修正データ格納部と、
前記修正アドレスレジスタが記憶する修正アドレスと前記プログラムカウンタが指すアドレスを比較する比較部と、
タスクの切り替え及び割り込みを検出するタスク切り替え／割り込み検出部と、
各タスク及び割り込み実行に対して用意されている修正アドレスデータを前記修正アドレスレジスタに、修正ベクタアドレスデータを前記修正ベクタアドレスレジスタに転送するデータ転送部と、
を備えたことを特徴とするプログラム修正装置。
【請求項２】
請求項１に記載のプログラム修正装置であって、
前記タスク切り替え／割り込み検出部がタスクの切り替えを検出したとき、前記データ転送部は、切り替え後のタスクに該当する修正アドレスデータ及び修正ベクタアドレスデータを前記修正データ格納部から前記修正レジスタ部に転送することを特徴とするプログラム修正装置。
【請求項３】
請求項２に記載のプログラム修正装置であって、
前記データ転送部は、前記切り替え後のタスクに該当する修正プログラムが前記第３のＲＡＭ領域に存在する場合にのみ、前記修正アドレスデータ及び前記修正ベクタアドレスデータを前記修正レジスタ部に転送することを特徴とするプログラム修正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータのプログラムの修正に関し、特に、多くの修正に対応可能なプログラム修正装置に関する。
【背景技術】
【０００２】
近年、マイクロコンピュータを用いた製品が多くなり、それらにはプログララマブルＲＯＭを実装する１チップコンピュータが使われている。製品寿命が短くなるにつれ、ソフトの開発期間も短くなり、１回のマスクで完成とはならず、何回かソフトの変更が必要となることが多い。このため、プログラムを容易にかつ何回も変更できるマイクロコンピュータが要望されている。
【０００３】
ＲＯＭ中のプログラムを修正する従来の方法について、図４を参照して説明する。図４に示すマイクロコンピュータは、実行中の命令のアドレスを指すプログラムカウンタ（ＰＣ）１０１と、ＰＣ１０１が指すアドレスと比較される修正アドレスを記憶する修正アドレスレジスタ１０８、及び修正プログラムが格納されているアドレスを記憶する修正ベクタアドレスレジスタ１０９を有する修正レジスタ部１０７と、修正プログラム１１０を記憶するＲＡＭ１１１と、修正アドレスレジスタ１０８が記憶する修正アドレスとＰＣ１０１が指すアドレスを比較する比較部１０３とを備える。
【０００４】
ＲＯＭ中のプログラムを修正する場合、比較部１０３は、ＰＣ１０１が指すアドレスと修正アドレスレジスタ１０８に格納されている修正アドレスの一致を監視する。これらアドレスが一致すると、修正プログラムが格納されているアドレスを示す修正ベクタアドレスがＰＣ１０１に設定され、修正されたプログラムはＲＡＭ１１１の修正プログラム１１０を実行する。
【０００５】
【特許文献１】特開平１１−２４９８８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、従来の組み込みマイコンのハードウェア機能には制約があり、プログラムの修正箇所が多くても、所定数以上箇所の修正には対応できなかった。
【０００７】
本発明の目的は、プログラムの多くの修正に対応可能なプログラム修正装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、実行中の命令のアドレスを指すプログラムカウンタと、複数の修正アドレスを記憶する修正アドレスレジスタ、及び修正プログラムが格納されているアドレスを指定する複数の修正ベクタアドレスを記憶する修正ベクタアドレスレジスタを有する修正レジスタ部と、全タスク及び割り込みに対して用意されている修正アドレスが格納された第１のＲＡＭ領域、全タスク及び割り込みに対して用意されている修正ベクタアドレスが格納された第２のＲＡＭ領域、及び全タスク及び割り込みに対して用意されている修正プログラムが格納された第３のＲＡＭ領域を有する修正データ格納部と、前記修正アドレスレジスタが記憶する修正アドレスと前記プログラムカウンタが指すアドレスを比較する比較部と、タスクの切り替え及び割り込みを検出するタスク切り替え／割り込み検出部と、各タスク及び割り込み実行に対して用意されている修正アドレスデータを前記修正アドレスレジスタに、修正ベクタアドレスデータを前記修正ベクタアドレスレジスタに転送するデータ転送部と、を備えたプログラム修正装置を提供する。
【０００９】
上記プログラム修正装置では、前記タスク切り替え／割り込み検出部がタスクの切り替えを検出したとき、前記データ転送部は、切り替え後のタスクに該当する修正アドレスデータ及び修正ベクタアドレスデータを前記修正データ格納部から前記修正レジスタ部に転送する。
【００１０】
上記プログラム修正装置では、前記データ転送部は、前記切り替え後のタスクに該当する修正プログラムが前記第３のＲＡＭ領域に存在する場合にのみ、前記修正アドレスデータ及び前記修正ベクタアドレスデータを前記修正レジスタ部に転送する。
【発明の効果】
【００１１】
本発明に係るプログラム修正装置によれば、従来の組み込みマイコンでは全てのタスク及び割込レベルでマイコンのハードウェアが用意している修正箇所のみ修正が可能であったのに対して、各タスク及び割込レベル毎にハードウェアが用意している分の修正を設定することができるため、プログラム修正箇所が多くなっても、ハード的に変更することなくプログラムの変更が可能となる。
【００１２】
例えば、ハードウェア上の修正可能箇所は３箇所、メイン、割込あわせて１０タスクで構成されるシステムがあった場合、従来ならば修正可能数は３箇所であったが、本発明によれば最大修正可能数は３０箇所になる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態について、図面を参照して説明する。
【００１４】
図１は、本発明の一実施形態のプログラム修正装置を示すブロック図である。マイクロコンピュータ（以下「マイコン」という。）は、プログラムカウンタ（ＰＣ）１０１と、比較部１０３と、修正アドレスレジスタ１０８及び修正ベクタアドレスレジスタ１０９を有する修正レジスタ部１０７と、タスク切り替え／割り込み検出部２００と、ＲＯＭ修正切替制御部２０１と、各タスク用の修正データ格納部２０２，２０６，…２１０とを備える。
【００１５】
ＰＣ１０１は、実行中の命令のアドレスを指す。修正アドレスレジスタ１０８は修正アドレスを記憶する。比較部１０３は、修正アドレスレジスタ１０８が記憶する修正アドレスとＰＣ１０１が指すアドレスを比較する。修正ベクタアドレスレジスタ１０９は、修正プログラムが格納されているアドレスを指定する修正ベクタアドレスを記憶する。
【００１６】
各タスク用の修正データ格納部２０２，２０６，…２１０は、全タスク及び割り込みに対して用意されている修正アドレスが格納された第１のＲＡＭ領域２２４と、全タスク及び割り込みに対して用意されている修正ベクタアドレスが格納された第２のＲＡＭ領域２２５と、全タスク及び割り込みに対して用意されている修正プログラムが格納された第３のＲＡＭ領域２２６とを有する。
【００１７】
本実施形態のプログラム修正装置が図示しないＲＯＭ中のプログラムを修正する場合、比較部１０３は、ＰＣ１０１が指すアドレスと修正レジスタ部１０７の修正アドレスレジスタ１０８が記憶する修正アドレスを比較する。これらアドレスが一致した場合、比較部１０３は、一致信号１０５を修正レジスタ部１０７の修正ベクタアドレスレジスタ１０９に送り、修正ベクタアドレスに基づく修正プログラムデータ領域ＪＵＭＰ信号２１７を第３のＲＡＭ領域２２６に送る。その結果、前記修正アドレスに対応する前記修正ベクタアドレスから得られる修正プログラムが実施される。
【００１８】
修正アドレスレジスタ１０８に設定されている修正アドレスと修正ベクタアドレスレジスタ１０９に設定されている修正ベクタアドレスは、タスク切り替え／割り込み検出部２００がタスク切り替え又は割り込みを検出するたびに、ＲＯＭ修正切替制御部２０１が第１のＲＡＭ領域２２４から検出したタスク又は割り込みに該当する修正アドレスデータを修正アドレスデータ転送信号２１５で修正レジスタ部１０７の修正アドレスレジスタ１０８に転送し、第２のＲＡＭ領域２２５から検出したタスク又は割り込みに該当する修正ベクタアドレスデータを修正ベクタアドレスデータ転送信号２１６で修正レジスタ部１０７の修正ベクタアドレスレジスタ１０９に転送して、修正アドレス及び修正ベクタアドレスを切り替える。この状態で、先のタスク実行時と同様に、比較部１０３が、ＰＣ１０１が指すアドレスと修正アドレスレジスタ１０８に格納されている修正アドレスを比較し、これらのアドレスが一致すれば修正プログラムが実行される。
【００１９】
なお、本実施形態では、修正アドレス、修正ベクタアドレス及び修正プログラムを格納する領域２２４，２２５，２２６をＲＡＭ領域としているが、高速に読み出しが可能であれば良いため、ＥＥＰＲＯＭやＥＰＲＯＭ、ＦｅＲＡＭ等でも良い。
【００２０】
図２は、マイコンに格納されたプログラムを実行することにより、タスクの切り替えを検出し、タスクの切り替えを検出したとき、修正アドレスと修正ベクタアドレスをＲＡＭ領域２２４，２２５から修正レジスタ部１０７に転送するフローチャートを示す。
【００２１】
図２に示すステップＳ１０１では、現在のタスク／割り込みに関する情報を取得し、ステップＳ１０２では、現在のタスク／割り込みに該当する修正アドレスデータ及び修正ベクタアドレスデータを修正レジスタ部１０７に転送する。
【００２２】
タスク切り替え／割り込み検出部２００がタスクの切り替えを検出すると、現在のタスク／割り込みに関する情報を取得する（ステップＳ１０１）。ＲＯＭ修正切替制御部２０１は、ステップＳ１０１で取得したタスク／割り込み情報が示すタスク／割り込みに該当する修正アドレスデータ及び修正ベクタアドレスデータを修正レジスタ部１０７に転送する（ステップＳ１０２）。
【００２３】
図３は、マイコンに格納されたプログラムを実行することにより、タスクの切り替えを検出し、タスクの切り替えを検出して、該当タスク／割り込みに対応する修正プログラムが存在するときのみ、各タスク／割り込みに該当する修正アドレスと修正ベクタアドレスをＲＡＭ領域２２４，２２５から修正レジスタ部１０７に転送するフローチャートを示す。
【００２４】
図３に示すステップＳ１０１では、現在のタスク／割り込みに関する情報を取得し、ステップＳ１０３では、現在のタスク／割り込みに対応する修正プログラムがＲＡＭ領域２２６に存在するかを判定し、存在する場合、ステップＳ１０２では、現在のタスク／割り込みに該当する修正アドレスデータ及び修正ベクタアドレスデータを修正レジスタ部１０７に転送する。
【００２５】
タスク切り替え／割り込み検出部２００がタスクの切り替えを検出すると、現在のタスク／割り込みに関する情報を取得する（ステップＳ１０１）。ＲＯＭ修正切替制御部２０１は、ステップＳ１０１で取得したタスク／割り込み情報が示すタスク／割り込みに該当する修正プログラムがＲＡＭ領域２２６に存在するかを判定し、存在しない場合は何もしない（ステップＳ１０３）。存在する場合、ＲＯＭ修正切替制御部２０１は、ステップＳ１０１で取得したタスク／割り込み情報が示すタスク／割り込みに該当する修正アドレスデータ及び修正ベクタアドレスデータを修正レジスタ部１０７に転送する（ステップＳ１０２）。
【００２６】
以上説明したように、従来の組み込みマイコンでは全てのタスク及び割込レベルでマイコンのハードウェアが用意している修正箇所のみ修正が可能であったのに対して、本実施形態のプログラム修正装置によれば、各タスク及び割込レベル毎にハードウェアが用意している分の修正を設定することができるため、プログラム修正箇所が多くなっても、ハード的に変更することなくプログラムの変更が可能となる。
【産業上の利用可能性】
【００２７】
本発明に係るプログラム修正装置は、プログラムの多くの修正に対応可能なプログラム修正装置等として有用である。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態のプログラム修正装置を示すブロック図
【図２】マイコンに格納されたプログラムを実行することにより、タスクの切り替えを検出し、タスクの切り替えを検出したとき、修正アドレスと修正ベクタアドレスをＲＡＭ領域２２４，２２５から修正レジスタ部１０７に転送するフローチャート
【図３】マイコンに格納されたプログラムを実行することにより、タスクの切り替えを検出し、タスクの切り替えを検出して、該当タスク／割り込みに対応する修正プログラムが存在するときのみ、各タスク／割り込みに該当する修正アドレスと修正ベクタアドレスをＲＡＭ領域２２４，２２５から修正レジスタ部１０７に転送するフローチャート
【図４】従来のプログラム修正装置を示すブロック図
【符号の説明】
【００２９】
１０１  プログラムカウンタ（ＰＣ）
１０３  比較部
１０７  修正レジスタ部
１０８  修正アドレスＮ個
１０９  修正ベクタアドレスＮ個
２００  タスク切り替え、割り込み検出部
２０１  ＲＯＭ修正切替制御部
２０２  タスク０用修正データ格納部
２０６  タスク１用修正データ格納部
２１０  タスクＮ用修正データ格納部
２１５  修正アドレスデータ転送信号
２１６  修正ベクタアドレスデータ転送信号
２１７  修正プログラムデータ領域ＪＵＭＰ信号
２２４  第１のＲＡＭ領域
２２５  第２のＲＡＭ領域
２２６  第３のＲＡＭ領域
【図１】
2009122740.tif 000003
【図２】
2009122740.tif 000004
【図３】
2009122740.tif 000005
【図４】
2009122740.tif 000006