部件号:CCSTUDIO-THEIA
TI 团队大家好、
按照 Alan 的建议,在使用 LTO 时分开编译和链接阶段,我们遇到了以下问题。 编译使用-c 标志完成、该标志会生成所需的目标文件。 之后通过 cmd.exe、我们会调用链接器。 所有需要的文件都收集在一个文件夹中:从源代码生成的目标文件、从 bitfield _structs.h/.c 生成的目标文件、drivelib.lib、sfo.lib 和链接器 cmd 文件。
c29clang *.o driverlib.lib sfo.lib shared_linker.cmd
结果是以下错误:由__attribute__((ramfunc) 或生成的“.TI.ramfunc"段“段
--ramfunc=on 需要一个段规范才能运行。
我们认为这会产生误导、因为 TI.ramfunc 在以下段中定义:
#ifdef BOOTLOADER
.TI.ramfunc : { -l F29H85x_NWFlashAPI_v21.00.00.00.lib } LOAD=FLASH_PRGM, RUN=RAM_LPA_CPU1, table(BINIT), palign(16)
#else
.TI.ramfunc : {} LOAD=FLASH_PRGM, RUN=RAM_LPA_CPU1, table(BINIT), palign(16)
.TI.ramfunc : {} > RAM_LPA_CPU1, table(BINIT), palign(16)
#endif
问题是:链接器调用是否正确、或者是否 需要添加某些选项?