JP4743182B2 - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP4743182B2 JP4743182B2 JP2007200839A JP2007200839A JP4743182B2 JP 4743182 B2 JP4743182 B2 JP 4743182B2 JP 2007200839 A JP2007200839 A JP 2007200839A JP 2007200839 A JP2007200839 A JP 2007200839A JP 4743182 B2 JP4743182 B2 JP 4743182B2
- Authority
- JP
- Japan
- Prior art keywords
- rewrite
- partial
- program
- memory
- rewriting
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 description 46
- 230000008569 process Effects 0.000 description 42
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Description
しかしながら、フィールドにおいて実際にECUが動作している場合は外部よりリセット制御を行う必要はないことから、リセットを行うための端子を余分に設けるのは冗長であり、コストの増大に繋がる。そこで、ECUについてはパワーオンリセットのみが作用するように構成するのが好ましい。
ところが、上記のような構成を想定すると、フラッシュメモリの書換えが途中で失敗すると書換えプログラムを起動する手段がなくなるため、フラッシュメモリの書換えを再度行うことができなくなってしまう。
CPUにより全書換えプログラムが実行されると、最初に第1メモリの全書換えチェック領域をクリアしてから当該メモリの全領域の書換えを行ない、最後に全書換えチェック領域に全書換え完了コードを書込む。また、CPUにより部分書換えプログラムが実行されると、最初に第1メモリの部分書換えチェック領域をクリアしてから当該メモリの書換えを開始ブロックから終了ブロックまで行ない、最後に部分書換えチェック領域に部分書換え完了コードを書込む。
また、前記データが全書換え完了コードに一致すれば続いてフラグ格納領域を参照し、許可が設定されていれば部分書換えチェック領域を読出し、そのデータが部分書換え完了コードに一致すればアプリケーションプログラムを実行し、前記データが部分書換え完了コードに一致しない場合は部分書換えプログラムを実行する。従って、第1メモリの一部だけを書換えている途中でその書換えが失敗した場合についても、全書換えの場合と同様の効果を得ることができる。
即ち、第1メモリの部分書き換えに関する情報は、少なくとも全書換えが1回完了した後に意味を成すので、部分書き換え情報を、全書換えチェック領域と共に最小書込み単位内のサイズで持たせれば、情報量を低減して有効に利用できる。その結果、判定プログラムの実行をより短時間内に完了することができる。
以下、本発明の第1実施例について図1乃至図5を参照して説明する。図5は、本発明のマイクロコンピュータ11の構成を示すブロック図である。マイコン11は、例えば、マイコン3と同様に車両制御用ECUを構成するもので、CPU12を中心として、ROM(第2メモリ)13,RAM14,フラッシュメモリ(第1メモリ)15,フラッシュコントローラ16,通信回路17などを備えており、これらはアドレスバス18及びデータバス19を介して接続されている。
そして、先頭ブロック0には、「全書換え」の完了を示す「FLASHステータス0(全書換えチェック領域)」と「ID領域2」とが配置され、終了ブロックnには「ID領域1」が配置されるようになっている。また、ブロック6は、一例として「部分書換え」が行われる場合の先頭ブロックに設定されており、「部分書換え」の完了を示す「FLASHステータス1(部分書換えチェック領域)」が配置されている。
これらの「ID領域」には、フラッシュメモリ15の書換えを許可するIDやパスワードなどが格納され、当該領域の先頭と末尾には、同一のIDステータス(IDコード)1,2が書き込まれる。また、部分書換えの許可/禁止を設定するためのフラグ格納領域と、部分書換えの開始ブロック番号,終了ブロック番号を格納する領域や、その他プログラムIDやパスワードなどが格納される。
図3に示す全書換え処理において、CPU12は、最初にブロック0の「FLASHステータス0」にデータ「0000…0000」を書き込んでクリアしてから、各ブロック0,…,6,…,n毎に、「消去」、「書込み」、「ベリファイ」を順次行ってゆく。そして、最後に「FLASHステータス0」にデータ「55AA…55AA」を書き込んで処理を終了する。
尚、ID領域2,1の「部分書換え」に関するデータは、後に「部分書換え」を行なうケースがあるか否かに応じて、この段階で許可/禁止の設定や、開始,終了ブロック番号の設定を書き込んでおくようにする。
即ち、図3に示すように、ID領域2,1の何れか一方について、正しく書き込みが行われない状態で全書換え処理が終了すると、そのIDステータスは「FFFF…FFFFF」となっており、正常なデータが書き込まれていない。しかし、他方のID領域には必ず正常なデータが書き込まれているので、何れか有効な方を選択するようにしている。
従って、このまま書換えを実行すると、フラッシュメモリ15に異常なデータが書き込まれるおそれがあることから、ユーザプログラム20に分岐する。そして、当該プログラム20に用意されているメモリチェックルーチンが正常であれば、そのチェックルーチンによりフラッシュメモリ15のチェックサムを計算する。その結果、異常が判定されればエラー処理を行う。この場合、フラッシュメモリ15に正常な書き込みを行うことは不能であるから、必要に応じて部品交換などの処置を行うようにする。
また、図4は、フラッシュメモリ15の部分書換え処理を示す。部分書換え処理については、前述したように、フィールドにおいてECU−マイコン11に電源が投入された状態のまま、ユーザプログラム20の一部を書換えてバージョンアップを行う場合を想定している。従って、マイコン11がユーザプログラム20を実行している状態で、書換え装置23を接続し、その書換え装置23が部分書換え指令を発行すると、ユーザプログラム20中においてその部分書換え指令を認識し、図4の部分書換え処理を実行する。また、フラッシュメモリ15のブロック0は、部分書換えの対象としないように予め決定されている。
そして、CPU12が判定プログラム22を実行し、FLASHステータス1のデータが書換え完了コードに一致する場合は、続いてフラグ格納領域を参照し、許可が設定されていればFLASHステータス1を読出す。その読み出しデータが部分書換え完了コードに一致しない場合は部分書換えプログラムを実行するので、フラッシュメモリ15の一部だけを書換えている途中でその書換えが失敗した場合について、全領域書換えの場合と同様の効果を得ることができる。例えば、フィールドにおいてユーザプログラム20の一部を書換えてバージョンアップを図る場合などに有効である。
図6乃至図9は本発明の第2実施例を示すものであり、第1実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。図6は、第1実施例の図2相当図である。第2実施例では、先頭ブロック0の冒頭16バイトに、「FLASHステータス0」と共に、部分書換えの許可/禁止を設定するためのフラグ格納領域と、部分書換えの開始ブロック番号,終了ブロック番号を格納する領域とが配置されている。そして、「ID領域2」,「ID領域1」は削除されている。また、終了ブロックnについては、第1実施例と異なり、格別な領域設定は行われていない。ブロック6は、第1実施例と同様に「部分書換え」が行われる場合の先頭ブロックに設定され、「FLASHステータス1」が配置されている。
<全書換え処理>
図7に示す全書換え処理において、部分書換え許可禁止フラグは「許可」=「01H」,部分書換え開始ブロック/終了ブロックは「0006H」に設定されている。CPU12は、最初にブロック0の「FLASHステータス0」にデータ「0000…0000」を書き込んでクリアすると共に、部分書換え許可禁止フラグ,部分書換え開始ブロック/終了ブロックの格納領域もゼロクリアする。そして、第1実施例と同様に、各ブロック0,…,6,…,n毎に、「消去」、「書込み」、「ベリファイ」を順次行ってゆく。そして、最後に「FLASHステータス0」にデータ「55AA…55AA」を書き込むと共に、部分書換え許可禁止フラグを「01H」に、部分書換え開始ブロック/終了ブロックに「0006H」を書き込んで処理を終了する。すなわち、「FLASHステータス0,1」に関しては、データ値の変化は第1実施例と全く同様である。
また、図8は、フラッシュメモリ15の部分書換え処理を示す。部分書換え処理についても、「FLASHステータス1」に関するデータ値の変化は第1実施例と全く同様である。そして、「FLASHステータス0」,部分書換え許可禁止フラグの状態、並びに部分書換え開始ブロック/終了ブロックの値は初期値のまま変化しない。
図9は、図1相当のフラッシュステータス判定処理であり、ステップS1,S3,S4のみとなっている。すなわち、第2実施例ではIDステータスが正常コードであるか否かをチェックしないため、判定処理が簡単になっている。
これに対して、第2実施例によれば、フラッシュメモリ15について第1実施例のようにIDコードをチェックしないので、判定プログラムの実行をより短時間内に完了することができる。
図10及び図11は本発明の第3実施例を示すものであり、第2実施例と異なる部分のみ説明する。第3実施例は、部分書換えを行うブロックが複数ある場合に対応した処理を示す。図10に示すように、部分書換えを行うブロックが「6,11」の2ブロックであるとする。この場合、ブロック0のFLASHステータス0には、第2実施例と同様にブロック6の部分書換え(1)を行うための情報が配置され、ブロック6のFLASHステータス1には、ブロック11の部分書換え(2)を行うための情報,すなわち、部分書換え(2)の許可/禁止を設定するためのフラグ格納領域と、部分書換えの開始ブロック番号,終了ブロック番号を格納する領域とが計16バイトで配置されている。
図11は、図9相当図であり、図9におけるステップS3,S4が、部分書換え(1)に対応するステップS3’,S4’となっている。続いて、部分書換え(2)に対応する判断ステップが、ステップS11,S12として配置されている。
ブロックnに、ブロック0と同じID領域を設け、ステップS5,S6で二重にチェックする処理は、必要に応じて行えば良い。また、ブロック0におけるIDコードのチェックも、必要に応じて行えば良い。
FLASHステータス0,1やID領域2,1をフラッシュメモリ15のどこに配置するかは、適宜変更して実施しても良い。
書換え完了コードやIDコードのデータ値についても、適宜変更して実施可能である。
ブロック0を、部分書き換えの対象としても良い。
フラッシュメモリ15のブロック容量は、64Kバイトに限らない。
第1メモリは、ブロック単位で書換えを行うものに限ることはない。また、書き換えを行なう際に、「ベリファイ」処理はメモリの仕様に応じて実施すれば良い。
更に、ステップS2におけるチェックも必要に応じて行えば良い。
部分書換え処理についても、仕様上必要とされる場合に実施すれば良い。
書換えデータ24は、RAM14に一括転送される場合に限らず、書換え装置23より順次送信されるデータを受信しながら書換えを行っても良い。
最小書き込み単位は、16バイトに限ることはなく、マイクロコンピュータの個別の仕様に応じて適宜変更すれば良い。
フラッシュコントローラ16も、必要に応じて設ければ良く、CPU12が直接フラッシュメモリ15に書き込みを行っても良い。
第2,第3実施例における「FLASHステータス0,1」等と、部分書換えに関する情報との合計サイズは、最小書き込み単位より小さくても良い。
車両制御用のECUを構成するマイクロコンピュータに限ることなく、書換え可能な不揮発性メモリを備えているマイクロコンピュータであれば適用可能である。
Claims (4)
- アプリケーションプログラムが記憶されている書換え可能な不揮発性の第1メモリと、この第1メモリの全書換えを行なうための全書換えプログラム,前記第1メモリの部分書換えを行なうための部分書換えプログラム,及び前記第1メモリの書換え判定を行うための判定プログラムが記憶されている第2メモリと、前記各プログラムを読み出して実行するCPUとを備えてなるマイクロコンピュータにおいて、
前記第1メモリは、複数の一定容量のブロックからなり、前記各ブロックは複数の最小書き込み単位からなり、
前記全書換えプログラム及び前記部分書換えプログラムは、前記ブロックを単位として全書換え及び前記部分書換えを行い、
前記第1メモリの先頭に位置するブロック内の先頭の最小書き込み単位に、全書換えチェック領域を配置すると共に、前記部分書換えの許可/禁止設定を行うフラグの格納領域と、前記部分書換えの開始ブロックの番号及び終了ブロックの番号を書き込む領域とを配置し、
前記第1メモリの前記部分書換えの対象となる先頭のブロック内の先頭の最小書き込み単位に、部分書換えチェック領域を配置し、
前記CPUにより前記全書換えプログラムが実行されると、最初に前記第1メモリの前記全書換えチェック領域をクリアしてから当該メモリの全領域の書換えを行ない、最後に前記全書換えチェック領域に全書換え完了コードを書込み、
前記CPUにより前記部分書換えプログラムが実行されると、最初に前記第1メモリの前記部分書換えチェック領域をクリアしてから当該メモリの書換えを前記開始ブロックから前記終了ブロックまで行ない、最後に前記部分書換えチェック領域に部分書換え完了コードを書込み、
前記CPUにより前記判定プログラムが実行されると、最初に前記第1メモリの前記全書換えチェック領域を読出し、読み出されたデータが前記全書換え完了コードに一致しない場合は前記全書換えプログラムを実行し、前記データが前記全書換え完了コードに一致する場合は、続いて前記部分書換えの許可/禁止設定を行うフラグの格納領域を参照し、前記許可が設定されていれば前記部分書換えチェック領域を読出し、読み出されたデータが前記部分書換え完了コードに一致する場合は前記アプリケーションプログラムを実行し、前記データが前記部分書換え完了コードに一致しない場合は前記部分書換えプログラムを実行することを特徴とするマイクロコンピュータ。 - 前記部分書換えチェック領域には、その次に部分書き換えを行なう対象とする領域について、前記部分書換えの許可/禁止設定を行うフラグの格納領域と、前記開始ブロック及び終了ブロックの番号を書き込む領域とが前記最小書込み単位内のサイズで設定されており、
前記部分書換えチェック領域を1つ以上備えることを特徴とする請求項1記載のマイクロコンピュータ。 - 前記CPUは、前記判定プログラムを、リセット時に実行することを特徴とする請求項1又は2記載のマイクロコンピュータ。
- 前記CPUは、前記判定プログラムを、低消費電力モードが解除された時点に実行することを特徴とする請求項1乃至3の何れかに記載のマイクロコンピュータ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007200839A JP4743182B2 (ja) | 2006-12-07 | 2007-08-01 | マイクロコンピュータ |
US12/000,001 US7934050B2 (en) | 2006-12-07 | 2007-12-06 | Microcomputer for flash memory rewriting |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006330799 | 2006-12-07 | ||
JP2006330799 | 2006-12-07 | ||
JP2007200839A JP4743182B2 (ja) | 2006-12-07 | 2007-08-01 | マイクロコンピュータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008165729A JP2008165729A (ja) | 2008-07-17 |
JP4743182B2 true JP4743182B2 (ja) | 2011-08-10 |
Family
ID=39695088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007200839A Expired - Fee Related JP4743182B2 (ja) | 2006-12-07 | 2007-08-01 | マイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4743182B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013021423A1 (ja) * | 2011-08-10 | 2013-02-14 | トヨタ自動車株式会社 | リプログラミングシステム及びリプログラミング方法 |
JP5920243B2 (ja) * | 2013-02-26 | 2016-05-18 | 株式会社デンソー | 制御システム |
JP6217664B2 (ja) * | 2015-02-10 | 2017-10-25 | トヨタ自動車株式会社 | マイコン装置 |
JP6528700B2 (ja) | 2016-02-17 | 2019-06-12 | 株式会社デンソー | 車載制御装置、及び車載制御装置を含む車載ネットワーク |
US10877700B1 (en) * | 2019-08-16 | 2020-12-29 | Silicon Motion, Inc. | Flash memory controller and method capable of efficiently reporting debug information to host device |
WO2023127516A1 (ja) * | 2021-12-27 | 2023-07-06 | ソニーグループ株式会社 | 置換装置、情報処理方法および情報処理装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000105694A (ja) * | 1998-09-28 | 2000-04-11 | Nec Ic Microcomput Syst Ltd | フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法 |
JP2003015929A (ja) * | 2001-06-28 | 2003-01-17 | Matsushita Electric Ind Co Ltd | 不揮発性メモリの制御方法 |
JP2004102893A (ja) * | 2002-09-12 | 2004-04-02 | Matsushita Electric Ind Co Ltd | リモートダウンローダ及びリモートダウンロード方法 |
JP2005321843A (ja) * | 2004-05-06 | 2005-11-17 | Hitachi Ltd | ファームウェアの書換え方法 |
JP2006268176A (ja) * | 2005-03-22 | 2006-10-05 | Denso Corp | フラッシュeepromのデータ正否判定方法 |
-
2007
- 2007-08-01 JP JP2007200839A patent/JP4743182B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000105694A (ja) * | 1998-09-28 | 2000-04-11 | Nec Ic Microcomput Syst Ltd | フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法 |
JP2003015929A (ja) * | 2001-06-28 | 2003-01-17 | Matsushita Electric Ind Co Ltd | 不揮発性メモリの制御方法 |
JP2004102893A (ja) * | 2002-09-12 | 2004-04-02 | Matsushita Electric Ind Co Ltd | リモートダウンローダ及びリモートダウンロード方法 |
JP2005321843A (ja) * | 2004-05-06 | 2005-11-17 | Hitachi Ltd | ファームウェアの書換え方法 |
JP2006268176A (ja) * | 2005-03-22 | 2006-10-05 | Denso Corp | フラッシュeepromのデータ正否判定方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2008165729A (ja) | 2008-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10509568B2 (en) | Efficient secure boot carried out in information processing apparatus | |
US7197613B2 (en) | Nonvolatile memory | |
EP2638466B1 (en) | Software updating process for an embedded device | |
JP4743182B2 (ja) | マイクロコンピュータ | |
JP4534498B2 (ja) | 半導体装置およびその起動処理方法 | |
US6587916B2 (en) | Microcomputer with built-in programmable nonvolatile memory | |
JP4227149B2 (ja) | 電子制御装置の情報記憶方法 | |
JP2990181B1 (ja) | フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法 | |
JP7022809B2 (ja) | コンピュータシステム、および、その安全管理方法、および、コンピュータソフトウェア製品 | |
JP5576557B2 (ja) | プロセッサシステム及びその制御方法 | |
CN107015878B (zh) | 用于计算机的系统修复方法及系统 | |
US7934050B2 (en) | Microcomputer for flash memory rewriting | |
JP7091486B2 (ja) | 電子制御装置、電子制御装置のセキュリティ検証方法 | |
US7836219B1 (en) | System and method for authentication of embedded RAID on a host RAID card | |
US20100185927A1 (en) | Microprocessor System for Controlling at Least Partly Safety-Critical Processes | |
JP6622360B2 (ja) | 情報処理装置 | |
JP6708596B2 (ja) | 電子制御装置及び制御プログラム検証方法 | |
JPH11265283A (ja) | 記憶装置におけるファームウェアの修正方法及び記憶装置 | |
TWI768316B (zh) | 記憶體裝置以及安全開機的記憶體管理方法 | |
TWI726436B (zh) | 電腦基本輸入輸出系統bios修復方法及實施該修復方法之電腦系統 | |
TWI446351B (zh) | 資料寫入方法與電腦系統 | |
JP2001331382A (ja) | 不揮発性メモリの管理方法および管理装置 | |
JP4131147B2 (ja) | プリンタにおけるフラッシュメモリの判定方法、この方法をコンピュータに実行させるプログラム、このプログラムを記録した記録媒体、フラッシュメモリを備えるプリンタ | |
CN113495808A (zh) | 存储器装置以及安全开机的存储器管理方法 | |
CN117348910A (zh) | 一种智能座舱MCU的BootLoader升级方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090707 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100330 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100510 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110322 |
|
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: 20110412 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110425 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140520 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4743182 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140520 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |