(57)【要約】【課題】不揮発性メモリにデータを書き込むことが可能な、書き込み装置を提供する。【解決手段】不揮発性メモリと、揮発性メモリと、プロセッサコアとを含むマイクロコントローラと、マイクロコントローラと所定のインタフェースで接続され、マイクロコントローラの不揮発性メモリへのデータの書き込みを制御する書き込み制御デバイスと、を有し、書き込み制御デバイスは、マイクロコントローラの揮発性メモリに、データを書き込むための書き込みソフトウェアと、マイクロコントローラの不揮発性メモリに記憶させる更新データとを記憶させ、マイクロコントローラのプロセッサコアに書き込みソフトウェアを実行させることによって、マイクロコントローラの不揮発性メモリに更新データを書き込ませる、書き込み装置が、提供される。【選択図】図４
2017204138.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、揮発性メモリと、プロセッサコアとを含むマイクロコントローラと、
前記マイクロコントローラと所定のインタフェースで接続され、前記マイクロコントローラの前記不揮発性メモリへのデータの書き込みを制御する書き込み制御デバイスと、
を有し、
前記書き込み制御デバイスは、
前記マイクロコントローラの前記揮発性メモリに、データを書き込むための書き込みソフトウェアと、前記マイクロコントローラの前記不揮発性メモリに記憶させる更新データとを記憶させ、
前記マイクロコントローラの前記プロセッサコアに前記書き込みソフトウェアを実行させることによって、前記マイクロコントローラの前記不揮発性メモリに前記更新データを書き込ませることを特徴とする、書き込み装置。
【請求項２】
前記書き込み制御デバイスは、
前記マイクロコントローラの前記プロセッサコアを停止させ、
前記プロセッサコアが停止されているときに、前記書き込みソフトウェアと前記更新データとを、前記マイクロコントローラの前記揮発性メモリに記憶させ、
停止されている前記プロセッサコアを動作させて、前記プロセッサコアに前記書き込みソフトウェアを実行させることを特徴とする、請求項１に記載の書き込み装置。
【請求項３】
前記書き込み制御デバイスは、前記マイクロコントローラの前記プロセッサコアが停止されているときに、前記マイクロコントローラを、前記プロセッサコアが動作したときに前記書き込みソフトウェアが実行される状態にさせることを特徴とする、請求項２に記載の書き込み装置。
【請求項４】
前記書き込み制御デバイスは、
前記マイクロコントローラの前記プロセッサコアに前記書き込みソフトウェアを実行させると、前記マイクロコントローラの前記不揮発性メモリへの前記更新データの書き込みが終了したか否かを判定し、
判定結果に対応する処理を行うことを特徴とする、請求項１〜３のいずれか１項に記載の書き込み装置。
【請求項５】
前記書き込み制御デバイスは、前記マイクロコントローラの前記不揮発性メモリへの前記更新データの書き込みが終了したと判定された場合には、前記マイクロコントローラの電源をオフ状態とさせることを特徴とする、請求項４に記載の書き込み装置。
【請求項６】
前記書き込み制御デバイスは、前記マイクロコントローラの前記不揮発性メモリへの前記更新データの書き込みが終了したと判定されない場合には、
前記マイクロコントローラの前記プロセッサコアを停止させ、
前記プロセッサコアが停止されているときに、前記不揮発性メモリに書き込まれていない前記更新データを、前記揮発性メモリに記憶させ、
停止されている前記プロセッサコアを動作させて、前記プロセッサコアに前記書き込みソフトウェアを再度実行させることを特徴とする、請求項４、または５に記載の書き込み装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き込み装置に関する。
【背景技術】
【０００２】
フラッシュＲＯＭ（Flash  Read  Only  Memory。フラッシュメモリとも呼ばれる。）などの不揮発性メモリに記憶されているデータを書き換える技術が開発されている。フラッシュＲＯＭに記憶されているデータを書き換える技術としては、例えば特許文献１に記載の技術が挙げられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１１２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フラッシュＲＯＭなどの不揮発性メモリにデータを書き込む方法としては、例えば“データ書き込むためのファームウェアなどの、データを書き込むためのソフトウェアを、不揮発性メモリに記憶させ、当該ソフトウェアを実行する方法”が、挙げられる。
【０００５】
以下では、本発明の実施形態に係るデータを書き込むためのソフトウェアを、「書き込みソフトウェア」と示す。ここで、本発明の実施形態に係る“データの書き込み”には、不揮発性メモリへのデータの新規記録と、不揮発性メモリに記憶されているデータの書き換え（データの更新）とが含まれる。
【０００６】
例えば特許文献１に記載の技術が用いられる電子機器では、データを書き換えるための書き換えプログラムがフラッシュＲＯＭに記憶される。そして、特許文献１に記載の技術が用いられる電子機器は、フラッシュＲＯＭに記憶されている書き換えプログラムを揮発性メモリに転送し、揮発性メモリに転送された書き換えプログラムを実行することによって、フラッシュＲＯＭに記憶されているデータの書き換えを行う。よって、例えば特許文献１に記載の技術が用いられる場合には、フラッシュＲＯＭなどの不揮発性メモリに記憶されているデータの書き換えを行うことができうる。
【０００７】
しかしながら、例えば特許文献１に記載の技術が用いられる場合には、書き換えプログラムをフラッシュＲＯＭの領域の一部に記憶させる必要がある。そのため、特許文献１に記載が用いられる場合には、データの書き換え対象である不揮発性メモリの領域の一部を書き換えプログラムが占有してしまう。
【０００８】
よって、例えば特許文献１に記載の技術のような不揮発性メモリにデータを書き込む既存の方法を用いて、不揮発性メモリにデータを書き込む場合には、不揮発性メモリの領域の一部を書き込みソフトウェアが占有することに起因して、不揮発性メモリを利用するソフトウェアの設計に制約が生じる恐れがある。
【０００９】
本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、不揮発性メモリにデータを書き込むことが可能な、新規かつ改良された書き込み装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の一の観点によれば、不揮発性メモリと、揮発性メモリと、プロセッサコアとを含むマイクロコントローラと、上記マイクロコントローラと所定のインタフェースで接続され、上記マイクロコントローラの上記不揮発性メモリへのデータの書き込みを制御する書き込み制御デバイスと、を有し、上記書き込み制御デバイスは、上記マイクロコントローラの上記揮発性メモリに、データを書き込むための書き込みソフトウェアと、上記マイクロコントローラの上記不揮発性メモリに記憶させる更新データとを記憶させ、上記マイクロコントローラの上記プロセッサコアに上記書き込みソフトウェアを実行させることによって、上記マイクロコントローラの上記不揮発性メモリに上記更新データを書き込ませる、書き込み装置が、提供される。
【００１１】
かかる構成によって、不揮発性メモリにデータを書き込むことができる。また、かかる構成によって、例えば、書き込み装置を構成するマイクロコントローラが、不揮発性メモリに書き込みソフトウェアが予め記憶されていないマイクロコントローラであっても、不揮発性メモリへのデータの書き込みが実現される。
【００１２】
また、上記書き込み制御デバイスは、上記マイクロコントローラの上記プロセッサコアを停止させ、上記プロセッサコアが停止されているときに、上記書き込みソフトウェアと上記更新データとを、上記マイクロコントローラの上記揮発性メモリに記憶させ、停止されている上記プロセッサコアを動作させて、上記プロセッサコアに上記書き込みソフトウェアを実行させてもよい。
【００１３】
また、上記書き込み制御デバイスは、上記マイクロコントローラの上記プロセッサコアが停止されているときに、上記マイクロコントローラを、上記プロセッサコアが動作したときに上記書き込みソフトウェアが実行される状態にさせてもよい。
【００１４】
また、上記書き込み制御デバイスは、上記マイクロコントローラの上記プロセッサコアに上記書き込みソフトウェアを実行させると、上記マイクロコントローラの上記不揮発性メモリへの上記更新データの書き込みが終了したか否かを判定し、判定結果に対応する処理を行ってもよい。
【００１５】
また、上記書き込み制御デバイスは、上記マイクロコントローラの上記不揮発性メモリへの上記更新データの書き込みが終了したと判定された場合には、上記マイクロコントローラの電源をオフ状態とさせてもよい。
【００１６】
また、上記書き込み制御デバイスは、上記マイクロコントローラの上記不揮発性メモリへの上記更新データの書き込みが終了したと判定されない場合には、上記マイクロコントローラの上記プロセッサコアを停止させ、上記プロセッサコアが停止されているときに、上記不揮発性メモリに書き込まれていない上記更新データを、上記揮発性メモリに記憶させ、停止されている上記プロセッサコアを動作させて、上記プロセッサコアに上記書き込みソフトウェアを再度実行させてもよい。
【発明の効果】
【００１７】
本発明によれば、不揮発性メモリにデータを書き込むことができる。
【図面の簡単な説明】
【００１８】
【図１】既存の方法が用いられる書き込み装置における、不揮発性メモリへのデータの書き込みに係る処理の一例を示す説明図である。
【図２】本発明の実施形態に係る書き込み装置における、不揮発性メモリへのデータの書き込みに係る処理の概要を説明するための説明図である。
【図３】本発明の実施形態に係る書き込み装置における、不揮発性メモリへのデータの書き込みに係る処理の一例を示す流れ図である。
【図４】本発明の実施形態に係る書き込み装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２０】
（本発明の実施形態に係る書き込み装置）
［１］既存の方法が用いられる書き込み装置における、不揮発性メモリへのデータの書き込みに係る処理の一例
本発明の実施形態に係る書き込み装置における処理について説明する前に、既存の方法が用いられる書き込み装置における、不揮発性メモリへのデータの書き込みに係る処理の一例を説明する。
【００２１】
図１は、既存の方法が用いられる書き込み装置５０における、不揮発性メモリへのデータの書き込みに係る処理の一例を示す説明図である。
【００２２】
書き込み装置５０は、ライタ１０と、マイクロコントローラ２０とを有する。ライタ１０と、マイクロコントローラ２０とは、例えばＩＥＥＥ１１４９．１（ＪＴＡＧ（Joint  Test  Action  Group）とも呼ばれる。）などの、有線通信または無線通信が可能な任意の通信方式のインタフェースで接続される。
【００２３】
ライタ１０は、マイクロコントローラ２０が含む不揮発性メモリへのデータの書き込みを制御する役目を果たす。つまり、ライタ１０は、書き込み装置５０において、不揮発性メモリへのデータの書き込みを制御する書き込み制御デバイスに該当する。
【００２４】
マイクロコントローラ２０は、不揮発性メモリを含み、ライタ１０による制御の対象となるデバイスである。
【００２５】
マイクロコントローラ２０が含む不揮発性メモリは、データの書き込み対象の記録媒体である。図１では、不揮発性メモリとして、フラッシュＲＯＭ（不揮発性メモリの一例。以下、同様とする。）を示している。
【００２６】
フラッシュＲＯＭには、書き込みソフトウェアとして、書き込みファームウェア（書き込みソフトウェアの一例。以下、同様とする。）が記憶される。フラッシュＲＯＭにおいて、書き込みファームウェアは、例えば、マイクロコントローラ２０の利用者に公開されていない非公開領域、または、当該利用者に公開されている公開領域に記憶される。
【００２７】
また、図１では示していないが、マイクロコントローラ２０は、プロセッサコア（図示せず）を含み、書き込みファームウェアは、プロセッサコアにより実行される。
【００２８】
以下、図１に示す書き込み装置５０におけるフラッシュＲＯＭへのデータの書き込みに係る処理の一例を説明する。
【００２９】
ライタ１０は、マイクロコントローラ２０とインタフェースを介して通信を行い、書き込み対象のデータ（以下、「更新データ」と示す。）を、マイクロコントローラ２０に送信する（Ｓ１０）。
【００３０】
マイクロコントローラ２０において実行されている書き込みファームウェアは、ライタ１０から受信された更新データを、フラッシュＲＯＭに書き込む（Ｓ２０）。
【００３１】
書き込み装置５０では、図１を参照して示したような処理が行われることによって、フラッシュＲＯＭへの更新データの書き込みが実現される。
【００３２】
しかしながら、フラッシュＲＯＭに記憶される書き込みファームウェアを利用してフラッシュＲＯＭにデータを書き込む場合には、上述したように、フラッシュＲＯＭの領域の一部を書き込みファームウェアが占有することに起因して、フラッシュＲＯＭを利用するソフトウェアの設計に制約が生じる恐れがある。
【００３３】
［２］本発明の実施形態に係る書き込み装置における、不揮発性メモリへのデータの書き込みに係る処理
次に、本発明の実施形態に係る書き込み装置における、不揮発性メモリへのデータの書き込みに係る処理について、説明する。
【００３４】
［２−１］不揮発性メモリへのデータの書き込みに係る処理の概要
図２は、本発明の実施形態に係る書き込み装置１０００における、不揮発性メモリへのデータの書き込みに係る処理の概要を説明するための説明図である。
【００３５】
書き込み装置１０００は、ライタ１００と、マイクロコントローラ２００とを有する。ライタ１００と、マイクロコントローラ２００とは、例えばＩＥＥＥ１１４９．１（ＪＴＡＧとも呼ばれる。）などの、有線通信または無線通信が可能な任意の通信方式のインタフェースで接続される。以下では、ライタ１００とマイクロコントローラ２００とが、ＩＥＥＥ１１４９．１により接続される場合を例に挙げる。
【００３６】
ライタ１００は、マイクロコントローラ２００を構成するフラッシュＲＯＭ（不揮発性メモリの一例）へのデータの書き込みを制御する役目を果たす。つまり、ライタ１００は、書き込み装置１０００において、不揮発性メモリへのデータの書き込みを制御する書き込み制御デバイスに該当する。
【００３７】
また、ライタ１００は、マイクロコントローラ２００を構成する各構成要素を制御する。ライタ１００によるマイクロコントローラ２００の制御としては、例えば、マイクロコントローラ２００を構成するレジスタの設定、マイクロコントローラ２００を構成するＲＡＭへのデータの配置などが挙げられる。
【００３８】
ライタ１００は、例えばオンチップ・エミュレータ（on-chip  emulator）またはインサーキット・エミュレータ（in-circuit  emulator）として機能することによって、マイクロコントローラ２００を構成する各構成要素を制御する。なお、ライタ１００によるマイクロコントローラ２００を構成する各構成要素の制御方法は、ライタ１００がオンチップ・エミュレータまたはインサーキット・エミュレータとして機能することに限られない。例えば、ライタ１００では、マイクロコントローラ２００を構成する各構成要素を制御することが可能な、任意の方法が用いられてもよい。
【００３９】
マイクロコントローラ２００は、不揮発性メモリと、揮発性メモリとを含み、ライタ１００による制御の対象となるデバイスである。
【００４０】
マイクロコントローラ２００を構成する不揮発性メモリは、データの書き込み対象の記録媒体である。本発明の実施形態に係る不揮発性メモリとしては、例えば、フラッシュＲＯＭや、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read  Only  Memory）などが挙げられる。図２では、不揮発性メモリとして、フラッシュＲＯＭを示している。
【００４１】
マイクロコントローラ２００を構成する揮発性メモリは、マイクロコントローラ２００が備える他の記録媒体である。本発明の実施形態に係る揮発性メモリとしては、例えば、ＤＲＡＭ（Dynamic  Random  AccessMemory）やＳＲＡＭ（Static  Random  Access
Memory）などのＲＡＭ（Random  Access  Memory）が挙げられる。図２では、揮発性メモリとして、ＲＡＭを示している。
【００４２】
図２では、ＲＡＭに、書き込みモジュールが記憶されている例を示している。書き込みモジュールは、書き込みソフトウェアの一例である。マイクロコントローラ２００のＲＡＭへの書き込みモジュールの記録は、後述するように、ライタ１００によって行われる。また、ＲＡＭは、揮発性メモリであるので、ＲＡＭへの電力の供給がなくなると、記憶されている内容は、消去される。
【００４３】
また、図２では示していないが、マイクロコントローラ２００は、プロセッサコア（図示せず）を含み、書き込みモジュール（書き込みソフトウェアの一例。以下、同様とする。）は、プロセッサコアにより実行される。
【００４４】
以下、図２に示す書き込み装置１０００におけるフラッシュＲＯＭへのデータの書き込みに係る処理の概要を説明する。
【００４５】
ライタ１００は、マイクロコントローラ２００とインタフェースを介して通信を行い、マイクロコントローラ２００のプロセッサコアを停止させた後、マイクロコントローラ２００のＲＡＭに書き込みモジュールを記憶させる（Ｓ１００）。
【００４６】
ライタ１００は、インタフェースを介した通信により、マイクロコントローラ２００のＲＡＭに更新データを記憶させる（Ｓ１０２）。
【００４７】
また、ライタ１００は、例えば、インタフェースを介した通信により、マイクロコントローラ２００を、プロセッサコアが動作したときに書き込みモジュールが実行される状態にさせる。ライタ１００は、例えば、マイクロコントローラ２００を構成する、プログラムカウンタやスタックポインタなどのレジスタを、インタフェースを介した通信により設定することによって、マイクロコントローラ２００を、プロセッサコアが動作したときに書き込みモジュールが実行される状態にさせる。
【００４８】
マイクロコントローラ２００のＲＡＭに書き込みモジュールと更新データとが配置されると、ライタ１００は、インタフェースを介した通信により停止されているプロセッサコアを動作させて、プロセッサコアに書き込みモジュールを実行させる。実行された書き込みモジュールは、ＲＡＭから更新データを読み出し、読み出した更新データをフラッシュＲＯＭに書き込む（Ｓ１０４）。
【００４９】
書き込み装置１０００では、図２を参照して示したような処理が行われることによって、フラッシュＲＯＭへの更新データの書き込みが実現される。
【００５０】
例えば図２を参照して示したような処理が行われ、マイクロコントローラ２００のフラッシュＲＯＭに更新データが書き込まれることによって、書き込み装置１０００では、下記に示すような効果が奏される。
・書き込み装置１０００を構成するマイクロコントローラ２００が、“フラッシュＲＯＭ、または、書き込み装置１０００を構成する他の不揮発性メモリにおける非公開領域に、書き込みファームウェアが記憶されていないマイクロコントローラ”であったとしても、フラッシュＲＯＭへのデータの書き込みが実現される。
・書き込みファームウェアなどの書き込みソフトウェアによる、フラッシュＲＯＭの領域の占有がないので、領域の占有に起因するフラッシュＲＯＭを利用するソフトウェアの設計の制約は、生じない。よって、ソフトウェアの設計者は、フラッシュＲＯＭ全体を使用した、より自由なソフトウェアの設計を行うことができる。
【００５１】
［２−２］不揮発性メモリへのデータの書き込みに係る処理の一例
書き込み装置１０００におけるフラッシュＲＯＭへのデータの書き込みに係る処理について、より具体的に説明する。図３は、本発明の実施形態に係る書き込み装置１０００における、不揮発性メモリへのデータの書き込みに係る処理の一例を示す流れ図である。図３は、書き込み装置１０００を構成するライタ１００（書き込み制御装置）における処理の一例を示している。
【００５２】
ライタ１００は、マイクロコントローラ２００の電源をオン状態にさせる（Ｓ２００）。
【００５３】
マイクロコントローラ２００の電源としては、例えば、マイクロコントローラ２００に接続されている、バッテリなどの外部電源が挙げられる。マイクロコントローラ２００の電源とライタ１００の電源とは、同一であってもよいし、異なっていてもよい。
【００５４】
ライタ１００は、例えば、書き込み装置１０００の利用者に対して、マイクロコントローラ２００の電源をオン状態にする旨を通知することによって、マイクロコントローラ２００の電源をオン状態にさせる。ライタ１００は、例えば、“表示デバイスに文字と画像との一方または双方を表示させることや、ＬＥＤ（Light  Emitting  Diode）などの発光素子で構成されるランプを点灯させることなどによる、視覚的な通知方法”と“スピーカなどの音声出力デバイスから音声を出力させることによる聴覚的な通知方法”との一方または双方によって、マイクロコントローラ２００の電源をオン状態にする旨を通知する。
【００５５】
上記表示デバイス、上記ランプ、および上記音声出力デバイスそれぞれは、ライタ１００が備えるデバイスであってもよいし、ライタ１００の外部のデバイスであってもよい。表示デバイスとしては、例えば、液晶ディスプレイや有機ＥＬディスプレイなどが挙げられる。また、表示デバイスは、例えばタッチパネルなど、表示と操作とが可能なデバイスであってもよい。
【００５６】
また、マイクロコントローラ２００が、外部から入力される信号に基づいて電源のオン状態またはオフ状態を切り替えることが可能な構成である場合には、ライタ１００は、例えば、インタフェースを介した通信により電源制御に係る制御信号を送信することによって、マイクロコントローラ２００の電源をオン状態にさせることも可能である。
【００５７】
ライタ１００は、マイクロコントローラ２００のプロセッサコアを停止させる（Ｓ２０２）。ライタ１００は、例えば、インタフェースを介した通信によりプロセッサコアの動作に係る制御信号を送信することによって、マイクロコントローラ２００のプロセッサコアを停止させる。
【００５８】
ライタ１００は、マイクロコントローラ２００に書き込みモジュールを配置させたか否かを判定する（Ｓ２０４）。
【００５９】
ライタ１００は、例えば、マイクロコントローラ２００に書き込みモジュールを配置させたか否かを示すフラグを参照することによって、ステップＳ２０４の判定を行う。上記フラグは、例えば、後述するステップＳ２０６の処理が行われたときに、書き込みモジュールを配置させた状態に更新される。また、上記フラグは、例えば、ステップＳ２０４において書き込みモジュールを配置させたと判定されたとき、または、後述するステップＳ２１６の処理が行われたときに、書き込みモジュールを配置させていない状態に更新される。なお、ステップＳ２０４における判定方法は上記フラグを用いる方法に限られず、ライタ１００は、マイクロコントローラ２００に書き込みモジュールを配置させたか否かを判定することが可能な、任意の方法を用いることが可能である。
【００６０】
ステップＳ２０４において、書き込みモジュールを配置させたと判定された場合には、後述するステップＳ２０６の処理を行う。
【００６１】
また、ステップＳ２０４において、書き込みモジュールを配置させたと判定されない場合には、ライタ１００は、例えば、インタフェースを介した通信によりマイクロコントローラ２００のＲＡＭに書き込みモジュールを配置して、ＲＡＭに書き込みモジュールを記憶させる（Ｓ２０６）。
【００６２】
ステップＳ２０４において書き込みモジュールを配置させたと判定された場合、または、ステップＳ２０６の処理が行われた場合、ライタ１００は、例えば、インタフェースを介した通信によりマイクロコントローラ２００のＲＡＭに更新データを配置して、ＲＡＭに更新データを記憶させる（Ｓ２０８）。なお、マイクロコントローラ２００のＲＡＭの容量などによっては、更新データの全体をＲＡＭに一度の処理で配置することができない場合もありうる。
【００６３】
ライタ１００は、インタフェースを介した通信により、マイクロコントローラ２００を、停止しているマイクロコントローラ２００のプロセッサコアが動作したときに書き込みモジュールが実行される状態に設定する（Ｓ２１０）。
【００６４】
ライタ１００は、例えば、マイクロコントローラ２００を構成する、プログラムカウンタやスタックポインタなどのレジスタを設定することによって、マイクロコントローラ２００を、プロセッサコアが動作したときに書き込みモジュールが実行される状態にさせる。ここで、プログラムカウンタやスタックポインタなどのレジスタは、プロセッサコアが備えるレジスタであってもよいし、プロセッサコアに接続されるレジスタであってもよい。
【００６５】
ライタ１００は、停止されているマイクロコントローラ２００のプロセッサコアを動作させて、ステップＳ２０６の処理によりＲＡＭに記憶されている書き込みモジュールを実行させることによって、ステップＳ２０８の処理によりＲＡＭに記憶されている更新データを、マイクロコントローラ２００のフラッシュＲＯＭに書き込ませる（Ｓ２１２）。ライタ１００は、例えば、インタフェースを介した通信によりプロセッサコアの動作に係る制御信号を送信することによって、停止しているマイクロコントローラ２００のプロセッサコアを動作させる。
【００６６】
ステップＳ２１２の処理を行うと、ライタ１００は、更新データの書き込みが終了したか否かを判定する（Ｓ２１４）。
【００６７】
ライタ１００は、例えば、ステップＳ２０８の処理により、マイクロコントローラ２００のフラッシュＲＯＭに書き込ませる全ての更新データの、マイクロコントローラ２００のＲＡＭへの配置が完了している場合に、更新データの書き込みが終了したと判定する。ここで、更新データが１つである場合、ライタ１００は、例えば、ステップＳ２０８の処理によって、当該更新データが最後までマイクロコントローラ２００のＲＡＭに配置された状態であるときに、全ての更新データのＲＡＭへの配置が完了していると判定する。また、更新データが複数存在する場合、ライタ１００は、例えば、ステップＳ２０８の処理によって、全ての更新データが最後までマイクロコントローラ２００のＲＡＭに配置された状態であるときに、全ての更新データのＲＡＭへの配置が完了していると判定する。
【００６８】
ライタ１００は、ステップＳ２１４の判定を行うと、判定結果に対応する処理を行う。
【００６９】
より具体的には、ステップＳ２１４において、更新データの書き込みが終了したと判定されない場合には、ライタ１００は、ステップＳ２０２からの処理を繰り返す。
【００７０】
また、ステップＳ２１４において、更新データの書き込みが終了したと判定された場合には、ライタ１００は、マイクロコントローラ２００の電源をオフ状態にさせる（Ｓ２１６）。
【００７１】
ライタ１００は、例えば、書き込み装置１０００の利用者に対して、マイクロコントローラ２００の電源をオフ状態にする旨を通知することによって、マイクロコントローラ２００の電源をオフ状態にさせる。ライタ１００は、例えばステップＳ２００と同様に、視覚的な通知方法と聴覚的な通知方法との一方または双方によって、マイクロコントローラ２００の電源をオフ状態にする旨を通知する。
【００７２】
また、マイクロコントローラ２００が、外部から入力される信号に基づいて電源のオン状態またはオフ状態を切り替えることが可能な構成である場合には、ライタ１００は、例えば、インタフェースを介した通信により電源制御に係る制御信号を送信することによって、マイクロコントローラ２００の電源をオフ状態にさせることも可能である。
【００７３】
ステップＳ２１６の処理が行われてマイクロコントローラ２００の電源がオフ状態となることによって、マイクロコントローラ２００のＲＡＭへの電力の供給がなくなるので、マイクロコントローラ２００のＲＡＭに記憶されていた内容は、消去される。
【００７４】
書き込み装置１０００では、ライタ１００が例えば図３に示す処理を行うことによって、マイクロコントローラ２００のフラッシュＲＯＭへの更新データの書き込みが実現される。
【００７５】
なお、書き込み装置１０００における処理は、図３を参照して示した処理に限られない。
【００７６】
例えば、マイクロコントローラ２００の電源がオン状態である場合には、ライタ１００は、ステップＳ２００の処理を行わなくてもよい。
【００７７】
また、ライタ１００は、ステップＳ２１６の処理を行わないことも可能である。ステップＳ２１６の処理が行われない場合であっても、マイクロコントローラ２００の電源がオフ状態となったときに、マイクロコントローラ２００のＲＡＭに記憶されていた内容は、消去される。
【００７８】
［３］本発明の実施形態に係る書き込み装置の構成の一例
次に、上述した本発明の実施形態に係る不揮発性メモリへのデータの書き込みに係る処理を行うことが可能な、書き込み装置１０００の構成の一例を示す。
【００７９】
図４は、本発明の実施形態に係る書き込み装置１０００の構成の一例を示すブロック図である。書き込み装置１０００は、ライタ１００（書き込み制御装置）と、マイクロコントローラ２００とを有する。
【００８０】
［３−１］ライタ１００の構成の一例
ライタ１００は、例えば、プロセッサ１０２と、記録媒体１０４と、インタフェースとを含む。
【００８１】
また、ライタ１００は、例えば、ＲＯＭ（図示せず）や、ＲＡＭ（図示せず）、表示デバイス、音声出力デバイス、操作デバイスなどを備えていてもよい。ライタ１００は、例えば、データの伝送路としてのバスにより上記各構成要素間を接続する。ライタ１００は、例えば、ライタ１００が備えているバッテリなどの内部電源から供給される電力、または、接続されている外部電源から供給される電力などによって、駆動する。
【００８２】
ＲＯＭ（図示せず）は、例えば、プロセッサ１０２が使用するプログラムや演算パラメータなどのデータを記憶する。ＲＡＭ（図示せず）は、プロセッサ１０２により実行されるプログラムや、処理データなどを一時的に記憶する。
【００８３】
表示デバイスは、ライタ１００が備える表示手段であり、文字と画像との一方または双方が表示される様々な画面を表示させる。また、音声出力デバイスは、ライタ１００が備える音声出力手段であり、様々な音声を出力させる。また、操作デバイスは、ライタ１００が備える、利用者による操作を可能とする操作手段である。操作デバイスとしては、例えば、例えば、ボタンや、方向キー、あるいは、これらの組み合わせなどが挙げられる。
【００８４】
プロセッサ１０２は、１または２以上のプロセッサコアや、各種処理回路などで構成され、ライタ１００全体を制御する。
【００８５】
また、プロセッサ１０２は、本発明の実施形態に係る不揮発性メモリへのデータの書き込みに係る処理を主導的に行う役目を果たす。より具体的には、プロセッサ１０２は、例えば図３に示す各処理（変形例に係る処理も含む。）を行う。
【００８６】
記録媒体１０４は、ライタ１００が備える記憶手段であり、書き込みモジュールや更新データ、アプリケーションソフトウェアなどの様々なデータを記憶する。図４では、記録媒体１０４に、書き込みモジュール１１０と、更新データ１１２、…とが記憶されている例を示している。
【００８７】
記録媒体１０４としては、例えば、ハードディスクなどの磁気記録媒体や、フラッシュメモリなどの不揮発性メモリなどが挙げられる。また、記録媒体１０４は、ライタ１００から着脱可能であってもよい。
【００８８】
インタフェース１０６は、ライタ１００が備える通信手段である。インタフェース１０６としては、例えば、ＩＥＥＥ１１４９．１に対応する通信デバイスが挙げられる。なお、インタフェース１０６は、上記に示す例に限られず、マイクロコントローラ２００との間で有線通信または無線通信が可能な任意の通信方式に対応する、任意の通信デバイスであってもよい。
【００８９】
ライタ１００は、例えば図４に示す構成を有することによって、例えば図３に示す各処理（変形例に係る処理も含む。）のような、本発明の実施形態に係る不揮発性メモリへのデータの書き込みに係る処理を行う。
【００９０】
なお、ライタ１００の構成は、図４に示す例に限られない。
【００９１】
例えば、インタフェース１０６と同様の機能、構成を有する外部の通信デバイスを介してマイクロコントローラ２００などの外部装置と通信を行う場合には、ライタ１００は、インタフェース１０６を備えていなくてもよい。
【００９２】
また、例えば、ライタ１００は、サーバなどの外部装置と有線または無線で通信を行うための他の通信デバイスを、さらに備えていてもよい。他の通信デバイスとしては、例えば、ＩＥＥＥ８０２．１５．１ポートおよび送受信回路や、ＩＥＥＥ８０２．１１ポートおよび送受信回路、ＬＴＥ／３Ｇ用のアンテナなどの通信アンテナおよびＲＦ（Radio  Frequency）回路などが挙げられる。
【００９３】
上記他の通信デバイスを備える場合、ライタ１００は、他の通信デバイスによる外部装置との通信によって、書き込みモジュール１１０や更新データ１１２などの様々なデータを、外部装置から取得することができる。なお、書き込みモジュール１１０や更新データ１１２などの様々なデータは、インタフェース１０６を介した通信によって、外部装置から取得されてもよい。
【００９４】
［３−２］マイクロコントローラ２００
マイクロコントローラ２００は、例えば、揮発性メモリ２０２と、不揮発性メモリ２０４と、インタフェース２０６と、プロセッサコア２０８とを含む。マイクロコントローラ２００は、例えば、データの伝送路としてのバスにより上記各構成要素間を接続する。
【００９５】
揮発性メモリ２０２としては、例えばＲＡＭが挙げられる。図２、図３を参照して示したように、ライタ１００によって、揮発性メモリ２０２には、書き込みモジュール（書き込みソフトウェアの一例）と、更新データとが配置される。
【００９６】
不揮発性メモリ２０４としては、例えば、フラッシュＲＯＭや、ＥＰＲＯＭ、ＥＥＰＲＯＭなどが挙げられる。図２、図３を参照して示したように、プロセッサコア２０８が揮発性メモリ２０２に記憶されている書き込みモジュールを実行することによって、不揮発性メモリ２０４には、揮発性メモリ２０２に記憶されている更新データが書き込まれる。
【００９７】
インタフェース２０６は、マイクロコントローラ２００が備える通信手段である。インタフェース２０６としては、例えば、ＩＥＥＥ１１４９．１に対応する通信デバイスが挙げられる。なお、インタフェース２０６は、上記に示す例に限られず、ライタ１００との間で有線通信または無線通信が可能な任意の通信方式に対応する、任意の通信デバイスであってもよい。
【００９８】
プロセッサコア２０８は、書き込みソフトウェアなどの様々なプログラムを実行する機能を有する。図２、図３を参照して示したように、プロセッサコア２０８は、揮発性メモリ２０２に記憶されている書き込みモジュールを実行することによって、不揮発性メモリ２０４に、揮発性メモリ２０２に記憶されている更新データを書き込む。
【００９９】
マイクロコントローラ２００が例えば図４に示す構成を有することにより、書き込み装置１０００では、ライタ１００において行われる本発明の実施形態に係る不揮発性メモリへのデータの書き込みに係る処理による、不揮発性メモリへのデータの書き込みが、実現される。
【０１００】
なお、マイクロコントローラ２００の構成は、図４に示す例に限られない。
【０１０１】
例えば、インタフェース２０６と同様の機能、構成を有する外部の通信デバイスを介してライタ１００などの外部装置と通信を行う場合には、マイクロコントローラ２００は、インタフェース２０６を備えていなくてもよい。
【０１０２】
書き込み装置１０００は、例えば図４に示す構成を有する。なお、書き込み装置１０００の構成が、図４に示す例に限られないことは、言うまでもない。
【０１０３】
［４］本発明の実施形態に係る書き込み装置の適用例
本発明の実施形態に係る書き込み装置は、例えば、車などの車両や、携帯電話やスマートフォンなどの通信装置、タブレット型の装置、テレビ受像機、ＰＣ（Personal  Computer）やサーバなどのコンピュータなど、マイクロコントローラを含む任意の電気機器（またはシステム）に用いることが、可能である。
【０１０４】
また、本発明の実施形態に係る書き込み装置は、ライタ（書き込み制御装置）と、マイクロコントローラとを有する書き込みシステムであってもよい。書き込みシステムの一例としては、例えば、“上記任意の電気機器にマイクロコントローラが含まれ、上記任意の電気機器の外部装置であるライタ（書き込み制御装置）によって、マイクロコントローラの不揮発性メモリにデータが書き込まれるシステム”が、挙げられる。つまり、本発明の実施形態に係る書き込みシステムでは、ライタ（書き込み制御装置）と、マイクロコントローラとは、それぞれ別体の電気機器を構成する。
【０１０５】
本発明の実施形態に係る書き込み装置が、上記のような書き込みシステムである場合であっても、ライタ（書き込み制御装置）とマイクロコントローラとが所定のインタフェースで接続されることによって、書き込みシステムは、上述した書き込み装置１０００と同様の効果を奏することができる。
【０１０６】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１０７】
１０、１００    ライタ
２０、２００  マイクロコントローラ
５０、１０００    書き込み装置
１０２    プロセッサ
１０４    記録媒体
１０６、２０６    インタフェース
１１０    書き込みモジュール
１１２    更新データ
２０２    揮発性メモリ
２０４    不揮発性メモリ
２０８    プロセッサコア
【図１】
2017204138.tif 000003
【図２】
2017204138.tif 000004
【図３】
2017204138.tif 000005
【図４】
2017204138.tif 000006