Сделайте замечания что, тут я не правильно понял в irq обработчике,
Еще вопрос по fiq , теневой регистр, вроде не мало прочел, не где это не встречалось , это R8 -R14
что в них сохраняется, тоже что и RL ?
CODE
@----------------------------------------------------------------------------------------
IRQ_handler:
sub lr, lr, #4 @ LR_IRQ - 4
stmfd sp!, {r0, r3, lr} @ сохранить в стеке IRQ, регистры R0 R1 и LR
ldr r0, = AIC_BASE @ чтение из AIC_BASE и запись в регистр R0
ldr r1, [r0, #AIC_IVR] @ чтение из r0 + #AIC_IVR и запись в регистр R1 вектора прерываний
mrs r0, SPSR @ Запись в регистр R0 Сохраненого Статуса SPSR
stmdb sp!, {r0} @ сохранить в стеке регистр R0 (статус до прервания)
mrs r0, CPSR @ Запись в регистре R0, и возврат в режим который был до прерывания
orr r0, r0, #SYS_MODE @ Логическое ИЛИ регистра R0 с #SYS_MODE с сохранением в R0
msr CPSR, r0 @ переключение ядра, в Системный режим
stmdb sp!, {r2, r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr}@ сохранить в стеке SyS регистры r2, r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr
mov lr, pc @ Копировать в LR регистр, регистр r14 + 0х04
bl r1 @ Переход на вектор программы обработки прерывания
ldmia sp!, {r2, r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr}@ Прочитать из стека регистры r2, r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr
mrs r0, CPSR @ сохранить в регистре R0 текущий статус
bic r0, r0, #SYS_MODE @ Логическая операция AND NOT регистра R0 и #SYS_MODE
orr r0, r0, #IRQ_MODE @ Логическое ИЛИ регистра R0 и #IRQ_MODE
msr CPSR, r0 @ Запись в регистр CPSR регистр R0 и переключение ядра в IRQ_mode,
ldr r0, = AIC_BASE @ чтение из AIC_BASE и запись в регистр R0 (базовый адрес AIC)
str r0, [r0, #AIC_EOICR] @ сохранить R0 по адресу R0 + #AIC_EOICR и сброс прерывания
ldmia sp!, {r0} @ чтение из стека и запись в R0 (статус до прерывания)
msr SPSR, r0 @ запись в SPSR регистр R0 (возврат статуса до прерывания)
ldmia sp!, {r0, r3, pc}^ @ запись в PC значения сохраненого, в момент возникновения прерывания и востановление регистров r0 r3, обновить CPSR
@----------------------------------------------------------------------------------------