JPH1040094A - ファームウエアのプログラム制御装置 - Google Patents

ファームウエアのプログラム制御装置

Info

Publication number
JPH1040094A
JPH1040094A JP19798796A JP19798796A JPH1040094A JP H1040094 A JPH1040094 A JP H1040094A JP 19798796 A JP19798796 A JP 19798796A JP 19798796 A JP19798796 A JP 19798796A JP H1040094 A JPH1040094 A JP H1040094A
Authority
JP
Japan
Prior art keywords
routine
control device
ram
program
reference table
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
JP19798796A
Other languages
English (en)
Inventor
Koji Eba
浩二 江場
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.)
Okuma Corp
Original Assignee
Okuma Machinery Works 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 Okuma Machinery Works Ltd filed Critical Okuma Machinery Works Ltd
Priority to JP19798796A priority Critical patent/JPH1040094A/ja
Publication of JPH1040094A publication Critical patent/JPH1040094A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 ROM上で直接実行される制御プログラムの
一部分のみを上位制御装置からダウンロードしたRAM
上のプログラムに置き換えて実行する際、RAMの消費
が大きく、実行速度が低下する。 【解決手段】 RAM4上に設けられROM2内プログ
ラムコードのサブルーチンコール先アドレスを格納する
ルーチン参照テーブル5、RAM4上に設けられ各サブ
ルーチンの代替プログラムコードを収める代替プログラ
ム格納エリア6、上位制御装置7より代替プログラム格
納エリア6にダウンロードしたルーチンに対し、該当す
る前記ルーチン参照テーブル5内のアドレス値を更新す
る、ダウンロード処理実行部を具える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、内蔵するファー
ムウエアの一部を上位制御装置から送られるデータによ
って変更し、機能追加・仕様変更を行う、ソフト変更可
能なファームウエアのプログラム制御装置に関するもの
である。
【0002】
【従来の技術】図5は、従来技術を用いたソフト変更可
能なプログラム制御装置の一例を示すブロック図であ
る。制御装置1は、ROM2内にファームウエアプログ
ラムコード3を格納しており、制御装置1の仕様の変更
や、追加が無い場合には、このプログラムコード3を実
行して、目的の制御内容を実行する。一方、制御装置1
の仕様の変更や、追加が必要になった場合は、装置の初
期化シーケンスにおいて、上位制御装置7から、修正ま
たは追加された新しいプログラムをダウンロードして使
用する。新しいプログラムである代替プログラムコード
11は、ダウンロード処理実行部10によってRAM4
に設けられた代替プログラム格納エリア6に格納され、
プロセッサによって実行される。プログラムをダウンロ
ードする前後において、プロセッサがプログラムコード
を実行する手順がどの様に変化するかを図6を用いて説
明する。
【0003】図6は、ROM2内のファームウエアプロ
グラムコード3のなかの(サブルーチン1)の内容のみ
を仕様変更のため入れ替えた例である。プロセッサ13
に対して割り込み信号A14が入力されると、プロセッ
サ13内にあるベクタテーブル指定レジスタ15に設定
された値で先頭アドレスを指定されるベクタテーブル1
6(VT1)のなかの割込Aに該当する(割込Aメイン
ルーチンアドレス1)が読みだされる。プロセッサ13
はプログラムカウンタをこの値にセットし、ROM2内
にある(割込Aメインルーチン)の実行を開始する。次
に(割込Aメインルーチン)内でサブルーチンコールが
行われ、ROM2内の(サブルーチン1)(変更前)が
実行される。
【0004】一方、ダウンロード後は、ダウンロード処
理実行部10によってプロセッサ13内のベクタテーブ
ル指定レジスタ15の設定値は、RAM4に設けられた
ベクタテーブル17(VT2)を示すよう変更されてい
る。このため、(割込Aメインルーチンアドレス2)が
読みだされ、RAM4の代替プログラム格納エリア6に
格納されている(割込Aメインルーチン)が実行され、
このなかで変更後の(サブルーチン1' )がサブルーチ
ンコールされて実行される。
【0005】ここで、ROM2内とRAM4内の(割込
Aメインルーチン)は同一のソースコードから作成でき
るが、リンク時にサブルーチンの絶対アドレスを取り込
んでいるため、オブジェクトコードは異なるため共用す
ることはできない。同様に(割込Aメインルーチン)で
使用されるサブルーチン群もリンク情報が異なるため、
(サブルーチン1)の変更に伴って、関連する多数のル
ーチンを代替プログラムコード11に含めてダウンロー
ドする必要がある。
【0006】
【発明が解決しようとする課題】従来のソフト変更可能
なプログラム制御装置においては、ファームウエアの一
部分を変更した場合においても、前述のように内容変更
がないルーチンを含めRAM4上に格納することにな
る。この結果、ファームウエアのほとんど総ては、プロ
セッサ13がRAM4から読みとって実行される。一
方、図4にプログラム制御装置に使用されるプロセッサ
のメモリ構成の一例を示す。キャッシュメモリを内蔵し
ない組込用途のプロセッサにおいては、同一ICパッケ
ージ内の内蔵ROMとプロセッサコアを接続するプロセ
ッサ内部バスのバス幅を外部バス幅よりも広げ、かつ、
外部バスより短いサイクルタイムでアクセスできるよう
にしてプログラムの実行速度を上げているタイプのもの
がある。このようなプロセッサを使用したプログラム制
御装置においては、同一のプログラムを外部のRAM上
で実行する場合、内蔵ROM上で実行した場合の3倍か
ら4倍の実行時間を要してしまう。従来のソフト変更可
能なプログラム制御装置では、内蔵ROM内に格納した
既存のプログラムコードと重複したコードをRAM上に
展開するため、RAMの使用量が多く、容量の少ない内
蔵RAMが利用できない。このため、外部RAMを使用
することになるが、プログラムの実行速度が落ちて、リ
アルタイム制御が要求する時間内に処理を完了すること
が極めて困難となる。また、あわせて外部RAMの容量
を大きくしておくことが必要である。
【0007】本発明が解決しようとする第1の課題は、
機能追加・変更に必要な最小限のプログラムのみをRA
M上で動作させ、ファームウエア全体の実行時間の増加
を最小限に留めると共に、プログラムの追加・変更に使
用するRAM容量を最小限に留めたプログラム制御装置
を提供することにある。また、第2の課題は、上記課題
を解決するプログラム制御装置において、上位制御装置
がダウンロードするプログラムを、1種類用意するだけ
で、複数のリリースバージョンのROMに適用できるよ
うに改善することにある。
【0008】
【課題を解決するための手段】第1の課題を解決するた
め、RAM上に設けられROM内プログラムコードがサ
ブルーチンコールを行う際にコール先アドレスを取得す
るルーチン参照テーブル、RAM上に設けられ各サブル
ーチンの代替プログラムコードを収める代替プログラム
格納エリア、上位制御装置から送られるデータを前記ル
ーチン参照テーブル並びに代替プログラム格納エリアに
書き込む処理を行う、ダウンロード処理実行部をプログ
ラム制御装置に具備する。
【0009】一方、第2の課題を解決するため、前記構
成の制御装置において、ダウンロード処理実行部が、上
位制御装置から送られる前記ルーチン参照テーブルの更
新差分データに従って、代替プログラム格納エリアにダ
ウンロードされた該当ルーチン部分のテーブル内データ
のみを書き換え、および追加するよう構成する。
【0010】この発明による制御装置においては、第1
の課題を解決するための構成をとることにより、機能追
加・変更に必要なルーチンに対する代替プログラムコー
ドのみを、RAM上にダウンロードし、ROM上の既存
のファームウエアがサブルーチンコールして使用するた
め、実行時間の増加を最小限に留めると共に、使用する
RAM容量を最小限に留めることができる。
【0011】次に、第2の課題を解決するための構成を
とることにより、ルーチン参照テーブル内の機能追加・
変更に必要でないルーチンのアドレスデータは、そのリ
リースバージョンのROMのリンク時に作成され、RO
M内に収められていたデータがそのまま使用されるた
め、複数のリリースバージョンのROMに対して1種類
のダウンロードプログラムを使用することができる。
【0012】
【発明の実施の形態】図1はこの発明によるソフト変更
可能なファームウエアのプログラム制御装置の一実施形
態を示すブロック図である。図5の従来例に対し、同一
の構成要素には同一の番号が附番してある。図1におい
ては、新たにRAM4内に、ルーチン参照テーブル5が
設けられるとともに、上位制御装置7に格納された、代
替ルーチン参照テーブル8が、ダウンロード処理実行部
10によって、前記ルーチン参照テーブル5の内容を置
き換えるよう構成されている。次に図2を用いてダウン
ロード前後でプログラムの実行過程が変化する様子を説
明する。
【0013】従来例の図6と同様に(サブルーチン1)
のみが変更されている例を示す。割り込み信号A14が
入力されると、プロセッサ13内にあるベクタテーブル
指定レジスタ15に設定された値で先頭アドレスを指定
されるベクタテーブル16(VT1)の中の割込Aに該
当する(割込Aメインルーチンアドレス1)が読み出さ
れる。プロセッサ13はプログラムカウンタをこの値に
セットし、ROM2内にある(割込Aメインルーチン)
の実行を開始する。一方、ここでファームウエアプログ
ラムコード3は、サブルーチンコールを実施する際、サ
ブルーチンの絶対アドレスを使用せず、新たにRAM4
内に設けたルーチン参照テーブル5のなかの、サブルー
チン番号毎に定めた該当する配列要素に収められたアド
レスにより間接アドレッシングを用いてサブルーチンコ
ールする様にプログラムされている。このため、(割込
Aメインルーチン)は、ルーチン参照テーブル5内のル
ーチン01先頭アドレスが示す、ROM2内の(サブル
ーチン1)(変更前)が実行される。次に、ダウンロー
ドが行われると、ルーチン参照テーブル5の内容が書き
換えられ、これによってRAM4内の代替プログラム格
納エリア6に格納されている変更後の(サブルーチン
1' )がサブルーチンコールされて実行される。このよ
うにしてダウンロード後に仕様変更または追加が達成さ
れる。なお、この例では(割込Aメインルーチン)自身
を変更する例を示していないが、従来例の図6に示すよ
うに、RAM4内にベクタテーブル17を設ける事で、
変更可能である。
【0014】ここで、前記ルーチン参照テーブル5の変
更過程について、追加して説明する。まず、装置の初期
化過程において、ROM2内に収められたルーチン参照
テーブルのオリジナルデータが、RAM4の決められた
格納アドレスにコピーされて前記ルーチン参照テーブル
5が作成される。このときの、テーブル内の配列要素に
収められたアドレスは、ROM2内のファームウエアプ
ログラムコード内の各該当ルーチンの先頭アドレスを指
し示し、その値は、リンク作業を行った際のソースコー
ド全体に依存するため、ROM2のリリースバージョン
毎に異なっている。ダウンロードが開始されると、請求
項1のプログラム制御装置においては上位制御装置7よ
り代替ルーチン参照テーブル8がおくられるが、このデ
ータ構造は図3(A)に例を示すように、ルーチン参照
テーブル5と同一構造を有しており、単純にルーチン参
照テーブル5全体に重ね書きされる。この場合は、RO
Mのルーチンをコールしない特殊な場合を除き、リリー
スバージョンに対して1:1対応の代替ルーチン参照テ
ーブル8を用意する必要がある。
【0015】一方、請求項2の発明を適用したプログラ
ム制御装置においては、上位制御装置7よりルーチン参
照テーブル更新差分データが送られてくる。その構造
は、図3(B)に例を示すように、更新されたルーチン
番号と、そのルーチンの先頭アドレスのみがテーブル化
されており、ダウンロード処理実行部10はこの情報に
基づいてルーチン参照テーブル5の変更が必要な部分の
みを書き換える。この場合は、ダウンロードされなかっ
たルーチンの先頭アドレスとして、ROM2内に収めら
れていたオリジナルの値が使用されるため、ルーチン参
照テーブル更新差分データはリリースバージョンに無関
係に1種類用意するだけで済む。
【0016】
【発明の効果】以上説明したように、この発明のソフト
変更可能なプログラム制御装置においては、機能追加・
変更にあたり、必要なルーチンのみをRAM上で実行す
るため、実行時間の増加を最小限に留めると共に、使用
するRAM容量を最小限に留める事ができる。また、ル
ーチン参照テーブル更新差分データを用いることによ
り、異なったリリースバージョンのROMに対して1種
類のダウンロードデータを使用することができる。
【図面の簡単な説明】
【図1】 この発明による制御装置の構成例を示すブロ
ック図である。
【図2】 この発明による制御装置のプログラム実行の
手順を示す図である。
【図3】 この発明による制御装置が上位制御装置から
受け取るデータの構造を示す図である。
【図4】 この発明を適用する制御装置のメモリ構成例
を示す図である。
【図5】 従来技術による制御装置の構成例を示すブロ
ック図である。
【図6】 従来技術による制御装置のプログラム実行の
手順を示す図である。
【符号の説明】
1 制御装置、2 ROM、3 ファームウエアプログ
ラムコード、4 RAM、5 ルーチン参照テーブル、
6 代替プログラム格納エリア、7 上位制御装置、8
代替ルーチン参照テーブル、9 代替ルーチンプログ
ラムコード、10 ダウンロード処理実行部、11 代
替プログラムコード、13 プロセッサ、14 割り込
み信号A、15 ベクタテーブル指定レジスタ、16,
17 ベクタテーブル。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ROMに格納されたファームウエアのプ
    ログラムコードを直接プロセッサが読みとって実行する
    制御装置において、 RAM上に設けられ、前記ROM内プログラムコードが
    サブルーチンコールを行う際にコール先アドレスを取得
    するルーチン参照テーブル、 RAM上に設けられ、各サブルーチンの代替プログラム
    コードを収める代替プログラム格納エリア、上位制御装
    置から送られるデータを、前記ルーチン参照テーブルな
    らびに代替プログラム格納エリアに書き込む処理を行
    う、ダウンロード処理実行部を具備したファームウエア
    のプログラム制御装置。
  2. 【請求項2】 請求項1記載のプログラム制御装置であ
    って、ダウンロード処理実行部が、上位制御装置から送
    られる前記ルーチン参照テーブルの更新差分データに従
    って、代替プログラム格納エリアにダウンロードされた
    該当ルーチン部分のテーブル内データのみを書き換え、
    あるいは追加するよう構成されたファームウエアのプロ
    グラム制御装置。
JP19798796A 1996-07-26 1996-07-26 ファームウエアのプログラム制御装置 Pending JPH1040094A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19798796A JPH1040094A (ja) 1996-07-26 1996-07-26 ファームウエアのプログラム制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19798796A JPH1040094A (ja) 1996-07-26 1996-07-26 ファームウエアのプログラム制御装置

Publications (1)

Publication Number Publication Date
JPH1040094A true JPH1040094A (ja) 1998-02-13

Family

ID=16383633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19798796A Pending JPH1040094A (ja) 1996-07-26 1996-07-26 ファームウエアのプログラム制御装置

Country Status (1)

Country Link
JP (1) JPH1040094A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005173746A (ja) * 2003-12-09 2005-06-30 Yokogawa Electric Corp メモリ装置及びメモリ装置のアクセス方法
JP2005235087A (ja) * 2004-02-23 2005-09-02 Nec Corp 携帯端末の不具合調査システム,方法,携帯端末およびプログラム
JP2008102761A (ja) * 2006-10-19 2008-05-01 Mitsubishi Electric Corp 組み込みファームウェアの更新方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005173746A (ja) * 2003-12-09 2005-06-30 Yokogawa Electric Corp メモリ装置及びメモリ装置のアクセス方法
JP2005235087A (ja) * 2004-02-23 2005-09-02 Nec Corp 携帯端末の不具合調査システム,方法,携帯端末およびプログラム
JP4635452B2 (ja) * 2004-02-23 2011-02-23 日本電気株式会社 携帯端末の不具合調査システム,方法,携帯端末およびプログラム
JP2008102761A (ja) * 2006-10-19 2008-05-01 Mitsubishi Electric Corp 組み込みファームウェアの更新方法

Similar Documents

Publication Publication Date Title
US6374353B1 (en) Information processing apparatus method of booting information processing apparatus at a high speed
US5835760A (en) Method and arrangement for providing BIOS to a host computer
US5913058A (en) System and method for using a real mode bios interface to read physical disk sectors after the operating system has loaded and before the operating system device drivers have loaded
US6834384B2 (en) Methods and apparatus for upgrading firmware in an embedded system
GB2202657A (en) Computer system having cpu-mode-independent addressing
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
EP0330226B1 (en) Apparatus of and method for executing subprogram in bank switching data processing system
JPH05242057A (ja) マルチプロセッサシステムの起動方式
US20060004982A1 (en) System and method for simulating real-mode memory access with access to extended memory
JP3563768B2 (ja) Romプログラム変更装置
JP3616402B2 (ja) 拡張可能なレジスタを提供するデータ処理システムおよびその方法
US20030005212A1 (en) Method and apparatus for dynamically modifying a stored program
KR100223844B1 (ko) 옵션 자동 설정 회로
JPH1040094A (ja) ファームウエアのプログラム制御装置
EP0755538B1 (en) Apparatus and method for updating information in a writable microcode control store
JP3918434B2 (ja) 情報処理装置
JP2004535642A (ja) 記憶装置におけるアドレス指定のための中央処理装置の制御方法および制御装置
JP3858013B2 (ja) 複数の個別記憶アドレス領域内に記憶された可変長命令の実行
JP2001306307A (ja) ファームウェアの処理方法。
JPH08305561A (ja) ファームウエアダウンロード方法とその装置
JP3442972B2 (ja) 情報処理装置および書き換え可能型不揮発性メモリの書き換え方法
JP2000187533A (ja) ファームウェアによるハードウェア初期化方式
JP2004126658A (ja) プロセッサシステム
JPH07191856A (ja) 情報処理装置
JP2002140205A (ja) データ処理装置およびデータ処理装置のブート処理方法