JP6335771B2 - 電子的な制御装置のメモリ内のソフトウェアを変更するための方法 - Google Patents
電子的な制御装置のメモリ内のソフトウェアを変更するための方法 Download PDFInfo
- Publication number
- JP6335771B2 JP6335771B2 JP2014249264A JP2014249264A JP6335771B2 JP 6335771 B2 JP6335771 B2 JP 6335771B2 JP 2014249264 A JP2014249264 A JP 2014249264A JP 2014249264 A JP2014249264 A JP 2014249264A JP 6335771 B2 JP6335771 B2 JP 6335771B2
- Authority
- JP
- Japan
- Prior art keywords
- routine
- program
- memory
- bypass
- overlay
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Description
Claims (23)
- 電子的な制御装置のメモリ内のソフトウェアを変更するための方法であって、
前記メモリは、前記ソフトウェアの少なくとも一部を成し且つ前記制御装置の少なくとも一つのプロセッサによって実行される複数の原始的なプログラムルーチンが記憶されている少なくとも一つの永久記憶装置と、一時的なデータを記憶するための少なくとも一つの主記憶装置と、オーバーレイメモリとを有しており、
前記オーバーレイメモリの各メモリアドレスを、割り当て情報を用いて前記永久記憶装置の一つのメモリアドレスに割り当て、それにより、前記プロセッサはオーバーレイ機能がアクティブ化された際に、前記永久記憶装置における或るアドレスのプログラムルーチン命令の代わりに、前記オーバーレイメモリの割り当てられたアドレスにおける命令を実行する、方法において、
前記制御装置の動作中に、前記オーバーレイメモリのアドレス領域に、本来のプログラムルーチンを少なくとも部分的に置換するバイパスルーチンの少なくとも一つの関数部分を記憶するか、又は、前記オーバーレイメモリに、バイパスルーチンの第1の部分として、前記プロセッサがアクセスできるアドレス領域に記憶される前記バイパスルーチンの第2の部分を直接的又は間接的に参照するジャンプ命令を記憶し、
オーバーレイ機能をアクティブ化するために、前記オーバーレイメモリのアドレス及び/又はアドレス領域を、置換すべきプログラムルーチンのアドレス又はアドレス領域に割り当てるか、又は、置換すべきプログラムルーチンの部分のアドレス又はアドレス領域に割り当てる割り当て情報を作成し、該割り当て情報を前記制御装置のインタフェースを介してアクティブ化又はデアクティブ化し、
前記オーバーレイ機能のアクティブ化を、該オーバーレイ機能のアクティブ化によって置換すべき機械コードが前記制御装置の前記プロセッサによって実行されない時点に行う、ことを特徴とする、方法。 - 前記置換すべきプログラムルーチン又は前記置換すべきプログラムルーチンの部分によって占有されている、前記永久記憶装置内の全てのアドレス領域を、前記オーバーレイメモリによって、置換を行う前記バイパスルーチンが少なくとも部分的に記憶されている、同じ長さのアドレス領域でオーバーレイする、請求項1に記載の方法。
- バイパスルーチンが前記置換すべきプログラムルーチン又は前記置換すべきプログラムルーチンの部分よりも長いプログラムコードを有している場合、前記置換すべきプログラムルーチン又は前記置換すべきプログラムルーチンの部分によって占有されている、前記永久記憶装置内の全てのアドレス領域を、前記オーバーレイメモリにおいて、前記バイパスルーチンの第1の部分が記憶される、同じ長さのアドレス領域によってオーバーレイする、但し、前記バイパスルーチンの第1の部分はジャンプ命令で終了しており、該ジャンプ命令は前記プロセッサに対して、該ジャンプ命令によって識別されており、且つ、前記バイパスルーチンの少なくとも一つの別の部分の記憶が開始されるアドレスにおいて、プログラムの処理を継続することを指示する命令である、請求項1に記載の方法。
- プログラムルーチン全体を置換する場合、前記バイパスルーチンは、プログラムの処理でもって、前記置換すべきプログラムルーチンをサブプログラムルーチンとして呼び出したプログラムルーチンに戻ることを前記プロセッサに指示するリターン命令で終了しているか、又は、
プログラムルーチンの一部のみを置換する場合、前記バイパスルーチンは、本来のプログラムルーチンの、前記置換すべき部分に続く命令で、プログラムの処理を継続することを前記プロセッサに指示するジャンプ命令で終了している、請求項2又は3に記載の方法。 - バイパスルーチンの全ての関数コードをアクティブな前記オーバーレイメモリ外のメモリ領域に記憶し、前記置換すべきプログラムルーチンの或るアドレスにおける命令又はデータを、前記オーバーレイメモリを用いてジャンプ命令でオーバーレイする、但し、該ジャンプ命令は前記プロセッサに対して、該ジャンプ命令によって識別されており、且つ、前記バイパスルーチンの前記関数コードの記憶が開始されるアドレスにおいて、処理を継続することを指示する命令であり、前記バイパスルーチンはリターン命令で終了しており、該リターン命令はプロセッサに対して、前記置換すべきプログラムルーチンをサブプログラムルーチンとして呼び出したプログラムルーチンに戻ることを指示する命令である、請求項1に記載の方法。
- 前記バイパスルーチンの関数コードをアクティブな前記オーバーレイメモリ外のメモリ領域に記憶し、前記置換すべきプログラムルーチンの或るアドレスにおける命令を、前記オーバーレイメモリにおいてジャンプ命令でオーバーレイする、但し、該ジャンプ命令は前記プロセッサに対して、該ジャンプ命令によって識別されているアドレスにおいて、処理を継続することを指示する命令であり、且つ、前記バイパスルーチンの前記関数コードの呼び出しを更に行うプログラムコードの記憶が開始されるアドレスを参照する命令である、請求項1に記載の方法。
- 前記バイパスルーチンの前記関数コードの呼び出しは、該プログラムコード内で呼び出されたサブプログラムルーチン内で行われる、請求項6に記載の方法。
- 前記アクティブ化を行うロジックによって、前記制御装置の前記プロセッサのプログラム処理ポジションを監視し、前記アクティブ化を、前記プログラム処理ポジションが前記置換すべきプログラムルーチン外のアドレスを示す時点に実施する、請求項1乃至7のいずれか一項に記載の方法。
- 前記アクティブ化を行うロジックによって、前記置換すべきプログラムルーチン外に配置されているプログラムコードによってセットされるトリガ/割り込みを監視し、前記アクティブ化を、前記トリガ/割り込みの変化が確認された際に実施する、請求項1乃至8のいずれか一項に記載の方法。
- 前記トリガは変数アクセス又はI/Oピンの状態変化から成る、請求項9に記載の方法。
- 前記アクティブ化を行うロジックは、前記インタフェースを介して接続されているインタラクション装置において実行されるロジックである、請求項8乃至10のいずれか一項に記載の方法。
- 前記アクティブ化を、前記制御装置のプロセッサによって呼び出されたサブプログラムルーチンによって実行する、請求項1乃至11のいずれか一項に記載の方法。
- 前記置換すべきプログラムルーチン外又は前記置換すべきプログラムルーチンの部分外の或るプログラムルーチンにおける命令を前記オーバーレイメモリにおけるジャンプ命令によってオーバーレイする、但し、前記ジャンプ命令は、プログラムコードのプログラミングが開始されるアドレスを参照する命令であり、前記プログラムコードは、オーバーレイされた命令を再構成し、更に、前記置換すべきプログラムルーチンに関する前記オーバーレイ機能のアクティブ化又はデアクティブ化を行い、また、ジャンプ命令で終了しており、前記ジャンプ命令は、前記置換すべきプログラムルーチン外のプログラムルーチンにおける、前記オーバーレイされた命令に続く命令を参照する、請求項1乃至12のいずれか一項に記載の方法。
- 前記アクティブ化を前記プログラムコード内のサブプログラムルーチンの呼び出しによって実施する、請求項13に記載の方法。
- アクティブな前記オーバーレイメモリに格納されているコードは部分的に、前記永久記憶装置の割り当てられた各メモリアドレスに格納されているコードを正確に再構成する、請求項1に記載の方法。
- 前記割り当て情報の作成及び前記オーバーレイ機能のアクティブ化を、前記制御装置のインタフェースに接続されているインタラクション装置によって、又は、前記制御装置のインタフェースに接続されているコンピュータによって実施する、請求項1に記載の方法。
- 前記割り当て情報の作成及び/又は前記オーバーレイ機能のアクティブ化を、前記制御装置のプロセッサによって実行されるプログラムルーチンによって実施する、請求項1に記載の方法。
- 前記制御装置は少なくとも二つのプロセッサコアを有しており、前記割り当て情報の作成及び/又は前記オーバーレイ機能のアクティブ化を行うプログラムルーチンを第1のプロセッサコアによって処理し、本来のプログラムルーチンを第2のプロセッサコア又は複数の別のプロセッサコアによって処理する、請求項17に記載の方法。
- 前記バイパスルーチンは、リターン命令で終了する、少なくとも一つの完全な関数を含む、請求項1に記載の方法。
- 前記バイパスルーチン又はバイパスルーチンの一部を、前記制御装置のインタフェースを介して、前記制御装置の動作中に、前記プロセッサによってアドレッシング可能なメモリ領域に記憶する、請求項1に記載の方法。
- プログラムルーチンにおける少なくとも一つの命令を前記オーバーレイメモリにおけるジャンプ命令によってオーバーレイする、但し、前記ジャンプ命令は、プログラムコードのプログラミングが開始されるアドレスを参照する命令であり、前記プログラムコードは、オーバーレイされた命令を再構成し、更に、関数バイパスルーチンを呼び出し、前記プログラムルーチンにおける、前記オーバーレイされた命令に続く命令を参照するジャンプ命令で終了している、請求項1に記載の方法。
- 前記制御装置は少なくとも二つのプロセッサコアを有しており、少なくとも、前記バイパスルーチンの関数コードを一つ又は複数の第1のプロセッサコアによって処理し、本来のプログラムルーチンを一つ又は複数の第2のプロセッサコアによって処理する、請求項21に記載の方法。
- オーバーレイ機能がデアクティブ化された際に前記置換すべきプログラムルーチン又は前記置換すべきプログラムルーチンの部分に割り当てられた論理的なメモリアドレスが、オーバーレイ機能がアクティブ化された際に全体として前記バイパスルーチンの少なくとも一部を含む物理的なメモリアドレスに割り当てられているように、前記制御装置のメモリ管理ユニットのプログラミングによって、オーバーレイメモリを制御装置に形成する、請求項1乃至22のいずれか一項に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13005730.0A EP2881857B8 (de) | 2013-12-09 | 2013-12-09 | Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes |
EP13005730.0 | 2013-12-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015115074A JP2015115074A (ja) | 2015-06-22 |
JP6335771B2 true JP6335771B2 (ja) | 2018-05-30 |
Family
ID=49765260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014249264A Expired - Fee Related JP6335771B2 (ja) | 2013-12-09 | 2014-12-09 | 電子的な制御装置のメモリ内のソフトウェアを変更するための方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9678867B2 (ja) |
EP (1) | EP2881857B8 (ja) |
JP (1) | JP6335771B2 (ja) |
CN (1) | CN104699478B (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6675271B2 (ja) * | 2015-09-14 | 2020-04-01 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法 |
EP3377949B1 (de) * | 2015-11-19 | 2020-04-01 | dSPACE digital signal processing and control engineering GmbH | Verfahren zum betreiben eines steuergeräts sowie zum externen bypassing eingerichtetes steuergerät |
FR3047585B1 (fr) * | 2016-02-09 | 2018-03-09 | Stmicroelectronics (Rousset) Sas | Procede et dispositif de surveillance de l'execution d'un code programme |
DE102016204598A1 (de) * | 2016-03-21 | 2017-09-21 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Betreiben eines Steuergeräts |
US10936289B2 (en) | 2016-06-03 | 2021-03-02 | Ab Initio Technology Llc | Format-specific data processing operations |
DE102016211386A1 (de) * | 2016-06-14 | 2017-12-14 | Robert Bosch Gmbh | Verfahren zum Betreiben einer Recheneinheit |
JP7169340B2 (ja) | 2017-07-25 | 2022-11-10 | オーロラ ラブズ リミテッド | 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出 |
US10922218B2 (en) * | 2019-03-25 | 2021-02-16 | Aurora Labs Ltd. | Identifying software interdependencies using line-of-code behavior and relation models |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01169629A (ja) * | 1987-12-25 | 1989-07-04 | Fujitsu Ltd | Romパッチ方式 |
JP2003289191A (ja) * | 2002-03-28 | 2003-10-10 | Denso Corp | 電子制御装置 |
US7075794B2 (en) * | 2003-09-11 | 2006-07-11 | Motorola, Inc. | Electronic control unit |
US7464248B2 (en) * | 2005-04-25 | 2008-12-09 | Mediatek Incorporation | Microprocessor systems and bus address translation methods |
CN101286066A (zh) * | 2007-12-28 | 2008-10-15 | 奇瑞汽车股份有限公司 | 一种汽车控制器软件刷新的方法 |
DE102009018761A1 (de) * | 2009-04-27 | 2010-10-28 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zur Aktualisierung von Softwarekomponenten |
WO2012079781A1 (en) * | 2010-12-17 | 2012-06-21 | Telefonaktiebolaget L M Ericsson (Publ) | Differential flash archive installation |
US8949823B2 (en) * | 2011-11-16 | 2015-02-03 | Flextronics Ap, Llc | On board vehicle installation supervisor |
EP3053131A4 (en) * | 2013-09-30 | 2017-03-29 | Hewlett-Packard Enterprise Development LP | Overlays to modify data objects of source data |
-
2013
- 2013-12-09 EP EP13005730.0A patent/EP2881857B8/de active Active
-
2014
- 2014-11-27 CN CN201410698598.6A patent/CN104699478B/zh not_active Expired - Fee Related
- 2014-12-09 US US14/564,958 patent/US9678867B2/en not_active Expired - Fee Related
- 2014-12-09 JP JP2014249264A patent/JP6335771B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN104699478B (zh) | 2018-02-27 |
JP2015115074A (ja) | 2015-06-22 |
US20150161046A1 (en) | 2015-06-11 |
EP2881857B8 (de) | 2018-09-12 |
US9678867B2 (en) | 2017-06-13 |
EP2881857A1 (de) | 2015-06-10 |
CN104699478A (zh) | 2015-06-10 |
EP2881857B1 (de) | 2018-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6335771B2 (ja) | 電子的な制御装置のメモリ内のソフトウェアを変更するための方法 | |
KR101770665B1 (ko) | 데이터 처리장치의 디버깅 | |
JP6257506B2 (ja) | 電子制御装置のメモリ内のソフトウェアを変更する方法 | |
KR102136906B1 (ko) | Bpram을 이용한 운영체제의 레이아웃 및 실행 | |
US20050216701A1 (en) | Automatic configuration of a microprocessor | |
US8290755B2 (en) | System for testing at least one electronic control unit and method | |
JPH05224911A (ja) | 動的命令修正制御装置 | |
EP3387536B1 (en) | Method and device for non-intrusively collecting function trace data | |
JP7262818B2 (ja) | エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 | |
US10481931B2 (en) | Modifying and simulating the operating software of a technical system | |
US9639343B2 (en) | Method for altering execution of a program, debugger, and computer-readable medium | |
US20160282831A1 (en) | Method for manipulating a control program of a control device | |
JP2015531521A (ja) | リンクされた複数のプログラムブロックの別々の実行を制御するための方法および制御装置 | |
CN108628726B (zh) | Cpu状态信息记录方法和装置 | |
US20150067655A1 (en) | Dynamic Debugging Method of a Software Module and Corresponding Device | |
CN105278445A (zh) | 同步发电机励磁调节器控制程序的二次开发方法 | |
JPS61188626A (ja) | マイクロプロセツサ | |
KR20230084068A (ko) | 소스 코드를 머신 코드에 자동 매핑하기 위한 시스템 및 방법 | |
EP3660602B1 (en) | Testing code for an industrial control program in an ancillary environment | |
JP2018537779A (ja) | 制御装置の動作方法ならびに外部バイパスのために設計されている制御装置 | |
JPH096647A (ja) | 逆実行デバッグシステム | |
JPH064298A (ja) | プログラム開発環境構築システム | |
KR100928865B1 (ko) | 컴퓨터 시스템에서의 스택 확장 및 보호 방법과 그 장치 | |
KR101548960B1 (ko) | 가상 플랫폼을 이용한 프로그램 작성과 디버깅 방법 및 장치 | |
KR102339278B1 (ko) | 계산 유닛 작동 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180313 |
|
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: 20180402 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180501 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6335771 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |