JP2010198155A - プログラム更新装置、プログラム更新方法、及び情報処理装置 - Google Patents

プログラム更新装置、プログラム更新方法、及び情報処理装置 Download PDF

Info

Publication number
JP2010198155A
JP2010198155A JP2009040291A JP2009040291A JP2010198155A JP 2010198155 A JP2010198155 A JP 2010198155A JP 2009040291 A JP2009040291 A JP 2009040291A JP 2009040291 A JP2009040291 A JP 2009040291A JP 2010198155 A JP2010198155 A JP 2010198155A
Authority
JP
Japan
Prior art keywords
program
version
update
stored
storage unit
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.)
Pending
Application number
JP2009040291A
Other languages
English (en)
Inventor
Yasuhisa Ishida
泰久 石田
Shigehiko Komoritani
成彦 籠谷
Hironobu Sugimoto
浩伸 杉本
Tomonori Kodan
友紀 小段
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.)
Denso Ten Ltd
Toyota Motor Corp
Original Assignee
Denso Ten Ltd
Toyota Motor Corp
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 Denso Ten Ltd, Toyota Motor Corp filed Critical Denso Ten Ltd
Priority to JP2009040291A priority Critical patent/JP2010198155A/ja
Priority to CN2010800091265A priority patent/CN102334100A/zh
Priority to US13/202,857 priority patent/US20110307879A1/en
Priority to PCT/JP2010/000674 priority patent/WO2010098019A2/en
Priority to EP10704424A priority patent/EP2401674A2/en
Publication of JP2010198155A publication Critical patent/JP2010198155A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】プログラムの更新処理に失敗した場合でも、正常時の動作に復帰することができるプログラム更新方法を提供する。
【解決手段】プログラム更新装置は、第1のバージョンのプログラムを格納する第1格納部と、第1のバージョンと同じ又は第1のバージョンよりも新しいバージョンである第2のバージョンのプログラムを格納する第2格納部と、第2のバージョンのプログラムと第2のバージョンのプログラムよりもバージョンが新しい第3のバージョンのプログラムとの差分を取得する取得部と、第2格納部に格納される第2のバージョンのプログラムと取得部によって取得した差分とから第3のバージョンのプログラムを生成し、生成した第3のバージョンのプログラムを第1格納部に格納する更新部とを備える。
【選択図】図2

Description

本発明は、プログラムの更新処理に関する。
カーナビゲーションシステムを搭載する車載器等は、例えば、道路の新設等に合わせて、地図情報等のアプリケーションプログラムを更新する必要がある。例えば、車載器のオペレーティングシステム及びアプリケーションプログラム等を含むプログラム(以下、まとめてプログラムと称する)を更新する方法として以下の2つが挙げられる。
(1)専門家による更新処理の実施
車載器を保有するユーザがメーカへハードディスク(以下、HDD(Hard Disk Drive))又は車載器そのものを送り、メーカがプログラムの更新処理を実施する方法である。若しくは、自動車の販売業者に自動車を預けて、販売員がプログラムの更新処理を実施する方法である。
この方法では、専門家がプログラムの更新処理を実施するので、プログラムの更新処理の手順、手段等がある程度自由に実施可能である。専門家による更新処理の実施における利点は、例えば、以下の点が挙げられる。
(1)プログラムの個別の更新から、全プログラムの更新まで更新するプログラムの選択が自由に実施可能である。(2)プログラムの更新処理に使用する治具等の専用の接続機器を使用できる。また、機器を分解して記憶媒体を取り出すことも可能である。プログラムの更新に失敗してもやり直すことが可能である。(3)データのバックアップを取ることが可能である。(4)リカバリによって工場出荷時に戻すことも可能である。
専門家によるプログラムの更新処理の実施の以上のような利点に対して、例えば、以下に示す欠点もある。
(1)車載器、又はHDDをメーカに送らなければならない、もしくは、ディーラーへ出向いて自動車を預ける必要があるなどの、ユーザの手間がかかる。(2)車載器、HDD、又は自動車を預けている間は、ユーザはカーナビゲーションシステムの使用ができない。(3)専用の治具の使用、機器の分解等、プロでしかできない作業内容である。
(2)ユーザによる更新処理の実施
CD−ROM(Compact Disck−Read Only Memory)やDVD−ROM(digital Versatile disc)及びその他の記憶媒体に記憶された更新プログラムを利用して、ユーザ自身がプログラムの更新処理を実施する方法である。若しくは、携帯電話や車載器の通信機能等を使用して、外部との通信により更新プログラムをダウンロードして、ユーザ自身がプログラムの更新処理を実施する方法である。ユーザによる更新処理の実施における利点は、例えば、以下の点が挙げられる。
(1)ユーザ自身で実施できるため、メーカへHDDを送ったり、販売店へ自動車を預けたりする必要がない。
ユーザによるプログラムの更新処理の実施の以上のような利点に対して、例えば、以下に示す欠点もある。
(2)車載器は復帰手段を持たないため、プログラムの更新処理に失敗した場合に、最悪の場合、起動が不可能になる事態に陥る可能性がある。(2)CD−ROMやDVD−ROM等を用いる場合、それらを入手する手間がかかる。(3)携帯電話や車載器の通信機能を用いて更新プログラムのデータをダウンロードする場合、パケット料金などの通信量が発生する。ダウンロードするデータが大きければ、通信料も高額になり、時間もかかる。
ユーザによるプログラムの更新処理の方法において、重大な欠点は、プログラムの更新処理に失敗した場合に復帰できない可能性があるという点である。プログラムの更新処理が失敗する原因としては、例えば、プログラムの更新処理中の電源断(自動車のアクセサリ電源の切断等)などが考えられる。
従って、ユーザによってプログラムの更新処理ができ、且つ、更新に失敗した場合に復帰手段を持つプログラム更新方法が望まれていた。
特開2006−301960号公報
本発明は、プログラムの更新処理に失敗した場合でも、正常時の動作に復帰することができるプログラム更新方法を提供することを課題とする。
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、プログラム更新装置は、第1のバージョンのプログラムを格納する第1格納部と、
前記第1のバージョンと同じ又は前記第1のバージョンよりも新しいバージョンである第2のバージョンの前記プログラムを格納する第2格納部と、
前記第2のバージョンのプログラムと前記第2のバージョンのプログラムよりもバージョンが新しい第3のバージョンの前記プログラムとの差分を取得する取得部と、
前記第2格納部に格納される前記第2のバージョンのプログラムと前記取得部によって取得した差分とから前記第3のバージョンのプログラムを生成し、前記生成した第3のバージョンのプログラムを前記第1格納部に格納する更新部とを備える。
本発明によれば、第1格納部に格納される第1のバージョンのプログラムが第3のバージョンのプログラムに更新される一方で、第2格納部には、第2のバージョンのプログラムが保持され続ける。例えば、第3のバージョンのプログラムを生成するステップ、又は、第3のバージョンのプログラムを第1格納部に格納するステップにおいて、コンピュータの電源が断絶する場合でも、第2のバージョンのプログラムが保持され続けているので、第2のバージョンのプログラムを使用して、復帰することができる。
また、本発明の態様は、工場出荷時のバージョンのプログラムと前記工場出荷時のバージョンよりも新しいバージョンである第1のバージョンの前記プログラムとを格納した補助記憶装置と、
前記補助記憶装置からローディングされた前記第1のバージョンのプログラムを保持する主記憶装置と、
電源投入時に前記主記憶装置に保持される第1のバージョンのプログラムを起動するCPUと、を備える装置であって、
前記CPUは、
前記主記憶装置に保持される第1のバージョンのプログラムにエラーがある場合、及び、前記主記憶装置に保持される第1のバージョンのプログラムが今回の電源投入時までの間に所定回数以上動作を中断させていた場合には、前記補助記憶装置に格納された前記第1のバージョンのプログラムを前記主記憶装置にローディングし、
前記主記憶装置に保持される第1のバージョンのプログラムが今回の電源投入時までの間に所定回数以上ローディングに失敗している場合には、前記補助記憶装置に格納された前記工場出荷時のバージョンのプログラムを前記主記憶装置にローディングする。
本発明によれば、主記憶装置にローディングされた第1のバージョンのプログラムデータに異常が発生している場合でも、補助記憶装置から再度第1のバージョンのプログラムのローディングを実行し正常な状態に復帰することができる。また、補助記憶装置からの第1のバージョンのプログラムのローディングが失敗した場合でも、工場出荷時のバージョンのプログラムを使用して装置を起動することができる。このようにして、段階的に処理を行うので、より効率的に復旧処理を行うことができる。また、最終的には、工場出荷時のバージョンのプログラムによって装置の起動が保証される。
本発明によれば、プログラムの更新処理に失敗した場合でも、正常時の動作に復帰することができるプログラム更新方法を提供することができる。
プログラム更新システムの構成例を示す図である。 プログラム更新システムのプログラム更新処理における動作例を示す図である。 プログラム更新処理中に電源断が発生した場合の復帰動作の例について示す図である。 プログラム更新処理中に電源断が発生した場合の復帰動作の例について示す図である。 FROM内のブートフラグの値の例を示す図である。 車載器のリカバリデータの保持の例を示す図である。 正常時の起動動作の流れの例を示す図である。 起動シーケンスの例を示す図である。 異常時シーケンスAで実行される処理の流れの例を示す図である。 異常時シーケンスAの処理フローを示す図である。 異常時シーケンスBで実行される処理を示す図である。 異常時シーケンスBの処理フローを示す図である。
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
<第1実施形態>
本発明のプログラム更新方法は、機器の1つの記憶媒体に、同一のプログラム群を格納するフォルダ(以降、プログラムフォルダと称する)を2個保持する。プログラムの更新処理の際には、一方のプログラムフォルダ内のプログラム群を更新し、他方のプログラムフォルダ内のプログラム群はバックアップとしてそのまま保持する。
2個のプログラムフォルダについて交互にプログラム更新処理を実施することによって、一方のプログラムフォルダはプログラム群を更新して最新のバージョンのプログラム群
を保持することができる。また、他方のプログラムフォルダは更新処理の直前まで使用していたバージョンのプログラム群を保持することができる。プログラムの更新処理の後に、最新のバージョンのプログラム(更新済みのプログラム)が動作しない場合には、プログラム更新処理を実施しなかった(バックアップとしての)プログラムフォルダを選択して、当該プログラムを起動することが可能となる。
<プログラム更新システムの構成例>
図1は、プログラム更新システムの構成例を示す図である。プログラム更新システムは、車載器1と、更新プログラムを保持する、例えば、メーカのサーバであるセンタC1とを含む。
センタC1は、例えば、車載器1に搭載されているプログラムのメーカ等のサーバである。センタC1は、プログラムの更新情報を発信する。センタC1は、バージョン比較部C2を備える。バージョン比較部C2は、車載器1に搭載されているプログラムのバージョンとセンタC1が保持する最新のプログラムのバージョンを比較して差分データを生成する。
車載器1は、ユーザの自動車に搭載されているカーナビゲーションシステムを備える機器である。車載器1は、携帯電話/DCM(Data Communication Module)2と、マスタ機器と3と、スレーブ機器4と、デッキ5とを備える。
携帯電話/DCM2は、外部のセンタC1と無線通信を行うインターフェイスである。
カーナビゲーションシステムを備える車載器では、携帯電話と(専用ケーブル等で)接続して、携帯電話の通信機能を用いてプログラムの差分データをダウンロードする機種もある。また、DCMと呼ばれる車載器専用の通信機を備える機種もある。図1では、センタC1との通信インターフェイスとして、携帯電話とのインターフェイスとDCMとをまとめて携帯電話/DCM2として表示している。
デッキ5は、CD(Compact Disk)、又は、DVD(Digital Versatile Disc)などの外部記憶媒体からプログラムの更新データを読み出す機器である。
マスタ機器3は、マイクロコンピュータ(以下、マイコンと称す)を少なくとも1つ備えており、スレーブ機器4を取りまとめる中心的役割を果たす、車載器1に1台のみ存在する機器である。マスタ機器3のような車載器専用の制御コンピュータをECU(Electonic Control Unit)と呼ぶこともある。
マスタ機器3は、通信部31と、ダウンロード選択部32と、バージョン情報収集部33と、プログラム更新部34と、スレーブ通信部35と、HDD(Hard Disk Drive)36と、DRAM(Dynamic Random Access Memory)37と、FROM(Flash Read Only Memory)38とを備える。
通信部31(「取得部」に相当)は、携帯電話/DCM2又はデッキ5と通信を行う。通信部31は、携帯電話/DCM2又はデッキ5を通じて更新データを受信し、HDD36に格納する。
ダウンロード選択部32は、携帯電話/DCM2又はデッキ5のどちらから更新データをダウンロードするかを選択する。ダウンロード選択部32は、例えば、デッキ5にCD又はDVDが挿入されたことを検知し、デッキ5から更新データのダウンロードを行うこ
とを選択する。
バージョン情報収集部33は、現在のマスタ機器3に搭載されるプログラムのバージョンを管理する。
プログラム更新部34(「更新部」に相当)は、ダウンロードされた更新データから実際にプログラムの更新処理を実施する。プログラム更新部34の詳細については、後述する。
スレーブ通信部35は、スレーブ機器4と接続し、通信を行う。マスタ機器3とスレーブ機器4とは、例えば、LAN(Local Area Network)配線やバス接続によって接続されている。
HDD36は、車載器1上で実行されるプログラムや関連するデータ等を格納する補助記憶装置である。図1においては、マスタ機器3がHDD36を備える図を示している。HDD36は、マスタ機器2及びスレーブ機器4とは独立に車載器1内に備えられてもよい。
DRAM37は、主記憶装置である。DRAM37は、HDD36に格納されているプログラムをローディングするローダプログラムを格納する。ローダプログラムは、あるプログラムを起動するときに、HDD36に格納されているプログラムデータをDRAM37上に展開する。
FROM38は、不揮発性の記憶装置である。FROM38は、ブートプログラムとブートフラグとを格納する。ブートプログラムは車載器1が電源投入等により起動する際の起動プロセスを格納したプログラムである。ブートフラグは、プログラムをローディングするプログラムフォルダを示すフラグを保持する。詳細は、後述する。
スレーブ機器4は、それぞれが独自の機能を果たす。スレーブ機器4には、例えば、デジタルテレビ装置、DVD再生装置等がある。スレーブ機器4は、車載器1の仕様によって、備えられる個数が変わる。
スレーブ機器4の中でも、例えば、デジタルテレビ装置等のように扱うデータ量が多い場合には、1つのマイコンにかかる負荷が大きくなるため、マイコンを複数備えることがある。スレーブ機器4がマイコンを複数備える場合には、複数のマイコンの内の1つのマイコンを親マイコン、その他のマイコンを子マイコンというように分ける。子マイコンは親マイコンを通じてマスタ機器から更新データの受信等を行う。
スレーブ機器4は、共通して、機器通信部411、プログラム更新部412、バージョ
ン情報収集部413を有する。マイコンを複数備えるスレーブ機器4では、親マイコンが機器通信部411、プログラム更新部412、バージョン情報収集部413を有する。スレーブ機器4がマイコンを複数備える場合には、親マイコン、子マイコンそれぞれが互いに通信するための通信部を備える。子マイコンは、親マイコンとの通信インターフェイスである通信部421とプログラム更新部422とを備える。
機器通信部411は、マスタ機器3と接続するインターフェイスである。機器通信部411は、例えば、LAN配線やバス接続等でマスタ機器3と接続する。
バージョン情報収集部413は、スレーブ機器4内の親マイコン及び子マイコンが使用するプログラムのバージョン情報を管理する。バージョン情報収集部413は、マスタ機
器3がダウンロードしたプログラムの更新データとスレーブ機器が実行するプログラムのバージョンとを比較する。
プログラム更新部412及びプログラム更新部422は、マスタ機器3によってダウンロードされた更新データから、スレーブ機器4の親マイコン及び子マイコンそれぞれのプログラム更新処理を行う。プログラム更新部412及びプログラム更新部422については、後述する。
マスタ機器3の通信部31、ダウンロード選択部32、バージョン情報収集部33、プログラム更新部34、及びスレーブ通信部35は、マスタ機器3が備えるマイコンのCPU(Central Processing Unit)、及びそれぞれの機能部の専用の電子回路を含んだICチップ等によって実現される。スレーブ機器4の機器通信部411、プログラム更新部412、422、バージョン情報収集部413、通信部414、422は、スレーブ機器4が備える親マイコン及び子マイコンのCPU、電子回路を含んだICチップ等で実現される。
<プログラムの更新システムの動作例>
図2は、プログラム更新システムのプログラム更新処理における動作例を示す図である。図2では、代表してマスタ機器3がプログラム更新処理を実行する場合を例として説明する。HDD36には、アップデートフォルダとプログラムフォルダAとプログラムフォルダBとが設定されている。アップデートフォルダは、プログラム更新に関するファイルが格納される。プログラムフォルダA及びプログラムフォルダBは、マスタ機器3が使用する全プログラム(以下、プログラム群と称す)が格納されている。図2では、プログラムフォルダAには、バージョン2のプログラム群が格納されており、プログラムフォルダBには、プログラムフォルダAに格納されているプログラム群のバージョンよりも古いバージョン1のプログラム群が格納されているとして説明する。
マスタ機器3のプログラム更新部34は、HDD36のアップデートフォルダ内に管理ファイルを作成する(OP1)。この時点では、管理ファイルは空である。
ダウンロード選択部32は、携帯電話/DCM2からダウンロードするか、デッキ5から更新データと読み出すかを選択し、通信部41に指示を出す。通信部41は、ダウンロード選択部32から指示された方を選択し、差分データファイルをダウンロードする(OP2)。ダウンロードされた差分データファイルはHDD36のアップデートフォルダに保存される。
尚、差分データとは、センタC1又はCD、DVDなどの外部記憶媒体が保持するプログラムと、プログラムフォルダA又はプログラムフォルダBが格納するプログラム群の内最も新しいバージョンのプログラム群との差分データである。バージョン情報収集部33は、プログラムフォルダA及びプログラムフォルダBに格納されているプログラム群のバージョンを管理している。携帯電話/DCM2経由でセンタC1から差分データをダウンロードする場合には、バージョン情報収集部33で管理している内で最も新しいバージョンをセンタC1に通知し、センタC1において最新のバージョンのプログラムとの差分データを生成する。デッキ5を経由して、CD−ROM/DVD−ROM等の外部記憶媒体から差分データを取得する場合には、通信部31は、バージョン情報収集部33で管理している内で最も新しいバージョンのプログラムと、外部記憶媒体に格納されているバージョンのプログラムとの差分のみを読み出す。
差分データファイルのアップデートフォルダへの保存が完了すると、プログラム更新部34は、管理ファイルに差分データのダウンロード済みを記録する(OP3)。管理ファ
イルへの記録方法は、例えば、管理ファイル内の差分データのダウンロード済みを示す「差分データダウンロードフラグ」を立てる。
次に、プログラム更新部34は、ダウンロードされた差分データファイルをモジュール毎の差分データファイルに分割する(OP4)。プログラム更新部34は、モジュール毎の差分データファイルを生成すると、管理ファイルにファイル分割済みであることを記録する(OP5)。管理ファイルへの記録方法は、例えば、管理ファイル内のファイル分割済みを示す「ファイル分割済みフラグ」を立てる。
プログラム更新部34は、FROM38内のブートフラグを確認して、更新対象のプログラムフォルダを決定する(OP6)。ブートフラグは、プログラムフォルダA又はプログラムフォルダBの何れが現在有効になっているかを示すフラグを保持する。例えば、プログラムフォルダAが、現在有効になっているとする。現在プログラムフォルダAが有効になっている場合には、プログラムフォルダAに格納されているプログラム群が、マスタ機器3が搭載するプログラムの最新バージョンであることを示す。従って、ブートフラグでプログラムフォルダAが現在有効なフォルダである場合には、プログラム更新部34は、より古いバージョンのプログラム群を格納するプログラムフォルダBを更新対象のフォルダに決定する。
プログラム更新部34は、更新対象のプログラムフォルダB内に格納されるファイルを全て削除する(OP7)。プログラム更新部34は、更新対象でないプログラムフォルダA内のファイルと差分データファイルとから新たにプログラムファイルをプログラムフォルダBに生成する(OP8)。例えば、プログラムフォルダA内のファイルAと、差分データファイルaとから新ファイルAをプログラムフォルダB内に生成する。新ファイルAの生成が完了すると、プログラム更新部34は、管理ファイル内に新ファイルAを生成済であることを記録する(OP9)。
プログラム更新部34は、プログラムフォルダA格納されているファイル分だけOP8からOP9の処理を繰り返す(OP10)。
プログラムフォルダAに格納されている全ファイルについて新ファイルの生成が完了すると、プログラム更新部34は、FROM38内のブートフラグの有効プログラムフォルダをプログラムフォルダBに設定する(OP11)。プログラム更新部34は、管理ファイル内にブートフラグ更新済みを記録する(OP12)。
プログラム群を格納するプログラムフォルダを2つ用意し、古いバージョンのプログラム群を格納するプログラムフォルダのみを更新することによって、その直前まで使用していた動作確認済みのプログラムフォルダをバックアップとして保持することができる。
図3A及び図3Bは、図2で説明したOP1からOP12の各処理中に電源断が発生した場合の復帰動作の例について示す図である。図3では、車載器1の電源(自動車のアクセサリ電源)が何らかの要因でオフとなり、プログラム更新処理が強制的に終了され、その後、車載器1が起動した場合のプログラム更新処理の復帰動作を示す。
車載器1が再起動した後、アップデートフォルダ内の管理ファイルの中が初期状態(空
)である場合には、プログラム更新部34は、OP1から処理を開始する。管理ファイル
の中身が初期状態である場合には、電源断が発生した時の状態として、管理ファイルの生成処理中(OP1)、差分データのダウンロード中(OP2)、管理ファイルへ差分データのダウンロード済みを記録中(OP3)、であったと考えられる。若しくは、OP1からOP3までの各処理の間であったと考えられる。そのため管理ファイルの中身が初期状
態である場合には、プログラム更新部34は、OP1から処理を開始し、生成途中のファイル(管理ファイル、差分データファイル)が存在する場合には、一旦その生成途中のファイルを破棄して再生成する。
管理ファイルの中身が、差分データダウンロード済みを記録している場合には、すなわち、「差分データダウンロードフラグ」が立っている場合には、プログラム更新部34は、OP4から処理を開始する。この場合には、電源断が発生した時の状態として、差分データファイルを分割してモジュール毎の差分データファイル生成中(OP4)、管理ファイルへモジュール毎に分割した差分データファイル生成済みを記録中(OP5)、の何れかであったと考えられる。若しくは、OP3からOP5までの各処理の移行時であったと考えられる。そのため管理ファイルの中身が差分データダウンロード済みを記録している場合には、プログラム更新部34は、OP4から処理を開始する。
管理ファイルの中身が、差分データダウンロード済みとファイル分割済みとを記録している場合には、すなわち、「差分データダウンロードフラグ」と「ファイル分割済みフラグ」とが立っている場合には、プログラム更新部34は、OP6から処理を開始する。この場合には、電源断が発生した時の状態として、FROM38内のブートフラグのチェック中(OP6)、更新対象プログラムフォルダ内の全ファイルの削除中(OP7)、更新対象プログラムフォルダ内に新ファイルの生成中(OP8)、管理ファイルへ新ファイルの生成済みを記録中(OP9)、の何れかであったと考えられる。若しくは、OP5からOP9までの各処理の移行時であったと考えられる。そのため管理ファイルの中身が差分データダウンロード済みとファイル分割済みとを記録している場合には、プログラム更新部34は、OP6から処理を開始する。
管理ファイルの中身が、差分データダウンロード済みと、ファイル分割済みと、新ファイルX生成済み(X:変数)とを記録している場合には、すなわち、「差分データダウンロードフラグ」と「ファイル分割済みフラグ」と「新ファイルX生成済みフラグ」とが立っている場合には、プログラム更新部34は、OP10から処理を開始する。即ち、プログラム更新部34は、新ファイルXの次のファイルの新ファイル生成から処理を開始する。この場合には、電源断が発生した時の状態として、更新対象プログラムフォルダ内に新ファイルの生成中、管理ファイルへ新ファイルの生成済みを記録中、の何れかであったと考えられる。そのため管理ファイルの中身が差分データダウンロード済みと、ファイル分割済みと、新ファイルX生成済みとを記録している場合には、プログラム更新部34は、ファイルXの次のファイルの新ファイルの生成から処理を開始する。
管理ファイルの中身が、差分データダウンロード済みと、ファイル分割済みと、全ファイル生成済みとを記録している場合には、すなわち、「差分データダウンロードフラグ」と、「ファイル分割済みフラグ」と、「新ファイルX生成済みフラグ」が全ファイルについて立っている場合には、プログラム更新部34は、FROM38内のブートフラグを参照してプログラムのロードを開始する。この場合には、電源断が発生した時の状態として、FROM38内のブートフラグの有効フォルダを更新中(OP11)、管理ファイルへブートフラグの更新済みを記録中、の何れかであったと考えられる。そのため管理ファイルの中身が差分データダウンロード済みと、ファイル分割済みと、全ファイル生成済みとを記録している場合には、プログラム更新部34は、ブートフラグの内容を参照してプログラムをロードする。
管理ファイルにおいて、プログラム更新処理の進捗状況を管理することによって、プログラム更新処理が電源断等によって強制終了された場合でも、管理ファイルを参照することによって、強制終了された(と予想される)処理から再開することができる。
<ブートフラグの値の例>
図4は、FROM38内のブートフラグの値の例を示す図である。例えば、プログラムフォルダ毎に、ブートフラグを保持する。すなわち、FROM38内にブートフラグA及びブートフラグBを保持し、これによって、ローディング時にロードすべきプログラムフォルダの選択を行う(有効なプログラムフォルダを示す)。
図4では、プログラムフォルダAの状態を示すブートフラグAと、プログラムフォルダBの状態を示すブートフラグBとが、それぞれ16ビットで構成される例を示す。図4では、各ブートフラグの値を16進数表記している。各ブートフラグは、「0x0000」が無効、「0x0001」が有効を示す。FROM38の特性として、ブートフラグを書き換える(更新する)場合には、いったんブートフラグのデータを無効にする必要があるため、「0xFFFF」としてデータをクリアする。また、図4では、ブートフラグの更新は、プログラムフォルダAの更新がプログラムフォルダBの更新に優先して行われる場合を示す。ブートフラグA及びブートフラグBの状態遷移は、以下に示す状態1から状態2,3,4を経て状態5、若しくは、状態5から状態6,7,8を経て状態1に遷移するとする。
状態1は、ブートフラグAが「0x0001」、ブートフラグBが「0x0000」である状態である。すなわち、プログラムフォルダAが現在有効なプログラムファイルとして選択されている状態を示す。
状態2は、ブートフラグAが「0xFFFF」、ブートフラグBが「0x0000」である状態である。この場合には、ブートフラグAは書き換えられている最中であることを示し、ブートフラグBの値は無効を示すものの、ブートフラグAが更新中であることを鑑みて、現在有効なプログラムフォルダはプログラムフォルダBであると判断する。
状態3は、ブートフラグAが「0x0000」、ブートフラグBが「0x0000」である状態である。この場合には、ブートフラグAおよびブートフラグBの双方が更新中であることを示し、状態1から状態5への過渡期であることを鑑みて、プログラムフォルダBが有効なプログラムフォルダであると判断する。
状態4は、ブートフラグAが「0x0000」、ブートフラグBが「0xFFFF」である状態である。ブートフラグBは書き換えられている最中であることを示す。ブートフラグAが優先的に更新されることを鑑みて、プログラムフォルダBが現在有効なプログラムフォルダであることを判断する。
状態5は、ブートフラグAが「0x0000」、ブートフラグBが「0x0001」である状態である。この場合、プログラムフォルダAは無効で、プログラムフォルダBが有効である。
状態6は、ブートフラグAが「0xFFFF」、ブートフラグBが「0x0001」である状態である。ブートフラグAは書き換えられている最中であり、状態5から遷移することを鑑みて、プログラムフォルダAは有効で、プログラムフォルダBは無効であると判断する。
状態7は、ブートフラグAが「0x0001」、ブートフラグBが「0x0001」である状態である。この場合には、ブートフラグAおよびブートフラグBの双方が更新中であることを示し、状態5から状態1への過渡期であることを鑑みて、プログラムフォルダAが有効なプログラムフォルダであると判断する。
状態8は、ブートフラグAが「0x0001」、ブートフラグBが「0xFFFF」である状態である。ブートフラグBは書き換えられている最中であることを示す。ブートフラグAが優先的に更新されることを鑑みて、プログラムフォルダAが現在有効なプログラムフォルダであることを判断する。
車載器1が起動したときに、ブートフラグの値が状態2から状態4の場合は状態5の値に、状態6から状態8の場合は状態1の値に書き換えてから起動する。
<起動シーケンスの例>
プログラム更新処理が完了すると、車載器1、マスタ機器3、もしくは各スレーブ機器4を再起動して、更新した最新バージョンのプログラムをローディングする処理を実行する。このとき、プログラム更新処理は成功したとしても、更新した最新バージョンのプログラムのローディング処理に異常が発生する等の可能性がある。このようなプログラムのローディングの異常の原因としては、更新プログラムにバグがある、更新プログラムをDRAM37上にローディングするときにビット化けが生じる等が考えられる。このような、更新後のプログラムが起動しない場合に、復帰する手段として、第1実施形態の車載機1では、HDD36にリカバリデータを保持する。
図5は、車載器1のリカバリデータの保持の例を示す図である。HDD36は、ローダフォルダとリカバリフォルダを保持している。ローダフォルダには、ローディング処理を実行するローダプログラムが格納されている。リカバリフォルダには、リカバリプログラムと各機器(マスタ機器、スレーブ機器)の工場出荷状態のプログラムが格納されている。リカバリプログラムは、リカバリ処理を実行するプログラムである。
<<正常時の起動動作の流れの例>>
図6は、正常時の起動動作の流れの例を示す図である。図6は、車載器1に電源が投入されて、マスタ機器3がスレーブ機器4を含む起動シーケンスを実行する場合について説明する。マスタ機器3は、車載器1又はマスタ機器3に電源が投入されると、FROM38内に格納されているブートプログラムが起動する(OP21)。ブートプログラムを実行する機器のCPUは、DRAM37にロードされているアプリケーションプログラムのエラー検出を行う(OP22)。
アプリケーションプログラムのエラーチェックは、チェックサムによるエラー検出、異常リセット発生回数のチェック、異常ローディングの発生回数のチェックが行われる。異常リセットは、アプリケーションプログラムにバグがあると自発的にリセットを行うことがある。異常リセット回数は、ログとして記録された、今回の起動までにアプリケーションプログラムがリセットされた回数である。異常ローディングとは、HDD36に格納されたアプリケーションプログラムをDRAM37にコピーする処理に失敗することである。異常ローディング回数とは、今回の起動までに異常ローディングが発生した回数である。
アプリケーションプログラムのエラーチェックにおいて、異常がない場合には、その後、DRAM37にロードされているアプリケーションプログラムを実行する(OP23)。
正常時には、CPUは、HDD36に格納されているプログラムフォルダを参照せず、DRAM37にロードされているアプリケーションプログラムのデータを使用して起動する。
<<異常が発生した場合の起動時の動作の例>>
図7は、起動シーケンスの例を示す図である。図7も、図6と同様に、マスタ機器3が起動シーケンスを行う場合について説明する。
車載器1又はマスタ機器3に電源が投入される(又は、再起動される)と、FROM38に格納されたブートプログラムを起動する(OP31)。
マスタ機器3のCPUは、ログに記録されたアプリケーションプログラムの異常リセット回数Xをチェックする(OP32)。アプリケーションプログラムの異常リセット回数Xが予め設定された所定回数以上の値か否かを確認する。アプリケーションの異常リセット回数Xが所定回数以上の値である場合には(OP32:Y)、異常時シーケンスAに処理が移る(OP38)。異常時シーケンスAについては、後述する。
アプリケーションプログラムの異常リセット回数Xが所定値より小さい値である場合には(OP32:N)、異常ローディング回数Yが予め設定された所定回数以上の値か否かを判定する(OP33)。異常ローディング回数Yが所定回数以上の値である場合には(OP33:Y)、異常時シーケンスBに処理が移る(OP37)。異常時シーケンスBについては、後述する。
アプリケーションプログラムの異常ローディング回数Yが所定回数よりも小さい場合には(OP33:N)、チェックサムを確認する(OP34)。チェックサムに異常がある場合には(OP34:Y)、異常時シーケンスAに処理が移る(OP38)。チェックサムに異常がない場合には(OP34:N)、アプリケーションプログラムを起動する(OP35)。
CPUは、アプリケーションプログラムの異常リセットの発生を監視しており、異常リセットが発生した場合には(OP36)、異常リセット回数Xに1を加え、異常リセットの発生を記録する(OP39)。
<<異常時シーケンスA>>
図8は、異常時シーケンスA、すなわち、異常リセット回数Xが所定回数以上の値である場合と、チェックサムに異常がある場合とに実行される処理の流れの例を示す図である。図9は、異常時シーケンスAの処理フローを示す図である。図8と図9とは、同じ処理には同じ符号を付して示す。
異常リセット回数Xが所定回数以上の値である場合、及び、チェックサムに異常がある場合には、DRAM37にロードされているローダプログラムをHDD36のローダフォルダから再度ローディングする(OP41)。次に、ローディングされたローダプログラムを起動する(OP42)。
起動されたローダプログラムに従って、CPUは、FROM38内のブートフラグをチェックして、現在有効なプログラムフォルダを取得する(OP43)。CPUは、HDD36に格納されている現在有効なプログラムフォルダからアプリケーションプログラムを再度ローディングする(OP44)。
アプリケーションプログラムのローディング時に異常が発生した場合には(OP45:Y)、異常ローディング回数Yに1を加え、異常ローディングの発生を記録する(OP46)。その後、再起動して図7に示す処理を再度実行する(OP47)。
アプリケーションプログラムのローディングに成功した場合にも(OP45:N)、再起動をして、図7に示す処理を再度実行する(OP47)。
<<異常時シーケンスB>>
図10は、異常時シーケンスB、すなわち、異常ローディング回数Yが所定回数以上の値である場合に実行される処理を示す図である。図11は、異常時シーケンスBの処理フローを示す図である。図10と図11とは、同じ処理には同じ符号を付して示す。
異常ローディング回数Yが所定回数以上の値である場合には、まず、車載器1のユーザに対して、リカバリ処理を実行するか否かを問い合わせるコーションを表示する(OP51)。表示されるコーションは、例えば、「プログラムファイル異常のため、起動できません。工場出荷状態に戻します。よろしいですか。(YES/NO)」など、ユーザにリカバリ処理の実行の確認を求める内容である。
ユーザは、コーション表示に対して、入力を行う(OP52)。ユーザがリカバリ処理を実行することを選択すると(OP53:Y)、CPUはリカバリプログラムをHDD36内のリカバリファイルからローディングする(OP54)。ローディングされたリカバリファイルを起動し(OP55)、HDD36のリカバリフォルダから工場出荷状態のアプリケーションプログラムをローディングする(OP56)。その後、再起動して図7に示す処理を再度実行する(OP57)。
ユーザがリカバリ処理の実行を選択しなかった場合には(OP53:N)、再起動を行う旨のコーションを表示する(OP58)。このとき表示されるコーションは、例えば、「システムを再起動します。」等、ユーザに再起動の確認を行う内容である。その後、再起動して図7に示す処理を再度実行する(OP57)。
<第1実施形態の作用効果>
プログラムを格納するプログラムフォルダを2個保持し、プログラムの更新処理を行う場合には、どちらか一方のみを更新する。もう一方はバックアップとして保持する。これによって、プログラム更新処理中に電源断等で処理が強制終了された場合でも、元の動作保障されたプログラムのデータを失うことがない。
プログラム更新処理において、進捗状況を管理ファイルに記録することによって、プログラム更新処理が電源断等により強制終了された場合でも、管理ファイルに完了が記録された処理の次の処理から再開することができる。したがって、プログラム更新処理を最初からやり直す必要がなく、時間を省くことができる。
マスタ機器3がスレーブ機器4の更新プログラムのダウンロードも一括して行う。スレーブ機器4のプログラム更新処理を行う際には、専用の治具が必要となる場合があった。しかし、プログラム更新の窓口をマスタ機器3に一本化されることで、専用の治具がなくてもユーザがスレーブ機器4のプログラム更新処理を行うことができる。
更新プログラムをセンタC1からダウンロードする際には、車載器1が保持するプログラムと、センタC1が保持する新しいバージョンのプログラムとの差分データのみをダウンロードする。これによって、センタC1と車載器1との間の通信量を少なく抑えることができ、データをダウンロードする時間も短くすることができる。パケット通信等従量課金制の通信の場合には、通信量を抑えることができる。
起動時には、DRAM内のアプリケーションプログラムのチェックサム、異常リセット回数、異常ローディング回数といった、3種のパラメータをチェックすることによって、起動方法を判断する。これによって、段階的にリカバリを実行でき、効率がよい。また、リカバリフォルダ内には工場出荷状態の全プログラムが格納されているので、最終的には
、工場出荷状態にフルリカバリすることができ、起動が保証される。
第1実施形態によれば、ユーザ自身がプログラム更新処理を行うことができ、且つ、プログラム更新処理の中断や、プログラム更新処理の失敗により起動不可能な状態になった場合でも、正常な状態に復帰することができる。
<変形例>
管理ファイルを、プログラムファイルのように2個用意し、二重化してもよい。例えば、プログラム更新処理が開始されると、アップデートフォルダ内の管理ファイルAのコピーを生成する。この管理ファイルAのコピーファイルを管理ファイルBとする。管理ファイルAはそのまま保持し、プログラム更新処理では管理ファイルBを更新する。プログラム更新処理が完了した時点で、管理ファイルAを削除する。このようにすることによって、プログラム更新処理中に電源断が発生した場合でも、管理ファイルAをバックアップとして保持できるため、管理ファイルの内容が失われることを防ぐことができる。
また、管理ファイルBの更新中に電源断等が発生した場合には、例えば、以下のように判断することで、処理を再開した場合に適切な管理ファイルを選択することができる。
(1)管理ファイルAが存在し、且つ管理ファイルBが存在しない場合には、管理ファイルAを参照する。
(2)管理ファイルA及び管理ファイルBが存在する場合には、管理ファイルAを参照し、管理ファイルBは削除する。
(3)管理ファイルAが存在せず、且つ、管理ファイルBが存在する場合には、管理ファイルBを参照する。
第1実施形態では、プログラムフォルダ内に格納されているプログラム群を一括して更新する処理について説明した。これに代えて、個々のプログラムを更新することも可能である。個々のプログラムを指定して更新する場合は、ブートフラグで示される有効なプログラムフォルダに格納されている方のプログラムを更新する。更新が完了したら、更新されたプログラムについて、更新済みであることを管理ファイルに記録しておく。
第1実施形態では、異常時シーケンスBにおいて、リカバリフォルダから工場出荷状態のプログラムをローディングした。これに代えて、異常時シーケンスBにおいて、ブートフラグをチェックし、現在有効ではないプログラムフォルダ、すなわち、更新前の動作実績のある旧バージョンのプログラムをローディングしてもよい。
また、第1実施形態では、マスタ機器3が各スレーブ機器4のプログラム更新処理、及び、リカバリ処理を行う場合について説明した。本発明は、これに限られるものではなく、自己が使用するアプリケーションプログラムについて、各スレーブ機器4でプログラム更新処理、及び、リカバリ処理を行ってもよい。
1 車載器
2 携帯電話/DCM
3 マスタ機器
4 スレーブ機器
5 デッキ
31 通信部
32 ダウンロード選択部
33 バージョン情報収集部
34 プログラム更新部
35 スレーブ通信部
36 HDD
37 DRAM
38 FROM
41 親マイコン
42 子マイコン
411 機器通信部
412 プログラム更新部
413 バージョン情報収集部
414 通信部
421 通信部
422 プログラム更新部

Claims (5)

  1. 第1のバージョンのプログラムを格納する第1格納部と、
    前記第1のバージョンと同じ又は前記第1のバージョンよりも新しいバージョンである第2のバージョンのプログラムを格納する第2格納部と、
    前記第2のバージョンのプログラムと前記第2のバージョンのプログラムよりもバージョンが新しい第3のバージョンのプログラムとの差分を取得する取得部と、
    前記第2格納部に格納される前記第2のバージョンのプログラムと前記取得部によって取得した差分とから前記第3のバージョンのプログラムを生成し、前記生成した第3のバージョンのプログラムを前記第1格納部に格納する更新部と
    を備えるプログラム更新装置。
  2. 前記第1格納部と前記第2格納部とのどちらに格納されているプログラムを使用するかを示す情報を保持する記憶部をさらに備え、
    前記更新部は、前記取得した差分と、前記第2格納部に格納される前記第2のバージョンのプログラムと、から前記第3のバージョンのプログラムを生成し、前記生成した第3のバージョンのプログラムを前記第1格納部に格納した場合に、前記記憶部によって保持される前記情報を前記第1格納部に格納されているプログラムを使用することを示す情報に更新する
    請求項1に記載のプログラム更新装置。
  3. 前記差分を取得する処理、前記第3のバージョンのプログラムを生成する処理、及び、前記生成した第3のプログラムを第1格納部に格納する処理のそれぞれについて処理の完了を示す管理情報を格納する管理情報格納部を
    さらに備え、
    前記更新部は、前記差分を取得する処理、前記第3のバージョンのプログラムを生成する処理、及び、前記生成した第3のプログラムを第1格納部に格納する処理の各処理が完了した場合に、該処理の完了を示す管理情報を前記管理情報格納部に格納し、前一連の処理が中断された場合に、前記管理情報格納部に格納されている管理情報に基づいて、処理の完了が示されていない処理を実行する
    請求項1に記載のプログラム更新装置。
  4. 第1のバージョンのプログラムを格納する第1格納部と、
    前記第1のバージョンと同じ又は前記第1のバージョンよりもバージョンが新しい第2のバージョンのプログラムを格納する第2格納部と、を備えるコンピュータが、
    前記第2のバージョンのプログラムと前記第2のバージョンよりもバージョンが新しい第3のバージョンのプログラムとの差分を取得するステップと、
    前記第2格納部に格納される前記第2のバージョンのプログラムと前記取得した差分とから前記第3のバージョンのプログラムを生成するステップと、
    前記第1格納部に格納される前記第1のバージョンのプログラムを削除して、前記生成した第3のバージョンのプログラムを前記第1格納部に格納するステップと、を実行するプログラム更新方法。
  5. 工場出荷時のバージョンのプログラムと前記工場出荷時のバージョンよりも新しいバージョンである第1のバージョンのプログラムとを格納した補助記憶装置と、
    前記補助記憶装置からローディングされた前記第1のバージョンのプログラムを保持する主記憶装置と、
    電源投入時に前記主記憶装置に保持される第1のバージョンのプログラムを起動するCPUと、を備える装置であって、
    前記CPUは、
    前記主記憶装置に保持される第1のバージョンのプログラムにエラーがある場合、及び、前記主記憶装置に保持される第1のバージョンのプログラムが今回の電源投入時までの間に所定回数以上動作を中断させていた場合には、前記補助記憶装置に格納された前記第1のバージョンのプログラムを前記主記憶装置にローディングし、
    前記主記憶装置に保持される第1のバージョンのプログラムが今回の電源投入時までの間に所定回数以上ローディングに失敗している場合には、前記補助記憶装置に格納された前記工場出荷時のバージョンのプログラムを前記主記憶装置にローディングする
    情報処理装置。
JP2009040291A 2009-02-24 2009-02-24 プログラム更新装置、プログラム更新方法、及び情報処理装置 Pending JP2010198155A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2009040291A JP2010198155A (ja) 2009-02-24 2009-02-24 プログラム更新装置、プログラム更新方法、及び情報処理装置
CN2010800091265A CN102334100A (zh) 2009-02-24 2010-02-04 程序更新设备、程序更新方法以及信息处理设备
US13/202,857 US20110307879A1 (en) 2009-02-24 2010-02-04 Program update device, program update method, and information processing device
PCT/JP2010/000674 WO2010098019A2 (en) 2009-02-24 2010-02-04 Program update device, program update method, and information processing device
EP10704424A EP2401674A2 (en) 2009-02-24 2010-02-04 Program update device, program update method, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009040291A JP2010198155A (ja) 2009-02-24 2009-02-24 プログラム更新装置、プログラム更新方法、及び情報処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012137193A Division JP2012198929A (ja) 2012-06-18 2012-06-18 情報処理装置

Publications (1)

Publication Number Publication Date
JP2010198155A true JP2010198155A (ja) 2010-09-09

Family

ID=42104607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009040291A Pending JP2010198155A (ja) 2009-02-24 2009-02-24 プログラム更新装置、プログラム更新方法、及び情報処理装置

Country Status (5)

Country Link
US (1) US20110307879A1 (ja)
EP (1) EP2401674A2 (ja)
JP (1) JP2010198155A (ja)
CN (1) CN102334100A (ja)
WO (1) WO2010098019A2 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014124978A (ja) * 2012-12-25 2014-07-07 Honda Motor Co Ltd データ書込み方法及びデータ書込み装置
JP2017228077A (ja) * 2016-06-22 2017-12-28 富士通株式会社 電子機器、ファームウェアアップデート方法およびコンピュータプログラム
JP2018063659A (ja) * 2016-10-14 2018-04-19 日立オートモティブシステムズ株式会社 ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
WO2019092961A1 (ja) * 2017-11-13 2019-05-16 株式会社デンソー 自動運転制御装置、車両の自動運転制御方法
US20190235855A1 (en) * 2016-06-02 2019-08-01 Sumitomo Electric Industries, Ltd. Relay device, program update system, and program update method
JP2019175024A (ja) * 2018-03-28 2019-10-10 日立オートモティブシステムズ株式会社 車載制御装置
JP2019175099A (ja) * 2018-03-28 2019-10-10 トヨタ自動車株式会社 リプログラミング方法
US10732958B2 (en) 2016-03-01 2020-08-04 Yanmar Co., Ltd. Terminal device and software rewriting program
JP2020142565A (ja) * 2019-03-04 2020-09-10 株式会社オートネットワーク技術研究所 車載更新装置、更新処理プログラム及び、プログラムの更新方法
JP2020201986A (ja) * 2020-09-03 2020-12-17 日立オートモティブシステムズ株式会社 ソフトウェア更新装置、ソフトウェア更新方法
CN112579338A (zh) * 2020-12-30 2021-03-30 浪潮电子信息产业股份有限公司 一种设备的启动方法、系统及存储介质
JPWO2020080321A1 (ja) * 2018-10-15 2021-05-13 株式会社オートネットワーク技術研究所 車載更新装置、更新処理プログラム、プログラムの更新方法及び車載更新システム
JP2021073542A (ja) * 2020-12-15 2021-05-13 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US11061658B2 (en) 2016-03-02 2021-07-13 Sumitomo Electric Industries, Ltd. Prioritized upgrade of vehicles
US11144295B2 (en) 2016-03-02 2021-10-12 Sumitomo Electric Industries, Ltd. Program updating system, program updating method, and computer program
JP2022012834A (ja) * 2020-07-02 2022-01-17 トヨタ自動車株式会社 ソフトウェア更新装置、方法、プログラムおよび車両

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5656563B2 (ja) * 2010-11-02 2015-01-21 キヤノン株式会社 文書管理システム、文書管理システムの制御方法、プログラム
JP5800685B2 (ja) * 2010-11-26 2015-10-28 キヤノン株式会社 情報処理装置及びサーバ、制御方法、プログラム及び記録媒体
CN102521031B (zh) 2011-12-13 2014-11-05 华为终端有限公司 移动终端预置应用程序的管理方法和移动终端
CN102662699A (zh) * 2012-03-27 2012-09-12 惠州Tcl移动通信有限公司 一种更新移动终端nfc固件的方法及其移动终端
JP2013254264A (ja) * 2012-06-05 2013-12-19 Denso Corp 電子制御装置
US8813061B2 (en) * 2012-10-17 2014-08-19 Movimento Group Module updating device
CN102944243B (zh) * 2012-11-16 2016-12-21 沈阳美行科技有限公司 一种地图数据可以增量更新的方法
CN103902562B (zh) * 2012-12-26 2017-11-10 腾讯科技(深圳)有限公司 一种终端数据库升级方法及相关装置
CN103067499A (zh) * 2012-12-27 2013-04-24 科世达(上海)管理有限公司 一种数据处理方法及装置
US9075686B2 (en) * 2013-02-25 2015-07-07 GM Global Technology Operations LLC System and method to improve control module reflash time
CN105247482B (zh) * 2013-06-28 2019-10-22 三星电子株式会社 更新应用的方法和装置
KR101707266B1 (ko) * 2013-08-29 2017-02-15 엘에스산전 주식회사 Plc에서의 os의 업데이트 장치 및 방법
US9940762B2 (en) * 2013-09-25 2018-04-10 Ford Global Technologies, Llc Systems and methods for identification of a compromised module
EP2955629B1 (en) * 2014-06-11 2021-10-27 Home Control Singapore Pte. Ltd. System for installing new firmware on a small-memory device
CN105335134A (zh) * 2014-06-30 2016-02-17 北京金山安全软件有限公司 处理app的cpu占用率异常的方法、装置及移动终端
CN104200181B (zh) * 2014-08-13 2017-04-05 上海无线电设备研究所 一种双功能智能烧写模块及方法
WO2016047312A1 (ja) * 2014-09-26 2016-03-31 日立オートモティブシステムズ株式会社 車両制御装置、リプログラミングシステム
US9639344B2 (en) * 2014-12-11 2017-05-02 Ford Global Technologies, Llc Telematics update software compatibility
US9575837B2 (en) * 2015-02-03 2017-02-21 Uber Technologies, Inc. System and method for introducing functionality to an application for use with a network service
US10212536B2 (en) 2015-07-10 2019-02-19 Uber Technologies, Inc. Selecting a messaging protocol for transmitting data in connection with a location-based service
US11533226B2 (en) 2015-10-13 2022-12-20 Uber Technologies, Inc. Application service configuration system
US10158528B2 (en) 2015-10-13 2018-12-18 Uber Technologies, Inc. Application service configuration system
US11092446B2 (en) 2016-06-14 2021-08-17 Motional Ad Llc Route planning for an autonomous vehicle
US10126136B2 (en) 2016-06-14 2018-11-13 nuTonomy Inc. Route planning for an autonomous vehicle
US10309792B2 (en) 2016-06-14 2019-06-04 nuTonomy Inc. Route planning for an autonomous vehicle
US10829116B2 (en) 2016-07-01 2020-11-10 nuTonomy Inc. Affecting functions of a vehicle based on function-related information about its environment
US10473470B2 (en) 2016-10-20 2019-11-12 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10681513B2 (en) 2016-10-20 2020-06-09 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10857994B2 (en) 2016-10-20 2020-12-08 Motional Ad Llc Identifying a stopping place for an autonomous vehicle
US10331129B2 (en) 2016-10-20 2019-06-25 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
CN107885518B (zh) * 2017-11-07 2021-04-20 惠州华阳通用电子有限公司 一种车载系统升级异常日志记录方法及装置
DE102018211979A1 (de) * 2018-07-18 2020-01-23 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur zentralen Update-Verwaltung für ein Fahrzeug und System zur zentralen Update-Verwaltung für ein Fahrzeug
JP7408937B2 (ja) * 2018-08-10 2024-01-09 株式会社デンソー センター装置,配信パッケージの生成方法及び配信パッケージ生成用プログラム
CN109343875A (zh) * 2018-08-30 2019-02-15 百度在线网络技术(北京)有限公司 应用程序更新处理方法、装置、无人驾驶车辆及服务器
US10977105B2 (en) 2018-12-14 2021-04-13 Uber Technologies, Inc. Memory crash prevention for a computing device
CN111625840A (zh) * 2020-05-29 2020-09-04 杭州海康威视数字技术股份有限公司 程序校验方法、程序升级方法及装置
WO2022093178A1 (en) * 2020-10-26 2022-05-05 Hewlett-Packard Development Company, L.P. Ci/cd pipeline code recommendations
WO2022093172A1 (en) * 2020-10-26 2022-05-05 Hewlett-Packard Development Company, L.P. Ci/cd pipeline code file duplication notifications
US20240061668A1 (en) * 2022-08-16 2024-02-22 Sap Se Automatic upgrade of on-premise software

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004355310A (ja) * 2003-05-29 2004-12-16 Konica Minolta Business Technologies Inc 画像処理装置
JP2008112315A (ja) * 2006-10-31 2008-05-15 Hioki Ee Corp 電子機器およびプログラム書換え方法
JP2009009391A (ja) * 2007-06-28 2009-01-15 Sony Ericsson Mobilecommunications Japan Inc 更新処理ソフトウェア自己更新方法および携帯端末装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3517171A (en) * 1967-10-30 1970-06-23 Nasa Self-testing and repairing computer
US6314532B1 (en) * 1998-12-04 2001-11-06 Lucent Technologies Inc. Method and system for recovering from a software failure
JP3841581B2 (ja) * 1999-01-18 2006-11-01 富士通テン株式会社 車載端末におけるプログラムのダウンロード後の新旧バージョン切り替え方式
AU5025600A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Process control configuration system with parameterized objects
FR2794546B1 (fr) * 1999-06-03 2001-10-05 Sagem Procede de telechargement d'un programme dans un equipement
JP2000357216A (ja) * 1999-06-15 2000-12-26 Dainippon Printing Co Ltd Icカード
EP1077407A1 (en) * 1999-07-29 2001-02-21 International Business Machines Corporation Method of upgrading a program using associated configuration data
US6584559B1 (en) * 2000-01-28 2003-06-24 Avaya Technology Corp. Firmware download scheme for high-availability systems
CA2398838A1 (en) * 2000-03-01 2001-09-07 Computer Associates Think, Inc. Method and system for updating an archive of a computer file
KR100455566B1 (ko) * 2000-06-30 2004-11-09 인터내셔널 비지네스 머신즈 코포레이션 코드 갱신을 위한 장치 및 방법
US6772364B1 (en) * 2000-12-28 2004-08-03 Nortel Networks Limited Fault tolerant field updating with alternation of memory areas
US7089450B2 (en) * 2003-04-24 2006-08-08 International Business Machines Corporation Apparatus and method for process recovery in an embedded processor system
EP2273361B1 (en) * 2003-06-23 2012-09-19 Red Bend Ltd. Method and system for updating versions of content stored in a storage device
US7441154B2 (en) * 2003-09-12 2008-10-21 Finisar Corporation Network analysis tool
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US7809763B2 (en) * 2004-10-15 2010-10-05 Oracle International Corporation Method(s) for updating database object metadata
JP4548601B2 (ja) 2005-04-20 2010-09-22 株式会社デンソー 自動車用制御ユニット
US7418453B2 (en) * 2006-06-15 2008-08-26 International Business Machines Corporation Updating a data warehouse schema based on changes in an observation model
EP2229625B1 (en) * 2007-12-13 2011-08-31 Telefonaktiebolaget LM Ericsson (publ) Updating firmware of an electronic device
US20090260004A1 (en) * 2008-04-10 2009-10-15 Palm, Inc. Computer program updates for mobile computing device
WO2009132261A1 (en) * 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor
US8392915B2 (en) * 2008-11-19 2013-03-05 Oracle International Corporation Efficient volume manager hot swapping

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004355310A (ja) * 2003-05-29 2004-12-16 Konica Minolta Business Technologies Inc 画像処理装置
JP2008112315A (ja) * 2006-10-31 2008-05-15 Hioki Ee Corp 電子機器およびプログラム書換え方法
JP2009009391A (ja) * 2007-06-28 2009-01-15 Sony Ericsson Mobilecommunications Japan Inc 更新処理ソフトウェア自己更新方法および携帯端末装置

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014124978A (ja) * 2012-12-25 2014-07-07 Honda Motor Co Ltd データ書込み方法及びデータ書込み装置
US10732958B2 (en) 2016-03-01 2020-08-04 Yanmar Co., Ltd. Terminal device and software rewriting program
US11144295B2 (en) 2016-03-02 2021-10-12 Sumitomo Electric Industries, Ltd. Program updating system, program updating method, and computer program
US11061658B2 (en) 2016-03-02 2021-07-13 Sumitomo Electric Industries, Ltd. Prioritized upgrade of vehicles
US20190235855A1 (en) * 2016-06-02 2019-08-01 Sumitomo Electric Industries, Ltd. Relay device, program update system, and program update method
US10552143B2 (en) 2016-06-02 2020-02-04 Sumitomo Electric Industries, Ltd. Relay device, program update system, and program update method
JP2017228077A (ja) * 2016-06-22 2017-12-28 富士通株式会社 電子機器、ファームウェアアップデート方法およびコンピュータプログラム
JP2018063659A (ja) * 2016-10-14 2018-04-19 日立オートモティブシステムズ株式会社 ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
WO2018070156A1 (ja) * 2016-10-14 2018-04-19 日立オートモティブシステムズ株式会社 ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
US11467818B2 (en) 2016-10-14 2022-10-11 Hitachi Astemo, Ltd. Software update device, software update method, and software update system
WO2019092961A1 (ja) * 2017-11-13 2019-05-16 株式会社デンソー 自動運転制御装置、車両の自動運転制御方法
JP2019089382A (ja) * 2017-11-13 2019-06-13 株式会社デンソー 自動運転制御装置、車両の自動運転制御方法
JP2019175099A (ja) * 2018-03-28 2019-10-10 トヨタ自動車株式会社 リプログラミング方法
JP2019175024A (ja) * 2018-03-28 2019-10-10 日立オートモティブシステムズ株式会社 車載制御装置
JP2022066260A (ja) * 2018-10-15 2022-04-28 株式会社オートネットワーク技術研究所 車載更新装置、更新処理プログラム、プログラムの更新方法及び車載更新システム
JPWO2020080321A1 (ja) * 2018-10-15 2021-05-13 株式会社オートネットワーク技術研究所 車載更新装置、更新処理プログラム、プログラムの更新方法及び車載更新システム
JP7042408B2 (ja) 2018-10-15 2022-03-28 株式会社オートネットワーク技術研究所 車載更新装置、更新処理プログラム、プログラムの更新方法及び車載更新システム
JP2020142565A (ja) * 2019-03-04 2020-09-10 株式会社オートネットワーク技術研究所 車載更新装置、更新処理プログラム及び、プログラムの更新方法
JP2022012834A (ja) * 2020-07-02 2022-01-17 トヨタ自動車株式会社 ソフトウェア更新装置、方法、プログラムおよび車両
JP7419992B2 (ja) 2020-07-02 2024-01-23 トヨタ自動車株式会社 ソフトウェア更新装置、方法、プログラムおよび車両
JP2020201986A (ja) * 2020-09-03 2020-12-17 日立オートモティブシステムズ株式会社 ソフトウェア更新装置、ソフトウェア更新方法
JP7184855B2 (ja) 2020-09-03 2022-12-06 日立Astemo株式会社 ソフトウェア更新装置、ソフトウェア更新方法
JP2021073542A (ja) * 2020-12-15 2021-05-13 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP7171685B2 (ja) 2020-12-15 2022-11-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
CN112579338A (zh) * 2020-12-30 2021-03-30 浪潮电子信息产业股份有限公司 一种设备的启动方法、系统及存储介质
CN112579338B (zh) * 2020-12-30 2023-03-24 浪潮电子信息产业股份有限公司 一种设备的启动方法、系统及存储介质

Also Published As

Publication number Publication date
US20110307879A1 (en) 2011-12-15
WO2010098019A2 (en) 2010-09-02
WO2010098019A3 (en) 2010-11-04
EP2401674A2 (en) 2012-01-04
WO2010098019A4 (en) 2011-01-27
CN102334100A (zh) 2012-01-25

Similar Documents

Publication Publication Date Title
JP2010198155A (ja) プログラム更新装置、プログラム更新方法、及び情報処理装置
US20040103340A1 (en) Upgrading of firmware with tolerance to failures
JP5629927B2 (ja) 車載機のオンライン更新方法
US10162625B2 (en) Vehicle control storage methods and systems
JP5997740B2 (ja) 車載機のオンライン更新方法
JP4810172B2 (ja) 制御装置及びバージョンアップ方法並びにプログラム
JP2017157004A (ja) プログラム更新システム、プログラム更新方法及びコンピュータプログラム
US20030225986A1 (en) Program install method, file renewal method, program and computer system
KR20140060912A (ko) 부트로더를 업데이트하는 방법 및 장치
JP2007052519A (ja) 情報処理装置および方法、並びにプログラム
US6948059B1 (en) Component loader for industrial control device providing resource search capabilities
CN111104148A (zh) 集成有Linux和android两系统的芯片平台的升级方法、系统及可读存储介质
CN104063256A (zh) 基于最小操作系统的分区及固件升级方法
JP2012198929A (ja) 情報処理装置
JP2023168511A (ja) 制御装置、方法、プログラム、および車両
CN110764486B (zh) 车载控制器的运行方法、装置、车载控制器及存储介质
JP2001331327A (ja) 電子機器
CN109213504B (zh) 一种堆叠式文件系统及其加载方法和升级方法
JP2006011647A (ja) ソフトウェア管理装置
CN106775874B (zh) 终端设备的系统升级方法
JP5084853B2 (ja) ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム
KR100832269B1 (ko) 무선 통신 단말의 프로그램 갱신 방법 및 시스템
CN107436783B (zh) 一种用于移动终端的差分升级方法、存储介质及移动终端
CN114995852A (zh) 一种设备升级方法、设备及计算机可读存储介质
CN113867739A (zh) 一种bmc的固件加载方法、系统、设备以及介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120821