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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> затыкается stdout в NiosII, из-за прерываний
gosu-art
сообщение Jul 6 2011, 17:10
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



А при выполнении подпрограммы обработки прерывания остальные IRQ маскируются? У меня сейчас 2 прерывания в системе:от таймера и от внешнего устройства (VIC пока не использую). Если не заблокировать прерывание от таймера, во время обработки другого, может ли оно "выстрелить"? Или все же не ленится и запрещать все остальные прерывания во время обработок?
Go to the top of the page
 
+Quote Post
WitFed
сообщение Dec 8 2011, 15:51
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 271
Регистрация: 6-12-11
Из: Taganrog
Пользователь №: 68 701



Ох, мужики, это опасное дело -- вызывать файловые операции в обработчике прерываний.
Всё зависит от реентерабельности этих самых функций -- если они на середине вывода имеют половину служебных переменных в стеке, половину глобальных, и тут влазит новый вызов, который окончится ранее продолжения старого, х.з. что там по окончании обоих намешается... В мануалах надо искать положительные разрешения, и вряд ли Альтерцы закладывали много мозгов в свой детский проц.
В каких-то конкретных проверенных нечастых случаях для отладки может и можно, но осторожно, и потом сразу лучше наложить табу обратно wink.gif Ведь если число желаемых символов по каналу за 1 с превысит его пропускную способность, где-то кого-то кто-то перетрёт в буферах или отбросится в лучшем случае.
В настоящих многозадачных ОС обычно для обработчиков семафоры ждать запрещается, файлы трогать тем более, надо сигналить куда-то семафором или в переменную, записывать всю ситуацию в глобальные переменные, тикать побыстрее, а потом снаружи в нормальном потоке разбираться и сливать инфу без спешки. А если сама функция вывода использует прерывания для обратной сигнализации, то фиг вообще первое прерывание закончится с принтфом wink.gif
Если прерываний несколько разных, то обычно они отсортированы по приоритету, и то же самое произойти не может уже в обработчике, но более крутое запросто. И такие хитроглюки могут прятаться редкие... Я у себя в проектах стараюсь обходиться без прерываний -- поллинг вполне годится для 99% задач, плюс верифицируется и отлаживается на порядки проще.
Go to the top of the page
 
+Quote Post

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

 


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


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