JP2007164242A - プログラム書換データ生成装置、プログラム及びプログラム書換データ生成方法 - Google Patents

プログラム書換データ生成装置、プログラム及びプログラム書換データ生成方法 Download PDF

Info

Publication number
JP2007164242A
JP2007164242A JP2005355932A JP2005355932A JP2007164242A JP 2007164242 A JP2007164242 A JP 2007164242A JP 2005355932 A JP2005355932 A JP 2005355932A JP 2005355932 A JP2005355932 A JP 2005355932A JP 2007164242 A JP2007164242 A JP 2007164242A
Authority
JP
Japan
Prior art keywords
object code
change
transfer data
program
source program
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
Application number
JP2005355932A
Other languages
English (en)
Inventor
Takeshi Kimura
毅 木村
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2005355932A priority Critical patent/JP2007164242A/ja
Publication of JP2007164242A publication Critical patent/JP2007164242A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】フラッシュメモリ内のプログラムをブロック単位で効率よく更新する方法を提供する。
【解決手段】プログラム書換データ生成装置は、変更前のソースプログラムと変更後のソースプログラムをそれぞれコンパイルした変更前後のオブジェクトコードを照合し、ソースプログラム11の変更によりオブジェクトコードのコード数が増加した場合に、フラッシュメモリ15の未使用領域に、変更後のオブジェクトコードにおいて追加された部分をサブルーチン化し配置するための第1の転送データ(ブロックm+1)と、前記変更後のオブジェクトコードにおいて追加された部分の直前に、前記サブルーチンへの分岐又は呼び出し命令を配置するための第2の転送データ(ブロックX)と、をそれぞれ生成する手段を備える。上記第1、第2の転送データによりブロックX、m+1を書き換えることにより、ソースプログラムの修正が反映される。
【選択図】図3

Description

本発明は、プログラム書換データ生成装置、プログラム及びプログラム書換データ生成方法に関し、特に、ターゲット機器のフラッシュメモリに格納されたプログラムの書き換えに適したプログラム書換データ生成装置、プログラム及びプログラム書換データ生成方法に関する。
近年、いわゆる情報家電やオーディオ機器等の製品において、外部機器との通信機能を備えたものが普及しつつあり、その通信機能を用いて組込みマイコン内部のプログラムを書き換えることにより、出荷後の機能向上や不具合対策等を行うことが可能となっている。
図8は、ソースプログラムをコンパイルし、組込みマイコン内のフラッシュメモリに書き込むまでの従来の装置構成を表した図である。ソースプログラム21は、例えばC言語等の高級言語で記述されている。コンピュータ20上で動作するコンパイラ22は、ソースプログラム21を解析してオブジェクトコード23を生成する。オブジェクトコード23は、機械語及び機械語を書き込む組込みマイコン24内のフラッシュメモリ25のアドレスで構成される。変更したソースプログラム21から、コンパイラ22によりオブジェクトコード23を生成し、フラッシュメモリ25の内容を書換えることにより組込みマイコン24内のプログラムを変更することが可能となる。
特開2003−58380号公報に、プログラマブルコントローラ用に作成したソースプログラムをコンパイルし、プログラマブルコントローラ側に転送するプログラマブルコントローラの支援装置、コンパイル方法及びコンパイラが開示されている。同公報では、前回のコンパイル時の変数名とアドレスとの対応関係を保存しておき、コンパイル時にこの対応関係に従ってアドレス割り当てを行う方法が提案されている。
特開2003−58380号公報
図9は、フラッシュメモリに格納したプログラムを変更する際の問題点を説明するための図である。例えば、元のソースプログラム21の「data1=1;data3=3;」との記述を、「data1=1;data2=2;data3=3;」と変更しコンパイルした場合(図9の21a)、コード数が増加しアドレスにずれが生じるため、当該変更はオブジェクトコード23の対応箇所のみならず、これに後続する部分にも及んでしまう。また、「data1=1;data3=3;」との記述を削除した場合(図9の21b)、コード数の減少となるがアドレスにずれが生じるため、この場合も当該変更はオブジェクトコード23の対応箇所のみならず、これに後続する部分にも及んでしまう。
従って、従来の方式では、ソースプログラムの変更の程度と、書き換え対象データのサイズが比例せず、ソースプログラムの変更が僅かなものであってもオブジェクトコードを大きく入れ替えねばならないケースが多々生じてしまうという問題点がある。また、当然に、書き換え対象データのサイズが大きくなれば、書き換え(通信)に要する時間も比例して大きくなってしまう。
例えば、ブロックサイズが2Kバイトであるフラッシュメモリの16ブロックの書換えが必要となった場合を考えると、32Kバイトの通信が必要となる。対象機器、例えば、上述した情報家電やオーディオ機器に備えられた通信速度が低速である場合、例えば9600bpsであるとすると(エコーネット(ECHONET)の低速電灯線通信相当)、通信時間は27.3秒以上となる。その間、プログラム書換え中のため、組込みマイコンが制御している機器は製品としての通常動作を行うことができず、またオブジェクトコードの送受信のため通信ラインも占有されることになる。
また、特許文献1の技術は、変数の割付アドレスを不変とするものである故に、一度割り付けられたアドレスに引き摺られてオブジェクトコードのサイズが大きくなり、またメモリへの割付を行うためコンパイル時間も増加してしまうという問題点がある。
本発明の第1の視点によれば、フラッシュメモリのブロックサイズに基づきブロック単位で、前記フラッシュメモリに書き込まれたオブジェクトコードの書換用データを生成するプログラム書換データ生成装置であって、変更前のソースプログラムと変更後のソースプログラムをそれぞれコンパイルした変更前後のオブジェクトコードを照合する手段と、前記ソースプログラムの変更によりオブジェクトコードのコード数が増加した場合に、前記フラッシュメモリの未使用領域に、前記変更後のオブジェクトコードにおいて追加された部分をサブルーチン化し配置するための第1の転送データと、前記変更後のオブジェクトコードにおいて追加された部分の直前に、前記サブルーチンへの分岐又は呼び出し命令を配置するための第2の転送データと、をそれぞれ生成する手段と、を備えたこと、を特徴とするプログラム書換データ生成装置が提供される。
また、本発明の第2の視点によれば、上記同様、変更前のソースプログラムと変更後のソースプログラムをそれぞれコンパイルした変更前後のオブジェクトコードを照合し、前記ソースプログラムの変更によりオブジェクトコードのコード数が減少した場合に、前記変更前のオブジェクトコードの被変更箇所を同数のダミーコードに置き換えた転送データを生成する手段を備えたこと、を特徴とするプログラム書換データ生成装置が提供される。
本発明によれば、ソースプログラムを変更した場合において、その変更の程度に見合った書換用データを生成することが可能となり、フラッシュメモリ内のプログラムをブロック単位で効率よく更新することが可能となる。
続いて、本発明を実施するための最良の形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施形態に係るプログラム書換データ生成装置(プログラム書換データ生成手段)を含むコンピュータシステムの構成を表したブロック図である。
図1を参照すると、コンピュータ10は、コンピュータプログラムで構成されたコンパイラ12を備えて構成されている。コンパイラ12は、ソースプログラム11からオブジェクトコードを生成する機能を備えるとともに、ソースプログラム11中に記述された更新前のソースプログラムと、ブロック情報16を利用し、後に詳述する方法により、フラッシュメモリ書換用のオブジェクトコード13を生成するプログラム書換データ生成手段を構成している。
図1に図示されたように、ソースプログラム11には、「#OLD」で括られた変更前ソースプログラムと「#NEW」で括られた変更後ソースプログラムを記述可能となっている。
ブロック情報16には、組込みマイコン14内のフラッシュメモリ15の各ブロックのサイズが記述される。
コンパイラ12は、変更前のソースプログラムと、変更後のソースプログラムを解析し、ブロック情報16の各ブロックのサイズを考慮して、フラッシュメモリ15への転送データが少なくて済むフラッシュメモリ書換用のオブジェクトコード13を生成する。フラッシュメモリ書換用のオブジェクトコード13を用いて、組込みマイコン14のフラッシュメモリ15への書換えが行われる。以下、コンパイラ12がフラッシュメモリ書換用のオブジェクトコード13を生成する際の詳細動作について説明する。
図2は、コンパイラによるフラッシュメモリ書換用のオブジェクトコードの生成フローを表したフローチャートである。図2を参照すると、まず、コンパイラ12は、変更前ソースプログラムと、変更後ソースプログラムの記述をそれぞれ解析して2つのオブジェクトコードを仮生成する(ステップS001)。
続いて、コンパイラ12は、変更前ソースプログラムから生成したオブジェクトコード(以下、「変更前オブジェクトコード」という)と変更後ソースプログラムから生成したオブジェクトコード(以下、「変更後オブジェクトコード」という)のコード数を比較する(ステップS002)。以下、ステップS002において、「コード数増減なし」、「コード数増」、「コード数減」と判定された場合について、図2と、本発明の理解に必要なオブジェクトコードについてアセンブラで表記した図3〜図7の補助図面を参照して説明する。
[コード数増減なし]
変更前後のオブジェクトコードのコード数が同じである場合、後記するコード数が増加又は減少した場合のようなオブジェクトコードの最適化処理は行われない。組込みマイコン14のフラッシュメモリ15への転送データを最小化する観点からすれば、例えば、変更後オブジェクトコードから、置換すべき(変更のあった)ブロックのデータのみを抽出することにより、最小時間で書換を行うことが可能となる。
[コード数増]
変更後オブジェクトコードのコード数が増加している場合、コンパイラ12は、変更が生じた先頭箇所を特定し、変更後オブジェクトコードのソースプログラム変更前にはオブジェクトコードが配置されていなかったブロックに対応する箇所(未使用領域)に、上記変更(追加)があった部分(命令、データ)を移動する(ステップS003)。
また、コンパイラ12は、変更後オブジェクトコードの上記移動した部分に後続する変更のない部分の配置アドレスを変更前オブジェクトコードと一致するようにシフトさせるとともに、変更があった箇所に上記ステップS003で移動した先への分岐命令を配置する(ステップS004)。
以上により、コード数増の原因となった部分は、サブルーチン化されて未使用領域に先送りされ、ステップS003にて追加した部分(第1の転送データ)と、ステップS004にて分岐命令を配置した部分(第2の転送データ)を更新するだけで、ソースプログラムの修正内容を正確に反映することが可能となる。
例えば、図3のように、ソースプログラム11において、「data2=2;」を追加修正した場合、変更後オブジェクトコードのコード数は増加する。この場合、コンパイラ12は、変更後オブジェクトコードにおいて変更(追加)があった部分「MOV data1,1 MOV data2,2 MOV data3,3」を未使用領域に移動するとともに、変更前オブジェクトコードの「MOV data1,1 MOV data3,3」があった箇所に、「BR Replace Replace_Continue」を配置する(変更箇所2(13b);「BR」は強制分岐命令を示す。)とともに、変更箇所1(13a)の末尾を「BR Replace_Continue」としてサブルーチン化する。
従って、図3の例では、オブジェクトコードの差異のある箇所に対応するブロックX(第2の転送データ)とブロックm+1(第1の転送データ)の2ブロックを書換えるだけで、ソースプログラムの修正を正しく反映することが可能となる。
なお、図3では、強制分岐命令「BR」を用いているが、例えば図4のように、変更箇所1(13c)と、変更箇所2(13d)にそれぞれ、関数呼出命令「CALL」とリターン命令「RET」を配置するものとしてもよい。
また、コード数が増加した場合、上記変更箇所2が複数ブロックに及んでしまう場合も考えられる。本実施の形態では、コンパイラ12は、以下の処理を行うこととしている。
上記変更箇所2の修正に続いて、コンパイラ12は、ブロック情報16と、変更後オブジェクトコードを参照して、変更箇所2の分岐命令が複数のブロックに及んでいるか否かを判定する(ステップS005)。
ここで、変更箇所2の分岐命令がブロックをまたがって配置されていた場合は、コンパイラ12は、その先頭側のブロックの分岐命令の配置アドレスより前(若いアドレス)に配置されている内容(命令、データ)を、上記変更箇所1の前に繰り込み、変更箇所2の分岐命令をその空いた箇所に移動する(ステップS006)。
例えば、図5のように、変更箇所2(13b)が、フラッシュメモリ15のブロックXとブロックX+1のブロックをまたがって配置されている場合、コンパイラ12は、変更箇所2(13b)の直前の命令Aを変更箇所1(13a)の前に繰り込み、空き領域を作るとともに、変更箇所2(13b)の分岐命令をその空いた箇所に移動する。
これにより、変更箇所1のボリュームが増大することとなるが、変更箇所1に対応するブロックに空きがありブロック数が変更しないようであれば、変更箇所2の変更により更新が必要となるブロック数を削減することが可能となる。例えば、図5の例では、当初ブロックX、ブロックX+1、ブロックm+1の3ブロックの書換が必要となるところ、ステップS005、S006を経ることにより、ブロックX、ブロックm+1の2ブロックの書換で済むこととなる。
また、上述のような配置替えを行った結果、当該配置替え前のコードを分岐先とするオブジェクトコードの他の分岐命令に影響が及んでしまう場合も考えられる。本実施の形態では、コンパイラ12は、以下の処理を行うこととしている。
上記変更箇所2のブロック収納処理に続いて、コンパイラ12は、変更後オブジェクトコードを参照して、変更箇所2を分岐先とする分岐命令の有無を判定する(ステップS007)。
ここで、変更箇所2を分岐先とする分岐命令が存在した場合は、コンパイラ12は、当該分岐命令の分岐先アドレスに、変更箇所1の対応アドレスへの分岐命令を配置する(ステップS008)。
例えば、図6のように、変更後オブジェクトコードの任意の位置に変更箇所2を分岐先とする分岐命令13eが存在する場合、分岐命令13eの分岐先を修正することによっても対応可能であるが、書き換え対象ブロックが増加してしまう。そこで、本実施形態に係るコンパイラ12は、分岐命令13eの分岐先は修正せず、変更箇所2の分岐先アドレスに変更箇所1への分岐命令を配置する。
これにより、書き換え対象ブロックの増大を抑止することが可能となる。例えば、図6の例では、当初ブロックX、ブロックY、ブロックm+1の3ブロックの書換が必要となるところ、ステップS007、S008を経ることにより、ブロックX、ブロックm+1の2ブロックの書換で済むこととなる。
[コード数減]
変更後オブジェクトコードのコード数が減少している場合、コンパイラ12は、変更が生じた先頭箇所を特定し、当該箇所の前に削除されたオブジェクトコードのコード数分のダミー命令を追加し、変更後オブジェクトコードのコード数を変更前オブジェクトコードと一致させる(ステップS009)。従って、変更箇所2に対応するブロックXのみを置き換える転送データにより、ソースコードの変更を正確に反映することが可能となる。
例えば、図7のように、ソースプログラム11において、「MOV data1,1 MOV data2,2 MOV data3,3」が削除された場合、変更後オブジェクトコードのコード数は減少する。この場合、変更前オブジェクトコードの被変更箇所の先頭部分を直近の非変更箇所に強制分岐させる命令「BR Replace_Continue」と書き換える(その他は変更前オブジェクトコードと同一でよい。)変更箇所2(13f)とすることにより、当該ブロック以外については、変更前オブジェクトコードの内容をそのまま用いることが可能となる。
以上のとおり、変更前後のコード数の増減に応じたオブジェクトコードの最適化(再配置)を行うことにより、組込みマイコン14に内蔵されるフラッシュメモリ15の書換対象ブロック数を最小限に抑えることが可能となり、そのための通信時間の短縮も可能となる。
例えば、フラッシュメモリ15のブロックのサイズを2Kバイト、nブロックあるものと仮定すると、従来方式では2K×((n−X)+1)バイトの書き換えボリュームとなるが、本発明によれば、書換対象ブロック数を2ブロック、4Kバイトの書き換えボリュームとすることが可能となり、9600bpsにて通信時間は、32768/9600≒3.4秒と短縮される。
以上、本発明の好適な実施形態を説明したが、本発明の技術的範囲は、上述した実施形態に限定されるものではなく、変更前後のプログラムを解析し、増えた部分はサブルーチンとして外に出し、減った部分はダミー化することにより、オブジェクトコードの書き換えが必要なブロックのみを置き換えるという本発明の要旨を逸脱しない範囲で、各種の変形・置換をなしうることが可能であることはいうまでもない。
例えば、上記した実施形態では、コンパイラ12が新旧両方の内容が記述されたソースプログラムから新旧2つのオブジェクトコードを生成させ、その後オブジェクトコードの最適化(再配置)を行うものとして説明したが、一般のコンパイラ12にそれぞれ新旧のソースプログラムを個別にコンパイルをさせた後に、プログラム書換データ生成手段を構成するプログラムやプログラム書換データ生成装置に上記ステップS002〜S009の処理を行わせるものとしてもよい。
また本発明は、その原理からも明らかなとおり、各種の高級言語にてソースプログラムの修正を行い、各種機器のフラッシュメモリに格納されたオブジェクトコードを更新する際に利用することが可能であり、この点においても、上述した実施形態により拘束されるものではない。
本発明の第1の実施形態に係るコンパイラ(プログラム書換データ生成手段)を含むコンピュータシステムの構成を表したブロック図である。 本発明の第1の実施形態に係るコンパイラ(プログラム書換データ生成手段)の動作を表したフローチャートである。 本発明の第1の実施形態に係るコンパイラ(プログラム書換データ生成手段)の詳細動作を説明するための図である。 本発明の第1の実施形態に係るコンパイラ(プログラム書換データ生成手段)の詳細動作を説明するための図である。 本発明の第1の実施形態に係るコンパイラ(プログラム書換データ生成手段)の詳細動作を説明するための図である。 本発明の第1の実施形態に係るコンパイラ(プログラム書換データ生成手段)の詳細動作を説明するための図である。 本発明の第1の実施形態に係るコンパイラ(プログラム書換データ生成手段)の詳細動作を説明するための図である。 従来技術(コンパイル処理)を説明するための図である。 組込みマイコンのフラッシュメモリに格納したプログラムを変更する際の問題点を説明するための図である。
符号の説明
10、20 コンピュータ
11、21 ソースプログラム
12 コンパイラ(プログラム書換データ生成手段)
13 (フラッシュメモリ書換用)オブジェクトコード
13a、13c 変更箇所1
13b、13d、13f 変更箇所2
13e 分岐命令
14、24 組込みマイコン
15、25 フラッシュメモリ
16 ブロック情報
21a、21b ソースコード変更箇所
22 コンパイラ
23 オブジェクトコード

Claims (12)

  1. フラッシュメモリのブロックサイズに基づきブロック単位で、前記フラッシュメモリに書き込まれたオブジェクトコードの書換用データを生成するプログラム書換データ生成装置であって、
    変更前のソースプログラムと変更後のソースプログラムをそれぞれコンパイルした変更前後のオブジェクトコードを照合する手段と、
    前記ソースプログラムの変更によりオブジェクトコードのコード数が増加した場合に、前記フラッシュメモリの未使用領域に、前記変更後のオブジェクトコードにおいて追加された部分をサブルーチン化し配置するための第1の転送データと、前記変更後のオブジェクトコードにおいて追加された部分の直前に、前記サブルーチンへの分岐又は呼び出し命令を配置するための第2の転送データと、をそれぞれ生成する手段と、を備えたこと、
    を特徴とするプログラム書換データ生成装置。
  2. 更に、前記第2の転送データが前記メモリの複数のブロックにまたがってしまうか否かを検査する手段と、
    前記第2の転送データが前記メモリの複数のブロックにまたがってしまう場合には、前記第2の転送データが配置される先頭側のブロックの内容をサブルーチン化し前記第1の転送データに繰り込む手段と、
    前記第1の転送データへの繰り込み量に応じて、前記第2の転送データの分岐又は呼び出し命令の位置を繰り上げて、前記第2の転送データを1ブロックに収納する手段と、を備えたこと、
    を特徴とする請求項1に記載のプログラム書換データ生成装置。
  3. 更に、前記変更後のオブジェクトコードの他の部分に、前記第2の転送データによって置き換えられる部分を分岐先とする分岐命令が有るか否かを検査する手段と、
    前記変更後のオブジェクトコードの他の部分に、前記第2の転送データによって置き換えられる部分を分岐先とする分岐命令が存在する場合、前記第2の転送データの前記分岐先箇所に、前記第1の転送データの対応箇所への分岐又は呼び出し命令を配置する手段と、を備えたこと、
    を特徴とする請求項1又は2に記載のプログラム書換データ生成装置。
  4. 前記ソースプログラムの変更によりオブジェクトコードのコード数が減少した場合に、前記変更前のオブジェクトコードの被変更箇所を同数のダミーコードに置き換えた転送データを生成する手段を備えたこと、
    を特徴とする請求項1ないし3いずれか一に記載のプログラム書換データ生成装置。
  5. 更に、変更前のソースプログラムと変更後のソースプログラムを識別可能に、所定の記法で記述されたソースプログラムから、それぞれ変更前と変更後のオブジェクトコードを生成する手段を備えたこと、
    を特徴とする請求項1ないし4いずれか一に記載のプログラム書換データ生成装置。
  6. フラッシュメモリのブロックサイズに基づきブロック単位で、前記フラッシュメモリに書き込まれたオブジェクトコードの書換用データを生成するプログラム書換データ生成装置を構成するコンピュータに実行させるプログラムであって、
    変更前のソースプログラムと変更後のソースプログラムをそれぞれコンパイルした変更前後のオブジェクトコードを照合する処理と、
    前記照合の結果、ソースプログラムの変更によりオブジェクトコードのコード数が増加した場合に、前記フラッシュメモリの未使用領域に、前記変更後のオブジェクトコードにおいて追加された部分をサブルーチン化し配置するための第1の転送データと、前記変更後のオブジェクトコードにおいて追加された部分の直前に、前記サブルーチンへの分岐又は呼び出し命令を配置するための第2の転送データと、をそれぞれ生成する処理とを、前記コンピュータに実行させるプログラム。
  7. 前記第2の転送データが前記メモリの複数のブロックにまたがってしまうか否かを検査する処理と、
    前記第2の転送データが前記メモリの複数のブロックにまたがってしまう場合には、前記第2の転送データが配置される先頭側のブロックの内容をサブルーチン化し前記第1の転送データに繰り込むとともに、前記第1の転送データへの繰り込み量に応じて、前記第2の転送データの分岐又は呼び出し命令の位置を繰り上げて、前記第2の転送データを1ブロックに収納する処理とを、
    前記コンピュータに実行させる請求項6に記載のプログラム。
  8. 更に、前記変更後のオブジェクトコードの他の部分に、前記第2の転送データによって置き換えられる部分を分岐先とする分岐命令が有るか否かを検査する処理と、
    前記検査の結果、前記変更後のオブジェクトコードの他の部分に、前記第2の転送データによって置き換えられる部分を分岐先とする分岐命令が存在する場合、前記第2の転送データの前記分岐先箇所に、前記第1の転送データの対応箇所への分岐又は呼び出し命令を配置する処理とを、
    前記コンピュータに実行させる請求項6又は7に記載のプログラム。
  9. 前記ソースプログラムの変更によりオブジェクトコードのコード数が減少した場合に、前記変更前のオブジェクトコードの被変更箇所を同数のダミーコードに置き換えた転送データを生成する処理を、
    前記コンピュータに実行させる請求項6ないし8いずれか一に記載のプログラム。
  10. 更に、変更前のソースプログラムと変更後のソースプログラムを識別可能に、所定の記法で記述されたソースプログラムから、それぞれ変更前と変更後のオブジェクトコードを生成する処理を、
    前記コンピュータに実行させる請求項6ないし9いずれか一に記載のプログラム。
  11. フラッシュメモリのブロックサイズに基づきブロック単位で、前記フラッシュメモリに書き込まれたオブジェクトコードの書換用データを生成するプログラム書換データ生成装置を構成するコンピュータを用いて実行するオブジェクトコード書換用データの生成方法であって、
    前記コンピュータが、変更前のソースプログラムと変更後のソースプログラムをそれぞれコンパイルした変更前後のオブジェクトコードを照合するステップと、
    前記ソースプログラムの変更によりオブジェクトコードのコード数が増加した場合に、前記コンピュータが、前記フラッシュメモリの未使用領域に、前記変更後のオブジェクトコードにおいて追加された部分をサブルーチン化し配置するための第1の転送データと、前記変更後のオブジェクトコードにおいて追加された部分の直前に、前記サブルーチンへの分岐又は呼び出し命令を配置するための第2の転送データと、をそれぞれ生成するステップと、を含むこと、
    を特徴とする第1、第2の転送データからなるオブジェクトコード書換用データの生成方法。
  12. フラッシュメモリのブロックサイズに基づきブロック単位で、前記フラッシュメモリに書き込まれたオブジェクトコードの書換用データを生成するプログラム書換データ生成装置を構成するコンピュータを用いて実行するオブジェクトコード書換用データの生成方法であって、
    前記コンピュータが、変更前のソースプログラムと変更後のソースプログラムをそれぞれコンパイルした変更前後のオブジェクトコードを照合するステップと、
    前記ソースプログラムの変更によりオブジェクトコードのコード数が減少した場合に、前記コンピュータが、前記変更前のオブジェクトコードの被変更箇所を同数のダミーコードに置き換えた転送データを生成するステップと、を含むこと、
    を特徴とするオブジェクトコード書換用データの生成方法。
JP2005355932A 2005-12-09 2005-12-09 プログラム書換データ生成装置、プログラム及びプログラム書換データ生成方法 Pending JP2007164242A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005355932A JP2007164242A (ja) 2005-12-09 2005-12-09 プログラム書換データ生成装置、プログラム及びプログラム書換データ生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005355932A JP2007164242A (ja) 2005-12-09 2005-12-09 プログラム書換データ生成装置、プログラム及びプログラム書換データ生成方法

Publications (1)

Publication Number Publication Date
JP2007164242A true JP2007164242A (ja) 2007-06-28

Family

ID=38247094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005355932A Pending JP2007164242A (ja) 2005-12-09 2005-12-09 プログラム書換データ生成装置、プログラム及びプログラム書換データ生成方法

Country Status (1)

Country Link
JP (1) JP2007164242A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8423984B2 (en) 2009-07-28 2013-04-16 Renesas Electronics Corporation System and method generating object code

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01214928A (ja) * 1988-02-23 1989-08-29 Nec Corp 高級言語パッチ作成装置
JPH05120067A (ja) * 1991-10-30 1993-05-18 Nec Software Ltd プログラムパツチ方式
JPH10307719A (ja) * 1997-05-06 1998-11-17 Nec Commun Syst Ltd 高級言語パッチ作成システム
JP2003044305A (ja) * 2001-07-26 2003-02-14 Sony Corp 電子装置および修正方法
WO2005085996A1 (en) * 2004-02-27 2005-09-15 Telefonaktiebolaget Lm Ericsson (Publ) Flash memory programming

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01214928A (ja) * 1988-02-23 1989-08-29 Nec Corp 高級言語パッチ作成装置
JPH05120067A (ja) * 1991-10-30 1993-05-18 Nec Software Ltd プログラムパツチ方式
JPH10307719A (ja) * 1997-05-06 1998-11-17 Nec Commun Syst Ltd 高級言語パッチ作成システム
JP2003044305A (ja) * 2001-07-26 2003-02-14 Sony Corp 電子装置および修正方法
WO2005085996A1 (en) * 2004-02-27 2005-09-15 Telefonaktiebolaget Lm Ericsson (Publ) Flash memory programming

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8423984B2 (en) 2009-07-28 2013-04-16 Renesas Electronics Corporation System and method generating object code

Similar Documents

Publication Publication Date Title
JP4903686B2 (ja) フラッシュメモリのプログラミング
US7055035B2 (en) Method for generating a read only memory image
CN107976986A (zh) 用于对车辆电子控制模块编程的方法
KR20040022451A (ko) 임베디드 소프트웨어 업데이트 시스템
KR101213275B1 (ko) 무선 장치에서 사용할모놀리식(monolithic)이미지를 제공하기 위한시스템 및 방법
CN109358887B (zh) 一种单片机程序的在线升级方法、装置及系统
KR20210041972A (ko) 차량 ecu 소프트웨어 업데이트 장치
JP2007511816A (ja) 集中daマネージャを用いた動的アドレシング(da)
JP2009146229A (ja) プログラマブルコントローラシステム
JP2015115073A (ja) 電子制御装置のメモリ内のソフトウェアを変更する方法
US20060184924A1 (en) Intelligent platform management interface firmware architecture and method of building the same
JP5849592B2 (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
CN103645888A (zh) 一种自动构建操作系统的系统及方法
US10452364B2 (en) Method and system for preparing code to be executed by programmable control devices
JP2009157533A (ja) プログラマブルコントローラシステム
JP2007164242A (ja) プログラム書換データ生成装置、プログラム及びプログラム書換データ生成方法
EP3564764B1 (en) Device for processing programmable logic controller program
JP6119452B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ、プログラム
KR100745256B1 (ko) 임베디드 시스템에서의 코드 오버레이 방법
JP4479558B2 (ja) プログラマブルコントローラ及びそのプログラミングツール
JP4910402B2 (ja) 不揮発性メモリの書き換え装置及び書き換え方法
JPH0262630A (ja) メモリ及びメモリの使用方法
JP2007188366A (ja) コンパイル装置
JP4715189B2 (ja) ディスク装置およびファームウェアの判定方法
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081110

A977 Report on retrieval

Effective date: 20110729

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20110809

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120117