hamayan です。 "Fujisawa> セクションに関しては、図書館でトラ技のバックナンバーを探してみました。 "Fujisawa> 2002年3月号の「特集 H8マイコン活用テクニック」に期待して、特集部分を "Fujisawa> 何度も読みましたが、セクションの書き方に関する情報には辿りつけませんでし "Fujisawa> た。 "Fujisawa> (収穫といえば、秋月のCコンパイラマニュアルPDFの20ページにセクション名の "Fujisawa> 意味が書いてあったぐらいで・・・) うーん、そうですねー、トラ技のバックナンバーのページを見たら、2002年3月号はアセンブラ までですね。 どうも、2001年6月号の SH2の記事とごちゃごちゃに成っていました。m(__)m あれも、日立のコンパイラの話なので、参考に成ります。一部アセンブラで、後はC言語で DやBセクションの初期化を行う例が掲載されています。 "Fujisawa> > ROM(D,R) ROM化するので、Dセクションの内容がRセクションにコピーされるよ!って宣言です。 "Fujisawa> > VECTOR(0),P,C,D(100),R,B(0FFEF10) VECTORは割込みベクター、それに続いて、P、C、DセクションをROM領域に取りま す。 Dのコピー先のRセクションと、Bセクションを内蔵RAM領域に取っています。 そんなに、難しい話では無いと思います。 Cコンパイラー自体は、ROM化なんてきっと気にしていないのでしょうから、セクションの 処理は、もっぱらアセンブラで行う事に成ります。と言いますか、セクションの初期化が終わ って初めて、C言語で作成したコードが走る訳ですが。<−前提としてです。 秋月のアセンブラのマニュアル、H8MAN.TXTに、アセンブラで使用できる演算子の説明 が掲載されています。C言語で作成されたセクションのサイズや、開始位置をプログラマが手計 算で求める事は困難なので、STARTOFとか、SIZEOFとかの演算子を利用します。 起動直後、スタックの設定を終えた辺りで、 mov.l #(STARTOF D),er5 で、Dセクションのアドレスを取得できます。 同様の手順で、 mov.l #(STARTOF R),er6 で、Rセクションの取得、 mov.l #(SIZEOF D),er4 で、Dセクションのサイズ、 後はこの二つのアドレス間で、データ−のコピーを行えば良いのです。 クリアは、 mov.l #(STARTOF B),er5 mov.l #(SIZEOF B),er4 でクリアするコードが書けると思います。