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.

[参考译文] TMS320F28.0025万C:编译器问题

Guru**** 2463330 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1094629/tms320f280025c-complier-problem

部件号:TMS320F28.0025万C
主题中讨论的其他部件:C2000WARE

你(们)好

我将从Ware2000版本4.0 .0测试i2c_ex4_polling。 我收到如下警告

"/Applications/ti/ccs1110/cs/tools/compiler/ti-CGT-c2000_ecv.0.LTS/bin/cl2000"<xmt-block0>2000 21.62000 21.6 -v28 -ml -mt --float_support=fpu32 --idiv_support=idivv0 --tmu_support=iduv0 --tmu_support=tmu_tmu_support=tmu/tmu_tmu_t0 -smu_support=tmu_tmu_tmu_supp.0 -smof -包括-include_path="/users/workspace dip_hip_dip_dip_j_jiworkspace dip=f-f_jiworkspace dip_dip_f00/dip_dip_f00/dip_exk_jip_dip_jip_jip_f00/workspace -f00-dip_dip_dip_exk_exk_exk_exk_exk_jip_jip_exk_exkf-f_jip_f 21.6
"../i2cLib_Fifo_polling.c",第123行(列 9):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。
"../i2cLib_Fifo_polling.c",第123行(列 9):建议#2615-D:(性能)使用--fp_mode=relelse为FP部门启用TMU硬件支持。
"../i2cLib_Fifo_polling.c",第123行(列 9):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。
"../i2cLib_Fifo_polling.c",第123行(列 9):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。
"../i2cLib_Fifo_polling.c",第123行(列 9):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。
"../i2cLib_Fifo_polling.c",第163行(列 11):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。
"../i2cLib_Fifo_polling.c",第163行(列 11):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。
"../i2cLib_Fifo_polling.c",第163行(列 11):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。
"../i2cLib_Fifo_polling.c",第163行(列 11):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。
"../i2cLib_Fifo_polling.c",第181行(列 8):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。
"../i2cLib_Fifo_polling.c",第181行(列 8):建议#3195-D:(性能) EABI双精度为64位,而COFF为32位。 考虑将双精度转换为浮动,以提高FPU32模式下的性能。

请告知如何修复警告消息。

巴西

胡国兴

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

    您好,

    这是一条建议消息 ,旨在告知用户,当最初为COFF ABI (浮点双精度为32位)开发的代码被编译为EABI (浮点双精度为64位)时。  

    有两种解决方法可用于抑制此警告。  一种方法是使用build选项 --advisor:performance=none禁用所有性能说明。  另一种方法是使用build选项 --diag_suppress=3195仅禁用此特定性能备注

    请参阅以下链接  

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/896217/compiler-tms320f280025c-compiler-cg-ti-v20-2-0-lts-performance-adviser-message-3195-d-when-math-h-file-is-included</s>2000 200089.6217万28.0025万3195

    此致

    Siddharth

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

    建议的解决方法似乎只是抑制警告消息,是否正确? 如果我想在没有任何警告消息的情况下修复它,如何操作?

    警告是由于DEVICE_DELAY _US()引起的。 我使用/Applications/ti/C2000/C2000Ware_4_00_00/driverlib/f28002x/examples/i2c下2000下的2.8002万的示例

    I2C_ex4_eepprom_polling。

    我正在使用CCS 11版编译器21.6 .0.LTS

    请提供建议。

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

    您好,

    正确,解决方法只是禁止警告消息。  如前所述,这是一条建议性消息,具体取决于您使用的是COFF还是EABI。  

    将您的查询转发给编译器团队,以查看他们是否可以建议任何解决方案来消除此警告。

    此致

    Siddharth

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

    另一个解决方案是将double类型的变量改为float类型。  请考虑此示例...

    /* file.c */
    
    double double_example(double arg1, double arg2)
    {
       return arg1 + arg2;
    }
    
    float float_example(float arg1, float arg2)
    {
       return arg1 + arg2;
    }

    两个函数之间的唯一区别是使用doublefloat。  构建它...

    C:\examples> cl2000 --abi=eabi --float_support=fpu32 file.c
    "file.c", line 3 (col. 8): advice: (Performance) EABI double precision is 64-bits as opposed to 32-bits for COFF. Consider changing doubles to floats for improved performance in FPU32-mode.
    "file.c", line 3 (col. 8): advice: (Performance) EABI double precision is 64-bits as opposed to 32-bits for COFF. Consider changing doubles to floats for improved performance in FPU32-mode.
    "file.c", line 3 (col. 8): advice: (Performance) EABI double precision is 64-bits as opposed to 32-bits for COFF. Consider changing doubles to floats for improved performance in FPU32-mode.
    "file.c", line 5 (col. 16): advice: (Performance) EABI double precision is 64-bits as opposed to 32-bits for COFF. Consider changing doubles to floats for improved performance in FPU32-mode.

    请注意,使用double的函数如何获得诊断,但使用float的函数却没有。   

    谢谢,此致,

    -George

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

    你(们)好

    device_delay_US()函数是device_support中的标准函数。 请在以下device.h中找到

    #define device_delay_US(x) sysctl_delay((((((. 长双精度)(x)/(100万.0L / \
                                 (长双精度) DEVICE_SYSCLK_FREQ)- 9.0L)/ 5.0L)

    我是否应该更改标准头文件。

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

    洪启

    我将保留这一声明。  我相信长双精度是用COFF格式来获得尽可能高的精度的,我想EABI会以同样的方式处理这个问题(而不是仅仅是一个双精度或浮点)。

    最佳,

    Matthew

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

    你好,Matthew

    很抱歉稍后回复。 我不明白你的观点。 这意味着我无法删除警告消息。

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

    洪启

    我本应该更加清楚,您也可以忽略/删除此案例的警告消息。  

    最佳,
    Matthew

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

    如何删除警告  

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

    挂起,

    这只是一个关于代码效率/性能的警告,我不清楚为什么压缩是不够的。  COFF ABI中的长双精度也使用64位浮子,我认为EABI中的长双精度没有任何不同;与COFF ABI中的标准双精度相比,此处的警告并不真正适用。

    您可以更改为浮点,但它会将精度降低到32位。  出于"我们延迟"功能的考虑,我认为这不会引起任何问题。

    最佳,

    Matthew