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

 
 
> Запрет/Разрешение прерываний в кольцевых буферах, Как правильно и оптимально?
Smallday
сообщение Jun 18 2008, 03:11
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 18-06-07
Пользователь №: 28 506



Пожалуйста, подскажите как правильно и оптимально Запрешать/Разрешать прерывания при работе с программыми буферами устройств. Попробовал несколько вариантов:
1)
cpsr=DisableIRQ();

.... // работа с буфером

RestoreIRQ(cpsr);
2)
VICIntEnClr = 1 << UART0_INT;

.... // работа с буфером

VICIntEnable = 1 << UART0_INT;
3)
cpsr=DisableIRQ();
U0IER &= ~UIER_ETBEI;
RestoreIRQ(cpsr);

.... // работа с буфером

cpsr=DisableIRQ();
U0IER |= UIER_ETBEI;
RestoreIRQ(cpsr);

Второй случай давал сбои и зависание на LPC2138, а вот на LPC2368 работаспособен..

Сообщение отредактировал Smallday - Jun 18 2008, 03:18
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sensor_ua
сообщение Jun 18 2008, 07:19
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
Посмотрите хотя бы картинку Interrupt request logic в описании VIC'а.

Смотрю документ
http://infocenter.arm.com/help/topic/com.a...81e/DDI0181.pdf Figure 2-2 и триггеров не наблюдаю. Читаем до того на стр. 20 примечание
The VIC does not handle interrupt sources with transient behavior. For example, an
interrupt is asserted and then deasserted before software can clear the interrupt source. ... However, when a transient interrupt occurs, the priority logic of
the VIC is not set ...
Может я, конечно чего не понимаю, но в LPC2138, например, для источника прерывания по ExtInt проложен регистр (триггеры) ДО VIC (смотрю UM LPC2138 раздел 5-2 External Interrupt Flag register) и если выходы таких регистров служат запросами прерывания, то, естественно, если триггер не сбросишь, то запросы прерывания на соответствующих входах Interrupt Request Logic VIC будет активны.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 18 2008, 07:30
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sensor_ua @ Jun 18 2008, 11:19) *
Смотрю документ
http://infocenter.arm.com/help/topic/com.a...81e/DDI0181.pdf Figure 2-2 и триггеров не наблюдаю.

Зато у UART'а они имеются, как и у >90% других источников.

Просто ваши слова можно было истолковать так, как будто в ситуации "запретили прерывание->получили запрос->разрешили прерывание" запрос будет в любом случае потерян, что неверно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Smallday   Запрет/Разрешение прерываний в кольцевых буферах   Jun 18 2008, 03:11
- - sensor_ua   запрет источника прерывания приводит к потере запр...   Jun 18 2008, 05:29
|- - tag   Цитата(sensor_ua @ Jun 18 2008, 09:29) за...   Jun 18 2008, 05:53
|- - aaarrr   Цитата(sensor_ua @ Jun 18 2008, 09:29) за...   Jun 18 2008, 06:44
- - sensor_ua   Цитата...Вы уверены? Абсолютно. Толко я чуть ошибс...   Jun 18 2008, 06:13
|- - tag   Цитата(sensor_ua @ Jun 18 2008, 10:13) Чи...   Jun 18 2008, 06:19
- - Rst7   ЦитатаЧто касается буферов, то они бывают разными ...   Jun 18 2008, 09:56
|- - tag   Цитата(Rst7 @ Jun 18 2008, 13:56) А можно...   Jun 18 2008, 11:37
- - Rst7   Цитата..вот пример кольцевого буфера не требующего...   Jun 18 2008, 12:02
|- - defunct   Цитата(Rst7 @ Jun 18 2008, 15:02) >...   Jun 18 2008, 21:16
|- - tag   Цитата(Rst7 @ Jun 18 2008, 16:02) Да, так...   Jun 19 2008, 05:20
|- - tag   ...скажу даже больше, так реализован обмен с модем...   Jun 19 2008, 05:26
- - rezident   Для кольцевых буферов я лично использую два индекс...   Jun 18 2008, 14:21
- - Rst7   А можно пример кода?   Jun 18 2008, 16:37
- - mdmitry   Идея кольцевых буферов и код есть в avr-lib. У мен...   Jun 18 2008, 16:50
- - Rst7   ЦитатаИдея кольцевых буферов и код есть в avr-lib ...   Jun 18 2008, 17:11
- - AHTOXA   Цитата(rezident @ Jun 18 2008, 20:21) Для...   Jun 18 2008, 17:38
- - Rst7   ЦитатаЭто еще почему?! Еще как будет работать....   Jun 19 2008, 05:25


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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 10:25
Рейтинг@Mail.ru


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