27146

[i] К1986ВЕ8Т, ОЗУ. Отладка кода, превышающего 32 Кбайта


Как отлаживать код, превышающий 32 Кбайт, который помещается в ОЗУ? Нужно ли обязательно загружать процессор К1986ВЕ8Т из внешней памяти или можно просто перейти во внешнюю память? Будет ли отладчик (Keil) показывать значение указанных переменных, позволять останов и так далее?

Можно просто перейти во внешнюю память. То есть часть программы размещается во внешней памяти, и, если указаны два FLM для ОЗУ и внешней ОЗУ, то KEIL при загрузке загрузит весь код: часть - во внутреннюю ОЗУ, часть - во внешнюю ОЗУ.

В IDE Keil можно загрузить программу более 32 Кбайт во внешнюю ОЗУ К1645РУ5 при запуске отладки, после чего МК К1986ВЕ8Т будет исполнять программу напрямую из внешней памяти. Информация о настройке проекта в IDE Keil и примеры уже настроенных проектов (с и без ECC) приведены в статье:

[i] Настройка проекта в IDE Keil для запуска К1986ВЕ8Т из внешней ОЗУ К1645РУ5У на отладочной плате

Обратите, пожалуйста, внимание, что МК К1986ВЕ8Т при старте в режимах EXTBUS_8_ECC и EXTBUS_CFG настраивает только линии адреса A[15:0] и A[10:3]. На отладочной плате для МК К1986ВЕ8Т вер. 1.1 отсутствуют резисторы подтяжки на адресных линиях микросхемы К1645РУ5 (A[2:0] и A[18:11]), в связи с чем отладка проекта из ОЗУ К1645РУ5 будет осуществляться корректно (ini-файл настраивает все требуемые линии адреса), но автономный старт МК после сброса по кнопкам RESET не выполнится, так как адресные линии A[2:0] и A[18:11] микросхемы К1645РУ5 будут недоопределены.

Отладка, просмотр и т.п. работать будут так же и из внешней ОЗУ, как и из внутренней.

Документация

Теги

Был ли ответ полезным?