JP2004362448A - マイクロコンピュータの制御プログラム及びマイクロコンピュータ装置 - Google Patents
マイクロコンピュータの制御プログラム及びマイクロコンピュータ装置 Download PDFInfo
- Publication number
- JP2004362448A JP2004362448A JP2003162661A JP2003162661A JP2004362448A JP 2004362448 A JP2004362448 A JP 2004362448A JP 2003162661 A JP2003162661 A JP 2003162661A JP 2003162661 A JP2003162661 A JP 2003162661A JP 2004362448 A JP2004362448 A JP 2004362448A
- Authority
- JP
- Japan
- Prior art keywords
- microcomputer
- variable
- data table
- identifier
- shared data
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】開発効率を向上させることができるマイクロコンピュータの制御プログラム及びマイクロコンピュータ装置を提供する。
【解決手段】マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブル10と、マイクロコンピュータの種類を識別するためのマイコン識別子を含むユーザインクルードファイル40とが提供され、制御プログラム60は、起動時にユーザインクルードファイル40を読み込み、該読み込まれたユーザインクルードファイル40からマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブル10から選択し、該選択された変数を用いてハードウェアを制御する。
【選択図】 図1
【解決手段】マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブル10と、マイクロコンピュータの種類を識別するためのマイコン識別子を含むユーザインクルードファイル40とが提供され、制御プログラム60は、起動時にユーザインクルードファイル40を読み込み、該読み込まれたユーザインクルードファイル40からマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブル10から選択し、該選択された変数を用いてハードウェアを制御する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、マイクロコンピュータの制御プログラム及びマイクロコンピュータ装置に関し、特にマイクロコンピュータの種類に依存しない制御プログラムを作成する技術に関するものである。
【0002】
【従来の技術】
従来、例えば車載用のCDプレーヤ、MDプレーヤ、ラジオといった電子機器はワンチップマイクロコンピュータ(以下、「マイコン」と略することもある)を搭載している。このマイコンは、マイコン制御用のプログラム(以下、「制御プログラム」という)に従って動作することにより車載用電子機器としての各種機能を実現する。
【0003】
ところで、車載用電子機器に搭載されるマイコンは、車載用電子機器をモデルチェンジしたり新たに開発する場合に、従来から使用されていたマイコンを他の新たなマイコンに変更することがしばしば行われる。この場合、新たなマイコンに対応した制御プログラムを開発する必要がある。
【0004】
このような制御プログラムの開発における生産性、保守性を向上させる技術の1つとして、車載用電子機器を構成するマイコンに実装されるデバイスドライバの作成方法が開発されている(例えば、特許文献1参照)。この方法では、デバイスドライバを、上位ドライバと下位ドライバとに分割して作成し、従来上位ドライバに包含されていた異常監視部を、下位ドライバに包含させる。なお、異常監視部のレジスタ監視処理には、1マシンサイクルで再設定可能か否かの判断、レジスタの再設定が可能なタイミングか否かの判断や割込の禁止、解除等、マイコンに依存した処理が含まれる。これにより、上位ドライバからマイコンの機種に依存して変更される可能性のある処理が完全に除去されるため、デバイスドライバの移植性が向上すると共に、上位ドライバの生産性、保守性が向上する。
【0005】
【特許文献1】
特開2001−356998号公報
【0006】
【発明が解決しようとする課題】
上述したような従来から使用していたマイコンを他のマイコンに変更する場合、それまで使用していた制御プログラムのソフトウェア仕様やプログラム仕様を引き継ぐことはできても、マイコンで制御するデバイスの機能を指定するためのSFR(Special Function Registers)領域の内容や各メモリ領域のアドレス等は変更又は修正する必要がある。
【0007】
この変更や修正に伴いソースファイルの内容も変更すべき箇所が数多く発生し、ソースファイルの大幅な改造を強いられる場合も多い。また、同一機種(CD、MD、ラジオ等)に適用される制御プログラムであってもマイコンが異なればSFRの変数名、ポートの端子名や内蔵(内部)RAM、外部メモリのアドレス等の大幅な修正が必要である。従って、マイコンに適用される制御プログラムの開発効率を向上させる方策が望まれている。
【0008】
この発明は、上記要請に応えるためになされたものであり、開発効率を向上させることができるマイクロコンピュータの制御プログラム及びマイクロコンピュータ装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
この発明に係るマイクロコンピュータの制御プログラムは、マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルとが提供され、起動時にインクルードファイルを読み込み、該読み込まれたインクルードファイルからマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブルから選択し、該選択された変数を用いてハードウェアを制御するように構成されている。
【0010】
この発明に係るマイクロコンピュータ装置は、マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルと、起動時にインクルードファイルを読み込んでマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブルから選択し、該選択された変数を用いてハードウェアを制御する制御プログラムとを備えている。
【0011】
【発明の実施の形態】
以下、この発明の実施の形態を図面を参照しながら詳細に説明する。
実施の形態1.
図1は、この発明の実施の形態1に係るマイクロコンピュータ装置を概念的に示すブロック図である。このマイクロコンピュータ装置は、共有データテーブル10とマイコンAとから構成されている。マイコンAは、ユーザインクルードファイル40及び制御プログラム60を含んでいる。
【0012】
共有データテーブル10は、複数種類のマイコンの制御プログラムで共通に使用する変数、定数名とそれに対応した、各マイコンのSFR変数、ソフトウェア変数、定数等をまとめて記憶するものである。図2は、共有テータテーブル10の配置を説明するための図であり、マイコンAと種類が異なる他のマイコンBの各メモリマップを示している。図2に示すように、共有データテーブル10は、種類の異なる複数のマイコンA及びマイコンBで共通に使用される。
【0013】
マイコンAのメモリ空間は、内蔵ROM領域21、外部メモリ領域22、内蔵RAM領域23及び内蔵周辺I/O領域24から構成されている。また、マイコンBのメモリ空間は、内部ROM領域31、外部メモリ領域32、内部RAM領域33及びSFR領域34から構成されている。
【0014】
共有データテーブル10は、マイコンAの内蔵ROM領域21及びマイコンBの内部ROM領域31に配置される。この共有データテーブル10の配置は、共有データテーブル10を、マイコンAの内蔵ROM領域21を構成するROM又はマイコンBの内部ROM領域31を構成するROMに実際に書き込むことにより実現してもよいし、又は、独立したROMに書き込まれた共有データテーブル10をマイコンAの内蔵ROM領域21の一部又はマイコンBの内部ROM領域31の一部にマッピングすることにより実現してもよい。この共有データテーブル10は、マイコンAの内蔵ROM領域21及びマイコンBの内部ROM領域31に配置されるので、読み取りは可能であるが書き込み(変更)はできない。
【0015】
図3は、共有データテーブル10の記憶内容を示す。この共有データテーブル10は、当該列の以下の行が複数種類のマイコンで共通に使用される共通変数であることを表すタイトル11(COMMON)、共通変数群12、マイコン識別子13(MICON_A)、マイコン識別子13(MICON_A)で指定されるマイコンAで使用される変数群14、マイコン識別子15(MICON_B)、マイコン識別子15(MICON_B)で指定されるマイコンBで使用される変数群16、・・・から構成されている。
【0016】
共通変数群12は、マイコンの種類に依存しない例えばC言語で記述された各マイコンの制御プログラムで共通的に使用される変数名である。この共通変数群12には、例えばACC(アクセサリ電源)のON/OFF信号であることを表す“ACC_ON_OFF”、ACCのONへの定常移行中であることを表す“ACC_WAIT”、TAPE挿入/EJECTを表す“TAPE_PACK_IN”、TAPE曲の有無を表す“TAPE_MUSICといったSFR変数が定義されている。
【0017】
マイコン識別子13(MICON_A)は、マイコンAで実際に使用されるSFRが当該列の以下の行に定義されていることを表す識別子である。変数群14は、共通変数群12に記載されている共通変数に対応するマイコンAの変数である。例えば共通変数ACC_ON_OFFに対応するマイコンAの変数は“APC0.0”であることを表している。
【0018】
マイコン識別子15(MICON_B)は、マイコンBで実際に使用されるSFRが当該列の以下の行に定義されていることを表す識別子である。変数群16は、共通変数群12に記載されている共通変数に対応するマイコンBの変数である。例えば共通変数ACC_ON_OFFに対応するマイコンBの変数は“BPC0.0”であることを表している。
【0019】
なお、共有データテーブル10の内容には、SFRの定義の他に、内部ソフトウェア変数(PUBLIC部分)、内部ソフトウェア定数、共通マクロ等が含まれる。
【0020】
マイコンAは、上述したように、ユーザインクルードファイル40及び制御プログラム60を備えている。ユーザインクルードファイル40は、ユーザ(プログラマ)が定義するインクルードファイルであり、共有データテーブル10と同様に、マイコンAの内蔵ROM領域21に配置される。このユーザインクルードファイル40は、共有データテーブル10に定義されているSFR変数やソフトウェア変数、定数等を参照するように、プログラマによって作成される。
【0021】
マイコンBも、図示は省略するが、マイコンAと同様に、ユーザインクルードファイル及び制御プログラムを備えている。ユーザインクルードファイルは、ユーザ(プログラマ)が定義し、共有データテーブル10と同様に、マイコンBの内部ROM領域31に配置される。マイコンBのユーザインクルードファイルも、共有データテーブル10に定義されているSFR変数やソフトウェア変数、定数等を参照するように、プログラマによって作成される。
【0022】
図4は、マイコンAのユーザインクルードファイル40の内容を示し、図5はマイコンBのユーザインクルードファイルの内容を示す。マイコンBのユーザインクルードファイルの構成はマイコンAのユーザインクルードファイル40と略同一であるので、以下では、マイコンAのユーザインクルードファイル40についてのみ説明する。
【0023】
ユーザインクルードファイル40の先頭行に記述されるマイコン識別子41には、このユーザインクルードファイル40がマイコンAで使用されることを定義するマイコン識別子41(MICON_A)が記載されている。このマイコン識別子41(MICON_A)は、図3に示した共有データテーブル10のマイコン識別子13(MICON_A)に対応する。
【0024】
また、ユーザインクルードファイル40の次の行にはユーザが定義した変数であるユーザ定義変数42及びそれに対応する共通変数43が#define文を用いて定義されている。図4に示したユーザ定義変数42である“abit_acc_onoff”の内容は、共通変数“ACC_ON_OFF”であることを表している。この共通変数“ACC_ON_OFF”は、図3に示した共有データテーブル10の中の共通変数群12に含まれる“ACC_ON_OFF”に対応する。従って、ユーザ定義変数42として記述された“abit_acc_onoff”は、図3に示した共有データテーブル10の中のマイコンAの実際のSFR変数である“APC0.0”に対応する。
【0025】
このように、ユーザは、図4に示すようなマイコンAに関するユーザインクルードファイル40を記述することによって、ユーザインクルードファイル40及び共有データテーブル10の各変数を関連付け、以て実際のSFR変数等を参照することが可能になっている。
【0026】
制御プログラム60は、例えばC言語で記述されるプログラムであり、共通変数を用いて共有データテーブル10の内容を参照することにより、当該マイコンAを構成するハードウェア又はマイコンAに接続されるデバイスを制御する。この制御プログラム60による動作例は後述する。
【0027】
次に、上記のように構成される、この発明の実施の形態1に係るマイクロコンピュータ装置にマイコンAが適用されている場合の動作を、マイコン識別処理を中心に、図6に示したフローチャートを参照しながら説明する。
【0028】
マイクロコンピュータ装置が起動されると、先ず、マイコンのROM領域からユーザインクルードファイルが読み込まれる(ステップST10)。マイコンAが適用されたマイクロコンピュータ装置の場合、マイコンAの内蔵ROM領域21からマイコンA用のユーザインクルードファイル40が読み込まれる。このユーザインクルードファイル40の先頭行には、図4に示すように、当該ユーザインクルードファイル40がマイコンA用であることを示すマイコン識別子“INDEX=MICON_A”が記述されている。
【0029】
次いで、ユーザインクルードファイルの先頭行に記述されているマイコン識別子41が取得される(ステップST11)。マイコンAが適用されたマイクロコンピュータ装置の場合、ユーザインクルードファイル40の先頭行に記述されているマイコン識別子41から“INDEX=MICON_A”が取得される。
【0030】
次いで、取得されたマイコン識別子41を調べることによりマイクロコンピュータ装置に適用されているマイコンの種別が判断される(ステップST12)。このステップST12において、マイコンAであることが判断されると共有データテーブル10からマイコンA用の変数が選択され(ステップST13)、マイコンBであることが判断されると共有データテーブル10からマイコンB用の変数が選択され(ステップST14)、マイコンCであることが判断されると共有データテーブル10からマイコンA用の変数が選択される(ステップST15)。
【0031】
マイコンAが適用されたマイクロコンピュータ装置の場合、ステップST12においてMICON_Aが取得されることにより自己はマイコンAであることが判断されるので、シーケンスはステップST13に進み、共有データテーブル10からマイコンA用の変数群14が選択される。他のマイコンB及びマイコンCが適用されたマイクロコンピュータ装置の場合も同様である。以上の処理により、異種類のマイコンの制御プログラムであっても、実際に使用するハードウェアに関するSFR変数等を参照できる。
【0032】
以上の処理が終了すると、リセット処理が行われる(ステップST16)。このリセット処理では、制御プログラム60で共通変数が指定された場合に、ステップST13〜ST15で選択された変数群が参照されるように設定する処理が行われる。具体的には、ステップST13〜ST15で選択された変数群を図示しないデータテーブルファイルに設定する初期化が行われる。マイコンAが適用されたマイクロコンピュータ装置の場合、制御プログラム60で共通変数が指定された場合に、ステップST13で選択されたマイコンA用の変数群14が参照されるようにデータテーブルファイルが初期化される。
【0033】
次いで、マイクロコンピュータ装置の機能の1つであるオーディオ処理が行われる(ステップST17)。このオーディオ処理において、共有データテーブル10がどのように使用されるかを、TAPE処理を例に挙げて説明する。以下に説明するTAPE処理は、ACCがオンにされている状態で、ユーザがオーディオ機器の電源ボタンを押し、その後再生ボタンを押すという操作を行った時の処理である。
【0034】
オーディオ機器の電源ボタンが押されると、先ず、リセット処理が開始される。このリセット処理では、RAMが初期化される。この場合、マイコンの種類の違いによって、初期化すべきRAM領域のアドレスが変わってくる。
【0035】
次いで、VDDリセット初期化が行われ、カウントするタイマ変数(RAMに記憶される)やTAPE処理に関係するポートが初期化される。このポートの初期化では、共有データテーブル10で定義されている変数が操作される。次いで、ACCオンリセット初期化が行われ、TAPE機構の電源ポートがオンにされると共に、TAPE機構のメインモータ及びパワーモータがオフにされる。ACCオン、TAPE機構の電源ポートのオン、メインモータ及びパワーモータのオフを行う時に変数が操作される。
【0036】
ユーザがTAPEを挿入すると、TAPE挿入信号が検知される。このTAPE挿入信号の検知を行う時に変数が操作される。テープが挿入されたら、メインモータ及びパワーモータの制御、テープの種類、つまりMETALテープであるかNORMALテープであるかがテープセレクトの信号から検知される。その後、自動的に演奏開始のためのモータがオンにされ、テープリールの回転等が開始される。メインモータ及びパワーモータの制御、テープ種類の検知、モータのオンを行う時に変数が操作される。上述したような、各種処理で操作される変数が共有データテーブル10にマイコンの種類毎に変数群として格納され、共有化が可能になっている。
【0037】
以上のように、この発明の実施の形態1に係るマイクロコンピュータ装置によれば、種類が異なるマイコンAとマイコンBとで、ハードウェアを操作する変数を共有化でき、使用するマイコンの種類の変更に伴う制御プログラムの書き換えは、ユーザインクルードファイル内の#define文を一行だけ書き換えることで済むので、マイコンに適用される制御プログラムの開発効率の向上を図ることができる。
【0038】
【発明の効果】
以上のように、この発明によれば、複数種類のマイクロコンピュータを制御するための変数が定義された共有データテーブル及びマイコン識別子を含むインクルードファイルとを備え、制御プログラムは、起動時にインクルードファイルを読み込んでマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブルから選択し、該選択された変数を用いてハードウェアを制御するように構成したので、従来から使用していたマイコンを他の新たなマイコンに変更する場合は、インクルードファイルに含まれるマイコン識別子を新たなマイコンのマイコン識別子に変更するだけでその変数が使用可能になる。その結果、制御プログラムは従来のものをそのまま使用できるので、制御プログラムの開発効率を向上させることができる。
【図面の簡単な説明】
【図1】この発明の実施の形態1に係るマイクロコンピュータ装置を概念的に示すブロック図である。
【図2】この発明の実施の形態1に係るマイクロコンピュータ装置で使用される共有テータテーブルの配置を説明するための図である。
【図3】この発明の実施の形態1に係るマイクロコンピュータ装置で使用される共有テータテーブルの内容を示す図である。
【図4】この発明の実施の形態1に係るマイクロコンピュータ装置で使用されるマイコンのユーザインクルードファイルの内容を示す図である。
【図5】この発明の実施の形態1に係るマイクロコンピュータ装置で使用される他のマイコンのユーザインクルードファイルの内容を示す図である。
【図6】この発明の実施の形態1に係るマイクロコンピュータ装置で行われる処理を示すフローチャートである。
【符号の説明】
10 共有データテーブル、11 タイトル、12 共通変数群、13,15マイコン識別子、14,16 変数群、21 内蔵ROM領域、22 外部メモリ領域、23 内蔵RAM領域、24 内蔵周辺I/O領域、31 内部ROM領域、32 外部メモリ領域、33 内部RAM領域、34 SFR領域、40 ユーザインクルードファイル、41 マイコン識別子、42 ユーザ定義定数、43 共通変数、60 制御プログラム、A,B マイコン。
【発明の属する技術分野】
この発明は、マイクロコンピュータの制御プログラム及びマイクロコンピュータ装置に関し、特にマイクロコンピュータの種類に依存しない制御プログラムを作成する技術に関するものである。
【0002】
【従来の技術】
従来、例えば車載用のCDプレーヤ、MDプレーヤ、ラジオといった電子機器はワンチップマイクロコンピュータ(以下、「マイコン」と略することもある)を搭載している。このマイコンは、マイコン制御用のプログラム(以下、「制御プログラム」という)に従って動作することにより車載用電子機器としての各種機能を実現する。
【0003】
ところで、車載用電子機器に搭載されるマイコンは、車載用電子機器をモデルチェンジしたり新たに開発する場合に、従来から使用されていたマイコンを他の新たなマイコンに変更することがしばしば行われる。この場合、新たなマイコンに対応した制御プログラムを開発する必要がある。
【0004】
このような制御プログラムの開発における生産性、保守性を向上させる技術の1つとして、車載用電子機器を構成するマイコンに実装されるデバイスドライバの作成方法が開発されている(例えば、特許文献1参照)。この方法では、デバイスドライバを、上位ドライバと下位ドライバとに分割して作成し、従来上位ドライバに包含されていた異常監視部を、下位ドライバに包含させる。なお、異常監視部のレジスタ監視処理には、1マシンサイクルで再設定可能か否かの判断、レジスタの再設定が可能なタイミングか否かの判断や割込の禁止、解除等、マイコンに依存した処理が含まれる。これにより、上位ドライバからマイコンの機種に依存して変更される可能性のある処理が完全に除去されるため、デバイスドライバの移植性が向上すると共に、上位ドライバの生産性、保守性が向上する。
【0005】
【特許文献1】
特開2001−356998号公報
【0006】
【発明が解決しようとする課題】
上述したような従来から使用していたマイコンを他のマイコンに変更する場合、それまで使用していた制御プログラムのソフトウェア仕様やプログラム仕様を引き継ぐことはできても、マイコンで制御するデバイスの機能を指定するためのSFR(Special Function Registers)領域の内容や各メモリ領域のアドレス等は変更又は修正する必要がある。
【0007】
この変更や修正に伴いソースファイルの内容も変更すべき箇所が数多く発生し、ソースファイルの大幅な改造を強いられる場合も多い。また、同一機種(CD、MD、ラジオ等)に適用される制御プログラムであってもマイコンが異なればSFRの変数名、ポートの端子名や内蔵(内部)RAM、外部メモリのアドレス等の大幅な修正が必要である。従って、マイコンに適用される制御プログラムの開発効率を向上させる方策が望まれている。
【0008】
この発明は、上記要請に応えるためになされたものであり、開発効率を向上させることができるマイクロコンピュータの制御プログラム及びマイクロコンピュータ装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
この発明に係るマイクロコンピュータの制御プログラムは、マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルとが提供され、起動時にインクルードファイルを読み込み、該読み込まれたインクルードファイルからマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブルから選択し、該選択された変数を用いてハードウェアを制御するように構成されている。
【0010】
この発明に係るマイクロコンピュータ装置は、マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルと、起動時にインクルードファイルを読み込んでマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブルから選択し、該選択された変数を用いてハードウェアを制御する制御プログラムとを備えている。
【0011】
【発明の実施の形態】
以下、この発明の実施の形態を図面を参照しながら詳細に説明する。
実施の形態1.
図1は、この発明の実施の形態1に係るマイクロコンピュータ装置を概念的に示すブロック図である。このマイクロコンピュータ装置は、共有データテーブル10とマイコンAとから構成されている。マイコンAは、ユーザインクルードファイル40及び制御プログラム60を含んでいる。
【0012】
共有データテーブル10は、複数種類のマイコンの制御プログラムで共通に使用する変数、定数名とそれに対応した、各マイコンのSFR変数、ソフトウェア変数、定数等をまとめて記憶するものである。図2は、共有テータテーブル10の配置を説明するための図であり、マイコンAと種類が異なる他のマイコンBの各メモリマップを示している。図2に示すように、共有データテーブル10は、種類の異なる複数のマイコンA及びマイコンBで共通に使用される。
【0013】
マイコンAのメモリ空間は、内蔵ROM領域21、外部メモリ領域22、内蔵RAM領域23及び内蔵周辺I/O領域24から構成されている。また、マイコンBのメモリ空間は、内部ROM領域31、外部メモリ領域32、内部RAM領域33及びSFR領域34から構成されている。
【0014】
共有データテーブル10は、マイコンAの内蔵ROM領域21及びマイコンBの内部ROM領域31に配置される。この共有データテーブル10の配置は、共有データテーブル10を、マイコンAの内蔵ROM領域21を構成するROM又はマイコンBの内部ROM領域31を構成するROMに実際に書き込むことにより実現してもよいし、又は、独立したROMに書き込まれた共有データテーブル10をマイコンAの内蔵ROM領域21の一部又はマイコンBの内部ROM領域31の一部にマッピングすることにより実現してもよい。この共有データテーブル10は、マイコンAの内蔵ROM領域21及びマイコンBの内部ROM領域31に配置されるので、読み取りは可能であるが書き込み(変更)はできない。
【0015】
図3は、共有データテーブル10の記憶内容を示す。この共有データテーブル10は、当該列の以下の行が複数種類のマイコンで共通に使用される共通変数であることを表すタイトル11(COMMON)、共通変数群12、マイコン識別子13(MICON_A)、マイコン識別子13(MICON_A)で指定されるマイコンAで使用される変数群14、マイコン識別子15(MICON_B)、マイコン識別子15(MICON_B)で指定されるマイコンBで使用される変数群16、・・・から構成されている。
【0016】
共通変数群12は、マイコンの種類に依存しない例えばC言語で記述された各マイコンの制御プログラムで共通的に使用される変数名である。この共通変数群12には、例えばACC(アクセサリ電源)のON/OFF信号であることを表す“ACC_ON_OFF”、ACCのONへの定常移行中であることを表す“ACC_WAIT”、TAPE挿入/EJECTを表す“TAPE_PACK_IN”、TAPE曲の有無を表す“TAPE_MUSICといったSFR変数が定義されている。
【0017】
マイコン識別子13(MICON_A)は、マイコンAで実際に使用されるSFRが当該列の以下の行に定義されていることを表す識別子である。変数群14は、共通変数群12に記載されている共通変数に対応するマイコンAの変数である。例えば共通変数ACC_ON_OFFに対応するマイコンAの変数は“APC0.0”であることを表している。
【0018】
マイコン識別子15(MICON_B)は、マイコンBで実際に使用されるSFRが当該列の以下の行に定義されていることを表す識別子である。変数群16は、共通変数群12に記載されている共通変数に対応するマイコンBの変数である。例えば共通変数ACC_ON_OFFに対応するマイコンBの変数は“BPC0.0”であることを表している。
【0019】
なお、共有データテーブル10の内容には、SFRの定義の他に、内部ソフトウェア変数(PUBLIC部分)、内部ソフトウェア定数、共通マクロ等が含まれる。
【0020】
マイコンAは、上述したように、ユーザインクルードファイル40及び制御プログラム60を備えている。ユーザインクルードファイル40は、ユーザ(プログラマ)が定義するインクルードファイルであり、共有データテーブル10と同様に、マイコンAの内蔵ROM領域21に配置される。このユーザインクルードファイル40は、共有データテーブル10に定義されているSFR変数やソフトウェア変数、定数等を参照するように、プログラマによって作成される。
【0021】
マイコンBも、図示は省略するが、マイコンAと同様に、ユーザインクルードファイル及び制御プログラムを備えている。ユーザインクルードファイルは、ユーザ(プログラマ)が定義し、共有データテーブル10と同様に、マイコンBの内部ROM領域31に配置される。マイコンBのユーザインクルードファイルも、共有データテーブル10に定義されているSFR変数やソフトウェア変数、定数等を参照するように、プログラマによって作成される。
【0022】
図4は、マイコンAのユーザインクルードファイル40の内容を示し、図5はマイコンBのユーザインクルードファイルの内容を示す。マイコンBのユーザインクルードファイルの構成はマイコンAのユーザインクルードファイル40と略同一であるので、以下では、マイコンAのユーザインクルードファイル40についてのみ説明する。
【0023】
ユーザインクルードファイル40の先頭行に記述されるマイコン識別子41には、このユーザインクルードファイル40がマイコンAで使用されることを定義するマイコン識別子41(MICON_A)が記載されている。このマイコン識別子41(MICON_A)は、図3に示した共有データテーブル10のマイコン識別子13(MICON_A)に対応する。
【0024】
また、ユーザインクルードファイル40の次の行にはユーザが定義した変数であるユーザ定義変数42及びそれに対応する共通変数43が#define文を用いて定義されている。図4に示したユーザ定義変数42である“abit_acc_onoff”の内容は、共通変数“ACC_ON_OFF”であることを表している。この共通変数“ACC_ON_OFF”は、図3に示した共有データテーブル10の中の共通変数群12に含まれる“ACC_ON_OFF”に対応する。従って、ユーザ定義変数42として記述された“abit_acc_onoff”は、図3に示した共有データテーブル10の中のマイコンAの実際のSFR変数である“APC0.0”に対応する。
【0025】
このように、ユーザは、図4に示すようなマイコンAに関するユーザインクルードファイル40を記述することによって、ユーザインクルードファイル40及び共有データテーブル10の各変数を関連付け、以て実際のSFR変数等を参照することが可能になっている。
【0026】
制御プログラム60は、例えばC言語で記述されるプログラムであり、共通変数を用いて共有データテーブル10の内容を参照することにより、当該マイコンAを構成するハードウェア又はマイコンAに接続されるデバイスを制御する。この制御プログラム60による動作例は後述する。
【0027】
次に、上記のように構成される、この発明の実施の形態1に係るマイクロコンピュータ装置にマイコンAが適用されている場合の動作を、マイコン識別処理を中心に、図6に示したフローチャートを参照しながら説明する。
【0028】
マイクロコンピュータ装置が起動されると、先ず、マイコンのROM領域からユーザインクルードファイルが読み込まれる(ステップST10)。マイコンAが適用されたマイクロコンピュータ装置の場合、マイコンAの内蔵ROM領域21からマイコンA用のユーザインクルードファイル40が読み込まれる。このユーザインクルードファイル40の先頭行には、図4に示すように、当該ユーザインクルードファイル40がマイコンA用であることを示すマイコン識別子“INDEX=MICON_A”が記述されている。
【0029】
次いで、ユーザインクルードファイルの先頭行に記述されているマイコン識別子41が取得される(ステップST11)。マイコンAが適用されたマイクロコンピュータ装置の場合、ユーザインクルードファイル40の先頭行に記述されているマイコン識別子41から“INDEX=MICON_A”が取得される。
【0030】
次いで、取得されたマイコン識別子41を調べることによりマイクロコンピュータ装置に適用されているマイコンの種別が判断される(ステップST12)。このステップST12において、マイコンAであることが判断されると共有データテーブル10からマイコンA用の変数が選択され(ステップST13)、マイコンBであることが判断されると共有データテーブル10からマイコンB用の変数が選択され(ステップST14)、マイコンCであることが判断されると共有データテーブル10からマイコンA用の変数が選択される(ステップST15)。
【0031】
マイコンAが適用されたマイクロコンピュータ装置の場合、ステップST12においてMICON_Aが取得されることにより自己はマイコンAであることが判断されるので、シーケンスはステップST13に進み、共有データテーブル10からマイコンA用の変数群14が選択される。他のマイコンB及びマイコンCが適用されたマイクロコンピュータ装置の場合も同様である。以上の処理により、異種類のマイコンの制御プログラムであっても、実際に使用するハードウェアに関するSFR変数等を参照できる。
【0032】
以上の処理が終了すると、リセット処理が行われる(ステップST16)。このリセット処理では、制御プログラム60で共通変数が指定された場合に、ステップST13〜ST15で選択された変数群が参照されるように設定する処理が行われる。具体的には、ステップST13〜ST15で選択された変数群を図示しないデータテーブルファイルに設定する初期化が行われる。マイコンAが適用されたマイクロコンピュータ装置の場合、制御プログラム60で共通変数が指定された場合に、ステップST13で選択されたマイコンA用の変数群14が参照されるようにデータテーブルファイルが初期化される。
【0033】
次いで、マイクロコンピュータ装置の機能の1つであるオーディオ処理が行われる(ステップST17)。このオーディオ処理において、共有データテーブル10がどのように使用されるかを、TAPE処理を例に挙げて説明する。以下に説明するTAPE処理は、ACCがオンにされている状態で、ユーザがオーディオ機器の電源ボタンを押し、その後再生ボタンを押すという操作を行った時の処理である。
【0034】
オーディオ機器の電源ボタンが押されると、先ず、リセット処理が開始される。このリセット処理では、RAMが初期化される。この場合、マイコンの種類の違いによって、初期化すべきRAM領域のアドレスが変わってくる。
【0035】
次いで、VDDリセット初期化が行われ、カウントするタイマ変数(RAMに記憶される)やTAPE処理に関係するポートが初期化される。このポートの初期化では、共有データテーブル10で定義されている変数が操作される。次いで、ACCオンリセット初期化が行われ、TAPE機構の電源ポートがオンにされると共に、TAPE機構のメインモータ及びパワーモータがオフにされる。ACCオン、TAPE機構の電源ポートのオン、メインモータ及びパワーモータのオフを行う時に変数が操作される。
【0036】
ユーザがTAPEを挿入すると、TAPE挿入信号が検知される。このTAPE挿入信号の検知を行う時に変数が操作される。テープが挿入されたら、メインモータ及びパワーモータの制御、テープの種類、つまりMETALテープであるかNORMALテープであるかがテープセレクトの信号から検知される。その後、自動的に演奏開始のためのモータがオンにされ、テープリールの回転等が開始される。メインモータ及びパワーモータの制御、テープ種類の検知、モータのオンを行う時に変数が操作される。上述したような、各種処理で操作される変数が共有データテーブル10にマイコンの種類毎に変数群として格納され、共有化が可能になっている。
【0037】
以上のように、この発明の実施の形態1に係るマイクロコンピュータ装置によれば、種類が異なるマイコンAとマイコンBとで、ハードウェアを操作する変数を共有化でき、使用するマイコンの種類の変更に伴う制御プログラムの書き換えは、ユーザインクルードファイル内の#define文を一行だけ書き換えることで済むので、マイコンに適用される制御プログラムの開発効率の向上を図ることができる。
【0038】
【発明の効果】
以上のように、この発明によれば、複数種類のマイクロコンピュータを制御するための変数が定義された共有データテーブル及びマイコン識別子を含むインクルードファイルとを備え、制御プログラムは、起動時にインクルードファイルを読み込んでマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブルから選択し、該選択された変数を用いてハードウェアを制御するように構成したので、従来から使用していたマイコンを他の新たなマイコンに変更する場合は、インクルードファイルに含まれるマイコン識別子を新たなマイコンのマイコン識別子に変更するだけでその変数が使用可能になる。その結果、制御プログラムは従来のものをそのまま使用できるので、制御プログラムの開発効率を向上させることができる。
【図面の簡単な説明】
【図1】この発明の実施の形態1に係るマイクロコンピュータ装置を概念的に示すブロック図である。
【図2】この発明の実施の形態1に係るマイクロコンピュータ装置で使用される共有テータテーブルの配置を説明するための図である。
【図3】この発明の実施の形態1に係るマイクロコンピュータ装置で使用される共有テータテーブルの内容を示す図である。
【図4】この発明の実施の形態1に係るマイクロコンピュータ装置で使用されるマイコンのユーザインクルードファイルの内容を示す図である。
【図5】この発明の実施の形態1に係るマイクロコンピュータ装置で使用される他のマイコンのユーザインクルードファイルの内容を示す図である。
【図6】この発明の実施の形態1に係るマイクロコンピュータ装置で行われる処理を示すフローチャートである。
【符号の説明】
10 共有データテーブル、11 タイトル、12 共通変数群、13,15マイコン識別子、14,16 変数群、21 内蔵ROM領域、22 外部メモリ領域、23 内蔵RAM領域、24 内蔵周辺I/O領域、31 内部ROM領域、32 外部メモリ領域、33 内部RAM領域、34 SFR領域、40 ユーザインクルードファイル、41 マイコン識別子、42 ユーザ定義定数、43 共通変数、60 制御プログラム、A,B マイコン。
Claims (4)
- マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、
マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルとが提供され、
起動時に前記インクルードファイルを読み込み、
該読み込まれたインクルードファイルから前記マイコン識別子を取得し、
該取得されたマイコン識別子に対応する変数を前記共有データテーブルから選択し、
該選択された変数を用いて前記ハードウェアを制御する
ことを特徴とするマイクロコンピュータの制御プログラム。 - 共有データテーブルは、複数種類のマイクロコンピュータで共通に使用される共通変数に、前記複数種類のマイクロコンピュータでそれぞれ使用される複数の変数を対応付けて記憶し、
インクルードファイルは、共通変数を含み、
前記インクルードファイルに含まれる共通変数に対応する前記共有データテーブル中の共通変数に対応付けられており、且つマイコン識別子に対応する変数を用いてハードウェアを制御することを特徴とする請求項1記載のマイクロコンピュータの制御プログラム。 - マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、
マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルと、
起動時に前記インクルードファイルを読み込んで前記マイコン識別子を取得し、この取得されたマイコン識別子に対応する変数を前記共有データテーブルから選択し、この選択された変数を用いてハードウェアを制御する制御プログラム
とを備えたことを特徴とするマイクロコンピュータ装置。 - 共有データテーブルは、複数種類のマイクロコンピュータで共通に使用される共通変数に、前記複数種類のマイクロコンピュータでそれぞれ使用される複数の変数を対応付けて記憶し、
インクルードファイルは、共通変数を含み、
制御プログラムは、起動時に前記インクルードファイルを読み込んでマイコン識別子を取得し、前記インクルードファイルに含まれる共通変数に対応する前記共有データテーブル中の共通変数に対応付けられ、且つ該取得されたマイコン識別子に対応する変数を選択し、該選択された変数を用いてハードウェアを制御する
ことを特徴とする請求項3記載のマイクロコンピュータ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003162661A JP2004362448A (ja) | 2003-06-06 | 2003-06-06 | マイクロコンピュータの制御プログラム及びマイクロコンピュータ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003162661A JP2004362448A (ja) | 2003-06-06 | 2003-06-06 | マイクロコンピュータの制御プログラム及びマイクロコンピュータ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004362448A true JP2004362448A (ja) | 2004-12-24 |
Family
ID=34054741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003162661A Pending JP2004362448A (ja) | 2003-06-06 | 2003-06-06 | マイクロコンピュータの制御プログラム及びマイクロコンピュータ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004362448A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160247002A1 (en) * | 2015-02-23 | 2016-08-25 | Cisco Technology, Inc. | Detection of Hardware Tampering |
-
2003
- 2003-06-06 JP JP2003162661A patent/JP2004362448A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160247002A1 (en) * | 2015-02-23 | 2016-08-25 | Cisco Technology, Inc. | Detection of Hardware Tampering |
US9940486B2 (en) * | 2015-02-23 | 2018-04-10 | Cisco Technology, Inc. | Detection of hardware tampering |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007047993A (ja) | 制御回路、それを用いた電子機器およびファームウェアの更新方法 | |
WO1998024021A1 (fr) | Systeme de commande de micro-ordinateur | |
JP2011095952A (ja) | ファームウェア更新方法および電子機器 | |
CN107391120A (zh) | 一种启动控制方法、电子设备及计算机可读存储介质 | |
JP2004362448A (ja) | マイクロコンピュータの制御プログラム及びマイクロコンピュータ装置 | |
CN100485658C (zh) | 游戏机以及游戏机的启动方法 | |
TWI416324B (zh) | 用於嵌入式控制器裝置之結構化虛擬暫存器 | |
JP2001154838A (ja) | ソフトウェア編集装置及び記憶媒体 | |
JP2009053993A (ja) | ファイルシステム管理装置 | |
JP2009514073A (ja) | 装置機能が相入れる制御チップを持つ記憶装置及びその製造方法 | |
JP2001154839A (ja) | 読込み情報を管理する記録媒体および情報処理装置 | |
JPS5848932B2 (ja) | メモリ拡張方式 | |
JPH1145206A (ja) | 電子装置、メモリ起動方法及びメモリ起動プログラムを記録した記録媒体 | |
JP2005151453A (ja) | 構成要素データの管理方法 | |
JP2006126987A (ja) | 画像処理装置 | |
JP2004199827A (ja) | データ書き込み装置 | |
JPS59184947A (ja) | プログラムの記憶方式 | |
CN115344313B (zh) | 安卓系统分区的挂载方法、电子设备和机器可读存储介质 | |
JP5673844B2 (ja) | 情報処理装置,基本システム起動方法,及び基本システム起動プログラム | |
JPH0540637A (ja) | 基本入出力システムのロード方式 | |
JPH0268624A (ja) | プログラム修正回路 | |
JPH06214773A (ja) | 自動プログラム作成装置 | |
JP2004355048A (ja) | プロセッサ起動方法及びプロセッサ起動プログラム並びにプロセッサ起動プログラムを有するプロセッサ | |
JP2010165202A (ja) | 情報処理装置及びファイル高速読み出し方法 | |
JP4140426B2 (ja) | 制御装置および制御プログラム |