1

Microchip C30コンパイラを使用して、PIC24EP256G810プロセッサの補助メモリの最も高い位置にアレイを配置しようとしています。配列は次のように定義されます。

const int __attribute__((space(auxflash), aligned(2048))) AuxFlashRows[8][128]
{
    {
        0x0000,etc,etc
    },
    {
        0x0000,etc,etc
    },
    etc
};

上記のコードはデータを補助メモリスペースに配置しますが、コンパイラにデータを最高の場所に配置させる方法がわかりません。ちょうど今、それはブートローダーによって占められている場所にアレイを置きます。

ありがとう

4

2 に答える 2

0

IIRCリンカーファイル(c30 / support / pic24e / gldのp24EP256GU810.gld)を適合させる必要があります

例:プログラム長セグメント:

プログラム(xr):ORIGIN = 0x200、LENGTH = 0x2A9FE

それに応じて減らします。

于 2012-02-20T14:01:35.090 に答える
0

リンカスクリプトを変更する必要はありません。space()とaligned()に加えて、属性修飾子にaddress()キーワードを追加し、必要なアドレスをハードコーディングする必要があります。私のバージョンのC30ユーザーズガイドのセクション2.3.1に記載されていますが、どちらの方法でも、すべて一緒に記載されている「属性」を検索できます。(申し訳ありませんが、フォームは私のアンダースコアを食べています:)

于 2012-05-03T01:55:40.413 に答える