JP2015115073A - 電子制御装置のメモリ内のソフトウェアを変更する方法 - Google Patents
電子制御装置のメモリ内のソフトウェアを変更する方法 Download PDFInfo
- Publication number
- JP2015115073A JP2015115073A JP2014249263A JP2014249263A JP2015115073A JP 2015115073 A JP2015115073 A JP 2015115073A JP 2014249263 A JP2014249263 A JP 2014249263A JP 2014249263 A JP2014249263 A JP 2014249263A JP 2015115073 A JP2015115073 A JP 2015115073A
- Authority
- JP
- Japan
- Prior art keywords
- routine
- memory
- bypass
- bypass routine
- service function
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000006870 function Effects 0.000 claims abstract description 167
- 230000008569 process Effects 0.000 claims abstract description 27
- 230000003936 working memory Effects 0.000 claims description 29
- 239000007787 solid Substances 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 15
- 230000000977 initiatory effect Effects 0.000 claims 3
- 230000000415 inactivating effect Effects 0.000 claims 1
- 230000008672 reprogramming Effects 0.000 abstract 1
- 238000011161 development Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 241000271897 Viperidae Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】バイパスルーチンは、制御装置のインタフェースに接続されたコンピュータにより、固体メモリの外部に存在するメモリ領域へ伝送され、バイパスルーチンを開始するアドレスがサービス機能に引き渡される。第1のステップで、サービス機能によるバイパスルーチンの呼び出しを不活性化し、第2のステップで、プロセッサがバイパスルーチンを処理しない時間において、バイパスルーチンを新たなバイパスルーチンによって置換し、第3のステップで、サービス機能による新たなバイパスルーチンの呼び出しを作動し、各ステップはプロセッサがソフトウェアを処理するランタイムで実行される。
【選択図】図4
Description
Claims (9)
- 電子制御装置(ECU)のメモリ内のソフトウェアを変更する方法であって、
前記メモリは、少なくとも1つの固体メモリ(SP1)と、揮発性のデータを記憶する少なくとも1つの作業メモリ(RAM)とを含み、
前記固体メモリは、前記ソフトウェアの少なくとも一部を形成する複数のオリジナルプログラムルーチンを内部に記憶しており、該複数のオリジナルプログラムルーチンは前記制御装置の少なくとも1つのプロセッサによって処理されるものであり、
前記制御装置には、少なくとも1つの前記オリジナルプログラムルーチンに加えて又はこれに代えて処理されるバイパスルーチンが格納されており、
当該バイパスルーチンの処理は、前記プロセッサによるプログラムステップの処理フローにおいて前記オリジナルプログラムルーチンが少なくとも終了する前にサービス機能(Z)の呼び出しを行い、前記サービス機能に付加的にバイパスルーチンのメモリアドレスを引き渡し、メモリアドレスの引き渡しが成功した場合に、前記サービス機能が対応するバイパスルーチンを呼び出し、メモリアドレスの引き渡しが成功しなかった場合には、バイパスルーチンの呼び出し無しで前記サービス機能を終了するように行われ、
前記バイパスルーチンは、特に前記制御装置のインタフェースを介して、前記インタフェースに接続されたコンピュータにより、前記固体メモリ(SP1)の外部に存在するメモリ領域へ、特に揮発性の前記作業メモリ(RAM)へ伝送され、
前記バイパスルーチンを開始するアドレスが、前記サービス機能に引き渡される、
方法において、
第1のステップで、前記サービス機能による前記バイパスルーチンの呼び出しを不活性化し、
第2のステップで、前記プロセッサが前記バイパスルーチンを処理しない時間において、前記バイパスルーチンを新たなバイパスルーチンによって置換し、
第3のステップで、前記サービス機能による前記新たなバイパスルーチンの呼び出しを作動し、
前記第1のステップ及び前記第2のステップ及び前記第3のステップを、前記プロセッサが前記ソフトウェアを処理するランタイムで実行する、
ことを特徴とする方法。 - 前記サービス機能への前記バイパスルーチンのメモリアドレスの引き渡しは、記憶されているテーブル(AD)内の所定の位置を指示するポインタを前記サービス機能(Z)に引き渡し、前記テーブル(AD)内の前記所定の位置にエントリが存在する場合、当該エントリによって形成されるアドレスのバイパスルーチンを呼び出し、前記テーブル(AD)内の前記所定の位置にエントリが存在しない場合もしくは当該エントリが妥当でないことが標示されている場合、バイパスルーチンの呼び出し無しで前記サービス機能(Z)を終了するように行われる、
請求項1記載の方法。 - 前記バイパスルーチンの記憶は、前記プロセッサが前記ソフトウェアを処理するランタイムで実行される、
請求項1記載の方法。 - 既存のバイパスルーチンを新たなバイパスルーチンによって置換する前に、前記ポインタによって定められた前記テーブル(AD)内の位置の既存のエントリが消去されるか又は妥当でないものとして標示される、
請求項2又は3記載の方法。 - バイパスルーチン、特に全てのバイパスルーチンにそれぞれステータスレジスタが割り当てられ、各ステータスレジスタは、割り当てられたバイパスルーチンが実行される場合に第1の値へセットされ、それ以外の場合に第2の値へセットされるか又は消去され、
前記置換は、前記テーブル(AD)内の既存のエントリが消去されるか又は妥当でないものとして標示され、かつ、置換されるべきバイパスルーチンのステータスレジスタが第2の値にセットされたか又は消去された場合にのみ行われる、
請求項4記載の方法。 - カウンタにより、所定の時点でバイパスルーチン、特に置換されるべきバイパスルーチンを処理するプロセスの数が監視され、
有利には、特にサービス機能(Z)によってバイパスルーチンが呼び出されるたびに前記カウンタが増分され、バイパスルーチンが終了される際に前記カウンタが減分され、さらに、テーブル内の既存のエントリが消去されるか又は妥当でないものとして標示され、かつ、前記カウンタが基本値、有利にはゼロとなっている場合にのみ、置換が行われる、
請求項4記載の方法。 - ソフトウェア及び/又はハードウェア、特に制御装置により、前記テーブルのエントリが消去され、前記カウンタ又は前記レジスタへの問合せが行われ、カウンタ状態又はレジスタ状態に応じて前記テーブルへの新たなエントリが行われる、
請求項4又は5記載の方法。 - 固体メモリ(SP1)内でプログラムルーチンに対しては本来設けられていないサービス機能呼び出しを構成するために、前記制御装置のオーバレイメモリが利用され、
該オーバレイメモリの少なくとも1つのメモリアドレスが、割り当て情報により、前記固体メモリ内で置換されるべきプログラムルーチンのプログラムルーチン命令のメモリアドレスに割り当てられ、
これにより、前記プロセッサが、
・前記固体メモリ内の前記アドレスの前記プログラムルーチン命令に代えて、前記オーバレイメモリ内の対応するアドレスの命令を処理し、
・前記オーバレイメモリ内の前記対応するアドレスに、揮発性もしくは不揮発性の作業メモリ(RAM)内の所定のアドレス以降のプログラム処理を続行するように前記プロセッサをトリガするジャンプ命令を記憶させ、なお、前記所定のアドレスは前記ジャンプ命令によって識別され、
・前記所定のアドレス以降の前記作業メモリのメモリ領域に、少なくとも、サービス機能呼び出し、及び、プログラムルーチン命令の再構成、及び、オリジナルプログラムルーチンに戻る旨のジャンプ命令を記憶させる、
請求項1から7までのいずれか1項記載の方法。 - 電子制御装置(ECU)のメモリ内のソフトウェアを変更する方法であって、
前記メモリは、少なくとも1つの固体メモリ(SP1)と、揮発性のデータを記憶する少なくとも1つの作業メモリ(RAM)とを含み、
前記固体メモリは、前記ソフトウェアの少なくとも一部を形成する複数のオリジナルプログラムルーチンを内部に記憶しており、該複数のオリジナルプログラムルーチンは前記制御装置(ECU)の少なくとも1つのプロセッサによって処理されるものであり、
前記制御装置には、少なくとも1つの前記オリジナルプログラムルーチンに加えて又はこれに代えて処理される第1のバイパスルーチンが格納されており、
当該第1のバイパスルーチンの処理は、前記プロセッサによるプログラムステップの処理フローにおいて前記オリジナルプログラムルーチンが少なくとも終了する前にサービス機能の呼び出しを行い、前記サービス機能に付加的にバイパスルーチンのメモリアドレスを引き渡し、メモリアドレスの引き渡しが成功した場合、前記サービス機能が対応するバイパスルーチンを呼び出し、メモリアドレスの引き渡しが成功しなかった場合には、バイパスルーチンの呼び出し無しで前記サービス機能を終了するように行われ、
前記第1のバイパスルーチンは、特に前記制御装置のインタフェースを介して、前記インタフェースに接続されたコンピュータにより、前記固体メモリ(SP1)の外部に存在するメモリ領域へ、特に揮発性の前記作業メモリ(RAM)へ伝送され、
前記第1のバイパスルーチンを開始するアドレスが前記サービス機能に引き渡される、
方法において、
前記プロセッサが前記ソフトウェアを処理するランタイムで、前記第1のバイパスルーチンに加えて、第2のバイパスルーチンが、前記固体メモリ(SP1)の外部に存在するメモリ領域へ、特に揮発性の前記作業メモリ(RAM)へ伝送され、
前記第2のバイパスルーチンを開始するアドレスが前記サービス機能に引き渡される、
ことを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13196209.4 | 2013-12-09 | ||
EP13196209.4A EP2881858B1 (de) | 2013-12-09 | 2013-12-09 | Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015115073A true JP2015115073A (ja) | 2015-06-22 |
JP6257506B2 JP6257506B2 (ja) | 2018-01-10 |
Family
ID=49724514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014249263A Expired - Fee Related JP6257506B2 (ja) | 2013-12-09 | 2014-12-09 | 電子制御装置のメモリ内のソフトウェアを変更する方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150160940A1 (ja) |
EP (1) | EP2881858B1 (ja) |
JP (1) | JP6257506B2 (ja) |
CN (1) | CN104699453B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139723A (zh) | 2015-11-19 | 2018-06-08 | 帝斯贝思数字信号处理和控制工程有限公司 | 用于运行控制器的方法以及设置用于外部旁路的控制器 |
US10528479B2 (en) * | 2017-06-02 | 2020-01-07 | Huawei Technologies Co., Ltd. | Global variable migration via virtual memory overlay technique for multi-version asynchronous dynamic software update |
EP3590037A4 (en) | 2017-07-25 | 2020-07-08 | Aurora Labs Ltd | CONSTRUCTION OF DELTA SOFTWARE UPDATES FOR VEHICLE ECU SOFTWARE AND TOOL CHAIN DETECTION |
US10503485B2 (en) | 2017-11-30 | 2019-12-10 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method and system for generating program code |
CN107894899B (zh) * | 2017-12-06 | 2021-04-06 | 北京联盛德微电子有限责任公司 | Rom程序升级系统及升级方法 |
EP3908947A1 (en) * | 2019-03-25 | 2021-11-17 | Aurora Labs Ltd | Generating and signing a line-of-code behavior and relation model |
CN113574839B (zh) * | 2020-02-28 | 2024-04-09 | 华为技术有限公司 | 一种软件版本回滚方法、装置及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6116302A (ja) * | 1984-05-25 | 1986-01-24 | ロ−ベルト・ボツシユ・ゲゼルシヤフト・ミツト・ベシユレンクテル・ハフツング | 自動車の機能制御装置 |
JPH07152551A (ja) * | 1993-11-30 | 1995-06-16 | Toshiba Corp | コンピュータシステムおよびプログラム実行方法 |
JPH0895771A (ja) * | 1994-09-21 | 1996-04-12 | N T T Data Tsushin Kk | サ−ビス処理システム |
JPH08137514A (ja) * | 1994-11-15 | 1996-05-31 | Nippondenso Co Ltd | エンジン制御装置 |
US6260157B1 (en) * | 1999-02-16 | 2001-07-10 | Kurt Schurecht | Patching of a read only memory |
JP2008102761A (ja) * | 2006-10-19 | 2008-05-01 | Mitsubishi Electric Corp | 組み込みファームウェアの更新方法 |
US20080148250A1 (en) * | 2005-10-28 | 2008-06-19 | Giovanni Motta | Update package generation employing matching technique with controlled number of mismatches |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1327851C (en) * | 1988-06-22 | 1994-03-15 | Amy S. Christopher | Reconfigurable printer |
DE69738646T2 (de) * | 1996-08-28 | 2008-11-13 | Hitachi, Ltd. | Verfahren zur Ausführung eines Prozesses und Betriebsmittelzugriffsverfahren in einem Computer-System |
US6009512A (en) * | 1997-10-27 | 1999-12-28 | Advanced Micro Devices, Inc. | Mechanism for forwarding operands based on predicated instructions |
US6314566B1 (en) * | 1998-09-29 | 2001-11-06 | Apple Computer, Inc. | Method and apparatus for “Just-in-Time” dynamic loading and unloading of computer software libraries |
US20020073398A1 (en) * | 1998-12-14 | 2002-06-13 | Jeffrey L. Tinker | Method and system for modifying executable code to add additional functionality |
US6438664B1 (en) * | 1999-10-27 | 2002-08-20 | Advanced Micro Devices, Inc. | Microcode patch device and method for patching microcode using match registers and patch routines |
US7784044B2 (en) * | 2002-12-02 | 2010-08-24 | Microsoft Corporation | Patching of in-use functions on a running computer system |
US6891765B2 (en) * | 2003-08-05 | 2005-05-10 | Via Telecom, Inc. | Circuit and/or method for implementing a patch mechanism for embedded program ROM |
DE10352172A1 (de) * | 2003-11-05 | 2005-06-09 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen |
US7415705B2 (en) * | 2004-01-14 | 2008-08-19 | International Business Machines Corporation | Autonomic method and apparatus for hardware assist for patching code |
US9292274B2 (en) * | 2004-08-31 | 2016-03-22 | Smith Micro Software, Inc. | Efficient method and system for reducing the time to apply update package |
US7343599B2 (en) * | 2005-01-03 | 2008-03-11 | Blue Lane Technologies Inc. | Network-based patching machine |
US7984432B2 (en) * | 2006-05-30 | 2011-07-19 | Infineon Technologies Ag | Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts |
US7882336B2 (en) * | 2007-02-01 | 2011-02-01 | International Business Machines Corporation | Employing a buffer to facilitate instruction execution |
US20090259999A1 (en) * | 2008-04-11 | 2009-10-15 | Oracle International Corporation | Method and system for applying a patch during application execution |
US20120047322A1 (en) * | 2010-08-20 | 2012-02-23 | Chung Shine C | Method and System of Using One-Time Programmable Memory as Multi-Time Programmable in Code Memory of Processors |
US20120265946A1 (en) * | 2011-04-12 | 2012-10-18 | Appsense, Limited | Bypassing user mode redirection |
-
2013
- 2013-12-09 EP EP13196209.4A patent/EP2881858B1/de active Active
-
2014
- 2014-11-27 CN CN201410699555.XA patent/CN104699453B/zh active Active
- 2014-12-09 JP JP2014249263A patent/JP6257506B2/ja not_active Expired - Fee Related
- 2014-12-09 US US14/564,742 patent/US20150160940A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6116302A (ja) * | 1984-05-25 | 1986-01-24 | ロ−ベルト・ボツシユ・ゲゼルシヤフト・ミツト・ベシユレンクテル・ハフツング | 自動車の機能制御装置 |
JPH07152551A (ja) * | 1993-11-30 | 1995-06-16 | Toshiba Corp | コンピュータシステムおよびプログラム実行方法 |
JPH0895771A (ja) * | 1994-09-21 | 1996-04-12 | N T T Data Tsushin Kk | サ−ビス処理システム |
JPH08137514A (ja) * | 1994-11-15 | 1996-05-31 | Nippondenso Co Ltd | エンジン制御装置 |
US6260157B1 (en) * | 1999-02-16 | 2001-07-10 | Kurt Schurecht | Patching of a read only memory |
US20080148250A1 (en) * | 2005-10-28 | 2008-06-19 | Giovanni Motta | Update package generation employing matching technique with controlled number of mismatches |
JP2008102761A (ja) * | 2006-10-19 | 2008-05-01 | Mitsubishi Electric Corp | 組み込みファームウェアの更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104699453A (zh) | 2015-06-10 |
US20150160940A1 (en) | 2015-06-11 |
EP2881858A1 (de) | 2015-06-10 |
CN104699453B (zh) | 2018-07-13 |
EP2881858B1 (de) | 2016-04-06 |
JP6257506B2 (ja) | 2018-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6257506B2 (ja) | 電子制御装置のメモリ内のソフトウェアを変更する方法 | |
JP4006337B2 (ja) | 共有ライブラリを使用して実行可能ファイルの実行を修正する方法 | |
US9678867B2 (en) | Method for changing the software in the memory of an electronic control unit | |
US9348730B2 (en) | Firmware ROM patch method | |
CN102902556B (zh) | 一种嵌入式设备的多级引导加载方法 | |
US20050268195A1 (en) | Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems | |
US7546596B2 (en) | Non-disruptive method, system and program product for overlaying a first software module with a second software module | |
US20190095187A1 (en) | Incremental updates in static libraries | |
JP2017142794A (ja) | プログラマブルコントローラシステム、そのコントローラ、支援装置、hci装置、二重化コントローラシステム | |
CN110007935B (zh) | 一种程序升级的处理方法、装置及设备 | |
US6925522B2 (en) | Device and method capable of changing codes of micro-controller | |
US9262301B2 (en) | Observability control with observability information file | |
JP4931711B2 (ja) | カーネル更新方法、情報処理装置、プログラムおよび記憶媒体 | |
US9223697B2 (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
US9501434B2 (en) | Microcomputer | |
CN102073522A (zh) | 面向嵌入式系统的应用程序在线自我更新方法 | |
JPH07152551A (ja) | コンピュータシステムおよびプログラム実行方法 | |
JP2007257271A (ja) | メモリ診断方法、マイクロコンピュータシステム及びプログラム | |
JP6676791B2 (ja) | 情報処理装置 | |
CN112527365A (zh) | 应用程序更新方法、非易失存储器、存储介质及家用电器 | |
US20120017035A1 (en) | Runtime reprogramming of a processor code space memory area | |
JPH08137748A (ja) | コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法 | |
US20060136711A1 (en) | Disk device using disk to rewrite firmware and firmware determination method | |
JP2020004448A (ja) | 自動車用電子制御装置 | |
Wu et al. | Design and Implementation of AMT Boot Subsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160420 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170623 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170724 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171023 |
|
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: 20171106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6257506 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |