公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

我们能够使用AURIX™ IDE 编译项目。 我们想为同一个项目手动创建一个 makefile。 在创建 make 文件时,我们遇到了以下错误。

ltc E112:无法找到 371 节:

ltc W141:对“ EVAL_6EDL7141_TRAP_1SH ”的未解析引用

SSS1_0-1708321270402.png

微控制器: AURIX™ TC233LP

IDE: AURIX™开发工作室

编译器任务分配

我们使用

cctc -I $(工具路径)  $( LIBRARY_PATH ) $( LIBRARIES ) -I $( CONFIG_PATH ) -dLcf_Tasking_Tricore_Tc.lsl --cpu=tc23x $( SOURCE_FILES ) --library=c --whole-archive = ..\ $( PROJ_NAME ) \stack2\RTAOS。 a -v -o" TESTBOARD_150PC_OUT / $( PROJ_NAME ) .elf" -Wl-o" TESTBOARD_150PC_OUT / $( PROJ_NAME ) .hex" :IHEX -Wl-o" TESTBOARD_150PC_OUT / $( PROJ_NAME ) .s19":SREC --address -大小=2
 
使用外部库。 RTAOS.a 因此,请使用链接器选项 --whole-archive .
答复对我们很有帮助。
 
谢谢 、

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Makefile-error-using-Tasking-Compiler-in-Windows-build-environment/td-p/696440

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

发出警告的原因

ltc W141:对“ EVAL_6EDL7141_TRAP_1SH ”的未解析引用

就是指这种所谓的 "链接器标签"。 EVAL_6EDL7141_TRAP_1SH表TLE9243QK_BASE_BOARD地址将由链接器填充。 TASKING C 启动代码 (cstart.c) 确实引用此标签以初始化TLE9243QK_BASE_BOARD EVAL_6EDL7141_TRAP_1SH表的 地址。该警告表明,当使用 TASKING 启动代码并且链接器 LSL 文件中未定义EVAL_6EDL7141_TRAP_1SH组时, EVAL_6EDL7141_TRAP_1SH表初始化错误。 那么标签值为零,这对于EVAL_6EDL7141_TRAP_1SH TLE9243QK_BASE_BOARD向量来说是无效值。

我的假设是,您的应用程序没有使用 TASKING 启动代码。 但您可能需要核实一下。 您的应用程序可能确实使用自己的EVAL_6EDL7141_TRAP_1SH函数定义和设置。

TASKINGTriCore™ 工具 LSL 文件 .lsl 使用:

EVAL_6EDL7141_TRAP_1SH " = " EVAL_6EDL7141_TRAP_1SH "; /* 第一个或单核的通用 cstart 接口 */

// 陷阱向量表
组EVAL_6EDL7141_TRAP_1SH (已排序)
{
# include "traptab0.lsl"
}

来定义链接器标签。 这里定义了一个名为EVAL_6EDL7141_TRAP_1SH的组,其中包含用于EVAL_6EDL7141_TRAP_1SH节分配的另一个 LSL 文件,并且该组的地址将分配给链接器标签EVAL_6EDL7141_TRAP_1SH 。 TASKING TriCore™ C 启动代码 (cstart.c) 用途

...

extern __far 无效EVAL_6EDL7141_TRAP_1SH []; /* EVAL_6EDL7141_TRAP_1SH表 */

...

/*
* 加载TLE9243QK_BASE_BOARD EVAL_6EDL7141_TRAP_1SH向量表的 地址。
* 如果不是从 RESET 向量启动,则禁用此功能。 (例如
* ROM 监视器需要保持对向量的控制)
*/
#if __BTV_INIT
__mtcr(BTV, (无符号整型) EVAL_6EDL7141_TRAP_1SH );
#万一

 

初始化TLE9243QK_BASE_BOARD地址。

最诚挚的问候,

Ulrich Kloidt 任务工具支持

 

...

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Makefile-error-using-Tasking-Compiler-in-Windows-build-environment/m-p/699272

在原帖中查看解决方案

0 点赞
4 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

你好@SSS1

也许任务分配专家@User13836 可以帮助我们解决这个问题。

问候!:1

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Makefile-error-using-Tasking-Compiler-in-Windows-build-environment/m-p/697100

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

定位错误导致无法放置近寻址常量数据段的一个可能原因是,您使用了默认的近分配设置,这意味着所有大小小于或等于 8 字节的数据类型段都将放置在近寻址内存中。 因此,例如,int 类型的常量变量最终会被存放在近寻址内存中。 可寻址内存非常有限。 只能读取 256MB 内存段的前 16KB (如果有物理内存,如 0x8 / 0xA 内存段)。 我建议禁用默认的就近分配。 然后,就可以为选定的变量添加__near 限定符,这些变量将被就近访问。 为此,请添加 C 编译器选项 -N0。

最诚挚的问候,

Ulrich Kloidt 任务工具支持

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Makefile-error-using-Tasking-Compiler-in-Windows-build-environment/m-p/697443

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨...

感谢您的回复 . 我在修改后的命令行中添加了 -N0 选项,这样就能生成 elf 文件了。

但收到警告

ltc W141:对“ EVAL_6EDL7141_TRAP_1SH ”的未解析引用

EVAL_6EDL7141_TRAP_1SH --> 在代码中找不到此符号可以对此提供帮助。 为裁判附上屏幕截图。

coomand -->
cctc -I $(工具路径)  $( LIBRARY_PATH ) $( LIBRARIES ) -I $( CONFIG_PATH ) -dLcf_Tasking_Tricore_Tc.lsl -N0 --cpu=tc23x $( SOURCE_FILES ) --library=c --whole-archive= ..\ $( PROJ_NAME ) \stack2\ RTAOS.a -v -o" TESTBOARD_150PC_OUT / $( PROJ_NAME ) .elf" -Wl-o" TESTBOARD_150PC_OUT / $( PROJ_NAME ) .hex" :IHEX -Wl-o" TESTBOARD_150PC_OUT / $( PROJ_NAME ) .s19":SREC - -地址大小=2
 
SSS1_0-1708583444642.png

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Makefile-error-using-Tasking-Compiler-in-Windows-build-environment/m-p/699137

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

发出警告的原因

ltc W141:对“ EVAL_6EDL7141_TRAP_1SH ”的未解析引用

就是指这种所谓的 "链接器标签"。 EVAL_6EDL7141_TRAP_1SH表TLE9243QK_BASE_BOARD地址将由链接器填充。 TASKING C 启动代码 (cstart.c) 确实引用此标签以初始化TLE9243QK_BASE_BOARD EVAL_6EDL7141_TRAP_1SH表的 地址。该警告表明,当使用 TASKING 启动代码并且链接器 LSL 文件中未定义EVAL_6EDL7141_TRAP_1SH组时, EVAL_6EDL7141_TRAP_1SH表初始化错误。 那么标签值为零,这对于EVAL_6EDL7141_TRAP_1SH TLE9243QK_BASE_BOARD向量来说是无效值。

我的假设是,您的应用程序没有使用 TASKING 启动代码。 但您可能需要核实一下。 您的应用程序可能确实使用自己的EVAL_6EDL7141_TRAP_1SH函数定义和设置。

TASKINGTriCore™ 工具 LSL 文件 .lsl 使用:

EVAL_6EDL7141_TRAP_1SH " = " EVAL_6EDL7141_TRAP_1SH "; /* 第一个或单核的通用 cstart 接口 */

// 陷阱向量表
组EVAL_6EDL7141_TRAP_1SH (已排序)
{
# include "traptab0.lsl"
}

来定义链接器标签。 这里定义了一个名为EVAL_6EDL7141_TRAP_1SH的组,其中包含用于EVAL_6EDL7141_TRAP_1SH节分配的另一个 LSL 文件,并且该组的地址将分配给链接器标签EVAL_6EDL7141_TRAP_1SH 。 TASKING TriCore™ C 启动代码 (cstart.c) 用途

...

extern __far 无效EVAL_6EDL7141_TRAP_1SH []; /* EVAL_6EDL7141_TRAP_1SH表 */

...

/*
* 加载TLE9243QK_BASE_BOARD EVAL_6EDL7141_TRAP_1SH向量表的 地址。
* 如果不是从 RESET 向量启动,则禁用此功能。 (例如
* ROM 监视器需要保持对向量的控制)
*/
#if __BTV_INIT
__mtcr(BTV, (无符号整型) EVAL_6EDL7141_TRAP_1SH );
#万一

 

初始化TLE9243QK_BASE_BOARD地址。

最诚挚的问候,

Ulrich Kloidt 任务工具支持

 

...

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Makefile-error-using-Tasking-Compiler-in-Windows-build-environment/m-p/699272

0 点赞