JP2001331379A - フラッシュメモリ更新プログラムの書き換え方法及び装置 - Google Patents

フラッシュメモリ更新プログラムの書き換え方法及び装置

Info

Publication number
JP2001331379A
JP2001331379A JP2000150028A JP2000150028A JP2001331379A JP 2001331379 A JP2001331379 A JP 2001331379A JP 2000150028 A JP2000150028 A JP 2000150028A JP 2000150028 A JP2000150028 A JP 2000150028A JP 2001331379 A JP2001331379 A JP 2001331379A
Authority
JP
Japan
Prior art keywords
area
update
program
backup
storage area
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
JP2000150028A
Other languages
English (en)
Inventor
Fujio Kishi
富士生 貴志
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.)
Renesas Micro Systems Co Ltd
Original Assignee
Renesas Micro Systems Co 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 Renesas Micro Systems Co Ltd filed Critical Renesas Micro Systems Co Ltd
Priority to JP2000150028A priority Critical patent/JP2001331379A/ja
Publication of JP2001331379A publication Critical patent/JP2001331379A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】フラッシュメモリに格納したフラッシュメモリ
書き換えプログラム(ブートプログラム)自身を書き換
えるときに、安全・確実に書き換えることが可能な方法
及び装置を提供する。 【解決手段】一括消去可能な単位で、フラッシュメモリ
領域をスタートアッププログラム領域、ブートプログラ
ム領域、アプリケーションプログラム領域、バックアッ
プ領域、ステータス領域に分け、ブートプログラムを更
新時、ブートプログラムをバックアップ領域に複写し、
ブートプログラム領域の書き換えが完了するまではバッ
クアップ領域のブートプログラムを実行するようにする
とともに、ステータス領域に書き換え状態情報を格納し
て、この情報により各ステップを実行するようにした。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、フラッシュメモリ
をオンボード書き換えする方法及び装置に関して、特
に、フラッシュメモリに格納された、フラッシュメモリ
を書き換えるフラッシュメモリ更新プログラム自身を書
き換える方法及び装置に関する。
【0002】
【従来の技術】以下に図面を参照して従来技術を説明す
る。図5は、第1の従来技術として、「特開平8−55
068号公開特許公報」に記載されたフラッシュメモリ
に格納されたプログラムを書き換えるようにした通信端
末装置の構成を説明するブロック図である。また、図6
は、そのフラッシュメモリ部を領域分割した分割構造例
を示す図である。この特開平8−55068号公開特許
公報に記載された第1の従来技術では、フラッシュメモ
リ52を一括消去可能なメモリエリア単位で主プログラ
ム用領域、バックアップ用領域、フラグ領域に分け、主
プログラム用領域を書き換えるときには、CPU51
は、通信回線及び回線制御回路55を介して受信データ
をRAM53にダウンラインロードし、RAM53にダ
ウンラインロードした受信データをフラッシュメモリ5
2のバックアップ用領域に複写するように書き換え、さ
らにこのバックアップ用領域に複写されたデータを主プ
ログラム用領域に複写するように書き換えるとともに、
それらの処理を進める際に、各々の処理を実施したこと
を示す情報を履歴状態情報として、フラッシュメモリ5
2のフラグ領域に書き込んで保存するようにしている。
このとき、ダウンラインロードした更新データをRAM
54からフラッシュメモリ52に転送するプログラム
(フラッシュメモリ更新プログラム)は、読み出し専用
メモリ(ROM54)に格納しておき、これをCPU5
1に実行させることによりフラッシュメモリ52の書き
換え処理を行うようにしている。
【0003】また、図7は、第2の従来技術として、
「特開平9−34807号公開特許公報」に記載された
フラッシュメモリに格納された基本プログラムを書き換
えるようにした情報処理装置の構成を説明するブロック
図である。この第2の従来技術において、CPU708
は、フラッシュメモリ706に格納された基本プログラ
ムをフラッシュメモリ705の空き領域に複写(コピ
ー)し、この複写がなされたことを電池でバックアップ
された記憶回路704と、情報保持回路7012に記憶
し、この複写がなされたという情報を前記の情報保持回
路7012が保持している間、CPU708は、ブリッ
ジ回路701を介してアクセス変換して、基本プログラ
ムをフラッシュメモリ705からアクセスするようにし
て、FDD703から読み込んだ基本プログラムの書き
換え情報に基づいて、フラッシュメモリ706の基本プ
ログラムを書き換えるようにしている。この第1の従来
技術においては、フラッシュメモリ更新プログラムは基
本プログラムに含まれている。
【0004】
【発明が解決しようとする課題】前述した従来技術にお
いて、フラッシュメモリ書き換え中に、停電したり、シ
ステムがハングアップしたり、あるいは誤ってリセット
スイッチが投入されたりしてフラッシュメモリの書き換
え処理が中断した場合、第1の従来技術では、システム
を再起動して、フラグ領域に格納されている履歴状態情
報を確認することにより、どの状態で中断されたかを確
認して、中断前の状態から再度フラッシュメモリの書き
換え処理を再開することにより、確実に更新データをバ
ックアップ用領域に格納し、また、主プログラム領域へ
の転送も確実に行うようにしている。しかしながら、こ
の第1の従来技術においては、ROM54に格納してい
る、ダウンラインロードした更新データをメインメモリ
に転送するプログラム(フラッシュメモリ更新プログラ
ム)自身を書き換えることは考慮していないので、この
転送プログラム自身を更新するときには、ROM54自
体を交換する必要があった。
【0005】また、第2の従来技術では、フラッシュメ
モリを書き換え中に停電したり、システムがハングアッ
プしたり、あるいは誤ってリセットスイッチが投入され
てフラッシュメモリの書き換え処理が中断されて、装置
を再起動したとき、電池でバックアップされた記憶回路
704及び情報保持回路7012により、ブリッジ回路
701が、フラッシュメモリ705に複写した基本プロ
グラムをアクセスするようにアクセス変換するので、再
起動時にシステムが暴走することもなく、確実にフラッ
シュメモリ706に格納した基本プログラムの更新が実
行されるようにしている。しかしながら、この第2の従
来技術においては、フラッシュメモリ706を更新中に
アクセス変換するためのブリッジ回路701が必要不可
欠であった。
【0006】本発明は、フラッシュメモリを書き換え処
理するフラッシュメモリ更新プログラムを格納するRO
Mを不要とし、フラッシュメモリ更新プログラム自身を
書き換えて更新するとき、バックアップ用領域にアクセ
ス変換するブリッジ回路も不要とする、フラッシュメモ
リ更新プログラムの書き換え方法及び装置を提供するも
のである。
【0007】
【課題を解決するための手段】前記課題を解決するた
め、本発明のフラッシュメモリ更新プログラムの書き換
え方法及び装置は、一括消去可能な領域単位に分割され
オンボード書き換え可能なフラッシュメモリと、バッフ
ァメモリと、外部のホスト・システムとデータの交換を
行う通信インターフェースと、システムを制御するCP
Uとを備えた装置において、前記フラッシュメモリは、
一括消去可能な最小の領域を単位として、前記装置起動
時に最初に実行されるスタートアッププログラムを格納
するスタートアッププログラム格納領域と、前記フラッ
シュメモリを書き換えて更新処理するフラッシュメモリ
更新プログラム(以下ブートプログラムと呼ぶ)を格納
するブートプログラム格納領域と、アプリケーションプ
ログラムを格納するアプリケーションプログラム格納領
域と、前記フラッシュメモリ更新処理の更新対象領域に
格納されている更新前のプログラムやデータを複写して
格納するバックアップ領域と、フラッシュメモリ更新処
理状態を示すステータス情報を格納するステータス情報
格納領域とに区分されており、前記ステータス情報格納
領域には、前記フラッシュメモリの更新要求があるとき
には、更新対象領域を識別する更新領域識別情報と、更
新対象領域をバックアップ領域に複写してバックアップ
可能な状態か否かを識別するバックアップ識別情報を格
納するようにしており、前記CPUは、相対アドレス分
岐命令を備え、前記ブートプログラムは、前記相対アド
レス分岐命令を使用して、ブートプログラムが格納され
るアドレス領域に依存しないで、その実行が可能なリロ
ーケータブル・オブジェクト・モジュールとして作成さ
れており、前記CPUは、前記装置起動時に、前記スタ
ートアップ・プログラムを起動して、前記のステータス
情報格納領域のバックアップ識別情報を確認して、バッ
クアップしていないときには、第2ステップに分岐し、
バックアップ可能なときには、第3ステップに分岐する
第1ステップと、前記ホストシステムからのフラッシュ
メモリの更新要求の有無を確認して、更新要求がないと
きには、前記アプリケーションプログラム格納領域に格
納している所定のアプリケーションプログラムを起動
し、更新要求があるときには、更新対象領域を識別する
更新領域識別情報を前記バッファメモリの所定の領域に
格納した後、前記ブートプログラム格納領域に格納して
いるブートプログラムを起動する第2ステップと、更新
領域識別情報が前記ブートプログラム格納領域を指示す
るか否かを確認して、ブートプログラム格納領域でない
ときには、前記ブートプログラム格納領域に格納してい
るブートプログラムを起動し、ブートプログラム格納領
域を指示するときには、前記バックアップ領域に複写し
たブートプログラムを起動する第3ステップの、前記の
第1から第3の各ステップからなるスタートアッププロ
グラムを実行するようにし、また、前記CPUは、前記
スタートアッププログラムにより前記ブートプログラム
を起動したときには、前記ステータス情報格納領域の更
新領域識別情報を確認して、更新領域識別情報が前記ブ
ートプログラム格納領域を指示するときには第5ステッ
プに分岐し、更新領域識別情報が前記ブートプログラム
格納領域を指示しないときには第6ステップに分岐する
第4ステップと、バックアップ識別情報を確認して、前
記バックアップ領域に更新対象領域の更新前プログラム
あるいはデータが複写され、バックアップが可能な状態
か否かを確認して、バックアップ可能な状態ならば第1
1ステップに分岐し、バックアップ不可能な状態ならば
第9ステップに分岐する第5ステップと、前記ステータ
ス情報格納領域の更新領域識別情報を確認して、更新不
要であることを指示する場合には第7ステップに分岐
し、それ以外の場合には第8ステップに分岐する第6ス
テップと、前記バッファメモリに格納されている更新領
域識別情報をステータス情報格納領域に複写して更新領
域識別情報とする第7ステップと、更新対象領域の更新
前のプログラムあるいはデータを前記バックアップ領域
に複写し、複写完了後に、バックアップ可能状態である
ことを指示する情報を前記バックアップ識別情報として
前記ステータス情報格納領域に設定する第9ステップ
と、ステータス情報格納領域の更新領域識別情報を確認
して、更新対象領域が前記ブートプログラム格納領域で
ある場合には前記バックアップ領域に複写したブートプ
ログラムを起動し、それ以外の場合には、第11ステッ
プに分岐する第10ステップと、前記ホストシステムか
ら取得した更新ファイル・データを更新対象領域に複写
して書き換え、書き換えが完了後に、フラッシュメモリ
の更新が不要であることを指示する情報を前記更新領域
識別情報としてステータス情報格納領域に設定し、前記
バックアップ領域がバックアップしていない状態である
ことを指示する情報を前記バックアップ識別情報として
前記ステータス情報格納領域に設定し、前記ホストシス
テムにフラッシュメモリの更新が終了したことを通知す
る第11ステップと、起動元のプログラムに復帰する第
12ステップの、前記第4から第12までの各ステップ
からなるブートプログラムを実行するようにして、前記
フラッシュメモリを書き換え処理することにより、前記
フラッシュメモリ更新プログラム(ブートプログラム)
自身を更新するようにしたことを特徴としている。
【0008】また、前記リローケータブル・オブジェク
ト・モジュール化されたブートプログラムが関数ルーチ
ン化されており、前記第10ステップにおいて、前記バ
ックアップ領域に複写したブートプログラムを起動する
のに、関数呼び出し命令(コール命令)により前記ブー
トプログラムを呼び出して起動し、前記第12ステップ
で起動元のプログラムに復帰するのに復帰命令(リター
ン命令)により復帰するようにし、あるいは、前記第1
0ステップにおいて、前記バックアップ領域に複写した
ブートプログラムを起動するのに、前記バックアップ領
域の所定のアドレスに分岐することで前記ブートプログ
ラムを起動し、前記第12ステップで起動元のプログラ
ムに復帰するのに前記スタートアッププログラム格納領
域の所定のアドレスに分岐することで起動元のプログラ
ムに復帰するようにしたことを特徴としている。
【0009】さらに、前記フラッシュメモリ更新プログ
ラムの書き換え方法の手順を記憶媒体に格納して、情報
処理装置において利用可能にした。
【0010】
【発明の実施の形態】本発明の実施の形態について、以
下に図面を参照して説明する。
【0011】図1は、本発明の第1の実施の形態のブー
トプログラム書き換え方法及び装置を説明するブロック
図である。
【0012】図1の装置は、一括消去可能な領域単位に
分割されオンボード書き換え可能なフラッシュメモリ2
と、外部のホスト・システム5とデータの交換を行う通
信インターフェース3と、バッファ・メモリ4と、シス
テムを制御するCPU1とを備えている。
【0013】図2は、前記フラッシュメモリ2の領域の
構成を説明する図で、前記フラッシュメモリ2は、一括
消去可能な最小の領域を単位として、前記装置起動時に
最初に実行されるスタートアップ・プログラムを格納す
るスタートアッププログラム格納領域(A1)と、前記
通信インターフェース3を介して前記ホスト・システム
5から更新データを入手して、前記フラッシュメモリ2
の書き換え処理をするフラッシュメモリ更新プログラム
(以下ブートプログラムと呼ぶ)を格納するブートプロ
グラム格納領域(A2)と、アプリケーションプログラ
ムを格納するアプリケーションプログラム格納領域(A
3)と、前記フラッシュメモリ更新処理の更新対象領域
に格納されている更新前のプログラムやデータを複写し
て格納するバックアップ領域(A4)と、フラッシュメ
モリ更新処理状態を示すステータス情報を格納するステ
ータス情報格納領域(A5)とに区分されており、前記
ステータス情報格納領域(A5)には、前記フラッシュ
メモリ2の更新要求があるときには、更新対象領域を識
別する更新領域識別情報(S1)と、更新対象領域の内
容を前記バックアップ領域に複写してバックアップ可能
な状態か否かを識別するバックアップ識別情報(S2)
を格納するようにしている。
【0014】ここで、前記CPU1は、相対アドレス分
岐命令を備えたCPUを採用している。例えば、NEC
社のマイクロプロセッサμPD70116などである。
相対アドレス命令については、「NECデータブック
Vシリーズ マイクロプロセッサ 1991<IA−1
26A June 1991P>」の152〜153ペ
ージのブランチ命令の項に、その例が記載されている。
【0015】また、前記ブートプログラムは、前記CP
Uの前記相対アドレス分岐命令を使用して、ブートプロ
グラムが格納されるアドレス領域に依存しないで、その
実行が可能なリローケータブル・オブジェクト・モジュ
ールとして作成する。
【0016】次に、前記フラッシュメモリの書き換え方
法について、スタートアッププログラムの処理と、ブー
トプログラムの処理に分けて説明する。
【0017】図3は、スタートアッププログラムの処理
手順を説明するフロー・チャートである。また、図4
は、ブートプログラムの処理手順を説明するフロー・チ
ャートである。
【0018】図3を参照して、スタートアッププログラ
ムの処理手順を説明する。CPU1は、装置起動時に、
スタートアップ・プログラムを起動して、ステータス情
報格納領域(A5)のバックアップ識別情報(S2)を
確認して、バックアップしていないときには、第2ステ
ップ(32)に分岐し、バックアップ可能なときには、
第3ステップ(33)に分岐する第1ステップ(31)
と、ホストシステム5からのフラッシュメモリの更新要
求の有無を確認して、更新要求がないときには、前記ア
プリケーションプログラム格納領域(A3)に格納して
いる所定のアプリケーションプログラムを起動し、更新
要求があるときには、更新対象領域を識別する更新領域
識別情報を前記バッファメモリの所定の領域に格納した
後、前記ブートプログラム格納領域(A2)に格納して
いるブートプログラムを起動する第2ステップ(32)
と、更新領域識別情報(S1)が前記ブートプログラム
格納領域(A2)を指示するか否かを確認して、ブート
プログラム格納領域でないときには、前記ブートプログ
ラム格納領域(A2)に格納しているブートプログラム
を起動し、ブートプログラム格納領域(A2)を指示す
るときには、前記バックアップ領域(A4)に複写した
ブートプログラムを起動する第3ステップ(33)の、
前記の第1から第3の各ステップからなるスタートアッ
ププログラムを実行するようにしている。
【0019】次に、ブートプログラムの処理手順を図4
を参照して説明する。CPU1は、前記スタートアップ
プログラムにより前記ブートプログラムを起動したとき
には、前記ステータス情報格納領域(A5)の更新領域
識別情報(S1)を確認して、更新領域識別情報が前記
ブートプログラム格納領域(A2)を指示するときには
第5ステップ(42)に分岐し、更新領域識別情報が前
記ブートプログラム格納領域を指示しないときには第6
ステップ(43)に分岐する第4ステップ(41)と、
バックアップ識別情報(S2)を確認して、前記バック
アップ領域(A4)に更新対象領域の更新前プログラム
あるいはデータが複写され、バックアップが可能な状態
か否かを確認して、バックアップ可能な状態ならば第1
1ステップ(48)に分岐し、バックアップ不可能な状
態ならば第9ステップ(46)に分岐する第5ステップ
(42)と、前記ステータス情報格納領域(A5)の更
新領域識別情報(S1)を確認して、更新不要であるこ
とを指示する場合には第7ステップ(44)に分岐し、
それ以外の場合には第8ステップ(45)に分岐する第
6ステップ(43)と、前記バッファメモリ4に格納さ
れている更新領域識別情報をステータス情報格納領域
(A5)に複写して更新領域識別情報(S1)とする第
7ステップ(44)と、更新対象領域の更新前のプログ
ラムあるいはデータを前記バックアップ領域(A4)に
複写し、複写完了後に、バックアップ可能状態であるこ
とを指示する情報を前記バックアップ識別情報(S2)
として前記ステータス情報格納領域(A5)に設定する
第9ステップ(46)と、ステータス情報格納領域(A
5)の更新領域識別情報(S1)を確認して、更新対象
領域が前記ブートプログラム格納領域(A2)である場
合には前記バックアップ領域(A4)に複写したブート
プログラムを起動し、それ以外の場合には、第11ステ
ップ(48)に分岐する第10ステップ(47)と、前
記ホストシステム5から取得した更新ファイル・データ
を更新対象領域に複写して書き換え、書き換えが完了後
に、フラッシュメモリの更新が不要であることを指示す
る情報を前記更新領域識別情報(S1)としてステータ
ス情報格納領域(A5)に設定し、前記バックアップ領
域がバックアップしていない状態であることを指示する
情報を前記バックアップ識別情報(S2)として前記ス
テータス情報格納領域(A5)に設定し、前記ホストシ
ステム5にフラッシュメモリの更新が終了したことを通
知する第11ステップ(48)と、起動元のプログラム
に復帰する第12ステップ(49)の、前記第4から第
12までの各ステップからなるブートプログラムを実行
するようにしている。
【0020】ここで、前記リローケータブル・オブジェ
クト・モジュール化されたブートプログラムを関数ルー
チンとして作成し、前記第10ステップにおいて、前記
バックアップ領域に複写したブートプログラムを起動す
るのに、関数呼び出し命令(コール命令)により前記ブ
ートプログラムを呼び出して起動し、前記第12ステッ
プで起動元のプログラムに復帰するのに復帰命令(リタ
ーン命令)により復帰するようにしてもよいし、あるい
は、前記第10ステップにおいて、前記バックアップ領
域に複写したブートプログラムを起動するのに、前記バ
ックアップ領域の所定のアドレスに分岐することで前記
ブートプログラムを起動し、前記第12ステップで起動
元のプログラムに復帰するのに前記スタートアッププロ
グラム格納領域の所定のアドレスに分岐することで起動
元のプログラムに復帰するようにしてもよい。
【0021】CPU1は、以上のようにスタートアップ
プログラム及びブートプログラムを実行することによ
り、前記フラッシュメモリを書き換え処理して、ブート
プログラム格納領域の前記フラッシュメモリ更新プログ
ラム(ブートプログラム)自身を更新するようにしてい
る。図8は、前記スタートアッププログラム及びブート
プログラムによりフラッシュメモリのブートプログラム
格納領域(A2)が更新される様子を、順を追って示し
た図である。
【0022】図8の(a)は、更新前のフラッシュメモ
リの状態を示している。ブートプログラム格納領域(A
2)には、現ブートプログラムが格納されている。ま
た、第1及び第2のステータス情報格納領域には、更新
領域識別情報(S1)としてフラッシュメモリの書き換
えは不要であることを指示する情報が、バックアップ識
別情報(S2)にはバックアップ領域へのコピーが済ん
でいないことを指示するステータス情報が格納されてい
る。
【0023】図8の(b)は、ホストシステムからブー
トプログラム格納領域(A2)の更新要求があることを
示す情報が、更新領域識別情報(S1)として格納さ
れ、ブートプログラム格納領域(A2)の現ブートプロ
グラムをバックアップ領域(A4)に複写が途中の状態
を示している。
【0024】図8の(c)は、現ブートプログラムのバ
ックアップ領域への複写が完了し、バックアップ識別情
報(S2)として、バックアップ領域にコピーが完了し
てバックアップ可能であることを指示する情報が設定さ
れた状態を示している。
【0025】図8の(d)は、現ブートプログラムを領
域A2からではなく、バックアップ領域A4から起動す
るように変更する状態を示している。
【0026】図8の(e)は、ホストシステム5から取
得した更新ファイル・データ(新ブートプログラム)
を、ブートプログラム格納領域(A2)に書き込み途中
の状態を示している。
【0027】図8の(f)は、ブートプログラム格納領
域(A2)への新ブートプログラムの書き換えが完了し
て、ステータス情報格納領域(A5)には、更新領域識
別情報(S1)としてフラッシュメモリの書き換えが不
要であることを指示する情報を、バックアップ識別情報
(S2)として、バックアップ領域へのコピーが済んで
いない状態であることを指示する情報を格納している。
【0028】以上のようにして、前記ブートプログラム
格納領域を書き換えて、前記ブートプログラム自身を更
新するようにしている。
【0029】ここに、本発明においては、前記スタート
アッププログラム格納領域の書き換えについては考慮し
ていない。
【0030】
【発明の効果】以上のように、本願発明のブートプログ
ラム書き換え方法及び装置は、ブートプログラム書き換
え中は、バックアップ領域にコピーした更新前のブート
プログラムにより、前記ブートプログラム格納領域の書
き換え処理を完了するようにしたので、新ブートプログ
ラムの更新が完了するまでは、新ブートプログラムへの
更新にともなって通信インターフェイスなどの変更が必
要な場合にも、通信インターフェイスなどを、ブートプ
ログラム更新前の装置条件のままにして、ブートプログ
ラムの更新ができるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の形態のブートプログラムを書き
換える装置の構成を説明するブロック図である。
【図2】本発明の実施の形態の装置のフラッシュメモリ
の領域の構成を説明する図である。
【図3】本発明の実施の形態のブートプログラム書き換
え方法におけるスタートアッププログラムの処理手順を
説明するフローチャートである。
【図4】本発明の実施の形態のブートプログラム書き換
え方法におけるブートプログラムの処理手順を説明する
フローチャートである。
【図5】特開平8−55068号公報に記載された、第
1の従来技術を説明する図である。
【図6】特開平8−55068号公報に記載された、第
1の従来技術のフラッシュメモリの構造を説明する図で
ある。
【図7】特開平9−34807号公報に記載された、第
2の従来技術を説明する図である。
【図8】本発明のブートプログラム書き換え方法により
フラッシュメモリのブートプログラムが書き換えられ状
況を順を追って説明する図である。
【符号の説明】
1 CPU 2 フラッシュメモリ 3 通信インターフェイス 4 バッファ・メモリ 5 ホスト・システム 51 CPU 52 フラッシュメモリ 53 RAM 54 ROM 55 回線制御回路 701 ブリッジ回路 703 FDD 704 記憶回路 705、706 フラッシュメモリ 708 CPU 7012 情報保持回路

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 一括消去可能な領域単位に分割されオン
    ボード書き換え可能なフラッシュメモリと、バッファメ
    モリと、外部のホスト・システムとデータの交換を行う
    通信インターフェースと、システムを制御するCPUと
    を備えた装置において、前記フラッシュメモリは、一括
    消去可能な最小の領域を単位として、前記装置起動時に
    最初に実行されるスタートアッププログラムを格納する
    スタートアッププログラム格納領域と、前記フラッシュ
    メモリを書き換えて更新処理するフラッシュメモリ更新
    プログラム(以下ブートプログラムと呼ぶ)を格納する
    ブートプログラム格納領域と、アプリケーションプログ
    ラムを格納するアプリケーションプログラム格納領域
    と、前記フラッシュメモリ更新処理の更新対象領域に格
    納されている更新前のプログラムやデータを複写して格
    納するバックアップ領域と、フラッシュメモリ更新処理
    状態を示すステータス情報を格納するステータス情報格
    納領域とに区分されており、前記ステータス情報格納領
    域には、前記フラッシュメモリの更新要求があるときに
    は、更新対象領域を識別する更新領域識別情報と、更新
    対象領域をバックアップ領域に複写してバックアップ可
    能な状態か否かを識別するバックアップ識別情報を格納
    するようにしており、前記CPUは、相対アドレス分岐
    命令を備え、前記ブートプログラムは、前記相対アドレ
    ス分岐命令を使用して、ブートプログラムが格納される
    アドレス領域に依存しないで、その実行が可能なリロー
    ケータブル・オブジェクト・モジュールとして作成され
    ており、前記CPUは、前記装置起動時に、前記スター
    トアップ・プログラムを起動して、前記のステータス情
    報格納領域のバックアップ識別情報を確認して、バック
    アップしていないときには、第2ステップに分岐し、バ
    ックアップ可能なときには、第3ステップに分岐する第
    1ステップと、前記ホストシステムからのフラッシュメ
    モリの更新要求の有無を確認して、更新要求がないとき
    には、前記アプリケーションプログラム格納領域に格納
    している所定のアプリケーションプログラムを起動し、
    更新要求があるときには、更新対象領域を識別する更新
    領域識別情報を前記バッファメモリの所定の領域に格納
    した後、前記ブートプログラム格納領域に格納している
    ブートプログラムを起動する第2ステップと、更新領域
    識別情報が前記ブートプログラム格納領域を指示するか
    否かを確認して、ブートプログラム格納領域でないとき
    には、前記ブートプログラム格納領域に格納しているブ
    ートプログラムを起動し、ブートプログラム格納領域を
    指示するときには、前記バックアップ領域に複写したブ
    ートプログラムを起動する第3ステップの、前記の第1
    から第3の各ステップからなるスタートアッププログラ
    ムを実行するようにし、また、前記CPUは、前記スタ
    ートアッププログラムにより前記ブートプログラムを起
    動したときには、前記ステータス情報格納領域の更新領
    域識別情報を確認して、更新領域識別情報が前記ブート
    プログラム格納領域を指示するときには第5ステップに
    分岐し、更新領域識別情報が前記ブートプログラム格納
    領域を指示しないときには第6ステップに分岐する第4
    ステップと、バックアップ識別情報を確認して、前記バ
    ックアップ領域に更新対象領域の更新前プログラムある
    いはデータが複写され、バックアップが可能な状態か否
    かを確認して、バックアップ可能な状態ならば第11ス
    テップに分岐し、バックアップ不可能な状態ならば第9
    ステップに分岐する第5ステップと、前記ステータス情
    報格納領域の更新領域識別情報を確認して、更新不要で
    あることを指示する場合には第7ステップに分岐し、そ
    れ以外の場合には第8ステップに分岐する第6ステップ
    と、前記バッファメモリに格納されている更新領域識別
    情報をステータス情報格納領域に複写して更新領域識別
    情報とする第7ステップと、更新対象領域の更新前のプ
    ログラムあるいはデータを前記バックアップ領域に複写
    し、複写完了後に、バックアップ可能状態であることを
    指示する情報を前記バックアップ識別情報として前記ス
    テータス情報格納領域に設定する第9ステップと、ステ
    ータス情報格納領域の更新領域識別情報を確認して、更
    新対象領域が前記ブートプログラム格納領域である場合
    には前記バックアップ領域に複写したブートプログラム
    を起動し、それ以外の場合には、第11ステップに分岐
    する第10ステップと、前記ホストシステムから取得し
    た更新ファイル・データを更新対象領域に複写して書き
    換え、書き換えが完了後に、フラッシュメモリの更新が
    不要であることを指示する情報を前記更新領域識別情報
    としてステータス情報格納領域に設定し、前記バックア
    ップ領域がバックアップしていない状態であることを指
    示する情報を前記バックアップ識別情報として前記ステ
    ータス情報格納領域に設定し、前記ホストシステムにフ
    ラッシュメモリの更新が終了したことを通知する第11
    ステップと、起動元のプログラムに復帰する第12ステ
    ップの、前記第4から第12までの各ステップからなる
    ブートプログラムを実行するようにして、前記フラッシ
    ュメモリを書き換え処理することにより、前記フラッシ
    ュメモリ更新プログラム(ブートプログラム)自身を更
    新するようにしたことを特徴とするフラッシュメモリ更
    新プログラムの書き換え方法。
  2. 【請求項2】 前記リローケータブル・オブジェクト・
    モジュール化されたブートプログラムが関数ルーチン化
    されており、前記第10ステップにおいて、前記バック
    アップ領域に複写したブートプログラムを起動するの
    に、関数呼び出し命令(コール命令)により前記ブート
    プログラムを呼び出して起動し、前記第12ステップで
    起動元のプログラムに復帰するのに復帰命令(リターン
    命令)により復帰するようにしたことを特徴とする請求
    項1記載のフラッシュメモリ更新プログラムの書き換え
    方法。
  3. 【請求項3】 前記第10ステップにおいて、前記バッ
    クアップ領域に複写したブートプログラムを起動するの
    に、前記バックアップ領域の所定のアドレスに分岐する
    ことで前記ブートプログラムを起動し、前記第12ステ
    ップで起動元のプログラムに復帰するのに前記スタート
    アッププログラム格納領域の所定のアドレスに分岐する
    ことで起動元のプログラムに復帰するようにしたことを
    特徴とする請求項1記載のフラッシュメモリ更新プログ
    ラムの書き換え方法。
  4. 【請求項4】 一括消去可能な領域単位に分割されオン
    ボード書き換え可能なフラッシュメモリと、バッファメ
    モリと、外部のホスト・システムとデータの交換を行う
    通信インターフェースと、システムを制御するCPUと
    を備えた装置において、前記フラッシュメモリは、一括
    消去可能な最小の領域を単位として、前記装置起動時に
    最初に実行されるスタートアッププログラムを格納する
    スタートアッププログラム格納領域と、前記フラッシュ
    メモリを書き換えて更新処理するフラッシュメモリ更新
    プログラム(以下ブートプログラムと呼ぶ)を格納する
    ブートプログラム格納領域と、アプリケーションプログ
    ラムを格納するアプリケーションプログラム格納領域
    と、前記フラッシュメモリ更新処理の更新対象領域に格
    納されている更新前のプログラムやデータを複写して格
    納するバックアップ領域と、フラッシュメモリ更新処理
    状態を示すステータス情報を格納するステータス情報格
    納領域とに区分されており、前記ステータス情報格納領
    域には、前記フラッシュメモリの更新要求があるときに
    は、更新対象領域を識別する更新領域識別情報と、更新
    対象領域をバックアップ領域に複写してバックアップ可
    能な状態か否かを識別するバックアップ識別情報を格納
    するようにしており、前記CPUは、相対アドレス分岐
    命令を備え、前記ブートプログラムは、前記相対アドレ
    ス分岐命令を使用して、ブートプログラムが格納される
    アドレス領域に依存しないで、その実行が可能なリロー
    ケータブル・オブジェクト・モジュールとして作成され
    ており、前記CPUは、前記装置起動時に、前記スター
    トアップ・プログラムを起動して、前記のステータス情
    報格納領域のバックアップ識別情報を確認して、バック
    アップしていないときには、第2ステップに分岐し、バ
    ックアップ可能なときには、第3ステップに分岐する第
    1ステップと、前記ホストシステムからのフラッシュメ
    モリの更新要求の有無を確認して、更新要求がないとき
    には、前記アプリケーションプログラム格納領域に格納
    している所定のアプリケーションプログラムを起動し、
    更新要求があるときには、更新対象領域を識別する更新
    領域識別情報を前記バッファメモリの所定の領域に格納
    した後、前記ブートプログラム格納領域に格納している
    ブートプログラムを起動する第2ステップと、更新領域
    識別情報が前記ブートプログラム格納領域を指示するか
    否かを確認して、ブートプログラム格納領域でないとき
    には、前記ブートプログラム格納領域に格納しているブ
    ートプログラムを起動し、ブートプログラム格納領域を
    指示するときには、前記バックアップ領域に複写したブ
    ートプログラムを起動する第3ステップの、前記の第1
    から第3の各ステップからなるスタートアッププログラ
    ムを実行するようにし、また、前記CPUは、前記スタ
    ートアッププログラムにより前記ブートプログラムを起
    動したときには、前記ステータス情報格納領域の更新領
    域識別情報を確認して、更新領域識別情報が前記ブート
    プログラム格納領域を指示するときには第5ステップに
    分岐し、更新領域識別情報が前記ブートプログラム格納
    領域を指示しないときには第6ステップに分岐する第4
    ステップと、バックアップ識別情報を確認して、前記バ
    ックアップ領域に更新対象領域の更新前プログラムある
    いはデータが複写され、バックアップが可能か否かを確
    認して、バックアップ可能な状態ならば第11ステップ
    に分岐し、バックアップ不可能な状態ならば第9ステッ
    プに分岐する第5ステップと、前記ステータス情報格納
    領域の更新領域識別情報を確認して、更新不要であるこ
    とを指示する場合には第7ステップに分岐し、それ以外
    の場合には第8ステップに分岐する第6ステップと、前
    記バッファメモリに格納されている更新領域識別情報を
    ステータス情報格納領域に複写して更新領域識別情報と
    する第7ステップと、更新対象領域の更新前のプログラ
    ムあるいはデータを前記バックアップ領域に複写し、複
    写完了後に、バックアップ可能状態であることを指示す
    る情報を前記バックアップ識別情報として前記ステータ
    ス情報格納領域に設定する第9ステップと、ステータス
    情報格納領域の更新領域識別情報を確認して、更新対象
    領域が前記ブートプログラム格納領域である場合には前
    記バックアップ領域に複写したブートプログラムを起動
    し、それ以外の場合には、第11ステップに分岐する第
    10ステップと、前記ホストシステムから取得した更新
    ファイル・データを更新対象領域に複写して書き換え、
    書き換えが完了後に、フラッシュメモリの更新が不要で
    あることを指示する情報を前記更新領域識別情報として
    ステータス情報格納領域に設定し、前記バックアップ領
    域がバックアップしていないことを指示する情報を前記
    バックアップ識別情報として前記ステータス情報格納領
    域に設定し、前記ホストシステムにフラッシュメモリの
    更新が終了したことを通知する第11ステップと、起動
    元のプログラムに復帰する第12ステップの、前記第4
    から第12までの各ステップからなるブートプログラム
    を実行するようにして、前記フラッシュメモリを書き換
    え処理することにより、前記フラッシュメモリ更新プロ
    グラム(ブートプログラム)自身を更新するようにした
    ことを特徴とするフラッシュメモリ更新プログラムの書
    き換え装置。
  5. 【請求項5】 前記リローケータブル・オブジェクト・
    モジュール化されたブートプログラムが関数ルーチン化
    されており、前記第10ステップにおいて、前記バック
    アップ領域に複写したブートプログラムを起動するの
    に、関数呼び出し命令(コール命令)により前記ブート
    プログラムを呼び出して起動し、前記第12ステップで
    起動元のプログラムに復帰するのに復帰命令(リターン
    命令)により復帰するようにしたことを特徴とする請求
    項4記載のフラッシュメモリ更新プログラムの書き換え
    装置。
  6. 【請求項6】 前記第10ステップにおいて、前記バッ
    クアップ領域に複写したブートプログラムを起動するの
    に、前記バックアップ領域の所定のアドレスに分岐する
    ことで前記ブートプログラムを起動し、前記第12ステ
    ップで起動元のプログラムに復帰するのに前記スタート
    アッププログラム格納領域の所定のアドレスに分岐する
    ことで起動元のプログラムに復帰するようにしたことを
    特徴とする請求項4記載のフラッシュメモリ更新プログ
    ラムの書き換え装置。
  7. 【請求項7】 請求項1、2または3記載のフラッシュ
    メモリ更新プログラムの書き換え方法の手順を記録した
    記録媒体。
JP2000150028A 2000-05-22 2000-05-22 フラッシュメモリ更新プログラムの書き換え方法及び装置 Pending JP2001331379A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000150028A JP2001331379A (ja) 2000-05-22 2000-05-22 フラッシュメモリ更新プログラムの書き換え方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000150028A JP2001331379A (ja) 2000-05-22 2000-05-22 フラッシュメモリ更新プログラムの書き換え方法及び装置

Publications (1)

Publication Number Publication Date
JP2001331379A true JP2001331379A (ja) 2001-11-30

Family

ID=18655802

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000150028A Pending JP2001331379A (ja) 2000-05-22 2000-05-22 フラッシュメモリ更新プログラムの書き換え方法及び装置

Country Status (1)

Country Link
JP (1) JP2001331379A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249360A (ja) * 2006-03-14 2007-09-27 Fuji Electric Holdings Co Ltd ファームウェアの更新システムおよび更新方法
CN100340983C (zh) * 2005-07-18 2007-10-03 杭州华三通信技术有限公司 对非易失可编程逻辑器件在线升级的方法及装置
KR100773317B1 (ko) 2006-03-14 2007-11-06 후지쯔 가부시끼가이샤 소프트웨어 업데이트 방법, 업데이트 관리 프로그램을기록한 컴퓨터로 판독가능한 기록 매체 및 정보 처리 장치
US7383431B2 (en) 2002-06-11 2008-06-03 Seiko Epson Corporation Control system and method for rewriting data in a flash memory and a data storage medium in which a program is stored for rewriting data in a flash memory
CN100399271C (zh) * 2006-09-26 2008-07-02 北京飞天诚信科技有限公司 一种电子设备的在线升级方法
WO2010035596A1 (ja) * 2008-09-24 2010-04-01 日立ソフトウエアエンジニアリング株式会社 ファームウェア更新装置及び方法
WO2010067737A1 (ja) * 2008-12-10 2010-06-17 富士通テン株式会社 情報処理装置およびプログラム更新方法
CN108304140A (zh) * 2017-01-12 2018-07-20 中兴通讯股份有限公司 闪存数据管理方法、装置及微控制器

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383431B2 (en) 2002-06-11 2008-06-03 Seiko Epson Corporation Control system and method for rewriting data in a flash memory and a data storage medium in which a program is stored for rewriting data in a flash memory
CN100340983C (zh) * 2005-07-18 2007-10-03 杭州华三通信技术有限公司 对非易失可编程逻辑器件在线升级的方法及装置
JP2007249360A (ja) * 2006-03-14 2007-09-27 Fuji Electric Holdings Co Ltd ファームウェアの更新システムおよび更新方法
KR100773317B1 (ko) 2006-03-14 2007-11-06 후지쯔 가부시끼가이샤 소프트웨어 업데이트 방법, 업데이트 관리 프로그램을기록한 컴퓨터로 판독가능한 기록 매체 및 정보 처리 장치
CN100399271C (zh) * 2006-09-26 2008-07-02 北京飞天诚信科技有限公司 一种电子设备的在线升级方法
WO2010035596A1 (ja) * 2008-09-24 2010-04-01 日立ソフトウエアエンジニアリング株式会社 ファームウェア更新装置及び方法
JP2010079440A (ja) * 2008-09-24 2010-04-08 Hitachi Software Eng Co Ltd ファームウェア更新装置及び方法
US8549510B2 (en) 2008-09-24 2013-10-01 Hitachi Solutions, Ltd. Firmware update apparatus and method
WO2010067737A1 (ja) * 2008-12-10 2010-06-17 富士通テン株式会社 情報処理装置およびプログラム更新方法
JP2010140183A (ja) * 2008-12-10 2010-06-24 Fujitsu Ten Ltd 情報処理装置およびプログラム更新方法
CN108304140A (zh) * 2017-01-12 2018-07-20 中兴通讯股份有限公司 闪存数据管理方法、装置及微控制器
CN108304140B (zh) * 2017-01-12 2023-04-07 中兴通讯股份有限公司 闪存数据管理方法、装置及微控制器

Similar Documents

Publication Publication Date Title
US7664923B2 (en) Method and system for updating software
JP3838840B2 (ja) コンピュータ
WO2010035596A1 (ja) ファームウェア更新装置及び方法
JPH03278126A (ja) 計算機システム立上げ方式
CN102334100A (zh) 程序更新设备、程序更新方法以及信息处理设备
JP2000105694A (ja) フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
CN112015447B (zh) 电子设备的***更新方法及装置、电子设备及存储介质
CN113157303A (zh) 升级方法、嵌入式***、终端及计算机存储介质
JP2001331379A (ja) フラッシュメモリ更新プログラムの書き換え方法及び装置
CN110597532A (zh) 一种数据采集模块及其固件升级方法和存储介质
JP2002342102A (ja) プログラム更新方法およびプログラム更新方式
JP3805195B2 (ja) プログラム書き換え装置及びプログラム書き換え方法
JP2005215841A (ja) ソフトウエア修正機能付き携帯電話端末装置
CN116382753A (zh) 一种基于网络的设备固件高可靠性远程升级方法
JP2005284902A (ja) 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム
JP2002189609A (ja) アクシデントに適応したソフトウェア更新方式および方法
JP3082344B2 (ja) ディスクファイル制御装置およびアップデート方法
JP2001117766A (ja) マスクromのパッチ機能を備えた情報処理装置
JPH11282690A (ja) 制御プログラムの書込方法及び情報処理装置並びに情報処理システム
JP3037375B2 (ja) ファイル圧縮処理方法
JP2001273143A (ja) 電子制御装置
CN107247642A (zh) 用于***开机时确定可执行映像文件的方法及装置
JP2003122575A (ja) 情報処理装置
JP2005078336A (ja) 画像形成装置と画像形成装置のプログラム書換方法
JP2001053891A (ja) 携帯端末装置のプログラム更新方法およびその装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060307