JP5349104B2 - 電子機器およびプログラム更新方法 - Google Patents

電子機器およびプログラム更新方法 Download PDF

Info

Publication number
JP5349104B2
JP5349104B2 JP2009073222A JP2009073222A JP5349104B2 JP 5349104 B2 JP5349104 B2 JP 5349104B2 JP 2009073222 A JP2009073222 A JP 2009073222A JP 2009073222 A JP2009073222 A JP 2009073222A JP 5349104 B2 JP5349104 B2 JP 5349104B2
Authority
JP
Japan
Prior art keywords
stage
program
update
power supply
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009073222A
Other languages
English (en)
Other versions
JP2010225012A (ja
Inventor
敏明 大西
勝明 赤間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Fujitsu Peripherals Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Peripherals Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd, Fujitsu Peripherals Ltd filed Critical Fujitsu Ltd
Priority to JP2009073222A priority Critical patent/JP5349104B2/ja
Publication of JP2010225012A publication Critical patent/JP2010225012A/ja
Application granted granted Critical
Publication of JP5349104B2 publication Critical patent/JP5349104B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、プログラムに従う動作をする電子機器および電子機器に組み込まれたプログラムを更新する方法に関する。
携帯電話機は、通話、電子メール送受、撮影、ウェブサイトのブラウジング、ゲームなどの多くの機能をもつ電子機器である。これら機能を実現するため、携帯電話機にはデータ量が50〜100Mバイトまたはそれ以上のプログラムが組み込まれている。一般に、プログラムの記憶には書換え可能な不揮発性メモリが用いられているので、組み込まれているプログラムを改良や修正をしたプログラムに更新することができる。
近年の携帯電話機は自動的にプログラムを更新する、いわゆるエアーダウンロード機能を有している。この機能は、サーバが配信する更新用のデータを無線通信によって受信し、不揮発性メモリが記憶するプログラムを受信したデータに基づいて部分的に書き換える。更新中はユーザによる操作が受け付けられず、操作の有無に係わらず更新のための処理が強制的に実行される。このため、ユーザへの配慮として、通常は携帯電話機の使用が統計的に少ない深夜の時間帯に更新が行われ、前もって電子メールによって更新の予定日時がユーザに通知される。
しかし、ユーザがプログラムの自動更新を途中で止めようとして携帯電話機から電池を取り外してしまうことがある。システムダウンによって自動更新が中止されると、その後に電池が装着されて電源が復帰しても携帯電話機が正常に動作しない場合が起こり得る。プログラムの一部が消失したり記憶状態が不安定になったりすることがその原因である。この場合のプログラムの復旧は販売店やサービスセンタにて行われる。
プログラムの自動更新に関して、書換えの前にプログラムをバックアップしておき、プログラムを記憶する不揮発性メモリ内に書換え中を示すフラグを設定してから書換えを開始する先行技術がある(特許文献1)。更新途中で電源が遮断されても、フラグは書換え中を示し続ける。電源復帰後にフラグがチェックされ、フラグが書換え中を示していれば、バックアップデータを用いて更新開始前のプログラムを記憶したメモリ状態が復元される。それによって更新のやり直しが可能となる。
特開2005−215841号公報
上記の先行技術には、プログラムの書換え中か否かを示すフラグ自体を書き換える最中に電源が遮断された場合に、フラグのビット値が不安定になる問題がある。書換え中を示すべきものが書換え完了を示したり、逆に書換え完了を示すべきものがそうでなかったりすると、プログラムを正しく更新することができない。
本発明は、このような事情に鑑み、更新途中で電源が遮断されても電源復帰後に更新を完結させるプログラム更新機能の信頼性を高めることを目的としている。
上記目的を達成する電子機器は、プログラムに従う動作をする電子機器であって、第1電源によって電力を供給する電源回路と、第2電源およびメモリを有し、前記第2電源からの電力によって前記メモリに対するリードライト動作をするメモリ回路と、前記プログラムを記憶するプログラム記憶部と、前記プログラムのうちの書換えの対象となる少なくとも一つのブロックの変更内容を示す差分データを記憶する差分データ記憶部と、前記ブロックを記憶する復旧用記憶部と、前記電源回路が電力を供給する状態において、前記ブロックを前記差分データに基づいて書き換えるプログラム更新部と、前記電源回路が電力を供給する状態において、前記プログラム更新部による書換えの進行段階を示す情報を前記メモリ回路に記憶させる更新管理部と、前記電源回路が電力を供給しない状態から供給する状態になったときに、前記メモリ回路が記憶する情報を参照して、前記ブロックの書換えを未完の段階から再開する更新補助部と、を備える。前記プログラム更新部は、前記ブロックを前記復旧用記憶部に記憶させる第1段階の処理と、前記ブロックを作業用メモリ領域に複写する第2段階の処理と、前記作業用メモリ領域において前記差分データに基づいて書換え用データを作成する第3段階の処理と、前記書換え用データを前記ブロックに代えて前記プログラム記憶部に記憶させる第4段階の処理とを実行し、前記更新管理部は、第1、第2、第3および第4の段階の各処理について、実行中および完了を示すように前記情報を逐次更新し、前記更新補助部は、前記情報が前記第2段階の処理の途中または前記第3段階の途中を示す場合には、前記第2段階から前記ブロックの書換えを再開し、前記情報が前記第4段階の処理の途中を示す場合には、前記復旧用記憶部が記憶する前記ブロックを前記プログラム記憶部に複写する復旧処理を行なった後に、前記第1段階または前記第2段階から前記ブロックの書換えを再開する
上記目的を達成する方法は、電子機器に組み込まれたプログラムを部分的に変更するプログラム更新方法であって、前記電子機器が第1電源からの電力によって作動可能な状態において、前記プログラムの一部であるブロックを、当該ブロックを前記復旧用記憶部に記憶させる第1段階の処理と、当該ブロックを作業用メモリ領域に複写する第2段階の処理と、当該作業用メモリ領域において差分データに基づいて書換え用データを作成する第3段階の処理と、当該書換え用データを当該ブロックに代えてプログラム記憶部に記憶させる第4段階の処理とを順に実行することによって書き換えるとともに、書換えの進行段階を示す情報を第2電源およびメモリを有しかつ前記第2電源からの電力によって当該メモリに対するリードライト動作をするメモリ回路によって記憶しておき、前記第1電源からの電力供給の停止に伴って中断された前記プログラムの一部の書換えを、前記第1電源からの電力供給が再開されたときに、前記メモリ回路が記憶する情報が前記第2段階の処理の途中または前記第3段階の途中を示す場合には、前記第2段階から再開し、前記情報が前記第4段階の処理の途中を示す場合には、前記復旧用記憶部が記憶する前記ブロックを前記プログラム記憶部に複写する復旧処理を行なった後に、前記第1段階または前記第2段階から再開する
メモリ回路は第2電源からの電力によってリードライト動作をするので、プログラム更新部による書換えの進行段階を示す情報をメモリ回路内のメモリに書き込んでいる最中に第1電源による電力供給が停止しても、情報の書き込みに支障はない。書き込まれた情報は、メモリが不揮発性であるか第2電源により記憶状態が保たれるかしてメモリ回路内で保持される。第1電源による電力供給が再開されたとき、メモリ回路内の情報を参照することにより、プログラム更新部による書換えがどの段階まで終わったかを判断し、未完の段階から書換えを再開することができる。プログラム更新部による書換えを最初からやり直す必要はない。
本発明によれば、プログラムの更新の進行段階を正しく示す情報を記憶させることができるので、更新途中で電源が遮断されても電源復帰後に更新を完結させるプログラム更新機能の信頼性が高まる。
プログラム更新の手順の概要を示す図である。 書換え状態フラグと電源復帰後に行う処理との関係を示す図である。 携帯電話機のハードウェア構成を示す図である。 携帯電話機に内蔵されたICチップのハードウェア構成を示す図である。 ICチップにおけるファイル構造の一例を示す図である。 携帯電話機の要部の機能構成を示す図である。 電源復帰後の起動処理のフローチャートである。 更新の再開処理のフローチャートである。 メモリ復旧用バッファの準備処理のフローチャートである。 差分反映バッファの準備処理のフローチャートである。 差分書換え処理のフローチャートである。 プログラム動作メモリ書換え処理のフローチャートである。 ICチップの動作を示すフローチャートである。 書換え状態フラグと電源復帰後に行う処理との関係の他の例を示す図である。 更新の再開処理の変形例のフローチャートである。
プログラムを更新する電子機器の一例として携帯電話機を挙げる。ただし、動作を制御するプログラムの組み込まれる電子機器であれば、以下に説明するプログラム更新機能は有用である。携帯電話機はプログラムの更新の内容を示すデータを無線通信によって取得する。無線通信機能を有していない電子機器においては、オンライン通信やリムーバブルメモリデバイスを用いる方法によって更新内容を示すデータの授受が行われる。
図1に示されるように、更新の対象となるプログラムは書換え可能なROM16のメモリ領域の一部であるプログラム格納領域60に書き込まれている。携帯電話機の動作のほぼ全般がこのプログラムに従う。言い換えれば、プログラムは携帯電話機1の動作を制御する。プログラム更新はプログラム格納領域60を占めるプログラムのうちの一部分を対象とするものであり、予め定められた一定データ量のアドレス空間を単位としてプログラム格納領域60のビットデータを書き換える。以下では、プログラムのうち、書換えの1単位分のアドレス空間に書き込まれている部分を“ブロック”と呼称する。通常、更新は複数のブロックについて行われる。複数のブロックのうちの幾つかのアドレスが連続している場合もあれば、全てのブロックのアドレスが互いの間で連続していない場合もあり得る。いずれにしても1ブロックずつ順に更新される。
図1の例では3個のブロック61,62,63が更新の対象である。ただし、実際には4個以上のブロックが対象となることが多い。3個のブロック61,62,63のうち、1番目のブロック61については既に更新が終わっており、2番目のブロック62が現時点の更新対象である。3番目のブロック63はブロック62の更新が終わった後に書換えが予定されている次の更新対象である。
各ブロックの更新において、基本的には4段階の処理が行われる。図中、各段階が[1]、[2]、[3]、[4]で表わされている。
第1段階の処理[1]は、ROM16内にバックアップ用に設けられたメモリ復旧用バッファ65に、プログラム格納領域60から現在の更新対象である1個のブロック62を複写する。
第2段階の処理[2]は、RAM17内に作業用メモリ領域として設けられた差分反映バッファ75に、プログラム格納領域60(またはメモリ復旧用バッファ65)からブロック62を複写する。
第3段階の処理[3]は、予めサーバから無線通信によりダウンロードされてROM16内のメモリ領域64に格納されている差分データを差分反映バッファ75のブロック62に適用する。すなわち、差分反映バッファ75においてプログラム格納領域60への書込み用データ(書込みイメージ)を作成する。差分データは圧縮されているので、第3段階ではデータの伸長が行われる。
第4段階の処理[4]は、プログラム格納領域60のブロック62に代えて、差分反映バッファ75内の書込み用データを記憶させる。すなわち、プログラム格納領域60のブロック62を書込み用データに書き換える。書換えが完了した時点でブロック62についての更新が終わる。
これら4段階の処理の進行状況を管理するために書換え状態フラグ5が用いられる。書換え状態フラグ5の内容は、各段階の処理の開始時点および完了時点で更新される。書換え状態フラグ5を参照すれば、各ブロックの更新がどの段階まで進んだかが分かる。
本実施形態においては、書換え状態フラグ5は携帯電話機に内蔵されるICチップ2内の不揮発性メモリ26に記憶される。ICチップ2に記憶させることにより、後述のように書換え状態フラグ5の信頼性が高まるので、ROM16に記憶させるのとは違って、複数のフラグを設けてフラグ状態の真偽を確認するといった複雑な制御が不要となる。
書換え状態フラグ5を記憶させるのは、複数のブロックを順に書き換える一連の更新の途中で主電源の電池による電力供給が停止する事態への対策である。一連の更新は電池の蓄電量が十分であることを確認してから開始されるので、更新途中で電力が不足することは通常は起こらないが、携帯電話機のユーザが電池を取り外す可能性がある。電力供給が停止すると、その時点で必然的に更新のための処理の実行が止まる。ROM16の内容は保持されるが、差分反映バッファ75の内容は消失する。その後、電池が再び装着された主電源が復帰したとき、電源断で中断した更新を完結させなければプログラム格納領域60内で新旧のプログラムが混在し、そのために携帯電話機の動作に支障の生じるおそれがある。そこで、書換え状態フラグ5が利用される。主電源が復帰したとき書換え状態フラグ5を参照すれば、更新を未完の段階から再開して完結させることができる。
図2は主電源が復帰したときに4段階のうちのどの段階から再開すればよいかを示す。書換え状態フラグ5が、「初期状態」または「メモリ復旧用バッファ書換え中」であれば、第1段階の前または途中で電源が遮断されたことを示すので、この場合は第1段階の処理[1]から再開する。書換え状態フラグ5が、「メモリ復旧用バッファ書換え完了」、「差分反映バッファ書換え中」、「差分反映バッファ書換え完了」、「差分書換え中」または「差分書換え完了」であれば、第2段階の処理[2]から再開する。そして、書換え状態フラグ5が「プログラム動作メモリ書換え中」であれば、第4段階の途中で電源が遮断されたことを示す。この場合はメモリ復旧用バッファ65にバックアップしておいたブロック62をプログラム格納領域60に複写してプログラム格納領域60を復旧する処理[5]を行った後に、再び処理[1]〜[4]を行う。ただし、メモリ復旧用バッファ65にブロック62が既にバックアップされているので、処理[]を省略することができる。処理[]を省略せずに処理[1]からやり直すのには、処理の管理を単純化することができるという利点がある。なお、復旧する処理[5]を行う理由は、処理[4]の途中での電源断によってプログラム格納領域60におけるブロック62に対応したデータが壊れている可能性があるからである。
以下、携帯電話機の構成をさらに詳しく説明する。
図3のように、携帯電話機1は通話や電子メールを含む種々の機能を実現する主要部である本体1Aと、電子マネーに代表される付加機能に係るIC(Integrated Circuit)チップ2を備える。ICチップ2は、本体1Aの回路基板に固定的に組み付ける形で携帯電話機1に内蔵されている。
本体1Aは、CPU10、表示回路11、無線通信回路13、電源回路14、上述のROM16、上述のRAM17、非接触リードライタ19、およびアクセスLED(Light Emitting Diode)19を備える。
CPU10は、ROM16に書き込むことで携帯電話機1に組み込まれているプログラムを実行し、携帯電話機1の動作を制御する。CPU10によって携帯電話機1の機能が実現される。携帯電話機1の機能には、プログラムの差分データを配信するサーバと通信してプログラムを自動的に更新する機能が含まれる。
表示回路11は、液晶ディスプレイ12を有し、待ち受け画面を含む各種の操作画面を表示する。プログラムの更新に関する表示には、前もって更新の日時を知らせるメッセージや更新中を知らせるメッセージの表示がある。
無線通信回路13は、通話およびデータ通信における送受信を担う。プログラムの差分データは、無線通信回路13によってサーバからダウンロードされる。
電源回路14は、第1電源としての充電型の電池15からの電力を、CPU10をはじめとする本体1A内の電力消費要素に供給する。また、外部電源が接続されたときには、電源回路14は電池15を充電する。電池15は本体1Aに対して着脱可能である。これにより交換が容易であるものの、プログラムの更新動作中にユーザによって電池15が取り外されてしまう事態が起こり得る。
ROM16は不揮発性のメモリデバイスである。本実施形態では、ROM16としてNOR型のフラッシュメモリが用いられている。これにより、CPU10はプログラムを実行するためにROM16からRAM15へプログラムをロードすることなく、ROM16を直接にアクセスしてプログラムを実行することができる。すなわち、ROM16はいわゆるプログラム動作メモリである。ただし、NAND型フラッシュメモリや他の不揮発性メモリデバイスをROM16に代えてプログラムの格納に用いることができる。
非接触リードライタ19は、ICチップ2にアクセスするためのインタフェースである。CPU10がICチップ2にアクセスしているときアクセスLED19が点灯する。プログラムの更新に際しては、書込み状態フラグ5を逐次書き換えるために頻繁にアクセスされる。一般に、多くのユーザがアクセスLED19が点灯しているときには操作を控えた方がよいとの認識をもっている。このことから、プログラムの更新中のアクセスLED19の点灯は、ユーザによる電池15の取り外しを抑制する効果をもつ。
一方、ICチップ2は、図4のように、CPU20、誘導電流発電部24、蓄電部25、不揮発性メモリ26、および非接触リードライタ28を備える。ICチップ2は、第2電源としての蓄電部25からの電力によってリードライト動作をするメモリ回路である。ICチップ2には、本体1Aおよび携帯電話機1の付加サービスに係る外部機器からデータの読出しまたは書込みを要求するコマンドが入力される。
CPU20は、非接触リードライタ28を介して受けたアクセス要求に応えて、不揮発性メモリ26にアクセスするリードライト動作の制御に特化した制御プログラムを実行する。アクセスに必要な電力は蓄電部25から供給される。
蓄電部25は、本体1Aでの通電を利用して発電する誘導電流発電部24によって充電される。CPU20が不揮発性メモリ26にアクセスしている間だけ電力を供給できれば、記憶しているデータの信頼性が保てる。したがって、蓄電部25の容量は本体1Aでの通電が停止しても例えば数秒程度だけアクセスを可能にするだけの容量でよい。
ICチップ2の不揮発性メモリ26には、図5のように電子マネー用ファイル4およびプログラム更新のための書換え状態フラグファイル5が記憶される。電子マネー用ファイル4は、付加機能である電子マネー決済のためのファイルであり、残高や取引履歴などを示す。ICチップ2が携帯電話機1に内蔵される重要な目的は、この電子マネー用ファイル4のような付加機能に係るデータを安全に記憶することである。付加機能を有する携帯電話機はICチップを内蔵するので、付加機能のためのICチップを利用して書換え状態フラグファイル5を記憶することにより、部品点数を増やすことなくプログラム更新の信頼性を高めることができる。
図6は携帯電話機1におけるプログラムの更新に関係する機能構成を示している。図6のように、携帯電話機1の本体1Aは、エアーダウンロード部101、プログラム管理部102、および通信部103を有している。これらは、CPU10が制御プログラムを実行することによって実現される機能要素である。この制御プログラムも、ROM16におけるプログラム記憶部としての上述したプログラム格納領域60に書き込まれている。また、ICチップ2は通信部203を有している。これはCPU20が制御プログラムを実行することによって実現される機能要素である。
エアーダウンロード部101は、無線通信回路13を制御してプログラムの更新内容を示す差分データを外部のサーバから取得し、差分データ記憶部としての上記メモリ領域64(図1参照)に記憶させる。
プログラム管理部102は、プログラムの実行を総括的に管理する。プログラム管理部102は、更新部121、更新管理部122、および更新補助部123を有する。プログラム更新部121は、電池15が装着されて電源回路14が電力を供給する状態において、更新対象のブロック61,62,63をそれぞれ差分データに基づいて書き換える。更新管理部122は、電源回路14が電力を供給する状態において、プログラム更新部121による書換えの進行段階を示す情報である書換え状態フラグファイル5をICチップ2に記憶させる。すなわち、書換え状態フラグファイル5の更新を更新管理部122が担う。更新補助部123は、電源回路14が電力を供給しない状態から供給する状態になったとき、例えば外された電池15が装着位置に戻されたときに、ICチップ2が記憶するその時点の書換え状態フラグファイル5を参照して、ブロック61,62,63の書換えを未完の段階から再開する。
本体1Aの通信部103およびICチップ2の通信部203は、書換え状態フラグファイル5へのアクセスに係るコマンドやデータの送受を制御する。
以下、フローチャートを参照して、プログラムの更新機能に係る携帯電話機1の動作を説明する。
放電状態の電池15が充電されるか、または装着されていなかった電池15が装着されて電力供給が始まると、図7の起動処理がプログラム管理部102により実行される。
まず、更新管理部122は、通信部103と連携してICチップ2にアクセスし、書換え状態フラグファイル5の内容を取り込む。詳しくは、ファイルIDを“書換え状態フラグ”としたファイル選択コマンドを送る(#10)。ファイルを選択した旨の応答を待って、読出しコマンドを送る(#11、#12)。
次に更新管理部122は、ICチップ2から読み出された書換え状態フラグファイル5の内容を分析する(#13)。書換え状態フラグが更新中を示すものでなければ、プログラム管理部102によって通常起動処理が実行される(#20)。これによりディスプレイ12に待ち受け画面が表示される。一方、書換え状態フラグが更新中を示す場合は、プログラム更新の途中で電力供給が停止した場合である。この場合は、更新補助部123に処理が引き継がれる。
更新補助部123は、復旧が不要か否かをチェックする(#14)。具体的には書換え状態フラグが「プログラム動作メモリ書換え中」(図2参照)であるか否かをチェックする。復旧が必要であれば、更新補助部123はメモリ復旧用バッファ65にバックアップされているブロックをプログラム格納領域60の所定位置に複写する復旧処理(上述の処理[5])を行う(#15)。復旧が不要である場合は、更新補助部123は更新の再開処理を実行する(#16)。更新の再開処理は、更新が中断された時点の現在の更新対象である1個のブロックについて、未完の段階から更新を再開して当該ブロックの更新を終える処理である。詳細は後述する。更新の再開処理が終わると、更新補助部123からプログラム更新部121へ処理が引き継がれる。
処理を引き継いだプログラム更新部121は、更新の完結処理を実行する(#17)。この処理は、更新すべきで且つ未処理のブロックがある場合に、そのブロックについての更新のための処理[1]〜[4]を実行して複数のブロックを対象とした一連の更新を完結させる処理である。
更新の完結処理が終わると、更新管理部122によって書換え状態フラグファイル5の初期化が行われ(#18)、プログラム管理部102によって再起動処理が実行される(#19)。
図8のように、更新の再開処理においては、書換え状態フラグファイル5の内容に応じて、処理[1]〜[4]のうちの未完の処理が行われる。書換え状態フラグファイル5の内容と行うべき処理との関係は図2を参照して説明したとおりである。
図9は処理[1]であるメモリ復旧用バッファの準備処理の手順を示す。メモリ復旧用バッファの準備処理は図7における#16の更新の再開処理の一部として更新補助部123および更新管理部122により、または#17の更新の完結処理の一部としてプログラム更新部121および更新管理部122により実行される。
更新補助部123または更新管理部122により1個のブロックがプログラム格納領域60からメモリ復旧用バッファ65へ複写される(#45)。これに先立って、更新管理部122は、ICチップ2にアクセスして書換え状態フラグファイル5を「メモリ復旧用バッファ書換え中」に設定する(#41〜#44)。また、ブロックの複写が終わるのに呼応して、更新管理部122は、書換え状態フラグファイル5を「メモリ復旧用バッファ書換え完了」に設定する(#46〜#48)。更新管理部122は、ICチップ2にコマンドを送ると、次にコマンドを送る前に必ずICチップ2からの応答の有無を確認し、正常応答の通知を受けてから次のコマンドを送る。これにより、本体1Aでの更新の進行段階とICチップ2における書換え状態フラグファイル5が示す進行段階とをより確実に一致させることができる。
図10は処理[2]である差分反映バッファの準備処理の手順を示す。差分反映バッファの準備処理は図7における#16の更新の再開処理の一部として更新補助部123および更新管理部122により、または#17の更新の完結処理の一部としてプログラム更新部121および更新管理部122により実行される。
更新補助部123または更新管理部122により1個のブロックがプログラム格納領域60からRAM17の差分反映バッファ75へ複写される(#55)。これに先立って、更新管理部122は、ICチップ2にアクセスして書換え状態フラグファイル5を「差分反映バッファ書換え中」に設定する(#51〜#54)。また、ブロックの複写が終わるのに呼応して、更新管理部122は、書換え状態フラグファイル5を「差分反映バッファ書換え完了」に設定する(#56〜#58)。このルーチンにおいても更新管理部122は、ICチップ2にコマンドを送ると、次にコマンドを送る前に必ずICチップ2からの応答の有無を確認し、正常応答の通知を受けてから次のコマンドを送る。
図11は処理[3]である差分書換え処理の手順を示す。差分書換え処理は図7における#16の更新の再開処理の一部として更新補助部123および更新管理部122により、または#17の更新の完結処理の一部としてプログラム更新部121および更新管理部122により実行される。
更新補助部123または更新管理部122により、メモリ領域64内の差分データに基づいて、差分反映バッファ75において書換え用のデータ(書換えイメージ)を作成する差分書換えが行われる(#65)。これに先立って、更新管理部122は、ICチップ2にアクセスして書換え状態フラグファイル5を「差分書換え中」に設定する(#61〜#64)。また、差分書換えが終わるのに呼応して、更新管理部122は、書換え状態フラグファイル5を「差分書換え完了」に設定する(#66〜#68)。このルーチンにおいても更新管理部122は、ICチップ2にコマンドを送ると、次にコマンドを送る前に必ずICチップ2からの応答の有無を確認し、正常応答の通知を受けてから次のコマンドを送る。
図12は処理[4]であるプログラム動作メモリ書換え処理の手順を示す。プログラム動作メモリ書換処理は図7における#16の更新の再開処理の一部として更新補助部123および更新管理部122により、または#17の更新の完結処理の一部としてプログラム更新部121および更新管理部122により実行される。
更新補助部123または更新管理部122により、、差分反映バッファ75内の書換え用のデータがROM16のプログラム格納領域60における現在の更新対象のブロックを記憶する位置に上書きする形で複写される(#75)。これに先立って、更新管理部122は、ICチップ2にアクセスして書換え状態フラグファイル5を「プログラム動作メモリ書換え中」に設定する(#71〜#74)。また、複写が終わるのに呼応して、更新管理部122は、書換え状態フラグファイル5を「プログラム動作メモリ書換え完了」に設定する(#76〜#78)。このルーチンにおいても更新管理部122は、ICチップ2にコマンドを送ると、次にコマンドを送る前に必ずICチップ2からの応答の有無を確認し、正常応答の通知を受けてから次のコマンドを送る。
図13はICチップ2の動作を示す。ICチップ2はCPU20により実現される機能要素としてコマンド受信部とファイル管理部とコマンド送信部とを有する。コマンド受信部が非接触リードライタ28を介して受けたコマンドを分析し、ファイル管理部がコマンドに応じて不揮発性メモリ26を制御し、コマンド送信部が応答通知を送信する。
分析したコマンドがファイル選択(SELECT-FILE)であれば、コマンドに付加されるファイルIDに従って、不揮発性メモリ26における該当ファイルの先頭アドレスにメモリアクセスポイントを設定する(#91、#92、#93、#94)。そして、ファイルへのアクセスが可能な状態である旨を通知する(#95)。
分析したコマンドがファイル更新(UPDATE)である場合は、ファイル選択の状態をチェックする(#96、#97)。ファイルへのアクセスが可能な状態でなければ、異常である旨を通知する(#98)。ファイルへのアクセスが可能な状態であれば、コマンドに付加されたデータを不揮発性メモリ26にメモリアクセスポイントから書き込む(#99)。そして、書き込みが完了した旨を通知する(#100)。
分析したコマンドが読出し(READ)である場合も、ファイル選択の状態をチェックする(#101、#102)。ファイルへのアクセスが可能な状態でなければ、異常である旨を通知する(#103)。ファイルへのアクセスが可能な状態であれば、コマンドに付加されたデータを不揮発性メモリ26のメモリアクセスポイントから順にデータを読み出す(#104)。そして、読み出したデータを要求元へ送る(#105)。
分析したコマンドがファイル選択、ファイル更新および読出しのいずれでもない他のコマンドであれば、そのコマンドに応じた処理をする(#106)。
上述の実施形態においては、書換え状態フラグファイル5を処理の進行に合わせて逐次に変更するので、一連の更新の対象である複数のブロックの全てをバックアップしておく必要がなく、1つのブロックのみをバックアップしておけばよい。このことは、ROM16の必要容量の低減に貢献する。
上述の実施形態では、差分反映バッファ75を揮発性のRAM17に設けたが、不揮発性メモリに差分反映バッファ75を設けて書込みイメージを作成する場合には、電源復帰後に行う処理と書込み状態フラグ5の内容の関係は図14のようになる。この場合における更新の再開の手順は図15に示される。
1 携帯電話機(電子機器)
2 ICチップ(メモリ回路)
14 電源回路
15 電池(第1電源)
25 蓄電部(第2電源)
26 不揮発性メモリ
60 プログラム格納領域(プログラム記憶部)
64 メモリ領域(差分データ記憶部)
121 プログラム更新部
122 更新管理部
5 書換え状態フラグファイル(書換えの進行段階を示す情報)
123 更新補助部
61,62,63 ブロック
65 メモリ復旧用バッファ(復旧用記憶部)
75 差分反映バッファ(作業用メモリ領域)
101 エアーダウンロード部(ダウンロード部)

Claims (8)

  1. プログラムに従う動作をする電子機器であって、
    第1電源によって電力を供給する電源回路と、
    第2電源およびメモリを有し、前記第2電源からの電力によって前記メモリに対するリードライト動作をするメモリ回路と、
    前記プログラムを記憶するプログラム記憶部と、
    前記プログラムのうちの書換えの対象となる少なくとも一つのブロックの変更内容を示す差分データを記憶する差分データ記憶部と、
    前記ブロックを記憶する復旧用記憶部と、
    前記電源回路が電力を供給する状態において、前記ブロックを前記差分データに基づいて書き換えるプログラム更新部と、
    前記電源回路が電力を供給する状態において、前記プログラム更新部による書換えの進行段階を示す情報を前記メモリ回路に記憶させる更新管理部と、
    前記電源回路が電力を供給しない状態から供給する状態になったときに、前記メモリ回路が記憶する情報を参照して、前記ブロックの書換えを未完の段階から再開する更新補助部と、を備え
    前記プログラム更新部は、前記ブロックを前記復旧用記憶部に記憶させる第1段階の処理と、前記ブロックを作業用メモリ領域に複写する第2段階の処理と、前記作業用メモリ領域において前記差分データに基づいて書換え用データを作成する第3段階の処理と、前記書換え用データを前記ブロックに代えて前記プログラム記憶部に記憶させる第4段階の処理とを実行し、
    前記更新管理部は、第1、第2、第3および第4の段階の各処理について、実行中および完了を示すように前記情報を逐次更新し、
    前記更新補助部は、前記情報が前記第2段階の処理の途中または前記第3段階の途中を示す場合には、前記第2段階から前記ブロックの書換えを再開し、前記情報が前記第4段階の処理の途中を示す場合には、前記復旧用記憶部が記憶する前記ブロックを前記プログラム記憶部に複写する復旧処理を行なった後に、前記第1段階または前記第2段階から前記ブロックの書換えを再開する
    ことを特徴とする電子機器。
  2. 前記プログラム更新部は、前記プログラムの複数のブロックを変更する場合には、前記複数のブロックを1つずつ順に書き換え、
    前記更新補助部は、前記複数のブロックのうちの書き換えられていないブロックから書換えを再開する
    請求項1記載の電子機器。
  3. 前記プログラム更新部は、前記メモリ回路からの前記情報の更新完了を示す通知を受けてから次の段階の処理を実行する
    請求項1または2記載の電子機器。
  4. 前記第1電源は、前記電源回路に対する着脱が可能な電池である
    請求項1ないし3のいずれかに記載の電子機器。
  5. さらに、無線通信によって前記差分データを取得して前記差分データ記憶部に記憶させるダウンロード部を備える
    請求項1ないし4のいずれかに記載の電子機器。
  6. 電子機器に組み込まれたプログラムを部分的に変更するプログラム更新方法であって、
    前記電子機器が第1電源からの電力によって作動可能な状態において、前記プログラムの一部であるブロックを、当該ブロックを復旧用記憶部に記憶させる第1段階の処理と、当該ブロックを作業用メモリ領域に複写する第2段階の処理と、当該作業用メモリ領域において差分データに基づいて書換え用データを作成する第3段階の処理と、当該書換え用データを当該ブロックに代えてプログラム記憶部に記憶させる第4段階の処理とを順に実行することによって書き換えるとともに、書換えの進行段階を示す情報を第2電源およびメモリを有しかつ前記第2電源からの電力によって当該メモリに対するリードライト動作をするメモリ回路によって記憶しておき、
    前記第1電源からの電力供給の停止に伴って中断された前記プログラムの一部の書換えを、前記第1電源からの電力供給が再開されたときに、前記メモリ回路が記憶する情報が前記第2段階の処理の途中または前記第3段階の途中を示す場合には、前記第2段階から再開し、前記情報が前記第4段階の処理の途中を示す場合には、前記復旧用記憶部が記憶する前記ブロックを前記プログラム記憶部に複写する復旧処理を行なった後に、前記第1段階または前記第2段階から再開する
    ことを特徴とするプログラム更新方法。
  7. 前記プログラムの複数のブロックを1つずつ順に変更する一連の書換えが前記第1電源からの電力供給の停止に伴って中断された場合には、前記第1電源からの電力供給が再開されたときに、前記複数のブロックのうちの書き換えられていないブロックから書換えを再開する
    請求項記載のプログラム更新方法。
  8. 電子機器が有するコンピュータのためのコンピュータプログラムであって、
    前記コンピュータによって実行されたときに、
    第1電源による電力供給が行われる状態において、当該コンピュータプログラムの一部であるブロックを、当該ブロックを復旧用記憶部に記憶させる第1段階の処理と、当該ブロックを作業用メモリ領域に複写する第2段階の処理と、当該作業用メモリ領域において差分データに基づいて書換え用データを作成する第3段階の処理と、当該書換え用データを当該ブロックに代えてプログラム記憶部に記憶させる第4段階の処理とを順に実行することによって書き換えるプログラム更新手段と、
    前記第1電源による電力供給が行われる状態において、前記プログラム更新手段による書換えの進行段階を示す情報を、第2電源およびメモリを有しかつ前記第2電源からの電力によって前記メモリに対するリードライト動作をするメモリ回路に記憶させる更新管理手段と、
    前記第1電源による電力供給が停止した状態から電力供給が行われる状態になったときに、前記メモリ回路が記憶する情報が前記第2段階の処理の途中または前記第3段階の途中を示す場合には、前記第2段階から前記ブロックの書換えを再開し、前記情報が前記第4段階の処理の途中を示す場合には、前記復旧用記憶部が記憶する前記ブロックを前記プログラム記憶部に複写する復旧処理を行なった後に、前記第1段階または前記第2段階から前記ブロックの書換えを再開するプログラム更新補助手段と、を前記コンピュータに実現させる
    ことを特徴とするコンピュータプログラム。
JP2009073222A 2009-03-25 2009-03-25 電子機器およびプログラム更新方法 Expired - Fee Related JP5349104B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009073222A JP5349104B2 (ja) 2009-03-25 2009-03-25 電子機器およびプログラム更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009073222A JP5349104B2 (ja) 2009-03-25 2009-03-25 電子機器およびプログラム更新方法

Publications (2)

Publication Number Publication Date
JP2010225012A JP2010225012A (ja) 2010-10-07
JP5349104B2 true JP5349104B2 (ja) 2013-11-20

Family

ID=43042115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009073222A Expired - Fee Related JP5349104B2 (ja) 2009-03-25 2009-03-25 電子機器およびプログラム更新方法

Country Status (1)

Country Link
JP (1) JP5349104B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6019678B2 (ja) * 2012-04-03 2016-11-02 株式会社デンソーウェーブ 携帯端末装置
JP6221903B2 (ja) * 2014-03-31 2017-11-01 京セラドキュメントソリューションズ株式会社 情報処理装置
KR102272228B1 (ko) 2014-05-13 2021-07-06 삼성전자주식회사 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
JP7266216B2 (ja) * 2020-01-31 2023-04-28 パナソニックIpマネジメント株式会社 情報処理装置および情報処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05298196A (ja) * 1992-04-22 1993-11-12 Komatsu Ltd 記憶データ編集方法
JP2003259270A (ja) * 2002-02-27 2003-09-12 Sony Corp データ記録装置、画像記録装置およびデータ記録方法
JP3864337B2 (ja) * 2002-12-27 2006-12-27 富士通株式会社 バージョンアップ方法
JP4483239B2 (ja) * 2003-09-02 2010-06-16 日本電気株式会社 携帯端末ソフトウェアの差分書き換えシステム,方法,携帯端末およびプログラム

Also Published As

Publication number Publication date
JP2010225012A (ja) 2010-10-07

Similar Documents

Publication Publication Date Title
CN109634645B (zh) 固件升级方法及终端
CN101026848B (zh) 移动终端和软件更新方法
JP6185772B2 (ja) 情報処理装置、その制御方法、及びプログラム
JP4768237B2 (ja) 携帯可能電子装置及び携帯可能電子装置の制御方法
WO2010035596A1 (ja) ファームウェア更新装置及び方法
JP2003316595A (ja) インストール方法、ファイル更新方法、プログラム及びコンピュータシステム
JP5349104B2 (ja) 電子機器およびプログラム更新方法
JP2007189332A (ja) ソフトウェア更新方法および移動端末装置
CN105814545B (zh) 电子设备
JP2003216511A (ja) 不揮発性メモリ装置、データ更新方法、データ更新プログラム及びそのプログラムが記録されたコンピュータ読み取り可能な記録媒体
CN110597532A (zh) 一种数据采集模块及其固件升级方法和存储介质
JP2009009391A (ja) 更新処理ソフトウェア自己更新方法および携帯端末装置
JP3634810B2 (ja) メモリ書き替え装置
JP2010026791A (ja) 売上データ処理装置及びプログラム
JP2008009799A (ja) 画像形成装置
JP6192089B2 (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
JP4630741B2 (ja) 省電力時バックアップ型情報処理装置
WO2012077604A1 (ja) 処理装置、プログラム更新方法、およびプログラム
JP2007209131A (ja) 充電装置
JP5158883B2 (ja) ファームウェア更新方法及びファームウェア更新装置
JP2008009494A (ja) 画像形成装置
JP5444698B2 (ja) データ処理装置及びプログラム
JP2007042038A (ja) 端末機器の制御装置及び制御方法
JP2011198375A (ja) 携帯可能電子装置及び携帯可能電子装置の制御方法
JP2010026789A (ja) 売上データ処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130730

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130820

R150 Certificate of patent or registration of utility model

Ref document number: 5349104

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees