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

 
 
> FIQ/IRQ, Некоторые неувязки ... в голове :)
SasaVitebsk
сообщение May 22 2009, 08:15
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Явного описания нигде не нашёл. Видимо считается "само-сабой разумеющимся". Тем не менее для меня это не "само-сабой".

Исходя из архитектуры, а также из того, что я вижу под J-LINKом в прерывании IRQ разрешено прерывание FIQ - я делаю вывод о том, что прерывание FIQ должны коректно вызываться/обрабатываться как из main так и из IRQ прерываний. Тем не менее у меня какие-то неувязки. Почему-то время обработки прерывания IRQ значительно завышено. Короче что-то я не так понимаю.

Работаю под IAR.
В IAR прерывание FIQ объявляется:
__fiq __arm void FIQ_Handler()

IRQ прерывание объявляется
__arm __irq static void ShowActive(void)

Прерывание FIQ таймерное. Вызывается и завершается коректно. Никаких хомутов не вижу.
Прерывание IRQ совтовое. Вызывается из FIQ корректно - это я чётко вижу по осциллографу.
Вызывается типа так:
if(Flag.EnShow) VICSoftInt = (1<<SHOW_INT);
Сбрасывается так:
VICSoftIntClear = (1<<SHOW_INT);
VICVectAddr = 0;

Продолжительность его слишком велика. Я сейчас с него выкинул почти всё. Оно должно обрабатываться 1-2 прерывания FIQ, но на самом деле обрабатывается значительно больше и завершение связано каким-то образом с прерыванием FIQ.

Буду сам копаться, но может кто подскажет что?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение May 22 2009, 13:10
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Ну вот кусок для инициализации стеков.
CODE
MODULE stk_startup

SECTION IRQ_STACK:DATA:NOROOT(2)
SECTION FIQ_STACK:DATA:NOROOT(2)
SECTION CSTACK:DATA:NOROOT(2)

SECTION .text:CODE:NOROOT(2)
EXTERN ?main
PUBLIC ?cstartup
ARM

?cstartup:

; Initialize the stack pointers.
; The pattern below can be used for any of the exception stacks:
; FIQ, IRQ, SYS.
; The USR mode uses the same stack as SYS.
; The stack segments must be defined in the linker command file,
; and be declared above.
;
; --------------------
; Mode, correspords to bits 0-5 in CPSR
MODE_BITS DEFINE 0x1F ; Bit mask for mode bits in CPSR
USR_MODE DEFINE 0x10 ; User mode
FIQ_MODE DEFINE 0x11 ; Fast Interrupt Request mode
IRQ_MODE DEFINE 0x12 ; Interrupt Request mode
SVC_MODE DEFINE 0x13 ; Supervisor mode
ABT_MODE DEFINE 0x17 ; Abort mode
UND_MODE DEFINE 0x1B ; Undefined Instruction mode
SYS_MODE DEFINE 0x1F ; System mode

MRS r0, cpsr ; Original PSR value

BIC r0, r0, #MODE_BITS ; Clear the mode bits
ORR r0, r0, #FIQ_MODE ; Set FIQ mode bits
MSR cpsr_c, r0 ; Change the mode
LDR sp, =SFE(FIQ_STACK) ; End of FIQ_STACK

BIC r0, r0, #MODE_BITS ; Clear the mode bits
ORR r0, r0, #IRQ_MODE ; Set IRQ mode bits
MSR cpsr_c, r0 ; Change the mode
LDR sp, =SFE(IRQ_STACK) ; End of IRQ_STACK

BIC r0 ,r0, #MODE_BITS ; Clear the mode bits
ORR r0 ,r0, #SYS_MODE ; Set System mode bits
MSR cpsr_c, r0 ; Change the mode
LDR sp, =SFE(CSTACK) ; End of CSTACK

;
; Add more initialization here
;

; Continue to ?main for C-level initialization.

LDR r0, =?main
BX r0

END


Цитата(SasaVitebsk @ May 22 2009, 17:54) *
Прошу вас ещё раз привести пример инициализации стека в FIQ. Может в этом загвоздка. Static убрал.

Листинг обработчика IRQ хотя бы приведите. Это кусок файла *.lst, в котором лежит обработчик IRQ.

Сообщение отредактировал GetSmart - May 22 2009, 13:09


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SasaVitebsk   FIQ/IRQ   May 22 2009, 08:15
- - Andy Mozzhevilov   Крайне мутное описание и куча "инженерных...   May 22 2009, 11:18
- - SasaVitebsk   У меня идут быстрые FIQ прерывания. С каждым 24 (в...   May 22 2009, 11:30
- - Andy Mozzhevilov   И что конкретно не работает? Какое время у вас вып...   May 22 2009, 11:59
- - GetSmart   Цитата(SasaVitebsk @ May 22 2009, 13:15) ...   May 22 2009, 12:14
|- - SasaVitebsk   Цитата(GetSmart @ May 22 2009, 15:14) В п...   May 22 2009, 12:29
- - GetSmart   Может долго сидит в совтовом прерывании потому, чт...   May 22 2009, 12:38
- - SasaVitebsk   Оставил в прерывании следующее: Код__arm __irq st...   May 22 2009, 12:40
- - GetSmart   Цитата(SasaVitebsk @ May 22 2009, 13:15) ...   May 22 2009, 12:52
- - SasaVitebsk   __nested я не ставил. Других IRQ нет. Они все равн...   May 22 2009, 12:54
- - SasaVitebsk   CODE 1373 //__arm __nested __irq static void ...   May 22 2009, 13:50
|- - zltigo   Цитата(SasaVitebsk @ May 22 2009, 16:50) ...   May 22 2009, 13:58
|- - GetSmart   Цитата(SasaVitebsk @ May 22 2009, 18:50) ...   May 22 2009, 14:46
- - Rst7   А листинг FIQ? Может там что-то не так?   May 22 2009, 13:51
|- - SasaVitebsk   Цитата(Rst7 @ May 22 2009, 16:51) А листи...   May 22 2009, 14:16
|- - zltigo   Цитата(SasaVitebsk @ May 22 2009, 17:16) ...   May 22 2009, 14:29
- - SasaVitebsk   Вот cstartup подключённый к проекту   May 22 2009, 13:53
- - SasaVitebsk   1) Совтовый флаг нормально устанавливается и сбрас...   May 22 2009, 16:34
- - GetSmart   Что за сигналы жёлтый и синий? Почему у жёлтого р...   May 22 2009, 16:54
- - Rst7   Если я правильно понял осциллограмы, запрос FIQ не...   May 22 2009, 17:11
|- - SasaVitebsk   Цитата(Rst7 @ May 22 2009, 20:11) Если я ...   May 22 2009, 17:29
|- - SasaVitebsk   Цитата(Rst7 @ May 22 2009, 20:11) Если я ...   May 22 2009, 17:42
- - SasaVitebsk   Жёлтый это FIQ. Только сигнал не тестовый а реальн...   May 22 2009, 17:12
|- - GetSmart   Цитата(SasaVitebsk @ May 22 2009, 22:12) ...   May 22 2009, 17:25
- - Rst7   С трудом понимаю Вас. Давайте, наверное, сделайте ...   May 22 2009, 17:38
- - Rst7   ЦитатаНо почему????? Ответ на этот вопрос можно д...   May 22 2009, 17:56
|- - SasaVitebsk   Цитата(Rst7 @ May 22 2009, 20:56) Я знал ...   May 22 2009, 18:30
- - Rst7   Понятно что ничего не понятно. По отдельностям вро...   May 22 2009, 19:20
- - SasaVitebsk   Собрал минимальный проект, готовый к отправке. Пра...   May 22 2009, 19:51
- - SasaVitebsk   Видимо уже совсем мозги не соображают. Глаз замыли...   May 22 2009, 22:02
- - SasaVitebsk   PS: Всё разобрался. Действительно ночью переклинил...   May 23 2009, 05:55
- - GetSmart   А чего было то?   May 23 2009, 10:18
- - zltigo   Moderator: Темы разделил. http://electronix.ru/for...   May 26 2009, 09:16


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

 


RSS Текстовая версия Сейчас: 1st August 2025 - 22:26
Рейтинг@Mail.ru


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