JP2018136730A - 自動車用電子制御装置 - Google Patents

自動車用電子制御装置 Download PDF

Info

Publication number
JP2018136730A
JP2018136730A JP2017030608A JP2017030608A JP2018136730A JP 2018136730 A JP2018136730 A JP 2018136730A JP 2017030608 A JP2017030608 A JP 2017030608A JP 2017030608 A JP2017030608 A JP 2017030608A JP 2018136730 A JP2018136730 A JP 2018136730A
Authority
JP
Japan
Prior art keywords
core
program
software
ram
cores
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
JP2017030608A
Other languages
English (en)
Other versions
JP6596455B2 (ja
Inventor
雄介 阿部
Yusuke Abe
雄介 阿部
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems 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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2017030608A priority Critical patent/JP6596455B2/ja
Publication of JP2018136730A publication Critical patent/JP2018136730A/ja
Application granted granted Critical
Publication of JP6596455B2 publication Critical patent/JP6596455B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】マルチコアマイコンを搭載する自動車用電子制御装置において、ソフトウェア書き換えを安全に行う。【解決手段】コードフラッシュ上のソフトウェア書き換えを行う際、ソフトウェア書き換えを行うコアからの指令により、コードフラッシュ上で実行されているソフトウェア書き換えを行うコア以外のコアを、各コア用のRAM上、または、コア共通RAM上のプログラムへ移行させる。【選択図】 図2

Description

本発明は、マルチコアマイコンを搭載する自動車用電子制御装置におけるソフトウェア書き換えに関する。
ECU(Electrical Control Unit)などの自動車電子制御装置は、マイコンにより制御されており、そのマイコンには電気的にプログラムやデータが消去および書き込みが可能な不揮発性メモリであるコードフラッシュ、データフラッシュと、揮発性メモリであるRAM(Random Access Memory)を搭載し、コードフラッシュに記憶されている制御プログラムによって車両装置(例えば、エンジンの噴射・点火)を制御する。
近年、自動車制御の高度化・多機能化により、複数のコアを有するマイコンがECUに搭載されてきており、各コアは、自身のコアに割り当てられたソフトウェア機能のタスクを並行して実行する。
一方で、ECUのソフトウェアに不具合が発生した場合に修正ソフトウェアにアップデートするために、あるいは、より効率的な制御ソフトウェアに入れ替えるために、ECUはソフトウェア書き換え機能を有することがある。通常のソフトウェア書き換えは、有線あるいは無線により接続された外部の書き込みツールと通信を行い、外部の書き込みツールからECUに更新ソフトウェアを転送しながら、ECUがマイコンのコードフラッシュに書き込みを行う。ソフトウェア書き換えを行うにあたり、コードフラッシュの書き換え前にコードフラッシュの消去が必要となる。(特許文献1)
特開2015−172974号公報
ところで、マルチコアマイコンが採用されているECUでソフトウェア書き換えを実施する場合、コアが消去しようとしている消去ブロックに属するコードフラッシュで動作すると、不当命令実行や資源アクセス違反などの例外・割り込みが発生してしまう。
マルチコアマイコンにおいて、ソフトウェア書き換え機能を担当するコアが、その他の異なる機能を実行しているコアがコードフラッシュのどの位置に存在しているかを知ることは困難であり、また、その他の異なる機能を実行しているコアのコードフラッシュ上の位置を知ることが可能な場合でも、その全てのコアが消去しようとしている消去ブロックとは別位置のコードフラッシュ上で動作している状況を作り出す必要があったり、同期をとり時間待ちが発生してしまったりするなど、その管理が難しいという問題があった。
本発明では上記問題に鑑みなされたものであり、マルチコアマイコンにおけるソフトウェア書き換え実施時に、全てのコアが消去しようとしている消去ブロック上で動作することが無い状況を容易に構成する自動車用電子制御装置を提供することを目的とする。
本発明では、自動車用電子制御装置のソフトウェア書き換えにおいて、ソフトウェア書き換えを実施するコアの指令のもとに、ソフトウェア書き換えを実施するコア以外のコアをRAM上にあるプログラムに移行させ、消去しようとしている消去ブロックで動作することが無い状況にする。
前記ソフトウェア書き換えを実施するコアの指令は、コア間の割り込み機能を利用し執り行い、前記RAM上にあるプログラムは、ソフトウェア書き換えを実施するコアの指令のもとに復帰するように構成した。
本発明によると、マルチコアマイコンにおけるソフトウェア書き換え、不当命令実行や資源アクセス違反などの例外・割り込みを発生させることなく実行することができる。
マルチコアマイコンの構成を示す図である。 コードフラッシュ内の消去ブロックの構成とコア1とコア2のプログラムカウンタの例を示す図である。 コードフラッシュ上のプログラムで動作していたコア2が、コア2用RAM上のプログラムに移行する例を説明した図である。 コードフラッシュ上のプログラムで動作していたコア2とコア3が、コア共通RAM上のプログラムに移行する例を説明した図である。 コードフラッシュ上のプログラムとRAM上のプログラムの例と、退避プログラムの動作を示すフローチャートである。
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
[第1実施例]
図1はn個のコアを持つマルチコアマイコンの構成を示す図である。マルチコアマイコンは、プログラムの演算処理を実施するコア1〜nと、各コア専用でアクセスすることのできるコア1〜n用の揮発性RAM11〜1nと、コア共通でアクセスすることができる不揮発性のメモリであるコードフラッシュ100と、コア共通でアクセスすることができる揮発性のRAMであるコア共通RAM200から構成される。各コアから相互に割り込みを発生させることができるコア間割り込み機能を備えている。
ソフトウェアの実行プログラムはコードフラッシュに配置され、各コアは、コードフラッシュ内のプログラムをそれぞれ実行する。
図2はコードフラッシュ内の消去ブロックの構成とコア1とコア2のプログラムカウンタの例を示す図である。図2に示すとおり、コードフラッシュは複数のm個の消去ブロック101〜10mから構成される。コードフラッシュのデータ書込みを行う際には、事前に消去状態である必要があり、コードフラッシュの消去は消去ブロック単位で行われる。
ソフトウェアの書き換えを行う際には、ソフトウェアの書き換えのセキュリティアクセス許可されたあとに、ソフトウェアの書き換え対象領域に対応する消去ブロックを消去し、外部より接続される書込みツールよりデータを書き込んでいく。
ここで、コードフラッシュ内の消去ブロックを消去する際に、消去しようとしている消去ブロックで動作するコアが存在すると、消去された状態のコードフラッシュをプログラムと誤って実行してしまい、不当命令実行や資源アクセス違反などの例外・割り込みが発生し、例外・割り込み処理が正しく行われないと、マイコンがリセット状態となってしまう。
言い換えると、ソフトウェア書き換えを途中で失敗することなく、安全に行うためには、消去ブロックを指し示すようなプログラムカウンタが無い状態にすることが好ましい。
図2には、コアを2つ搭載するマイコンのコードフラッシュ100と、コードフラッシュ上のコア1のプログラムが動作している先を示すコア1用プログラムカウンタ201と、コードフラッシュ上のコア2のプログラムが動作している先を示すコア2用プログラムカウンタ202の例も示している。
コア2用プログラムカウンタ202がコードフラッシュ100の消去ブロック104上で動作している際に、消去ブロック104の消去が実行された場合、コア2が実行するプログラムが不当命令実行や例外・割り込みを発生させてしまう。
ECUのソフトウェア書き換えの手段には、複数のコードフラッシュを備えるマイコンを採用し、複数あるコアのうちのいくつがソフトウェア書き換え機能として動作し、それ以外のコアは通常動作しているプログラムを実行する方式が存在する。ソフトウェア書き換えが完了後は、次回ECUの起動時に、新しく書込みが行われたコードフラッシュが選択されプログラムが実行される。この方式は主に無線によるECUのソフトウェア書き換えに利用される。
ここでは、ソフトウェア書き換えを実行する際に、通常実行されているモードから、ソフトウェア書き換えの為の専用モードへ移行し、通常動作しているプログラムは実行されていない方式を前提としている。この方式は、ソフトウェア書き換えの頻度が少ないシステムを対象にしたECUのソフトウェア書き換えに利用される。
図3は2つのコアを有するマイコンにおいて、ソフトウェア書き換えを行うコア1の指令により、コードフラッシュ上のプログラムで動作していたコア2が、コア2用RAM上のプログラムに移行する第1実施例の一例を示した図である。
まず、ソフトウェア書き換えを実行するコアからのコア間割り込みが発生した場合に、専用の処理が実行できるように、マイコンの起動時に各コアで個別に、割込みの許可設定を行う。前記専用処理は、コア2用RAMの退避プログラム領域312に移行するための処理を実施する。
具体的には、コードフラッシュ100で実行中のコア2用のプログラムカウンタ202を、コア2用RAMの退避プログラム領域312にある退避時に実行するプログラムが実行できるRAM上のプログラムカウンタ302にアドレスを変更する。
コア2用RAMの退避プログラム領域312に対し、ソフトウェア書き換えを実行するコア以外のコアであるコア2により、予め退避時に実行するプログラムを展開する。このコア2用RAMの退避プログラム領域312に退避時実行プログラムを展開するタイミングは、実際にソフトウェア書き換えが許可されてから実行してもよいし、マイコンの起動時に各コアで個別に行ってもよい。
かかる移行処理の第1実施例によれば、ソフトウェア書き換えを実行するコア以外のコアは、ソフトウェア書き換えを実行するコアからのコア間の割り込みが発生した場合に、各コア専用のRAMに展開されたプログラムに移行することできるように、コア間割り込みの設定と、コア専用RAMへのプログラムの展開を行う。
従って、ECUのソフトウェア書き換えを行う際に、消去される消去ブロックのコードフラッシュに実行されるコアが存在しない状況を作り出すことができ、ソフトウェア書き換え時の不当命令実行や資源アクセス違反などの例外・割り込みが発生することがなくなる。
要するに、ECUのソフトウェア書き換えの際に、マイコンのリセットがかかることがなく安全にソフトウェア書き換えを実施することができる。
[第2実施例]
図4は3つのコアを有するマイコンにおいて、ソフトウェア書き換えを行うコア1の指令により、コードフラッシュ上のプログラムで動作していたコア2とコア3が、コア共通RAM200上のプログラムに移行する第2実施例の一例を示した図である。
まず、ソフトウェア書き換えを実行するコアからのコア間割り込みが発生した場合に、専用の処理が実行できるように、マイコンの起動時に各コアで個別に、割込みの許可設定を行う。前記専用処理は、コア共用RAM200上の退避プログラム領域400に移行するための処理を実施する。
具体的には、コードフラッシュ100で実行中のコア2用のプログラムカウンタ202とコア3用のプログラムカウンタ203を、コア共用RAM200の退避プログラム領域400にある退避時に実行するプログラムが実行できるRAM上のプログラムカウンタ302、303にアドレスを変更する。
コア共用RAM200の退避プログラム領域400に対し、ソフトウェア書き換えを実行するコア1により、予め退避時に実行するプログラムを展開しておく。このコア共用RAM200の退避プログラム領域400に退避時実行プログラムを展開するタイミングは、実際にソフトウェア書き換えが許可されてから実行してもよいし、マイコンの起動時に行ってもよい。
かかる移行処理の第2実施例によれば、ソフトウェア書き換えを実行するコア以外のコアは、ソフトウェア書き換えを実行するコアからのコア間割り込みが発生した場合に、コア共通RAM200に展開されたプログラムに移行することができるように、コア間割り込みを設定し、ソフトウェア書き換えを実行するコアはコア共通RAM200へのプログラム展開を行う。
従って、第1の実施形態と同様に、ECUのソフトウェア書き換えを行う際に、消去される消去ブロックのコードフラッシュに実行されるコアが存在しない状況を作り出すことができ、ソフトウェア書き換え時の不当命令実行や資源アクセス違反などの例外・割り込みが発生することがなくなる。
第1の実施形態では、各コアで実行される退避プログラムの動作を異なるものにし、動作を変えることが可能である。一方で、第2の実施形態は、第1の実施形態と比べて、各コアが同一の退避プログラムを利用することができ、ソフトウェア書き換えを実施するコアが退避する際に実行させたいプログラムを選ぶことができたり、共通化されることによるRAM使用量の削減ができたりする効果が得られる。
[第3実施例]
図5は退避プログラム中にコードフラッシュのアクセスに影響しないような例外・割り込みを利用する第3実施例の一例を示した図である。本例では、コードフラッシュ上のプログラムとRAM上のプログラムの例と、退避プログラムの動作を示すフローチャートを示している。
コードフラッシュには、通常時に実行されるプログラム502と、通常時に実行されるプログラム502が動作中に例外・割り込みが発生した際に実行する例外・割り込み処理情報を提供している通常プログラム502用のベクターテーブル501が配置されている。
RAMには退避プログラム504と、退避時に実行される退避プログラム504が動作中に例外・割り込みが発生した際に実行する例外・割り込み処理情報を提供している退避プログラム503用のベクターテーブル503が配置されるように、第1の実施形態と第2の実施形態で挙げられた方法でRAMに展開する。
ソフトウェア書き換えを行うコアからの指令により、ソフトウェア書き換えを行うコア以外のコアであるコア2用のプログラムカウンタ202を、退避時に実行するプログラムが実行できるRAM上のプログラムカウンタ302に移行すると、退避処理の前処理S501が実行される。
前処理S501では、必要に応じて退避プログラムが実行される間の状態を設定する処理であり、例えば、ECUのソフトウェア書き換え中にコードフラッシュやRAMへのアクセスが発生しないようにDMAC(Direct Memory Access Controller)の退避プログラムで使用しない周辺機器の停止を行うこともできる。
退避終了条件判定S503にて退避終了条件が成立しない間は、退避中処理S502を繰り返し実施する。退避終了条件が成立した場合、復帰処理S504を実行し、退避プログラム504の実行を完了する。
退避終了条件判定S503は、コア共用RAM200や、コア共用のレジスタ(図示せず)を介して復帰情報をポーリング監視したり、復帰処理を実施するプログラムを退避プログラム用ベクターテーブル503にコア間割り込みを設定したりすることで判定が可能である。
かかる復帰処理の第3実施例によれば、退避プログラム用のベクターテーブルを、退避プログラムと同様に予めRAMへ展開して利用することで、コードフラッシュのアクセスに影響しないような例外・割り込みを利用することができ、退避終了条件が成立したときに復帰処理を実施することができる。第3実施例は第1実施例と第2実施例のどちらにも適用することができる。
ここで、前記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と共に記載する。
(イ)少なくとも2つのコアを有するマイコンを搭載する自動車用電子制御装置であって、あるコアが故障したと判定された際に、故障コア以外のコアからの指令により、故障コアを不揮発性メモリ上のプログラムで動作しているプログラムから、故障コア専用の揮発性メモリ上にあるプログラムへ移行することを特徴とする自動車用電子制御装置。
かかる技術的思想によれば、コア故障時のフェールセーフ処理とすることができる。
(ロ)少なくとも2つのコアを有するマイコンを搭載する自動車用電子制御装置であって、コアで共通してアクセスできる資源がどのタスクにも占有されていない資源に対してアクセスする際、資源へのアクセス優先度の高いタスクが実行されるコアがアクセスする際に、資源へのアクセス優先度の高いタスクが実行されるコアからの指令で、より低いアクセス優先度のタスクが実行されるコアを不揮発性メモリ上のプログラムで動作しているプログラムから、揮発性メモリ上にあるプログラムへ移行することを特徴とする自動車用電子制御装置。
かかる技術的思想によれば、複数のコアが同一資源を扱う場合のコアを跨いだ割込み禁止処理の効果を得ることができ、コアを跨いだセマフォ処理を構築することができる。
1〜n コア1〜n
11〜1n コア専用RAM
100 コードフラッシュ
200 コア共通RAM
101〜10m 消去ブロック
201 コア1用プログラムカウンタ
202 コア2用プログラムカウンタ
302 RAMに移行したコア2用プログラムカウンタ
312 コア2用RAMの退避プログラム領域
303 RAMに移行したコア3用プログラムカウンタ
400 コア共通RAMの退避プログラム領域
501 通常時実行プログラム用ベクターテーブル
502 通常時実行プログラム
503 退避時実行プログラム用ベクターテーブル
504 退避時実行プログラム

Claims (4)

  1. 複数のコア、前記複数のコアの実行プログラムが格納されている不揮発性メモリ、揮発性メモリ、を有するマルチコアマイコンを備え、
    前記複数のコアのうち、前記不揮発性メモリのプログラムによりソフトウェア書き換えを行うコアから指令を受けた他のコアは、揮発性メモリにあるプログラムへ移行することを特徴とする自動車用電子制御装置。
  2. 前記揮発性メモリは、ソフトウェア書き換えを行うコア以外のコアのみがアクセスすることができる揮発性メモリであることを特徴とする請求項1に記載の自動車用電子制御装置。
  3. 前記揮発性メモリは、コアが共通してアクセスすることができる共用の揮発性メモリであることを特徴とする請求項1に記載の自動車用電子制御装置。
  4. ソフトウェア書き換えを行うコアから、不揮発性メモリ上のプログラムで動作しているソフトウェア書き換えを行うコア以外へのコアへの指令の発行に、コア間割込みを使用することを特徴とする請求項1乃至3の何れかに記載の自動車用電子制御装置。
JP2017030608A 2017-02-22 2017-02-22 自動車用電子制御装置 Active JP6596455B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017030608A JP6596455B2 (ja) 2017-02-22 2017-02-22 自動車用電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017030608A JP6596455B2 (ja) 2017-02-22 2017-02-22 自動車用電子制御装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019176397A Division JP6762411B2 (ja) 2019-09-27 2019-09-27 自動車用電子制御装置

Publications (2)

Publication Number Publication Date
JP2018136730A true JP2018136730A (ja) 2018-08-30
JP6596455B2 JP6596455B2 (ja) 2019-10-23

Family

ID=63366881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017030608A Active JP6596455B2 (ja) 2017-02-22 2017-02-22 自動車用電子制御装置

Country Status (1)

Country Link
JP (1) JP6596455B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265923A (ja) * 2008-04-24 2009-11-12 Mitsubishi Electric Corp ソフトウェア書き換え装置及びソフトウェア書き換え方法及びソフトウェア書き換えプログラム
JP2013254263A (ja) * 2012-06-05 2013-12-19 Denso Corp 電子制御装置
JP2016151817A (ja) * 2015-02-16 2016-08-22 株式会社デンソー 電子制御装置およびメモリ書換方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265923A (ja) * 2008-04-24 2009-11-12 Mitsubishi Electric Corp ソフトウェア書き換え装置及びソフトウェア書き換え方法及びソフトウェア書き換えプログラム
JP2013254263A (ja) * 2012-06-05 2013-12-19 Denso Corp 電子制御装置
JP2016151817A (ja) * 2015-02-16 2016-08-22 株式会社デンソー 電子制御装置およびメモリ書換方法

Also Published As

Publication number Publication date
JP6596455B2 (ja) 2019-10-23

Similar Documents

Publication Publication Date Title
TWI684868B (zh) 記憶體控制器及其操作方法以及記憶體系統之控制方法
US10657039B2 (en) Control device for a motor vehicle
US20180203622A1 (en) Vehicular device
CN107710174B (zh) 存储器监视单元
US10229077B2 (en) Method for data transfer between real-time tasks using a DMA memory controller
CN107430564B (zh) 具有多个独立微控制器的微控制器装置
CN110908932B (zh) 数据处理装置及其数据保护方法
JP2009157542A (ja) 情報処理装置及びそのスタックポインタ更新方法
TWI625672B (zh) 可更新積體電路無線電
JP2005071303A (ja) プログラム起動装置
JP2013225208A (ja) 情報処理装置、情報処理方法、及びプログラム
JP5999216B2 (ja) データ処理装置
CN117234729B (zh) 动态内存保护方法、装置、计算机设备及存储介质
KR102485288B1 (ko) 차량용 제어기 및 그것의 운영체제 스케쥴링 방법
US9223697B2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
JP6596455B2 (ja) 自動車用電子制御装置
CN105138308A (zh) 一种更新寄存器的方法及装置
JP6762411B2 (ja) 自動車用電子制御装置
JP6998434B2 (ja) 自動車用電子制御装置
JP2017204083A (ja) メモリ保護システム
CN109147847B (zh) 半导体装置和闪存存储器控制方法
WO2019188177A1 (ja) 情報処理装置
CN107179980B (zh) 用于监视计算系统的方法和相应的计算系统
CN108369558B (zh) 用于运行微控制器的方法
JP7395011B2 (ja) フラッシュメモリ管理装置、及びフラッシュメモリ管理方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170224

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190826

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: 20190903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190930

R150 Certificate of patent or registration of utility model

Ref document number: 6596455

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350