嵌入式C代码无法解释的语法错误;预期 ... 在“{”标记之前
Embedded C code unexplainable syntax error; Expected ... before '{' token
我现在开始使用 Eclipse,我注意到在我编写的每个函数中都会出现这个错误。对此还没有任何帮助。
#include "init.h"
#include "irq.h"
void T0Handler (void) _attribute_ ((interrupt ("IRQ")));
int main(void)
{
systemInit(); /*CCLK = 50MHz; PCLK = 25MHz*/
install_irq(TIMER0_INT, T0Handler, 0);
for(;;);
}
以上只是一个初始化代码片段。
但是,弹出一个错误提示:
描述资源路径位置类型
在“{”标记 assignment1.c Template_Proteus 行 14 C/C++问题
就主要功能而言,这不可能是真的。因为它期望在 main() 和 main 的左大括号之间写入那些标记。
我在 Eclipse 中编写的每个函数(在 Virtualbox 中工作)都会出现此类问题。
此外,在 T0Handler 声明中,
存在语法问题
_attribute_ ((interrupt ("IRQ")))
部分.
Eclipses 的解析器(这是驱动编辑器内高亮显示的原因)不理解您正在使用的特定于编译器的扩展。
不确定如何解决这个问题,但我认为这是嵌入式开发中的一个常见问题。
我找到了一个答案 adapted from here,它指出您可以通过编写针对 Eclipse 索引器的代码来修复它,如下所示:
#ifdef __CDT_PARSER__
#define _attribute_ (...)
#endif
我还没有测试过这个。
我现在开始使用 Eclipse,我注意到在我编写的每个函数中都会出现这个错误。对此还没有任何帮助。
#include "init.h"
#include "irq.h"
void T0Handler (void) _attribute_ ((interrupt ("IRQ")));
int main(void)
{
systemInit(); /*CCLK = 50MHz; PCLK = 25MHz*/
install_irq(TIMER0_INT, T0Handler, 0);
for(;;);
}
以上只是一个初始化代码片段。
但是,弹出一个错误提示:
描述资源路径位置类型 在“{”标记 assignment1.c Template_Proteus 行 14 C/C++问题
就主要功能而言,这不可能是真的。因为它期望在 main() 和 main 的左大括号之间写入那些标记。
我在 Eclipse 中编写的每个函数(在 Virtualbox 中工作)都会出现此类问题。
此外,在 T0Handler 声明中,
存在语法问题_attribute_ ((interrupt ("IRQ")))
部分.
Eclipses 的解析器(这是驱动编辑器内高亮显示的原因)不理解您正在使用的特定于编译器的扩展。
不确定如何解决这个问题,但我认为这是嵌入式开发中的一个常见问题。
我找到了一个答案 adapted from here,它指出您可以通过编写针对 Eclipse 索引器的代码来修复它,如下所示:
#ifdef __CDT_PARSER__
#define _attribute_ (...)
#endif
我还没有测试过这个。