JP2016024642A - 電子機器 - Google Patents

電子機器 Download PDF

Info

Publication number
JP2016024642A
JP2016024642A JP2014148522A JP2014148522A JP2016024642A JP 2016024642 A JP2016024642 A JP 2016024642A JP 2014148522 A JP2014148522 A JP 2014148522A JP 2014148522 A JP2014148522 A JP 2014148522A JP 2016024642 A JP2016024642 A JP 2016024642A
Authority
JP
Japan
Prior art keywords
new
program
programs
update
old
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.)
Granted
Application number
JP2014148522A
Other languages
English (en)
Other versions
JP5976729B2 (ja
Inventor
明彦 伊ヶ崎
Akihiko Igasaki
明彦 伊ヶ崎
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2014148522A priority Critical patent/JP5976729B2/ja
Priority to US14/806,414 priority patent/US9665484B2/en
Publication of JP2016024642A publication Critical patent/JP2016024642A/ja
Application granted granted Critical
Publication of JP5976729B2 publication Critical patent/JP5976729B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】プログラムの書き込み中に電源断が生じても起動不良状態に陥らないようにすること。
【解決手段】プロセッサーにより、更新用の複数のプログラムA(new)〜D(new)などが不揮発性メモリー10に書き込まれる際、更新前の起動処理プログラム(プログラムA(old)、プログラムB(old))とヘッダー情報(old)とを残した状態で、先に更新用の起動処理プログラム(プログラムA(new)、プログラムB(new))が書き込まれ、次いで、更新用のヘッダー情報(new)が書き込まれ、その後、更新用の実行処理プログラム(プログラムC(new)、プログラムD(new))が書き込まれるようにした。
【選択図】図2

Description

本発明は、不揮発性メモリーを有する電子機器に関する。
たとえば、電子機器である、コピー、プリント、FAX(Facsimile)などの各ジョブのマルチ動作機能や、ユーザーボックス機能などを有するMFP(Multifunction Peripheral)などの画像形成装置には、それぞれの機能の実行に必要なアプリケーションプログラム(以下、単にプログラムという)を格納するためのNAND型フラッシュメモリーなどの不揮発性メモリーが搭載されている。なお、不揮発性メモリーにプログラムを格納しておくことで、不揮発性メモリーからのプログラムの読み出しの高速化が可能となっている。
ところで、不揮発性メモリーに格納されたプログラムは、機能の拡張などが行われる際に、書き換えられることがある(アップデート)。
ちなみに、特許文献1では、不揮発性メモリーである、フラッシュ型メモリーのプログラム領域の従属ブロックの管理情報をブロックヘッダに格納し、領域変更を行う際に、該当するブロックの管理情報を正しく反映させるようにしたフラッシュ型メモリーの管理方法を提案している。
特開2000−35919号公報
上述した特許文献1でのフラッシュ型メモリーの管理方法では、プログラム領域の従属ブロックの管理情報により、フラッシュ型メモリにおける各ブロックの消去回数を管理できることから、フラッシュ型メモリーのブロック消去回数を平準化させ、フラッシュ型メモリーの寿命を長くすることができる。
ところで、特許文献1でのフラッシュ型メモリーの管理方法では、たとえばプログラムが機能の拡張などによって書き換えられることに伴う領域変更の最中などに、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じると、起動不良状態に陥ってしまうおそれがあるという問題があった。
本発明は、このような状況に鑑みてなされたものであり、上記問題点を解消することができる電子機器を提供することを目的とする。
本発明の電子機器は、起動処理に必要な起動処理プログラムと、機能の実行処理に必要な実行処理プログラムと、これらの起動処理プログラム及び実行処理プログラムに関する情報を有するヘッダー情報とを含む複数のプログラムを記憶する書き換え可能な不揮発性メモリーと、更新用の前記複数のプログラムを記憶する揮発性メモリーと、該揮発性メモリーに対して前記複数のプログラムを記憶させ、前記不揮発性メモリーに対して更新用の前記複数のプログラムを書き込むプロセッサーとを備え、前記プロセッサーは、更新用の前記複数のプログラムを前記不揮発性メモリーに書き込む際、更新前の前記起動処理プログラムと前記ヘッダー情報とを残した状態で、先に更新用の前記起動処理プログラムを書き込み、次いで、更新用の前記ヘッダー情報を書き込み、その後、更新用の前記実行処理プログラムを書き込むことを特徴とする。
また、前記プロセッサーは、前記揮発性メモリーに対して前記複数のプログラムを記憶させる際、更新用の前記複数のプログラムの配置が前記不揮発性メモリーに書き込まれている更新前の前記複数のプログラムの配置とは逆になることを示す情報を有した前記ヘッダー情報を生成することを特徴とする。
また、前記起動処理プログラムは、システム起動用プログラムとアップデート用プログラムとを含むことを特徴とする。
本発明の電子機器では、プロセッサーにより、更新用の複数のプログラムが不揮発性メモリーに書き込まれる際、更新前の起動処理プログラムとヘッダー情報とを残した状態で、先に更新用の起動処理プログラムが書き込まれ、次いで、更新用のヘッダー情報が書き込まれ、その後、更新用の実行処理プログラムが書き込まれる。
これにより、更新用の起動処理プログラムが書き込まれる最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリーには更新前のヘッダー情報と起動処理プログラムが残っているため、更新前のヘッダー情報と起動処理プログラムに基づいての更新用のプログラムの再書き込みが可能となる。
また、更新用のヘッダー情報が書き込まれる最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリーには更新前の起動処理プログラムが残っているため、更新前の起動処理プログラムに基づいての更新用のプログラムの再書き込みが可能となる。
また、更新用の実行処理プログラムが書き込まれる最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリーには更新用のヘッダー情報と起動処理プログラムが残っているため、更新用のヘッダー情報と起動処理プログラムに基づいての更新用のプログラムの再書き込みが可能となる。
本発明の電子機器によれば、不揮発性メモリーに対する更新用の複数のプログラムの書き込みの最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリーに更新用のプログラムの再書き込みに必要なプログラムなどが残されるようにしているため、更新用のプログラムの再書き込みを確実に行うことができ、起動不良状態に陥らないようにすることができる。
本発明の電子機器の一実施形態を示す斜視図である。 図1の電子機器の不揮発性メモリー内のプログラムの書き換えを説明するものであって、同図(a)は不揮発性メモリーの不揮発領域内の更新前のプログラムを説明するための図であり、同図(b)はRAMのメモリー領域に読み込まれた更新用のプログラムを説明するための図であり、同図(c)は不揮発性メモリーの不揮発領域にRAMのメモリー領域内の一部の更新用のプログラムが書き込まれることを説明するための図である。 図1の電子機器の不揮発性メモリー内のプログラムの書き換えを説明するものであって、同図(d)はRAMのメモリー領域に読み込まれた更新用のプログラムの新たなヘッダー情報を説明するための図であり、同図(e)は不揮発性メモリーの不揮発領域に新たなヘッダー情報が書き込まれることを説明するための図であり、同図(f)は不揮発性メモリーの不揮発領域にRAMのメモリー領域内の残りの更新用のプログラムが書き込まれることを説明するための図である。 図1の電子機器の不揮発性メモリー内の書き換えられたプログラムがRAMのメモリー領域に読み出される場合を説明するものであって、同図(g)は不揮発性メモリー内の書き換え後のプログラムを説明するための図であり、同図(h)はRAMのメモリー領域に不揮発性メモリーのプログラムが書き込まれることを説明するための図である。 図1の電子機器の不揮発性メモリー内のプログラムの書き換え処理について説明するためのフローチャートである。
以下、本発明の電子機器の一実施形態を、図1〜図5を参照しながら説明する。なお、以下の説明においての電子機器の一例としては、たとえばプリンター機能、FAX機能、スキャン機能などの複数の機能を搭載した複合的な周辺機器であるMFP(Multifunction Peripheral)やプリンターなどの画像形成装置、情報端末装置などを適用することができる。
まず、図1に示す電子機器は、たとえばNAND型フラッシュメモリーなどの不揮発性メモリー10と、揮発性メモリーであるRAM(Random Access Memory)20と、MPU(Micro Processing Unit)などのプロセッサー30とを備えている。
不揮発性メモリー10の不揮発領域11には、ヘッダー情報(old)とプログラムA(old)〜プログラムD(old)が書き込まれている。ここで、(old)とは更新前のプログラムを意味している。なお、機能の拡張などに伴う新たなプログラムである更新用のプログラムは、後述のように(new)として示している。
また、ヘッダー情報(old)には、ヘッダー情報(old)を示す識別子、ヘッダー情報(old)のサイズ、プログラムA(old)〜D(old)の情報、プログラムA(old)〜D(old)の終端を示す情報、各プログラムA(old)〜D(old)の先頭位置を示す情報などが含まれている。また、プログラムA(old)〜D(old)の情報には、各プログラムA(old)〜D(old)を識別するための識別子、各プログラムA(old)〜D(old)のサイズ、各プログラムA(old)〜D(old)の付属情報(バージョン情報など)などが含まれている。なお、NAND型フラッシュメモリーなどの不揮発性メモリー10においては、不良ブロックが存在するため、各プログラムA(old)〜D(old)のサイズなどは不良ブロックのサイズを加味した大きさとなっているが、ここではその説明を省略する。
また、プログラムA(old)は、たとえばシステム起動用の実行プログラムとなっているものとする。また、プログラムB(old)はたとえばアップデート用の実行プログラムとなっているものとする。プログラムC(old)、D(old)は、上述したプリンター機能、FAX機能、スキャン機能などのいずれかの機能を実行させるための実行プログラムとなっているものとする。
プロセッサー30は、図示しない電源がオンされると、ブート処理を実行した後、不揮発性メモリー10のヘッダー情報(old)を参照し、システム起動用のプログラムA(old)を読み出してRAM20に書き込み、プログラムA(old)に基づいて起動処理を行う。また、プロセッサー30は、起動処理を終えると、上述したプリンター機能、FAX機能、スキャン機能などのいずれかの起動指示(ユーザーによる指示)に基づき、プログラムC(old)又はD(old)を読み出してRAM20に書き込み、プログラムC(old)又はD(old)に基づいて実行処理を行う。
また、プロセッサー30は、機能の拡張などに伴う不揮発性メモリー10内のプログラムの書き換え(アップデート)を行う場合、詳細は後述するが、図示しないSDカード又はネットワーク上のサーバーから得られた更新用のプログラムであるプログラムA(new)〜D(new)をRAM20のメモリー領域21に書き込んだ後、ヘッダー情報(new)を生成してから、不揮発性メモリー10へのプログラムA(new)〜D(new)の書き込みを行う。なお、不揮発性メモリー10がNAND型フラッシュメモリーなどである場合、プログラムの上書きができないため、更新用のプログラムのサイズに応じて不揮発領域11のデータ消去が行われてからプログラムの書き込みが行われるようになっている。
次に、図2〜図3を参照し、プロセッサー30による機能の拡張などに伴う不揮発性メモリー10内のプログラムの書き換え(アップデート)について説明する。なお、書き換えの元となる更新用のプログラムは、上述したように、図示しないSD(Secure Digital memory card)カードや、ネットワーク上のサーバーから得られるものとする。
まず、図2(a)に示すように、不揮発性メモリー10の不揮発領域11には、ヘッダー情報(old)とプログラムA(old)〜D(old)が書き込まれているものとする。ここで、(old)とは、上述したように、更新前のプログラムを意味している。
プロセッサー30は、不揮発性メモリー10の不揮発領域11から更新前のヘッダー情報(old)を読み込み、各プログラムA(old)〜D(old)のサイズや並び順を確認する。また、プロセッサー30は、アップデート用のプログラムB(old)に基づき、図示しないSDカード又はネットワーク上のサーバーから得られた更新用のプログラムであるプログラムA(new)〜D(new)をRAM20のメモリー領域21に書き込む。
このとき、更新前のシステム起動用のプログラムA(old)とアップデート用のプログラムB(old)が同図(a)に示すように、不揮発領域11の前半に書き込まれている場合、同図(b)に示すように、更新用のプログラムA(new)、B(new)をRAM20のメモリー領域21の後半に書き込み、更新用のプログラムC(new)、D(new)をRAM20のメモリー領域21の前半に書き込む。すなわち、不揮発性メモリー10の不揮発領域11での並び順とは逆となるようにRAM20のメモリー領域21に書き込む。
また、プロセッサー30は、新たなヘッダー情報(new)を生成する。このヘッダー情報(new)には、上記同様に、ヘッダー情報(new)を示す識別子、ヘッダー情報(new)のサイズ、プログラムA(new)〜D(new)の情報、プログラムA(new)〜D(new)の終端を示す情報、各プログラムA(new)〜D(new)の先頭位置を示す情報が含まれている。なお、プログラムA(new)〜D(new)の情報には、上記同様に、各プログラムA(new)〜D(new)を識別するための識別子、各プログラムA(new)〜Dの(new)サイズ、各プログラムA(new)〜D(new)の付属情報(バージョン情報など)が含まれている。
また、このヘッダー情報(new)には、同図(b)に示したように、RAM20のメモリー領域21に書き込んだ更新用のプログラムA(new)〜D(new)の配置などを示す情報が含まれている。すなわち、更新用のプログラムA(new)〜D(new)の配置が不揮発性メモリー10に書き込まれている更新前のプログラムA(old)〜D(old)の配置とは逆になることを示す情報が含まれている。
すなわち、本実施形態では、同図(b)〜(c)に示すように、プロセッサー30により、不揮発性メモリー10の不揮発領域11に起動処理に必要なプログラムA(old)、B(old)を残した状態で、プログラムA(new)、B(new)が先に書き込まれるようにしている。この場合、プログラムA(new)又はプログラムB(new)のどちらを先に書き込んでもよいが、説明の都合上、プログラムA(new)が先に書き込まれるものとする。
また、プログラムA(new)、B(new)は、同図(c)に示すように、プログラムA(old)、B(old)と異なる位置に書き込まれることになる。また、残りのプログラムC(new)、D(new)は、後述の図3(f)に示すように、プログラムA(new)、B(new)が書き込まれた後に書き込まれるようにしている。この場合、プログラムC(new)又はプログラムD(new)のどちらを先に書き込んでもよいが、説明の都合上、プログラムC(new)が先に書き込まれるものとする。
このことから、全てのプログラムA(new)〜D(new)が不揮発性メモリー10の不揮発領域11に書き込まれると、後述の図3(f)に示すように、更新前のプログラムA(old)〜D(old)の配置とは逆になる。そのため、ヘッダー情報(new)には、上述したように、更新前のプログラムA(old)〜D(old)の配置とは逆になることを示す情報が含まれている。
このように、ヘッダー情報(new)には、同図(b)に示したように、RAM20のメモリー領域21に書き込んだ更新用のプログラムA(new)〜D(new)の配置などを示す情報が含まれている。すなわち、更新用のプログラムA(new)〜D(new)の配置が不揮発性メモリー10に書き込まれている更新前のプログラムA(old)〜D(old)の配置とは逆になることを示す情報が含まれている。
これにより、不揮発性メモリー10の不揮発領域11に全ての更新用のプログラムA(new)〜D(new)が書き込まれた後では、ヘッダー情報(new)を参照することでプログラムA(new)〜D(new)の読み込みを確実に行うことができる。
また、たとえば、更新用のプログラムC(new)、プログラムD(new)が書き込まれる最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリー10に残されているヘッダー情報(new)を参照することで、プログラムA(new)、プログラムB(new)の配置などの確認を行うことができる。
また、プロセッサー30は、プログラムA(new)、B(new)を不揮発性メモリー10の不揮発領域11に書き込んだ後、図3(d)〜(e)に示すように、RAM20のメモリー領域21のヘッダー情報(new)を不揮発性メモリー10の不揮発領域11に書き込む。なお、ヘッダー情報(new)の書き込みは、図3(e)に示すように、プログラムA(old)、B(old)、C(old)、B(new)、A(new)が書き込まれている領域とは異なる領域に対して行われる。これは、たとえば後述の図3(f)のように、プログラムC(new)、D(new)が書き込まれる際に、消去されないようにするためである。
また、プロセッサー30は、ヘッダー情報(new)の書き込みを終えた後、図3(f)に示すように、残りのプログラムC(new)、D(new)を不揮発性メモリー10の不揮発領域11に書き込む。
なお、上述した図2(b)〜(c)でのプログラムA(new)、B(new)の書き込みの最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、同図(c)に示すように、起動処理に必要なヘッダー情報(old)、プログラムA(old)、プログラムB(old)が不揮発性メモリー10の不揮発領域11に書き込まれている。そのため、プログラムA(old)とプログラムB(old)の再読み込みが可能となり、不揮発性メモリー10の不揮発領域11へのプログラムA(new)〜D(new)の再書き込みが可能となる。
また、図3(d)〜(f)での残りのプログラムC(new)、D(new)の書き込みの最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、図3(f)に示すように、起動処理に必要なヘッダー情報(new)、プログラムA(new)、B(new)が不揮発性メモリー10の不揮発領域11に書き込まれている。そのため、プログラムA(new)、B(new)を読み込むことで、プログラムA(new)〜D(new)の再書き込みが可能となる。
ただし、図3(d)〜(e)でのヘッダー情報(new)の書き込みの最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合、起動処理に必要なヘッダー情報(new)及びヘッダー情報(old)が消去されてしまう。この場合、図3(e)に示すように、不揮発性メモリー10の不揮発領域11には、プログラムA(old)、B(old)、C(old)、B(new)、A(new)が書き込まれていることになる。このことから、起動処理の際に、プロセッサー30が不揮発領域11の先頭のプログラムA(old)及びB(old)を読み込むように設定(プログラミング)しておく。これにより、プロセッサー30は、図2(a)で説明したように、アップデート用のプログラムB(old)に基づき、図示しないSDカード又はネットワーク上のサーバーから得られた更新用のプログラムであるプログラムA(new)〜D(new)をRAM20のメモリー領域21に書き込むことができ、上記同様にして、プログラムA(new)、B(new)を読み込むことで、プログラムA(new)〜D(new)の再書き込みが可能となる。
次に、図4を参照し、起動処理の際、プロセッサー30により不揮発性メモリー10のプログラムA(new)〜D(new)がRAM20のメモリー領域21に読み出される場合について説明する。
まず、同図(g)に示すように、不揮発性メモリー10の不揮発領域11には、上述した更新用のプログラムA(new)〜D(new)の書き換えにより、ヘッダー情報(new)及びプログラムA(new)〜D(new)が書き込まれている。ここで、まず、プロセッサー30は、ヘッダー情報(new)を参照し、各プログラムA(new)〜D(new)のオフセット及びサイズを取り出す。そして、同図(h)に示すように、そのオフセットに基づき、各プログラムA(new)〜D(new)の必要サイズ分を読み出し、RAM20のメモリー領域21にプログラムA(new)〜D(new)の書き込みを行う。
なお、オフセットとは、不揮発性メモリー10の不揮発領域11の先頭から各プログラムA(new)〜D(new)の書き込み位置までのサイズである。すなわち、プロセッサー30は、図示しない電源がオンされると、ブート処理を実行した後、不揮発性メモリー10のヘッダー情報(new)を参照し、システム起動用のプログラムA(new)を読み出してRAM20に書き込み、このプログラムA(new)に基づいて起動処理を行う。そのため、まず、プログラムA(new)のオフセット及びサイズに応じた不揮発性メモリー10からの読み出しが行われ、RAM20のメモリー領域21の先頭にプログラムA(new)が書き込まれる。
続いて、プログラムB(new)の読み出しが行われることで、RAM20のメモリー領域21のプログラムA(new)の後にプログラムB(new)が書き込まれる。なお、プログラムC(new)、D(new)にあっては、上述したプリンター機能、FAX機能、スキャン機能などのいずれかの起動指示(ユーザーによる指示)があると、不揮発性メモリー10からの読み出しが行われ、RAM20のメモリー領域21に書き込まれる。
次に、図5を参照し、プロセッサー30による不揮発性メモリー10内のプログラムA(new)〜D(new)の書き換え処理について説明する。
(ステップS101)
プロセッサー30は、図示しない電源がオンされると、ブート処理を実行した後、図2(a)に示した不揮発性メモリー10のヘッダー情報(old)を読み込み、各プログラムA〜Dのサイズや並び順を確認する。また、プロセッサー30は、プログラムA(old)を読み出してシステム起動を実行する際、プログラムA(old)をRAM20のメモリー領域21に書き込む。また、プロセッサー30は、アップデート用のプログラムBに基づき、図示しないSDカード又はネットワーク上のサーバーから得られた更新プログラムであるプログラムA(new)〜D(new)をRAM20のメモリー領域21に書き込む。
このとき、更新前のシステム起動用のプログラムA(old)とアップデート用のプログラムB(old)が図2(a)のように、不揮発領域11の前半に書き込まれている場合、プログラムA、B(new)をRAM20のメモリー領域21の後半に書き込み、プログラムC、D(new)をRAM20のメモリー領域21の前半に書き込む。
(ステップS102)
次いで、プロセッサー30は、ヘッダー情報(new)を生成してRAM20のメモリー領域21に書き込む。このヘッダー情報(new)には、上述したように、更新用のプログラムA(new)〜D(new)の配置が不揮発性メモリー10に書き込まれている更新前のプログラムA(old)〜D(old)の配置とは逆になることを示す情報が含まれている。
(ステップS103)
次いで、プロセッサー30は、まず、プログラムA(new)とプログラムB(new)とを不揮発性メモリー10の不揮発領域11に書き込む。
(ステップS104)
次いで、プロセッサー30は、プログラムA(new)、B(new)の書き込みが完了したかどうかを判断する。書き込みが完了した場合(ステップS104:Yes)、ステップS107に移る。これに対し、書き込みが完了していなければ(ステップS104:No)、ステップS105に移る。
(ステップS105)
プロセッサー30は、電源オフが生じたかどうかを判断する。すなわち、上述したように、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合、プロセッサー30は電源オフが生じたと判断し(ステップS105:Yes)、ステップS106に移る。これに対し、電源オフが生じていなければ(ステップS105:No)、ステップS103に戻る。
(ステップS106)
プロセッサー30は、図示しない電源が再度オンされると、ステップS101に戻り、ブート処理を実行した後、アップデート用のプログラムBに基づき、図示しないSDカード又はネットワーク上のサーバーから得られた更新プログラムであるプログラムA(new)〜D(new)をRAM20のメモリー領域21に書き込み、ステップS102からの処理を行う。
(ステップS107)
プロセッサー30は、プログラムA(new)、B(new)の書き込みが完了すると、図3(d)〜(e)に示したように、RAM20のメモリー領域21のヘッダー情報(new)を不揮発性メモリー10の不揮発領域11に書き込む。なお、ヘッダー情報(new)の書き込みは、プログラムA(new)〜D(new)の書き込み領域とは異なる領域に対して行われる。
(ステップS108)
次いで、プロセッサー30は、ヘッダー情報(new)の書き込みが完了したかどうかを判断する。書き込みが完了した場合(ステップS108:Yes)、ステップS110に移る。これに対し、書き込みが完了していなければ(ステップS108:No)、ステップS109に移る。
(ステップS109)
プロセッサー30は、電源オフが生じたかどうかを判断し、電源オフが生じたと判断すると(ステップS109:Yes)、ステップS106に移る。これに対し、電源オフが生じていなければ(ステップS109:No)、ステップS107に戻る。
ここで、図3(d)〜(e)でのヘッダー情報(new)の書き込みの最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合、起動処理に必要なヘッダー情報(new)及びヘッダー情報(old)が消去されてしまう。この場合、図3(e)で説明したように、不揮発性メモリー10の不揮発領域11には、プログラムA(old)、B(old)、C(old)、B(new)、A(new)が書き込まれていることになる。このことから、起動処理の際に、プロセッサー30が不揮発領域11の先頭のプログラムA(old)及びB(old)を読み込むように設定(プログラミング)しておくことで、アップデート用のプログラムB(old)に基づき、図示しないSDカード又はネットワーク上のサーバーから得られた更新用のプログラムであるプログラムA(new)〜D(new)をRAM20のメモリー領域21に書き込むことができ(ステップS101)、ステップS102からの処理を行うことができる。
(ステップS110)
プロセッサー30は、ヘッダー情報(new)の書き込みを完了すると、図3(f)に示したように、残りのプログラムC、D(new)を不揮発性メモリー10の不揮発領域11に書き込む。
(ステップS111)
プロセッサー30は、残りのプログラムC、D(new)の書き込みが完了したかどうかを判断する。書き込みが完了した場合(ステップS111:Yes)、処理が終了となる。これに対し、書き込みが完了していなければ(ステップS111:No)、ステップS112に移る。
(ステップS112)
プロセッサー30は、電源オフが生じたかどうかを判断し、電源オフが生じたと判断すると(ステップS112:Yes)、ステップS106に移る。これに対し、電源オフが生じていなければ(ステップS112:No)、ステップS110に戻る。なお、残りのプログラムC、D(new)の書き込みの最中に、電源オフが生じた場合でも、不揮発性メモリー10の不揮発領域11には図3(f)に示したように、起動処理に必要なヘッダー情報(new)、プログラムA(new)、B(new)が不揮発性メモリー10の不揮発領域11に書き込まれている。そのため、プログラムA(new)、B(new)を読み込むことで、ステップS101からの処理を行うことができる。
このように、本実施形態では、プロセッサー30により、更新用の複数のプログラムA(new)〜D(new)などが不揮発性メモリー10に書き込まれる際、更新前の起動処理プログラム(プログラムA(old)、プログラムB(old))とヘッダー情報(old)とを残した状態で、先に更新用の起動処理プログラム(プログラムA(new)、プログラムB(new))が書き込まれ、次いで、更新用のヘッダー情報(new)が書き込まれ、その後、更新用の実行処理プログラム(プログラムC(new)、プログラムD(new))が書き込まれるようにした。
これにより、更新用の起動処理プログラム(プログラムA(new)、プログラムB(new))が書き込まれる最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリー10には更新前のヘッダー情報(old)と起動処理プログラム(プログラムA(old)、プログラムB(old))が残っているため、更新前のヘッダー情報(old)と起動処理プログラム(プログラムA(old)、プログラムB(old))に基づいての更新用のプログラムA(new)〜D(new)などの再書き込みが可能となる。
また、更新用のヘッダー情報(new)が書き込まれる最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリー10には更新前の起動処理プログラム(プログラムA(old)、プログラムB(old))が残っているため、更新前の起動処理プログラム(プログラムA(old)、プログラムB(old))に基づいての更新用のプログラムA(new)〜D(new)などの再書き込みが可能となる。
また、更新用の実行処理プログラム(プログラムC(new)、プログラムD(new))が書き込まれる最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリー10には更新用のヘッダー情報(new)と起動処理プログラム(プログラムA(new)、プログラムB(new))が残っているため、更新用のヘッダー情報と起動処理プログラムに基づいての更新用のプログラムA(new)〜D(new)などの再書き込みが可能となる。
このように、不揮発性メモリー10に対する更新用の複数のプログラムA(new)〜D(new)などの書き込みの最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリー10に更新用のプログラムA(new)〜D(new)などの再書き込みに必要なプログラムなどが残されるようにしているため、更新用のプログラムA(new)〜D(new)などの再書き込みを確実に行うことができ、起動不良状態に陥らないようにすることができる。
また、本実施形態では、プロセッサー30により、揮発性メモリー20に対して複数のプログラムが記憶される際、更新用の複数のプログラムの配置が不揮発性メモリー10に書き込まれている更新前の複数のプログラムA(old)〜D(old)の配置とは逆になることを示す情報を有したヘッダー情報(new)が生成されるようにしている。
これにより、たとえば、更新用の実行処理プログラム(プログラムC(new)、プログラムD(new))が書き込まれる最中に、ユーザーが誤って電源をオフしたり、停電などによる電源オフが生じた場合でも、不揮発性メモリー10に残されているヘッダー情報(new)を参照することで、起動処理プログラム(プログラムA(new)、プログラムB(new))の配置などの確認を行うことができる。
また、不揮発性メモリー10に全ての更新用のプログラムA(new)〜D(new)などが書き込まれた後では、ヘッダー情報(new)を参照することでプログラムA(new)〜D(new)の読み込みを確実に行うことができる。
10 不揮発性メモリー
11 不揮発領域
20 RAM
21 メモリー領域
30 プロセッサー

Claims (3)

  1. 起動処理に必要な起動処理プログラムと、機能の実行処理に必要な実行処理プログラムと、これらの起動処理プログラム及び実行処理プログラムに関する情報を有するヘッダー情報とを含む複数のプログラムを記憶する書き換え可能な不揮発性メモリーと、
    更新用の前記複数のプログラムを記憶する揮発性メモリーと、
    該揮発性メモリーに対して前記複数のプログラムを記憶させ、前記不揮発性メモリーに対して更新用の前記複数のプログラムを書き込むプロセッサーとを備え、
    前記プロセッサーは、更新用の前記複数のプログラムを前記不揮発性メモリーに書き込む際、更新前の前記起動処理プログラムと前記ヘッダー情報とを残した状態で、先に更新用の前記起動処理プログラムを書き込み、次いで、更新用の前記ヘッダー情報を書き込み、その後、更新用の前記実行処理プログラムを書き込む
    ことを特徴とする電子機器。
  2. 前記プロセッサーは、前記揮発性メモリーに対して前記複数のプログラムを記憶させる際、更新用の前記複数のプログラムの配置が前記不揮発性メモリーに書き込まれている更新前の前記複数のプログラムの配置とは逆になることを示す情報を有した前記ヘッダー情報を生成することを特徴とする請求項1に記載の電子機器。
  3. 前記起動処理プログラムは、システム起動用プログラムとアップデート用プログラムとを含むことを特徴とする請求項1又は2に記載の電子機器。
JP2014148522A 2014-07-22 2014-07-22 電子機器 Expired - Fee Related JP5976729B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014148522A JP5976729B2 (ja) 2014-07-22 2014-07-22 電子機器
US14/806,414 US9665484B2 (en) 2014-07-22 2015-07-22 Electronic apparatus having nonvolatile memory and program writing method for updating

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014148522A JP5976729B2 (ja) 2014-07-22 2014-07-22 電子機器

Publications (2)

Publication Number Publication Date
JP2016024642A true JP2016024642A (ja) 2016-02-08
JP5976729B2 JP5976729B2 (ja) 2016-08-24

Family

ID=55166856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014148522A Expired - Fee Related JP5976729B2 (ja) 2014-07-22 2014-07-22 電子機器

Country Status (2)

Country Link
US (1) US9665484B2 (ja)
JP (1) JP5976729B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004210183A (ja) * 2003-01-07 2004-07-29 Komatsu Ltd 車載プログラムの書き換え制御装置
JP2004318350A (ja) * 2003-04-15 2004-11-11 Matsushita Electric Ind Co Ltd 制御プログラムの更新方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3555456B2 (ja) 1998-07-17 2004-08-18 日本ビクター株式会社 フラッシュ型メモリの管理装置
JP3726726B2 (ja) * 2001-08-20 2005-12-14 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置および管理ユニット
JP4128516B2 (ja) * 2002-11-18 2008-07-30 株式会社リコー 画像形成装置、プログラム更新方法
US7876469B2 (en) * 2003-12-26 2011-01-25 Panasonic Corporation Image forming apparatus and updating method
JP4245585B2 (ja) * 2005-06-13 2009-03-25 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4197015B2 (ja) * 2006-07-18 2008-12-17 コニカミノルタビジネステクノロジーズ株式会社 データ管理装置、データ管理プログラムおよびデータ管理方法
JP4539677B2 (ja) * 2007-04-23 2010-09-08 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム
JP5599055B2 (ja) * 2010-09-22 2014-10-01 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
JP5638021B2 (ja) * 2012-03-30 2014-12-10 京セラドキュメントソリューションズ株式会社 情報処理装置および画像形成装置
KR20140060912A (ko) * 2012-11-13 2014-05-21 한국전자통신연구원 부트로더를 업데이트하는 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004210183A (ja) * 2003-01-07 2004-07-29 Komatsu Ltd 車載プログラムの書き換え制御装置
JP2004318350A (ja) * 2003-04-15 2004-11-11 Matsushita Electric Ind Co Ltd 制御プログラムの更新方法

Also Published As

Publication number Publication date
US9665484B2 (en) 2017-05-30
US20160026563A1 (en) 2016-01-28
JP5976729B2 (ja) 2016-08-24

Similar Documents

Publication Publication Date Title
JP5982025B1 (ja) 情報処理装置およびメモリー管理プログラム
JP2009053901A (ja) プリンタ
JP6074064B2 (ja) 電子機器
JP4586469B2 (ja) メモリ制御装置、メモリ制御方法、プログラム
CN110688141B (zh) 固件更新方法
US9684853B2 (en) Image forming apparatus that writes data from volatile memory to non-volatile memory
JP2009151386A (ja) 画像処理装置
JP5976729B2 (ja) 電子機器
JP6575157B2 (ja) ファームウェアのダウンロード方法及びファームウェア組込機器
CN114420183A (zh) 数据存储控制方法、电子设备及存储介质
JP6787490B2 (ja) メモリーシステム及び電子機器
JP2006099393A (ja) ファームウェア管理装置、ファームウェア管理プログラム、電子機器、記録媒体、及びファームウェア管理方法
JP2005107608A (ja) 電子機器、不揮発性メモリ及び不揮発性メモリのデータ書き換え方法
JP2010198592A (ja) 携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラム
JP2011085977A (ja) 信号処理装置
JP2007328824A (ja) メモリカード、不揮発性メモリ、不揮発性メモリのデータ書込み方法及びデータ書込み装置
JP2009075889A (ja) 不揮発性メモリの書き換え制御方法
JP2017123017A (ja) 電子機器およびプログラム更新方法
JP6168661B2 (ja) 電子機器
JP5821788B2 (ja) 電子制御装置
JP2006127287A (ja) 情報処理装置
JP6036618B2 (ja) 電子機器及びプログラム
JP2005050095A (ja) 画像形成装置およびそのプログラム更新履歴管理方法
JP2008181456A (ja) 半導体記憶装置およびその書込制御方法
JP2013101451A (ja) ファームウェア更新システム及びファームウェア更新方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160318

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160322

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160615

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160720

R150 Certificate of patent or registration of utility model

Ref document number: 5976729

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees