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.

[参考译文] 编译器/TMS320F28377S:具有无符号整型值的 bool 数据类型

Guru**** 2455360 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/830039/compiler-tms320f28377s-bool-datatype-having-value-of-unsigned-int

器件型号:TMS320F28377S

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

我声明了一个全局 var 类型 bool、并且它未初始化。  当我运行代码时、我在其中获得值5000 (在表达式窗口中)。 然后我使用 false 对其进行初始化、然后它正常工作。 那么、两者的区别是什么?为什么 bool var 显示5000? 是否需要初始化全局变量? 我正在使用全局优化设置、但即使我更改它、也没有区别。  我想当我们初始化全局变量时、它会从.bss 段进入数据段、并释放一些存储器。 此问题与内存溢出有关?    

我还在 CCS 中检查了内存分配、但它显示为绿色。 没有警告。  

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

    您使用的是 COFF 还是 EABI? 我认为 COFF 不会自动将所有全局变量初始化为零、因此这可能是其中的一部分。

    您知道何时设置为5000吗? 比如、如果您要对电路板进行下电上电并加载应用、是否需要在存储器位置最终设置为5000之前运行它?

    惠特尼

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

    请说明在何处查找使用  COFF 或 EABI 的编译器?  

    以及如何更改??

    正如您所问的-

    您知道何时设置为5000吗? 比如、如果您要对电路板进行下电上电并加载应用、是否需要在存储器位置最终设置为5000之前运行它?

    当微控制器启动时、它显示5000。

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

    您可以在项目属性的"常规"部分的"输出格式"框中选择 EABI 或 COFF。 如果您使用的是较旧的编译器版本、则可能会将 COFF 视为唯一选项。

    惠特尼

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

    根据您的建议、我尝试更改它、但它仅显示 COFF 选项。 我还更新了编译器、但结果是相同的。 我的编译器版本是 TI v18.1.4.LTS。

     

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

    看起来 ELF 支持是在18.9.0.STS 中引入的、因此您需要该支持或更新版本才能看到它。

    您可以继续使用 COFF -只需知道您将需要以其他方式对变量进行零初始化。 在应用程序中执行该操作、或者在 c_int00之前运行一些执行该操作的代码。 您还可以查看其他一些有关该主题的讨论

    惠特尼