您好、专家、
我的客户将下面的代码从 F2802x COFF 迁移到 F280025 eabi、将会出现错误、而且似乎 |MOV 指令已注释掉。
[E0800] 结构/联合 体定义中不允许使用指令。

在 F2802x 中、使用相同的代码没有这个问题、对此有任何建议吗?
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.
您好、专家、
我的客户将下面的代码从 F2802x COFF 迁移到 F280025 eabi、将会出现错误、而且似乎 |MOV 指令已注释掉。
[E0800] 结构/联合 体定义中不允许使用指令。

在 F2802x 中、使用相同的代码没有这个问题、对此有任何建议吗?
很好、 我咨询了编译器团队的一些专家、他们请求了一个可重现的测试案例。 为此、您可以在图片中所示的仅预处理模式下构建项目。
此外、如果您使用 EABI 进行编译、则汇编代码不应包含带有前导下划线的符号、例如_vac_offset_NEG。 您是否查阅过 C28x EABI 迁移指南?
https://software-dl.ti.com/ccs/esd/documents/C2000_c28x_migration_from_coff_to_eabi.html
谢谢、
Sira
cdecls 指令不支持与#define 名称相同的标识符以及结构、联合或枚举中字段的名称。 即使可以在 C 语言中执行该操作、情况也是如此。 在这种情况下、这种情况的发生方式并不明显。
cdecls 指令引用头文件...
.cdecls C, LIST, "f28x_project.h"
头文件 f28x_project.h 包含以下行...
#include "f28002x_device.h" // f28002x Headerfile Include File #include "f28002x_examples.h" // f28002x Examples Include File #define ERROR 0x11
在 C 语言中、错误的定义对前几行中包含的头文件没有影响。 但是、当由.cdecls 处理时、它确实是这样。 请在 C28x 汇编工具手册中搜索 标题为 概述.cdecls 指令的子章节。 最后是短语...
转换后的汇编代码与原始 C/C++源代码的显示顺序不同
构建包含.cdecls 的汇编文件时、请使用选项-asm_listing。 这将创建与源文件同名的列表文件、扩展名更改为.lst。 检查列表文件。 这自动生成的行...
A 286 .define "0x11",ERROR
(笑声) 显示在文件的早期、与头文件中的结构定义相对应的行之前。
F28x_project.h 通过其他头文件包含的头文件之一是 f28002x_nmiintrupt.h 该头文件包含以下行...
struct ERRORSTS_BITS { // bits description
Uint16 ERROR:1; // 0 Error flag.
Uint16 PINSTS:1; // 1 Error pin status.
Uint16 rsvd1:14; // 15:2 Reserved
};
union ERRORSTS_REG {
Uint16 all;
struct ERRORSTS_BITS bit;
};
struct ERRORSTSCLR_BITS { // bits description
Uint16 ERROR:1; // 0 ERRORFLG.ERROR clear bit
Uint16 rsvd1:15; // 15:1 Reserved
};
union ERRORSTSCLR_REG {
Uint16 all;
struct ERRORSTSCLR_BITS bit;
};
struct ERRORSTSFRC_BITS { // bits description
Uint16 ERROR:1; // 0 ERRORSTS.ERROR pin force.
Uint16 rsvd1:15; // 15:1 Reserved
};
请注意错误如何显示为其中三个结构类型中的字段名称。 但因为...
#define ERROR 0x11
(笑声) 以及.cdecls 的工作方式、所有这些错误实例都被0x11取代。 这会形成无效的汇编代码。 因此,汇编器会发出错误诊断...
结构体/联合体定义中不允许使用指令
谢谢、此致、
乔治