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万:TI v 16.9 .5.LTS

Guru**** 2620415 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/656777/compiler-tms320f280049-ti-v-16-9-5-lts

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

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

您好,

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

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

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

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

非常感谢,此致

  Luca

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

    CLA中的计算正常。 CPU获得全32值。 仅调试显示错误。 我认为问题在于,CCS中将变量视为int,而不是这么长。 这可能是因为CPU和CLA之间的基类型"int"的长度不同[/QUOT]

    是的,我相信您是对的。 为避免这些类型的问题,建议使用包含大小信息的类型声明(如Int32,Int16)。 您能否检查使用这些类型是否可以解决问题?  

    我还看到C2000Ware中的CLA示例包括 F2806x_Cla_typedefs.h,其中建议对16/32位整数使用短/长。  

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

    您好,AartAG:

    我正在使用 标准数据类型
    Int32_t
    这是从stdin.h中的编译器通过以下方式定义的:
    #IF已定义(__TMS320C28XX_CLA__)
       typedef         int   Int32_t;
    #否则
       typedef         long  Int32_t;
    #endif

    我做错了什么?
    我应该在哪里包括f2.8004万x_cla_typedefs.h (它不包含Int32_t)

    谢谢,Ciao

      Luca

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

    Luca,

    我认为C2000专家更有能力回答问题,包括在使用CLA时建议使用的文件和数据类型,以避免便携性问题。

    您是否介意在C2000微控制器论坛上发布新的帖子(如果您愿意,请参考此帖子)? 我可以将此线程移至C2000器件论坛,但由于已经在进行讨论,它有可能被忽略。