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

 
 
> Вызов Си-шного обработчика FIQ - прерывания, При компиляции RealView компилятором
Maximm
сообщение Mar 23 2008, 18:55
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 7-10-07
Из: Санкт-Петербург
Пользователь №: 31 137



Доброе время суток!
Пытаюсь объявить обработчик FIQ-прерывания, как Си-функцию, Си-компилятор RealView, прерывание не вызывается! Раньше в Кейловском копмиляторе была директива "__FIQ" и всё работало, но в RealView eё нет и для IRQ и FIQ обработчиков используется - "__IRQ".

Вот просой пример кода - он не работает, подскажите в чем проблема!

Код
void Timer(void) __irq
{
    if (IOSET0 & LED_1)
        IOCLR0 |= LED_1;    
    else
        IOSET0 |= LED_1;    
    T0IR = 0x01;
}

int main(void)
{
    IODIR0 |= LED_1 | LED_2;
    IOCLR0 |= LED_2;
    IOSET0 |= LED_1;

    T0PR = 2999;
    T0TCR = 2;
    T0MCR = 3;
    T0MR0 = 999;
    T0TCR = 1;
    
    VICIntSelect = 0x10;
    VICIntEnable = 0x10;

    while(1);    
}

Кусок Startup'a

               AREA    RESET, CODE, READONLY
               ARM
       EXTERN Timer

Vectors     LDR     PC, Reset_Addr        
                LDR     PC, Undef_Addr
                LDR     PC, SWI_Addr
                LDR     PC, PAbt_Addr
                LDR     PC, DAbt_Addr
                NOP                          ; Reserved Vector
                LDR     PC, [PC, #-0x0FF0]; Vector from VicVectAddr
                LDR     PC, FIQ_Addr

Reset_Addr      DCD     Reset_Handler
Undef_Addr      DCD     Undef_Handler
SWI_Addr        DCD     SWI_Handler
PAbt_Addr       DCD     PAbt_Handler
DAbt_Addr       DCD     DAbt_Handler
                      DCD     0                    ; Reserved Address
IRQ_Addr        DCD     IRQ_Handler
FIQ_Addr        DCD     FIQ_Handler

Undef_Handler   B       Undef_Handler
SWI_Handler     B       SWI_Handler
PAbt_Handler    B       PAbt_Handler
DAbt_Handler    B       DAbt_Handler
IRQ_Handler     B       IRQ_Handler
FIQ_Handler     B       Timer


Разобрался с проблемой во время написания вопроса, как обычно и бывает)
Представленный код посностью рабочий, может кому-нибудь пригодиться, как пример

Извините за флуд!


--------------------
Если работает через раз - значит не работает!
Go to the top of the page
 
+Quote Post



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

 


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


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