编写或自定义连接器脚本的技巧 - 2023.2 简体中文

Vitis 统一软件平台文档 嵌入式软件开发 (UG1400)

Document ID
UG1400
Release Date
2023-12-13
Version
2023.2 简体中文

当您自行编写或自定义连接器脚本时,请谨记以下要点:

  • 确保按 MicroBlaze 硬件中定义的方式将不同矢量节分配到相应的存储器中。
  • .bss 节中,为堆和栈分配空间。将 _stack 变量设置为位于此区域的 _STACK_SIZE 位置之后的区域,并将 _heap_start 变量设置为位于 _STACK_SIZE 位置之后的下一个位置。由于无需为硬件和仿真初始化堆和栈,请先确定 .bssCOMMON 的定义,再定义 _bss_end 变量。
    注释: .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 假定仅有一个 .bss 节,并且此节初始化为 0。如有多个 .bss 节,则此 CRT 无效。您应自行编写 CRT 以初始化所有 .bss 节。