ファームウェアに基づいて動作する電子機器であって、前記ファームウェアと、前記ファームウェアと前記ファームウェアより新しいバージョンのファームウェアとの差分データとを格納する不揮発性記憶手段と、前記不揮発性記憶手段に格納される前記ファームウェアを展開するためのメモリと、当該電子機器に電源投入又はリセットが行われた場合に、前記不揮発性記憶手段に格納されている前記ファームウェアを前記メモリに展開する展開手段と、前記差分データを用いて前記メモリに展開されているファームウェアを前記新しいバージョンのファームウェアに更新する第1更新手段と、前記第1更新手段により更新された前記メモリ上のファームウェアを実行する実行手段と、を有することを特徴とする電子機器。前記不揮発性記憶手段に、前記差分データが格納されていない場合、前記第1更新手段は前記ファームウェアの更新を行わず、前記実行手段は前記更新されていない前記メモリ上のファームウェアを実行することを特徴とする請求項1に記載の電子機器。前記差分データの誤り検出を行う誤り検出手段を有し、前記誤り検出手段により前記差分データの誤りが検出された場合、前記第1更新手段は前記ファームウェアの更新を行わず、前記実行手段は前記更新されていない前記メモリ上のファームウェアを実行することを特徴とする請求項1又は2に記載の電子機器。当該電子機器に装着された記憶装置、又は、通信媒体を介して当該電子機器と接続される装置から、前記新しいバージョンのファームウェアを取得する取得手段と、前記取得手段が取得した新しいバージョンのファームウェアと前記不揮発性記憶手段に格納された前記ファームウェアとの差分データを作成する作成手段と、前記作成手段が作成した差分データを前記不揮発性記憶手段に格納する第2更新手段と、を有することを特徴とする請求項1乃至3のいずれか1項に記載の電子機器。当該電子機器に装着された記憶装置、又は、通信媒体を介して当該電子機器と接続される装置から、前記差分データを取得する取得手段と、前記取得手段が取得した差分データを前記不揮発性記憶手段に格納する第2更新手段と、を有することを特徴とする請求項1乃至3のいずれか1項に記載の電子機器。前記第2更新手段は、前記不揮発性記憶手段の前記差分データを格納すべき領域に前記差分データを格納可能な空き領域がない場合、又は、前記差分データのサイズが所定のサイズを超える場合、前記不揮発性記憶手段に格納される前記ファームウェアを前記新しいバージョンのファームウェアに更新することを特徴とする請求項4又は5に記載の電子機器。当該電子機器に電源投入又はリセットが行われた際に、特定のキー入力がされた場合、前記第1更新手段は前記ファームウェアの更新を行わず、前記実行手段は前記更新されていない前記メモリ上のファームウェアを実行することを特徴とする請求項1に記載の電子機器。ファームウェアを格納する不揮発性記憶手段と前記ファームウェアを展開するためのメモリを有する電子機器の制御方法であって、前記電子機器に電源投入又はリセットが行われた場合に、前記電子機器のプロセッサが、前記不揮発性記憶手段に格納されるファームウェアを前記メモリに展開する展開ステップと、前記不揮発性記憶手段に前記ファームウェアと前記ファームウェアより新しいバージョンのファームウェアとの差分データが格納されている場合、前記プロセッサが、該差分データを用いて、前記メモリに展開されているファームウェアを前記新しいバージョンのファームウェアに更新する更新ステップと、前記プロセッサが、前記更新された前記メモリ上のファームウェアを実行する実行ステップと、を有することを特徴とする電子機器の制御方法。コンピュータを、請求項1乃至7のいずれかに記載の電子機器の各手段として機能させるためのプログラム。しかしながら、上記従来のシステムでは、アプリケーションプログラムやOSイメージの格納領域を複数確保するためユーザが使用可能となる記憶領域が少なくなってしまうケースや、OSイメージをアップデートする場合は、OSイメージのサイズからアップデート時間が多大にかかってしまうという課題があった。本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、ファームウェアのアップデート中に何らかの障害でファームウェアのアップデートが異常終了してしまった場合でも、アップデート前のファームウェアで装置を起動可能にすること、また、ファームウェアの格納領域を複数確保するといった冗長な構成をとることなくユーザが使用可能な記憶領域を十分に確保すること、さらに、ファームウェアのアップデート時間を最小限に抑えることができる利便性の高いファームウェアのアップデート方法を提供することである。本発明は、ファームウェアに基づいて動作する電子機器であって、前記ファームウェアと、前記ファームウェアと前記ファームウェアより新しいバージョンのファームウェアとの差分データとを格納する不揮発性記憶手段と、前記不揮発性記憶手段に格納される前記ファームウェアを展開するためのメモリと、当該電子機器に電源投入又はリセットが行われた場合に、前記不揮発性記憶手段に格納されている前記ファームウェアを前記メモリに展開する展開手段と、前記差分データを用いて前記メモリに展開されているファームウェアを前記新しいバージョンのファームウェアに更新する第1更新手段と、前記第1更新手段により更新された前記メモリ上のファームウェアを実行する実行手段と、を有することを特徴とする。本発明によれば、ファームウェアのアップデート中に何らかの障害が発生してファームウェアのアップデートが異常終了してしまった場合でも、電子機器が起動しなくなってしまうという最悪の事態を回避する可能性を高めることができる。また、ファームウェアのアップデート時間を最小限に抑えることができる。以下、図面を参照して発明を実施するための形態について説明する。図1は、本発明の一実施例を示す電子機器構成の一例を示すブロック図である。図1において、1は電子機器、例えばハンディターミナルである。2はCPUプロセッサである。3はFROMフラッシュメモリであり、詳細は後述するが電子機器1の動作を制御するファームウェア及び演算データなどを格納するための不揮発性記憶部である。4はRAMであり、ファームウェアや演算データの一時記憶用に使用されるためのものである。CPU2は、FROM3に格納されるファームウェアをRAM4に展開して実行することにより、電子機器1の動作を制御する。5はASICApplicationSpecificIntegratedCircuitであり、図示省略した周辺モジュールとCPU2との仲介を行う。6は操作部で、キーおよびタッチパネル等を有する。7は表示部であり、LCD、バックライト、LED等を有する。8は赤外線通信部であり、他の電子機器やオプション機器等と赤外線通信を行う。9は無線通信部であり、Bluetoothと無線LANモジュール等を有する。10はカードスロット部であり、副記憶装置として使用するためのコンパクトフラッシュ登録商標やSDカード等のメモリカードを装着してデータを読み書きするためのインタフェースである。電子機器1に接続可能な副記憶装置はメモリカードに限定されるものではない。例えば、電子機器1にUSBインタフェース等の外部インタフェースを設けて、外部インタフェースにUSBメモリやその他の記憶装置を接続する構成であってもよい。電子機器1ハンディターミナルは、例えば、主に電気や水道などの検針業務、工場や倉庫などの在庫管理に用いられているが、電子機器1の主機能については本発明に直接関係していないため説明を省略する。なお、電子機器1は、ハンディターミナルに限定されるものではなく、例えば、スキャナ装置、DVD機器、ICレコーダ、携帯音楽プレーヤー、携帯端末装置携帯電話やスマートフォンも含む等、組み込み機器であればどのような電子機器であってもよい。図2は、図1に示したFROM3のメモリマップを示す図である。図2において、51はマスタブートレコードであり、電子機器1の電源がオンしたときに最初に実行されるプログラムコードいわゆるブートローダが格納されている。53はファームウェア格納領域であり、ファームウェアとして電子機器1の制御プログラム以下、ファームウェアというが格納されている。ファームウェアは、ブートローダによってRAM4に展開されCPU2により実行される。ファームウェアは、例えば、オペレーティングシステムOS等のメインプログラムや、アプリケーションプログラム等の電子機器1を動作させるための各種プログラムを含む。なお、電子機器1がシンクライアント端末である場合、ファームウェアにはシンクライアントとして機能するのに必要最小限のプログラムが含まれることとなる。52はアップデートデータ格納領域であり、ファームウェア格納領域53に格納されたファームウェアとアップデートされたバージョンのファームウェアファームウェア格納領域53に格納されたファームウェアより新しいバージョンのファームウェアとの差分データであるアップデートデータが格納されている。54はファイルシステム領域であり、ユーザが自由に使用できるディスク領域となっている。その他の領域については予約領域となっており、ユーザが直接アクセスできない領域やログ情報などが格納されている。なお、アップデートデータ格納領域52に格納されるアップデートデータ差分データは、ID情報、データ長、データ、及び誤り訂正符号を含む。ID情報により、アップデートデータの有無を判断できる。また、データ長、データ、及び誤り訂正符号により、データが正常に書き込まれているか否かを確認できる。図3は、本発明の電子機器におけるファームウェアのブートロード処理手順の一例を示すフローチャートである。このフローチャートの処理は、CPU2がFROM3のマスタブートレコード51に格納されるブートローダを実行することにより実現される。電子機器1の電源がオンされると、CPU2は、FROM3のマスタブートレコード51に格納されるブートローダをCPU2の内蔵RAM不図示にロードし、該内蔵RAMにロードしたブートローダを実行する。これによりブートローダに制御が遷移する。以下、CPU2がブートローダを実行することにより実行される処理をブートローダが実行するのように、ブートローダを主語として記載する。ブートローダは、RAM4などの初期設定を行った後に、ブートロード処理S100を開始する。S101において、ブートローダは、ファームウェア格納領域53に格納されているファームウェアを読み込み、RAM4にロード展開する。次に、S102において、ブートローダは、上記S101でRAM4にロードしたファームウェアデータのCRCチェックを行う。次に、S103において、ブートローダは、上記S102で行ったファームウェアのCRCチェックでCRCエラーとなったか否かを判定する。そして、ファームウェアがCRCエラーとなったと判定した場合S103でYes、ブートローダは、エラーコードを表示部7に表示してS105、ブート処理を中止する。一方、ファームウェアがCRCエラーでなかったと判定した場合S103でNo、ブートローダは、S104に処理を進める。S104では、ブートローダは、アップデートデータ格納領域52にアップデートデータ差分データが格納されているか否か確認する。そして、アップデートデータ差分データが格納されていないと判定した場合S104でNo、ブートローダは、そのままRAM4上のファームウェアを起動しRAM4上のファームウェアをCPU2に実行させ、ファームウェアに制御を移すS109。これにより、メインプログラム等が起動され、メインプログラムの制御により電子機器1が使用可能になる。即ち、ファームウェアによる電子機器1の制御が開始される。一方、アップデートデータ差分データが格納されていると判定した場合S104でYes、ブートローダは、S106に処理を進める。S106では、ブートローダは、アップデートデータ格納領域52に格納されているアップデートデータ差分データを読み込み、RAM4上にロード展開し、該RAM4上にロードしたアップデートデータ差分データのCRCチェックを行う。次に、S107において、ブートローダは、上記S106で行った差分データのCRCチェックでCRCエラーとなったか否かを判定する。そして、差分データがCRCエラーとなったと判定した場合S107でYes、ブートローダは、そのままRAM4上のファームウェアを起動しRAM4上のファームウェアをCPU2に実行させ、ファームウェアに制御を移すS109。これにより、メインプログラム等が起動され、メインプログラムの制御により電子機器1が使用可能になる。即ち、ファームウェアによる電子機器1の制御が開始される。なお、ファームウェアを起動する前に、ブートローダが、差分データに異常がある旨のエラーコードを表示して、アップデートを行わない旨のメッセージ等を表示部7に表示するようにしてもよい。一方、差分データがCRCエラーでなかったと判定した場合S107でNo、ブートローダは、S108に処理を進める。S108では、上記RAM4上のファームウェアデータに対して、上記RAM4上にロードしたアップデートデータ差分データを適用し、RAM4上のファームウェアをアップデートする。なお、アップデートデータ格納領域52に、複数回分のアップデートの差分データが格納されていた場合には、該複数回分のアップデートの差分データを順次、上記RAM4上のファームウェアデータに対して適用して、RAM4上のファームウェアをアップデートするようにする。以上示したS108の処理により、上記RAM4上のファームウェアデータがアップデートされた状態となる。そして、上記S108の処理が完了すると、ブートローダは、上記S108でアップデートしたRAM4上のファームウェアを起動しRAM4上のファームウェアをCPU2に実行させ、ファームウェアに制御を移すS109。これにより、メインプログラム等が起動され、メインプログラムの制御により電子機器1が使用可能になる。即ち、アップデートされたファームウェアによる電子機器1の制御が開始される。以上の処理により、アップデートデータ格納領域52に格納されているアップデートデータ差分データに基づくバージョンに、ファームウェアを更新アップデートし、該更新されたファームウェアで電子機器1を起動することができる。また、差分データに異常が検出された場合でも、アップデート前のファームウェアFROM3内に格納されているで電子機器1を起動することが可能となる。また、図示省略したが、何らかの障害でRAM上のファームウェアのアップデートが完了できなかった場合やアップデートされたRAM上のファームウェアで起動された電子機器1の動作に異常が発生した場合等でも、アップデートデータによるファームウェアの更新をスキップする指示を行って、電子機器1の電源再投入又は、リセットするを行うことにより、アップデート前のファームウェアFROM3内に格納されているで電子機器1を起動することが可能となる。なお、アップデートデータによるファームウェアの更新をスキップする指示とは、例えば、操作部の特定のキーを押下すること等があげられる。即ち、ブートローダは、ファームウェアがCRCエラーでなかったと判定しS103でNo、且つ、操作部の特定のキーが押下されていること特定のキー入力を検出した場合、そのままRAM4上のファームウェアを起動しRAM4上のファームウェアをCPU2に実行させ、ファームウェアに制御を移すS109。これにより、アップデート前のファームウェアFROM3内に格納されているで電子機器1を起動することが可能となる。なお、図3のフローチャートに示した処理は、電子機器1が電源投入された場合のみでなく、電子機器1がリセットされた場合にも実行されるものとする。上述したように、ブートローダがRAM4上のファームウェアを起動してファームウェア例えばメインプログラムに制御が移ることで、電子機器1で機能を使用できる状態になる。しかし、ファームウェアに新しい機能を追加する必要が生じた場合や、ファームウェアに不具合が見つかった場合は、ファームウェアのアップデートを行わなければならない。以下、図4を用いて、ファームウェアのアップデート処理について説明する。図4は、本発明のファームウェアのアップデート処理手順を示すフローチャートである。このフローチャートの処理は、CPU2がファームウェアに含まれる所定のプログラムを実行することにより実現される。例えば、操作部6からファームウェアのアップデートの要求を受けると、CPU2は、S200のアップデート処理を起動する。なお、CPU2は、ファームウェアのアップデートの要求を、赤外線通信部8や無線通信部9等を介して接続される外部装置から受信する構成でもよい。S201において、CPU2は、電子機器1で起動されているファームウェアのバージョン情報をRAM4上に展開されているファームウェアデータから取得する。さらに、CPU2は、メモリカード等に格納されているファームウェアのバージョン情報を取得する。なお、メモリカード等に格納されているファームウェアとは、カードスロット部10に装着されているメモリカードに格納されているファームウェア、又は、赤外線通信部8や無線通信部9等により通信媒体を介して接続される外部装置にダウンロード可能に格納されているファームウェアを示す。次に、S202において、CPU2は、上記S202で取得した双方のバージョンが相違するか否かを判定する。そして、上記S202で取得した双方のバージョンが相違しない同一と判定した場合S202でNo、CPU2は、アップデートする必要がないと判断し、そのまま処理を終了する。一方、上記S202で取得した双方のバージョンが相違すると判定した場合S202でYes、CPU2は、アップデートする必要があると判断し、S203に処理を進める。S203では、CPU2は、RAM4上に展開されているファームウェア現在起動されているファームウェアと、メモリカード等に格納されているファームウェアとの差分データを作成する。差分データの生成方法についてはさまざまなソフトウェア圧縮技術としてパッチを作成する方法が公開されているが本実施例では説明を割愛する。次に、S204において、CPU2は、上記S203で作成した差分データを、アップデートデータとしてアップデートデータ格納領域52に格納可能か確認する。アップデートデータ格納領域52には、以前のアップデート処理時に格納された差分データが存在する場合がある。よって、ここでは、アップデートデータ格納領域52に差分データを格納可能な空き領域があるか否かを判定する。アップデートデータ格納領域52に差分データを格納可能な空き領域があると判定した場合、CPU2は、差分データを格納可能と判断しS204でYes、S206に処理を進める。S206では、CPU2は、上記S203で作成した差分データをアップデートデータとして、アップデートデータ格納領域52に格納し差分データアップデート処理、処理を終了する。一方、アップデートデータ格納領域52に差分データを格納可能な空き領域がないと判定した場合、CPU2は、差分データを格納不可能と判断しS204でNo、S205に処理を進める。なお、差分データのサイズが所定のサイズを超える場合に格納不可能と判定し、差分データのサイズが所定のサイズを超えない場合に格納可能と判定してもよい。S205では、CPU2は、ファームウェア格納領域53に格納されているファームウェアをアップデートする。この際、CPU2は、ファームウェア格納領域53に格納されているファームウェアを、メモリカード等に格納されているファームウェアと置き換える処理を行ってもよい。また、この際、CPU2は、以前のアップデート処理時にアップデートデータ格納領域52に格納された差分データと、上記S203で算出した差分データを順次、ファームウェア格納領域53に格納されているファームウェアに適用して、該ファームウェア格納領域53に格納されているファームウェアを更新する等の処理を行ってもよい。次に、S207において、CPU2は、アップデートデータ格納領域52に格納されている差分データアップデート前の差分データをクリアし全て消去し、処理を終了する。なお、図4では、S203において差分データを作成する構成を示した。しかし、予め作成されている差分データを、上記S203のタイミングでメモリカード等から取得することも可能である。差分データをメモリカード等から取得する場合、複数のファームウェアのバージョンに対応する差分データをメモリカード等に格納しておき、CPU2が、ファームウェア格納領域53に格納されているファームウェアに対応する差分データを、メモリカード等から選択して取得し、差分データアップデートS206又はファームウェアアップデートS205を行うようにしてもよい。なお、差分データアップデートS206又はファームウェアアップデートS205を行う際に、差分データやファームウェアのCRCチェックを行うようにしてもよい。また、本実施例では、差分データやファームウェアの誤り検出処理にCRCチェックを用いる構成を示したが、CRC以外の誤り検出処理を行うように構成してもよい。以上説明したように、本実施例の電子機器によれば、ファームウェアのアップデート中に何らかの障害でファームウェアのアップデートが異常終了してしまった場合でも、アップデート前のファームウェアで装置を起動することが可能となる。従って、ファームウェアのアップデート中に何らかの障害が発生してファームウェアのアップデートが異常終了してしまった場合でも、電子機器が起動しなくなってしまうという最悪の事態を回避する可能性を高めることができる。また、ファームウェアの格納領域を複数確保するような冗長な構成をとることがないため、ユーザが使用可能な記憶領域を十分に確保することができる。さらに、差分データのサイズが、アップデートデータ格納領域52に格納可能なサイズまでは、差分データのみのアップデートであるので、アップデート時間を最小限に抑えることができる。従って、本発明によれば、以上のように利便性の高いファームウェアアップデート方法を実現する仕組みを提供することができる。なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。他の実施例また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータまたはCPUやMPU等がプログラムを読み出して実行する処理である。また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形各実施例の有機的な組合せを含むが可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。