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.

[参考译文] TMS320F28386D:数据类型

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1231121/tms320f28386d-data-type

器件型号:TMS320F28386D

f2838x_device.h 中显示的是 typedef 长型       int32; 测量该 长数据类型应具有32位数据。

但在 CCS 调试中显示它实际上有64位数据。

TI 是否提供数据类型的使用手册?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TI 是否提供数据类型的使用手册?

    请参阅编译器手册第6.3节"数据类型"、: https://www.ti.com/lit/pdf/SPRU514Y

    其他手册: https://www.ti.com/tool/CCSTUDIO?keyMatch=CODE%20COMPOSER%20STUDIO#tech-docs

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

    位于 0x10A7C 处名为 testLongDataLength  的符号、但红色矩形显示其具有(4个字/8字节/64位)。

    我的判断是基于一个地址可以容纳两个字节的数据。

     

    我检查了提供的文档,它还显示长数据类型有32位。  

    这让我感到困惑!

    我的理解是否有错误之处?

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

    可以。 在我对您的问题的第一个答复中、我为您的误解提供了一个解释。

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

    让我们改变一下这个问题。

    数据类型的大小定义是什么?  

    以及如何在 CCS 中检查一个变量的大小?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    数据类型大小的定义是什么?  [/报价]

    根据手册、long 是32位。

    以及如何在 CCS 中检查一个变量的大小?

    不能直接检查大小(以位为单位)。 您只能从 CCS 中的类型推断大小:

    因此 testLongDataLength 必须为32位宽。

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

    testLongDataLength 位于 0x10A7C 上。 总线数为32位。  

    为什么它占用存储器的四个地址???

    我的判断是基于一个地址保存两个字节(16位)数据。

    因此它 占用 存储器的四个地址、应为4*16=64位。

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

    不会。 它占用2个地址。 有2个未占用地址、又称为空穴。

    结论是不使用内存浏览器来确定任何数据的大小、因为它也会显示空空间(孔洞)。