TK303です。 On Fri, 6 Dec 2002 22:28:41 +0900 "Fujisawa Toru" <fujisawa@xxxxxxxxxxxxxxxxxxxxx> wrote: > 初期化つき変数を用いているのでセクションDがRAMにコピーされないと > まずそうですね。仙台電波高専の熊谷さんのページを参考にすると、その > コピーはライブラリ関数を利用されるそうですね。秋月のC言語マニュアル > にはライブラリとしてセクションのコピー関数が見当たらないのですが、 > そのような関数はどこかにあるのでしょうか。。。 日立のHPにあるCコンパイラのマニュアル(PDF)に以下のような記述があります。 ・H8S,H8/300 シリーズ C コンパイラ ユーザーズマニュアル の P.116 より抜粋 >C プログラムの実行環境を設定するために、未初期化データ領域をゼロで >初期化することと、ROM 上にある初期化データをRAM 上にコピーすることが >必要です。このルーチンは標準ライブラリのライブラリ関数「_ _ IN ITS CT 」 >として提供していますので、「(2 )初期設定(INIT)」に示すように、 >初期設定ルーチンの中で「__INITSCT」関数を呼び出すだけで実現できます。 私はこれを元にやったらうまいことコピーと初期化がされるようになりました。 秋月の H8/3664Fのキットでやりました。 3048Fのキットでできるかどうかはわかりませんが、リンカのバージョン次第 みたいなことも書いてあったと思います。 トラ技の付録に付いてた開発環境(コマンドライン版)が秋月のH8/3664Fのキットに 付いてたのとほとんど同じものだったと思います。 (コンパイラ、リンカのバージョンを確認して同じだったような記憶あり) まずはコンパイラ、リンカメーカー提供のマニュアルを(探してきて) 見ることをお勧めします。