[H8-ML(2525)] Re: 20KB を超えると転送できない??
From: TK303 <tk303@xxxxxxxxxxxxxx>
Date: 2002年12月07日(土)12時42分07秒
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のキットに
付いてたのとほとんど同じものだったと思います。
(コンパイラ、リンカのバージョンを確認して同じだったような記憶あり)

まずはコンパイラ、リンカメーカー提供のマニュアルを(探してきて)
見ることをお勧めします。


スレッド概略
[2478(R)](起点)
 └[2519(U)]
   └[表示中]
     └[2572(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]