NEC ELECTRONICS NEC ELECTRONICS
NEC electronics NEC electronics NEC
ホーム
アプリケーション
製品情報
先端技術
サポート
WEBショップ
ニュース&イベント
会社案内
header
GO
詳細検索機能/特性検索
サイトマップ お問い合わせ

オプション・バイトの設定(78K0S/Kx1+,78K0/Kx2に共通)

目次

    
FAQ-ID = opb-nnnn
0001: オプション・バイトの設定(78K0S/Kx1+,78K0/Kx2に共通)
0002: オプション・バイトについて(78K0/Kx2,78K0S/Kx1+)
opb
-0001
オプション・バイトの設定(78K0S/Kx1+,78K0/Kx2に共通)
Q1
C言語でオプション・バイトの指定ができないがどうすればよいか?

C言語でオプション・バイトを指定するのに以下のようにプログラムしたいがどうか?
#define  OPTION_BYTE (*(volatile unsigned char *)0x0080)  /* オプション・バイト */
void main(void) {
   OPTION_BYTE = 0xF9;
A1
C言語でプログラムを記述した場合に、オプション・バイトをC言語で記述することはできません。また、オプション・バイトはリセットが解除されて、プログラムを実行する前にハードウェアとしてその内容が参照されるものです。従って、プログラムで書き換えできるようなものではありません。
オプション・バイトはフラッシュ・メモリの80H番地に前もって書き込んでおく必要があります。そのためにはプログラムの一部としてコードを準備します。その際に、一番簡単な方法はオプション・バイトの定義部分だけをDB擬似命令で値を設定したアセンブラ記述のファイルを準備しておき、それをソースとして設定しておくことです。
例えば、78K0S/Kx1+であれば、以下のように記述したファイルを準備します。この名前をopt.asmとすると、PM+の「プロジェクト」メニューの「ソース・ファイルの追加(S)」メニューでopt.asmをソース・ファイルとして追加するだけです。新規にプロジェクトを作るときには、初期設定でソース・ファイルを追加する際に指定しても構いません。
	@@OPTB	CSEG 	AT	0080H
	DB	11111001b		; オプション・バイト
	DB	11111111b		; プロテクト・バイト
	END
オプション・バイトやプロテクト・バイトについては使用される個々のデバイスのマニュアルを参照してください。

(2006/04)

この情報はお役にたちましたか?
back to top  
(2006/04)

opb
-0002
オプション・バイトについて(78K0/Kx2,78K0S/Kx1+)
[はじめに]
マイコン(MCU)では、基本的な機能(命令セットやアーキテクチャ)は各シリーズで共通ですが、パッケージ(端子数)により内蔵された機能が異なったり、同じパッケージでも内蔵されるメモリ(フラッシュ・メモリやRAM)の大きさが異なったりします。さらに、細かな機能(ポートのプルアップ抵抗やPOC電圧など)については、従来のマイコンではマスク・オプションとしてプログラムをROMに書き込むときに指定することができました。しかし、PROM品やフラッシュ・メモリ品ではマスクでのプログラム書込み工程がないので、マスク・オプションそのものが存在しません。
ポートのプルアップ抵抗は殆んどソフトウェアで設定できるようになりましたが、POC電圧のようにソフトウェアで設定できないものも残っています。

コーヒーブレイク
ポートのプルアップ抵抗の設定をソフトウェアで設定できるようにすると、使用するうえでは、自由度が大きくなります。特にフラッシュ・メモリを内蔵した製品では、出荷後の変更も可能になります。その一方で、マスク・オプションのように電源投入時から有効とはいきません。実際にプルアップ抵抗を設定するソフトウェアが実行されるまでは抵抗は有効にはなりません。
また、POC電圧はソフトウェアを実行可能にするための電源電圧を指定するものですから、これをソフトウェアで設定することは原理上不可能です。このように、ソフトウェアで設定できるものとそうでないもの、その違いを認識するのは重要なことです。

[フラッシュ品での対応]
78K0/Kx1のようにマスク品とフラッシュ・メモリ品が存在した製品では、マスク・オプションに対応した個別の製品がラインアップされたものがあります。FAQのフラッシュ品の品名について [78K0/Kx1]をご参照下さい。
この場合には、マスク・オプション分だけ製品が必要で、きちんと選択しないと目的の機能が得られませんでした。特に、途中で関連した仕様を変更した場合には、使用できるデバイスが違ってしまい、新たに手配し直す必要がありました。
All Flashマイコンになって、78K0/Kx2や78K0S/Kx1+の8ビット・マイコンでは新たな対応方法が採用されました。これが、オプション・バイトです。指定できる内容や指定フォーマットは個々のデバイスで異なっています。

[オプション・バイト]
オプション・バイトはマイコンに内蔵されたフラッシュ・メモリの特定アドレスに割り付けられています(一般のプログラム領域に使用される先頭のアドレスである80H番地から始まるアドレスが使用されます)。
電源投入やリセット処理によりマイコンが起動すると、最初にオプション・バイトの内容が参照され、指定された設定がマイコンの機能に反映されます。その後、アプリケーション・プログラムが0番地のリセット・ベクタで示されたアドレスからスタートします。

(2006/09)

この情報はお役にたちましたか?
Q1
78F0533を使用した場合、予約された0x0080-0x0085に通常のプログラムを記述したらどうなるか。
A1
プログラムとして記述したつもりでも、デバイスとしてはこのアドレスはオプション・バイトの指定として解釈します。その内容が本来意図されている機能と異なる設定であれば、正常な動作ができなくなります。

78K0/Kx2や78K0S/Kx1+のマイコンでは、起動時の動作は以下のようになります。

オプション・バイト領域の内容を参照します。
オプション・バイト領域に記載された内容に応じて対応オプション機能が選択されます。
この動作はハードウェアの機能として必ず、自動的に実行され、禁止したり変更したりすることはできません。

リセット・ベクタとして指定された番地からプログラムが実行されます。以降はお客様が記述されたプログラムの実行となりますので、オプション・バイト領域に配置されたプログラムもアドレスが指定されると実行されることになります。

コーヒーブレイク
78K0/Kx2や78K0S/Kx1+はマイコンのアーキテクチャとしては78K0や78K0Sに含まれるデバイスです。このアーキテクチャにはオプション・バイトは存在すぜ、78K0/Kx2や78K0S/Kx1+のマイコンで初めてオプション・バイトが導入されました。アーキテクチャとしてオプション・バイトはサポートされていないので、オプション・バイト領域でもプログラムが指定されれば、オプション・バイトを命令コードとして解釈して命令を実行しようとしてしまいます。
また、RAやCCではオプション・バイトについてのサポートはまだ行なわれていません。

そこで、オプション・バイトだけを指定したファイルを別途準備しておき、ビルド(アセンブルやコンパイルしてリンク)するときにそれを組み込むことで、簡単に対応できます。具体的な方法はFAQのオプション・バイトの設定(78K0S/Kx1+,78K0/Kx2に共通)をご参照下さい。こうすることで、オプション・バイトを特に意識することなくプログラムを組むことができます。

(2006/09)

この情報はお役にたちましたか?
back to top  
(2006/09)









































 ご利用にあたって  個人情報保護について  RSS       © 1995-2008  NEC Electronics Corporation