cc-rx コンパイラー のセクションについて (RX72M)

お世話になります。

cc-rx コンパイラー のセクションの使い方には 困っている、

教えていただければ、有難いとおもいます。

CPU RX72Mの評価ボードを使用していますが(AP-RX72M-0A)

CS+ V8.04 ; CC-RX V3.02.00 の環境です。

拡張のSDRAMを使用するのですが、

下記のグローバル変数(TEMP_SDRAM_DATA[256]) は SDRAMのセクション アドレス: 0x08000000 に配置しています。

//----------------------------------
#pragma section sdram
char TEMP_SDRAM_DATA[256];
#pragma section

//----------------------------------

上記の定義では、 ビルドして、 SDRAMを正常アクセスできるようになりました、

しかし SDRAMのセクショ部には 下記に int (32Bit)型の変数を定義したら、

//----------------------------------
#pragma section sdram
int Test777;
#pragma section

//----------------------------------

 

ソフトをビルドしたら、下記のエラーが出ました。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

0561120:Section address is not assigned to "Bsdram"
F0563100:Section address overflow out of range : "Bsdram"

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

SDRAMのセクションの定義は 下記画像の通りです

 

 

 

どうか、 SDRAMのセクション内の変数に対して

3タイプ :char, short , int 型変数に使える方法を教えていただけませんか?

 

宜しくお願いいたします

 

 

Parents
  • RZFanさん、こんにちは。NoMaYと申します。

    念の為、確認したいのですが、この相談は、以下のように3つセクションを定義すれば良いことは分かっているけれども、諸般の事情でそうしたくない(1つだけセクションを定義したい)ので、どうすればよいか?という内容で合っていますでしょうか?(勘ですけども、Crusoeさんのリプライは、その次元でのリプライのような気がしたのです、、、でも、ひょっとして、もっと素朴な次元での相談なのかも?とも思いましたので、、、)

    Bsdram
    Bsdram_2
    Bsdram_1

    CS+の画面コピー

     

  • NoMaYさん
       
      ご指導、ありがとうございます。
      ご教授して頂いた通りに 
      
      セクション定義は 以下したら

      Bsdram
      Bsdram_2
      Bsdram_1

    下記のような char , short , int 型変数に配置できました、ビルドOK、正常動作できました。

      
    ------------------------------------------------------------------------------------------------------
    //
    #define ETHER_REV_SAVE_BUFF_SIZE 2048
    #define ETHER_SEND_SAVE_BUFF_SIZE 1024
    #define ETHER_SEND_SAVE_BUFFS 400
    //
    #pragma section sdram
    //
    struct ETHER_SEND_DATA
    {
    int savePoint;
    int readPoint;
    int size[ETHER_SEND_SAVE_BUFFS] ;
    char data[ETHER_SEND_SAVE_BUFFS][ETHER_SEND_SAVE_BUFF_SIZE];
    };
    //
    struct ETHER_SEND_DATA EtherSendData;
    //
    char EtherRevSaveData[ETHER_REV_SAVE_BUFF_SIZE];
    //
    int TestIntData ; //TEST
    short TestShortData; //TEST
    //
    #pragma section

    --------------------------------------------------------------------------------------------------------
Reply
  • NoMaYさん
       
      ご指導、ありがとうございます。
      ご教授して頂いた通りに 
      
      セクション定義は 以下したら

      Bsdram
      Bsdram_2
      Bsdram_1

    下記のような char , short , int 型変数に配置できました、ビルドOK、正常動作できました。

      
    ------------------------------------------------------------------------------------------------------
    //
    #define ETHER_REV_SAVE_BUFF_SIZE 2048
    #define ETHER_SEND_SAVE_BUFF_SIZE 1024
    #define ETHER_SEND_SAVE_BUFFS 400
    //
    #pragma section sdram
    //
    struct ETHER_SEND_DATA
    {
    int savePoint;
    int readPoint;
    int size[ETHER_SEND_SAVE_BUFFS] ;
    char data[ETHER_SEND_SAVE_BUFFS][ETHER_SEND_SAVE_BUFF_SIZE];
    };
    //
    struct ETHER_SEND_DATA EtherSendData;
    //
    char EtherRevSaveData[ETHER_REV_SAVE_BUFF_SIZE];
    //
    int TestIntData ; //TEST
    short TestShortData; //TEST
    //
    #pragma section

    --------------------------------------------------------------------------------------------------------
Children
No Data