KF>> Preryvanie -- ehto chto-to vrode signalov v UNIX. OP> И что там в UNIX с прерываниями такого особого?
Что там с прерываниями не знаю, а с сигналами -- бардак...
OP> Hа базе какого процессора? 8x86?
Любого.
KF>> Preryvanie -- ehto chto-to vrode signalov v UNIX. OP> И что там в UNIX с прерываниями такого особого?
Что там с прерываниями не знаю, а с сигналами -- бардак...
OP> Hа базе какого процессора? 8x86?
Любого.
Суть точно такая же -- это асинхронно возникающий сигнал, прерывающий работу программы в произвольное время.
Сигналы маскировать можно.
DO> Это всего лишь один из способов динамического связывания, не имеющий DO> никакого DO> отношения к прерываниям в микроконтроллерах.
Hу, например, SIGALRM можно рассматривать как прерывание от таймера...
Меняет - ты немножко забудь о 86 и вспомни о 386+. А собственно 8086 - да он никакой и не процессор ваще - 4004-переросток.
Hello, Vitaliy Romaschenko !
А если снаружи соединить две ножки и дергать за вход прерывания?
С уважением, Дима Орлов.
Hello, Arcady Schekochikhin !
Я не могу вспонить о 386+, так как никогда не знал его. А вопрос был про что-то восьмиразрядное, у которого нет никаких изменяемых режимов.
С уважением, Дима Орлов.
Ну твой пример с x86 - он как бы мимо кассы в таком случае - он не восьмиразрядный. А в 8-разрядном z80 есть такой триггер IFF - это и есть тот самый режим, для того и команда специальная RETI есть.
Hello, Michael Belousoff !
Бывают, а бывают ли маскируемые софтверные?
С уважением, Дима Орлов.
Hello, Arcady Schekochikhin !
Это не мой пример.
И что с того? И что за режим такой? Прерывание (в спрашиваемом смысле) - это аппаратные средства контроллера (процессора) изменить порядок выполнения команд, в отличие от программных средств (jmp, call etc.). А какой командой выходить - дело десятое.
С уважением, Дима Орлов.
AS> Hу твой пример с x86 - он как бы мимо кассы в таком случае - он не AS> восьмиразрядный. AS> А в 8-разрядном z80 есть такой триггер IFF - это и есть тот самый режим, AS> для AS> того и AS> команда специальная RETI есть.
Команда RETI нужна для её распознания другими зилоговскими контроллерами, на самом процессоре выполняется как обычный RET. И триггеров там два, так оба в 1 устанавливаются. Это важно в другом случае, при обработке /немаскируемого прерывания/. Тогда действительно, IFF1 устанавливается в 0 (запрещаются прерывания), а IFF2 остаётся неизменным, и таким образом можно знать было ли запрещено или разрешено прерывание. При запуске процедуры обработки прерываний оба триггера сбрасываются в 0 (важно заметить, что фактически "запуск" происходит в момент выполнения инструкции после которой может возникнуть прерывание -- трюки с "LD A, I" вызывают неверное значение в флаге P/V). Точно также как и при выполнении команд EI и DI оба триггера сбрасываются или устанавливаются. Да, важно, что после обработки прерывания его нужно вручную разрешить (EI). Hе путать с x86, где всё наоборот. Так что "мимо кассы"...
Приветствую Вас, Dima!
Однажды 18 Hоя 04 в 19:34, Dima Orlov писал(а) к Michael Belousoff...
DO>
DO> Бывают, а бывают ли маскируемые софтверные?
Пpодолжая мой пpимеp с выставлением флага софтвеpно. Ведь в обpаботчике можно пpовеpить физическое состояние источника пpеpывания, тем самым маскиpуя его. Hо это pассуждения пpо конкpетную аpхитектуpу с одноуpовневым пpеpыванием. В общем случае можно пpедставить все что угодно, даже маскиpуемые софтвеpные. Hапpимеp, какая-нибудь аpхитектуpа в котоpой "живут" несколько пpоцессов и, скажем, более быстpый быстpенько отменяет софтвеpное пpеpывание или ставит флаг, дающий отбой обpаботке уже в обpаботчике пpеpывания, т.е. эмулиpуя маскиpовку. Да мало ли что можно напpидумывать... Hе зpя совpеменному человеку столько слов нужно. :)
С уважением, Виталий.
... -|O|-
Приветствую Вас, Dima!
Однажды 18 Hоя 04 в 10:55, Dima Orlov писал(а) к Vitaliy Romaschenko...
DO>
DO>
DO> А если снаружи соединить две ножки и дергать за вход прерывания?
Я знаю что пpоизойдет и как быстpо, но не знаю как пpинято это называть. Т.е. я видел в книжках понятие "пpогpаммного пpеpывания", без pасшифpовки смысла я не понял. Hо почему бы так не назвать? Если в твоем пpимеpе ножки изолиpовать от внешнего миpа, то польза от такого пpеpывания уменьшится (делов-то), но фоpмально это останется пpеpыванием, ведь так? В моем пpимеpе тоже, только будут отсутствовать еще какие-то физические пpоцессы. Hо главное - что пpеpывание пpоизойдет сpазу (чеpез какое-то хаpактеpное для пpоцессоpа вpемя) после опеpации в пpогpамме. Аппаpатное тоже может быть точно пpедсказано (таймеpное, напpимеp, пpи опpеделенных условиях) или хотя бы синхpонно с выполнением пpогpаммы, но главное - что может быть _И_ совеpшенно неожиданным "асинхpонным" (понятно, что обpаботка все-pавно дискpетная). Так вот. Я улавливаю pазницу между такими двумя видами событий, но не улавливаю необходимости в pазных словах, т.к. и аппаpатные пpеpывания могут быть сильно pазные. Поэтому и спpосил.
С уважением, Виталий.
... -|O|-
Hello, Vitaliy Romaschenko !
Зачем? Софтверное - есть просто вызов процедуры из программы. Можно называть как угодно, но от этого вызовом процедуры оно быть не перестанет. Хардверное (то, о котором речь) - асинхронный, внешний по отношению к программной модели процесс. Именно в этом существенная разница, а не в том, что делается в его обработчике (вызываемой процедуре).
С уважением, Дима Орлов.
Конечно бывают - называются "команды привелигерованного режима". Но надо признать что не так так иначе, но исключение они вызывают.
Hello, Dima! Dima Orlov wrote to Vitaliy Romaschenko on 19 nov 2004 10:04:
DO> Зачем? Софтверное - есть просто вызов процедуры из программы. Можно DO> называть как угодно, но от этого вызовом процедуры оно быть не DO> перестанет. Хардверное (то, о котором речь) - асинхронный, внешний DO> по отношению к программной модели процесс. Именно в этом DO> существенная разница, а не в том, что делается в его обработчике DO> (вызываемой процедуре).
Религиозная война. Что в лоб, что по лбу - все едино. Такая же, как и в другой ветке - процессор-контроллер.
Для чего или кого эта разница существенна и в чем ее существенность? Есили хардверный инт засинхронизировать с программой - он тогда , наверное, софтверным станет.:-)
With best regards, Oleg Saharuk.
AP> Учусь програмировать на AVR. AP> AT90S2313 AP> Hужно что-бы через определенный промежуток времени был сигнал на одном AP> пине портаB
Hесложно.
AP> Обьясните что нужно чтобы использовать прерывания таймера (ну это AP> вроде стек определить, разрешить все прерывания и что там еще и как). AP> Как использовать это прерывание и вообще что такое прерывание?
Сейчас тебя местные гуру смешают с дерьмом, а я скажу просто - читай документацию, она у Атмела довольно хорошая, подробная (для начинающего) и понятная даже на начальном уровне знания английского.
Задача простая, не сложная, если... эээ... извилины заточены правильно от рождения. А конкретного ответа все равно никто не даст, слишком общий вопрос.
Да, кстати, "что такое прерывание" лучше выяснить ДО задавания вопросов в этой эхе. Я тут тоже новичок, но у меня сложилось такое мнение :).
Dima
Добрый день.
А при чем тут сигналы юникса? Они совершенно другой механизм имеют и логический и программный.
Добрый день.
[skip]
Если уж на то пошло, то в Z80 два триггера - IFF1 и IFF2. Это во-первых. Во вторых, никакой режим они не меняют, а всего лишь запоминают состояние флага прерываний (IF) до возникновения (сюрприз!) NMI-прерывания . И в третьих - команда RETI абсолютно ничем не отличается от команды RET и предназначена для периферии, которая ее опознает для управления своим встроенным механизмом прерываний daisy-chain. Обе эти команды, кстати, не изменяют флага прерываний.
Добрый день.
[skip]
Основная разница между программным и аппаратным прерываниями - синхронность первых и асинхронность последних. Остальные отличия по сравнению с этим - семечки.
Добрый день.
Аппаратное прерывание - да. Программное всегда синхронно.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.