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

 
 
> обработчики перрываний, покритикуйте пожалуйста самописные обработчики прерываний
shrek
сообщение Dec 8 2008, 09:07
Сообщение #1


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

Группа: Участник
Сообщений: 125
Регистрация: 1-12-08
Из: г. Орел
Пользователь №: 42 126



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

;-------------------------------------------------------------------------------
; Вектор IRQ прерывания
org 0x18

mov pc, #0x40
;-------------------------------------------------------------------------------
; Вектор FIQ прерывания
org 0x1C

mov pc, #0x60
;-------------------------------------------------------------------------------
; Обработчик IRQ прерывания
org 0x40

sub lr, lr, #4
stmia sp!, {r0 - r12,lr}
msr CPSR_c, #ARM_MODE_IRQ
mvn r0, #0xFF
bic r0, r0, #0xE00
mov lr, pc
ldr pc, [r0]
ldmdb sp!, {r0 - r12,pc}^
;-------------------------------------------------------------------------------
; Обработчик FIQ прерывания
org 0x60

sub lr, lr, #4
stmia sp!, {r0 - r7,lr}
mov lr, pc
ldr pc, [r12]
ldmdb sp!, {r0 - r7,pc}^
;-------------------------------------------------------------------------------

в r12 я записал адрес AIC_FVR при инициализации стека для FIQ режима
Вроде в симуляторе все работает в том числе обрабатывает корректно вложенные прерывания)
на плате отлаживать пока не пробовал)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:58
Рейтинг@Mail.ru


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