JP2004094725A - ファームウェア書換装置及びファームウェア書換方法 - Google Patents
ファームウェア書換装置及びファームウェア書換方法 Download PDFInfo
- Publication number
- JP2004094725A JP2004094725A JP2002256688A JP2002256688A JP2004094725A JP 2004094725 A JP2004094725 A JP 2004094725A JP 2002256688 A JP2002256688 A JP 2002256688A JP 2002256688 A JP2002256688 A JP 2002256688A JP 2004094725 A JP2004094725 A JP 2004094725A
- Authority
- JP
- Japan
- Prior art keywords
- firmware
- writing
- new
- rewriting device
- download
- 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
Links
Images
Abstract
【課題】ファームウェアのダウンロード異常時のデバッグ効率を向上させる。
【解決手段】FROM12に新規のファームウェアの書き込み後、ファームウェア書換装置1内で自動に立ち上げプログラム内の先頭にジャンプして装置の再起動行う。次回起動時は再起動前にファームウェア書換装置1内に記憶されたファームウェアにて起動することで新規のファームウェアで自律再起動を行う。新規のファームウェアをFROM12に書き込む際はサムチェックを行い、異常があるとファームウェアの入れ替えを行わず、ダウンロード失敗要因をSDRAM13の所定領域に書き込む。またダウンロード異常時はデバッグ端末3経由でSDRAM13の所定領域をダンプすることでダウンロード異常要因を把握することができる。
【選択図】 図1
【解決手段】FROM12に新規のファームウェアの書き込み後、ファームウェア書換装置1内で自動に立ち上げプログラム内の先頭にジャンプして装置の再起動行う。次回起動時は再起動前にファームウェア書換装置1内に記憶されたファームウェアにて起動することで新規のファームウェアで自律再起動を行う。新規のファームウェアをFROM12に書き込む際はサムチェックを行い、異常があるとファームウェアの入れ替えを行わず、ダウンロード失敗要因をSDRAM13の所定領域に書き込む。またダウンロード異常時はデバッグ端末3経由でSDRAM13の所定領域をダンプすることでダウンロード異常要因を把握することができる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、ファームウェアの書き換え可能な携帯電話やコンピュータ等の電子機器に用いて好適なファームウェア書換装置及びファームウェア書換方法に関する。
【0002】
【従来の技術】
従来のファームウェア書換装置は、起動時にファームウェア供給元より新規のファームウェアをダウンロードして、既存のファームウェアの更新を行うようにしている。また、従来のファームウェア書換装置は、ファームウェアのダウンロードを失敗した場合、その要因を外部の記憶装置に記憶させるようにしている。
【0003】
【発明が解決しようとする課題】
しかしながら、従来のファームウェア書換装置においては、次のような問題がある。すなわち、新規のファームウェアをダウンロードしても起動指示が与えられない限り、新規のファームウェアで起動することができない。また、外部の記憶装置が装備されていない場合はダウンロード失敗時の要因を管理することができない。また、外部の記憶装置を装備している場合、ダウンロード失敗時の要因を管理するようにしているものの、ソフトウェアの異常かハードウェアの異常かを即座に見分けることは困難である。
【0004】
本発明は係る点に鑑みてなされたものであり、起動指示を与えることなく自律起動を可能とし、また外部の記憶装置を装備することなく書き換え異常時の要因を把握することができるファームウェア書換装置及びファームウェア書換方法を提供することを目的とする。
【0005】
【課題を解決するための手段】
請求項1に係る発明のファームウェア書換装置は、ファームウェアを記憶する記憶手段と、前記記憶手段に記憶されている既存のファームウェアに従って前記記憶手段に正常に書き込んだ新規のファームウェアに従って再起動するとともに、前記記憶手段に前記新規のファームウェア書き込み異常時の要因及びハードウェア上のレジスタ状態を書き込む制御手段とを備えたことを特徴とする。
【0006】
この構成によれば、新規のファームウェアが記憶手段に正常に書き込まれた場合に新規のファームウェアに従って再起動を行う。したがって、起動指示を与えることなく新規のファームウェアで自律起動が可能となる。また、書き込み異常時には、本装置内に異常要因を保存しておくことが可能となり、別途、デバッグ端末経由で異常要因を検出することが可能となる。
【0007】
請求項2に係る発明のファームウェア書換装置は、請求項1に係る発明のファームウェア書換装置において、前記新規のファームウェアの書き込み異常を報知する警報手段を備えたことを特徴とする。
【0008】
この構成によれば、新規のファームウェアの書き込み異常を報知することで、ユーザはファームウェアの書き換えが正常に行われたっことを把握することができる。
【0009】
請求項3に係る発明のファームウェア書換装置は、請求項1又は2に記載のファームウェア書換装置において、前記新規のファームウェアの書き込み動作を通知する通知手段を備えたことを特徴とする。
【0010】
この構成によれば、新規のファームウェアの書き込み動作を通知することで、ユーザは書き込み状態を把握することができ、書き込み中の操作ミスを防止することができる。
【0011】
請求項4に係る発明のファームウェア書換装置は、請求項1から3のいずれか一項に記載のファームウェア書換装置において、前記制御手段は、要求に応じて前記記憶手段の内容をダンプさせることを特徴とする。
【0012】
この構成によれば、記憶手段の内容をダンプさせることにより、記憶手段に書き込まれている新規のファームウェア書き込み異常時の要因及びハードウェア上のレジスタ状態を検出することができる。
【0013】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
図1は、本発明の一実施の形態に係るファームウェア書換装置の構成を示すブロック図である。図1において、ファームウェア書換装置1は、制御部11と、FROM(フラッシュロム)12と、SDRAM(エスデーラム:Synchronous Dynamic Random Access Memory)13と、ダウンロードランプ14と、アラームランプ15とを備えて構成される。
【0014】
制御部11は、図示せぬプロセッサ(CPU)やメモリ及び入出力装置から構成され装置各部を制御する。FROM12は、制御部11を動作させるためのプログラムであるファームウェアを記憶する。SDRAM13は、ダウンロードしたファームウェアの展開に用いられるとともに、ダウンロードしたファームウェアのFROM12への書き込を確認するFROM書込完了フラグの設定に用いられる。ダウンロードランプ14は、FROM12へのファームウェアの書き込み状態を示すもので、書き込中は常時点灯する。アラームランプ15は、ダウンロードファイルの書き込み異常等の装置における各種異常状態を通知するためのものであり装置異常時に点灯する。
【0015】
ダウンロード制御装置2は、ダウンロード供給元であり、ファームウェアを格納し、ファームウェアのダウンロード実行時にファームウェア書換装置1の制御部11に対してダウンロード制御命令を送る。ダウンロード制御装置2からのファームウェアはファームウェア書換装置1のSDRAM13にダウンロードされた後、SDRAM13からFROM12に書き込まれる。
【0016】
デバッグ端末3は、ファームウェアのダウンロード異常時にファームウェア書換装置1のSDRAM13の指定アドレスをダンプすることで、ファームウェアダウンロード失敗時の異常要因とハードウェアのレジスタ状態をダンプ可能とする。この場合、ファームウェア書換装置1の制御部11は、デバック端末3よりSDRAM13に記憶されるダウンロード失敗要因とハードウェア上のレジスタ状態を示すデータを読み出す要求があると、当該データの読み出しを可能とする。
【0017】
ここで、図2はファームウェア書換装置1のFROM12のアドレス空間割り当てを示すメモリマップである。また、図3はファームウェア書換装置1のSDRAM13のアドレス空間割り当てを示すメモリマップである。FROM12にはファームヘッダ領域121と、通常起動ファームウェア領域122と、緊急起動ファームウェア領域123と、ログデータ保存領域124が割り当てられる。他方、SDRAM13にはファームヘッダ領域131と、通常起動ファームウェア領域132と、緊急起動ファームウェア領域133と、ログデータ保存領域134と、書込完了フラグ領域134とが割り当てられる。
【0018】
制御部11は、装置起動時にFROM12に記憶されているファームウェアのバージョンとダウンロード制御装置2に保持されているファームウェアのバージョンとを比較し、これらが一致していなければファームウェアのダウンロードを実行する。ファームウェアには、通常起動ファームウェアと、通常起動ファームウェアが正常に起動しない場合に起動する緊急起動ファームウェアとがあり、双方ともバージョンが古くてバージョンアップする必要がある場合は、これらが一度にダウンロードされる。
【0019】
緊急起動ファームウェアはめったに起動することがないので、バージョンアップの殆どは通常起動ファームウェアになる。ただし、ダウンロード時はダウンロードデータの正常性を確保するため、制御部11はSDRAM13への書き込み時にチェックサムを実施する。そして、チェックサム結果が正常な場合のみダウンロード正常と判定し、ダウンロードデータの正常性を確保する。
【0020】
通常起動ファームウェアのみバージョンアップする場合、まずFROM12の通常起動ファームウェア格納領域に格納されている既存の通常起動ファームウェアをSDRAM13の通常起動ファームウェア格納領域に展開する。そして、展開した既存の通常起動ファームウェアに従ってダウンロードを実行する。ダウンロードした新規の通常起動ファームウェアをSDRAM13の空き領域に書き込む。そして、新規の通常起動ファームウェアをSDRAM13の空き領域に書き込んだ後、FROM12の通常起動ファームウェア格納領域に書き込む。そして更にFROM12のファームヘッダの更新を行い、その後、新規の通常起動ファームウェアの先頭にジャンプして当該ファームウェアにてリセットをかけて再起動する。
【0021】
そして、新規の通常起動ファームウェアをFROM12に書き込んだ後、当該ファームウェアの誤り検出を行う。この誤り検出において、有効範囲データを4バイト単位で加算し、その単純総和をビット反転して「1」を加えたものを誤り検出値とする。ただし、データが奇数バイトの場合にはデータの後に「0」を付加する。誤り検出は、誤り検出値(4バイト)に対象ファームウェアのデータを4バイトずつ加算し、全て加算した結果が「0」になれば正常とする。なお、誤り検出値については4バイト固定とする。
【0022】
通常起動ファームウェアのダウンロード時に異常が起きた場合、制御部11は、SDRAM13のログデータ保存領域にダウンロード失敗要因とハードウェア上のレジスタ状態を書き込む。そして、SDRAM13へ書き込み後、電源断等によるデータ喪失を防ぐために、SDRAM13のログデータ保存領域のデータをFROM12内のログデータ保存領域に書き込む。
【0023】
一方、緊急起動ファームウェアも同時にバージョンアップする場合は、FROM12の緊急起動ファームウェア格納領域に格納されている既存の緊急起動ファームウェアをSDRAM13の緊急起動ファームウェア格納領域に展開する。そして、ダウンロードした新規の緊急起動ファームウェアをSDRAM13の空き領域に書き込んだ後、FROM12の緊急起動ファームウェア格納領域に書き込む。緊急起動ファームウェアをFROM12に書き込んだ後、通常起動ファームウェアのときと同様にFROM12のファームヘッダの更新を行う。
【0024】
そして、新規の緊急起動ファームウェアをFROM12に書き込んだ後、当該ファームウェアの誤り検出を行う。この誤り検出において、有効範囲データを4バイト単位で加算し、その単純総和をビット反転して「1」を加えたものを誤り検出値とする。ただし、データが奇数バイトの場合にはデータの後に「0」を付加する。誤り検出は誤り検出値(4バイト)に対象ファームウェアのデータを4バイトずつ加算し、全て加算した結果が「0」になれば正常とする。なお、誤り検出値については4バイト固定とする。
【0025】
緊急起動ファームウェアのダウンロード時に異常が起きた場合、制御部11は、SDRAM13のログデータ保存領域にダウンロード失敗要因とハードウェアのレジスタ状態を書き込む。そして、SDRAM13へ書き込み後、電源断等によるデータ喪失を防ぐために、SDRAM13のログデータ保存領域のデータをFROM12内のログデータ保存領域に書き込む。
【0026】
また、制御部11は、ファームウェアをFROM12に書き込んだときにSDRAM13のFROM書込完了フラグ領域に書き込み完了を示す値ビット「1」を設定する。なお、FROM12にファームウェアを書き込まない場合又はFROM12に書き込んでいる最中は、FROM書込完了フラグ領域には初期値の「0」を設定した状態を維持する。
【0027】
また、制御部11は、FROM12に新規のファームウェアを書き込んだ後の起動時に、通常起動ファームウェアに含まれている起動プログラムに従って自律再起動が必要な状態か否かどうかを判定する。つまり、起動時にFROM書込完了フラグがオンであれば(書き込み完了を示す値ビット「1」が設定された時)、装置内で自律再起動が必要な状態となっていると判断してシステムリセットを行う。すなわち、新たなバージョンのファームウェアをダウンロードすると、そのファームウェアで動作するために再起動をかける。
【0028】
また、制御部11は、SDRAM13に記憶させたファームウェアをFROM12に書き込む転送開始時にタイマを設定し、ファームウェアのFROM12への転送が完了したか否かの判定を行う。この場合、転送開始時から一定時間を経過してもFROM書込完了フラグがオンとならなければ、ダウンロード失敗と判断し(装置として異常であると判断し)てアラームランプ15を点灯させる。
【0029】
また、制御部11は、ファームウェアのFROM12への転送開始時にダウンロードランプ14を点灯し、転送完了時に消灯する。このダウンロードランプ14の点灯制御により、ユーザがFROM12へのファームウェア書き込み中にシステム電源断を行うなどの操作誤りを冒すことがなくなる。
【0030】
次に、上記構成のファームウェア書換装置1の動作について図4のフローチャートを参照しながら説明する。
【0031】
まず、制御部11は、ステップ201で、装置立ち上げに必要な各種パラメータの初期化を行う。この場合、自律再起動時に関連するパラメータとして、プログラムバージョン値の初期化、FROM書き込み完了フラグの初期化、SDRAM13のダウンロード領域の初期化を行う。
【0032】
次に、ステップ202で、FROM12のファームヘッダ領域に記憶されているファームヘッダをSDRAM13のファームヘッダ領域に書き込む。これにより、FROM12に記憶されているファームウェアのバージョンがSDRAM13に設定される。
【0033】
次いで、ステップ203で、自装置(ファームウェア書換装置)1で保持しているファームウェアとダウンロード元のダウンロード制御装置2が保持しているファームウェアのバージョンを比較し、バージョンが一致するか否かの判定を行う。この判定において、双方のバージョンが一致する場合はステップ204に進み、ダウンロード対象のデータがないと判断してFROM12に記憶されているファームウェアを実行することでシステム起動を行う。これに対して、双方のバージョンが一致しない場合はステップ205に進み、ダウンロード対象のファームウェアがあると判断して、ダウンロード制御装置2から対象ファームウェアのダウンロードを行う。
【0034】
そして、ダウンロードした新規のファームウェアをSDRAM13に書き込んだ後、ステップ206で、SDRAM13に書き込んだ新規のファームウェアをFROM12に転送する。次いで、ステップ207で、FROM12に転送したファームウェアに通常起動ファームウェアが含まれていれば、当該ファームウェアのFROM12への転送完了時にSDRAM13上のFROM書込完了フラグをオンとし、通常起動ファームウェアのFROM12への書き込み終了を設定する。
【0035】
次いで、制御部11は、ステップ208で装置起動後にFROM書込完了フラグのオンを確認すると、立ち上げプログラムの先頭にジャンプし、ファームウェアの自律起動を行う。自律起動後、ステップ209でファームウェア書換装置1の立ち上げに必要な各種パラメータの初期化を行う。この場合、自律再起動時に関連するパラメータとして、プログラムバージョン値の初期化、FROM書込フラグの初期化、SDRAM13のダウンロード領域の初期化を行う。
【0036】
自律再起動時に関連するパラメータの初期化を行った後、ステップ210でFROM12のファームヘッダ領域に記憶されているファームヘッダをSDRAM13のファームヘッダ領域に書き込む。これにより、FROM12に記憶されているファームウェアバージョンをSDRAM13に設定することが可能となる。
【0037】
次いで、ステップ211でファームウェア書換装置1で保持されているファームウェアとダウンロード制御装置2で保持されているファームウェアのバージョンを比較する。ここではステップ208にて自律起動を行っているので、ファームウェアのバージョンが一致していることから新たにダウンロード制御装置2からファームウェアのダウンロードは行わず、ステップ212でファームウェアによる起動処理を終了し、以後アプリケーションに処理に移行してシステム全体のイニシャル処理を行う。
【0038】
このように、本発明の実施の形態によれば、ファームウェアの書き込み後、自動に立ち上げプログラムの先頭にジャンプすることで、ダウンロードしたファームウェアで自律再起動を行う。
【0039】
また、ファームウェアの書き換えに失敗した場合は、FROM12に記憶されているファームウェアを起動せず、装置をアラーム状態とすることにより、システムの異常を必ず検出することができる。
【0040】
また、ダウンロード異常時はアラームランプ15を点灯させる。これにより、ユーザはファームウェア書換装置1にデバッグ端末3を接続して、SDRAM13のログデータ保存領域のデータをダンプすることで、ダウンロード失敗要因と、その時のハードウェアのレジスタ状態を確認することができる。
【0041】
また、緊急起動ファームウェアをダウンロードすることで、前回起動時に通常起動ファームウェアのダウンロードに失敗した場合、緊急起動ファームウェアを起動することでシステム起動を二重に保証できる。
【0042】
なお、上記実施の形態のファームウェア書換装置1は、例えば携帯電話やコンピュータなどのファームウェア書き換え可能なメモリを具備する電子機器の全てに適用することができる。
【0043】
また、上記実施の形態のファームウェア書換装置1とデバック端末3を1つのファームウェア書換システムとして提供することも可能である。勿論、このシステムにダウンロード制御装置2を加えても構わない。
【0044】
【発明の効果】
以上説明したように、本発明によれば、新規のファームウェアが記憶手段に正常に書き込まれた場合に新規のファームウェアに従って再起動を行う。したがって、起動指示を与えることなく新規のファームウェアで自律起動が可能となる。また、書き換え異常時には、本装置内に異常要因を保存しておくことが可能となり、別途、デバッグ端末経由で異常要因を検出することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るファームウェア書換装置の構成を示すブロック図である。
【図2】図1のFROMにおけるアドレス空間割り当てを示すメモリマップである。
【図3】図1のSDRAMにおけるアドレス空間割り当てを示すメモリマップである。
【図4】図1のファームウェア書換装置の動作を説明するためのフローチャートである。
【符号の説明】
1 ファームウェア書換装置
2 ダウンロード制御装置
3 デバッグ端末
11 制御部
12 FROM
13 SDRAM
14 ダウンロードランプ
15 アラームランプ
【発明の属する技術分野】
本発明は、ファームウェアの書き換え可能な携帯電話やコンピュータ等の電子機器に用いて好適なファームウェア書換装置及びファームウェア書換方法に関する。
【0002】
【従来の技術】
従来のファームウェア書換装置は、起動時にファームウェア供給元より新規のファームウェアをダウンロードして、既存のファームウェアの更新を行うようにしている。また、従来のファームウェア書換装置は、ファームウェアのダウンロードを失敗した場合、その要因を外部の記憶装置に記憶させるようにしている。
【0003】
【発明が解決しようとする課題】
しかしながら、従来のファームウェア書換装置においては、次のような問題がある。すなわち、新規のファームウェアをダウンロードしても起動指示が与えられない限り、新規のファームウェアで起動することができない。また、外部の記憶装置が装備されていない場合はダウンロード失敗時の要因を管理することができない。また、外部の記憶装置を装備している場合、ダウンロード失敗時の要因を管理するようにしているものの、ソフトウェアの異常かハードウェアの異常かを即座に見分けることは困難である。
【0004】
本発明は係る点に鑑みてなされたものであり、起動指示を与えることなく自律起動を可能とし、また外部の記憶装置を装備することなく書き換え異常時の要因を把握することができるファームウェア書換装置及びファームウェア書換方法を提供することを目的とする。
【0005】
【課題を解決するための手段】
請求項1に係る発明のファームウェア書換装置は、ファームウェアを記憶する記憶手段と、前記記憶手段に記憶されている既存のファームウェアに従って前記記憶手段に正常に書き込んだ新規のファームウェアに従って再起動するとともに、前記記憶手段に前記新規のファームウェア書き込み異常時の要因及びハードウェア上のレジスタ状態を書き込む制御手段とを備えたことを特徴とする。
【0006】
この構成によれば、新規のファームウェアが記憶手段に正常に書き込まれた場合に新規のファームウェアに従って再起動を行う。したがって、起動指示を与えることなく新規のファームウェアで自律起動が可能となる。また、書き込み異常時には、本装置内に異常要因を保存しておくことが可能となり、別途、デバッグ端末経由で異常要因を検出することが可能となる。
【0007】
請求項2に係る発明のファームウェア書換装置は、請求項1に係る発明のファームウェア書換装置において、前記新規のファームウェアの書き込み異常を報知する警報手段を備えたことを特徴とする。
【0008】
この構成によれば、新規のファームウェアの書き込み異常を報知することで、ユーザはファームウェアの書き換えが正常に行われたっことを把握することができる。
【0009】
請求項3に係る発明のファームウェア書換装置は、請求項1又は2に記載のファームウェア書換装置において、前記新規のファームウェアの書き込み動作を通知する通知手段を備えたことを特徴とする。
【0010】
この構成によれば、新規のファームウェアの書き込み動作を通知することで、ユーザは書き込み状態を把握することができ、書き込み中の操作ミスを防止することができる。
【0011】
請求項4に係る発明のファームウェア書換装置は、請求項1から3のいずれか一項に記載のファームウェア書換装置において、前記制御手段は、要求に応じて前記記憶手段の内容をダンプさせることを特徴とする。
【0012】
この構成によれば、記憶手段の内容をダンプさせることにより、記憶手段に書き込まれている新規のファームウェア書き込み異常時の要因及びハードウェア上のレジスタ状態を検出することができる。
【0013】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
図1は、本発明の一実施の形態に係るファームウェア書換装置の構成を示すブロック図である。図1において、ファームウェア書換装置1は、制御部11と、FROM(フラッシュロム)12と、SDRAM(エスデーラム:Synchronous Dynamic Random Access Memory)13と、ダウンロードランプ14と、アラームランプ15とを備えて構成される。
【0014】
制御部11は、図示せぬプロセッサ(CPU)やメモリ及び入出力装置から構成され装置各部を制御する。FROM12は、制御部11を動作させるためのプログラムであるファームウェアを記憶する。SDRAM13は、ダウンロードしたファームウェアの展開に用いられるとともに、ダウンロードしたファームウェアのFROM12への書き込を確認するFROM書込完了フラグの設定に用いられる。ダウンロードランプ14は、FROM12へのファームウェアの書き込み状態を示すもので、書き込中は常時点灯する。アラームランプ15は、ダウンロードファイルの書き込み異常等の装置における各種異常状態を通知するためのものであり装置異常時に点灯する。
【0015】
ダウンロード制御装置2は、ダウンロード供給元であり、ファームウェアを格納し、ファームウェアのダウンロード実行時にファームウェア書換装置1の制御部11に対してダウンロード制御命令を送る。ダウンロード制御装置2からのファームウェアはファームウェア書換装置1のSDRAM13にダウンロードされた後、SDRAM13からFROM12に書き込まれる。
【0016】
デバッグ端末3は、ファームウェアのダウンロード異常時にファームウェア書換装置1のSDRAM13の指定アドレスをダンプすることで、ファームウェアダウンロード失敗時の異常要因とハードウェアのレジスタ状態をダンプ可能とする。この場合、ファームウェア書換装置1の制御部11は、デバック端末3よりSDRAM13に記憶されるダウンロード失敗要因とハードウェア上のレジスタ状態を示すデータを読み出す要求があると、当該データの読み出しを可能とする。
【0017】
ここで、図2はファームウェア書換装置1のFROM12のアドレス空間割り当てを示すメモリマップである。また、図3はファームウェア書換装置1のSDRAM13のアドレス空間割り当てを示すメモリマップである。FROM12にはファームヘッダ領域121と、通常起動ファームウェア領域122と、緊急起動ファームウェア領域123と、ログデータ保存領域124が割り当てられる。他方、SDRAM13にはファームヘッダ領域131と、通常起動ファームウェア領域132と、緊急起動ファームウェア領域133と、ログデータ保存領域134と、書込完了フラグ領域134とが割り当てられる。
【0018】
制御部11は、装置起動時にFROM12に記憶されているファームウェアのバージョンとダウンロード制御装置2に保持されているファームウェアのバージョンとを比較し、これらが一致していなければファームウェアのダウンロードを実行する。ファームウェアには、通常起動ファームウェアと、通常起動ファームウェアが正常に起動しない場合に起動する緊急起動ファームウェアとがあり、双方ともバージョンが古くてバージョンアップする必要がある場合は、これらが一度にダウンロードされる。
【0019】
緊急起動ファームウェアはめったに起動することがないので、バージョンアップの殆どは通常起動ファームウェアになる。ただし、ダウンロード時はダウンロードデータの正常性を確保するため、制御部11はSDRAM13への書き込み時にチェックサムを実施する。そして、チェックサム結果が正常な場合のみダウンロード正常と判定し、ダウンロードデータの正常性を確保する。
【0020】
通常起動ファームウェアのみバージョンアップする場合、まずFROM12の通常起動ファームウェア格納領域に格納されている既存の通常起動ファームウェアをSDRAM13の通常起動ファームウェア格納領域に展開する。そして、展開した既存の通常起動ファームウェアに従ってダウンロードを実行する。ダウンロードした新規の通常起動ファームウェアをSDRAM13の空き領域に書き込む。そして、新規の通常起動ファームウェアをSDRAM13の空き領域に書き込んだ後、FROM12の通常起動ファームウェア格納領域に書き込む。そして更にFROM12のファームヘッダの更新を行い、その後、新規の通常起動ファームウェアの先頭にジャンプして当該ファームウェアにてリセットをかけて再起動する。
【0021】
そして、新規の通常起動ファームウェアをFROM12に書き込んだ後、当該ファームウェアの誤り検出を行う。この誤り検出において、有効範囲データを4バイト単位で加算し、その単純総和をビット反転して「1」を加えたものを誤り検出値とする。ただし、データが奇数バイトの場合にはデータの後に「0」を付加する。誤り検出は、誤り検出値(4バイト)に対象ファームウェアのデータを4バイトずつ加算し、全て加算した結果が「0」になれば正常とする。なお、誤り検出値については4バイト固定とする。
【0022】
通常起動ファームウェアのダウンロード時に異常が起きた場合、制御部11は、SDRAM13のログデータ保存領域にダウンロード失敗要因とハードウェア上のレジスタ状態を書き込む。そして、SDRAM13へ書き込み後、電源断等によるデータ喪失を防ぐために、SDRAM13のログデータ保存領域のデータをFROM12内のログデータ保存領域に書き込む。
【0023】
一方、緊急起動ファームウェアも同時にバージョンアップする場合は、FROM12の緊急起動ファームウェア格納領域に格納されている既存の緊急起動ファームウェアをSDRAM13の緊急起動ファームウェア格納領域に展開する。そして、ダウンロードした新規の緊急起動ファームウェアをSDRAM13の空き領域に書き込んだ後、FROM12の緊急起動ファームウェア格納領域に書き込む。緊急起動ファームウェアをFROM12に書き込んだ後、通常起動ファームウェアのときと同様にFROM12のファームヘッダの更新を行う。
【0024】
そして、新規の緊急起動ファームウェアをFROM12に書き込んだ後、当該ファームウェアの誤り検出を行う。この誤り検出において、有効範囲データを4バイト単位で加算し、その単純総和をビット反転して「1」を加えたものを誤り検出値とする。ただし、データが奇数バイトの場合にはデータの後に「0」を付加する。誤り検出は誤り検出値(4バイト)に対象ファームウェアのデータを4バイトずつ加算し、全て加算した結果が「0」になれば正常とする。なお、誤り検出値については4バイト固定とする。
【0025】
緊急起動ファームウェアのダウンロード時に異常が起きた場合、制御部11は、SDRAM13のログデータ保存領域にダウンロード失敗要因とハードウェアのレジスタ状態を書き込む。そして、SDRAM13へ書き込み後、電源断等によるデータ喪失を防ぐために、SDRAM13のログデータ保存領域のデータをFROM12内のログデータ保存領域に書き込む。
【0026】
また、制御部11は、ファームウェアをFROM12に書き込んだときにSDRAM13のFROM書込完了フラグ領域に書き込み完了を示す値ビット「1」を設定する。なお、FROM12にファームウェアを書き込まない場合又はFROM12に書き込んでいる最中は、FROM書込完了フラグ領域には初期値の「0」を設定した状態を維持する。
【0027】
また、制御部11は、FROM12に新規のファームウェアを書き込んだ後の起動時に、通常起動ファームウェアに含まれている起動プログラムに従って自律再起動が必要な状態か否かどうかを判定する。つまり、起動時にFROM書込完了フラグがオンであれば(書き込み完了を示す値ビット「1」が設定された時)、装置内で自律再起動が必要な状態となっていると判断してシステムリセットを行う。すなわち、新たなバージョンのファームウェアをダウンロードすると、そのファームウェアで動作するために再起動をかける。
【0028】
また、制御部11は、SDRAM13に記憶させたファームウェアをFROM12に書き込む転送開始時にタイマを設定し、ファームウェアのFROM12への転送が完了したか否かの判定を行う。この場合、転送開始時から一定時間を経過してもFROM書込完了フラグがオンとならなければ、ダウンロード失敗と判断し(装置として異常であると判断し)てアラームランプ15を点灯させる。
【0029】
また、制御部11は、ファームウェアのFROM12への転送開始時にダウンロードランプ14を点灯し、転送完了時に消灯する。このダウンロードランプ14の点灯制御により、ユーザがFROM12へのファームウェア書き込み中にシステム電源断を行うなどの操作誤りを冒すことがなくなる。
【0030】
次に、上記構成のファームウェア書換装置1の動作について図4のフローチャートを参照しながら説明する。
【0031】
まず、制御部11は、ステップ201で、装置立ち上げに必要な各種パラメータの初期化を行う。この場合、自律再起動時に関連するパラメータとして、プログラムバージョン値の初期化、FROM書き込み完了フラグの初期化、SDRAM13のダウンロード領域の初期化を行う。
【0032】
次に、ステップ202で、FROM12のファームヘッダ領域に記憶されているファームヘッダをSDRAM13のファームヘッダ領域に書き込む。これにより、FROM12に記憶されているファームウェアのバージョンがSDRAM13に設定される。
【0033】
次いで、ステップ203で、自装置(ファームウェア書換装置)1で保持しているファームウェアとダウンロード元のダウンロード制御装置2が保持しているファームウェアのバージョンを比較し、バージョンが一致するか否かの判定を行う。この判定において、双方のバージョンが一致する場合はステップ204に進み、ダウンロード対象のデータがないと判断してFROM12に記憶されているファームウェアを実行することでシステム起動を行う。これに対して、双方のバージョンが一致しない場合はステップ205に進み、ダウンロード対象のファームウェアがあると判断して、ダウンロード制御装置2から対象ファームウェアのダウンロードを行う。
【0034】
そして、ダウンロードした新規のファームウェアをSDRAM13に書き込んだ後、ステップ206で、SDRAM13に書き込んだ新規のファームウェアをFROM12に転送する。次いで、ステップ207で、FROM12に転送したファームウェアに通常起動ファームウェアが含まれていれば、当該ファームウェアのFROM12への転送完了時にSDRAM13上のFROM書込完了フラグをオンとし、通常起動ファームウェアのFROM12への書き込み終了を設定する。
【0035】
次いで、制御部11は、ステップ208で装置起動後にFROM書込完了フラグのオンを確認すると、立ち上げプログラムの先頭にジャンプし、ファームウェアの自律起動を行う。自律起動後、ステップ209でファームウェア書換装置1の立ち上げに必要な各種パラメータの初期化を行う。この場合、自律再起動時に関連するパラメータとして、プログラムバージョン値の初期化、FROM書込フラグの初期化、SDRAM13のダウンロード領域の初期化を行う。
【0036】
自律再起動時に関連するパラメータの初期化を行った後、ステップ210でFROM12のファームヘッダ領域に記憶されているファームヘッダをSDRAM13のファームヘッダ領域に書き込む。これにより、FROM12に記憶されているファームウェアバージョンをSDRAM13に設定することが可能となる。
【0037】
次いで、ステップ211でファームウェア書換装置1で保持されているファームウェアとダウンロード制御装置2で保持されているファームウェアのバージョンを比較する。ここではステップ208にて自律起動を行っているので、ファームウェアのバージョンが一致していることから新たにダウンロード制御装置2からファームウェアのダウンロードは行わず、ステップ212でファームウェアによる起動処理を終了し、以後アプリケーションに処理に移行してシステム全体のイニシャル処理を行う。
【0038】
このように、本発明の実施の形態によれば、ファームウェアの書き込み後、自動に立ち上げプログラムの先頭にジャンプすることで、ダウンロードしたファームウェアで自律再起動を行う。
【0039】
また、ファームウェアの書き換えに失敗した場合は、FROM12に記憶されているファームウェアを起動せず、装置をアラーム状態とすることにより、システムの異常を必ず検出することができる。
【0040】
また、ダウンロード異常時はアラームランプ15を点灯させる。これにより、ユーザはファームウェア書換装置1にデバッグ端末3を接続して、SDRAM13のログデータ保存領域のデータをダンプすることで、ダウンロード失敗要因と、その時のハードウェアのレジスタ状態を確認することができる。
【0041】
また、緊急起動ファームウェアをダウンロードすることで、前回起動時に通常起動ファームウェアのダウンロードに失敗した場合、緊急起動ファームウェアを起動することでシステム起動を二重に保証できる。
【0042】
なお、上記実施の形態のファームウェア書換装置1は、例えば携帯電話やコンピュータなどのファームウェア書き換え可能なメモリを具備する電子機器の全てに適用することができる。
【0043】
また、上記実施の形態のファームウェア書換装置1とデバック端末3を1つのファームウェア書換システムとして提供することも可能である。勿論、このシステムにダウンロード制御装置2を加えても構わない。
【0044】
【発明の効果】
以上説明したように、本発明によれば、新規のファームウェアが記憶手段に正常に書き込まれた場合に新規のファームウェアに従って再起動を行う。したがって、起動指示を与えることなく新規のファームウェアで自律起動が可能となる。また、書き換え異常時には、本装置内に異常要因を保存しておくことが可能となり、別途、デバッグ端末経由で異常要因を検出することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るファームウェア書換装置の構成を示すブロック図である。
【図2】図1のFROMにおけるアドレス空間割り当てを示すメモリマップである。
【図3】図1のSDRAMにおけるアドレス空間割り当てを示すメモリマップである。
【図4】図1のファームウェア書換装置の動作を説明するためのフローチャートである。
【符号の説明】
1 ファームウェア書換装置
2 ダウンロード制御装置
3 デバッグ端末
11 制御部
12 FROM
13 SDRAM
14 ダウンロードランプ
15 アラームランプ
Claims (6)
- ファームウェアを記憶する記憶手段と、
前記記憶手段に記憶されている既存のファームウェアに従って前記記憶手段に正常に書き込んだ新規のファームウェアに従って再起動するとともに、前記記憶手段に前記新規のファームウェア書き込み異常時の要因及びハードウェア上のレジスタ状態を書き込む制御手段と、
を備えたことを特徴とするファームウェア書換装置。 - 前記新規のファームウェアの書き込み異常を報知する警報手段を備えたことを特徴とする請求項1に記載のファームウェア書換装置。
- 前記新規のファームウェアの書き込み動作を通知する通知手段を備えたことを特徴とする請求項1または請求項2に記載のファームウェア書換装置。
- 前記制御手段は、要求に応じて前記記憶手段の内容をダンプさせることを特徴とする請求項1から3のいずれか一項に記載のファームウェア書換装置。
- 請求項1から3のいずれか一項に記載のファームウェア書換装置と、前記記憶手段の内容のダンプにより書き込み異常時の要因及びハードウェア上のレジスタ状態を検出する検出手段と、を備えたことを特徴とするシステム。
- ファームウェア供給元が保持しているファームウェアのバージョンと既存のファームウェアのバージョンとの不一致を判定し前記新規のファームウェアを記憶手段に書き込む工程と、
前記新規のファームウェアの書き込み動作を通知する工程と、
前記記憶手段への前記新規のファームウェアの書き込みが完了したか否かを判定する工程と、
書き込みが完了した場合に前記記憶手段に書き込んだ前記新規のファームウェアに従って再起動を行う工程と、
書き込み異常時に前記記憶手段に書き込み異常時の要因及びハードウェア上のレジスタの状態を書き込む工程と、
を含むことを特徴とするファームウェア書換方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002256688A JP2004094725A (ja) | 2002-09-02 | 2002-09-02 | ファームウェア書換装置及びファームウェア書換方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002256688A JP2004094725A (ja) | 2002-09-02 | 2002-09-02 | ファームウェア書換装置及びファームウェア書換方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004094725A true JP2004094725A (ja) | 2004-03-25 |
Family
ID=32061850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002256688A Pending JP2004094725A (ja) | 2002-09-02 | 2002-09-02 | ファームウェア書換装置及びファームウェア書換方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004094725A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058775A (ja) * | 2005-08-26 | 2007-03-08 | Toyota Motor Corp | ユニットの制御装置の製造方法およびユニットの制御装置 |
JP2011038227A (ja) * | 2009-08-18 | 2011-02-24 | Oji Paper Co Ltd | 塗工包装用紙 |
JP2011093292A (ja) * | 2009-10-01 | 2011-05-12 | Toshiba Tec Corp | プリンタ、プログラムおよびデータ更新方法 |
JP2015126514A (ja) * | 2013-12-27 | 2015-07-06 | ブラザー工業株式会社 | 通信装置 |
-
2002
- 2002-09-02 JP JP2002256688A patent/JP2004094725A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058775A (ja) * | 2005-08-26 | 2007-03-08 | Toyota Motor Corp | ユニットの制御装置の製造方法およびユニットの制御装置 |
JP2011038227A (ja) * | 2009-08-18 | 2011-02-24 | Oji Paper Co Ltd | 塗工包装用紙 |
JP2011093292A (ja) * | 2009-10-01 | 2011-05-12 | Toshiba Tec Corp | プリンタ、プログラムおよびデータ更新方法 |
JP2015126514A (ja) * | 2013-12-27 | 2015-07-06 | ブラザー工業株式会社 | 通信装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8041988B2 (en) | Firmware update for consumer electronic device | |
JP5575338B2 (ja) | 情報処理装置、情報処理方法、およびコンピュータプログラム | |
US20100169709A1 (en) | System Of Updating Firmware And Method Thereof, And Method Of Creating Firmware | |
KR100584338B1 (ko) | 소프트웨어 업데이트 방법 및 시스템 | |
JP2000357095A (ja) | 埋込式システムにソフトウェアをダウンロードする方法および装置 | |
JP4279902B2 (ja) | ディジタルテレビジョン放送受信装置およびディジタルテレビジョン放送受信用プログラムの取得方法 | |
JP2011090481A (ja) | 情報処理装置及びシステム設定方法 | |
WO2012138951A1 (en) | Failsafe firmware updates | |
TWI805946B (zh) | 內嵌式系統及控制非揮發性記憶體之方法 | |
CN106775674B (zh) | 一种基于通用引导加载程序的设备及其启动方法 | |
WO2021103745A1 (zh) | 一种引导程序的保护设计方法 | |
CN109634781A (zh) | 一种基于嵌入式程序双区备份映像系统及启动方法 | |
CN110580167A (zh) | 一种系统升级方法、智能设备及服务器 | |
JP2001331327A (ja) | 電子機器 | |
CN115237647A (zh) | 固件异常修复方法、装置、电子设备及计算机存储介质 | |
CN105814545A (zh) | 电子设备 | |
JP2004046453A (ja) | シングルチップマイクロコンピュータおよびそのブート領域切り替え方法 | |
JP2004094725A (ja) | ファームウェア書換装置及びファームウェア書換方法 | |
JP5084853B2 (ja) | ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム | |
JP6021597B2 (ja) | 情報処理装置、情報処理方法、およびコンピュータプログラム | |
JP2002189609A (ja) | アクシデントに適応したソフトウェア更新方式および方法 | |
JP2003216432A (ja) | ファームウェア書き換え装置及びファームウェア書き換え方法 | |
JP2004054616A (ja) | ファームウェア自動修復機能を有する情報処理装置 | |
US20210326125A1 (en) | Installing application program code on a vehicle control system | |
JP5418348B2 (ja) | 情報処理装置およびカラオケ装置 |