Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

динамический запуск ПО на NIOS II

Пт дек 19, 2014 09:18:26

Добрый день!
Есть NIOS II econom. Требуется используя внутреннюю память как память программ и память данных решить задачу загрузки запуска исполняемой программы по интерфейсу RS. Тоесть есть по сути 2 отдельных проекта. Первый загрузчик, второй -функциональная программа(сейчас это мигает лампочками и выдаёт hello word по JTAG). Программа загрузчик общается по RS с компом по отдельному протоколу. С помощью него решаются задачи:
*чтения данных по адресу
* запись данных по адресу
* запись и чтение массива данных по адресу.
* прыжок на выполнение с адреса
Интерфейс по RS на процессоре NIOS реализован.
Прыжок по адресу не работает.
Реализовываю я это следующим образом:
1) есть NIOS 2 и два блока памяти. один как память для инструкций, другой как память для данных.
2) программа загрузчик записывается в память инструкций и там же выполняется.
2) из elf файла функционального приложения(то есть Hello word) получаю с помощью nios2-elf-objcopy двоичный файл. и его с помощью интерфейса загружаю в RAM данных
3) по получении команды "JUMP адрес", копирую данные из памяти данных(по адресу который передан в JUMPe) в массив созданный в памяти программ. Нулевой адрес массива использую как указатель на функцию. В реализации руководствуюсь Альтеровской инструкцией AN458 "Alternative Nios II Boot Methods" и http://juvf.narod.ru/.
Прошу помощи в решении этой задачи.
все необходимые данные могу предоставить.

Re: динамический запуск ПО на NIOS II

Чт фев 12, 2015 19:57:07

NIOS 2 и два блока памяти. один как память для инструкций, другой как память для данных.

А кто мешает совместить оба эти блока? В структуре процессора подключаете блок памяти одновременно и к instruction_master и к data_master. Получаете единое адресное пространство. Прийдется повозиться с распределением и учетом памяти, но вполне реально.

Я правда не совсем понимаю, зачем грузить код через RS-232, если есть JTAG. По-любому в боевой обстановке перегружать программный код никто не будет, т.е. это явно отладочный вариант.
Ответить