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

 
 
> 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
Ответов
SasaVitebsk
сообщение May 22 2009, 13:50
Сообщение #2


Гуру
******

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



CODE
1373 //__arm __nested __irq static void ShowActive(void)// Исполнение комманд

\ In section .text, align 4, keep-with-next
1374 __arm __irq void ShowActive(void)// Исполнение комманд
1375 {
\ ShowActive:
\ 00000000 0F002DE9 PUSH {R0-R3}
1376 uint8_t i, c, x1,y1,x2,y2,xt,yt,Color2, *adrnpict;
1377 int16_t x,y;
1378 int16_t volatile TekTm;
1379 uint16_t l,ll;
1380 #ifdef DEBUG_SPEED
1381 uint16_t MaxT; // %%%% Для отладки
1382 #endif
1383 uint8_t static AdrMstToSlv=0; // Адрес передачи структуры Status
1384
1385 //******************************************
1386 OUT_EN_RS485;
\ 00000004 4E02A0E3 MOV R0,#-536870908
\ 00000008 A00B80E3 ORR R0,R0,#0x28000
\ 0000000C 4018A0E3 MOV R1,#+4194304
\ 00000010 001080E5 STR R1,[R0, #+0]
1945 VICSoftIntClear = (1<<SHOW_INT); // Сбросить совтовое прерывание
\ 00000014 E320E0E3 MVN R2,#+227
\ 00000018 F02EC2E3 BIC R2,R2,#0xF00
\ 0000001C 0230A0E3 MOV R3,#+2
\ 00000020 003082E5 STR R3,[R2, #+0]
1946 VICVectAddr = 0;
\ 00000024 0030A0E3 MOV R3,#+0
\ 00000028 143082E5 STR R3,[R2, #+20]
1947 // TST_CLR;
1948
1949 //******************************************
1950 IN_EN_RS485;
\ 0000002C 081080E5 STR R1,[R0, #+8]
1951 }
\ 00000030 0F00BDE8 POP {R0-R3}
\ 00000034 04F05EE2 SUBS PC,LR,#+4 ;; return
\ 00000038 REQUIRE _A_VICSoftIntClear
\ 00000038 REQUIRE VICVectAddr
\ 00000038 REQUIRE _A_IOSET
\ 00000038 REQUIRE _A_IOCLR


Спасибо за помощь.
Разбираюсь пока


Проверил CSTARTUP
Стек инициализирован
Причина редактирования: Уменьшение видимого размера цитаты исходника.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 22 2009, 13:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SasaVitebsk @ May 22 2009, 16:50) *

Листиг не читал, с проблемой не разбирался, но не по делу - случайно зацепился взглядом за обилие неестесвенных 8 и 16 бит переменных. Надо изживать в себе восьмибитовики и использовать в большинстве случаев портируемые типы (хоть свои, хоть С99 ) переменных со смыслом "не менее 8bit", не "менее 16bit"


--------------------
Feci, quod potui, faciant meliora potentes
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
- - GetSmart   Ну вот кусок для инициализации стеков. CODE MODUL...   May 22 2009, 13:10
|- - 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 Текстовая версия Сейчас: 22nd July 2025 - 21:09
Рейтинг@Mail.ru


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