ホーム > OAKSボード > OAKSボードQ&A > OAKS8Q&A

Q&A

OAKS8シリーズ

質問
サンプルプログラムのmain関数の外でグローバル変数を宣言すると、Warningが出ます。

回答
OAKS16CDROM内のsampleプログラムでは関数内での変数(auto変数)のみを使用しています。
そのため、スタートアッププログラム(start0.a30)内では、メモリ領域のセクション定義及び初期化の記述がありません。

外部変数、初期値をもつ変数、ROM固定データ等を使用する場合には、スタートアッププログラム中でセクションを設定するかリンク時にセクション指定をしてください。

例:メイン関数の外で、static unsigned int rdata を宣言する場合
→bss_NEセクションとなります。
(初期値をもたない・near領域(0〜ffffh)・データサイズ偶数)

スタートアップ内記述を
.section bss_NE,DATA
.org 400H
としてもOKです。

また、三菱標準スタートアッププログラム(各セクション設定あり)をOAKS16版に修正したものを用意しておりますので、ご利用ください。

定義ファイルダウンロードのページ

なお、三菱標準スタートアッププログラムからOAKS16版への変更内容及び解説は、「OAKS16プログラミングテキスト」内に記載されております。
P30 「2.1 スタートアッププログラム」あたりを参照ください。

学習テキストダウンロードのページ

更新日:2002.07.10

Copyright (C) oaks-ele, Inc.