(57)【要約】【課題】ＲＯＭに格納されたプログラムをＲＡＭ上に展開して実行するマイクロコンピュータシステムにおいて、内部メモリ容量と修正プログラムのサイズに応じて自動的に修正プログラムの選択が可能なプログラム修正方法を提供する。【解決手段】ＲＯＭに格納される修正プログラム２０８に個別に修正優先度２０６を与え、プログラム修正を実施する場合に、ＲＡＭの修正プログラム格納可能容量２１２を自動判別し、修正優先度２０６が高く修正プログラムサイズ２０７が小さい順に修正プログラムサイズ２０７を積算しつつ、この積算値を修正プログラム格納可能容量２１２と比較し、修正プログラムサイズを積算した値が修正プログラム格納可能容量２１２を超えない範囲で修正優先度２０６が高く修正プログラムサイズ２０７が小さい順に修正プログラム２０８を選択してＲＡＭ上に展開する。【選択図】  図２
2006277299.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き換え可能な不揮発性メモリを用いたＲＯＭに格納されたプログラムをＲＡＭ上に展開して実行するマイクロコンピュータシステムにおけるプログラム修正方法であって、前記プログラムに対する修正プログラムを外部から取り込む際に、前記修正プログラムについて少なくとも修正優先度およびプログラムサイズを含む情報をテーブル化して前記修正プログラムとともに前記ＲＯＭの修正プログラム情報格納領域に格納するプログラム修正方法。
【請求項２】
前記修正優先度が高い順に、かつ前記修正優先度が同一である場合は前記プログラムサイズが小さい順に、前記修正プログラムを選択しつつ前記プログラムサイズを積算し、積算した値が前記ＲＡＭにおける修正プログラム格納可能容量を超えない範囲で選択された修正プログラムを順に前記ＲＡＭ上に展開する請求項１記載のプログラム修正方法。
【請求項３】
コンピュータに請求項１または２記載のプログラム修正方法を実施させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム修正機能を有するマイクロコンピュータにおいて、プログラム修正を実施する場合に、マイクロコンピュータのメモリの空き容量を自動判別して修正プログラムを内部メモリに格納するプログラム修正方法に関するものである。
【背景技術】
【０００２】
近年の機器組み込み用のマイクロコンピュータにおいては、プログラムを格納する記憶装置として、製造中あるいは製造後においてもプログラムの修正が可能なことから、フラッシュメモリ等の記憶内容を電気的に消去、書き換え可能な不揮発性メモリが広く用いられている。フラッシュメモリ等の不揮発性メモリを搭載したマイクロコンピュータシステムにおける従来のプログラム修正方法は、外部の書き込み機器あるいはマイクロコンピュータで実行されるプログラムにより外部から修正プログラムを読み込んで不揮発性メモリを書き換えていた（例えば、特許文献１参照）。
【０００３】
図６は従来のシステム構成におけるプログラム修正方法を示すメモリ領域の構成図である。図６において、マイクロコンピュータのメモリ領域６０１は、ＲＡＭ領域６０２、修正プログラム格納領域６０３、ＲＯＭユーザ領域６０４、ＲＯＭの未使用領域６０５で構成され、外部のメモリ６０６は修正プログラムを格納するために使用される。修正プログラム格納領域６０３、ＲＯＭユーザ領域６０４、ＲＯＭの未使用領域６０５が不揮発性メモリ内の領域であり、プログラム実行時はＲＯＭユーザ領域６０４および修正プログラム格納領域６０３のデータがＲＡＭ領域６０２に展開される。
【０００４】
図７は、図６の構成におけるプログラム修正方法を説明するフロー図である。図７において、まず、７０１で外部のメモリから修正プログラムの読み出し処理を行い、修正プログラムを修正プログラム格納領域６０３に展開する。次に、７０２の修正プログラムの情報判別処理において修正プログラム格納領域のデータの妥当性を判断し、正しいデータならば、７０３でプログラム修正アドレスの設定処理を行う。
【特許文献１】特開平１０−５００８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の構成では修正プログラム格納領域の容量が修正プログラムのサイズを制限することになり、修正プログラムの許容サイズを大きくするとシステム全体のコストアップを招くことになる。また、プログラム修正においては、マイクロコンピュータの内部メモリの残量を外部で自動認識できないため、修正プログラムのサイズを計算して内部メモリにマッピングせざるを得なかった。
【０００６】
本発明は、マイクロコンピュータの内部メモリ容量と修正プログラムのサイズに応じて自動的に適切な修正プログラムが選択されて内部メモリに展開されるプログラム修正方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１のプログラム修正方法は、電気的に書き換え可能な不揮発性メモリを用いたＲＯＭに格納されたプログラムをＲＡＭ上に展開して実行するマイクロコンピュータシステムにおいて、前記プログラムに対する１つまたは複数の修正プログラムを外部から取り込む際に、修正プログラムのそれぞれについて少なくとも修正優先度およびプログラムサイズを含む情報をテーブル化して修正プログラムとともにＲＯＭの修正プログラム情報格納領域に格納する。
【０００８】
第２のプログラム修正方法は、第1のプログラム修正方法において、プログラム修正を実施する際は、前記修正優先度が高い順に、かつ前記修正優先度が同一である場合は前記プログラムサイズが小さい順に、修正プログラムを選択しつつ前記プログラムサイズを積算し、積算した値がＲＡＭにおける修正プログラム格納可能容量を超えない範囲で前記により選択された修正プログラムを順にＲＡＭ上に展開する。
【０００９】
上記構成によれば、ＲＡＭの修正プログラム格納可能な空き容量を予め知り、優先度の高い修正プログラムに優先度情報を持たせ、この優先度情報および修正プログラムのプログラムサイズをテーブル化することにより、メモリ容量に余裕がある限り優先度の高い修正プログラムを自動選択し優先的に配置することができる。
【発明の効果】
【００１０】
本発明によれば、プログラム修正データに優先順位の付加情報を持つことで、メモリの空き容量を考慮した自動メモリ配置を実現することができる。これにより、複雑な組み込み系のシステム機器においても、量産間近での不具合に対して速やかに対策することが可能となる。
【発明を実施するための最良の形態】
【００１１】
図１は本発明の一実施の形態に係るプログラム修正方法のソフトウェア構成を示す図である。図１において、１０１は各種の基本タスク群、１０２はマイクロコンピュータの内部メモリであるＲＡＭ、１０３はプログラムが格納される不揮発性メモリのＲＯＭ、１０９は外部の書き込み機器である。
【００１２】
基本タスク群１０１において、修正プログラム読み出しタスク１０４は、読み出し等の制御を行うメモリ制御タスク１０６により、外部の書き込み機器１０９から読み出した修正プログラムをＲＡＭ１０２に格納する処理を行う。
【００１３】
また、フラッシュメモリインタフェースを利用して外部からの修正プログラムを書き込むアルゴリズムを有するフラッシュメモリ書き込みタスク１０７が、ＲＯＭテーブル自動配置タスク１０５を制御し、決められたルールで各修正プログラム情報がＲＯＭテーブル化される。さらに、内部メモリの空き容量自動判別タスク１１１は、その判別結果を判別結果出力タスク１１２により外部へ出力する。１１０はシステム全体を監視するシステムタスクであり、その他のタスク１０８も含めてシステム全体が構成される。
【００１４】
図２は本実施形態のプログラム修正方法におけるＲＯＭ領域の構成図である。図２において、ＲＯＭ領域２０１は修正プログラム情報格納領域２１０とユーザ領域２１０で構成される。修正プログラム情報格納領域２１０では、修正プログラム情報テーブル２０２により、各修正プログラム情報および各修正プログラム２０８がテーブル化される。
【００１５】
修正プログラム格納可能メモリ容量２１２は、修正プログラムのＲＡＭ格納開始アドレス２０３と修正プログラムのＲＡＭ格納終端アドレス２０４の差である。また、修正プログラム毎に、プログラム修正スタートアドレス２０５、修正優先度２０６、修正プログラムサイズ２０７の３種類の情報がテーブル化される。
【００１６】
各修正プログラム２０８については、修正優先度２０６が高く、修正プログラムサイズ２０７が小さいものを優先的に修正することとする。また、最後の修正プログラム情報の次のアドレスに修正プログラム終了符号２０９として０ｘ００を設定する。
【００１７】
図３は本実施形態のプログラム修正方法におけるＲＡＭ領域の構成図である。図３において、内部メモリのＲＡＭ３０１は、ＲＯＭ領域の構成に応じて、修正プログラム格納領域３０４と、ユーザ領域３０５で構成される。修正プログラム格納領域３０４には、修正プログラム情報テーブル２０２に従い、修正プログラム２０８の中のいくつかが書き込まれる。
【００１８】
また、プログラム修正スタートアドレスレジスタ３０２は修正を開始するＲＯＭアドレスを格納し、修正プログラムアドレスレジスタ３０３は修正プログラム２０８が展開されているＲＡＭの開始アドレスを格納する。
【００１９】
図４は本実施形態のプログラム修正方法を説明するフロー図である。図４において、まず４０１の初期設定処理でＳＵＭを０に設定する。次に４０２のソート処理で各修正プログラムについて修正優先度２０６が高い順にソートする。
【００２０】
その後、修正優先度２０６が同じ修正プログラムについては、修正プログラムサイズ２０７が小さい順にソートし、修正プログラム番号によりソート結果の修正プログラム順をＲＡＭに格納する。図５は修正優先度と修正プログラムサイズに従ったソート結果５０１の格納状態を示す図である。
【００２１】
次に、４０３で修正プログラムサイズ算出処理を行う。この処理は、ソート結果５０１に従い、修正優先度２０６が高く修正プログラムサイズ２０７が小さいものから順に修正プログラムサイズ２０７をＳＵＭに積算する処理である。
【００２２】
次に、４０４で修正プログラムサイズ判別処理を行う。この処理では、修正プログラムサイズ算出処理Ｓ４０３で求められたＳＵＭと修正プログラム格納可能メモリ容量２１２を比較する。ＳＵＭの値が修正プログラム格納可能メモリ容量２１２より小さいならば、再び修正プログラムサイズ算出処理４０３を行う。
【００２３】
ＳＵＭの値が修正プログラム格納可能メモリ容量２１２より大きいならば、最後に加算した修正プログラムおよび未加算の修正プログラムは修正プログラム格納領域３０４に格納不可で、それ以前の修正プログラムは格納可能と判断する。
【００２４】
次に、４０５で修正プログラム情報設定処理を行う。この処理では、修正プログラム格納領域３０４に格納可能と判断した修正プログラム２０８について、プログラム修正スタートアドレスレジスタ３０２の設定を行う。
【００２５】
最後に、４０６で修正プログラムのＲＡＭへの展開処理を行う。この処理では、修正プログラム格納領域３０４に格納可能と判断した修正プログラム２０８をＲＡＭに展開し、修正プログラムアドレスレジスタ３０３の設定を行う。
【００２６】
以上の処理により、マイクロコンピュータの内部メモリ容量と修正優先度および修正プログラムのサイズに応じて、自動的に実装する修正プログラムを判別するプログラム修正が実現される。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態に係るプログラム修正方法のソフトウェア構成を示す図。
【図２】本発明のプログラム修正方法の一実施形態におけるＲＯＭ領域の構成図。
【図３】本発明のプログラム修正方法の一実施形態におけるＲＡＭ領域の構成図。
【図４】本発明の一実施形態に係るプログラム修正方法を説明するフロー図。
【図５】本発明における修正優先度と修正プログラムサイズに従ったソート結果の格納状態を示す図。
【図６】従来のプログラム修正方法におけるメモリ領域の構成図。
【図７】従来のプログラム修正方法を説明するフロー図。
【符号の説明】
【００２８】
１０１  基本タスク群
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  修正プログラム読み出しタスク
１０５  ＲＯＭテーブル自動配置タスク
１０６  メモリ制御タスク
１０７  フラッシュメモリ書き込みタスク
１０８  その他のタスク
１０９  外部の書き込み機器
１１０  システムタスク
１１１  メモリ空き容量自動判別タスク
１１２  判別結果出力タスク
２０１  ＲＯＭ領域
２０２  修正プログラム情報テーブル
２０３  修正プログラムのＲＡＭ格納開始アドレス
２０４  修正プログラムのＲＡＭ格納終端アドレス
２０５  修正スタートアドレス
２０６  修正優先度
２０７  修正プログラムサイズ
２０８  修正プログラム
２０９  修正プログラム終了符号
２１０  修正プログラム情報格納領域
２１１  ユーザ領域
２１２  修正プログラム格納可能メモリ容量
３０１  ＲＡＭ
３０２  プログラム修正スタートアドレスレジスタ
３０３  修正プログラムアドレスレジスタ
３０４  修正プログラム格納領域
３０５  ユーザ領域
４０１〜４０６  処理ステップ
５０１  ソート結果
６０１  マイクロコンピュータのメモリ領域
６０２  ＲＡＭ領域
６０３  修正プログラム格納領域
６０４  ＲＯＭユーザ領域
６０５  未使用領域
６０６  不揮発性メモリ
７０１〜７０３  処理ステップ
【図１】
2006277299.tif 000003
【図２】
2006277299.tif 000004
【図３】
2006277299.tif 000005
【図４】
2006277299.tif 000006
【図５】
2006277299.tif 000007
【図６】
2006277299.tif 000008
【図７】
2006277299.tif 000009