Встроенный C код необъяснимой синтаксической ошибки; Ожидается ... до '{' токена - PullRequest
1 голос
/ 02 марта 2020

Я начал использовать 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(;;);
}

Выше приведен фрагмент кода инициализации.

Однако появляется сообщение об ошибке:

Описание Путь к ресурсу Тип ожидаемого расположения: '=', ',', ';', 'asm' или ' attribute 'before' {'назначение токена1. c Template_Proteus строка 14 C / C ++ Задача

это не может быть правдой с точки зрения основного веселья c. так как он ожидает, что эти токены записаны между main () и открывающейся фигурной скобкой main.

Такие проблемы встречаются в каждой функции, которую я пишу в Eclipse (работает в Virtualbox).

Кроме того, в объявлении T0Handler существует постоянная синтаксическая проблема с частью

_attribute_ ((interrupt ("IRQ"))).

1 Ответ

2 голосов
/ 02 марта 2020

Синтаксический анализатор Eclipses (то, что движет основными моментами в редакторе) не понимает используемое вами расширение c для компилятора.

Не уверен, как обойти это, но это Я думаю, что это довольно распространенная проблема во встроенных разработках.

Я нашел ответ , адаптированный отсюда , в котором говорится, что вы можете исправить это, написав код для индексатора Eclipse, например:

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

Я не проверял это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...