藤澤@神工大です。お世話になります。 hamayanさん、度々の素早いレスをありがとうございます! それから、みなさんのおかげで転送で止まらなくなりました!! これでやっと、半分壁を越えられました。 > hamayan です。 > うーん、そうですねー、トラ技のバックナンバーのページを見たら、2002年3 月 > 号はアセンブラまでですね。 > どうも、2001年6月号の SH2の記事とごちゃごちゃに成っていました。m(__)m > あれも、日立のコンパイラの話なので、参考に成ります。一部アセンブラで、 > 後はC言語でDやBセクションの初期化を行う例が掲載されています。 2001年6月号なら手元にあったので(SH2は関係ないと思って開かなかったので灯 台下暗しですが・・・)さっそく読んでみました。なるほど、これなら私にも理解 で きそうです。 > "Fujisawa> > ROM(D,R) > ROM化するので、Dセクションの内容がRセクションにコピーされるよ!っ > て宣言です。 そこまではOKです。H38HMAN.TXTの記述は読んではいたのですが、やはり 十分理解できなかったので、クリアやコピーを詳しく教えていただいて助かり ました。 > "Fujisawa> > VECTOR(0),P,C,D(100),R,B(0FFEF10) > VECTORは割込みベクター、それに続いて、P、C、DセクションをRO > M領域に取ります。 > Dのコピー先のRセクションと、Bセクションを内蔵RAM領域に取っていま > す。 ここで、Cセクションに入れるべきデータ使っていないといういことから CANNOT FIND SECTIONエラーが出ますが、一度無視してCを入れてみたら なんと!転送で止まらなくなりました!!最初からみなさんのご指摘のように、 これをやればよかったんですね(随分遠回りしました。)!! 問題の部分は現在、次のようになっています。STARTUP(0)としているのは、 startupとvectorの別ファイルがあるからです(中身は十分理解していません が・・・)。 START STARTUP(0),P,C,D(200),B,R(0FEF10) (こうなる以前は、MAPファイルをみてもCという文字がないのでCセクションが 後ろに 来ているのかどうか私には判断できなかったのですが)やはりご指摘のように、 Cセク ションが後ろに配置されるという問題のようですね(※この点については以下の ページ も参考になりました)。なるほどです。 http://www.fsinet.or.jp/~robot/data/h8/h8.htm > 起動直後、スタックの設定を終えた辺りで、 > > 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 > でクリアするコードが書けると思います。 ありがとうございます! もう半分は、これをやることです。 クリアしていないためか、書いてない文字が液晶に出ていますが、 転送ができたので大変助かりました。 よい報告が出来るように、また頑張ってみます。 ではまた! --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.423 / Virus Database: 238 - Release Date: 2002/11/25