(57)【要約】【課題】更新処理ソフトウェア自体を差分データのみにより無線経由で更新する際に、電源断等の不具合が生じた場合であっても、再度、更新処理を実行することができるようにする。【解決手段】不揮発性メモリ内に、異なる改訂版数の更新処理ソフトウェアを格納する第１および第２の更新処理ソフトウェア格納領域２０１，２０２を設けておき、更新処理ソフトウェアの自己更新時には、両格納領域に格納されている新しい方の更新処理ソフトウェアにより、差分データに基づいて生成した新たな更新処理ソフトウェアを、古い方の更新処理ソフトウェアが格納されている領域に書き込む。更新処理ソフトウェアの自己更新時の電源断により自己更新が失敗したとき、電源回復後に新しい方の更新処理ソフトウェアにより再度自己更新処理を実行する。【選択図】図６
2009009391.tif 000002
【特許請求の範囲】
【請求項１】
携帯端末内の不揮発性メモリに格納されているソフトウェアを無線経由で更新するための更新処理ソフトウェア自体を差分データに基づいて更新する更新処理ソフトウェア自己更新方法であって、
前記不揮発性メモリ内に、異なる改訂版数の更新処理ソフトウェアを格納する第１および第２の更新処理ソフトウェア格納領域を設け、
更新処理ソフトウェアの自己更新時には、前記第１および第２の更新処理ソフトウェア格納領域に格納されている新しい方の更新処理ソフトウェアにより、前記差分データに基づいて生成した新たな更新処理ソフトウェアを、古い方の更新処理ソフトウェアが格納されている更新処理ソフトウェア領域に書き込む
ことを特徴とする更新処理ソフトウェア自己更新方法。
【請求項２】
前記更新処理ソフトウェアの自己更新時には、前記新しい方の更新処理ソフトウェアを一旦ＲＡＭ上に展開し、ＲＡＭ上で当該更新処理を実行する請求項１に記載の更新処理ソフトウェア自己更新方法。
【請求項３】
前記更新処理ソフトウェアの自己更新時の電源断により自己更新が失敗したとき、電源回復後に新しい方の更新処理ソフトウェアにより再度自己更新処理を実行する請求項１に記載の更新処理ソフトウェア自己更新方法。
【請求項４】
更新処理ソフトウェアの自己更新時に、更新に先立って、前記第１および第２の更新処理ソフトウェア格納領域のうち古い方の更新処理ソフトウェアを不揮発的にバックアップすることができるファイルシステムに格納する請求項１に記載の更新処理ソフトウェア自己更新方法。
【請求項５】
前記更新処理ソフトウェアの自己更新時の電源断により自己更新が失敗した場合、電源回復後に新しい方の更新処理ソフトウェアにより再度自己更新処理を実行しようとしたとき、新しい方の更新処理ソフトウェアが起動できない場合、前記ファイルシステムにバックアップされた更新処理ソフトウェアを用いて、再度、自己更新処理を実行する請求項１に記載の更新処理ソフトウェア自己更新方法。
【請求項６】
前記不揮発性メモリ内に前記第１および第２の更新処理ソフトウェア格納領域に加えて、前記異なる改訂版数の古い方の更新処理ソフトウェアのコピーを格納する第３の更新処理ソフトウェア領域を設け、前記更新処理ソフトウェアの自己更新時に、前記第１および第２の更新処理ソフトウェア格納領域に格納されている新しい方の更新処理ソフトウェアにより、前記差分データに基づいて生成した新たな更新処理ソフトウェアを、古い方の更新処理ソフトウェアが格納されている二つの更新処理ソフトウェア領域の一方に書き込んだ後、他方に当該更新前の新しい方の更新処理ソフトウェアのコピーを書き込む請求項１に記載の更新処理ソフトウェア自己更新方法。
【請求項７】
前記更新処理ソフトウェアの自己更新時の電源断により自己更新が失敗した場合、電源回復後に新しい方の更新処理ソフトウェアにより再度自己更新処理を実行しようとしたとき、新しい方の更新処理ソフトウェアが起動できない場合、当該自己更新時の更新処理ソフトウェアが上書きされなかった古い方の更新処理ソフトウェアを用いて、再度、自己更新処理を実行する請求項６に記載の更新処理ソフトウェア自己更新方法。
【請求項８】
不揮発性メモリに格納されている無線経由でソフトウェアを更新するための更新処理ソフトウェア自体を差分データに基づいて更新する更新処理ソフトウェア自己更新機能を備えた携帯端末装置であって、
異なる改訂版数の更新処理ソフトウェアを格納する第１および第２の更新処理ソフトウェア格納領域を有する不揮発性メモリと、
更新処理ソフトウェアの自己更新時には、前記第１および第２の更新処理ソフトウェア格納領域に格納されている新しい方の更新処理ソフトウェアにより、前記差分データに基づいて生成した新たな更新処理ソフトウェアを、古い方の更新処理ソフトウェアが格納されている更新処理ソフトウェア領域に書き込む自己更新手段と
を備えたことを特徴とする携帯端末装置。
【請求項９】
前記自己更新手段は、前記更新処理ソフトウェアの自己更新時の電源断により自己更新が失敗したとき、電源回復後に新しい方の更新処理ソフトウェアにより再度自己更新処理を実行する請求項８に記載の携帯端末装置。
【請求項１０】
前記更新処理ソフトウェアの自己更新時に前記新しい方の更新処理ソフトウェアを一旦展開するＲＡＭを備え、前記自己更新手段は、この展開された更新処理ソフトウェアを実行する請求項８または９に記載の携帯端末装置。
【請求項１１】
更新処理ソフトウェアの自己更新時に、更新に先立って、前記第１および第２の更新処理ソフトウェア格納領域のうち古い方の更新処理ソフトウェアを不揮発的にバックアップすることができるファイルシステムを有する請求項８に記載の携帯端末装置。
【請求項１２】
前記自己更新手段は、前記更新処理ソフトウェアの自己更新時の電源断により自己更新が失敗した場合、電源回復後に新しい方の更新処理ソフトウェアにより再度自己更新処理を実行しようとしたとき、新しい方の更新処理ソフトウェアが起動できない場合、前記ファイルシステムにバックアップされた更新処理ソフトウェアを用いて、再度、自己更新処理を実行する請求項８に記載の携帯端末装置。
【請求項１３】
前記不揮発性メモリ内に前記第１および第２の更新処理ソフトウェア格納領域に加えて、前記異なる改訂版数の古い方の更新処理ソフトウェアのコピーを格納する第３の更新処理ソフトウェア領域を設け、前記自己更新手段は、前記更新処理ソフトウェアの自己更新時に、前記第１および第２の更新処理ソフトウェア格納領域に格納されている新しい方の更新処理ソフトウェアにより、前記差分データに基づいて生成した新たな更新処理ソフトウェアを、古い方の更新処理ソフトウェアが格納されている二つの更新処理ソフトウェア領域の一方に書き込んだ後、他方に当該更新前の新しい方の更新処理ソフトウェアのコピーを書き込む請求項８に記載の携帯端末装置。
【請求項１４】
前記自己更新手段は、前記更新処理ソフトウェアの自己更新時の電源断により自己更新が失敗した場合、電源回復後に新しい方の更新処理ソフトウェアにより再度自己更新処理を実行しようとしたとき、新しい方の更新処理ソフトウェアが起動できない場合、当該自己更新時の更新処理ソフトウェアが上書きされなかった古い方の更新処理ソフトウェアを用いて、再度、自己更新処理を実行する請求項８に記載の携帯端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯端末装置に係り、特に、携帯端末内の不揮発性メモリに格納されている無線経由でソフトウェアを更新するための更新処理ソフトウェア自体を差分データに基づいて更新する更新処理ソフトウェア自己更新方法に関する。
【背景技術】
【０００２】
現在、携帯電話機のような携帯端末は広く普及している。このような携帯端末の機能の追加、性能向上、不具合の修正等を行うためには、端末内のメモリに格納されているプログラム等のソフトウェアを更新する必要がある。ソフトウェアを格納するメモリとして、フラッシュメモリのような再書き込み可能な不揮発性メモリを使用し、無線経由で携帯端末のソフトウェア更新を行うＦＯＴＡ（Firmware Over The Air）と呼ばれる技術が知られている（特許文献１参照）。
【特許文献１】特開２００６−３０９５１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のＦＯＴＡでは、ソフトウェアの更新を行う更新処理ソフトウェア以外の部分は更新前後のソフトウェアの差分データのみで更新を行うが、更新処理ソフトウェア自身の更新（自己更新）は、新しいソフトウェアを全てダウンロードし、上書きすることで更新を行う仕様になっている。そのため、更新処理ソフトウェア自身を更新する場合、大きなデータを無線経由でダウンロードすることになり、通信時間・パケット費用の増大を招く。
【０００４】
しかし、更新処理ソフトウェア自体の更新において差分データのみによる更新を行うと、更新処理中の電源断等により再更新処理の起動が不能となってしまう。
【０００５】
本発明はこのような背景においてなされたものであり、更新処理ソフトウェア自体を差分データのみにより無線経由で更新する際に、電源断等の不具合が生じた場合であっても、再度、更新処理を実行することができるソフトウェア自己更新方法およびこれを採用した携帯端末装置を提供することを企図する。
【課題を解決するための手段】
【０００６】
本発明による更新処理ソフトウェア自己更新方法は、携帯端末内の不揮発性メモリに格納されているソフトウェアを無線経由で更新するための更新処理ソフトウェア自体を差分データに基づいて更新する更新処理ソフトウェア自己更新方法であって、前記不揮発性メモリ内に、異なる改訂版数の更新処理ソフトウェアを格納する第１および第２の更新処理ソフトウェア格納領域を設け、更新処理ソフトウェアの自己更新時には、前記第１および第２の更新処理ソフトウェア格納領域に格納されている新しい方の更新処理ソフトウェアにより、前記差分データに基づいて生成した新たな更新処理ソフトウェアを、古い方の更新処理ソフトウェアが格納されている更新処理ソフトウェア領域に書き込むことを特徴とする。
【０００７】
このように、異なる改訂版数の更新処理ソフトウェアを格納する第１および第２の更新処理ソフトウェア格納領域を設けることにより、更新処理ソフトウェアの自己更新時の電源断により自己更新が失敗したときであっても、電源回復後に新しい方の更新処理ソフトウェアにより再度自己更新処理を実行することができる。
【０００８】
更新処理ソフトウェアの自己更新時に、更新に先立って、前記第１および第２の更新処理ソフトウェア格納領域のうち古い方の更新処理ソフトウェアを不揮発的にバックアップすることができるファイルシステムに格納するようにしてもよい。これにより、自己更新失敗後の残りの更新処理ソフトウェアの不具合が発生しても、再度の自己更新処理を行うことが可能となる。
【０００９】
前記不揮発性メモリ内に前記第１および第２の更新処理ソフトウェア格納領域に加えて、前記異なる改訂版数の古い方の更新処理ソフトウェアのコピーを格納する第３の更新処理ソフトウェア領域を設け、前記更新処理ソフトウェアの自己更新時に、前記第１および第２の更新処理ソフトウェア格納領域に格納されている新しい方の更新処理ソフトウェアにより、前記差分データに基づいて生成した新たな更新処理ソフトウェアを、古い方の更新処理ソフトウェアが格納されている二つの更新処理ソフトウェア領域の一方に書き込んだ後、他方に当該更新前の新しい方の更新処理ソフトウェアのコピーを書き込む構成としてもよい。
【００１０】
このような３面の冗長構成として世代管理することにより、実績のある旧世代の更新処理ソフトウェアを保持したまま、旧世代の更新処理ソフトウェアの更新を行うことが可能となる。
【００１１】
本発明は、また、上記のような更新処理ソフトウェア自己更新機能を備えた携帯端末装置、または、そのような機能を実行するコンピュータプログラムとしても把握することができる。
【発明の効果】
【００１２】
本発明によれば、更新処理ソフトウェアを複数面管理し、改訂版数を割り当てることで、現行の更新処理ソフトウェアには影響を与えることなく、新しい改訂版数の更新処理ソフトウェアを用いて差分データに基づいて新たな更新処理ソフトウェアを作成することができる。
【００１３】
最新の更新処理ソフトウェアが自身の不具合やフラッシュメモリの異常で破損によって起動できない場合、古い改訂版数の更新処理ソフトウェアを実行することでソフトウェア更新が不可能になる可能性を低減できる。
【００１４】
差分データに基づく更新を行うので、更新処理ソフトウェアの自己更新が必要になった場合、通信時間・パケット費用の発生を必要最低限に抑えることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の好適な実施の形態について図面を参照しながら、詳細に説明する。
【００１６】
図１に本実施の形態における携帯端末１０の概略ハードウェア構成を、携帯電話機を例として示す。
【００１７】
携帯端末１０は、制御部１１、音声処理部１２、マイク１３、スピーカ１４、記憶部１５、通信部１６、デュプレクサ１７、アンテナ１７ａ、操作部１８、表示部１９を備える。制御部１１は、ＣＰＵ(Central Processing Unit)３０を搭載した携帯電話用ＬＳＩを含み、携帯端末１０の処理および各部の制御を司る。
【００１８】
音声処理部１２は制御部１１の制御下で通話や音楽再生等の音声処理を行い、マイク１３からの音声入力、スピーカ１４への音声出力を行う。
【００１９】
記憶部１５は、プログラムやデータを記憶する部位であり、本実施の形態では、ＮＡＮＤメモリ等の不揮発性メモリであるフラッシュメモリ２０、ＳＤＲＡＭ(Synchronous Dynamic Random Access Memory)等のＲＡＭ２４を有する。
【００２０】
フラッシュメモリ２０は、制御部１１が実行するプログラムを格納する再書込可能な不揮発性メモリである。フラッシュメモリ２０には、ブートプログラムを格納するブート領域２１、プログラム本体のコード（プログラムコード）を格納するプログラム領域２２と、その他必要なデータやプログラムを格納するためのストレージ（Storage）領域２３が存在する。ストレージ領域２３には、プログラムの他、例えば、電話帳、電子メール、ウェブコンテンツ、音楽、画像等の各種のデータを格納することができる。
【００２１】
プログラム領域２２は、ブートプログラムによるブート時にＲＡＭ２４へ展開され、プログラム等のソフトウェアはＲＡＭ２４上で実行される。より具体的には、制御部１１および記憶部１５に電源が供給されると、制御部１１の組み込みロジックによってフラッシュメモリ２０のブート領域の内容が制御部内蔵のメモリ領域（図示せず）に読み込まれて実行される。このプログラムには本発明で定めるブート処理が組み込まれており、このプログラムによって実行対象プログラムコードがフラッシュメモリ２０からＲＡＭ２４へと展開され、プログラムがＲＡＭ２４上で実行される。
【００２２】
通信部１６は、制御部１１の制御下で、アンテナ１７ａを介して基地局（図示せず）と無線による送受信を行う部位である。デュプレクサ１７はアンテナ共用機である。すなわち、送信信号と受信信号で１本のアンテナを共用し、アンテナからの受信信号を受信部に送り、送信部からの送信信号をアンテナへ送出する機能を備えたフィルタ回路により構成される。
【００２３】
操作部１８は、テンキーや各種の制御キー等を有し、ユーザによる指示や情報を制御部１１に入力する機能を有する。
【００２４】
表示部１９は、例えばＬＣＤ、有機ＥＬ等の表示デバイスを有し、ユーザに対してテキスト、画像（静止画、動画）等の可視情報を表示する機能を有する。
【００２５】
以下、本実施の形態における動作を説明する。
【００２６】
図２に示すように、ＦＯＴＡではソフトウェアの更新が必要になったときに、更新に必要なデータをソフトウェア提供者がインターネット等のネットワーク上の配信サーバ２５に格納し、携帯端末１０が更新に必要なデータを無線経由でダウンロードする。
【００２７】
図３に示すように、従来、更新処理ソフトウェア自体の更新（自己更新）は新しい更新処理ソフトウェア２４１の全体を無線経由でＲＡＭ２４内にダウンロードし、更新処理ソフトウェア２４１ではなく、ブートプログラムが、フラッシュメモリ２０の更新前のソフトウェア格納領域２００内の現更新処理ソフトウェア（古い更新処理ソフトウェア）を格納した領域２０１に上書きすることで、更新後のソフトウェア格納領域２１０に示すように、フラッシュメモリ２０上に新たな更新処理ソフトウェアを格納している。
【００２８】
このような従来技術に対し、本発明では、更新処理ソフトウェア自身の更新を新旧のプログラム間の差分データだけで実現しようとする。そのためには、現行の更新処理ソフトウェアを実行し、差分データに基づいて新しい更新処理ソフトウェアを作成し、フラッシュメモリに書き込む必要がある。現行の更新処理ソフトウェアはＲＡＭ上で実行されるため、作成した新しい更新処理ソフトウェアを現行の更新処理ソフトウェアが格納されている領域に上書きすることは可能である。しかし、フラッシュメモリ書き込み中に携帯端末の電源断が発生すると、フラッシュメモリ内の更新処理ソフトウェアが不完全になる。同時に、ＲＡＭ上の新たな更新処理ソフトウェアは消滅する。そのため、更新処理を再開することが不可能になる。携帯端末では通常、電源として電池を利用しており、電池残量の低下や端末落下等による電池パックの脱落などの要因により、据え置き型の装置に比べて処理中に電源断が生じる可能性が高い。一方、ＦＯＴＡでは、ソフトウェア更新中に電源断が発生しても更新処理を再開できる仕様が一般的である。
【００２９】
そこで、図４に示すように、フラッシュメモリ２０内の更新前のソフトウェア格納領域２００に、複数の更新処理ソフトウェアを格納する領域２０１，２０２を確保しておく。すなわち、現更新処理ソフトウェアを格納する領域２０１とは別に、新たな更新処理ソフトウェアを格納するための当初の予約領域である領域２０２を確保しておき、この領域２０２には、ＲＡＭ２４上の現行の更新処理ソフトウェア２４１が差分データ２４２に基づいて作成した新しい更新処理ソフトウェア２４３を書き込む仕組みとする。これによって、更新処理ソフトウェアの自己更新処理中に電源断が発生して、領域２０２に書き込み途中の新更新処理ソフトウェアが不完全であっても、現行の更新処理ソフトウェアはフラッシュメモリ２４内に保持されているため、これに基づいて更新処理を再開することができる。
【００３０】
この構成により携帯端末は常に新旧異なる２つの更新処理ソフトウェアを保持することになるため、ソフトウェア更新実行時は常に新しい方の更新処理ソフトウェアを実行する必要がある。これを実現するために、更新処理ソフトウェアには改訂版数を割り当てる。例えば図５に示すように、携帯端末の出荷時は２つの格納領域２０１，２０２のうち、片方のみ更新処理ソフトウェアを格納し、「００」の版数をその格納領域の終端に書き込む。更新処理プログラムの自己更新が行われた場合は、空いている片方の格納領域に新しい更新処理ソフトウェアを書き込み、同時に「０１」の版数をプログラムコードの終端に書き込む。
【００３１】
さらに更新処理ソフトウェアの自己更新が必要になった場合は、図６に示すように、現行の更新処理ソフトウェア２４１が差分データ２４２から最新の更新処理ソフトウェア２４３を作成し、改訂版数の小さい更新処理ソフトウェア（ここでは版数「００」）の領域２０１に上書きして、その改訂版数を「０２」とする。このように更新処理ソフトウェアの自己更新が発生するごとに新たな改訂版数を割り当てる。
【００３２】
ソフトウェア更新実行時、ブートプログラムは必ず改訂版数の大きい更新処理プログラムを先に実行する仕組みとする。これにより、常に最新の更新処理ソフトウェアによるソフトウェア更新を行うことが可能となる。
【００３３】
但し、フラッシュメモリの異常等で最新の更新処理ソフトウェアが破損していた場合、世代は古いがもう一方の格納領域の更新処理プログラムを起動する。
【００３４】
図７に、本実施の形態における携帯端末の起動時の処理をフローチャートとして示す。この処理は図１に示した制御部１１により実行される。
【００３５】
まず、ソフトウェア更新が必要か否かを判断する（Ｓ１１）。これは、更新用の差分データがダウンロードされた際に所定のフラグを立てておく等の措置により、そのフラグが立っているか否かを確認することにより行える。ソフトウェア更新が必要でないと判断されたら、通常のソフトウェアを起動する（Ｓ１２）。
【００３６】
ソフトウェア更新が必要と判断されたら、フラッシュメモリ内の二つの更新処理ソフトウェアの改訂版数を比較し、大きい方の更新処理ソフトウェアをＲＡＭ上に展開して起動する（Ｓ１３）。この更新処理ソフトウェアが起動できたら（Ｓ１４，Ｙｅｓ）、当該ソフトウェア更新処理へ移行する（Ｓ１７）。何らかの理由で当該更新処理ソフトウェアが起動できなければ、改訂版数の小さい更新処理ソフトウェアを起動する（Ｓ１５）。改訂版数の小さい更新処理ソフトウェアが起動できたら（Ｓ１６，Ｙｅｓ）、ステップＳ１７へ移行する。起動できなければ（Ｓ１６，Ｎｏ）、電源断等の所定の処理を行って、この処理が終了する（Ｓ１８）。
【００３７】
次に、本発明の第２の実施の形態について説明する。ハードウェア構成は第１の実施の形態に示したものと同じであり、重複した図示および説明を省略する。第２の実施の形態は、自己更新時、片面の更新処理ソフトウェアをファイルシステムにコピーしてバックアップするものである。
【００３８】
まず前提として、携帯端末が耐障害性を有するファイルシステム領域を有するものとする。このようなファイルシステムは、本来、音楽、画像、動画、設定、等の各種データを不揮発的に格納するものである。耐障害性を有するファイルシステムは、電源断が発生しても、書き込みが確定しているデータは消滅することなく保持されるものであり、フラッシュメモリの一部の領域を利用して構成されうる。
【００３９】
図８に示すように、前記と同様、フラッシュメモリ２０の更新前ソフトウェア格納領域２００内の領域２０１，２０２にそれぞれ００，０１の改訂版数を持つ更新処理ソフトウェアが存在するものとする。更新処理開始時に、上書きの対象となる改訂版数の小さい方の更新処理ソフトウェア００をファイルシステム３００にコピーしてバックアップする。ここに、「更新処理ソフトウェア００」という表記は改訂版数００の更新処理ソフトウェアを意味する。以下、他の改訂版数についても同様である。自己更新時は、フラッシュメモリ２０の領域２０２内の更新処理ソフトウェア０１が展開されたＲＡＭ２４上の現更新処理ソフトウェア２４１に対して、差分データ２４２が適用され、新たな更新処理ソフトウェア２４３が生成される（２）。この更新処理ソフトウェア２４３はフラッシュメモリ２０の更新処理ソフトウェア００の領域２０１に、改訂版数０２として書き戻される（３）。
【００４０】
しかし、図９に示すように、新しい更新処理ソフトウェアの作成後のフラッシュメモリ２０への書き込み時に（２）、電源断が発生した場合（３）、更新処理ソフトウェア００の領域２０１に書き込み中のデータは不完全となる。電源回復後（４）、再び更新処理ソフトウェア０１が更新処理ソフトウェア０２を領域２０１に書き込もうとする。このときに更新処理ソフトウェア０１が自身の不具合で正常に更新処理を開始できなかった場合（５）、図７に示した処理にしたがっても更新処理ソフトウェア０１を起動させることができない（６）。
【００４１】
そこで、図１０に示すように、更新処理ソフトウェア００をファイルシステム３００にバックアップしておき（１）、新しい更新処理ソフトウェアの作成して（２）フラッシュメモリ２０へ書き込む際に（３）、電源断が発生しても（４）、電源回復後に（５）、先にファイルシステム３００にバックアップしていた更新処理ソフトウェア００を領域２０１，２０２の片面（図では領域２０１）に書き戻すことにより（６）、更新処理ソフトウェア０１の不具合により起動できない場合でも（７）、書き戻された更新処理ソフトウェア００を用いて更新処理を再開できる（８）。このとき、更新先である更新処理ソフトウェア０２は更新処理ソフトウェア０１の領域に書き込むことになる。
【００４２】
次に、本発明の第３の実施の形態について説明する。ハードウェア構成は第１の実施の形態に示したものと同じであり、重複した図示および説明を省略する。第１の実施の形態では更新処理ソフトウェアを２面で管理したが、第３の実施の形態は、更新処理ソフトウェアを３面で管理するものである。
【００４３】
まず前提として更新処理ソフトウェア００，０１が存在すると仮定する。更新処理ソフトウェア０２を携帯端末に追加する為には更新処理ソフトウエア００の部分に更新処理ソフトウエア０１を使用して、更新処理ソフトウエア０２を上書きすることになる。更新処理ソフトウエア０１が動作を実行するのは、改訂版数００から０１への更新処理が完了した後となる。すなわち改訂版数００から０１への更新は更新処理ソフトウエア００を使用して実施されるので、更新処理ソフトウエア０１の動作が実行確認されるのは改訂版数０１から０２への更新が実行されたときとなる。
【００４４】
図４で説明したように更新処理ソフトウエア更新中に電源断などにより更新処理が失敗した場合、携帯端末内部では更新処理ソフトウェア００は破壊されてしまい、更新処理ソフトウェア０１のみが存在する。改訂版数０１から０２への更新過程において更新処理ソフトウエア０１の不具合が発覚した場合、更新処理ソフトウエア００は存在しないため、更新処理が不可能になる可能性がある。第３の実施の形態は、このような場合の解決策となる。
【００４５】
今、図１１に示すように、フラッシュメモリ２０の更新前のソフトウェア格納領域２００内に更新処理ソフトウェアとして改訂版数００を格納した領域２０１，２０２を２面持ち、さらに改訂版数０１を格納するための予備領域２０３を持つ３面構造とする。図１１の状態では、次回の自己更新は更新処理ソフトウェア０１を実行することにより行われる。この際の更新処理ソフトウェア０２は領域２０１，２０２の一方（ここでは２０２）に上書きされる。その結果、図１２の更新後のソフトウェア格納領域２１０に示すように、更新処理ソフトウェアは、古い方の改訂版数０１を２面持つとともに、新しい方の改訂版数０２を１面持つように書き換えられる。すなわち、領域２０１には領域２０３内の古い方の更新処理ソフトウエア０１（実際に更新処理を実行した方）のコピーが上書きされる。
【００４６】
図１３に示すように、更新処理ソフトウェア０１を用いて新たな更新処理ソフトウェア０２を領域２０２に書き込んでいる最中に電源断が発生した場合、領域２０２の内容はごみ状態となる。さらに、電源回復後に領域２０３内の改訂版数０１の不具合により更新処理を再開できない場合もある。このような場合であっても、領域２０１内の更新処理ソフトウェア００によって更新処理を再開することができる。この場合、更新処理ソフトウェア００は０１から０２への差分ファイルを更新処理ソフトウェア０１に適用して更新処理ソフトウェア０２を生成する。これにより、最新の更新処理ソフトウェア０２が領域２０２に格納される。この際、更新処理ソフトウェア０１は不具合があったため、更新処理ソフトウェア０１の領域２０１へのコピーは行わない。次回、更新処理ソフトウェア０３へのバージョンアップの際には、更新処理ソフトウェア０２を用いて、更新処理ソフトウェア０１の領域２０３に更新処理ソフトウェア０３を書き込む。これとともに、更新処理ソフトウェア０２のコピーを領域２０１に書き込む。
【００４７】
図１４に、第３の実施の形態の処理を実現するためのフローチャートを示す。
【００４８】
まず、図７の処理と同様、ソフトウェア更新が必要か否かを判断する（Ｓ２１）。ソフトウェア更新が必要でないと判断されたら、通常のソフトウェアを起動する（Ｓ２２）。
【００４９】
ソフトウェア更新が必要と判断されたら、フラッシュメモリ内の二つの更新処理ソフトウェアの改訂版数を比較し、大きい方の更新処理ソフトウェアをＲＡＭ上に展開して起動する（Ｓ２３）。この更新処理ソフトウェアが起動できたら（Ｓ２４，Ｙｅｓ）、当該ソフトウェア更新処理へ移行する（Ｓ２７）。何らかの理由で当該更新処理ソフトウェアが起動できなければ、改訂版数Ｎ−１の更新処理ソフトウェアを起動する（Ｓ２５）。改訂版数Ｎ−１の更新処理ソフトウェアが起動できたら（Ｓ２６，Ｙｅｓ）、ステップＳ２７へ移行する。起動できなければ（Ｓ２６，Ｎｏ）、電源断等の所定の処理を行って、この処理が終了する（Ｓ２８）。
【００５０】
ソフトウェア更新処理（Ｓ２７）により更新処理ソフトウェアＮ＋１の書き込みが完了したら（Ｓ２９，Ｙｅｓ）、正常な更新処理ソフトウェアＮのコピーを作成して、所定の領域に格納する（Ｓ３０）。正常な更新処理ソフトウェアＮが存在しなければ、このステップＳ３０は実行しない。
【００５１】
図１４の処理は実質的図７の処理と類似するが、図７と異なる点として、ステップＳ３０でコピー書き込み完了前に電源断が発生したような場合、改訂版数０２，０１，００が存在することになり、何らかの原因で０２と０１が起動できなかった場合に、００で起動させることを想定している。
【００５２】
以上、本発明の好適な実施の形態について説明したが、上記で言及した以外にも種々の変形、変更を行うことが可能である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施の形態における携帯端末の概略ハードウェア構成を、携帯電話機を例として示す図である。
【図２】ＦＯＴＡによるソフトウェアの更新の説明図である。
【図３】従来の更新処理ソフトウェア自体の更新（自己更新）の説明図である。
【図４】本発明の実施の形態の構成および動作の説明図である。
【図５】図４に続く説明図である。
【図６】図５に続く説明図である。
【図７】本発明の実施の形態における携帯端末の起動時の処理例を示したフローチャートである。
【図８】本発明の第２の実施の形態の構成の説明図である。
【図９】本発明の第２の実施の形態が解決する問題の説明図である。
【図１０】本発明の第２の実施の形態の動作の説明図である。
【図１１】本発明の第３の実施の形態の構成の説明図である。
【図１２】本発明の第３の実施の形態の動作の説明図である。
【図１３】本発明の第３の実施の形態の他の動作の説明図である。
【図１４】本発明の第３の実施の形態における携帯端末の起動時の処理例を示したフローチャートである。
【符号の説明】
【００５４】
１０…携帯端末、１１…制御部、１５…記憶部、２０…フラッシュメモリ、２１…ブート領域、２２…プログラム領域、２３…ストレージ領域、２４…フラッシュメモリ、２５…配信サーバ、２００…更新前ソフトウェア格納領域、２０１…領域、２０２…領域、２０３…領域、２１０…更新後ソフトウェア格納領域、２４１…更新処理ソフトウェア、２４２…差分データ、２４３…更新処理ソフトウェア、３００…ファイルシステム
【図１】
2009009391.tif 000003
【図２】
2009009391.tif 000004
【図３】
2009009391.tif 000005
【図４】
2009009391.tif 000006
【図５】
2009009391.tif 000007
【図６】
2009009391.tif 000008
【図７】
2009009391.tif 000009
【図８】
2009009391.tif 000010
【図９】
2009009391.tif 000011
【図１０】
2009009391.tif 000012
【図１１】
2009009391.tif 000013
【図１２】
2009009391.tif 000014
【図１３】
2009009391.tif 000015
【図１４】
2009009391.tif 000016