プログラム領域のRAM割り付けについて

プログラム領域(P)のRAM割り付けについて、ご存知の方がいらっしゃいましたらお教えください。

マイコン:SH7269

開発環境:HEW

コンパイラのユーザーズマニュアルには、初期化データ領域(D)は起動時に_INISCTを使用して初期値をROMからRAMにコピーすると記載があります。

プログラム領域(P)も同様にできるのか試してみましたが、できませんでした。

どのようにしてプログラム領域(P)をRAMに割り付けるのかお教えください。

どうぞ宜しくお願いいたします。

Parents
  • m-ueno さん

    まずプログラムが収まるだけのRAMが必要です、SRAM,DRAM,シンクロナスDRAMとか十分の容量がなければなりません、方法は2種類あります

    1.自動的にRAMに転送して起動する

    HEWのROM化支援機能を使用すれば簡単にできます

    「HEWのROM化支援機能」で検索すれば必要な資料が見つかると思います

    一部がROMから起動してROMからRAMへコピーしてRAMに制御を渡す

    ということになります、少しの設定でできてしまいます。

    2.ROMの初期ブートローダがRAMに媒体のデータを転送して起動させる

    ROMに実行できるプログラムを入れておきます、ROMが起動すると

    SDカード、メモリ、他から実行用のRAMのプログラムをRAMに転送して

    制御をRAMに渡します、RAMのプログラム作成の場合は

    セクションの設定をRAM用に調整します、出来上がった実行プログラムを

    起動したROMが読み込めるように、媒体に入れておきます

    以上です、それほど難度が高くありませんので、がんばってください、ね

  • IKUZO様、どうもありがとうございます。

    ご指摘の「ROM化支援機能」でRAMに割り付けようとしていました。

    初期化データ領域(D)は正常に割り付けられていましたので、プログラム領域(P)も同様にしようとしたところできなかった状況です。

    ROM化支援機能についてアプリケーションノートを参考に、_INTSCTのセクション名を変更し、他のセクションのプログラム領域(P)をRAMに割り振るようにしましたが、コピーできませんでした。

    確かに難易度は高くないはずなので、ちょっとしたことが原因なのだと思います。

    設定など再度確認してみます。

    どうもありがとうございます。

  • m-ueno さん

    アプリケーショーンノート 「RJJ06J0053-0100/Rev.1.00」 の「5.2作成方法」で

    詳しく説明されていますが 、なにか不都合がありましたか?

    「プログラム領域(P)も同様にできるのか試してみましたが、できませんでした」 これだけではどのような状態なのかわかりにくいですが
  • IKUZO様、どうもありがとうございます。

    ROM化支援機能の「ROMからRAMへマップするセクション」で設定すると、C$BSECとC$DSECが自動生成されるのだとばかり思っていました。

    C$BSECとC$DSECにROMからRAMへマップするセクションを追加したところ、正常に動作しました。

    どうもありがとうございました。

Reply
  • IKUZO様、どうもありがとうございます。

    ROM化支援機能の「ROMからRAMへマップするセクション」で設定すると、C$BSECとC$DSECが自動生成されるのだとばかり思っていました。

    C$BSECとC$DSECにROMからRAMへマップするセクションを追加したところ、正常に動作しました。

    どうもありがとうございました。

Children
No Data