jcxz 234 5 мая, 2022 Опубликовано 5 мая, 2022 · Жалоба 10 часов назад, xintrea сказал: Задача эмулятора ПЗУ - держать пины ШД, к котором подключен контроллер STM, в высокоимпендансном состоянии, и следить за адресом на ША. Если адрес попадает в обслуживаемый эмулятором диапазон, и приходит сигнал на чтение, пины ШД переводятся в состояние выхода и на них выставляется нужный байт. Длительность сигнала на чтение - 500нс. Все. Имхо: идея использовать для этого МК - не самая удачная. Почему простое параллельное ОЗУ/ППЗУ не использовать? Если нужно - совместно с МК (для управления). У вас МК, во время такой эмуляции, больше ничего не будет успевать делать. Иначе пропустит такты обращения. Это если цикл делать. Можно попробовать сделать на DMA, но довольно сложно будет и не факт что получится. Но даже если делать циклом, то всё равно: цикл с использованием сигналов прерываний должен быстрее работать, чем обычный цикл поллинга GPIO. 43 минуты назад, Edit2007 сказал: Можно использовать двухпортовое ОЗУ 2-портовое не нужно. Ведь ТС не собирается на лету (во время эмуляции) прошивку обновлять? А значит: во время обновления отключаем РК86 от эмулятора (тем или иным способом, например - подачей сигнала HALT в системную шину РК86), подключаемся к шине своим МК и обновляем. Так что подойдёт любое параллельное ОЗУ/FLASH/FRAM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 5 мая, 2022 Опубликовано 5 мая, 2022 · Жалоба 04.05.2022 в 00:46, xintrea сказал: потому что только на вход в прерывание больше 500нс уходит. Если приплюсовать сюда выход и задержку прохода сигнала прерывания Ну так надо было наверное немного подумать. И расположить код ISR, а также таблицу прерываний - в ОЗУ. Ну и код ISR хорошо оптимизировать. А вы чего ожидали располагая код, таблицу прерываний и данные эмуляции, которые читаете, в медленном флешь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 5 мая, 2022 Опубликовано 5 мая, 2022 · Жалоба 12 hours ago, xintrea said: Я пытаюсь сделать эмулятор ПЗУ для клона Радио-86РК. . . . ... Такой контроллер не подойдет, одна только эмулируемая прошивка будет занимать 16Кб программной памяти. аааа... Делал такое, но несколько в ином виде и не для РК, а уже для PC/XT (ломал-дизассемблировал-отлаживал BIOS ейную). Девайс имел колодку на шлейфе, для вставки в панельку BIOS на системной плате PC/XT. Сам эмулятор содержал стат. RAM кажется 62256 и куча мултиплексоров. Грузилось это все с PC через LPT кабель. Еще сигнал ресета давался с PC. Поэтому лучше (для РК86) упростить "сверхзадачу" - не использовать вообще его RAM (который динамический), к томуже его постоянно "дергает" DMA для работы видеоконтроллера и регенерации. МС статической памяти сейчас вполне доступны, и набрать 16к в эмуляторе (минимальная память для РК) вполне возможно. Для РК сложность еще в том, что это урезанная сист. конфигурация, без системного контроллера и нормального дешифратора адреса. Поэтому его модернизация-доработка будет "дас ист фантастиш, йа, йа". Делать "компаратор адреса" программно... зависит от "шашечек или ехать". Если ехать, то лучше аппаратно, от CPLD до россыпи XOR к155ЛП5 = 74LS86, 74LS85 4-разрядное. + аппаратно перевод процессора в режим останова-ожидания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться