JP2002358207A - ファームウェア組込機器およびファームウェア組込機器のブートプログラム - Google Patents

ファームウェア組込機器およびファームウェア組込機器のブートプログラム

Info

Publication number
JP2002358207A
JP2002358207A JP2001164401A JP2001164401A JP2002358207A JP 2002358207 A JP2002358207 A JP 2002358207A JP 2001164401 A JP2001164401 A JP 2001164401A JP 2001164401 A JP2001164401 A JP 2001164401A JP 2002358207 A JP2002358207 A JP 2002358207A
Authority
JP
Japan
Prior art keywords
file
program
firmware
compressed
uncompressed
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
JP2001164401A
Other languages
English (en)
Inventor
Hirofumi Futahashi
洋文 二橋
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.)
Yamaha Corp
Original Assignee
Yamaha 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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2001164401A priority Critical patent/JP2002358207A/ja
Publication of JP2002358207A publication Critical patent/JP2002358207A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】ファームウェアが非圧縮ファイルとして記憶さ
れている場合、圧縮形式のファイルとして記憶されてい
る場合のいずれの場合でもこれをロードすることができ
るファームウェア組込装置を提供する。 【解決手段】 フラッシュROM12に複数のファーム
ウェア120,121,122を記憶するとともに、各
ファイルが圧縮ファイルであるか非圧縮ファイルである
かを示す識別情報120a,121a,122aを記憶
する。ブートローダプログラムは、ブート時にファーム
ウェアを選択するとともに、そのファイルが圧縮ファイ
ルであるか非圧縮ファイルであるかを識別情報に基づい
て判断し、圧縮ファイルの場合には伸長しながら、非圧
縮ファイルの場合にはそのままRAM13上に展開す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、フラッシュメモ
リなどの内蔵ROMにファームウェア(プログラム)を
記憶しておき、ブート時にこれをRAM上に展開して動
作するファームウェア組込機器およびそのブートプログ
ラムに関する。
【0002】
【発明が解決しようとする課題】ファームウェア組込機
器は、ブート時にROMに記憶しているファームウェア
をブートローダが読み出してRAM上に展開する。従来
のファームウェア組込機器では、ファームウェアが圧縮
して記憶されているか非圧縮で記憶されているかのいず
れかであり、それが予め決められていたため、ファーム
ウェアをRAM上に展開するブートローダ(プログラ
ム)は、圧縮を伸長しながら読み出す機能、または、そ
のまま読み出してRAMに展開する機能のいずれかしか
備えなかった。また、ROMに記憶されているプログラ
ムファイルは、一見しただけではこれが圧縮ファイルで
あるか非圧縮ファイルであるかが分からないかった。
【0003】このため、従来のファームウェア組込機器
では、圧縮されたファームウェアと非圧縮のファームウ
ェアを混在させたり、ファームウェアのファイル形式を
圧縮/非圧縮で変更することなどはできなかった。
【0004】この発明は、ファームウェアが非圧縮ファ
イル、圧縮ファイルのいずれの形式で記憶されている場
合でもこれを正常にロードすることができるファームウ
ェア組込機器およびロードプログラムを提供することを
目的とする。
【0005】
【課題を解決するための手段】請求項1の発明は、プロ
グラムを記憶したROMと、ブート時にこのプログラム
をRAM上に展開する制御手段と、を備えたファームウ
ェア組込機器において、前記ROMは、前記プログラム
を圧縮ファイルまたは非圧縮ファイルとして記憶すると
ともに、このプログラムが非圧縮ファイルであるか圧縮
ファイルであるかを識別する識別情報を記憶し、制御手
段は、ブート時に、前記識別情報を読み取ってプログラ
ムが圧縮ファイル、非圧縮ファイルのいずれで記憶され
ているかを判断し、圧縮ファイルの場合にはこれを伸長
しつつRAM上に展開し、非圧縮ファイルの場合にはそ
のままRAM上に展開することを特徴とする。請求項2
の発明は、上記発明において、前記ROMは、複数のプ
ログラムを記憶するとともに、それぞれのプログラムに
ついての識別情報を記憶しており、前記制御手段は、ブ
ート時にプログラムを選択し、そのプログラムの識別情
報を参照して当該プログラムをRAM上に展開すること
を特徴とする。
【0006】請求項3の発明は、ROMに記憶されてい
るプログラムをRAM上に展開する制御手段に、そのプ
ログラムが圧縮ファイル、非圧縮ファイルのいずれで記
憶されているかを判断し、圧縮ファイルの場合にはこれ
を伸長しつつRAM上に展開し、非圧縮ファイルの場合
にはそのままRAM上に展開する動作を実行させること
を特徴とする。
【0007】この発明では、ROMに記憶するプログラ
ム(ファームウェア)は、圧縮ファイル、非圧縮ファイ
ルのいずれであってもよい。各プログラムファイルに対
応して、そのファイルが圧縮ファイルであるか非圧縮フ
ァイルであるかの識別情報が記憶されている。この識別
情報はプログラムファイルと別のデータとしてもよく、
プログラムファイルの一部としてヘッダなどに書き込ん
でおいてもよい。
【0008】制御手段(ロードプログラム)は、ブート
するプログラムの識別情報を参照してそのファイルが圧
縮ファイルであるか非圧縮ファイルであるかを判断し、
圧縮されているものであれば伸長しながらRAM上に展
開し、非圧縮ファイルであればそのままRAM上に展開
する。これにより、ROMに圧縮/非圧縮のどちらのフ
ァイル形式でファームウェアを書き込んでおいても、ま
た、ROM上に圧縮形式のファイルと非圧縮のファイル
を混在させても、これを識別して伸長またはそのままR
AM上に展開することができるため、ファームウェアの
自由度が高くなるという利点がある。なお、この発明で
ブート時とはプログラムのロード時の意で必ずしも電源
オン時に限定されるものではない。
【0009】
【発明の実施の形態】図1はこの発明の実施形態である
ファームウェア組込機器のブロック図である。図2は同
ファームウェア組込機器の一例であるCDレコーダの外
観図である。なお、この発明のファームウェア組込機器
はCDレコーダ以外にも、オーディオ機器やポータブル
電子楽器など各種の民生機器に適用可能である。後述の
コントローラは、たとえばマイクロコンピュータ(マイ
コン)で構成される。
【0010】図2において、この装置は、操作パネル
に、プレイボタン,停止ボタンなどのスイッチ群、ディ
スクやトラックを選択するためのマルチジョグダイヤル
などの操作子を備え、利用者によってこれらの操作子が
操作されたとき、ファームウェアである制御プログラム
にしたがって対応する処理動作を実行するとともに、そ
の操作の内容等をディスプレイに表示する。
【0011】図1において、コントローラ10には、R
OM(マスクROM)11、フラッシュROM12、R
AM13、インタフェース14などが接続されている。
コントローラ10がマイコンで構成される場合、RAM
13はマイコンに内蔵のRAMであってもよい。
【0012】ROM11にはロードプログラムであるブ
ートローダが記憶されている。ブートローダは、装置の
電源オン時などのブート時に最初に実行されるプログラ
ムであり、必要なファームウェアを選択して、それをR
AM13上に展開するプログラムである。フラッシュR
OM12は、複数のファームウェア120、121、1
22を記憶している。同図では3つのファームウェアを
記憶しているが、その数は3に限定されない。各ファー
ムウェアのファイルの先頭に、このファイルが圧縮ファ
イルであるか非圧縮ファイルであるかを示す識別情報1
20a、121a、122aが書き込まれている。この
識別情報はファイルのヘッダ部に書き込んでおいてもよ
いが、プログラムファイルとは別のテーブルなどに記憶
するようにしてもよい。この実施形態では、ブートロー
ダを記憶するROM11とファームウェアを記憶するR
OM12を別に設けたが、1つのROMにブートローダ
とファームウェアを一緒に記憶するようにしてもよい。
【0013】RAM13にはファームウェアのプログラ
ムが展開されるとともに、動作中に発生した種々のデー
タが記憶される。また、インタフェース14には、コン
トローラが制御する各種動作部やユーザ操作パネルなど
が接続されている。
【0014】図2の電源スイッチ(POWER)がオン
されると、コントローラ10はまずブートローダを起動
し、必要なファームウェアを選択する。この選択された
ファームウェアが圧縮ファイルで記憶されているか非圧
縮ファイルで記憶されているかを識別情報で判断し、圧
縮ファイルであれば、これを伸長しながら読み出してR
AM13上に展開し、非圧縮ファイルであれば、これを
そのままRAM13上に展開する。この展開の間、ディ
スプレイには「WELCOME」が表示されている。
【0015】図3はこの装置の起動時の動作を示すフロ
ーチャートである。電源がオンされると(s1)、コン
トローラ10はまずブートローダを起動する(s2)。
そして設定されているモードなどを参照してどのファー
ムウェアを使用するかを決定する(s3)。そのファー
ムウェアをフラッシュROM12上で検索し、そのファ
ームウェアの識別情報を読み出して圧縮ファイルである
か非圧縮ファイルであるかを判定する(s4)。圧縮フ
ァイルであった場合にはこれを伸長しながらRAM13
上に展開する(s5)。非圧縮ファイルの場合にはその
ままRAM13上に展開する(s6)。プログラムファ
イルを展開するために要する時間は、1秒〜数秒程度で
あり、この間ディスプレイにはウェルカム表示を行う。
展開が終了するとこのファームウェアを起動し(s
7)、製品としての動作を開始する(s8)。
【0016】上記実施形態では、フラッシュROM12
に複数のファームウェアを記憶しておき、そのうちの1
つを選択するようにしているが、フラッシュROM12
に記憶するファームウェアは1つであってもよい。ま
た、メモリ素子としてマスクROMを用いてもよい。
【0017】また、以下のような場合に、複数のファー
ムウェアを記憶しておき、モードに応じて選択するよう
にすればよい。 バージョンアップされたプログラムと以前使用され
ていた旧バージョンのプログラム 処理内容に応じて旧バージョンのプログラムを読み出す
ことにより、以前は処理できていたのがバージョンアッ
プしたら使えなくなったという事態を招くことがない。
この場合、使用頻度の低い旧バージョンのプログラムを
圧縮ファイルとして記憶しておくことにより、フラッシ
ュROMの容量を節約することができる。
【0018】 1つを実行用とし、他の1つをバック
アップ用として同じプログラムを2つ記憶する これにより、実行用のプログラムが何らかの原因で壊れ
た場合でも支障なく装置としての機能を実行することが
できる。バックアップ用のプログラムを圧縮ファイルと
して記憶しておく。
【0019】 それぞれ異なる機能を実行する複数の
プログラムを記憶する 設定されているモードやユーザ操作に応じて所定のプロ
グラムを読み出すことによって複数の機能を実行するこ
とができる。この場合に使用頻度の少ないプログラムを
圧縮しておくことでフラッシュROMの容量を節約する
ことができる。この場合において、一方のプログラムを
通常の民生機器として動作するプログラムとし、他方の
プログラムをサービスマン用のメンテナンスプログラム
とすることもできる。
【0020】上記の場合について詳細に説明する。こ
れは同じファームウェアを非圧縮および圧縮で記憶し、
圧縮されたものを非圧縮のもののバックアップに用いる
ものである。自動的に非圧縮のものを優先させるように
してもよいが、ブートローダにどちらのファームウェア
を優先するかの優先順位を記憶しておいてもよい。ブー
トローダは、ブート時に各ファームウェアの優先順位を
調べ、優先順位の高いほうからそのファームウェアが正
常であるか、および、そのファームウェアの圧縮/非圧
縮を調べる。そして、正常なもので最も優先順位の高い
ものをRAMに展開して起動する。ファイルが正常であ
るか壊れているかは、周知のチェックサムやCRCなど
の手法でチェックできるようにしておけばよい。
【0021】図4のフローチャートを参照して上記動作
を詳細に説明する。同図において、電源がオンされる
と、コントローラ10はまずブートローダを起動する
(s11)。各ファームウェアの優先順位をチェックし
て最も優先順位の高いファームウェアを見つける(s1
2)。そのファームウェアをフラッシュROM12上で
検索し、そのファイルが正常であるか否かをチェックす
る(s13)。正常であった場合には、そのファームウ
ェアの識別情報を読み出して圧縮ファイルであるか非圧
縮ファイルであるかを判定する(s17)。圧縮ファイ
ルであった場合にはこれを伸長しながらRAM13上に
展開する(s18)。非圧縮ファイルの場合にはそのま
まRAM13上に展開する(s19)。プログラムファ
イルを展開するために要する時間は、1秒〜数秒程度で
あり、この間ディスプレイにはウェルカム表示を行う。
展開が終了するとこのファームウェアを起動し(s2
0)、製品としての動作を開始する。
【0022】一方、s13でファームウェアが正常でな
い(壊れている)と判断された場合には、次に優先順位
の高いファームウェアを検索し(s14)、あった場合
にはその正常/異常を調べるためにs13に戻る。次に
優先順位の高いファームウェアが見つけられなかった場
合には起動できるファームウェアがないと判断し(s1
6)、異常メッセージをディスプレイに表示して(s2
1)ダウン状態になる。
【0023】また、図3のフローチャートで電源オン時
に限らず、ユーザが新たなモード設定をしたときなどに
リブートしてs2から実行するようにしてもよい。
【0024】
【発明の効果】以上のようにこの発明によれば、装置に
複数のファームウェアを記憶しておいて、多機能にした
り装置の信頼度を向上したりすることができるうえ、フ
ァームウェアを記憶するメモリ容量を小さくすることが
できる。
【図面の簡単な説明】
【図1】 この発明の実施形態であるファームウェア組
込機器のブロック図
【図2】 同ファームウェア組込機器の一例であるCD
レコーダの外観図
【図3】 同装置の電源オン時の動作を示すフローチャ
ート
【図4】 同装置の電源オン時の動作を示すフローチャ
ート
【符号の説明】
10…CPU、11…(ブートローダを記憶している)
ROM、12…(複数のファームウェアを記憶してい
る)フラッシュROM、13…RAM、14…インタフ
ェース、120、121、122…(ファームウェア
の)ファイル、120a,121a、122a…(圧縮
/非圧縮を識別する)識別情報。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 プログラムを記憶したROMと、ブート
    時にこのプログラムをRAM上に展開する制御手段と、
    を備えたファームウェア組込機器において、 前記ROMは、前記プログラムを圧縮ファイルまたは非
    圧縮ファイルとして記憶するとともに、このプログラム
    が非圧縮ファイルであるか圧縮ファイルであるかを識別
    する識別情報を記憶し、 制御手段は、ブート時に、前記識別情報を読み取ってプ
    ログラムが圧縮ファイル、非圧縮ファイルのいずれで記
    憶されているかを判断し、圧縮ファイルの場合にはこれ
    を伸長しつつRAM上に展開し、非圧縮ファイルの場合
    にはそのままRAM上に展開するファームウェア組込機
    器。
  2. 【請求項2】 前記ROMは、複数のプログラムを記憶
    するとともに、それぞれのプログラムについての識別情
    報を記憶しており、 前記制御手段は、ブート時にプログラムを選択し、その
    プログラムの識別情報を参照して当該プログラムをRA
    M上に展開する請求項1に記載のファームウェア組込機
    器。
  3. 【請求項3】 ROMに記憶されているプログラムをR
    AM上に展開する制御手段に、そのプログラムが圧縮フ
    ァイル、非圧縮ファイルのいずれで記憶されているかを
    判断し、圧縮ファイルの場合にはこれを伸長しつつRA
    M上に展開し、非圧縮ファイルの場合にはそのままRA
    M上に展開する動作を実行させるファームウェア組込機
    器のブートプログラム。
JP2001164401A 2001-05-31 2001-05-31 ファームウェア組込機器およびファームウェア組込機器のブートプログラム Pending JP2002358207A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001164401A JP2002358207A (ja) 2001-05-31 2001-05-31 ファームウェア組込機器およびファームウェア組込機器のブートプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001164401A JP2002358207A (ja) 2001-05-31 2001-05-31 ファームウェア組込機器およびファームウェア組込機器のブートプログラム

Publications (1)

Publication Number Publication Date
JP2002358207A true JP2002358207A (ja) 2002-12-13

Family

ID=19007227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001164401A Pending JP2002358207A (ja) 2001-05-31 2001-05-31 ファームウェア組込機器およびファームウェア組込機器のブートプログラム

Country Status (1)

Country Link
JP (1) JP2002358207A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005002060A2 (en) * 2003-06-16 2005-01-06 Intel Corporation Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
KR100629515B1 (ko) 2005-07-12 2006-09-28 삼성전자주식회사 전자장치 및 그 테스트 프로그램 및 부트로더의 자동삭제방법
JP2013045285A (ja) * 2011-08-24 2013-03-04 Fuji Xerox Co Ltd 情報処理装置、画像形成装置およびプログラム
JP2017167887A (ja) * 2016-03-17 2017-09-21 日本電気株式会社 ファームウェア起動装置、ファームウェア起動方法、およびファームウェア起動プログラム
CN114911533A (zh) * 2022-05-19 2022-08-16 长沙金维信息技术有限公司 基于NorFlash接口的芯片启动方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005002060A2 (en) * 2003-06-16 2005-01-06 Intel Corporation Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
WO2005002060A3 (en) * 2003-06-16 2005-12-01 Intel Corp Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
US7934209B2 (en) 2003-06-16 2011-04-26 Intel Corporation Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
KR100629515B1 (ko) 2005-07-12 2006-09-28 삼성전자주식회사 전자장치 및 그 테스트 프로그램 및 부트로더의 자동삭제방법
JP2013045285A (ja) * 2011-08-24 2013-03-04 Fuji Xerox Co Ltd 情報処理装置、画像形成装置およびプログラム
JP2017167887A (ja) * 2016-03-17 2017-09-21 日本電気株式会社 ファームウェア起動装置、ファームウェア起動方法、およびファームウェア起動プログラム
CN114911533A (zh) * 2022-05-19 2022-08-16 长沙金维信息技术有限公司 基于NorFlash接口的芯片启动方法

Similar Documents

Publication Publication Date Title
US7085957B2 (en) Upgrading of firmware with tolerance to failures
EP1110147B1 (en) Boot failure recovery
EP0483865A2 (en) Personal computer capable of changing boot priority
US5634137A (en) Method and apparatus for updating system configuration based on open/closed state of computer housing cover
US7908469B2 (en) Method for executing power on self test on a computer system and updating SMBIOS information partially
US20080010446A1 (en) Portable apparatus supporting multiple operating systems and supporting method therefor
CN101354649B (zh) 电脑多重操作系统的启动方法
JP3629517B2 (ja) 情報処理装置のブートデバイス切替方法。
EP2645239A1 (en) Electronic apparatus and booting method
JP2002358207A (ja) ファームウェア組込機器およびファームウェア組込機器のブートプログラム
CN100410893C (zh) 自行修复嵌入式设备的主控应用程序的方法及设备
JPH11167493A (ja) 情報処理装置およびその拡張装置の立ち上げ方法
US20060168440A1 (en) OS selection methods and computer systems utilizing the same
JP2003067284A (ja) デジタル放送受信機
JPH08129495A (ja) コンピュータシステム及びそのセルフテスト方法
JP2003131880A (ja) 情報処理装置、プログラム起動方法及び起動制御プログラム
US20040236932A1 (en) Apparatus and method for firmware upgrade in microprocessor-based processing units
GB2400194A (en) Upgrading software in a consumer product
JP2994268B2 (ja) 情報処理装置
JP3296520B2 (ja) ダウンロード・ブートストラップ方法
JP3487117B2 (ja) データ処理装置
JP2004287979A (ja) ディスク制御装置及びディスク装置用制御プログラムの更新方法
KR100806104B1 (ko) 디지털 가전기기의 소프트웨어 업그레이드 방법
JP5066946B2 (ja) Os種別自動特定装置、os自動起動装置、プロセッサシステム、os種別自動特定方法、os自動起動方法、プログラム、及び記憶媒体
KR100636518B1 (ko) 이동통신단말기의 펌웨어 업그레이드 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080603