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.

[参考译文] CCS/TMS320C6727:尝试链接5.5 中的c67pfastMath库

Guru**** 2537200 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/569720/ccs-tms320c6727-trying-to-link-c67pfastmath-library-in-ccs5-5

部件号:TMS320C6727
主题中讨论的其他部件:MATHLIB

工具/软件:Code Composer Studio

当前正在尝试在我的c6727设备上实现fastMath库。

我刚开始尝试使用c67xfastMath.lib,但我在论坛上的另一篇文章中看到,c67pfastMath.lib更适合c6727设备。  不管怎样,我都收到相同的错误。

尝试链接时,收到以下错误信息:

错误#1.0056万:重新定义符号"_atandp":首先在中定义
"C:\ti\c67xmathlib_2_01_00_00\lib\c67pfastMath.lib<atandp.obj>";重新定义
在"C:\ti\c67xmathlib_2_01_00_00\lib\c67pfastMate.lib<atan2dp.obj>"中

因此,似乎在atandp.obj和atand2dp.obj中都定义了_atandp,但是我没有以任何方式更改库。

 我有 来自http://www.ti.com/tool/MATHLIB的最新版本的MATHLIB库

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    我不能和你一样碰到同样的问题。 使用编译器7.4 .4,我可以在5.5 中构建附加项目。

    但是,如果我尝试使用ELF二进制格式(在更现代的调试程序中更好地支持二进制格式),我遇到了以下问题:  

    '调用:C6000链接器'
    c:/CCSv5_0/ccsv5/tools/compiler/C6000_SV.4/bin/cl65" 7.4 -mv67p --abi=eabi -g --define=c6727 --display_error_number --diag_warning=225 --diag_svwrap=off -z --stack_size=0x800 -800 -m_cav_exp_cav_exp_exp_cav_exp_exp_exp_cav_exp_rew_cav_---cav_exp_exp_exp_cav_rew_--cav_remaip_---cw_ex_remaip_--cw_cw_---cw_cw_rema_cw_-cw_-cw_-cw_rema_cw_--cw_ex_-cw_-cw_-cw_re_rema_re_-cw_-cw_-cw_-cw_reb_reb_ex_c 7.4 7.4
    链接>
    错误#1.603万-D:文件"C:/ti/c67xmathlib_2_01_00_00/lib/c67pfastMath_elf.lib<atandp_v.obj>"要求数组的8字节对齐,但以前的文件将数组对齐为4字节
    错误#1.603万-D:文件"C:/ti/c67xmathlib_2_01_00_00/lib/c67pfastMath_elf.lib<sinsp_v.obj>"要求数组的8字节对齐,但以前的文件将数组对齐为4字节
    错误#1.001万:链接时出错;未生成"Sinewave_C67p.out

    >>编译失败
    gmake:***[Sinewave_C67p.ut]错误1
    gmake:target `all' not remake because of errors.

    [/引述]

    为了构建项目,我必须将选项从-MV=67P更改为-MV=6740。 在这种情况下,错误的根源是库<c67pfastMath.elf.lib>似乎是最初使用设置为C6740的选项构建的,我怀疑它将为C6727生成不兼容的代码。  

    为了生成ELF,我必须重建库。 然后,我导入了库项目(Readme.txt文件中的说明),将其“生成配置”更改为c67p (菜单“项目”-->“生成配置”-->“设置为活动”--> c67p_elf),然后转到项目属性(菜单“项目”-->“属性”)并在两个位置更改了其设置:

    Build --> C6000 Compiler --> Processor Options and change Target processor version to 67P (编译--> C6000编译器-->处理器选项并将目标处理器版本更改为67P)

    Build --> C6000 Compiler --> Optimization --> Optimization Level to 3.

    然后,我重建了库(菜单“项目”-->“重建项目”),并在我的项目中指向它。  

    两个项目(我的示例项目具有两个COFF和ELF构建配置)和更正的库项目都随附。  

    希望这能有所帮助,

    拉斐尔

    e2e.ti.com/.../Sinewave_5F00_C67p.zip

    e2e.ti.com/.../c67fastMath.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在处理的项目使用COFF格式,因此不能选择使用ELF库。 您对为C674x设备构建fastMath库的看法是正确的,因此我为c67p重建了它。 我收到了同样的重新定义错误,但是由于我没有在程序中使用atandp或atan2dp,我只是在没有这些文件的情况下重建了库,我的程序能够编译。

    谢谢!
    Josh