カスタム リンカー スクリプトを記述する場合は、次の点に留意してください。
- ベクター セクションが MicroBlaze ハードウェアで定義された適切なメモリに割り当てられていることを確認します。
- スタックおよびヒープは
.bss
セクションに配置します。_stack
変数をこの領域の_STACK_SIZE
の後に設定し、_heap_start
変数を_STACK_SIZE
の後の次のロケーションに設定します。スタックおよびヒープは、ハードウェアおよびシミュレーションで初期化する必要がないので、_bss_end
変数は.bss
およびCOMMON
の後に定義します。注記:.bss
セクションの境界にはスタックおよびヒープは含まれません。 -
_SDATA_START__
、_SDATA_END__
、SDATA2_START
、_SDATA2_END__
、_SBSS2_START__
、_SBSS2_END__
、_bss_start
、_bss_end
、_sbss_start
、および_sbss_end
変数は、それぞれsdata
、sdata2
、sbss2
、bss
、sbss
セクションの最初と最後に定義されます。 - ANSI C では、初期化されないメモリはすべてスタートアップに初期化する必要があります (スタックおよびヒープでは不要)。提供されている標準の CRT では、1 つの
.bss
セクションが 0 に初期化されると想定されます。複数の.bss
セクションがある場合は、この CRT は使用できません。その場合は、すべての.bss
セクションを初期化する CRT を作成する必要があります。