Столкнулся с несколькими проблемами, если кто знает, подскажите, пожалуйста.
1) Проблема запуска программы без nios-debug (использую legacy SDK, т.к. это требование, а не моя прихоть).
Настраиваю mcu-систему, один блок внутренней памяти (для программ и данных), базовый адрес 0x0000. Reset address = 0x0000, exception address = 0x0020, код программы размещается с адреса 0x00a0. Но без дебаггера просто так программу не запустить, она же с reset adress стартует! Обошел это дело так: конвертнул srec-файл в mif, а по нулевому адресу прописал код команды перехода на нужный адрес (0xa0), помогло. Но это какой-то кривой способ, по-моему, а как сделать правильно? Честно говоря, не было времени подробно изучать доки, но при поверхностном просмотре я не нашел описания карты памяти, где расписывается про reset address и exception address.
2) Глюки с обходом вышеописанной проблемы.
Разделил память на отдельную память программ и память данных, reset address указал на память программ, тоже помогло, но потом возникла следующая ерунда. Я увеличил объем памяти программ и изменил вручную адреса модулей памяти и jtag-debug-module, после чего начались сбои в отлаженных периферийных модулях (при их чтении), а затем дебаггер (nios2-elf-insight) просто перестал открываться. Windows говорит, что есть такой процесс, но окошка его нет! Сделал тестовый проект, состоящий из ядра и 1-битного pio, настроил все аналогично, работает, вернулся к старому варианту (как в п.1) - работает, опять возвращаюсь к текущему - не работает. Никто с подобным не сталкивался?
3) Неизвестный сигнал процессора.
Когда генерирую economy ядро (Nios II/e), у него появляется сигнал E_en_to_the_<название_модуля_процессора>, а упоминаний о нем не находится нигде... Файл модуля процессора, сгенерированный SOPC-builder'ом, зашифрован, поэтому и код не посмотреть. Я заводил на этот сигнал ноль, или вообще не подсоединял, на работоспособности это не отразилось. В других вариантах ядра этот сигнал отсутствует.