(57)【特許請求の範囲】
【請求項１】
スタック領域にデータを退避しつつ処理を実行する情報処理装置であって、
初期時に前記スタック領域のデータをすべて所定値にセットし、装置の状況を定期的に検出する状態検出割込処理が発生したときに前記スタック領域の使用状況に関する情報を検出し、前記スタック領域の使用状況に関する情報を検出するときに前記スタック領域内のデータのうち前記所定値以外のデータを検索することにより前記スタック領域の最上位アドレスを検出する使用状況検出部と、
前記使用状況検出部で検出された前記スタック領域の前記最上位アドレスのログを記憶する記憶部と、
を有する情報処理装置。
【請求項２】
前記記憶部に記憶された前記スタック領域の使用状況に関する情報に基づいて前記スタック領域の容量を設定するスタック領域設定部を有する請求項１記載の情報処理装置。
【請求項３】
外部からのコマンド要求に基づいて前記記憶部に記憶されたスタック領域の使用状況に関する情報を読み出し、外部に通知する第１通知部を有する請求項１又は２記載の情報処理装置。
【請求項４】
外部からのコマンド要求に基づいて前記記憶部に記憶されたスタック領域の使用状況に関する情報を印刷する印刷部を有する請求項１乃至３のいずれか一項記載の情報処理装置。
【請求項５】
外部からのコマンド要求に基づいて前記スタック領域の使用状況を外部に通知する第２通知部を有する請求項１乃至４のいずれか一項記載の情報処理装置。
【請求項６】
印刷部と、制御プログラムに基づいて制御部を制御する処理部とを有し、スタック領域にデータを退避しつつ前記印刷部を制御し、印刷を行う印刷装置であって、
前記処理部は、
初期時に前記スタック領域のデータをすべて所定値にセットし、
装置の状況を定期的に検出する状態検出割込処理が発生したときに、前記スタック領域の使用状況に関する情報を検出し、
前記スタック領域の使用状況に関する情報を検出するときに、前記スタック領域内のデータのうち前記所定値以外のデータを検索することにより前記スタック領域の最上位アドレスを検出し、
検出された前記スタック領域の前記最上位アドレスのログを記憶部に記憶する、
印刷装置。
【請求項７】
前記記憶部に記憶された前記スタック領域の使用状況に関する情報に基づいて前記スタック領域の容量を設定するスタック領域設定部を有する請求項６記載の印刷装置。
【請求項８】
前記処理部は、外部からのコマンド要求に基づいて前記スタック領域の使用状況を外部に通知する請求項６又は７記載の印刷装置。
【請求項９】
スタック領域にデータを退避しつつ処理を実行する情報処理装置のスタック領域使用状況認識方法であって、
初期時に前記スタック領域のデータをすべて所定値にセットし、装置の状況を定期的に検出する状態検出割込処理が発生したときに前記スタック領域の使用状況に関する情報を検出し、前記スタック領域の使用状況に関する情報を検出するときに前記スタック領域内のデータのうち前記所定値以外のデータを検索することにより前記スタック領域の最上位アドレスを検出する使用状況検出手順と、
前記使用状況検出手順で検出された前記スタック領域の前記最上位アドレスのログを記憶部に記憶する記憶手順とを有する情報処理装置のスタック領域使用状況認識方法。
【請求項１０】
情報処理装置において、
データの退避領域であるスタック領域が設定される第１の記憶部と、
初期時に前記スタック領域のデータをすべて所定値にセットし、装置の状況を定期的に検出する状態検出割込処理が発生したときに前記スタック領域の使用状況に関する情報を検出し、前記スタック領域の使用状況に関する情報を検出するときに前記スタック領域内のデータのうち前記所定値以外のデータを検索することにより前記スタック領域の最上位アドレスを検出する使用状況検出部と、
前記スタック領域の最上位アドレスのログを記憶する第２の記憶部と、を有し、
前記使用状況検出部は、
前記第２の記憶部に記憶されている、前記スタック領域の最上位アドレスのログを参照し、
前記参照した最上位アドレスに格納されているデータが０であるか否かを判定し、
前記データが０でない場合、最上位アドレスのログを更新することを特徴とする情報処理装置。
【請求項１１】
前記使用状況検出部は、前記更新した最上位アドレスを前記第２の記憶部に記憶することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記使用状況検出部は更に、
前記参照した最上位アドレスに格納されているデータが０でない場合、前記参照した最上位アドレスよりも上位のアドレスのうち、格納されているデータが０となるアドレスを検出し、
検出したアドレスを更新する最上位アドレスとすることを特徴とする、請求項１０記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、印刷装置、及び、情報処理装置のスタック領域使用状況認識方法に係り、特に、スタック領域にデータを退避しつつ処理を実行する情報処理装置、印刷装置、及び、情報処理装置のスタック領域使用状況認識方法に関する。
【背景技術】
【０００２】
サーマルプリンタの制御プログラムなどにおいては割り込みやサブルーチン分岐処理の際に、戻り先アドレスやレジスタ内容などのデータをスタック領域と呼ばれるマイコンの内蔵ＲＡＭに予め一定の容量で確保された記憶領域に退避し、割り込み処理やサブルーチン分岐処理からの復帰時にスタック領域に退避された戻り先アドレスやレジスタ内容を用いて元の実行アドレスに戻り、処理を続行するように制御している。
【０００３】
割り込みやサブルーチン分岐処理が多重にわたって発生する処理では、スタック領域に多数のデータが退避されることになる。このため、スタック領域の容量を十分に確保する必要があった。
【０００４】
しかし、マイコン内蔵ＲＡＭは、容量が制限されており、他の処理でも用いられるため、スタック領域の容量も制限する必要があった。スタック領域の容量をどの程度確保するかは、実際にプリンタを動作させ、制御プログラムを実行させて、デバック用ＩＣＥ又はエミュレータなどにより、スタック領域のデータをトレースしながら確認する必要があった。
【０００５】
そして、例えば、スタック領域の容量の設定としては実際した容量の１．５〜２．０倍程度の容量を設定していた。
【０００６】
しかし、スタック領域の使用率は、実際には把握できないので、スタック領域の使用率に応じてスタック領域を変更するシステムが提案されている（特許文献１参照）。また、スタックオーバーフローを検出するシステムが提案されている（特許文献２−４参照）。
【特許文献１】特開平１１−２０３１６６号公報
【特許文献２】特開２００３−２２１８１号公報
【特許文献３】特開平０２−２１４９３８号公報
【特許文献４】特開平０６−１９７０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかるに、従来のスタック領域の容量を認識するには、デバック用ＩＣＥ又はエミュレータなどの装置が必要となる上、プリンタをある程度の時間動作させる必要があり、効率的ではなかった。また、スタック領域の使用率が高くなるような動作の組み合わせなど種々のパターンも考慮する必要があり、製品の評価段階でのスタック領域の容量をどの程度に設定するかの判断は難しかった。
【０００８】
本発明は、上記の点に鑑みてなされたもので、スタック領域を最適容量に設定することにより、メモリ領域を効率的に使用できるようにした情報処理装置、印刷装置、及び、情報処理装置のスタック領域使用状況認識方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、スタック領域にデータを退避しつつ処理を実行する情報処理装置であって、前記スタック領域の使用状況を検出する使用状況検出部と、前記使用状況検出部で検出された前記スタック領域の使用状況に関する情報を記憶する記憶部とを有することを特徴とする。
【００１０】
前記スタック領域には順次にデータが退避され、前記使用状況検出部は、初期時に前記スタック領域のデータをすべて所定値にセットし、前記スタック領域の使用状況を検出するときに、前記所定値以外のデータを検索することにより前記スタック領域の使用状況に関する情報を検出することを特徴とする。
【００１１】
前記使用状況検出部は、装置の状態を検出する状態検出割込処理が発生したときに、前記スタック領域の使用状況に関する情報を検出することを特徴とする。
【００１２】
前記記憶部に記憶された前記スタック領域の使用状況に関する情報に基づいて前記スタック領域の容量を設定するスタック領域設定部を有することを特徴とする。
【００１３】
外部からのコマンド要求に基づいて前記記憶部に記憶されたスタック領域の使用状況に関する情報を読み出し、外部に通知する第１通知部を有することを特徴とする。外部からのコマンド要求に基づいて前記記憶部に記憶されたスタック領域の使用状況に関する情報を印刷する印刷部を有することを特徴とする。
【００１４】
外部からのコマンド要求に基づいて前記スタック領域の使用状況を外部に通知する第２通知部を有することを特徴とする。外部からのコマンド要求に基づいて前記スタック領域の使用状況を印刷する印刷部を有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、スタック領域の使用状況を検出し、検出されたスタック領域の使用状況に関する情報を記憶部に記憶し、必要に応じて記憶部に記憶されたスタック領域の使用状況に関する情報を読み出すことにより、スタック領域の使用状況を正確に把握でき、これによって、スタック領域の容量を最適な容量に設定することができ、よって、記憶装置を有効に用いることができる。
【発明を実施するための最良の形態】
【００１６】
図１は本発明の一実施例のシステム構成図を示す。
【００１７】
本実施例の情報処理システム１００は、上位装置１０１、印刷装置１０２、インタフェースケーブル１０３を含む構成とされている。上位装置１０１と印刷装置１０２とは、インタフェースケーブル１０３を介して接続され、インタフェースケーブル１０３を介してデータ通信が行われる。
【００１８】
上位装置１０１で作成した文書、図表などのデータがインタフェースケーブル１０３を介して送信され、印刷装置１０２に提供される。印刷装置１０２は、上位装置１０１からのデータを解析、処理して、イメージに展開して、紙などの記録媒体に印刷する。
【００１９】
上位装置１０１は、コンピュータシステムから構成されている。
【００２０】
図２は上位装置１０１のブロック構成図を示す。
【００２１】
上位装置１０１は、ＣＰＵ１１１、記録装置１１２、メモリ１１３、インタフェース回路１１４、入力装置１１５、表示装置１１６を含む構成とされている。
【００２２】
ＣＰＵ１１１は、記録装置１１２などに予めインストールされた文書作成プログラムなどに基づいて処理を実行する。
【００２３】
記録装置１１２は、例えば、ハードディスクドライブなどであり、ＣＰＵ１１１で処理すべきプログラムなどがインストールされるとともに、処理されたデータが記憶されている。メモリ１１３は、例えば、ＲＡＭ、ＲＯＭなどであり、ＣＰＵ１１１の作業用記憶領域として用いられるとともに、ＢＩＯＳなどが記憶される。
【００２４】
インタフェース回路１１４は、インタフェースケーブル１０３に接続され、インタフェースケーブル１０３を介して印刷装置１０２とのデータ通信を行う。
【００２５】
入力装置１１５は、例えば、マウス、キーボードなどから構成されており、ユーザによる文書の入力、コマンドの発行などが行われる。
【００２６】
表示装置１１６は、例えば、ＣＲＴ、ＬＣＤなどから構成されており、プログラムに基づいて処理されたデータの表示、印刷情報の表示などを行う。
【００２７】
図３は印刷装置１０２のブロック構成図を示す。
【００２８】
印刷装置１０２は、インタフェース回路１２１、マイコン１２２、フラッシュＲＯＭ１２３、ＲＡＭ１２４、オペレーションパネル１２５、ドライバ１２６、印刷機構１２７、アナログデジタル変換回路１２８、電源１２９を含む構成とされている。
【００２９】
インタフェース回路１２１は、インタフェースケーブル１０３に接続されており、上位装置１０１からインタフェースケーブル１０３を介して供給される印刷データを受信し、マイコン１２２に供給する。
【００３０】
マイコン１２２は、フラッシュＲＯＭ１２３に予めインストールされた印刷処理プログラムに基づいて印刷処理を実行する。
【００３１】
なお、マイコン１２２は、内蔵メモリ１４１を有する。
【００３２】
フラッシュＲＯＭ１２３は、例えば、書き換え可能な不揮発性半導体メモリであり、マイコン１２２で実行する印刷処理プログラム、各種設定値、スタック領域の最大アドレス値などが記憶される。
【００３３】
ＲＡＭ１２４は、マイコン１２２の作業用記憶領域として用いられる。
【００３４】
オペレーションパネル１２５は、操作キー、状態表示装置などを含み、電源１２９のオン／オフ、エラー発生時のリセット操作などを行うとともに、装置の状態などを表示する。
【００３５】
ドライバ１２６は、マイコン１２２から供給される印字データに基づいて印刷機構１２７を駆動するための駆動信号を生成し、印刷機構１２７に供給する。
【００３６】
印刷機構１２７は、ドライバ１２６から供給される駆動信号に応じて各部を駆動し、記録媒体に印刷を行う機構であり、例えば、サーマルヘッド１３１、紙送り機構１３２、センサ１３３などを含む構成とされている。
【００３７】
サーマルヘッド１３１は、多数の発熱体がライン状に配列された構成されており、印刷イメージに応じて電流が供給され、発熱する。紙送り機構１３２は、ステッピングモータなどを含み、印刷用紙を移動させる。
【００３８】
センサ１３３は、サーマルヘッド１３１の温度を検出する温度センサ、印刷用紙が無いことを検出するセンサ、サーマルヘッド１３１、紙送り機構１３２などをカバーするカバー部材がオープン状態であることを検出するセンサなどを含み、検出結果をアナログデジタル変換回路１２８に供給する。
【００３９】
アナログデジタル変換回路１２８は、センサ１３３で検出された各種検出信号をデジタルデータに変換して、マイコン１２２に供給する。マイコン１２２は、アナログデジタル変換回路１２８からのデータに応じて印刷装置１０２の状態を検出して、例えば、正常状態であれば印刷を許可し、エラー状態であれば印刷を禁止するとともに、オペレーションパネル１２５などに印刷装置１０２の状態を表示する。
【００４０】
電源１２９は、バッテリ、電源回路などを含み、印刷装置１０２の内部回路に電源を供給する。
【００４１】
次に、印刷装置１０２のメモリマップ構造を説明する。
【００４２】
図４は印刷装置１０２のメモリマップ構造を説明するための図を示す。
【００４３】
印刷装置１０２は、インタフェース回路１２１の内蔵メモリ、マイコン１２２の内蔵ＲＡＭ１４１、フラッシュＲＯＭ１２３、ＲＡＭ１２４に通してアドレス「0000 0000」〜「FFFF FFFF」が設定されている。例えば、アドレス「0000 0000」〜「0000 0400」及びアドレス「0000 0400」〜「0000 0FFF」には、インタフェース回路１２１、マイコン１２２などに搭載されたＩ／Ｏ用メモリのアドレスが設定されている。
【００４４】
また、アドレス「0000 0800」〜「0000 09FF」及びアドレス「0000 1800」〜「0000 FFFF」は、アクセス禁止アドレスとされている。なお、アドレス「0001 0000」〜「FFFF FFFF」は、フラッシュＲＯＭ１２３、ＲＡＭ１２４などの外部記憶装置のアドレスとして設定されている。
【００４５】
さらに、アドレス「0000 1000」〜「0000 17FF」がマイコン１２２の内蔵ＲＡＭ１４１のアドレスとして設定されている。
【００４６】
また、マイコン１２２の内蔵ＲＡＭ１４１には、スタック領域Ａsが設けられている。スタック領域Ａsには、例えば、プログラム実行時に割込処理やサブルーチン分岐処理などによって、発生する戻りアドレスやレジスタ内容などを一時退避させる領域である。スタック領域Ａsは、電源投入時に「０」にクリアされ、データはアドレスの下位の側から上位の側に順次に積み上げられて格納される。
【００４７】
よって、スタック領域Ａsの「０」でない領域をチェックすることにより、スタック領域Ａｓの使用範囲を検出することができる。
【００４８】
次に印刷装置１０２での処理について説明する。
【００４９】
図５は印刷装置１０２の処理フローチャートを示す。
【００５０】
マイコン１２２は、ステップＳ１−１でオペレーションパネル１２５の操作により電源オンが指示されると、ステップＳ１−２で初期化処理が実行される。初期化処理では、スタック領域の使用アドレスを「0000 0000H」にクリアする。
【００５１】
次に、マイコン１２２は、ステップＳ１−３でリセット要求が有ったか否かを判定し、ステップＳ１−３でリセット要求がなければ、ステップＳ１−４で状態検出割込処理を実行する。
【００５２】
状態検出割込処理は、印刷装置１０２の状態が変化したかどうかを検出する処理であり、印刷装置１０２の状態に変化がある場合には、上位装置１０１に検出した印刷装置１０２の状態を通知する処理を行う。
【００５３】
マイコン１２２は、ステップＳ１−５で状態検出割込処理の結果、印刷装置１０２がエラー状態か否かを判定する。マイコン１２２は、ステップＳ１−５で印刷装置１０２がエラー状態であれば、ステップＳ１−３に戻って、リセット要求などを待つ。
【００５４】
また、マイコン１２２は、ステップＳ１−５で印刷装置１０２がエラー状態であれば、ステップＳ１−６で受信データがあるか否かを判定する。
【００５５】
マイコン１２２は、ステップＳ１−６で受信データがなければ、ステップＳ１−３に戻って処理を行う。また、ステップＳ１−６で受信データがあれば、ステップＳ１−７で受信データを解析する。
【００５６】
マイコン１２２は、ステップＳ１−８で受信データが印字データであれば、ステップＳ１−９で印字起動処理を実行し、受信した印字データに基づいて印字を可能とする。
【００５７】
ここで、ステップＳ１−４の状態検出割込処理について説明する。
【００５８】
図６は状態検出割込処理の処理フローチャートを示す。
【００５９】
マイコン１２２は、状態検出割込処理によりタスクが発生すると、ステップＳ２−１でタスク数をカウントするタスクカウンタの値を「＋１」する。次に、マイコン１２２は、ステップＳ２−２でスタック領域Ａsの最上位アドレスをチェックする最上位アドレスチェックタスクか否かを判定する。なお、最上位アドレスチェックタスクは、例えば、定期的に発行される。
【００６０】
マイコン１２２は、ステップＳ２−２でタスクがスタック領域Ａsの最上位アドレスチェックタスクであれば、ステップＳ２−３で最上位アドレスが「０」か否かを判定する。マイコン１２２は、ステップＳ２−３で最上位アドレスが「０」でなければ、現在の最上アドレスを最上位アドレスとして設定する。
【００６１】
マイコン１２２は、ステップＳ２−５で設定されている最上位アドレスに格納されているデータのうち４バイトを参照し、全てが「０」であるか否かを判定する。このとき、１バイト参照では、データが格納されているにもかかわらず全て「０」となる可能性があるので、４バイト参照とした。
【００６２】
マイコン１２２は、ステップＳ２−５で最上位アドレスのデータの４バイトが「０」でなければ、前回の最上位アドレスより上位のアドレスまで使用されたと判断し、ステップＳ２−４で最上位アドレスを更新する。ステップＳ２−６の新最上位アドレス設定では、前回設定されていた最上位アドレスの上位のアドレスのデータのうち４バイトのデータ全てが「０」となるアドレスを検出し、フラッシュＲＯＭ１２３の最上位アドレス格納領域に格納されるべき最上位アドレスとして設定する。
【００６３】
なお、マイコン１２２は、ステップＳ２−２で発行されたタスクが最上位アドレスチェックタスクではない場合、ステップＳ２−７で発行されたタスクが電源スイッチの状態を監視する電源スイッチ監視タスクか否かを判定する。
【００６４】
マイコン１２２は、ステップＳ２−７で電源スイッチ監視タスクを検出すると、ステップＳ２−８でオペレーションパネル１２５に設けられた電源スイッチが押下された状態か否かを判定する。マイコン１２２は、ステップＳ２−８で電源スイッチが押下された状態の場合には、ステップＳ２−９で、そのとき、マイコン１２２に設定されている最上位アドレスをフラッシュＲＯＭ１２３の最上位アドレス格納領域に格納する。
【００６５】
マイコン１２２は、ステップＳ２−９で最新の最上位アドレスをフラッシュＲＯＭ１２３の最上位アドレス格納領域に格納した後、ステップＳ２−１０で電源オフを行う。
【００６６】
なお、マイコン１２２は、ステップＳ２−７でタスクが電源スイッチ監視タスクでない場合には、ステップＳ２−１１でタスクカウンタに応じたエラーチェックを実行する。
【００６７】
なお、フラッシュＲＯＭ１２３の最上位アドレス格納領域に格納された最上位アドレスは、インタフェース回路１２１を通じて供給される外部コマンドにより読み出すことができる。これによって、容易に、最上位アドレスを確認できる。
【００６８】
ここで、フラッシュＲＯＭ１２３の最上位アドレス格納領域について説明する。
【００６９】
図７はフラッシュＲＯＭ１２３の最上位アドレス格納領域の保存動作を説明するための図を示す。
【００７０】
フラッシュＲＯＭ１２３には、最上位アドレス格納領域が設定されており、最上位アドレス格納領域には、最上位アドレスADD0、ADD1〜最新最上位アドレスADDnが順次に格納される。なお、未使用領域のデータは全て「FF」とされる。
【００７１】
よって、最新最上位アドレスをフラッシュＲＯＭ１２３の最上位アドレス格納領域に格納する場合には、フラッシュＲＯＭ１２３の最上位アドレス格納領域の先頭アドレスから４バイト「FF」、すなわち、「FFFFFFFF」となる領域を検出し、そこに最新の最上位アドレスを格納する。
【００７２】
また、マイコン１２２の内蔵ＲＡＭ１４１にフラッシュＲＯＭ１２３の最上位アドレス格納領域から最上位アドレスを読み出す際には、同様にフラッシュＲＯＭ１２３の最上位アドレス格納領域の先頭アドレスから４バイト「FF」、すなわち、「FFFFFFFF」となる領域を検出し、その直前の最上位アドレスを読み出し、マイコン１２２の内蔵ＲＡＭ１４１に読み出す。
【００７３】
このように、最上位アドレスをフラッシュＲＯＭ１２３の最上位アドレス格納領域に格納することによりログをとることによって最上位アドレスの推移を知ることができ、最適なスタック領域の容量をより正確に求めることができる。
【００７４】
次に、データ解析処理の動作を説明する。
【００７５】
図８はデータ解析処理の処理フローチャートを示す。
【００７６】
マイコン１２２は、ステップＳ３−１で受信したデータを解析し、ステップＳ３−２で受信したデータが最上位アドレス通知コマンドか否かを判定する。マイコン１２２は、ステップＳ３−２で受信したデータが最上位アドレス通知コマンドであると判定された場合には、ステップＳ３−３で、最上位アドレス通知コマンドにおいて最上位アドレス通知処理が要求されているか否かを判定する。
【００７７】
マイコン１２２は、ステップＳ３−３で最上位アドレス通知処理が要求されている場合には、ステップＳ３−５で最上位アドレス通知処理を実行する。最上位アドレス通知処理は、例えば、フラッシュＲＯＭ１２３の最上位アドレス格納領域に格納された最上位アドレスを、最上位アドレス通知コマンドを発行した上位装置１０１に通知する処理である。なお、最上位アドレス通知処理では、フラッシュＲＯＭ１２３の最上位アドレス格納領域に格納された最上位アドレスを印刷装置１０１の印刷機能を利用して、用紙に印刷して出力するようにしてもよい。なお、印刷は、ステップＳ１−９の印刷起動処理にて実行される。
【００７８】
また、マイコン１２２は、ステップＳ３−３で最上位アドレス通知処理が要求されていないと判断すると、ステップＳ３−４で指定範囲アドレスデータ通知処理を実行する。指定範囲アドレスデータ通知処理は、指定範囲分のアドレス、例えば、スタック領域Ａsの全データ内容を、最上位アドレス通知コマンドを発行した上位装置１０１に通知する処理である。なお、データ内容は、例えば、未使用状態で「０」、使用状態で「０」以外の情報を印刷するようにする。
【００７９】
さらに、指定範囲分のアドレス、例えば、スタック領域Ａsの全データ内容を印刷装置１０１の印刷機能を利用して、用紙に印刷して出力するようにしてもよい。なお、印刷は、ステップＳ１−９の印刷起動処理にて実行される。
【００８０】
なお、マイコン１２２は、ステップＳ３−２で受信コマンドが最上位アドレス通知コマンドでない場合には、ステップＳ３−６で受信したコマンドの内容に応じた処理を実行する。
【００８１】
以上により、外部コマンドによって最上位アドレスなどを容易に知ることが可能となる。
【００８２】
本実施例によれば、フラッシュＲＯＭ１２３に記憶されたスタック領域Ａsの最上位アドレスを参照することにより、スタック領域Ａsとして使用した容量を認識でき、スタック領域Ａsの容量が大きすぎれば、その容量を小さく設定し、小さければ、その容量を大きく設定することができ、スタック領域Ａsを不要に大きく設定する必要がなくなり、スタック領域Ａsの容量を最適化することができる。
【００８３】
なお、本実施例では、スタック領域Ａsで使用された容量をユーザに知らせ、ユーザにより設定を行うようにしたが、スタック領域Ａsで使用された容量に基づいてスタック領域Ａsの容量を最適値に自動設定するようにしてもよい。
【００８４】
図９は印刷装置１０２の変形例の処理フローチャートを示す。同図中、図５と同一処理ステップには同一符号を付し、その説明は省略する。
【００８５】
本変形例では、マイコン１２２は、ステップＳ１−３でリセット要求がない場合に、ステップＳ４−１で電源オフ要求の有無を判定する。
【００８６】
マイコン１２２は、ステップＳ４−１で電源オフ要求があると、ステップＳ４−２で最上位アドレスが更新されているか否かを判定する。マイコン１２２は、ステップＳ４−２で最上位アドレスが更新されていれば、ステップＳ４−３でスタック領域再設定処理を実行する。
【００８７】
スタック領域再設定処理は、例えば、スタック領域のうち使用している容量に、その半分の容量を加算した容量を新たなスタック領域の容量とする。使用している容量は、最上位アドレスから検出することができる。
【００８８】
なお、マイコン１２２は、ステップＳ４−１で電源オフ要求がなければ、ステップＳ１−４で状態検出割込処理を実行する。
【００８９】
本変形例によれば、スタック領域Ａsの容量を検出された最上位アドレスに基づいて最適値に設定できるため、マイコン１２２の内蔵ＲＡＭ１４１を有効に使用することができる。
【００９０】
なお、本発明は上記実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形例が考えられることは言うまでもない。
【図面の簡単な説明】
【００９１】
【図１】本発明の一実施例のシステム構成図である。
【図２】上位装置１０１のブロック構成図である。
【図３】印刷装置１０２のブロック構成図である。
【図４】印刷装置１０２のメモリマップ構造を説明するための図である。
【図５】印刷装置１０２の処理フローチャートである。
【図６】状態検出割込処理の処理フローチャートである。
【図７】フラッシュＲＯＭ１２３の最上位アドレス格納領域の保存動作を説明するための図である。
【図８】データ解析処理の処理フローチャートである。
【図９】印刷装置１０２の変形例の処理フローチャートである。
【符号の説明】
【００９２】
１００  情報処理システム
１０１  上位装置、１０２  印刷装置
１１１  ＣＰＵ、１１２  記録装置、１１３  メモリ、１１４  インタフェース回路
１１５  入力装置、１１６  表示装置
１２１  インタフェース回路、１２２  マイコン、１２３  フラッシュＲＯＭ
１２４  ＲＡＭ、１２５  オペレーションパネル、１２６  ドライバ、１２７  印刷機構１２８  アナログデジタル変換回路、１２９  電源
【図１】
0005361153.tif 000002
【図２】
0005361153.tif 000003
【図３】
0005361153.tif 000004
【図４】
0005361153.tif 000005
【図５】
0005361153.tif 000006
【図６】
0005361153.tif 000007
【図７】
0005361153.tif 000008
【図８】
0005361153.tif 000009
【図９】
0005361153.tif 000010