工具/软件:TI C/C++编译器
您好!
我在链接过程中遇到以下错误:
错误#10229-D:输出段".fardata.2"是指加载符号"我的一个 SWI 函数的名称"、因此无法压缩;压缩"rle"会被忽略
我搜索过其他主题帖、但实际上看不到任何适用的内容、或对我的场景有所帮助。
请告知、
Robert
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
[引用用户="George mock"]
你确定这是不是...
是错误吗? 我只看到它被归类为警告。
[/报价]
具体如下所示
错误#10229-D:输出段".fardata"是指加载符号"ti_SysBIOS_KNL_Clock_workFunc__E"、因此无法压缩;压缩"rle"会被忽略
[引用用户="George mock"]
您是否还会看到 有关 TI_SYSBIOS_KNL_Clock_workFunc__E 等函数如何未定义的诊断?
[/报价]
我这么做了、这还有更多与 BIOS 相关的调用!
所有 SYS/BIOS 头文件在声明每个 API 的函数原型时使用 extern "C"、包括引用的 Clock_workFunc () API:
#ifdef __cplusplus #define __extern extern "C" #else #define __extern extern #endif... _extern XDC_void ti_SysBIOS_KNL_Clock_workFunc__E (XDC_UArg0、XDC_UArg0 arg1);
Alan
您能否共享项目的.cfg 文件和链接器命令文件? 它们可能有助于揭示问题。
此外、您能否显示生成的"big.c"文件的编译行?
我怀疑编译器被告知将为您的项目生成的"big.c"文件编译为 C++文件、而不是直接的 C 文件。 这会导致您看到的错误类型。
通常情况下、不应发生这种情况、但如果使用手工制作的 makefile 文件或特殊的.cfg 文件内容、则可以实现这种情况。
Alan
[引用用户="Alan DeMars"]
您能否共享项目的.cfg 文件和链接器命令文件? 它们可能有助于揭示问题。
此外、您能否显示生成的"big.c"文件的编译行?
我怀疑编译器被告知将为您的项目生成的"big.c"文件编译为 C++文件、而不是直接的 C 文件。 这会导致您看到的错误类型。
通常情况下、不应发生这种情况、但如果使用手工制作的 makefile 文件或特殊的.cfg 文件内容、则可以实现这种情况。
Alan
[/报价]
Alan、感谢您的回复。 由于 IP 命名、我无法公开提供.cfg 和链接器命令。 但我剪切并粘贴 BIOS 构建、名称已更改、这可能是您所指的 big.c。 当我将所有文件从 C 更改为 CPP 时、这些特定问题就会开始出现。
"C:\\ti\\ccsv7\\utils\\bin\\gmake"-j 4所有-O
gmake[1]:输入目录'C:/git/one/two/three/Code/Debug
'生成文件:./one.cfg'
'调用:XDCtools '
"c:/ti/xdctools_3_50_04_43_core/xs "--xdcpath="C:/git/one/two/three/Misc/platform;C:/ti/ccsv7/ccs_base;C:/ti/bios_6_53_02_00/packages;" xdc.tools.configuro configPkg -t ti.targets.elf.c674 -p one -r debug -c "C:/ti"--compileOptions "-g --optimize_abin_debug"-w -v "。/one.cfg.cfg./ov.cfg.cfg.ov.cfg.ov.ov.ov.cfg.ov.ov.ov.ov.cfg.ov.ov.ov.ov
编号
#正在制作 package.mak (由于 package.bld)...
C:/ti/xdctools_3_50_04_43_core/xs -Dxdc.path="C:/git/one/two/three/Misc/platform;C:/ti/ccsv7/ccs_base;C:/ti/bios_6_53_02_00/packages;C:/ti/xdctools_3_50_04_43_core/packages;..." -Dxdc.root=C:/ti/xdctools_3_50_04_43_core -Dxdc.Hostos=Windows -Dconfig.importPath=".;C:/git/one/two/three/Misc/platform;C:/ti/ccsv7/ccs_base;C:/ti/xdctools_3_50_04_43_core/packages;..C:/ti/xdctools_3_50_04_43_core;C:/ti/bios_6_53_02_00/packages /ti/xdctools_3_50_04_43_core/etc "-Dxdc.Bld.targets=""-DTOOLS=-f C:/ti/xdctools_3_50_04_43_core/packages/xdc/bld/bld.js ./config.Bld.mak 软件包
编号
#正在为软件包 configPkg 生成接口(因为 package/package.xdc.inc 比 package.XDC 旧)...
C:/ti/xdctools_3_50_04_43_core/xs -Dxdc.path="C:/git/one/two/three/Misc/platform;C:/ti/ccsv7/ccs_base;C:/ti/bios_6_53_02_00/packages;C:/ti/xdctools_3_50_04_43_core/packages;..." -dxdc.root=C:/ti/xdctools_3_50_04_43_core -Dxdc.Hostos=Windows -Dconfig.importPath=".;C:/git/one/two/three/Misc/platform;C:/ti/bios_6_53_02_00/packages;C:/ti/xdctools_3_50_04_43_core/packages;..C:/ti/ccsv7/ccs_base /ti/xdctools_3_50_04_43_core package.xdc.in;C:/ti/xdctools_3_50_04_43_core/etc "-Dxdc.Bld.targets=""-DTOOLS=-f XDC/SERVICES/intern package.xdc.de-build c/ms/package -dc/m.cmd
编号
#从 package/cfg/one_pe674.cfg 配置 one.xe674 ...
C:/ti/xdctools_3_50_04_43_core/xs -Dxdc.path="C:/git/one/two/three/Misc/platform;C:/ti/ccsv7/ccs_base;C:/ti/bios_6_53_02_00/packages;C:/ti/xdctools_3_50_04_43_core/packages;..." -dxdc.root=C:/ti/xdctools_3_50_04_43_core -Dxdc.Hostos=Windows -Dconfig.importPath=".;C:/git/one/two/three/Misc/platform;C:/ti/bios_6_53_02_00/packages;C:/ti/xdctools_3_50_04_43_core/packages;..;C:/ti/xdctools_3_50_04_43_core;C:/ti/xdctools_3_50_04_43_core/etc "-Dxdc.Bld.targets=""-DTOOLS=-Dxdc.cfg.check.fatal=false xdc.cfg one.xe674软件包/cfg/pe/674软件包/cfg//ti/ccsv7/ccs_base one_pe674.cfg
正在生成自定义 ti.sysbios 库 makefile ...
正在开始构建库源...
制作 C:/git/one/two/three/Code/src/sysbios/sysbios.ae674 ...
gmake[1]:输入目录`C:/git/one/two/three/Code/src/sysbios
CLE674 C:/ti/bios_6_53_02_00/packages/ti/sysbios/BIOS.c……
[BIOS.c]
[例外.c]
[Hwi.c]
[Hwi_startup.c]
[TimestampProvider.c]
[高速缓存.c]
[时钟.c]
[闲置.c]
[内在函数.c]
[队列.c]
[semaphore.c]
[SWI.c]
[任务.c]
[Hwi.c]
[Hwi_stack.c]
[Hwi_startup.c]
[ThreadLocalStorage.c]
[TaskSupport.c]
[内在支持.c]
[GateHwi.c]
[GateMutex.c]
[HeapMem.c]
[timer.c]
[TimerSupport.c]
asme674 C:/ti/bios_6_53_02_00/packages/ti/sysbios/family/c64p/Exception_asm.s64P……
asme674 C:/ti/bios_6_53_02_00/packages/ti/sysbios/family/c64p/Hwi_asm.s62……
asme674 C:/ti/bios_6_53_02_00/packages/ti/sysbios/family/c64p/Hwi_asm_switch.s62……
asme674 C:/ti/bios_6_53_02_00/packages/ti/sysbios/family/c64p/Hwi_disp_always.s64P……
asme674 C:/ti/bios_6_53_02_00/packages/ti/sysbios/rts/ti/tls_get_tp.asm……
asme674 C:/ti/bios_6_53_02_00/packages/ti/sysbios/family/c62/TaskSupport_asm.s62……
asme674 C:/ti/bios_6_53_02_00/packages/ti/sysbios/timers/timer64/Timer_asm.s64P……
are674 bios.obj c64p_exception_asm.obj c64p_hwi_asm_switch.obj c64p_hwi_disp_always.obj ti_tls_get_tp.obj c62_taskSupport_asm.obj timer64_Timer_as.obj ...
gmake[1]:离开目录`C:/git/one/two/three/Code/src/sysbios
已完成库构建。
C:/ti/xdctools_3_50_04_43_core/bin/sed 的"^\"\(package/cfg/One_pe674cfg.cmd\)"\":/git/one/two/three/Code/Debug/configPkg /\1\"封装/cfg/One_pe674.xdl > linker.cmd
C:/ti/xdctools_3_50_04_43_core/bin/setdate -r:max package/cfg/one_pe674.h compiler.opt compiler.opt.defs
C:/ti/xdctools_3_50_04_43_core/bin/rm -f package/cfg/One_pe674.oe674
这是构建的结束。
错误#10229-D:输出段".fardata"是指加载符号
"TI_SYSBIOS_KNL_Clock_workFunc__E"、因此无法压缩;
压缩"rle"被忽略
未定义的首次引用
符号
------ --------
TI_SysBIOS_family_c64p_cache_Module_startup__E C:\git\One \两个\Three \Code\Debug\configPkg\package\ccfg\one_pe674.oe674
TI_SysBIOS_family_c64p_exception_Module_startup__E C:\git\one\two\ther\Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SysBIOS_family_c64p_exception_handler__I C:\git\one\two\three \Code\src\SysBIOS\SysBIOS.ae674
TI_SYSBIOS_family_c64p_Hwi_Module_startup__E C:\git\One \两个\Three \Codes\Debug\configPkg\package\config\one_p6674.oe674
TI_SysBIOS_family_c64p_Hwi_dispatchC__I C:\git\one\two\ther\Code\src\SysBIOS\SysBIOS.ae674
TI_SysBIOS_family_c64p_TimestampProvider_Module_startup__E C:\git\one\two\ther\Codes\Debug\configPkg\package\ccfg\one_pe674.oe674
TI_SysBIOS_family_c64p_TimestampProvider_get32__E C:\git\one\two\ther\Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SysBIOS_family_c64p_TimestampProvider_get64_E C:\git\one\two\ther\Code\Debug\configPkg\package\config\one_pe674.oe674
TI_SysBIOS_family_c64p_TimestampProvider_getFreq_E C:\git\one\two\ther\Codes\Debug\configPkg\package\config\one_p6674.oe674
TI_SYSBIOS_GERS_GateHwi_instance_init_E C:\git\e\one\two\ther\Codes\Debug\configPkg\package\cg\one_pe674.oe674
TI_SysBIOS_Gates_GateHwi_enter_E C:\git\one\two\ther\Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SysBIOS_Gates_GateHwi_leep_E C:\git\one\two\ther\Codes\Debug\configPkg\package\cg\one_pe674.oe674
TI_SysBIOS_Gates_GateHwi_query_E C:\git\one\two\ther\Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SysBIOS_Gates_GateMutex_instance_finaling__E C:\git\e\One \Two \Three \Code\Debug\configPkg\package\cg\one _pe674.oe674
TI_SysBIOS_Gates_GateMutex_instance_init_E C:\git\one\twe\ther\Codes\Debug\configPkg\package\cg\one_pe674.oe674
TI_SysBIOS_Gates_GateMutex_enter_E C:\git\one\two\ther\Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SYSBIOS_GERS_GateMutex_leep_E C:\git\one\two\ther\Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SYSBIOS_GERS_GateMutex_query_E C:\git\one\two\ther\Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SYSBIOS_hal_Hwi_Module_startup_E C:\git\One \Two \Three \Code\Debug\configPkg\package\cg\one _pe674.oe674
TI_SYSBIOS_hal_Hwi_initStack C:\git\one\two\ther\Code\Debug\configPkg\package\config\one_pe674.oe674
TI_SYSBIOS_hal_Hwi_startup_E C:\git\One \Two \Three \Code \Debug\configPkg\package\cfg\one _pe674.oe674
TI_SYSBIOS_COMP堆_HeapMem_instance_init_E C:\git\One \Two \Three \Code\Debug\configPkg\package\cg\one _pe674.oe674
TI_SysBIOS_b堆_HeapMem_alloc_E C:\git\e\One \Two \Three \Code\Debug\configPkg\package\cg\one _pe674.oe674
TI_SysBIOS_b堆_HeapMem_free_E C:\git\one\two\ther\Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SysBIOS_b堆_HeapMem_getStats__E C:\git\e\One \Two \Three \Code\Debug\configPkg\package\cg\one _pe674.oe674
TI_SYSBIOS_COMP堆_HeapMem_init__I C:\git\one\two\ther\Codes\Debug\configPkg\package\config\one_pe674.oe674
TI_SysBIOS_boos_HeapMem_isBlocking__E C:\git\e\One \Two \Three \Codes\Debug\configPkg\package\cg\one _pe674.oe674
TI_SYSBIOS_KNL_Clock_Module_Startup_E C:\git\one\two\ther\Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SYSBIOS_KNL_Clock_logTick__E C:\git\One \两个\三个\Code\Debug\configPkg\package\cg\one _ pe674.oe674
TI_SYSBIOS_KNL_Clock_workFunc__E C:\git\One \Two \Three \Code\Debug\configPkg\package\cg\one _pe674.oe674
TI_SYSBIOS_KNL_Idle_LOOP_E C:\git\One \Two \Three \Code\Debug\configPkg\package\config\one_pe674.oe674
TI_SYSBIOS_KNL_Queue_empty_E C:\git\One \两个\Three \Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SYSBIOS_KNL_Semaphore_Pend__E ./comms/tsk_comms.obj
TI_SYSBIOS_KNL_Semaphore_post__E ./main/tsk_main.obj
TI_SYSBIOS_KNL_Swi_Module_startup_E C:\git\One \Two \Three \Code\Debug\configPkg\package\cg\one _pe674.oe674
TI_SYSBIOS_KNL_Swi_disable_E C:\git\one\two\ther\Code\Debug\configPkg\package\config\one_pe674.oe674
TI_SYSBIOS_KNL_Swi_POST_E ./acq/swi_edma_acq.obj
TI_SYSBIOS_KNL_Swi_setAttrs__E ./acq/swi_edma_acq.obj
TI_SYSBIOS_KNL_Swi_startup_E C:\git\One \Two \Three \Code \Debug\configPkg\package\cfg\one _pe674.oe674
TI_SYSBIOS_KNL_Task_Module_Startup_E C:\git\one\two\ther\Codes\Debug\configPkg\package\config\one_pe674.oe674
TI_SYSBIOS_KNL_Task_disable_E C:\git\One \Two \Three \Code\Debug\configPkg\package\config\one_pe674.oe674
TI_SYSBIOS_KNL_Task_sleep_E ./comms/tsk_comms.obj
TI_SysBIOS_KNL_Task_startup__E C:\git\One \Two \Three \Code \Debug\configPkg\package\cg\one _pe674.oe674
TI_SysBIOS_timers_timer64_Timer_Module_startup__E C:\git\One \两个\Three \Code\Debug\configPkg\package\cg\one_pe674.oe674
TI_SysBIOS_timers_timer64_Timer_startup_E C:\git\One \Two \Three \Codes\Debug\configPkg\package\cg\one _pe674.oe674
错误#10234-D:未解析的符号仍然存在
致命错误#99900:已达到错误限制;检测到1个错误
>>编译失败
Makefile:232:目标'one.out'的配方失败
gmaking[1]:***[one.out]错误1
Makefile:228:目标'all'的配方失败
gmake:***[全部]错误2.
****构建完成****
Alan DeMars 说:当我将所有文件从 C 更改为 CPP 时,除了 boot.c 和 autocinit.c 之外,这些特定的问题开始了 我还将我的 boot.c 和 autoinit.c 更新为8.2版本、因为它们是古老的。"
这是否意味着您也更改了 BIOS 源文件的名称(即 Task.c -> Task.cpp 等)?
[/报价]
不、只是我的应用程序文件
[引用用户="Alan DeMars"]
ti\targets\rts6000\中的 boot.c 和 autoinit.c 文件是 TI Codegen 工具提供的对应文件的手工修改版本。 您不能简单地将'rts6000'中的 boot.c 和 autoinit.c 替换为最新的。
[/报价]
是的、这是一个错误、我在帖子中对它进行了编辑。 autobinit.c 和 boot.c 甚至不应该在我的项目中... 您可能会自动将它们拉入、就像您提到的那样。 删除后、这些错误便会消失。
我在.cfg 文件中将问题向下追溯到此行:
BIOS.customCCOpts ="-mv6740 -PDR -pden"
无论我在这里放置了什么选项、都会导致 BIOS 未定义问题。 删除后、我的构建现在完成了。
唯一的左边思考是 BIOS 构建期间的这个注释:
asme674 C:/ti/bios_6_53_02_00/packages/ti/sysbios/timers/timer64/Timer_asm.s64P……
备注#24038-D:--optimize_with 调试已弃用、并将在后续版本中删除。 默认情况下、该行为启用。
这种情况发生在几个 asme674构建行中。
知道为什么/如何使用它? 我在构建选项中设置了-g、因为需要用于调试的完整符号、但这仅适用于我的应用程序代码、而不是 BIOS、后者会生成该备注(应用程序代码不会)。
谢谢、
Robert
[引用用户="Robert56682"]
Alan DeMars
为了消除警告、我认为您应该这样做:
bios.customCCOpts +="--diag_suppress=24038 ";
这将抑制警告编号24038。
已尝试执行此操作、-pds=24038、但仍会显示。
Robert
[/报价]
从编译器 v8.2手册:
--diag_suppress=num 抑制 num 标识的诊断。 以确定数值
诊断消息的标识符、请首先使用--display_error_number 选项
单独编译。 然后使用--diag_suppress=num 来抑制
诊断。 您只能抑制任意诊断消息
可能不被视为"任意诊断消息"
[引用 user="Alan DeMars">然后尝试:
BIOS.customCCOPTS = BIOS.customCCOPTS.replace("--optimize_with _debug","");
这应该从 BIOS.customCCOPTS 字符串中删除"-optimize_with _debug"字符串。
[/报价]
谢谢。 因为默认情况下已启用、所以根据备注、从 BIOS 构建中删除它应该没有效果、对吧?
Robert
[引用用户="Alan DeMars">我不确定"每条评论"是什么意思。 但是、在较新版本的代码中、我们已停止在编译选项中包含"-optimize_with _debug"、因为它已被弃用。 我们发现删除它没有效果。
Alan
[/报价]
"每条注释"... 备注表示-optimize_with _debug 在默认情况下启用、因此如果按照您的建议从 BIOS 中删除选项以消除警告、则不会产生任何效果。 您刚才确认了这些内容。 谢谢
Robert