Димон Безпарольный 0 March 8 Posted March 8 · Report post 16 hours ago, Raven said: Чтобы Quartus не занимался авто-перегенерацией SOPC, нужно в свойствах проекта удалить файл QSys Так и есть. Удалил из проекта файл qsys, добавил sopc\nios_load1\synthesis\nios_load1.qip и обратил внимание что nios_load1.sopcinfo не создается в процессе компиляции вообще. Компиляция проходит успешно. Сгенерировал Qsys(откатился на 13версию) и nios_load1.sopcinfo появился где надо в папке sopc. Спаисбо. Quote Share this post Link to post Share on other sites More sharing options...
Raven 21 March 8 Posted March 8 · Report post 4 hours ago, Димон Безпарольный said: Откатился на 13 квартус. Думал будет работать с HEX файлами. Черта с два. Как бы понять - как нужно изменить HEX чтобы ему понравилось... Что сейчас в результате получилось? Можете опять проект выложить? Вышеупомянутая проблема все еще проявляется? Quote Share this post Link to post Share on other sites More sharing options...
Димон Безпарольный 0 March 8 Posted March 8 (edited) · Report post 6 hours ago, Raven said: Что сейчас в результате получилось? Можете опять проект выложить? Вышеупомянутая проблема все еще проявляется? С мелкими проблемами разобрался. TimeStamp стал нормальный. Попутно замечен глюк у программатора V2. При перегенерации железа у программатора не обновляется TimeStamp. Что тоже приводит к отказу программировать прошивку NIOS. Хотя в окне программатора пропиан новый, он все равно ищет старый. Перезапуск Eclipse исправляет эту ситуацию. Откатился в 13 квартус - этот хоть не вылетает при окрытии HEX. Просто ругается. Дальше я должен заставить Квартус понимать СВОИ же HEX файлы и залить HEX в onchip RAM. Это будет первый вариант. Второй - EPCS + SDRAM. Третий(возможно) математика графики в OnChip, остальное в SDRAM. Проект рабочий. NIOS_LED_SDRAM.7z Edited March 8 by Димон Безпарольный Quote Share this post Link to post Share on other sites More sharing options...
Димон Безпарольный 0 March 8 Posted March 8 · Report post On 3/6/2025 at 12:55 PM, StewartLittle said: Debug Unit Если я правильно понял, это то что с уровнями. Для Nios II/e доступен только первый. Зашил S - там можно второй поставить - ничего не изменилось. Вид Flash Programmer все тот же. Quote Share this post Link to post Share on other sites More sharing options...
Димон Безпарольный 0 March 9 Posted March 9 · Report post Сделал таки правильный HEX файл. Объяснять буду долго и нудно. Сделать то - то вменяемое с помощью Quote nios2-elf-objcopy -I srec -O ihex "E:\Q_Project_03_03\NIOS_LED_SDRAM\Software\NIOS_LED_SDRAM_APP\NIOS_LED_SDRAM_APP.elf" "E:\Q_Project_03_03\NIOS_LED_SDRAM\Software\NIOS_LED_SDRAM_APP\NIOS_LED_SDRAM_APP.hex" не получается. HEX файл создается, но я вижу неправильную сроку: Quote :1080000034004200146E60083A6800080000000066 Впрочем я не понимал что она неправильная. В итоге нихрена не работает и квартус ведет себя как шланг под напором - есть это файл никак не хочет. Файл созданный командой в shell Quote elf2hex 0x0 0x9e54 --width=32 --record=4 --little-endian-mem --create-lanes=0 "E:\Q_Project_03_03\NIOS_LED_SDRAM\Software\NIOS_LED_SDRAM_APP\NIOS_LED_SDRAM_APP.elf" "E:\Q_Project_03_03\NIOS_LED_SDRAM\Software\NIOS_LED_SDRAM_APP\NIOS_LED_SDRAM_APP.hex" имеет совсем другой порядок следования байт Quote :200000000042003408606E140800683A0000000000000000000000000000000000000000D6 И это действительно работает. Осталось разобраться с длиной строки этого файла чтобы избежать полтысячи варнингов: Quote Warning (113015): Width of data items in "NIOS_LED_SDRAM_APP.hex" is greater than the memory width. Wrapping data items to subsequent addresses. Found 640 warnings, reporting 10 Warning (113009): Data at line (2) of memory initialization file "NIOS_LED_SDRAM_APP.hex" is too wide to fit in one memory word. Wrapping data to subsequent addresses. Quote Share this post Link to post Share on other sites More sharing options...
Димон Безпарольный 0 March 9 Posted March 9 · Report post 25 minutes ago, Димон Безпарольный said: чтобы избежать полтысячи варнингов Делается это с помощью ключа --record=4. Итого правильная строка Quote elf2hex 0x08008000 0x0800cfff --width=32 --record=4 --little-endian-mem "E:\Q_Project_03_03\NIOS_LED_SDRAM\Software\NIOS_LED_SDRAM_APP\NIOS_LED_SDRAM_APP.elf" "E:\Q_Project_03_03\NIOS_LED_SDRAM\Software\NIOS_LED_SDRAM_APP\NIOS_LED_SDRAM_APP.hex" Все это можно сделать запуская mem_init.mk через Make Tagets -> Build. Но как это сделать я пока не нашел где написано. Может кто подскажет? Quote Share this post Link to post Share on other sites More sharing options...
Димон Безпарольный 0 March 9 Posted March 9 · Report post Не знаю почему, но у меня это окно пустое. Quote Share this post Link to post Share on other sites More sharing options...
Raven 21 Wednesday at 02:59 PM Posted Wednesday at 02:59 PM · Report post On 3/9/2025 at 1:08 PM, Димон Безпарольный said: Делается это с помощью ключа --record=4. Итого правильная строка Все это можно сделать запуская mem_init.mk через Make Tagets -> Build. Но как это сделать я пока не нашел где написано. Может кто подскажет? Я уже давал ссылку на статью, где описано, как правильно это сделать: Марсоход-2: Ваш первый проект на Nios II Описано в конце статьи. Quote Share this post Link to post Share on other sites More sharing options...
Димон Безпарольный 0 21 hours ago Posted 21 hours ago (edited) · Report post В общем, окончательно задолбавшись, перечитав весь интернет и форум Интел, решил задать вопросы. Тема прошла премодерацию и находится тут Смысл в том чтобы я ни делал - код не грузится. Грузится только железо. Чего я только не встречал - в том числе и то что контроллер EPCS работает только с ниосами - F. Может кто чего путное ответит. Через столетие. Edited 21 hours ago by Димон Безпарольный Quote Share this post Link to post Share on other sites More sharing options...
Димон Безпарольный 0 21 hours ago Posted 21 hours ago · Report post Прошу перевести в категорию "Свой" Димон Безпарольный Кажется это так делается. Quote Share this post Link to post Share on other sites More sharing options...