リンカー スクリプトを記述またはカスタマイズする際のヒント - 2022.1 日本語

Vitis 統合ソフトウェア プラットフォームの資料: エンベデッド ソフトウェア開発 (UG1400)

Document ID
UG1400
Release Date
2022-04-26
Version
2022.1 日本語

カスタム リンカー スクリプトを記述する場合は、次の点に留意してください。

  • ベクター セクションが 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 変数は、それぞれ sdatasdata2sbss2bsssbss セクションの最初と最後に定義されます。
  • ANSI C では、初期化されないメモリはすべてスタートアップに初期化する必要があります (スタックおよびヒープでは不要)。提供されている標準の CRT では、1 つの .bss セクションが 0 に初期化されると想定されます。複数の .bss セクションがある場合は、この CRT は使用できません。その場合は、すべての .bss セクションを初期化する CRT を作成する必要があります。