Контроллер маскируемых прерываний

Документация, FAQ-и
Ответить
Аватара пользователя
TS-Labs
Сообщения: 5396
Зарегистрирован: Чт, 26.07.2012 01:29:56

Контроллер маскируемых прерываний

Сообщение TS-Labs »

В TS-Conf можно запрограммировать несколько источников маскируемого прерывания. Среди них:

- кадровый (frame, индекс 0),
- строчный (line, индекс 1),
- окончание DMA транзакции (dma, индекс 2).

Источник frame срабатывает, когда значение счетчиков растра совпадает с регистрами HSINT и VSINT. Источник line срабатывает в каждой строке, когда горизонтальный счетчик растра равен 0. Источник dma срабатывает после окончания любой транзакции DMA.

Каждый источник прерывания формирует сигнал ~INT и выставляет собственный байт D[7:0] на ШД в цикле ~IORQ || ~M1.

- $FF - кадровый,
- $FD - строчный,
- $FB - DMA.

В случае прихода нескольких событий одновременно, сначала обработается прерывание с меньшим индексом. При завершении ISR инструкциями EI : RET сразу произойдет обработка следующего по порядку ~INT, который разпознается в последнем машцикле инструкции RET.

Регистр конфигурации INTMask содержит биты разрешения индивидуального источника маскируемого прерывания, 0 - запрещен / 1 - разрешен. По ~RESET туда записывается значение $01: разрешен frame, все остальные запрещены. Если из ISR прерывания с меньшим приоритетом записать 0 в соответствующий бит маски источника прерывания, ожидающего в данный момент обработки, то произойдет его сброс и прерывание обработано не будет. Запись 1 не влияет на состояние ожидающего прерывания. Структура INTMask следующая:

бит 0, FRAME - разрешение источника frame,
бит 1, LINE - разрешение источника line,
бит 2, DMA - разрешение источника dma,
биты 3-7 - не используются, записывать 0.
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3641
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: Контроллер маскируемых прерываний

Сообщение g0blinish »

В натуре rocketscience :bang:
[x] No Screenshot
Sergey78
Сообщения: 422
Зарегистрирован: Ср, 05.09.2012 20:04:40

Re: Контроллер маскируемых прерываний

Сообщение Sergey78 »

Когда будет во всех кинотеатрах в анриле?
Аватара пользователя
TS-Labs
Сообщения: 5396
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Контроллер маскируемых прерываний

Сообщение TS-Labs »

Будет )
Grey
Сообщения: 104
Зарегистрирован: Пт, 29.11.2013 15:58:02

Re: Контроллер маскируемых прерываний

Сообщение Grey »

а с внешних устройств можно будет вектор выставлять ?
например NeoGS ?
Аватара пользователя
TS-Labs
Сообщения: 5396
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Контроллер маскируемых прерываний

Сообщение TS-Labs »

А вот думаю...

---

Докладаю: для начала, на NeoGS линия ~INT не заведена на хзбас. :1tooth:

---

Докладаю №2:
в канонічной прошиве для пентевы, как и в тсконфе, ~INT на фпга работает на вывод. Отсюда два вывода:
1. Альтера никак не опрашивает инт от внешних уст-в и не знает о нем.
2. Оба инта могут прийти одновременно, как и одновременное выставление вектора на ШД от ус-ва и из фпга - факап.
Аватара пользователя
LessNick
грей сашу — сашу грей
Сообщения: 972
Зарегистрирован: Чт, 26.07.2012 15:00:53
Контактная информация:

Re: Контроллер маскируемых прерываний

Сообщение LessNick »

TS-Labs писал(а):Докладаю: для начала, на NeoGS линия ~INT не заведена на хзбас.


физически (я имею ввиду недоработку ZXBUS) или идеологически, то есть дорожка есть, но не задействована?

TS-Labs писал(а):Альтера никак не опрашивает инт от внешних уст-в и не знает о нем.


Я конечно понимаю, что это уже попахивает писизмом, но сделать можно? :)

TS-Labs писал(а):Оба инта могут прийти одновременно, как и одновременное выставление вектора на ШД от ус-ва и из фпга - факап.


таки думаю приоритет должен быть у устройства, иначе проёб данных.
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
Аватара пользователя
TS-Labs
Сообщения: 5396
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Контроллер маскируемых прерываний

Сообщение TS-Labs »

Физически не разведена.
Аватара пользователя
ZEK
Сообщения: 172
Зарегистрирован: Пн, 10.06.2013 13:51:07

Re: Контроллер маскируемых прерываний

Сообщение ZEK »

TS-Labs писал(а):~INT на фпга работает на вывод.

там пулапп есть, поэтому его можно как bidir настраивать
KOE сказал заработает, значит заработает. Он кандидат наук, а не радиолюбитель. (c) alone
Аватара пользователя
TS-Labs
Сообщения: 5396
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Контроллер маскируемых прерываний

Сообщение TS-Labs »

Я знаю, но это не решает проблему коллизий внутреннего и внешнего интов.
Аватара пользователя
amixgris
Сообщения: 161
Зарегистрирован: Пн, 30.07.2012 03:22:48
Откуда: Самара

Re: Контроллер маскируемых прерываний

Сообщение amixgris »

1.
TS-Labs писал(а):сначала обработается прерывание с меньшим приоритетом

Здесь всё правильно? :)

2. Объясните, пожалуйста, в чём выгода от 8 векторов в пулле? Ведь для изменения обработчика прервываний, достаточно занести новый адрес в один единственный вектор: ld (vector),rp.
А для изменения обработчика с помощью выбора другого вектора, нужно сделать запись в порт: ld bc,port : out (c),r , что расточительней и по татктам и по байтам.

Может, если лишнее убрать, то высвободится логика для чего-нибудь более полезного, например NMI?
Аватара пользователя
TS-Labs
Сообщения: 5396
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Контроллер маскируемых прерываний

Сообщение TS-Labs »

amixgris писал(а):Здесь всё правильно?

С меньшим индексом приоритета. Т.е. 0 раньше чем 1.
amixgris писал(а):Объясните, пожалуйста, в чём выгода от 8 векторов в пулле? Ведь для изменения обработчика прервываний, достаточно занести новый адрес в один единственный вектор: ld (vector),rp.

В том, что 8 адресов могут быть забиты в таблицу, надо только поменять выбор одного из 8. Альтернатива: 1 адрес на источник, менять адрес в таблице. 2-е сейчас тоже работает.
amixgris писал(а):А для изменения обработчика с помощью выбора другого вектора, нужно сделать запись в порт: ld bc,port : out (c),r , что расточительней и по татктам и по байтам.

Ну в общем да. Возможно, пул выпилю, если не понадобится.
amixgris писал(а):Может, если лишнее убрать, то высвободится логика для чего-нибудь более полезного

Посмотрим.
amixgris писал(а):например NMI

Какие идеи насчет NMI?
Аватара пользователя
TS-Labs
Сообщения: 5396
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Контроллер маскируемых прерываний

Сообщение TS-Labs »

amixgris: применил твою рацуху + пофиксал бред про приоритеты в мануалах :1tooth:
Аватара пользователя
amixgris
Сообщения: 161
Зарегистрирован: Пн, 30.07.2012 03:22:48
Откуда: Самара

Re: Контроллер маскируемых прерываний

Сообщение amixgris »

TS-Labs писал(а):amixgris: применил твою рацуху + пофиксал бред про приоритеты в мануалах

Еа! :pank:
Аватара пользователя
amixgris
Сообщения: 161
Зарегистрирован: Пн, 30.07.2012 03:22:48
Откуда: Самара

Re: Контроллер маскируемых прерываний

Сообщение amixgris »

TS-Labs писал(а):Какие идеи насчет NMI?

Я бы мог, сказать, что, например для какого-нибудь теневого суперотладчика. Но я точно знаю, что я его не напишу.
Аватара пользователя
AndyD
Сообщения: 280
Зарегистрирован: Чт, 21.05.2015 21:32:38

Re: Контроллер маскируемых прерываний

Сообщение AndyD »

amixgris писал(а):Я бы мог, сказать, что, например для какого-нибудь теневого суперотладчика.

Да если просто STS прикрутить на NMI уже очень не плохо было бы.
Аватара пользователя
TS-Labs
Сообщения: 5396
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Контроллер маскируемых прерываний

Сообщение TS-Labs »

Можно. Я в децтве сто раз так делал =)
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3641
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: Контроллер маскируемых прерываний

Сообщение g0blinish »

TS-Labs писал(а):Можно. Я в децтве сто раз так делал =)

а я с помощью теневого ПЗУ:)
[x] No Screenshot
Аватара пользователя
AndyD
Сообщения: 280
Зарегистрирован: Чт, 21.05.2015 21:32:38

Re: Контроллер маскируемых прерываний

Сообщение AndyD »

g0blinish писал(а):а я с помощью теневого ПЗУ:)

А я на скорпионе в децтве теневеком пользовался и про другие отладчики даже не думал,привык тогда к хорошему,сейчас мучаюсь ,подскажите как к ТС конфе прикрутить STS на NMI? с помощью теневого ПЗУ ,можно подробнее.
Аватара пользователя
TS-Labs
Сообщения: 5396
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Контроллер маскируемых прерываний

Сообщение TS-Labs »

Для начала я должен прикрутить НМИ к клавише - сейчас его нет.
Еще надо ввести какой то режим пейджинга, чтоб включалась нужная страница (необязательно из 0-3 ПЗУ) и могла потом выключаться назад.
Короче, приветствуются идеи. Как решим, так сразу зогпилю =)
Аватара пользователя
idxi
Сообщения: 179
Зарегистрирован: Пн, 03.07.2017 16:54:54

Re: Контроллер маскируемых прерываний

Сообщение idxi »

Одно из возможных применений NMI, например, могла бы быть "удаленная" загрузка кода прямо в память и его старт, к примеру, посредством ZiFi (например, через инет..) и его запуск..

Второе "одно из" применений NMI могло бы быть, например, в виде как независимое программируемое прерывание NMI с разными тиками (таймеры, события.. ?(типа как в контроллерах :) )...?
Ответить