Other Parts Discussed in Thread: C2000WARE
您好、
我正在使用处理一个项目 F28P65x 频率。 我将工具链更新为:
-
TI C28x 编译器: v22.6.3.LTS
-
C2000Ware: 26.00.00.00
更新后、我开始看到源自的编译问题 f28p65x_device.h。
...
在该文件中、以下寄存器定义显示在顶部附近:
// // Common CPU Definitions: // extern __cregister volatile uint16_t IFR; extern __cregister volatile uint16_t IER;
但是、同一文件的后面部分包含标准标头:
// // For Portability, User Is Recommended To Use the C99 Standard integer types // #if !defined(__TMS320C28XX_CLA__) #include <assert.h> #include <stdarg.h> #endif //__TMS320C28XX_CLA__ #include <stdbool.h> #include <stddef.h> #include <stdint.h>
因为stdint.h已包含在内 之后 寄存器定义、类型uint16_t在定义之前使用。 作为测试、我移动了标准标头包括、使其显示出来 解决方案 寄存器定义。 完成此操作后、工程编译不会出现任何问题。
但是、修改 C2000Ware 的器件支持头文件 这不是我想依赖的。
我的问题是:
在不f28p65x_device.h通过 C2000Ware 进行修改的情况下解决此问题的正确方法是什么?
是否有建议的包含顺序或配置更改、应在使用时应用 带有 C2000Ware 26.00.00.00 的编译器 v22.6.3.LTS ?
附加上下文:
-
在更新编译器和 C2000Ware 之前正确编译的工程。
-
问题似乎与的定义有关
uint16_t。 -
移动
stdint.h之前的 include 可解决问题、但需要修改设备标头。
感谢任何指导。