arm тугие на прерывания, если взять к примеру Z80 то arm очень сомнительно что успеет реагировать, если частота больше 1мгц у z80
У этого СТМ-а тактовая 75 МГц и шпилит он инструкцию за такт (даташит я по диагонали правда прочел). А у Z80 в самом лучшем случае на 700 КГц /M1 шевелится.
Программный дешифратор на прерываниях можно сгородить даже на 20-мегагерцовой пичке 16 серии или восьмибитной атмеге. Только на полезные движняки там времени почти не остается.
Последний раз редактировалось ram_scan; 15.04.2016 в 20:32.
доступ к памяти минимум 2 такта, но это не важно, там овер 20 тактов вход/выход в прерывание + еще куча моментов которые по такту два добавляют
- - - Добавлено - - -
там другой есть момент, развитая система событий, их можно приспособить к задаче, если укладывается, ну или задачу переиначить что бы вкладывалось
- - - Добавлено - - -
чистые arm7 были хороши с ихними FIQ
STM32 - очень плохой выбор относительно быстрого (да и не быстрого) ногодрыга. С его префечами, очередями, кешами и тд. В кратце - хрен его знает, за сколько исполняется одна инструкция. Один раз может за столько, а другой раз, в зависимости от перегруженности очереди - за столько. Отсюда все проблемы. Может будет успевать дешифровать 100500 раз, а на 100501 - не успеет, потому что будет чистить кеш или еще что-то.
STM32 прекрасен, если использовать все поддерживаемые аппаратно им фичи (UART, USB, SPI, I2C, etc..), но вызывает дикую боль и костыли, если нужно дергать ногами за определенное время. Простой пример - протокол 1-wire на STM32. Костыли через хардварный UART и пару транзисторов, как наименьшее зло. Без транзисторов - боль и унижение, почти не возможно. А казалось бы, да?
Плюс, частота 72 МГц - очень медленно. Ну, по крайней мере для ISA8 и x86. Не успеет он ну никак, при простейшей математике. Что с Z80 не знаю, но то же вряд-ли. Либо успеет, но будет заниматься _ТОЛЬКО_ дешифрацией, и больше ничем. Моргнуть светодиодом - уже не получится.
Нужен либо ARM с дофига мегагерцами, например какой-нибудь тупой старый ARM7 типа NXP LPC2368, либо восьмибитка с такой-же скоростью, силабсы вроде на 51 ядре что-то многомегагерцовое клепают.
Но всю жизнь все для дешифрации используют обычную логику + РЕ3/РТ4/РТ5, в запущенных случаях ПЗУ типа 2716/2732, в самых запущенных - ПЛИС типа EPM3032 и тд. Но никогда микроконтроллеры.
И да, STM32 - худший выбор для сабжа.
- - - Добавлено - - -
А вообще, у меня была идея для универсального дешифратора взять память статику килобайта на 2, типа 6116 и тд. При старте агрегата (компа) микроконтроллер любой, тот же STM32 сразу его ресетит и вешает (удерживает ALE в случае с x86 ил HOLD или как там в спектрумах). Проц висит. В это время микроконтроллер заливает в SRAM нужный конфиг для дешифрации адресов. После этого отпускает ногу проца, которую держал, проц стартует и в SRAM'е уже нужный образ для дешифрации и она (SRAM'а) дешифрует как надо.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)