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.0049万:表达式窗口中CLA Int32变量的错误表示

Guru**** 2560390 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/657140/compiler-tms320f280049-wrong-representation-of-cla-int32-variable-in-expression-window

部件号:TMS320F28.0049万

工具/软件:TI C/C++编译器

您好,

我在 CLA2CPU RAM中定义了一个类型为Int32_t的变量,该变量由CLA使用(写入)。 在表达式窗口中,此变量来自int类型,显示的值来自较低的16位(截断)!
CLA中的计算正常。 CPU获得全32值。 仅调试显示错误。 我认为问题在于,CCS中将变量视为int,而不是这么长。 这可能是因为CPU和CLA之间的基本类型"int"的长度不同(在stdin.h中):

#IF已定义(__TMS320C28XX_CLA__)
   typedef         int   Int32_t;
#否则
   typedef         long  Int32_t;
#endif

您是否有解决此问题的帮助/解决方法?

我正在使用:
- CCS版本7.2 .0.0.0013万
—编译器TI v 16.9 .6.LTS

非常感谢,此致

  Luca

另请参阅:
e2e.ti.com/.../2413198 241.3198万

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

    C28x的整数(int)为16位。 这可能是您在表达式窗口中只看到32位的一半的原因。 您需要更改变量或表达式的类型。

    希望这能有所帮助。

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

    您好,Sal,

    为避免此问题,我 在  项目文件中执行了以下解决方法(已在2周前):

    #IF已定义(__TMS320C28XX_CLA__)
    #include "f2.8004万x_CLA_typedefs.h"
    #否则
    typedef Int32_t sint32

     

    但我仍然相信(编译器)  stdint.h中提到的行是错误的。 再次强调:

    #IF已定义(__TMS320C28XX_CLA__)
       typedef          int    Int32_t;
    #否则
       typedef         long  Int32_t;
    #endif

    请考虑下一个编译器版本的修补程序。

    谢谢
      Luca

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您认为上述问题有什么问题? 您能否给出您认为正确的建议。

    谢谢!
    SAL