Cファイルに.co_stackというセクションを作成し、その領域を定義するためにpulStackという配列を作成しました。あなたは、私が2ヶ所でスタックサイズを定義し終わる見ることができるように、スタックのセクションを定義するCファイルからリンカスクリプトへのシンボルのインポート
#define STACK_SIZE 0x00003000 /*!< Stack size (in Words) */
__attribute__ ((section(".co_stack")))
unsigned long pulStack[STACK_SIZE];
私のgccのリンカスクリプトは、この
.co_stack : {
_fstackptr = ORIGIN(ram) + LENGTH(ram) - 4;
_fstacksize = 0x00003000 * 4;
. = (_fstackptr - _fstacksize);
*(.co_stack .co_stack.*)
}
のように見えます。 私の.cファイルではSTACK_SIZE、私の.ldファイルでは_fstacksizeのいずれかです。
どうすればこのように定義できますか?
変数pulStackSizeを次のように作成します。
const unsigned long pulStackSize = sizeof(pulStack);
は、私がこれを行う場合、私は48Kバイトで溢れたスタックを言ってエラーが出る
_fstacksize = STACK_SIZE * 4;
として.ldファイルに_fstacksizeを定義したいです。
シンボルを.cから.ldファイルにインポートするにはどうすればよいですか?
STACK_SIZEにはシンボルがありません。これはMACROです。あなたはEXTERN – neagoegab