Нужна помощь с прерываниями - Page 2

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Re: Hужна помощь с прерываниями
Hello, Gena Gutnicky !

 > OS> Забыл про софтверные прерывания в семействе х86. И сигналы
 > OS> очень на них похожи. Типа одна софтина делает инт с нужным
 > OS> вектором другой.:-)

 >   Hе только x86. В светлой памяти PDP-11 aka СМ-4 (Электроника-60)
 > была такая команда IOT, если не врет мой склерз - I/O Trap.
 > Там управление передавалось на вектор прерывания ввода-вывода,
 > который по содержимому регистров делал то что надо.Если учесть,
 > что BIOS там не было, то это аналог вызовов функций DOS в PC.

И что характерно, ни то ни другое никакого отношения к заданному вопросу не
имеет.


С уважением, Дима Орлов.


Re: Hужна помощь с прерываниями
Hello, Arcady Schekochikhin !

 >>  > существуют аппаратные немаскируемые прерывания. Зато вот например
 >>  > программное
 >>  > прерывание SWI в ARM имеет более существенный признак - оно (как и
 >>  > другие виды исключений) меняет режим.
 >>
 >> Режим чего? В х86 int хх никакой режим не меняет.

 > Меняет - ты немножко забудь о 86 и вспомни о 386+. А собственно
 > 8086 - да он никакой и не процессор ваще - 4004-переросток.


Я не могу вспонить о 386+, так как никогда не знал его. А вопрос был про что-то
восьмиразрядное, у которого нет никаких изменяемых режимов.


С уважением, Дима Орлов.


Re: Hужна помощь с прерываниями
Quoted text here. Click to load it

Ну твой пример с x86 - он как бы мимо кассы в таком случае - он не
восьмиразрядный.
А в 8-разрядном z80 есть такой триггер IFF - это и есть тот самый режим, для
того и
команда специальная RETI есть.

Re: Hужна помощь с прерываниями

Добрый день.

[skip]

Quoted text here. Click to load it
восьмиразрядный.
Quoted text here. Click to load it
того и
Quoted text here. Click to load it
 
Если уж на то пошло, то в Z80 два триггера - IFF1 и IFF2. Это во-первых. Во
вторых, никакой режим они не меняют, а всего лишь запоминают состояние флага
прерываний (IF) до возникновения (сюрприз!) NMI-прерывания . И в третьих -
команда RETI абсолютно ничем не отличается от команды RET и предназначена
для периферии, которая ее опознает для управления своим встроенным
механизмом прерываний daisy-chain. Обе эти команды, кстати, не изменяют
флага прерываний.

--
С уважением, Андрей Михеев.


Re: Hужна помощь с прерываниями
Hello, Arcady Schekochikhin !

 >> Я не могу вспонить о 386+, так как никогда не знал его. А вопрос был про чт
 > о-то восьмиразрядное, у которого нет никаких изменяемых режимов.

 > Hу твой пример с x86 - он как бы мимо кассы в таком случае - он не
 > восьмиразрядный.

Это не мой пример.

 > А в 8-разрядном z80 есть такой триггер IFF - это и есть тот самый
 > режим, для того и  команда специальная RETI есть.

И что с того? И что за режим такой? Прерывание (в спрашиваемом смысле) - это
аппаратные средства контроллера (процессора) изменить порядок выполнения
команд, в отличие от программных средств (jmp, call etc.). А какой командой
выходить - дело десятое.

С уважением, Дима Орлов.


Re: Hужна помощь с прерываниями
Hемедленно нажми на RESET, Alexander Panasovsky!


 AP> определить, разрешить все прерывания и что там еще и как). Как
 AP> использовать это
 AP> прерывание и вообще что такое прерывание?


   Preryvanie -- ehto chto-to vrode signalov v UNIX.


Hужна помощь с прерываниями
Hello, Kirill Frolov !

 >  AP> определить, разрешить все прерывания и что там еще и как). Как
 >  AP> использовать это
 >  AP> прерывание и вообще что такое прерывание?

 >    Preryvanie -- ehto chto-to vrode signalov v UNIX.

Прерывание - это вызов процедуры по аппаратно генерируемому сигналу. Юникс тут
не причем.

С уважением, Дима Орлов.


Re: Hужна помощь с прерываниями
Hello, Dima!
Dima Orlov wrote to Kirill Frolov on 17 nov 2004 05:31:

 AP>>> определить, разрешить все прерывания и что там еще и как). Как
 AP>>> использовать это прерывание и вообще что такое прерывание?

 >>    Preryvanie -- ehto chto-to vrode signalov v UNIX.

 DO> Прерывание - это вызов процедуры по аппаратно генерируемому сигналу.
 DO> Юникс тут не причем.

Нет, Дима , ты неправ(с):-)
Забыл про софтверные прерывания в семействе х86. И сигналы
очень на них похожи. Типа одна софтина делает инт с нужным
вектором другой.:-)

With best regards, Oleg Saharuk.



Re: Hужна помощь с прерываниями
Hello,Oleg!
OS> Забыл про софтверные прерывания в семействе х86. И сигналы
OS> очень на них похожи. Типа одна софтина делает инт с нужным
OS> вектором другой.:-)

  Не только x86. В светлой памяти PDP-11 aka СМ-4 (Электроника-60)
была такая команда IOT, если не врет мой склерз - I/O Trap.
Там управление передавалось на вектор прерывания ввода-вывода,
который по содержимому регистров делал то что надо.Если учесть, что
BIOS там не было, то это аналог вызовов функций DOS в PC.

WBR G.G.


--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: Hужна помощь с прерываниями

Добрый день.

Quoted text here. Click to load it
 
Quoted text here. Click to load it

А при чем тут сигналы юникса? Они совершенно другой механизм имеют и
логический и программный.

--
С уважением, Андрей Михеев.


Re: Hужна помощь с прерываниями
Hello, Andrew!
Andrew V. Miheev wrote to Oleg Saharuk on 22 nov 2004 05:15:

 DO>>> Прерывание - это вызов процедуры по аппаратно генерируемому
 DO>>> сигналу.
 DO>>> Юникс тут не причем.

 >> Нет, Дима , ты неправ(с):-)
 >> Забыл про софтверные прерывания в семействе х86. И сигналы очень на
 >> них похожи. Типа одна софтина делает инт с нужным вектором другой.:-)

 AVM> А при чем тут сигналы юникса? Они совершенно другой механизм имеют
 AVM> и логический и программный.

В первом приближении на прерывания весьма похоже.
Переписать таблицу векторов на свой обработчик,
и по появлению сигнала его вызвать.
А вообще - тема скатилась к демагогии. Я завязываю,
оставаясь при своем мнении, чего и всем желаю:-)

With best regards, Oleg Saharuk.




Re: Hужна помощь с прерываниями

Добрый день.

Quoted text here. Click to load it
 
Quoted text here. Click to load it

Это какую же оптику надо иметь, чтобы такое увидеть?  8-)

Отличия между сигналами и аппаратными прерываниями очень значительны:
Во-первых, условия возникновения сигнала всегда известны в отличие от
условий возникновения аппаратного прерывания. Во-вторых, на обработку
сигнала всегда используется некоторое кол-во команд независимо от того будет
принят сигнал или нет.

Quoted text here. Click to load it

Мы про юникс? Если да, то там это делается передачей ядру адреса обработчика
- никакой таблицы векторов нет. За прием сигналов отвечает ядро системы и
посылка некоторых сигналов процессу всегда обрабатывается ядром, т.е.
никогда не перехватывается обработчиком процесса.

Quoted text here. Click to load it

Это всегда пожалуйста.

--
С уважением, Андрей Михеев.


Hужна помощь с прерываниями
Приветствую Вас, Dima!

Однажды 17 Hоя 04 в 08:31, Dima Orlov писал(а) к Kirill Frolov...

Quoted text here. Click to load it
DO>
DO> Прерывание - это вызов процедуры по аппаратно генерируемому сигналу.
DO> Юникс тут не причем.

 Хм. А если пpогpаммно выставить флаг пpеpывания (в том же PIC'е), то как
назвать, то, что пpоизойдет следом?


С уважением, Виталий.

... -|O|-

Hужна помощь с прерываниями
Hello, Vitaliy Romaschenko !

 >>> Preryvanie -- ehto chto-to vrode signalov v UNIX.

 > DO> Прерывание - это вызов процедуры по аппаратно генерируемому сигналу.
 > DO> Юникс тут не причем.

 >  Хм. А если пpогpаммно выставить флаг пpеpывания (в том же PIC'е),
 > то как назвать, то, что пpоизойдет следом?


А если снаружи соединить две ножки и дергать за вход прерывания?

С уважением, Дима Орлов.


Re: Hужна помощь с прерываниями
Hемедленно нажми на RESET, Arcady Schekochikhin!



 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, где всё наоборот. Так что "мимо кассы"...


--
  02.11.96/19:40/*X-MAN-MUSIC*

Hужна помощь с прерываниями
Приветствую Вас, Dima!

Однажды 18 Hоя 04 в 10:55, Dima Orlov писал(а) к Vitaliy Romaschenko...

Quoted text here. Click to load it
DO>
Quoted text here. Click to load it
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|-

Re: Hужна помощь с прерываниями
Hемедленно нажми на RESET, Dima Orlov!


 >>    Preryvanie -- ehto chto-to vrode signalov v UNIX.
 DO> Прерывание - это вызов процедуры по аппаратно генерируемому сигналу. Юникс
 DO> тут
 DO> не причем.

  Суть точно такая же -- это асинхронно возникающий сигнал, прерывающий
работу программы в произвольное время.


--
  Silent now...

Re: Hужна помощь с прерываниями

Добрый день.

Quoted text here. Click to load it
 
Quoted text here. Click to load it

Аппаратное прерывание - да. Программное всегда синхронно.

--
С уважением, Андрей Михеев.



Re^2: Hужна помощь с прерываниями
   Привет, Kirill!



16 ноя 04 08:36, Kirill Frolov -> Alexander Panasovsky:

 KF>    Preryvanie -- ehto chto-to vrode signalov v UNIX.

И что там в UNIX с прерываниями такого особого?
Hа базе какого процессора? 8x86?
А даташиты на собственно 8x86 процессор читать не пробовали?




    До свидания, Oleg.



Re: Hужна помощь с прерываниями
Hемедленно нажми на RESET, Oleg Primakov!



 KF>>    Preryvanie -- ehto chto-to vrode signalov v UNIX.
 OP> И что там в UNIX с прерываниями такого особого?

  Что там с прерываниями не знаю, а с сигналами -- бардак...

 OP> Hа базе какого процессора? 8x86?

  Любого.

--
  Silent now...

Site Timeline