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

 
 
> Прерывания в компиляторе RealView, IRQ или FIQ?
SanyaKID
сообщение Jun 27 2007, 07:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 13-09-06
Пользователь №: 20 359



Разбирались мы тут с прерываниями и накопали вот что. Компилятор armcc не делает разницы между IRQ и FIQ перываниями, и использует как в IRQ так и в FIQ режимах общие регистры R0-R7, сохраняя их в стеке при входе прерывания.
А вот в описании архитектуры ARM7TDMI сказано что в режиме FIQ регистры R8-R14 в нутри прерывания это banked registers, то есть они не пересекаются с регистрами R8-R14 вне прерывания и их не надо класть в стек.
Так вот, может кто знает, можно ли как-нибуть указать компилятору, чтобы он пользовался этими banked register, а не общими? Хотя и экономится всего 2 команды, но ради научного интереса хочется выжать из Fast Interrupta все на что он способен! smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SpiritDance
сообщение Jun 27 2007, 08:41
Сообщение #2


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



В realView при описании обработчика IRQ на С используется ключевое слово __irq. Для прерываний fiq никаких ключевых слов и средств работы с fiq на С нет.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
SanyaKID
сообщение Jun 27 2007, 09:29
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 13-09-06
Пользователь №: 20 359



Цитата(SpiritDance @ Jun 27 2007, 12:41) *
В realView при описании обработчика IRQ на С используется ключевое слово __irq. Для прерываний fiq никаких ключевых слов и средств работы с fiq на С нет.


Да, но можно сделать так, чтобы оно вызывалось в режиме FIQ. В стартапе есть FIQ_Handler, содержащий адрес обработчика перываний FIQ. Если ему скормить адрес функции с ключевым словом __irq, и сделать одно из прерываний FIQ, то будет вызываться она.

А вообще, похоже всеже нельзя явно указать компилятору какие регистры использовать...

Сообщение отредактировал SanyaKID - Jun 27 2007, 09:31
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Jun 27 2007, 09:39
Сообщение #4


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(SanyaKID @ Jun 27 2007, 13:29) *
А вообще, похоже всеже нельзя явно указать компилятору какие регистры использовать...

Смысл ключевых слов именно в этом. А контроллеру прерываний вы можете скормить что угодно.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
SanyaKID
сообщение Jun 27 2007, 09:50
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 13-09-06
Пользователь №: 20 359



Цитата(SpiritDance @ Jun 27 2007, 13:39) *
Смысл ключевых слов именно в этом. А контроллеру прерываний вы можете скормить что угодно.

Понятно, я не до конца вник во фразу smile.gif

Сообщение отредактировал SanyaKID - Jun 27 2007, 09:51
Go to the top of the page
 
+Quote Post
Andy_ry
сообщение Jul 11 2007, 09:00
Сообщение #6





Группа: Новичок
Сообщений: 9
Регистрация: 29-03-07
Пользователь №: 26 595



В STR91x лучше дело обстоит - для FIC выделен "свой собственный банк регистров для минимизации времени контекстного переключения". Вот только что это за регистры не сказано - фик знает. sad.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 11 2007, 15:09
Сообщение #7


Гуру
******

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



Цитата(Andy_ry @ Jul 11 2007, 12:00) *
В STR91x лучше дело обстоит...

Если-бы Вы были внимательнее, то поняли, что обсуждается не отсутствие (который на самом деле присутствеет, как уже писалось, во всех ARM и документрован) отдельного банка регистров, а то, что RealView НЕ УМЕЕТ ИМ ПОЛЬЗОВАТЬСЯ.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SanyaKID   Прерывания в компиляторе RealView   Jun 27 2007, 07:17
- - GetSmart   Из ваших слов в стеке сохраняются только R0-R7. Та...   Jun 27 2007, 08:00
- - zltigo   Цитата(SanyaKID @ Jun 27 2007, 10:17) Так...   Jun 27 2007, 08:15
|- - a3r3   Цитата(Andy_ry @ Jul 11 2007, 13:00) В ST...   Jul 11 2007, 09:30
||- - AlexandrY   Лучше, лучше ... В STR91x есть специальное мес...   Jul 21 2007, 08:22
|- - SanyaKID   Цитата(zltigo @ Jul 11 2007, 19:09) Если-...   Jul 16 2007, 10:32
|- - SergeyDDD   Далай обработчик FIQ на ассемблере   Jul 16 2007, 11:51
||- - SanyaKID   Цитата(SergeyDDD @ Jul 16 2007, 15:51) Да...   Jul 17 2007, 06:40
||- - SergeyDDD   Цитата(SanyaKID @ Jul 17 2007, 10:40) Я д...   Jul 17 2007, 14:33
||- - defunct   Цитата(SergeyDDD @ Jul 17 2007, 17:33) Да...   Jul 20 2007, 13:48
|- - kamedi_clab   Цитата(SanyaKID @ Jul 16 2007, 14:32) у м...   Jul 19 2007, 12:41
- - sergeeff   Что-то никак не пойму. Контроллер прерываний испо...   Jul 20 2007, 21:21
|- - Сергей Борщ   Цитата(sergeeff @ Jul 21 2007, 00:21) а о...   Jul 21 2007, 07:54
|- - sergeeff   Цитата(Сергей Борщ @ Jul 21 2007, 11:54) ...   Jul 21 2007, 11:05
|- - AlexandrY   Вы правы, человек поднял проблему не подумавши. Ц...   Jul 22 2007, 13:54
||- - zltigo   Цитата(AlexandrY @ Jul 22 2007, 16:54) че...   Jul 22 2007, 14:00
||- - sergeeff   Пример классный (без иронии, я на досуге тоже поду...   Jul 22 2007, 19:18
||- - zltigo   Цитата(sergeeff @ Jul 22 2007, 22:18) Но ...   Jul 22 2007, 19:29
||- - AlexandrY   Этот пример содержит подвох. Достаточно юзеру снов...   Jul 22 2007, 19:53
||- - zltigo   Цитата(AlexandrY @ Jul 22 2007, 22:53) Эт...   Jul 22 2007, 20:23
||- - AlexandrY   Юзер на C не успеет вновь разрешить прерывания до ...   Jul 22 2007, 20:35
||- - zltigo   Цитата(AlexandrY @ Jul 22 2007, 23:35) Юз...   Jul 22 2007, 21:34
||- - AlexandrY   Ok! Согласен. В принципе цели мы добились. Чел...   Jul 22 2007, 21:49
||- - zltigo   Цитата(AlexandrY @ Jul 23 2007, 00:49) Че...   Jul 22 2007, 22:06
|- - Сергей Борщ   Цитата(sergeeff @ Jul 21 2007, 14:05) Не ...   Jul 23 2007, 09:44
- - sergeeff   Насчет умной функции обработчика прерывания. Думае...   Jul 24 2007, 06:01
|- - zltigo   Цитата(sergeeff @ Jul 24 2007, 09:01) Но....   Jul 24 2007, 06:25
|- - Сергей Борщ   Цитата(sergeeff @ Jul 24 2007, 09:01) Пре...   Jul 24 2007, 10:48
- - SanyaKID   Ничего себе сколько тут уже понаписали... Вообщем-...   Jul 24 2007, 09:05
- - GetSmart   Цитата(SanyaKID)В итоге, в теории, чтобы не ковыря...   Jul 24 2007, 15:02
- - SanyaKID   Цитата(GetSmart @ Jul 24 2007, 19:02) Ну ...   Jul 25 2007, 09:43
- - Сергей Борщ   Цитата(SanyaKID @ Jul 25 2007, 12:43) Да,...   Jul 25 2007, 10:21


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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 19:38
Рейтинг@Mail.ru


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