繁体   English   中英

嵌入式 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(;;);
}

以上只是一个初始化代码片段。

但是,弹出一个错误说:

描述 资源路径位置类型在“{”标记分配1.c Template_Proteus line 14 C/C++ 问题之前需要“=”、“、”、“;”、“asm”或“属性

就主函数而言,它不可能是真的。 因为它期望在 main() 和 main 的左大括号之间写入这些标记。

我在 Eclipse 中编写的每个函数(在 Virtualbox 中工作)都会出现此类问题。

此外,在 T0Handler 声明中,存在常量语法问题

_attribute_ ((interrupt ("IRQ")))部分。

Eclipses 的解析器(这是在编辑器中突出显示的原因)无法理解您正在使用的特定于编译器的扩展。

不知道如何解决这个问题,但我认为这是嵌入式开发中一个足够普遍的问题。

我找到了一个改编自here的答案该答案指出您可以通过编写针对 Eclipse 索引器的代码来修复它,如下所示:

#ifdef __CDT_PARSER__
#define _attribute_ (...)
#endif

我没有测试过这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM