реклама на сайте
подробности

 
 
> compile error
AD_Wolf
сообщение Aug 28 2008, 13:07
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 27-01-08
Из: Пушкин
Пользователь №: 34 464



помогите, пожалуйста, понять, почему ругается компилятор

Код
void FIQ_Handler (void) __fiq; //это 3 строка

int main()
{

while(1) {; }

}

void FIQ_Handler (void) __fiq
{

};


Цитата
Build target 'Target 1'
assembling Startup.s...
compiling main.c...
main.c(3): error: #130: expected a "{"
main.c(6): warning: #12-D: parsing restarts here after previous syntax error
main.c(12): error: #247: function "FIQ_Handler" has already been defined
main.c(12): error: #130: expected a "{"
main.c(15): warning: #1-D: last line of file ends without a newline
Target not created


Сообщение отредактировал AD_Wolf - Aug 28 2008, 13:09
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Палыч
сообщение Aug 28 2008, 14:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Компилятор говорит, что не понимает "__fiq" (я - тоже не понимаю), которое идет после "(void)". Компилятор ожидает, что после "(void)" будет "{" (ну, или ";" в третьей строке).
Go to the top of the page
 
+Quote Post
AD_Wolf
сообщение Aug 28 2008, 15:06
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 27-01-08
Из: Пушкин
Пользователь №: 34 464



Цитата(Палыч @ Aug 28 2008, 18:53) *
Компилятор говорит, что не понимает "__fiq" (я - тоже не понимаю), которое идет после "(void)". Компилятор ожидает, что после "(void)" будет "{" (ну, или ";" в третьей строке).


а как тогда объявить прототип на функцию обработчик прерывания?

в примере, в книге ЛПЦ2000 (Т. Мартин) пример 11, именно так и написано ..
Код
#include <LPC21xx.H>
void FIQ_Handler (void) __fiq;       //declare FIQ ISR
void initFiq (void);

void main (void)
{

    initFiq();                                               //Initilise the Fast interrupt source
    IOCLR1             = 0x00FF0000;                           //clear the LED pins
    while(1)
    {
       ;                                                          //Loop here forever
    }

}

void FIQ_Handler (void)    __fiq
{
    IOSET1             = 0x00FF0000;                                //Set the LED pins
    EXTINT          = 0x00000002;                                //Clear the peripheral interrupt flag

}

void initFiq(void)
{
    IODIR1            = 0x00FF0000;                            //Set the LED pins as outputs
    PINSEL0         = 0x20000000;                            //Enable the EXTINT1 interrupt
    VICIntSelect     = 0x00008000;                            //Enable a Vic Channel as FIQ
    VICIntEnable    = 0x00008000;        
}


Цитата(AD_Wolf @ Aug 28 2008, 19:02) *
а как тогда объявить прототип на функцию обработчик прерывания?

в примере, в книге ЛПЦ2000 (Т. Мартин) пример 11, именно так и написано ..
Код
#include <LPC21xx.H>
void FIQ_Handler (void) __fiq;       //declare FIQ ISR
void initFiq (void);

void main (void)
{

    initFiq();                                               //Initilise the Fast interrupt source
    IOCLR1             = 0x00FF0000;                           //clear the LED pins
    while(1)
    {
      ;                                                          //Loop here forever
    }

}

void FIQ_Handler (void)    __fiq
{
    IOSET1             = 0x00FF0000;                                //Set the LED pins
    EXTINT          = 0x00000002;                                //Clear the peripheral interrupt flag

}

void initFiq(void)
{
    IODIR1            = 0x00FF0000;                            //Set the LED pins as outputs
    PINSEL0         = 0x20000000;                            //Enable the EXTINT1 interrupt
    VICIntSelect     = 0x00008000;                            //Enable a Vic Channel as FIQ
    VICIntEnable    = 0x00008000;        
}


может быть это потому что у меня в опциях пректа стоит галочка на Use RealView Compiler, а он такой синтаксих не понимает. если да, то подскажите как переключить на CARM? с опции Use RealView Compiler переключиться не получается, не снимается
Go to the top of the page
 
+Quote Post
Палыч
сообщение Aug 28 2008, 15:17
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Ну, блин... Вы хотя бы указали какой транслятор, какой МК...
Наверное так:
__fiq void FIQ_Handler (void)
Go to the top of the page
 
+Quote Post
AD_Wolf
сообщение Aug 28 2008, 15:50
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 27-01-08
Из: Пушкин
Пользователь №: 34 464



Цитата(Палыч @ Aug 28 2008, 19:17) *
Ну, блин... Вы хотя бы указали какой транслятор, какой МК...
Наверное так:
__fiq void FIQ_Handler (void)

с этим я уже рабрался, компилится без ошибок, спасибо. (не __fiq, а __irq нужно судя по документации)

и все же как переключиться на Keil compiler?
Manage -> Compenents, Environment, Books -> Folders, Extension в этом мею не получается снять chackbox с Realview.

хотелось бы использовать CARM

Сообщение отредактировал AD_Wolf - Aug 28 2008, 15:51
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th September 2025 - 18:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.03026 секунд с 7
ELECTRONIX ©2004-2016