こんばんは。藤澤@神工大です。 たろすけさん,hamayanさん,お返事ありがとうございます。 やはり,セクションの記述がおかしかったようですね。マニュアルを見ても秋 月のドキュメント見てもよく分からなかったので,大変参考になりました。 >だからCはどこ?というのはさておいても、3048のRAMってff000なんかから始ま >ってたっけ?ちなみに、Pはプログラム、Cはリテラル等のデータ、Dは定数、Bは >変数、Rは変数の初期値です。CとDの区別があやふやだけど。 >というわけでSTART行をSTARTUP,P,C,D,R(0),B(ffef10)と書けばいいのでは? > >なお、これはプレフィックスなので#pragma section HOGEとやって書いた関数の >セクション名はPHOGEになります。 なるほどですね。明日もう一度メモリマップを見てみます。 ちなみに今日はCPUボードがお亡くなりになったので,仕事を切り上げて早々 と 帰ってきた次第です。 >Rセクションは、ROM化プログラムならではのセクションで、通常、初期化時に >ROMの中のDセクションの内容を、RAM上に有るRセクションにコピーして、 >使います。Dセクションの内容は初期値付き変数領域です。 >だから、DセクションとRセクションが同じROM領域に設定される事が変だな! >と思った次第です。 >他の人のプログラムを参考にすると、 > >ROM(D,R) >VECTOR(0),P,C,D(100),R,B(0FFEF10) > >辺りで使用していないでしょうか? >Cセクションですが、多分MAPファイルを見ると、Bセクションの後ろに配置され >ていないでしょうか? >CセクションはROM領域に取る領域で、定数が書かれています。 > >CセクションがBセクションの後ろに配置された為に、物凄く広大な領域をROMに >書こうとして、書き込みのパーセント表示が進まなかったのではないでしょうか? まさにそのとおりです。パーセント表示が進まないのでなにか大きな領域に書 こうと している感じでした。 >ちなみに、ROM化を目的としたターゲットのC言語を使ったプログラミングでは、 >先の初期値付き変数領域のコピーと、初期値無し変数領域、つまりBセクションの >クリアを、BOOT時に行う必要がありますが、行っていますか? 確認してみます。 >この辺の解説は、ちょっと前のトラ技に特集されていますよ。 トラ技の特集を探すというのは目からうろこでした。とびとびだったり,全部 読ま なかったりで手元にないので,無いものと思い込んでいました。週末に大きな 本屋 に繰り出して,バックナンバーを探してみることにします。 みなさんのおかげでようやく希望の光が見えてきました。 またチャレンジしてみます!