(57)【要約】【課題】プロセッサが所定の制御プログラムを実行することによって動作制御される電子機器において、汎用性の高い制御系を構築することのできる技術を提供する。【解決手段】電子機器１の電源が投入されると、ＣＰＵコア１０１はブートＲＯＭ１０３に記憶されたブートプログラムを実行する。ブートプログラムにより、フラッシュＲＯＭ１１２に記憶されたＲＡＭコントローラ１０４を初期化するための初期化プログラムがＳＲＡＭ１０２に転送され実行される。これによりＲＡＭコントローラ１０４がＳＤＲＡＭ１１１の種類やサイズに適合するように初期化されてＳＤＲＡＭ１１１へのアクセスが可能な状態となる。以後、圧縮データとしてフラッシュＲＯＭ１１２に記憶された制御プログラムが伸長されてＳＤＲＡＭ１１１上に復元され、復元された制御プログラムが実行されることで通常動作状態となる。【選択図】図１
2009237666.tif 000002
【特許請求の範囲】
【請求項１】
電子機器を動作させるための制御プログラムを実行するプロセッサと、
前記プロセッサのシステムバスに直接接続された第１ＲＡＭと、
ＲＡＭコントローラを介して前記システムバスに接続された第２ＲＡＭと、
前記システムバスに接続されて、前記制御プログラムと、前記ＲＡＭコントローラを前記第２ＲＡＭに対応させて初期化するためのＲＡＭコントローラ設定用データとを書き込まれたデータ保持手段と
を備え、
前記プロセッサは、前記データ保持手段から前記ＲＡＭコントローラ設定用データを前記第１ＲＡＭに転送し該データに基づき前記ＲＡＭコントローラを初期化した後に、前記データ保持手段から前記制御プログラムを読み出して前記第２のＲＡＭに転送し、該第２ＲＡＭ上の前記制御プログラムを実行開始する起動処理を実行する
ことを特徴とする電子機器。
【請求項２】
前記データ保持手段には、前記ＲＡＭコントローラを初期化するための初期化プログラムが前記ＲＡＭコントローラ設定用データとして書き込まれており、前記プロセッサは、前記第１ＲＡＭに転送した前記初期化プログラムを実行することで前記ＲＡＭコントローラを初期化する請求項１に記載の電子機器。
【請求項３】
前記データ保持手段には、前記制御プログラムを圧縮してなる圧縮データと、当該圧縮データを伸長して制御プログラムを復元するための伸長プログラムとが書き込まれており、前記プロセッサは、前記伸長プログラムを実行することによって、前記第２ＲＡＭ上に前記制御プログラムを復元する請求項１または２に記載の電子機器。
【請求項４】
前記プロセッサは、前記データ保持手段から読み出した前記伸長プログラムを前記第１ＲＡＭに転送し該第１ＲＡＭ上で実行する請求項３に記載の電子機器。
【請求項５】
前記プロセッサは、前記データ保持手段から読み出した前記伸長プログラムを前記第２ＲＡＭに転送し該第２ＲＡＭ上で実行する請求項３に記載の電子機器。
【請求項６】
前記制御プログラムには、割り込み要求に対応して実行される割り込み処理プログラムが含まれる一方、前記データ保持手段には、前記第２ＲＡＭ上における前記割り込み処理プログラムの格納位置を示す位置情報が書き込まれており、
前記プロセッサは、前記データ保持手段から前記位置情報を読み出して前記第１ＲＡＭに記憶させておき、前記割り込み要求を受け付けると前記第１ＲＡＭに記憶された前記位置情報により特定される前記第２ＲＡＭ上の前記割り込み処理プログラムを実行する請求項１ないし５のいずれかに記載の電子機器。
【請求項７】
前記プロセッサおよび前記第１ＲＡＭが単一パッケージに実装されている請求項１ないし６のいずれかに記載の電子機器。
【請求項８】
前記データ保持手段は、前記プロセッサに前記起動処理を実行させるための起動処理プログラムを記憶した起動用ＲＯＭと、前記制御プログラムおよび前記ＲＡＭコントローラ設定用データを記憶した記憶媒体とを備える請求項１ないし６のいずれかに記載の電子機器。
【請求項９】
前記プロセッサ、前記第１ＲＡＭおよび前記起動用ＲＯＭが単一パッケージに実装されている請求項８に記載の電子機器。
【請求項１０】
前記記憶媒体がフラッシュメモリである請求項８または９に記載の電子機器。
【請求項１１】
前記第１ＲＡＭがＳＲＡＭである請求項１ないし１０のいずれかに記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プロセッサにより実行される制御プログラムによって動作制御される電子機器に関するものであり、特にその起動処理に関する。
【背景技術】
【０００２】
プロセッサが所定の制御プログラムを実行することによって動作制御される電子機器においては、プロセッサと、制御プログラムを予め書き込まれたデータ保持手段とを別デバイスとすることが広く行われている。こうすることで汎用のプロセッサを使用することができ、また制御プログラムの変更により同一のプロセッサに種々の動作を行わせることが可能となるからである。例えば特許文献１には、ＲＯＭ（読み出し専用メモリ）上に予め保存されたブートプログラムを、機器の電源投入時にＲＡＭ（書き換え可能なメモリ）に転送し実行するように構成された電子機器が開示されている。
【０００３】
【特許文献１】特開２００６−７２９８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、電子機器を動作させるための制御プログラムのサイズは大きいため、該プログラムを記憶すべきＲＡＭとしては記憶容量の大きなＤＲＡＭ（Dynamic RAM）やＳＤＲＡＭ（Synchronous Dynamic RAM）が一般的に用いられる。この種のメモリ素子についてはプロセッサのシステムバスに接続することができないため、ＤＲＡＭやＳＤＲＡＭはＲＡＭコントローラを介してプロセッサに接続されている。しかしながら、ＲＡＭコントローラについては、接続されるＲＡＭの種類や容量に適合させるための初期化を行わなければ、プロセッサとＲＡＭとの間でのデータのやり取りを開始することができない。つまり、上記従来技術では、ＲＡＭにプログラムを転送開始する前にＲＡＭコントローラの初期化を行わなければならない。
【０００５】
この問題に対応するため上記従来技術では、ＲＡＭコントローラを含む周辺回路を専用のＡＳＩＣ（Application Specific Integrated Circuit）に実装することによってＲＡＭコントローラの初期化を行っているが、このような構成とした場合、ＲＡＭコントローラの設定内容はＡＳＩＣの仕様によって予め決まっており固定的である。このため、使用するＲＡＭの種類や容量を変更したい場合にはＡＳＩＣも共に変更する必要が生じることとなり、装置コストを増大させるとともに、汎用性に欠ける制御システムとなっていた。
【０００６】
この発明は上記課題に鑑みなされたものであり、プロセッサが所定の制御プログラムを実行することによって動作制御される電子機器において、汎用性の高い制御系を構築することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明にかかる電子機器は、上記目的を達成するため、電子機器を動作させるための制御プログラムを実行するプロセッサと、前記プロセッサのシステムバスに直接接続された第１ＲＡＭと、ＲＡＭコントローラを介して前記システムバスに接続された第２ＲＡＭと、前記システムバスに接続されて、前記制御プログラムと、前記ＲＡＭコントローラを前記第２ＲＡＭに対応させて初期化するためのＲＡＭコントローラ設定用データとを書き込まれたデータ保持手段とを備え、前記プロセッサは、前記データ保持手段から前記ＲＡＭコントローラ設定用データを前記第１ＲＡＭに転送し該データに基づき前記ＲＡＭコントローラを初期化した後に、前記データ保持手段から前記制御プログラムを読み出して前記第２のＲＡＭに転送し、該第２ＲＡＭ上の前記制御プログラムを実行開始する起動処理を実行することを特徴としている。
【０００８】
このように構成された発明では、データ保持手段に予め書き込まれたＲＡＭコントローラ設定用データがプロセッサから直接アクセス可能な第１ＲＡＭに転送され、プロセッサが該ＲＡＭコントローラ設定用データに基づきＲＡＭコントローラを初期化する。これ以後はプロセッサがＲＡＭコントローラを介して第２ＲＡＭにアクセス可能となる。すなわち、データ保持手段から読み出された制御プログラムが第２ＲＡＭに転送されてプロセッサにより実行可能な状態となる。
【０００９】
このように、ＲＡＭコントローラの初期化に用いられるＲＡＭコントローラ設定用データをデータ保持手段に書き込んでおくことにより、第２ＲＡＭとして使用され得る種々の種類や容量の記憶素子に対して、該データを変更するのみで対応することが可能となる。このため、電子機器の制御系の汎用性を高めることができる。また、機器の起動時にＲＡＭコントローラ設定用をデータ保持手段から第１ＲＡＭに転送しているので、プロセッサから直接アクセス可能な第１ＲＡＭ上のＲＡＭコントローラ設定用データに基づきＲＡＭコントローラの初期化を行うことができる。このため、短時間でＲＡＭコントローラを初期化して第２ＲＡＭをアクセス可能な状態に移行させることができ、起動処理を短時間にて完了させることができる。
【００１０】
また、第１ＲＡＭとしては、プロセッサのシステムバスに直接接続可能なものが必要であり、この種の記憶素子は記憶容量に対して一般に高価であるが、本発明では上記したＲＡＭコントローラ設定用データを一時的に保存するためのデータ容量があれば足りるので第１ＲＡＭはごく小容量で済む。
【００１１】
この発明にかかる電子機器は、例えば、前記データ保持手段には、前記ＲＡＭコントローラを初期化するための初期化プログラムが前記ＲＡＭコントローラ設定用データとして書き込まれており、前記プロセッサは、前記第１ＲＡＭに転送した前記初期化プログラムを実行することで前記ＲＡＭコントローラを初期化するように構成されてもよい。
【００１２】
このような構成によれば、プロセッサのシステムバスに直接接続された第１ＲＡＭ上の初期化プログラムが実行されるので、ＲＡＭコントローラの初期化を短時間で行い早期に第２ＲＡＭをアクセス可能な状態に移行させることができる。
【００１３】
また、例えば、前記データ保持手段には、前記制御プログラムを圧縮してなる圧縮データと、当該圧縮データを展開して制御プログラムを復元するための展開プログラムとが書き込まれており、前記プロセッサは、前記展開プログラムを実行することによって、前記第２ＲＡＭ上に前記制御プログラムを復元するように構成されてもよい。
【００１４】
制御プログラムを圧縮することによってデータ保持手段における当該制御プログラムの容量を少なくすることができる。また、同じデータ保持手段に圧縮データを展開するための展開プログラムを一体的に書き込んでおくことにより、プログラムの圧縮に使用する圧縮方法を予め固定する必要がなく、任意の圧縮方法を適用することができる。このことによっても、制御系の汎用性をさらに高めることができる。
【００１５】
この場合において、前記プロセッサは、前記データ保持手段から読み出した前記伸長プログラムを前記第１ＲＡＭに転送し該第１ＲＡＭ上で実行する、または、前記伸長プログラムを前記第２ＲＡＭに転送し該第２ＲＡＭ上で実行するのが好ましい。こうすることにより、データ保持手段上で伸長プログラムを実行する場合に比べ圧縮データの伸長をより短時間で行うことができる。特に第１ＲＡＭ上で伸長プログラムを実行した場合、伸長処理を高速で行うことができる。また、第２ＲＡＭ上で伸長プログラムを実行した場合、伸長プログラムとして任意の長さのものを使用することができる。なお、ＲＡＭコントローラ設定用データについては非圧縮でデータ保持手段に書き込んでおくことが好ましい。というのは、ＲＡＭコントローラ設定用データのデータ量はさほど多くないため圧縮の効果が薄く、また非圧縮とすることで伸長工程を省きより短時間でＲＡＭコントローラを初期化することができるからである。
【００１６】
また、この発明にかかる電子機器においては、前記制御プログラムには、割り込み要求に対応して実行される割り込み処理プログラムが含まれる一方、前記データ保持手段には、前記第２ＲＡＭ上における前記割り込み処理プログラムの格納位置を示す位置情報が書き込まれており、前記プロセッサは、前記データ保持手段から前記位置情報を読み出して前記第１ＲＡＭに記憶させておき、前記割り込み要求を受け付けると前記第１ＲＡＭに記憶された前記位置情報により特定される前記第２ＲＡＭ上の前記割り込み処理プログラムを実行するように構成されてもよい。
【００１７】
第１ＲＡＭは起動処理に使用された後は任意の目的に使用可能であるが、特に上記のように構成した場合、割り込み要求に対応して多様な処理を実行することができる点で好ましい。種々の要因に起因する割り込みを受け付けるプロセッサは、割り込み要求が発生したとき、メモリ空間内においてその割り込み要因に応じて予め割り当てられたアドレスに記憶された命令を強制的に実行するように構成されている。言い換えれば、割り込み要求が発生したときに実行される処理プログラムの格納先は予め定められており固定的である。そこで、データ保持手段から読み出した位置情報を第１ＲＡＭに記憶させておき、割り込み要求を受け付けたときに第１ＲＡＭに記憶された位置情報により特定される第２ＲＡＭ上の割り込み処理プログラムを実行するようにしておけば、第２ＲＡＭの任意の位置に任意の長さで記憶された処理プログラムを割り込み処理として実行することが可能となる。
【００１８】
上記各発明において、前記プロセッサおよび前記第１ＲＡＭが単一パッケージに実装されてもよい。本発明においては、第１ＲＡＭはプロセッサのシステムバスに直接接続可能であることが必要である一方、大きなデータ容量は必要とされない。また、データ保持手段の容量やそのデータ内容、第２ＲＡＭの種類や容量によって第１ＲＡＭを変更する必要はない。そのため、第１ＲＡＭについては、制御系の汎用性を損なうことなくプロセッサと同一のパッケージに実装することが可能である。また、システムバスを介して直接接続されるプロセッサと第１ＲＡＭとの間は多数の信号線が必要であるが、これらを単一のパッケージ内に実装することで、これらを別パッケージとした場合と比べてパッケージ間を接続する信号線の数を削減することができるとともに、高い通信速度を確保することができる。
【００１９】
また、前記データ保持手段は、前記プロセッサに前記起動処理を実行させるための起動処理プログラムを記憶した起動用ＲＯＭと、前記制御プログラムおよび前記ＲＡＭコントローラ設定用データを記憶した記憶媒体とを備えるようにしてもよい。データ保持手段に記憶すべき制御プログラムの内容やそのデータサイズは、機器の仕様に応じて変更される必要がある。また、ＲＡＭコントローラ設定用データの内容も、使用する第２ＲＡＭに応じて変更される必要がある。一方、起動処理の内容自体は、これらが変更されたとしても変える必要はない。したがって、変更の必要のない起動処理プログラムについては、書き換えのできないＲＯＭに記憶させておいてもよい。
【００２０】
この場合において、前記プロセッサ、前記第１ＲＡＭおよび前記起動用ＲＯＭが単一パッケージに実装されてもよい。前記したように、これらの構成は当該電子機器の仕様が変更されても変更する必要がないため、これらを単一パッケージに実装してなるデバイスは種々の仕様の電子機器に応用可能な汎用性の高いものとなる。
【００２１】
また、前記制御プログラムおよび前記ＲＡＭコントローラ設定用データを記憶する前記記憶媒体としては、例えばフラッシュメモリを用いることができる。機器の仕様に応じて変更の必要な制御プログラムおよびＲＡＭコントローラ設定用データを記憶する記憶媒体をフラッシュＲＯＭとすることによって、これらのデータの書き換えを容易に行うことが可能となり、例えば出荷後の製品の仕様や性能をデータの書き換えにより事後的に向上させることが可能となる。
【００２２】
また、前記第１ＲＡＭがＳＲＡＭ（Static RAM）であってもよい。ＳＲＡＭは一般的に大容量のものが製品化されておらず大容量を必要とする場合には高コストとなるという問題があるが、プロセッサのシステムバスに直接接続することができプロセッサからの高速アクセスが可能である。一方、本発明では第１ＲＡＭにシステムバスへの直接接続および高速アクセスが求められるが大容量は必要とされない。したがって、本発明の第１ＲＡＭとしてはＳＲＡＭを好適に使用することができる。また起動時に必要なデータを高速アクセスが可能なＳＲＡＭに転送して用いることにより、起動処理に必要な処理時間を短縮し機器を短時間で起動することが可能となる。
【００２３】
また、第２ＲＡＭとしては、高速性よりは容量の大きさが求められるので、このような用途には例えばＤＲＡＭ（Dynamic RAM）を使用することができる。また、ＳＤＲＡＭ（Synchronous Dynamic RAM）を使用すればアクセス速度に関しても向上を図ることができる。
【発明を実施するための最良の形態】
【００２４】
図１は本発明にかかる電子機器の一実施形態を示すブロック図である。この電子機器１は、例えばプリンタやゲーム機など、プロセッサが予め定められた制御プログラムを実行することによって所定の機能を実現するものである。この電子機器１では、ＡＳＩＣ（Application Specific Integrated Circuit）１００が設けられている。該ＡＳＩＣ１００には、ＣＰＵコア１０１、ＳＲＡＭ（Static RAM）１０２、ブートＲＯＭ１０３、ＲＡＭコントローラ１０４およびシリアルメモリコントローラ１０５が設けられて、これらがシステムバス１０９を介して相互に接続されている。
【００２５】
ＣＰＵコア１０１は、制御プログラムを実行することで機器各部の動作を制御する。ＳＲＡＭ１０２は例えば１ｋバイト程度のデータ容量を有し、システムバス１０９を介してＣＰＵコア１０１に直接接続されている。ＣＰＵコア１０１には、ハードウェア割り込み要求信号として割り込み要求信号ＩＲＱ（Interrupt Request）およびこれよりも優先度が高くより迅速な割り込み対応が可能なＦＩＱ（Fast Interrupt Request）信号を受け付けるためのポートが設けられている。
【００２６】
ブートＲＯＭ１０３は例えば４ｋバイト程度のデータ容量を有しており、機器を起動させるために必要な最小限のデータが予め書き込まれている。データ内容およびその機能については後述する。
【００２７】
ＲＡＭコントローラ１０４は、ＡＳＩＣ１００の外部に設けられたＳＤＲＡＭ（Synchronous Dynamic RAM）１１１と接続されており、システムバス１０９を介したＣＰＵコア１０１とＳＤＲＡＭ１１１とのデータ通信を制御する。ＳＤＲＡＭ１１１は、当該電子機器の動作に必要な制御プログラムやデータを一時的に保持するメインメモリとして機能するものであり、実現すべき機能に応じて、例えば８Ｍないし３２Ｍバイト程度のデータ容量を有する。また、ＡＳＩＣ１００にはシリアル通信が可能なフラッシュＲＯＭ１１２が接続されており、シリアルメモリコントローラ１０５はシステムバス１０９を介したＣＰＵコア１０１とフラッシュＲＯＭ１１２とのデータ通信を制御する。
【００２８】
フラッシュＲＯＭ１１２には、当該電子機器１が所期の動作をするための制御プログラムが圧縮されて書き込まれている。また、後に詳述するが、フラッシュＲＯＭ１１２には、電源投入時に当該電子機器１を起動させ通常動作状態に移行させるために必要なプログラムやデータも書き込まれている。
【００２９】
さらに、システムバス１０９にはＡＳＩＣ１００の外部に設けられたＩ／Ｏインタフェース１１３が接続されており、このＩ／Ｏインタフェース１１３には当該電子機器の諸機能を実現するための機能ブロック１１４が接続されている。例えば、当該電子機器がプリンタであれば、画像を印刷するためのプリンタエンジン、ユーザからの指示入力を受け付けるための操作ボタン類や画像を表示するためのディスプレイ等が、この機能ブロック１１４に相当する。
【００３０】
この電子機器１では、当該機器の電源が投入されたり、必要に応じて設けられるリセットボタンが操作されたときには、ＣＰＵコア１０１が所定の起動処理を実行することにより、当該機器を通常動作が可能な状態に移行させる。上記したように、この電子機器１ではＣＰＵコア１０１が実行すべき制御プログラムが圧縮された状態でフラッシュＲＯＭ１１２に書き込まれており、起動処理では、フラッシュＲＯＭ１１２から読み出した圧縮データを伸長しＳＤＲＡＭ１１１上に実行可能な制御プログラムとして復元し、これを実行開始することにより機器を通常動作状態に移行させる。以下、この電子機器１における起動処理およびそれを短時間で行えるようにするための構成上の特徴について説明する。
【００３１】
図２はこの実施形態におけるメモリマップを示す図である。ＣＰＵコア１０１は上記したＳＲＡＭ１０２、ブートＲＯＭ１０３、ＳＤＲＡＭ１１１、フラッシュＲＯＭ１１２などの各周辺デバイスをメモリ空間の各領域に割り当てて、各周辺デバイスの制御を行っている。周辺デバイスのうち、ブートＲＯＭ１０３、ＳＲＡＭ１０２およびＳＤＲＡＭ１１１については、これらのメモリ上の各アドレスをメモリ空間上のアドレスと１対１で対応させている。こうすることにより、これらのメモリへの１アドレス単位でのアクセスが可能となり、当該電子機器１に種々の動作を行わせることが可能となる。
【００３２】
また、ブートＲＯＭ１０３はメモリ空間のうち最も若いアドレスに割り当てられている。そのため、機器の電源投入直後にはＣＰＵコア１０１はブートＲＯＭ１０３に書き込まれたプログラムを実行することになる。
【００３３】
また、フラッシュＲＯＭ１１２については、２バイトの仮想アドレスのみを割り当てている。これは、後述するように、フラッシュＲＯＭ１１２に書き込まれたデータは起動処理時等にシーケンシャルに読み出されるものであり細かいアドレス単位でのアドレス指定を要しないためである。こうすることでメモリ空間を有効に活用することができ、またＣＰＵコア１０１から見れば、フラッシュＲＯＭ１１２のデータ容量の大小によらず同一のアクセス方法によりフラッシュＲＯＭ１１２にアクセスすることが可能となる。
【００３４】
さらに、メモリ空間の一部は、図示しない割り込みコントローラ、シリアルメモリコントローラ１０５およびＲＡＭコントローラ１０４をそれぞれ制御するレジスタに割り当てられている。
【００３５】
図３はブートＲＯＭに書き込まれたデータの内容を示す図である。ブートＲＯＭ１０３には、ＣＰＵコア１０１に対する割り込み要求があったときにその要因に応じてプログラムの実行を移すべきアドレスを示す例外ベクタが書き込まれている。割り込みの要因としては前記したＩＲＱ、ＦＩＱなどのハードウェア割り込みのほか、制御プログラムから要求されるソフトウェア割り込みや動作エラーに起因する割り込みなどがあり、これらの要因ごとに個別に例外ベクタが設定される。以下では、これらの例外ベクタの集合体を符号Ｐ10により表す。
【００３６】
なお、この実施形態では、例外ベクタにより指定されるアドレスがＳＲＡＭ１０２に割り当てられたアドレスとなるようにする。したがって、何らかの要因によりＣＰＵコア１０１に割り込み要求が発生すると、ＣＰＵコア１０１は実行中のプログラムを中断し、割り込み要因に応じて例外ベクタにより指定されたＳＲＡＭ１０２上のアドレスへ実行を移すことになる。このようにする理由は後に説明する。
【００３７】
また、ブートＲＯＭ１０３には、機器の電源が投入された直後やリセットボタンが押された直後にＣＰＵコア１０１によって最初に実行されるブートプログラムが書き込まれている。ブートプログラムは以下の各プログラム：
・シリアルメモリコントローラ１０５を初期化してＣＰＵコア１０１とフラッシュＲＯＭ１１２との通信を可能化するためのプログラムＰ11；
・フラッシュＲＯＭ１１２上の所定アドレスを先頭アドレスとする一連のデータをフラッシュＲＯＭ１１２から読み出してＳＲＡＭ１０２に転送するためのプログラムＰ12；
・プログラムの実行をＳＲＡＭ１０３上の所定アドレスに移すためのプログラムＰ13；
・フラッシュＲＯＭ１１２上の所定アドレスを先頭アドレスとする一連のデータをフラッシュＲＯＭ１１２から読み出してＳＤＲＡＭ１１１に転送するためのプログラムＰ14；および
・プログラムの実行をＳＤＲＡＭ１１１上の所定アドレスに移すためのプログラムＰ15、
を含んでいる。
【００３８】
図４はフラッシュＲＯＭに書き込まれたデータの内容を示す図である。フラッシュＲＯＭ１１２には、図４に示すように割り込み呼び出しプログラムＰ20、メインプログラムＰ30およびＰ31が圧縮された状態で書き込まれる一方、起動プログラムＰ21ないしＰ24が非圧縮のまま書き込まれている。図４において、プログラムの符号に付した角括弧は、当該プログラムが圧縮されたデータを表す。例えば［Ｐ20］はプログラムＰ20を圧縮してなる圧縮データを表す。また、圧縮データとの区別のためにプログラムが非圧縮状態であることを特に示す必要がある場合には、当該プログラムを表す符号に丸括弧を付す。例えば（Ｐ21）は非圧縮のプログラムＰ21に対応するデータを表す。また、括弧を付さないプログラム符号も当該プログラムが非圧縮状態であることを表すものとする。以下の説明および図においても同じ表現を用いる。
【００３９】
割り込み呼び出しプログラムＰ20は、割り込み要因に対応して実行すべき処理ルーチンを記憶したＳＤＲＡＭ１１１上の所定アドレスにプログラムの実行を移すための一群のジャンプ命令から成っている。
【００４０】
また、起動プログラムは以下の各プログラム：
・ＲＡＭコントローラ１０４をメインメモリに適合させるべく初期化するための初期化プログラムＰ21；
・プログラムの実行をブートＲＯＭ１０３上の所定アドレスに移すためのプログラムＰ22；
・ＳＤＲＡＭ１１１上の圧縮データを伸長しＳＤＲＡＭ１１１上に展開するためのプログラムＰ23；
・プログラムの実行をＳＤＲＡＭ１１１上の所定アドレスに移すためのプログラムＰ24、
を含んでおり、これらのプログラムが非圧縮データとしてフラッシュＲＯＭ１１２に書き込まれている。
【００４１】
また、メインプログラムは以下の各プログラム：
・各種割り込み要因に対応して設けられ所定の割り込み処理を実行するための割り込み処理ルーチン群Ｐ30；
・当該電子機器１に所定の動作をさせるための通常動作ルーチンＰ31、
を含んでおり、これらのプログラムが圧縮データとしてフラッシュＲＯＭ１１２に書き込まれている。
【００４２】
図５はこの実施形態における起動処理の流れを示す図である。また、図６は各時刻における各ＲＡＭのデータ内容を示す図である。時刻Ｔ0において機器の電源が投入されまたはユーザによりリセットボタンが押されると、ＣＰＵコア１０１はメモリ空間において最も若いアドレスに書き込まれたプログラムを読み出し実行開始するように構成されている。この実施形態では、ブートＲＯＭ１０３に書き込まれたブートプログラムが実行開始される。
【００４３】
まずシリアルメモリコントローラ１０５を初期化するためのプログラムＰ11が実行され、これによりＣＰＵコア１０１はシリアルメモリコントローラ１０５を介したフラッシュＲＯＭ１１２からのデータ読み出しが可能な状態となる。続いてプログラムＰ11が実行され、これによりフラッシュＲＯＭ１１２に書き込まれている割り込み呼び出しプログラムＰ20と、起動プログラムのうちプログラムＰ21およびＰ22とが読み出されてＳＲＡＭ１０２上に転送される。この転送が実行された時刻Ｔ1においては、図６（ａ）に示すように、フラッシュＲＯＭ１１２に書き込まれていたプログラムＰ20、Ｐ21およびＰ22がＳＲＡＭ１０２に記憶されている。
【００４４】
続いてプログラムＰ13が実行されることにより、プログラムの実行はＳＲＡＭ１０２上に移される。より具体的には、プログラムＰ13ではＳＲＡＭ１０２上に転送されたプログラムＰ21の先頭アドレスが指定されており、そのためＳＲＡＭ１０２上のプログラムＰ21がＣＰＵコア１０１により読み出され実行される。プログラムＰ21が実行されることにより、ＲＡＭコントローラ１０４が初期化されて、これ以後はＲＡＭコントローラ１０４を介したＣＰＵコア１０１とＳＤＲＡＭ１１１との間のデータの受け渡しが可能な状態となる。
【００４５】
次いでＳＲＡＭ１０２上のプログラムＰ22が実行されることにより、プログラムの実行はブートＲＯＭ１０３上に移る。このとき指定されるブートＲＯＭ１０３上のアドレスは、プログラムＰ14の先頭アドレスである。そのため、続いてプログラムＰ14が実行される。
【００４６】
プログラムＰ14では、フラッシュＲＯＭ１１２上の所定アドレスから始まる一連のデータが読み出されてＳＤＲＡＭ１１１に転送される。ここでは、プログラムＰ23の先頭に対応するフラッシュＲＯＭ１１２上のアドレスを開始アドレスとすることにより、非圧縮のプログラム（Ｐ23）、（Ｐ24）および圧縮されたプログラム［Ｐ30］、［Ｐ31］がフラッシュＲＯＭ１１２からＳＤＲＡＭ１１１へ転送される。この時点Ｔ2ではプログラム［Ｐ30］および［Ｐ31］は圧縮されたデータのままである。すなわち、図６（ｂ）に示すように、時刻Ｔ2においては、ＳＤＲＡＭ１１１上には非圧縮のプログラム（Ｐ23）、（Ｐ24）と、圧縮されたプログラム［Ｐ30］、［Ｐ31］とが保存されている。一方、ＳＲＡＭ１０２の内容は時刻Ｔ1から変化していない。
【００４７】
続いてブートＲＯＭ１０３上のプログラムＰ15が実行されて、プログラムの実行はＳＤＲＡＭ１１１上の所定アドレス、具体的にはプログラムＰ23の先頭アドレスに移る。プログラムＰ23は非圧縮状態でＳＤＲＡＭ１１１上に書き込まれており、その内容は、ＳＤＲＡＭ１１１に転送された圧縮状態のプログラム［Ｐ30］および［Ｐ31］を伸長しＳＤＲＡＭ１１１に保存するというものである。したがって、プログラムＰ23を実行後の時刻Ｔ3においては、図６（ｃ）に示すように、復元されたプログラム（Ｐ30）、（Ｐ31）がＳＤＲＡＭ１１１に保存されていることになる。また、ＳＲＡＭ１０２は依然としてプログラムＰ20、Ｐ21およびＰ22が保存された状態となっている。
【００４８】
なお、図６（ｃ）では、伸長前の圧縮データ［Ｐ30］、［Ｐ31］がＳＤＲＡＭ１１１上に残存しているが、これらは復元されたプログラム（Ｐ30）、（Ｐ31）によって上書きされてもよく、また伸長後にＳＤＲＡＭ１１１上から削除されるようにしてもよい。また、復元されたプログラム（Ｐ30）、（Ｐ31）をＳＤＲＡＭ１１１のメモリ空間のどこに割り当てるかについても任意である。
【００４９】
こうしてＳＤＲＡＭ１１１上にメインプログラムＰ30、Ｐ31が展開されると、最後にプログラムＰ24が実行されてＳＤＲＡＭ１１１上の所定アドレス、具体的には通常動作ルーチンを記述したプログラムＰ31の先頭アドレスに実行が移されて当該電子機器１は通常動作状態に移行し、起動処理は完了する。
【００５０】
上記のように構成された本実施形態の電子機器では、以下のような作用効果を奏することができる。第１に、ＲＡＭコントローラの初期化が必要なメインメモリとは別に、ＣＰＵコア１０１から直接かつ高速のアクセスが可能で初期化の必要がないＳＲＡＭ１０２を設け、起動時にはＲＡＭコントローラ１０４を初期化するためのプログラムＰ21をＳＲＡＭ１０２上で実行するようにしているので、メインメモリであるＳＤＲＡＭ１１１を短時間で使用可能な状態に移行させることができ、起動処理に要する時間を短縮することができる。
【００５１】
ＳＲＡＭ１０２としては特に大容量を必要とせず、少なくともＲＡＭコントローラ１０４を初期化するためのプログラムＰ21を記憶することのできる容量があれば足りるので、装置のコスト上昇を抑えることができる。本実施形態の構成では、ＳＲＡＭ１０２のデータ容量としては１ｋバイト程度あれば足りる。
【００５２】
また、ＲＡＭコントローラ１０４を初期化するためのプログラムＰ21をＣＰＵコア１０１と同一パッケージのブートＲＯＭ１０３ではなく外付けのフラッシュＲＯＭ１１２に書き込んでおき、起動時にこれをＳＲＡＭ１０２に転送し実行するようにしているので、外付けメインメモリの種類や容量の変更に対しても、フラッシュＲＯＭ１１２内のプログラムＰ21を変更するのみで対応することができる。このため、メインメモリとして使用するデバイスの選択自由度が高くなり、システムの汎用性が高くなる。
【００５３】
また、メインプログラムをフラッシュＲＯＭ１１２に書き込んでいるので、必要に応じて事後的にメインプログラムを書き換えることが可能であり、機器の既存の機能のバージョンアップや新たな機能の追加などを行うことができる。
【００５４】
また、フラッシュＲＯＭ１１２にメインプログラムを圧縮データとして書き込むことによりＲＯＭのデータ容量を小さく抑える。さらに、該圧縮データを伸長しメインプログラムを伸長するための伸長プログラムＰ23についても同じフラッシュＲＯＭ１１２に書き込んでおき、起動時に該伸長プログラムＰ23を実行してメインプログラムを復元するようにしているので、フラッシュＲＯＭ１１２に書き込まれるプログラムの圧縮方法として任意のものを適用することが可能である。
【００５５】
また、ＳＲＡＭ１０２については、周辺デバイスや制御プログラムによっても何ら変更の必要がないので、ＣＰＵコア１０１と同一パッケージに組み込むことが可能である。システムバス１０９を介して直接接続されるＣＰＵコア１０１とＳＲＡＭ１０２との間は多数の信号線によって結ばれることになるが、これらを別パッケージとすればパッケージのピン数が多くなってしまう。そこで、これらを例えばＡＳＩＣとして同一パッケージに収めればパッケージのピン数を大幅に削減することができ、機器の小型化および低コスト化を図ることが可能となる。また同一パッケージ内でＣＰＵコア１０１とＳＲＡＭ１０２とを短い信号線で接続することにより、高速で安定した通信を行うことが可能となる。
【００５６】
また、この実施形態では、機器を動作させるためのプログラムをブートＲＯＭ１０３とフラッシュＲＯＭ１１２とに分けて記憶させている。すなわち、ブートＲＯＭ１０３には周辺デバイスの種類や当該電子機器の機能に応じて変更する必要のない最小限のブートプログラムを書き込む一方、変更の可能性があるデータは全てフラッシュＲＯＭ１１２に書き込んでいる。こうすることで、周辺デバイスや機能に関わらずＣＰＵコア１０１とブートＲＯＭ１０３との組み合わせを固定化することができ、これらを同一パッケージに組み込むことが可能となる。また、こうして組み合わされたＣＰＵコアとブートＲＯＭについては、様々な周辺デバイスおよび制御プログラムと組み合わせて種々の機能を実現するのに用いることができる。例えば、同一のＡＳＩＣを、周辺デバイスや制御プログラムの内容を変更するのみで全く別の機能を有する複数種の電子機器の間で共通使用することが可能となる。そのため、装置コストのさらなる低減を図ることができる。
【００５７】
また、ＲＡＭコントローラ１０４についても、外部のフラッシュＲＯＭ１１２に書き込まれた初期化用プログラムＰ21によって任意に初期化することができるため、ＣＰＵコア１０１と同一パッケージに収容することが可能である。この実施形態では、ＣＰＵコア１０１、ＳＲＡＭ１０２、ブートＲＯＭ１０３、ＲＡＭコントローラ１０４およびシリアルメモリコントローラ１０５をＡＳＩＣ１００として１パッケージ化することにより、装置の小型化および低コスト化を図っている。また、このように１パッケージ化されたＡＳＩＣ１００は、周辺デバイスや制御プログラムの変更に伴う変更が不要であり、種々の電子機器に組み込み可能な極めて汎用性の高い制御システムを構成している。
【００５８】
一方、機器の機能に応じて種類や容量が変更される可能性のあるメインメモリや、様々な制御プログラムを書き込まれる可能性のあるフラッシュＲＯＭについては、ＣＰＵコア１０１とは別パッケージとすることにより、ＣＰＵコア１０１と周辺デバイスとの組み合わせを容易に変更できるようにしている。
【００５９】
このように、この実施形態の制御系は、種々の周辺デバイスや制御プログラムと組み合わせることで様々な機能を実現することのできる極めて汎用性の高いものである。
【００６０】
なお、この実施形態で用いられるＳＲＡＭ１０２の機能を、ＣＰＵコアに付随的に設けられるキャッシュメモリで代用するという考え方もできる。しかしながら、キャッシュメモリは初期状態では物理アドレスが割り当てられておらず、ＣＰＵコア１０１により何らかのプログラムが実行され該プログラム内でアドレスが割り当てられることによって初めてメモリ空間内にマッピングされるものである。したがって、この実施形態におけるＳＲＡＭ１０２の機能をキャッシュメモリで代用するためには、ブートＲＯＭ上のプログラムでキャッシュメモリをマッピングするようにしなければならない。そして、ブートＲＯＭの内容自体は固定的であるため、マッピングも常に一定となり、結局このような方法は汎用性に欠けるものとなる。
【００６１】
次に、この実施形態における割り込み処理について説明する。例えばユーザの操作入力や電源電圧の変動など、何らかの割り込み要因に起因して割り込み要求信号が与えられると、ＣＰＵコア１０１は実行中の動作を一時的に中断して割り込み処理を実行する。具体的には、プログラムの実行が、割り込み要因に対応して定められたアドレスに強制的に移される。ジャンプ先のアドレスは例外ベクタとして予め決められているため、ジャンプ先のアドレスに割り込み処理ルーチンを直接記述した場合、処理の内容が固定的となってしまい汎用性に欠ける。そこで、この実施形態では、例外ベクタとしては書き換え可能なＳＲＡＭ１０２上のアドレスを予め指定しておき、指定されたＳＲＡＭ１０２上のアドレスにはＳＤＲＡＭ１１１上の割り込み処理ルーチンへジャンプする命令を書き込んでおく。こうすることにより、ＳＤＲＡＭ１１１上の任意の位置に任意の長さで記述された割り込み処理ルーチンを実行させることが可能となる。以下、図７および図８を参照して動作をより詳しく説明する。
【００６２】
図７は割り込み発生時の処理の流れを示す図である。また、図８は割り込み受け付け後のプログラムの読み出し元の遷移を示す概念図である。図７に示すように、ＳＤＲＡＭ１１１上の通常動作ルーチンＰ31の実行中の時刻Ｔ4に割り込み要求が発生した場合を考える。割り込み要求を受け付けると、ＣＰＵコア１０１は、割り込み要因に応じた例外ベクタを参照する。
【００６３】
この実施形態ではブートＲＯＭ１０３上に例外ベクタＰ10が割り当てられている。したがって、時刻Ｔ4において割り込み要求が発生すると、プログラムの実行はブートＲＯＭ１０３上の例外ベクタＰ10のうち当該割り込み要因に対応する１つを参照し、それにより指定されたアドレスに実行を移す。
【００６４】
例外ベクタＰ10においては、図８に示すように、例えば割り込み要因Ｘ1、Ｘ2、Ｘ3に対してはそれぞれＳＲＡＭ１０２上のアドレスＡ11、Ａ12、Ａ13が関連付けられている。これらのアドレスはいずれも、ＳＲＡＭ１０２上のプログラムＰ20が記憶された領域内に含まれる。その他の割り込み要因に対しても、それぞれＳＲＡＭ１０２上のプログラムＰ20内のアドレスが指定されている。そのため、プログラムの実行はブートＲＯＭ１０３上の例外ベクタＰ10を介してＳＲＡＭ１０２上のプログラムＰ20に移される。
【００６５】
プログラムＰ20には、割り込み要因に対応する割り込み処理ルーチンが保存されているＳＤＲＡＭ１１１上の所定アドレスに実行を移すためのジャンプ命令が、各割り込み要因のそれぞれに対応して記述されている。このため、最終的には当該割り込み要因に対応して記述されたＳＤＲＡＭ１１２上の割り込み処理ルーチンが実行されることになる。
【００６６】
例えば、割り込み要因Ｘ1に起因する割り込み要求が発生したとき、ＣＰＵコア１０１は、ブートＲＯＭ１０３上の例外ベクタＰ10を参照してＳＲＡＭ１０２上のアドレスＡ11にプログラムの実行を移す。当該アドレスＡ11にはＳＤＲＡＭ１１１上の割り込み処理ルーチンＰ30のうち当該割り込み要因Ｘ1に対応するものが記憶されたアドレスＡ21へのジャンプ命令が記述されているので、ＣＰＵコア１０１はＳＤＲＡＭ１１１上のアドレスＡ21から始まる、割り込み要因Ｘ1に対応する割り込み処理ルーチンを実行することになる。
【００６７】
同様に、割り込み要因Ｘ2に起因する割り込み要求が発生したとき、ブートＲＯＭ１０３上の例外ベクタからＳＲＡＭ１０２上のアドレスＡ12を介して、ＳＤＲＡＭ１１１上のアドレスＡ22から始まる要因Ｘ2に対応する割り込み処理ルーチンが実行される。また、割り込み要因Ｘ3に起因する割り込み要求が発生したときには、ブートＲＯＭ１０３上の例外ベクタにより指定されるＳＲＡＭ１０２上のアドレスＡ13を介して、ＳＤＲＡＭ１１１上のアドレスＡ23から始まる要因Ｘ3に対応する割り込み処理ルーチンが実行される。他の割り込み要因についても同様である。
【００６８】
このように、この実施形態では、ブートＲＯＭ１０３上の例外ベクタＰ10においてＳＲＡＭ１０２上のアドレスを指定する一方、指定されたＳＲＡＭ１０２上のアドレスにはＳＤＲＡＭ１１１上の割り込み処理ルーチンにジャンプする旨の命令を保存している。これにより、割り込み要求が発生した場合のプログラムの実行はブートＲＯＭ１０３、ＳＲＡＭ１０２、メインメモリＳＤＲＡＭ１１１の順に遷移することとなる。このようにすることで、次のような作用効果が得られる。
【００６９】
まず、各割り込み要因に対応させて、任意の長さの割り込み処理ルーチンを記述することができる。ブートＲＯＭ上の例外ベクタから直接ＳＤＲＡＭ上の割り込み処理ルーチンにジャンプするようにしようとすると、ＳＤＲＡＭ上の割り込み処理ルーチンの開始アドレスをブートＲＯＭに書き込んでおく必要がある。このようにすると、割り込み処理ルーチンの内容に応じてブートＲＯＭの内容を書き換える必要が生じたり、あるいは長大な割り込み処理ルーチンに対応するためにＳＤＲＡＭ上の記憶領域を予め割り込み処理ルーチン用として確保する必要があるなど、ハードウェア資源の効率的な使用という面からは好ましいものではない。
【００７０】
これに対して、本実施形態では、ＳＲＡＭ１０２上のアドレスを介してＳＤＲＡＭ１１１上の割り込み処理ルーチンにジャンプするので、上記のような問題は生じない。すなわち、ＳＤＲＡＭ１１１上の割り込み処理ルーチンのアドレスはＳＲＡＭ１０２上の所定アドレスに記憶されたデータにより特定されるので、ブートＲＯＭ１０３上の例外ベクタとしては割り込み処理ルーチンの内容に関係なくＳＲＡＭ１０２上の特定アドレスを固定的に指定しておけばよい。これによりブートＲＯＭ１０３の内容を割り込み処理ルーチンの内容に合わせて変更する必要がなくなる。また、ＳＲＡＭ１０２上のデータにより特定される割り込み処理ルーチンの開始アドレスは外部から（より具体的にはフラッシュＲＯＭ１１２に書き込まれたプログラムＰ20に基づいて）自由に設定可能である。このため、ＳＤＲＡＭ１１１上では各割り込み処理ルーチンを任意のアドレスから任意の長さで記述することが可能となり、ＳＤＲＡＭ１１１のメモリ資源を無駄にすることがない。
【００７１】
また、割り込み処理ルーチンへジャンプするための命令が高速アクセス可能なＳＲＡＭ１０２上に保存されているので、ＳＤＲＡＭ１１１上の割り込み処理ルーチンに素早く移行することができる。また、起動時に一時的に使用されるＳＲＡＭ１０２を通常動作時にも有効に活用することができる。
【００７２】
以上説明したように、この実施形態では、ＣＰＵコア１０１が本発明の「プロセッサ」として機能している。また、ＳＲＡＭ１０２およびＳＤＲＡＭ１１１がそれぞれ本発明の「第１ＲＡＭ」および「第２ＲＡＭ」として機能している。また、ブートＲＯＭ１０３およびフラッシュＲＯＭ１１２がそれぞれ本発明の「起動用ＲＯＭ」および「記憶媒体」として機能しており、これらが一体的に本発明の「データ保持手段」として機能している。
【００７３】
また、この実施形態では、ＲＡＭコントローラを初期化するためのプログラムＰ21が本発明の「ＲＡＭコントローラ設定用データ」および「初期化プログラム」に相当している。また、メインプログラムＰ30、Ｐ31が本発明の「制御プログラム」に相当しており、特にプログラムＰ30が本発明の「割り込み処理プログラム」に相当する。また、これらを圧縮したデータ［Ｐ30］、［Ｐ31］が本発明の「圧縮データ」に相当し、これを伸長するためのプログラムＰ23が本発明の「伸長プログラム」に相当する。また、割り込み呼び出しプログラムＰ20に含まれている、ＳＤＲＡＭ上での割り込み処理ルーチンの開始アドレスを示す情報が、本発明の「位置情報」に相当している。
【００７４】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記実施形態では、メインプログラムＰ30、Ｐ31を圧縮データとしてフラッシュＲＯＭ１１２に書き込んでいるが、非圧縮状態で制御プログラムをＲＯＭに書き込んでいる電子機器においても本発明は有効である。また、逆に本実施形態において非圧縮状態としているプログラムのいずれかを圧縮してＲＯＭに書き込むようにしてもよい。ただし、ＲＡＭコントローラ１０４を初期化するためのプログラムＰ23については、非圧縮とすることが好ましい。というのは、このようなプログラムは簡単で短いため圧縮の効果があまり得られず、また伸長せずに実行可能な状態で書き込んでおくことで、ＳＲＡＭへの転送後直ちに実行開始して短時間でＲＡＭコントローラ１０４の初期化を行うことが可能となるからである。
【００７５】
また、上記実施形態では、メインメモリとしてＳＤＲＡＭを、プログラムを記憶するデータ保持手段としてフラッシュＲＯＭを用いているがこれに限定されない。例えば、メインメモリとしてはＤＲＡＭや強誘電体メモリ等を用いることができる。また、データ保持手段としては、例えばハードディスクや光学ディスクであってもよい。またメモリカードのように機器本体から着脱可能な記憶媒体であってもよい。また、プログラムの書き換えが不要な機器であればマスクＲＯＭを用いてもよい。
【００７６】
また、上記実施形態では、フラッシュＲＯＭ１１２上の割り込み呼び出しプログラムＰ20と起動プログラムＰ21およびＰ22とを一度にＳＲＡＭ１０２に転送しているが、起動時には割り込み呼び出しプログラムＰ20が不要である一方、通常動作時には起動プログラムが不要であるので、これらを別のタイミングでＳＲＡＭ１０２に転送するようにしてもよい。例えば、起動時には起動プログラムのみをＳＲＡＭ１０２に転送して実行し、割り込み呼び出しプログラムＰ20については後でＳＲＡＭ１０２に転送するようにしてもよい。この場合、起動後はＳＲＡＭ１０２上の起動プログラムは不要であるので、割り込み呼び出しプログラムＰ20によって上書きしてもよい。
【００７７】
また、上記実施形態では、圧縮データを伸長するためのプログラムＰ23をＳＤＲＡＭ１１１上で実行するようにしているが、該プログラムをフラッシュＲＯＭからＳＲＡＭに転送しＳＲＡＭ上で実行するようにしてもよい。伸長プログラムをＳＲＡＭ上で実行すると伸長処理を高速で行うことができるが、伸長プログラムのサイズが大きくなる可能性がある場合にはＳＤＲＡＭ上で実行することが望ましい。また、プログラムの圧縮方法が固定されていても構わなければ、ブートＲＯＭ内に予め伸長プログラムを書き込んでおくようにしてもよい。
【００７８】
また、上記実施形態では、フラッシュＲＯＭ１１２に書き込まれた初期化プログラムＰ21をＳＲＡＭ１０２上で実行することによりＲＡＭコントローラ１０４の初期化を行っているが、これに代えて、例えば初期化プログラム自体はブートＲＯＭ１０３に予め書き込んでおくとともに初期化処理に必要な制御パラメータをフラッシュＲＯＭ１０３に書き込んでおき、起動時にはブートＲＯＭ１０３上で実行される初期化プログラムと、フラッシュＲＯＭ１１２からＳＲＡＭ１０２に転送された制御パラメータとによりＲＡＭコントローラ１０４の初期化を行うようにしてもよい。
【００７９】
さらに、本発明は、上記したプリンタに限らず、例えばゲーム機器やオーディオ・ビデオ機器など、プロセッサにより所定の制御プログラムを実行することで所期の機能を実現するように構成された電子機器全般に適用することが可能である。
【図面の簡単な説明】
【００８０】
【図１】本発明にかかる電子機器の一実施形態を示すブロック図。
【図２】この実施形態におけるメモリマップを示す図。
【図３】ブートＲＯＭに書き込まれたデータの内容を示す図。
【図４】フラッシュＲＯＭに書き込まれたデータの内容を示す図。
【図５】この実施形態における起動処理の流れを示す図。
【図６】各時刻における各ＲＡＭのデータ内容を示す図。
【図７】割り込み発生時の処理の流れを示す図。
【図８】割り込み受け付け後のプログラムの読み出し元の遷移を示す概念図。
【符号の説明】
【００８１】
１００…ＡＳＩＣ、  １０１…ＣＰＵコア（プロセッサ）、  １０２…ＳＲＡＭ（第１ＲＡＭ）、  １０３…ブートＲＯＭ（起動用ＲＯＭ、データ保持手段）、  １０４…ＲＡＭコントローラ、  １０９…システムバス、  １１１…ＳＤＲＡＭ（第２ＲＡＭ）、  １１２…フラッシュＲＯＭ（記憶媒体、データ保持手段）、  Ｐ21…初期化プログラム（ＲＡＭコントローラ設定用データ、初期化プログラム）、  Ｐ23…伸長プログラム、  Ｐ31…メインプログラム（制御プログラム）、  Ｐ30…割り込み処理プログラム、  ［Ｐ30］，［Ｐ31］…圧縮データ
【図１】
2009237666.tif 000003
【図２】
2009237666.tif 000004
【図３】
2009237666.tif 000005
【図４】
2009237666.tif 000006
【図５】
2009237666.tif 000007
【図６】
2009237666.tif 000008
【図７】
2009237666.tif 000009
【図８】
2009237666.tif 000010