Итак мне удалось запустить схему. Выражаю огромную благодарность всем тем, кто мне помогал. Но ожидаемо возник еще ряд вопросов:
Безадресный регистр у меня на плате имеет значение 000000 (джамперы выкл.). Соответственно, следующим шагом должно начаться чтение с адреса 000000. С этого адреса у меня начинается область ПЗУ. Заполняю память 573РФ4 для младших байтов, а для старших оставляю пустую ПЗУ с нулями. С двух микросхем на шине получаю:
000000: 000001
000002: 000340
000004-000377: 000000
000400-...: 244 (команды NOP)
Прошивка для "для младшей" половину ПЗУ:
Собственно, проблема: если в адресе 000000 ПЗУ я прописываю значение 000001, то чтение моей основной программы начинается не с адреса 000001, как мне казалось должно было быть (это тест, я знаю, что там должно быть 000340). Процессор берет значение из ячейки ПЗУ 000000 и записывает его в счетчик команд не все 16 бит подряд, а только его младший байт да еще и на место старшего байта PC. В итоге получаем в счетчике не 000001, а 000400 (0000 0001 0000 0000 вместо 0000 0000 0000 0001).
(на рисунке я подписал значения на шине адреса и на шине данных в момент измерения)
Получается, я физически не могу стартовать программу с адреса, меньшего чем 000400. Но в документации про этот момент написано совсем иначе:
Согласно ТО, R7:= (АВП). То есть 16-ти битный PC должен загружаться 16-ти битным значением из ячейки 000000 параллельным переносом, а не одной его половиной и со сменой мест.
Помогите пожалуйста прояснить этот момент







Ответить с цитированием