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

 
 
> Cortex-A9 вложенные прерыания, Стандартный GIC, как приготовить
Genadi Zawidowsk...
сообщение Mar 6 2016, 20:05
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Появился вопрос в процессе одевания на голое железо обычной системы с super loop. Железо - Renesas RZ/A1L.

Что есть:
Вот такой код обработчика в ассемблере:

Код
IRQHandler:

/* Save interrupt context on the stack to allow nesting */
    sub        lr, lr, #4
    stmfd   sp!, {lr}
    mrs     lr, SPSR
    stmfd   sp!, {r0, lr}

    // save VFP/Neon data registers
    VPUSH {d0-d15}    // same as s0-s31
    // save VFP/Neon FPSCR register
    FMRX        r0, fpscr
    stmfd   sp!, {r0-r3, r4, r12, lr}


    ldr        r2, =IRQHandlerSafe
    mov        lr, pc
    bx        r2     /* And jump... */

    ldmia   sp!, {r0-r3, r4, r12, lr}
    // restore VFP/Neon FPSCR register
    FMXR        fpscr, r0
    // restore VFP/Neon data registers
    VPOP   {d0-d15}    // same as s0-s31

    ldmia   sp!, {r0, lr}
    msr     SPSR_cxsf, lr
    ldmia   sp!, {pc}^


И его продолжение в C:

Код
void IRQHandlerSafe(void)
{
    /* const uint32_t icchpir = */ (void) INTC.ICCHPIR;
    const uint32_t icciar = INTC.ICCIAR;
    (* intc_func_table [icciar & 0x03FF]) ();         /* Call interrupt handler */
    INTC.ICCEOIR = icciar & 0x1FFF;
}


Сейчас всё работает в случае, если среди прерываний нет разделения на группы с меньшим и большим приоритетами.
Стоит добавить, получается "каша" - похоже, что выполнение более приоритетного прерывания не рапрещает выполнение менее приоритетного.

Установка при инициализации процессора значения в регистре priority mask на менее приоритетное прерывание - оно естественно запрещается...


Вопрос - как это должно тут выглядеть? (на STM32 с архитектурой Cortex-M4 и Cortex-M7 это всё работает, с использованием тамошних механизмов BASEPRI и остального).


зы: картинки просто как иллюстрация.

Сообщение отредактировал Genadi Zawidowski - Mar 6 2016, 21:25
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 01:30
Рейтинг@Mail.ru


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