JP2012155682A - 組み込みシステム用のプラットフォーム、アプリケーション、該プラットフォームと該アプリケーションを備える制御プログラム、電子装置、及び、アプリケーションの更新方法 - Google Patents
組み込みシステム用のプラットフォーム、アプリケーション、該プラットフォームと該アプリケーションを備える制御プログラム、電子装置、及び、アプリケーションの更新方法 Download PDFInfo
- Publication number
- JP2012155682A JP2012155682A JP2011016852A JP2011016852A JP2012155682A JP 2012155682 A JP2012155682 A JP 2012155682A JP 2011016852 A JP2011016852 A JP 2011016852A JP 2011016852 A JP2011016852 A JP 2011016852A JP 2012155682 A JP2012155682 A JP 2012155682A
- Authority
- JP
- Japan
- Prior art keywords
- application
- update
- stop
- platform
- swc
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】要求される機能を完全に停止させること無く、プログラムの一部を動的に書き換えることができる組み込みシステム用の制御プログラム等を提供する。
【解決手段】AUTOSARの基本ソフトウェアにおける複合デバイスに含まれるRM(Reconfiguration Management)は、更新指示を受け付けると、更新対象のSWCに対しstopイベントを通知する(S215)。該イベントを受け取ったSWCは、当該SWCを停止させると共に、RTE(Runtime Environment)を介しての当該SWCへの送信を停止する停止処理を実行し(S220)、その後、RMにstopped notifyを通知する(S225)。該通知を受け取ったRMは、更新データにより更新対象のSWCを書き換え(S245)、その後、該SWCを再起動させる。
【選択図】図3
【解決手段】AUTOSARの基本ソフトウェアにおける複合デバイスに含まれるRM(Reconfiguration Management)は、更新指示を受け付けると、更新対象のSWCに対しstopイベントを通知する(S215)。該イベントを受け取ったSWCは、当該SWCを停止させると共に、RTE(Runtime Environment)を介しての当該SWCへの送信を停止する停止処理を実行し(S220)、その後、RMにstopped notifyを通知する(S225)。該通知を受け取ったRMは、更新データにより更新対象のSWCを書き換え(S245)、その後、該SWCを再起動させる。
【選択図】図3
Description
1または複数のアプリケーションと、該アプリケーションを動作させるプラットフォームを備える組み込みシステム用の制御プログラム等に関する。
従来、車載装置等を制御する組み込みシステム用のプログラムは、経済性や安全性のため、複数のモジュールから構成されている場合であっても各モジュールが静的にリンクされた状態でROMに記憶され、メインメモリにロードされた後に実行されるか、或いは、ROMから直接実行されていた。このため、プログラムの一部を動的に書き換えることはできず、専用装置によりプログラム全体を一括して書き換える等といった必要があったため、ユーザが手軽にプログラムのバージョンアップを行うことができなかった。しかしながら、近年では、プログラムの大規模化に伴い不具合の発生頻度が増加しており、プログラムの書き換えを容易化することが望まれている。
ここで、特許文献1に記載されているように、組み込みシステムのRTOS上にさらにもう一層のソフトウェア動作環境を設け、このソフトウェア動作環境上でモジュールの動的なリンクやロードをサポートすることが提案されている。このような構成によれば、ソフトウェア動作環境上で一部のモジュールを動的に書き換えることが可能となるが、その反面、CPUの処理負荷やメモリの使用量が膨大なものとなり、リソースが限られている車載装置等への適用は困難であった。
また、上記事情に鑑み、TOPPERSのように、プログラムの一部を動的に書き換えるダイナミックローディング機能が搭載されたRTOSが登場している。このようなRTOSを用いることで、一部のモジュールのみを更新することができ、より容易に新機能の追加や不具合の修正を行なうことが可能となる。
ここで、プログラムを構成する各モジュールは、互いに通信を行い協調して動作することで要求される機能を実現しており、プログラムの稼動中に特定のモジュールを書き換えるとした場合には、書き換えの途上にあるモジュールが他のモジュール等からの指示により起動されてしまう可能性がある。そして、このような場合には、CPUが暴走してしまうおそれがあるため、上述のTOPPERSでは、各モジュールを停止させ、機能を完全に停止させた後でなければ、プログラムの一部を動的に書き換えることができなかった。
本願発明は上記課題に鑑みてなされたものであり、要求される機能を完全に停止させること無く、プログラムの一部を動的に書き換えることができる組み込みシステム用の制御プログラム等を提供することを目的とする。
上記課題を解決するためになされた請求項1の発明は、1または複数のアプリケーションと、該アプリケーションを動作させるためのプラットフォームとを備える組み込みシステム用の制御プログラムに関する。
この制御プログラムにおいて、プラットフォームは、アプリケーションとの間の送受信を中継する中継手段と、動作中のアプリケーションを更新する更新指示を受け付ける受付手段と、アプリケーションを更新するための更新データを外部から取得する取得手段と、受付手段が更新指示を受け付けると、該更新指示により更新されるアプリケーションに対し、動作の正常な停止と、中継手段を介しての該アプリケーションへの送信の停止とを指示する停止指示を行う停止指示手段としてコンピュータを動作させる。また、プラットフォームは、停止指示により、アプリケーションの動作が正常に停止すると共に、中継手段を介しての該アプリケーションへの送信とが停止した後に、取得手段が取得した更新データに基づき該アプリケーションを更新する更新手段としてコンピュータを動作させる。
また、アプリケーションは、当該アプリケーションに対しての停止指示がなされると、当該アプリケーションの動作を正常に停止させると共に、中継手段を介しての当該アプリケーションへの送信を停止させる停止手段としてコンピュータを動作させる。
このような構成によれば、更新指示がなされた際には、更新指示の対象となるアプリケーションの動作と、中継手段を介しての該アプリケーションへの送信が停止された後に該アプリケーションが更新され、更新中のアプリケーションに対してイベント通知等がなされることを防ぐことができる。このため、他のアプリケーションやプラットフォームの動作を停止させずに、特定のアプリケーションのみを更新したとしても、更新途上のアプリケーションが起動されることは無く、CPUが暴走してしまうことを防ぐことができるのである。したがって、請求項1に記載の制御プログラムによれば、各アプリケーションにより実現される全ての機能を完全に停止させること無く、プログラムの一部を動的に書き換えることができる。
ここで、アプリケーションの更新後、該アプリケーションを初期状態で再起動させるとなると、更新の前後でアプリケーションの動作が大きく変わってしまう可能性があり、制御対象の状態に適合しない処理や、ユーザの意思に反した処理等が行われるおそれがある。
そこで、請求項2に記載の制御プログラムでは、アプリケーションは、さらに、当該アプリケーションに対しての停止指示がなされると、当該アプリケーションの動作状態を示す引継ぎデータをメモリに保存する保存手段と、更新手段により当該アプリケーションが更新された後に、保存手段により保存された引継ぎデータを読み出し、該引継ぎデータに基づき、停止指示がなされた時点の動作状態を復元した後に当該アプリケーションの動作を再開させる再開手段としてコンピュータを動作させる。
こうすることにより、更新後のアプリケーションを更新前と同様に動作させることができ、アプリケーションの更新により、制御対象の状態に適合しない処理や、ユーザの意思に反した処理等が行われてしまうことを防ぐことができる。
また、請求項3に記載されているように、取得手段は、ネットワークを介して外部サーバから更新データを取得しても良い。
こうすることにより、アプリケーションの更新を容易に行うことができる。
こうすることにより、アプリケーションの更新を容易に行うことができる。
また、請求項4に記載されているように、制御プログラムは、書き換え可能な不揮発性の記憶媒体に記憶された状態でコンピュータを動作させるよう構成されていても良い。
こうすることにより、制御プログラムをロードするためのメインメモリを設ける必要が無くなり、制御プログラムが搭載される装置のコストを抑えることができる。
こうすることにより、制御プログラムをロードするためのメインメモリを設ける必要が無くなり、制御プログラムが搭載される装置のコストを抑えることができる。
また、制御プログラムを構成する各アプリケーションは、異なる業者により開発されるという可能性もある。このため、アプリケーションの更新機能が十分にサポートされておらず、プラットフォームからの停止指示に応じてアプリケーションが停止しないという可能性もある。また、アプリケーションの更新機能が十分にサポートされている場合であっても、何らかの理由により、停止指示がなされたアプリケーションが動作を停止できないといった可能性もある。
そこで、請求項5に記載の制御プログラムでは、プラットフォームは、さらに、停止指示がなされたアプリケーションの動作が停止しない場合に、該アプリケーションの動作を停止させる強制停止手段としてコンピュータを動作させる制御プログラム。
こうすることにより、更新を行うアプリケーションの動作を確実に停止させることができ、アプリケーションの更新を確実に行うことができる。
なお、請求項6,7に記載されているように、請求項1に記載の制御プログラムを構成するプラットフォームやアプリケーションを単体で市場に流通させても良い。このような場合であっても、対応するアプリケーションやプラットフォームと組み合わせることで、同様の効果を得ることができる。
なお、請求項6,7に記載されているように、請求項1に記載の制御プログラムを構成するプラットフォームやアプリケーションを単体で市場に流通させても良い。このような場合であっても、対応するアプリケーションやプラットフォームと組み合わせることで、同様の効果を得ることができる。
また、請求項8に記載されているように、請求項1に記載の制御プログラムが搭載された電子装置を市場に流通させても良い。このような場合であっても、同様の効果を得ることができる。
また、請求項9には、請求項1に記載の制御プログラムにて行われるアプリケーションの更新方法が記載されている。このような方法によれば、アプリケーションにより実現される全ての機能を完全に停止させること無く、プログラムの一部を動的に書き換えることができる。
以下、本発明の実施形態について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
[構成の説明]
図1(a)は、自車両の車速を自動調整するクルーズコントロールや、ヘッドライトの制御や、自車両が車線に追従して走行するようステアリングを自動調整する車線追従等の機能を有する本実施形態のECU10の構成を示すブロック図である。ECU10は、無線通信によりインターネットにアクセスするための無線通信部11と、書き換え可能な不揮発性メモリ(例えばフラッシュメモリ等)として構成されている記憶部12と、ユーザからの操作を受け付ける操作部13と、CPU、ROM、RAM、I/O及びこれらを接続するバスライン等からなる周知のマイコンを中心に構成され、記憶部12に記憶されている制御プログラムにより当該ECU10を統括制御する制御部14とを有している。なお、図1(b)に記載されているように、ECU10は、無線通信部11によりインターネット30にアクセスして外部サーバ20と通信を行い、該外部サーバ20から記憶部12に記憶されている制御プログラムを更新するための更新データを取得するよう構成されている。
図1(a)は、自車両の車速を自動調整するクルーズコントロールや、ヘッドライトの制御や、自車両が車線に追従して走行するようステアリングを自動調整する車線追従等の機能を有する本実施形態のECU10の構成を示すブロック図である。ECU10は、無線通信によりインターネットにアクセスするための無線通信部11と、書き換え可能な不揮発性メモリ(例えばフラッシュメモリ等)として構成されている記憶部12と、ユーザからの操作を受け付ける操作部13と、CPU、ROM、RAM、I/O及びこれらを接続するバスライン等からなる周知のマイコンを中心に構成され、記憶部12に記憶されている制御プログラムにより当該ECU10を統括制御する制御部14とを有している。なお、図1(b)に記載されているように、ECU10は、無線通信部11によりインターネット30にアクセスして外部サーバ20と通信を行い、該外部サーバ20から記憶部12に記憶されている制御プログラムを更新するための更新データを取得するよう構成されている。
次に、ECU10の記憶部12に記憶されている制御プログラム100の構成について説明する。制御プログラム100は、車載用の組み込みシステム向けに標準化されたソフトウェアアーキテクチャーであるAUTOSARに準拠した構造を有している。
ここで、AUTOSARについて簡単に説明する。図1(c)に記載されているように、AUTOSARは、各種機能を実現するためのアプリケーションが属するアプリケーション層と、ハードウェアを抽象化すると共に、各種サービスを提供する基本ソフトウェアと、基本ソフトウェアからアプリケーションを抽象化し、基本ソフトウェアとアプリケーションとの間や、アプリケーション間の通信を行うRTE(Runtime Environmentの略,ランタイム環境)から構成される。また、この基本ソフトウェアは、各アプリケーションを動作させるOSとして機能すると共に、他のECUとの通信や、メモリ管理や故障診断等を行うサービス層と、マイコンや各種デバイスを制御するためのAPIを提供するECU抽象化層と、マイコン内部のペリフェラルやメモリや各種デバイス等を制御するマイクロコントローラ抽象化層を備えると共に、高速での処理や、標準化できない特殊な処理等をサポートするための複合ドライバを備える。
そして、図2(a)に記載されているように、本実施形態の制御プログラム100は、上記アプリケーション層に含まれる部位であって、1または複数のタスクから構成されたアプリケーションであるA〜C−SWC140〜160と、上記サービス層に属する部位であって、SWCを構成するタスクのスケジューリングを行うことで、これらのアプリケーションを動作させるOS110と、上記複合ドライバに属する部位であって、動作中のSWCの書き換えを行うRM(Reconfiguration Management)120と、SWCの書き換えに関連する各種インターフェースを提供する拡張I/F131が設けられた上述のRTE130と、を備える。
なお、RTE130により提供されるインターフェースを呼び出すことで、各SWCに対して各種イベントが通知され、対応する処理が実行されると共に、各SWCの処理がコールバック関数として実行されるよう構成されている。また、RTE130により提供されるインターフェースを呼び出すことで、RM120とOS110との間の通信が行われる。
また、A−SWC140はクルーズコントロールを実現するためのアプリケーションであり、B−SWC150は、ヘッドライトを制御するためのアプリケーションであり、C−SWC160は、車線追従を実現するためのアプリケーションである。
また、本実施形態では、制御プログラム100は、記憶部12に記憶された状態で制御部14を構成するマイコンにより実行されるよう構成されているが、これに限定されることは無く、メインメモリにロードされた状態でマイコンにより実行されるよう構成されていても良い。
[動作の説明]
次に、制御プログラム100の動作について説明する。
(1)A〜C−SWCの状態について
既に述べたように、本実施形態の制御プログラム100では、SWCは、外部サーバ20から取得された更新データにより書き換え可能に構成されている。
次に、制御プログラム100の動作について説明する。
(1)A〜C−SWCの状態について
既に述べたように、本実施形態の制御プログラム100では、SWCは、外部サーバ20から取得された更新データにより書き換え可能に構成されている。
そして、図2(b)に記載されているように、SWCは、タスクの稼動状態や更新の状態等に基づき以下のような状態に分類される。すなわち、SWCの状態は、SWCが記憶部12から削除された状態であるUninstと、SWCが記憶部12に書き込まれた状態であるInstalledと、SWCの実行イメージが生成された状態であるLoadedと、SWCのインスタンスが生成され、該インスタンスが停止した状態であるStoppedと、SWCのインスタンスが起動された状態であるActに分類される。さらに、Uninst,Installedが実行ファイルレベルとされ、Loaded,Stopped,Actがインスタンスレベルとされる。
また、SWCでは、以下のイベントにより状態遷移が発生する。
すなわち、Uninstである場合には、RM120がSWCを記憶部12に書き込むInstallイベントが発生すると、該SWCはInstalledに遷移する。
すなわち、Uninstである場合には、RM120がSWCを記憶部12に書き込むInstallイベントが発生すると、該SWCはInstalledに遷移する。
また、Installedである場合には、RM120がSWCを記憶部12から削除するUninstallイベントが発生すると、該SWCはUninstに遷移する。また、Installedである場合には、OS110がSWCにて用いられるデータの初期値をRAMに展開するLoadイベントが発生すると、該SWCはLoadedに遷移する。
また、Loadedである場合には、OS110がSWCを構成するタスクや割込みハンドラを登録するInitイベントが発生すると、該SWCはStoppedに遷移する。
また、Stoppedである場合には、OS110がSWCを構成するタスクを起動すると共に、該SWCに対応するデバイスからの割込みを許可するStartイベントが発生すると、該SWCはActに遷移する。また、Stoppedである場合には、OS110がSWCを構成するタスクや割込みハンドラの登録を解除するFinalizeイベントが発生すると、該SWCはLoadedに遷移する。
なお、詳細については後述するが、SWCを更新する過程において、Finalizeイベントが発生した際には、該SWCの動作状態を示す引継ぎデータが保存されると共に、Initイベントが発生した際には、保存されている引継ぎデータが読み出され、該SWCの動作状態が復元される。
また、Actである場合には、OS110がSWCを構成するタスクを停止させると共に、該SWCに対応するデバイスからの割込みを禁止するStopイベントが発生すると、該SWCはStoppedに遷移する。
また、インスタンスレベルである場合に、OS110がSWCにて用いられるデータを破棄するExitイベントが発生すると、該SWCはInstalledに遷移する。
(2)アプリケーションの書き換えについて
次に、外部サーバ20から取得した更新データにより動作中のSWCを書き換える処理である書き換え処理について、図3に記載のシーケンス図を用いて説明する。なお、本処理は、ECU10の稼動中に、ユーザから動作中のいずれかのSWCを書き換える指令を受け付けた際に開始される。また、以下の説明では、制御プログラム100を構成する部位が各種処理を行うことが記載されているが、これらの処理は、該部位に従い動作する制御部14により実現されるということを念のため付言しておく。
(2)アプリケーションの書き換えについて
次に、外部サーバ20から取得した更新データにより動作中のSWCを書き換える処理である書き換え処理について、図3に記載のシーケンス図を用いて説明する。なお、本処理は、ECU10の稼動中に、ユーザから動作中のいずれかのSWCを書き換える指令を受け付けた際に開始される。また、以下の説明では、制御プログラム100を構成する部位が各種処理を行うことが記載されているが、これらの処理は、該部位に従い動作する制御部14により実現されるということを念のため付言しておく。
制御プログラム100のRM120は、ECU10の操作部13を介して、ユーザから、動作中のいずれかのSWCを書き換える更新指示を受け付けると(S205)、無線通信部11を介して、外部サーバ20から、書き換えの対象となるSWC(対象SWCとも記載)を書き換えるための更新データを取得する(S210)。
そして、S215では、RM120は、RTE130のインターフェースを呼び出すことで、対象SWCに対し、動作を正常に停止させるstopイベントを通知する。
そして、対象SWCは、stopイベントを受け取ると、当該SWCを正常に停止させるための処理である停止処理を実行する(S220)。
そして、対象SWCは、stopイベントを受け取ると、当該SWCを正常に停止させるための処理である停止処理を実行する(S220)。
具体的には、停止処理において、対象SWCは、実行中の処理を、安全に停止可能な段階まで進行させた上で中断する。なお、対象SWCに対するイベント通知や、対象SWCのコールバック関数の呼び出しがなされている場合には、対応する処理の実行完了を待つ。その後、RTE130のインターフェースを呼び出し、OS110に対し、当該SWCの動作の停止要求を行う。また、対象SWCは、RTE130のインターフェースを呼び出し、RTE130を介しての当該SWCへのイベントの通知や、当該SWCのコールバック関数(当該SWCの書き換えに関連するコールバック関数を除く)の呼び出しを禁止する。
また、対象SWCの動作の停止要求を受け取ったOS110は、対象SWCを構成するタスクの稼動を順次停止させる。
停止処理の実行後に移行するS225では、対象SWCは、RM120のインターフェースを呼び出し、RM120に対し、停止処理が正常に実行されたことを示すstopped notifyを通知し、S230に処理が移行される。なお、stopped notifyが通知される時点では、対象SWCを構成するタスクのうち、対象SWCを統括制御するタスク(stopped notifyを通知するタスク)以外の他のタスクは、全て停止された状態となっている。
停止処理の実行後に移行するS225では、対象SWCは、RM120のインターフェースを呼び出し、RM120に対し、停止処理が正常に実行されたことを示すstopped notifyを通知し、S230に処理が移行される。なお、stopped notifyが通知される時点では、対象SWCを構成するタスクのうち、対象SWCを統括制御するタスク(stopped notifyを通知するタスク)以外の他のタスクは、全て停止された状態となっている。
S230では、対象SWCが停止しない場合を想定し、stopped notifyを受け取ったRM120において、RTE130のインターフェースを呼び出し、対象SWCを強制的に停止させる強制停止処理を実行しても良い。なお、該インターフェースは、RTE130の拡張I/F131として設けられている。具体的には、強制停止処理において、RM120は、RTE130のインターフェースを呼び出し、OS110に対し、対象SWCのタスクを全て強制停止させると共に、対象SWCが既に受信しているイベントや、既に呼び出された対象SWCのコールバック関数を全て無効とさせる。強制停止処理を経た後に、S235に処理が移行される。
S235では、RM120は、対象SWCの動作状態を保存するための処理であるfinalize処理をコールバック関数として呼び出し、S240に処理が移行される。なお、該処理の呼び出しがFinalizeイベントに相当する。
S240では、対象SWCはfinalize処理を実行し、該処理において、対象SWCの動作状態を示すデータを引継ぎデータとしてRAM(或いは、図示しないEEPROMの不揮発性記憶媒体等)に保存する。そして、finalize処理の実行後、対象SWCを統括制御するタスクが停止される。
なお、finalize処理の実行後、OS110は、対象SWCを構成するタスクや割込みハンドラの登録を解除する処理を行う。
続くS245では、RM120は、対象SWCで用いられるデータをRAM上から破棄すると共に(Exitイベントに相当)、対象SWCを記憶部12から消去する(Uninstallイベントに相当)。その後、RM120は、外部サーバ20から取得され、制御部14のRAMに一時的に保存されている更新データを記憶部12に書き込むことで、対象SWCの書き換えを行い(Installイベントに相当)、さらに、OS110
が対象SWCにて用いられるデータの初期値をRAMに展開する(Loadイベントに相当)。
続くS245では、RM120は、対象SWCで用いられるデータをRAM上から破棄すると共に(Exitイベントに相当)、対象SWCを記憶部12から消去する(Uninstallイベントに相当)。その後、RM120は、外部サーバ20から取得され、制御部14のRAMに一時的に保存されている更新データを記憶部12に書き込むことで、対象SWCの書き換えを行い(Installイベントに相当)、さらに、OS110
が対象SWCにて用いられるデータの初期値をRAMに展開する(Loadイベントに相当)。
続くS250では、RM120は、書き換え直前の対象SWCの動作状態の復元等を行う処理であるinitialize処理をコールバック関数として呼び出し、その後、S255に処理が移行される。なお、該処理の呼び出しがInitイベントに相当する。
S255では、対象SWCはinitialize処理を実行し、該処理において、RAMに保存された引継ぎデータを読み出し、書き換え直前の対象SWCの動作状態を復元する。また、該処理において、対象SWCは、RTE130のインターフェースを呼び出し、RTE130を介しての当該SWCへのイベントの通知や、当該SWCのコールバック関数の呼び出しを許可する。また、該処理の実行後、OS110は、対象SWCを構成するタスクや割込みハンドラを登録する(Initイベントに相当)。そして、S260に処理が移行される。
S260では、RM120は、書き換え後の対象SWCを再起動させるための処理であるstart処理をコールバック関数として読み出し、その後、S265に処理が移行される。
S265では、対象SWCはstart処理を実行する。具体的には、対象SWCは、RTE130のインターフェースを呼び出してOS110に対し当該SWCの動作の再開要求を行い、該再開要求を受け取ったOS110は、対象SWCを構成するタスクを起動すると共に、対象SWCに対応するデバイスからの割込みを許可する(Startイベントに相当)。そして、以後、対象SWCの動作が再開される。
一方、書き換え処理において、対象SWCからstopped notifyの通知がなされない場合には、以下のような処理が行われる(図4参照)。
すなわち、既に述べたように、制御プログラム100のRM120が更新指示を受け付け(S305)、外部サーバ20から更新データを取得すると共に(S310)、対象SWCに対しstopイベントを通知すると(S315)、対象SWCでは停止処理が実行される(S320)。そして、stopイベントを通知した後、所定時間(例えば1s)が経過しても、対象SWCからstopped notifyが通知されない場合には、RM120は、RTE130のインターフェースを呼び出し、対象SWCを強制的に停止させる強制停止処理を実行する(S325)。
すなわち、既に述べたように、制御プログラム100のRM120が更新指示を受け付け(S305)、外部サーバ20から更新データを取得すると共に(S310)、対象SWCに対しstopイベントを通知すると(S315)、対象SWCでは停止処理が実行される(S320)。そして、stopイベントを通知した後、所定時間(例えば1s)が経過しても、対象SWCからstopped notifyが通知されない場合には、RM120は、RTE130のインターフェースを呼び出し、対象SWCを強制的に停止させる強制停止処理を実行する(S325)。
続くS330では、RM120は、対象SWCのデータをRAM上から消去すると共に(Exitイベントに相当)、対象SWCに対応するプログラムを記憶部12から消去する(Uninstallイベントに相当)。その後、RM120は、外部サーバ20から取得され、制御部14のRAMに一時的に保存されている更新データを記憶部12に書き込むことで、対象SWCの書き換えを行い(Installイベントに相当)、さらに、
OS110が対象SWCにて用いられるデータの初期値をRAMに展開する(Loadイベントに相当)。
OS110が対象SWCにて用いられるデータの初期値をRAMに展開する(Loadイベントに相当)。
続くS335では、RM120は、initialize処理をコールバック関数として呼び出し、その後、S340に処理が移行される。なお、該処理の呼び出しがInit
イベントに相当する。
イベントに相当する。
S340では、対象SWCはinitialize処理を実行し、該処理において、RTE130のインターフェースを呼び出し、RTE130を介しての当該SWCへのイベントの通知や、当該SWCのコールバック関数の呼び出しを許可する。また、該処理の実行後、OS110は、対象SWCを構成するタスクや割込みハンドラを登録する(Initイベントに相当)。そして、S345に処理が移行される。
S345では、RM120は、書き換え後の対象SWCを再起動させるための処理であるstart処理をコールバック関数として読み出し、その後、S350に処理が移行される。
S350では、対象SWCはstart処理を実行する。具体的には、対象SWCは、RTE130のインターフェースを呼び出してOS110に対し当該SWCの動作の再開要求を行い、該再開要求を受け取ったOS110は、対象SWCを構成するタスクを起動すると共に、対象SWCに対応するデバイスからの割込みを許可する(Startイベントに相当)。そして、以後、対象SWCの動作が再開される。
[効果]
本実施形態の制御プログラム100によれば、更新指示を受け付けた際には、更新の対象となるSWCの動作と、RTE130を介しての該SWCへの送信が停止された後に、該SWCが書き換えられるため、SWCの書き換え中に、該SWCに対してのイベント通知や、該SWCのコールバック関数の実行がなされることを防ぐことができる。このため、全てのSWCの動作を停止させずに特定のSWCのみを更新したとしても、更新途上のSWCが起動されることは無く、CPUが暴走してしまうことを防ぐことができるのである。したがって、制御プログラム100によれば、各SWCにより実現される全ての機能を完全に停止させること無く、特定のSWCを動的に書き換えることができる。
本実施形態の制御プログラム100によれば、更新指示を受け付けた際には、更新の対象となるSWCの動作と、RTE130を介しての該SWCへの送信が停止された後に、該SWCが書き換えられるため、SWCの書き換え中に、該SWCに対してのイベント通知や、該SWCのコールバック関数の実行がなされることを防ぐことができる。このため、全てのSWCの動作を停止させずに特定のSWCのみを更新したとしても、更新途上のSWCが起動されることは無く、CPUが暴走してしまうことを防ぐことができるのである。したがって、制御プログラム100によれば、各SWCにより実現される全ての機能を完全に停止させること無く、特定のSWCを動的に書き換えることができる。
[他の実施形態]
(1)本実施形態では、ユーザからの操作によりSWCの書き換えが行われるが、これに限定されることは無く、例えば、無線通信部11を介してインターネット経由で外部から受け付けた指示等に応じて、SWCの書き換えを行っても良い。
(1)本実施形態では、ユーザからの操作によりSWCの書き換えが行われるが、これに限定されることは無く、例えば、無線通信部11を介してインターネット経由で外部から受け付けた指示等に応じて、SWCの書き換えを行っても良い。
また、本実施形態では、外部サーバ20から更新データが取得されるが、これに限定されることは無く、例えば、SWCの書き換えを行う際にECU10に記憶装置を接続し、該記憶装置から更新データを取得しても良い。このような場合であっても、同様の効果を得ることができる。
(2)また、本実施形態では、SWCの書き換えを行う際に、書き換えの対象となるSWCが引継ぎデータの保存を行っている。しかしながら、これに限定されることは無く、例えば、他のSWCとの間で共通化されているデータを引継ぎデータとして保存する場合等には、これらのデータに関しては、RM120やOS110等にて引継ぎデータとして保存しても良い。このような場合であっても、同様の効果を得ることができる。
また、本実施形態では、SWCの書き換えを行う際に、書き換えの対象となるSWCが、当該SWCへのイベント通知やコールバックを禁止している。この点に関しても、例えば、他のSWCとの間で共通化されているイベントやコールバック関数が存在する場合には、これらに関しては、RM120やOS110等でイベント通知やコールバックを禁止しても良い。このような場合であっても、同様の効果を得ることができる。
[特許請求の範囲との対応]
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
SWCがアプリケーションに、OS110,RM120,RTE130がプラットフォームに、RTE130が中継手段に相当する。
また、書き換え処理のS205,S305が受付手段,受付手順に、S210,S310が取得手段,取得手順に、S215,S315が停止指示手段,停止指示手順に、S220が停止手段,停止手順に、S325が強制停止手段に、S240が保存手段に、S245,S330が更新手段,更新手順に、S255,S265が再開手段に相当する。
また、書き換え処理のS205,S305が受付手段,受付手順に、S210,S310が取得手段,取得手順に、S215,S315が停止指示手段,停止指示手順に、S220が停止手段,停止手順に、S325が強制停止手段に、S240が保存手段に、S245,S330が更新手段,更新手順に、S255,S265が再開手段に相当する。
また、SWC,OS110,RM120等がソフトウェアモジュールに相当する。
また、ECU10が電子装置に相当する。
また、ECU10が電子装置に相当する。
10…ECU、11…無線通信部、12…記憶部、13…操作部、14…制御部、20…外部サーバ、30…インターネット、100…制御プログラム、110…OS、120…RM、130…RTE、131…拡張I/F、140…A−SWC、150…B−SWC、160…C−SWC。
Claims (9)
- 1または複数のアプリケーションと、該アプリケーションを動作させるためのプラットフォームとを備える組み込みシステム用の制御プログラムであって、
前記プラットフォームは、
前記アプリケーションとの間の送受信を中継する中継手段と、
動作中の前記アプリケーションを更新する更新指示を受け付ける受付手段と、
前記アプリケーションを更新するための更新データを外部から取得する取得手段と、
前記受付手段が前記更新指示を受け付けると、該更新指示により更新される前記アプリケーションに対し、動作の正常な停止と、前記中継手段を介しての該アプリケーションへの送信の停止とを指示する停止指示を行う停止指示手段と、
前記停止指示により、前記アプリケーションの動作が正常に停止すると共に、前記中継手段を介しての該アプリケーションへの送信とが停止した後に、前記取得手段が取得した前記更新データに基づき該アプリケーションを更新する更新手段と、
してコンピュータを動作させ、
前記アプリケーションは、当該アプリケーションに対しての前記停止指示がなされると、当該アプリケーションの動作を正常に停止させると共に、前記中継手段を介しての当該アプリケーションへの送信を停止させる停止手段としてコンピュータを動作させること、
を特徴とする制御プログラム。 - 請求項1に記載の制御プログラムにおいて、
前記アプリケーションは、さらに、
当該アプリケーションに対しての前記停止指示がなされると、当該アプリケーションの動作状態を示す引継ぎデータをメモリに保存する保存手段と、
前記更新手段により当該アプリケーションが更新された後に、前記保存手段により保存された前記引継ぎデータを読み出し、該引継ぎデータに基づき、前記停止指示がなされた時点の前記動作状態を復元した後に当該アプリケーションの動作を再開させる再開手段と、
してコンピュータを動作させることを特徴とする制御プログラム。 - 請求項1または請求項2に記載の制御プログラムにおいて、
前記取得手段は、ネットワークを介して外部サーバから前記更新データを取得すること、
を特徴とする制御プログラム。 - 請求項1から請求項3のうちのいずれか1項に記載の制御プログラムにおいて、
当該制御プログラムは、書き換え可能な不揮発性の記憶媒体に記憶された状態でコンピュータを動作させるよう構成されていること、
を特徴とする制御プログラム。 - 請求項1から請求項4のうちのいずれか1項に記載の制御プログラムにおいて、
前記プラットフォームは、さらに、前記停止指示がなされた前記アプリケーションの動作が停止しない場合に、該アプリケーションの動作を停止させる強制停止手段としてコンピュータを動作させることを特徴とする制御プログラム。 - 1または複数のアプリケーションと、該アプリケーションを動作させるためのプラットフォームであって、
前記アプリケーションとの間の送受信を中継する中継手段と、
動作中の前記アプリケーションを更新する更新指示を受け付ける受付手段と、
前記アプリケーションを更新するための更新データを外部から取得する取得手段と、
前記受付手段が前記更新指示を受け付けると、該更新指示により更新される前記アプリケーションに対し、動作の正常な停止と、前記中継手段を介しての該アプリケーションへの送信の停止とを指示する停止指示を行う停止指示手段と、
前記停止指示により、前記アプリケーションの動作が正常に停止すると共に、前記中継手段を介しての該アプリケーションへの送信とが停止した後に、前記取得手段が取得した前記更新データに基づき該アプリケーションを更新する更新手段と、
してコンピュータを動作させることを特徴とするプラットフォーム。 - 当該部位を個別に更新するプラットフォーム上で動作し、該プラットフォームを介して他のソフトウェアモジュールとの間の通信を行う組み込みシステム用のアプリケーションであって、
前記プラットフォームが動作中の当該アプリケーションを個別に更新する際に、該プラットフォームからの停止指示に応じて、当該アプリケーションの動作を正常に停止させると共に、前記プラットフォームを介しての当該アプリケーションへの送信を停止させる停止手段としてコンピュータを動作させることを特徴とするアプリケーション。 - 1または複数のアプリケーションと、該アプリケーションを動作させるためのプラットフォームとを備える組み込みシステム用の制御プログラムにより動作するコンピュータを備える電子装置であって、
前記プラットフォームは、
前記アプリケーションとの間の送受信を中継する中継手段と、
動作中の前記アプリケーションを更新する更新指示を受け付ける受付手段と、
前記アプリケーションを更新するための更新データを外部から取得する取得手段と、
前記受付手段が前記更新指示を受け付けると、該更新指示により更新される前記アプリケーションに対し、動作の正常な停止と、前記中継手段を介しての該アプリケーションへの送信の停止とを指示する停止指示を行う停止指示手段と、
前記停止指示により、前記アプリケーションの動作が正常に停止すると共に、前記中継手段を介しての該アプリケーションへの送信とが停止した後に、前記取得手段が取得した前記更新データに基づき該アプリケーションを更新する更新手段と、
して前記コンピュータを動作させ、
前記アプリケーションは、当該アプリケーションに対しての前記停止指示がなされると、当該アプリケーションの動作を正常に停止させると共に、前記中継手段を介しての当該アプリケーションへの送信を停止させる停止手段として前記コンピュータを動作させること、
を特徴とする電子装置。 - 1または複数のアプリケーションと、該アプリケーションを動作させると共に、該アプリケーションとの間の送受信を中継するプラットフォームとを備える組み込みシステム用の制御プログラムにおける、該アプリケーションの更新方法であって、
前記プラットフォームにて、動作中の前記アプリケーションを更新する更新指示を受け付ける受付手順と、
前記プラットフォームにて、前記アプリケーションを更新するための更新データを外部から取得する取得手順と、
前記更新指示を受け付けると、前記プラットフォームから、該更新指示により更新される前記アプリケーションに対し、動作の正常な停止と、前記プラットフォームを介しての該アプリケーションへの送信の停止とを指示する停止指示を行う停止指示手順と、
前記停止指示がなされた前記アプリケーションにて、当該アプリケーションの動作を正常に停止させると共に、前記プラットフォームを介しての当該アプリケーションへの送信を停止させる停止手順と、
前記停止指示により、前記アプリケーションの動作が正常に停止すると共に、前記プラットフォームを介しての該アプリケーションへの送信とが停止した後に、前記プラットフォームが、前記更新データに基づき該アプリケーションを更新する更新手順と、
を有することを特徴とする更新方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011016852A JP2012155682A (ja) | 2011-01-28 | 2011-01-28 | 組み込みシステム用のプラットフォーム、アプリケーション、該プラットフォームと該アプリケーションを備える制御プログラム、電子装置、及び、アプリケーションの更新方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011016852A JP2012155682A (ja) | 2011-01-28 | 2011-01-28 | 組み込みシステム用のプラットフォーム、アプリケーション、該プラットフォームと該アプリケーションを備える制御プログラム、電子装置、及び、アプリケーションの更新方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2012155682A true JP2012155682A (ja) | 2012-08-16 |
Family
ID=46837312
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011016852A Pending JP2012155682A (ja) | 2011-01-28 | 2011-01-28 | 組み込みシステム用のプラットフォーム、アプリケーション、該プラットフォームと該アプリケーションを備える制御プログラム、電子装置、及び、アプリケーションの更新方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2012155682A (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014058210A (ja) * | 2012-09-18 | 2014-04-03 | Hitachi Automotive Systems Ltd | 車両制御装置および車両制御システム |
| WO2015065096A1 (ko) * | 2013-10-31 | 2015-05-07 | 주식회사 엘지화학 | 모듈 중계 장치 및 그 중계 방법 |
| US9405601B2 (en) | 2012-12-20 | 2016-08-02 | Mitsubishi Electric Corporation | In-vehicle apparatus and program |
| JP2016224771A (ja) * | 2015-06-01 | 2016-12-28 | 富士電機株式会社 | 情報処理装置及び情報処理方法 |
| JP2020027667A (ja) * | 2018-08-10 | 2020-02-20 | 株式会社デンソー | 車両用マスタ装置、車両用電子制御システム、アクティベート要求の指示方法及びアクティベート要求の指示プログラム |
| WO2021196863A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 汽车开放系统架构、状态管理方法和装置 |
| CN115118741A (zh) * | 2021-03-17 | 2022-09-27 | Aptiv技术有限公司 | 电子控制单元、包括电子控制单元的车辆和计算机实现方法 |
| JP2025150652A (ja) * | 2024-03-27 | 2025-10-09 | 本田技研工業株式会社 | 移動体制御装置、移動体制御方法、及びプログラム |
| US12504965B2 (en) | 2022-05-20 | 2025-12-23 | Denso Corporation | Update control device, update control method, and non-transitory computer readable storage medium |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0895773A (ja) * | 1994-09-27 | 1996-04-12 | Oki Electric Ind Co Ltd | プログラム動作制御方法及び装置 |
| JPH10312274A (ja) * | 1997-05-14 | 1998-11-24 | Fujitsu Ltd | ソフトウェアシステムの稼働中プログラム置換方法および装置 |
| JP2003122587A (ja) * | 2001-10-11 | 2003-04-25 | Sharp Corp | ソフトウェアアップデート機能を有するネットワーク機器及びソフトウェアアップデート処理プログラム並びにソフトウェアアップデート処理プログラムを記録した記録媒体 |
| JP2005292981A (ja) * | 2004-03-31 | 2005-10-20 | Advanced Telecommunication Research Institute International | メッセージ管理装置、データ処理システム及びそのためのコンピュータプログラム |
| JP2006146679A (ja) * | 2004-11-22 | 2006-06-08 | Hitachi Ltd | 情報処理装置の制御方法、情報処理装置、及びプログラム |
| JP2007094894A (ja) * | 2005-09-29 | 2007-04-12 | Mitsubishi Electric Corp | 産業用ソフトウェアのプログラム構造および計算機 |
| JP2007226437A (ja) * | 2006-02-22 | 2007-09-06 | Oki Electric Ind Co Ltd | 電子交換機のプログラム入替方法 |
| JP2010003047A (ja) * | 2008-06-19 | 2010-01-07 | Kyocera Mita Corp | 電子機器 |
-
2011
- 2011-01-28 JP JP2011016852A patent/JP2012155682A/ja active Pending
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0895773A (ja) * | 1994-09-27 | 1996-04-12 | Oki Electric Ind Co Ltd | プログラム動作制御方法及び装置 |
| JPH10312274A (ja) * | 1997-05-14 | 1998-11-24 | Fujitsu Ltd | ソフトウェアシステムの稼働中プログラム置換方法および装置 |
| JP2003122587A (ja) * | 2001-10-11 | 2003-04-25 | Sharp Corp | ソフトウェアアップデート機能を有するネットワーク機器及びソフトウェアアップデート処理プログラム並びにソフトウェアアップデート処理プログラムを記録した記録媒体 |
| JP2005292981A (ja) * | 2004-03-31 | 2005-10-20 | Advanced Telecommunication Research Institute International | メッセージ管理装置、データ処理システム及びそのためのコンピュータプログラム |
| JP2006146679A (ja) * | 2004-11-22 | 2006-06-08 | Hitachi Ltd | 情報処理装置の制御方法、情報処理装置、及びプログラム |
| JP2007094894A (ja) * | 2005-09-29 | 2007-04-12 | Mitsubishi Electric Corp | 産業用ソフトウェアのプログラム構造および計算機 |
| JP2007226437A (ja) * | 2006-02-22 | 2007-09-06 | Oki Electric Ind Co Ltd | 電子交換機のプログラム入替方法 |
| JP2010003047A (ja) * | 2008-06-19 | 2010-01-07 | Kyocera Mita Corp | 電子機器 |
Cited By (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014058210A (ja) * | 2012-09-18 | 2014-04-03 | Hitachi Automotive Systems Ltd | 車両制御装置および車両制御システム |
| US9405601B2 (en) | 2012-12-20 | 2016-08-02 | Mitsubishi Electric Corporation | In-vehicle apparatus and program |
| US10110696B2 (en) | 2013-10-31 | 2018-10-23 | Lg Chem, Ltd. | Module relay device and relay method therefor |
| CN105247473A (zh) * | 2013-10-31 | 2016-01-13 | 株式会社Lg化学 | 模块中继装置及其中继方法 |
| KR101748904B1 (ko) * | 2013-10-31 | 2017-06-20 | 주식회사 엘지화학 | 모듈 중계 장치 및 그 중계 방법 |
| WO2015065096A1 (ko) * | 2013-10-31 | 2015-05-07 | 주식회사 엘지화학 | 모듈 중계 장치 및 그 중계 방법 |
| CN105247473B (zh) * | 2013-10-31 | 2019-06-28 | 株式会社Lg化学 | 模块中继装置及其中继方法 |
| JP2016224771A (ja) * | 2015-06-01 | 2016-12-28 | 富士電機株式会社 | 情報処理装置及び情報処理方法 |
| JP2020027667A (ja) * | 2018-08-10 | 2020-02-20 | 株式会社デンソー | 車両用マスタ装置、車両用電子制御システム、アクティベート要求の指示方法及びアクティベート要求の指示プログラム |
| JP7354748B2 (ja) | 2018-08-10 | 2023-10-03 | 株式会社デンソー | 車両用マスタ装置、車両用電子制御システム、アクティベート要求の指示方法及びアクティベート要求の指示プログラム |
| WO2021196863A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 汽车开放系统架构、状态管理方法和装置 |
| CN115118741A (zh) * | 2021-03-17 | 2022-09-27 | Aptiv技术有限公司 | 电子控制单元、包括电子控制单元的车辆和计算机实现方法 |
| US12504965B2 (en) | 2022-05-20 | 2025-12-23 | Denso Corporation | Update control device, update control method, and non-transitory computer readable storage medium |
| JP2025150652A (ja) * | 2024-03-27 | 2025-10-09 | 本田技研工業株式会社 | 移動体制御装置、移動体制御方法、及びプログラム |
| JP7841014B2 (ja) | 2024-03-27 | 2026-04-06 | 本田技研工業株式会社 | 移動体制御装置、移動体制御方法、及びプログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2012155682A (ja) | 組み込みシステム用のプラットフォーム、アプリケーション、該プラットフォームと該アプリケーションを備える制御プログラム、電子装置、及び、アプリケーションの更新方法 | |
| CN111767115B (zh) | 车辆系统、车辆和用于运行这种车辆系统的方法 | |
| US10452404B2 (en) | Optimized UEFI reboot process | |
| US7827395B2 (en) | Update-startup apparatus and update-startup control method | |
| AU2011329330B2 (en) | Method of provisioning firmware in an operating system (OS) absent services environment | |
| US12443487B2 (en) | Quick start method | |
| US8782643B2 (en) | Device and method for controlling communication between BIOS and BMC | |
| KR20070108060A (ko) | 빠른 부팅 웨이크-업을 실행하는 시스템 | |
| JP2002268900A (ja) | 論理分割された(lpar)計算機でシステム・ファームウェア更新を安全に実行する機構 | |
| JP2018132957A (ja) | 制御装置および制御プログラム更新方法 | |
| CN115168869A (zh) | 基于多操作系统的车载系统及其控制方法 | |
| JP2002132741A (ja) | プロセッサ追加方法、計算機及び記録媒体 | |
| US20090228861A1 (en) | Method and System for Improved Tool Interaction with a Target | |
| US9235426B2 (en) | Multicore processor system, computer product, and notification method for updating operating system | |
| EP3798831B1 (en) | Resilient upgradable boot loader with power reset | |
| JP5307133B2 (ja) | デバイスエミュレーション支援装置、デバイスエミュレーション支援方法、デバイスエミュレーション支援回路及び情報処理装置 | |
| CN107391174B (zh) | 一种系统在线升级的控制方法及控制装置 | |
| US20160321057A1 (en) | Electronic apparatus | |
| CN100465893C (zh) | 一种嵌入式操作系统驱动程序动态升级方法 | |
| CN111090546A (zh) | 一种操作系统重启方法、装置、设备及可读存储介质 | |
| CN108563320B (zh) | 处理方法以及处理系统 | |
| CN114064128A (zh) | 内核重启方法 | |
| JP2003216449A (ja) | パッチ処理システム | |
| US12613689B2 (en) | Electronic control device, reprogram execution method, and non-transitory computer readable storage medium | |
| CN112015456A (zh) | 一种BootLoader程序更新方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130621 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140130 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140507 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140930 |