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.

[参考译文] C2000WARE:[CCS/F28P65X] C2000Ware v26.00.00.00–f28p65x_device.h uint16_t 未定义错误

Guru**** 2846310 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1633423/c2000ware-ccs-f28p65x-c2000ware-v26-00-00-00-f28p65x_device-h-uint16_t-undefined-error

器件型号: C2000WARE

您好:

从 C2000Ware v26.00.00.00 导入和编译以下示例工程时遇到编译错误:

 {C2000Ware}\device_support\f28p65x\examples\cpu1\led\led_ex1_blinky


==错误消息==

“C:/ti/C2000Ware_26_00_00_00/device_support/f28p65x/headers/include/f28p65x_device.h、第 73 行:错误#20:标识符“uint16_t"未“未定义
“C:/ti/C2000Ware_26_00_00_00/device_support/f28p65x/headers/include/f28p65x_device.h “、第 73 行:错误#839:cregister 'ifr'的类型非法
“C:/ti/C2000Ware_26_00_00_00/device_support/f28p65x/headers/include/f28p65x_device.h、第 74 行:错误#20:标识符“uint16_t"未“未定义
“C:/ti/C2000Ware_26_00_00_00/device_support/f28p65x/headers/include/f28p65x_device.h “、第 74 行:错误#839:cregister 'ier'的类型非法


==根本原因(可疑)==

在 v26.00.00.00 和 v5.05.xx 之间比较 f28p65x_device.h 时、IFR/IER 的声明如下所示进行了更改:

 在 (v5.05.xx) 之前: extern __cregister volatile unsigned int IFR;
 在 (v26.00.00) 之后:extern __cregister volatile uint16_t IFR;

似乎在 f28p65x_device.h 中使用了 uint16_t、之前没有#include 、导致编译器无法解析类型。

同一工程会在 C2000Ware v5.xx 和 v6.xx 下构建、没有错误。


==我尝试过的解决方法==

1.添加#include 在 f28p65x_device.h→中的 IFR/IER 声明正上方可解决该错误。
2.将 uint16_t 恢复为 unsigned int→也解决了该错误。
3.添加#include 在 main.c 的顶部、→不能解决该错误(因为标头本身是在 cregister 声明处可见 stdint.h 之前编译的)。


==问题==

C2000Ware v26.00.00.00 中是否有针对此问题的建议/正式修复?
具体而言、我想知道:

-这是 v26.00.00.00 中的已知错误,将在修补程序中解决吗?
-是否有一个编译器标志或预定义包含路径,以确保在处理器件头文件之前解析 stdint.h ?
-是否有任何其他不需要直接修改 C2000Ware 头文件的“干净“解决方案?

请提供任何指导。


==环境==
- C2000Ware:v26.00.00.00
-设备:F28P650DK9
- IDE:CCS Theia 20.2.0.12__1.8.0  
-编译器:TI-CGT-C2000_22.6.2.LTS

谢谢你。

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

    您好、  

     在此版本中、f28p65x_device.h 中错过了 stdint.h 的包含。  
    此问题将在 C2000Ware 的下一版本中得到修复。

    同时、您必须直接更新头文件以修复它。

    此致

    Siddharth