Niyaz 0 29 января, 2021 Опубликовано 29 января, 2021 (изменено) · Жалоба Здравствуйте. кто нибудь реализовывал выполнение кода nios ii из флешки?(epcq). я получаю нужный файлы по этим скриптам - но у меня ниос не работает, только плис конфигурируется. Еще смотрел в Embedded Design Handbook Intel, "Nios II Processor Application Executes In-Place from QSPI Flash" тоже ничего не работает. У меня cyclone iv, для него quad режим не доступен и он должен работать с флешкой по spi. Изменено 29 января, 2021 пользователем Niyaz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 29 января, 2021 Опубликовано 29 января, 2021 · Жалоба Вектор сброса должен указывать на epcq_controller2. Смещение вектора сброса должно соответствовать размеру конфигурационного массива (прошивки) ПЛИС. В BSP нужно взвести опции линкера allow_code_at_reset и все enable_alt_load (если сегменты .bss, .rwdata и .rodata располагаются в ОЗУ) - результат проверяем на закладке Linker Scripts в BSP Editor'е. Сегмент .text должен располагаться в epcq_controller2, остальные - в соответствии с установками линкера. После компиляции в NiosII SBT выполнить mem_init_generate - в папке ..\software\<имя_проекта>\mem_init появится hex-файл исполняемого кода. Затем в квартусе, в Convert Programming Files, из sof'а и полученного hex'а делаем jic (при добавлении файлов задаем соответствующие настройки, по значениям адресов контролируем правильность действий), заливаем этот jic в конфигуратор, и наслаждаемся результатом. upd: Под виндами, в Quartus Prime Standard Edition версии выше чем v18.1, перестал нормально работь mem_init_generate. После того, как для работы квартуса стали требоваться Win10 и WSL, все сильно испортилось. Крайняя версия Quartus Prime Standard Edition, которая устойчиво работает под виндами - v18.1. При этом под Linux работа новый версий (в т.ч. v20.1.1) нареканий не вызывает, mem_init_generate работет штатно. Но, справедливости ради, нужно отметить, что никаких новшеств или улучшений ни у 19-х, ни у 20-х версий стандарта нет. Скорее наоборот - вот, например, для двадцатки уже нет DSP Builder'а... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Niyaz 0 29 января, 2021 Опубликовано 29 января, 2021 (изменено) · Жалоба заработало, но на serial flash controlle, а на serial flash controller II quartus не компилирует на свои же файлы ругается что то про data_adapter_32_8 (18.1) Изменено 29 января, 2021 пользователем Niyaz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Niyaz 0 15 марта, 2021 Опубликовано 15 марта, 2021 (изменено) · Жалоба короче ничего не работает теперь(использую epcq_controller2, так как она может работать на частоте 100Mhz) почему адреса отличаются от указанного в qsys от адреса hex файла сгенерированного в mem_init_generate, кто нибудь знает? у кого вообще успехи были в реализации выполнения кода из epcs/epcq(реально делали)?. В интсрукции от альтеры(интел) все просто, но не работает(только плис конфигурируется). Есть другая плата (https://aliexpress.ru/item/32832209582.html?spm=a2g0s.9042311.0.0.264d33edytBTcM&_ga=2.209700690.1528103014.1615800827-443644125.1606290620) От blackgold с ней иногда работает(при определнных значения адреса сброса). бред какой то qsys(вектора сброса) Spoiler генрация jic файла Spoiler настройки линкера Spoiler Изменено 15 марта, 2021 пользователем Niyaz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 16 марта, 2021 Опубликовано 16 марта, 2021 · Жалоба Сразу навскидку - у Вас смещение эксепшен вектора какое-то подозрительное. Должно быть 0x00000020 С какого адреса у Вас OnChip RAM начинается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Niyaz 0 16 марта, 2021 Опубликовано 16 марта, 2021 (изменено) · Жалоба 54 minutes ago, StewartLittle said: Сразу навскидку - у Вас смещение эксепшен вектора какое-то подозрительное. Должно быть 0x00000020 С какого адреса у Вас OnChip RAM начинается? Здравствуйте. 0x00000020 должно быть если бы reset vector был на onchip( и был бы равен 0x00000020). Разве нет? если выбрать absolute addressing, то не работает, заработало когда выбрал relative addressing и выставить в моем случае 0x100000(в qsys 0x1f0000), а программа для создания jic файла сама допишет 0x1f0000(то есть прибавляет 0xf0000 и получается адресс как в qsys). не понял почему так, но работает пока Spoiler Изменено 16 марта, 2021 пользователем Niyaz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 16 марта, 2021 Опубликовано 16 марта, 2021 · Жалоба "Если не понимаешь, что именно ты делаешь - делай это тщательно!" (с) Законы Мерфи Вы сперва разберитесь, в какой памяти у Вас должны находится сегмент .text, в какой - .rodata, .rwdata, .bss и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Niyaz 0 16 марта, 2021 Опубликовано 16 марта, 2021 · Жалоба 3 minutes ago, StewartLittle said: "Если не понимаешь, что именно ты делаешь - делай это тщательно!" (с) Законы Мерфи Вы сперва разберитесь, в какой памяти у Вас должны находится сегмент .text, в какой - .rodata, .rwdata, .bss и т.п. с этим все понятно text - flash, остальное onchip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться