vadimuzzz 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба Поскольку у меня все (программа, данные, стек...) находится в SDRAM то и очевидно вектор сброса я должен выставить на SDRAM. нет, вектор сброса указывает на EPCS. а вот в настройках линкера проекта все секции программы кидаете на SDRAM. тогда при подаче питания произойдет следующее: сконфигурируется ПЛИС (и ядро процессора в том числе) запустится программа, которая лежит по адресу сброса (контроллер EPCS), это бутлодер, который перепишет программу в SDRAM по окончании копирования в SDRAM управление будет передано вашей программе Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба нет, вектор сброса указывает на EPCS. а вот в настройках линкера проекта все секции программы кидаете на SDRAM. тогда при подаче питания произойдет следующее: сконфигурируется ПЛИС (и ядро процессора в том числе) запустится программа, которая лежит по адресу сброса (контроллер EPCS), это бутлодер, который перепишет программу в SDRAM по окончании копирования в SDRAM управление будет передано вашей программе Спасибо. Понятно. Осталась небольшая загвоздка. Сформировал я последовательно 2 .hex один из .sof другой из .elf. Каждый начинается со своего нужного адреса. Но конвертор jic разрешает добавить только один .hex как их теперь состыковать? Или может добавить просто .sof, а затем .hex который сделан из .elf с относительной настройкой адресации? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosu-art 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба нет, вектор сброса указывает на EPCS. а вот в настройках линкера проекта все секции программы кидаете на SDRAM. тогда при подаче питания произойдет следующее: сконфигурируется ПЛИС (и ядро процессора в том числе) запустится программа, которая лежит по адресу сброса (контроллер EPCS), это бутлодер, который перепишет программу в SDRAM по окончании копирования в SDRAM управление будет передано вашей программе А у меня не получалось так :crying: http://electronix.ru/forum/index.php?s=&am...t&p=1088042 Наверное потому что я это не сделал ? sof2flash --input=<hwimage>.sof --output=hwimage.flash --epcs --verbose nios2-elf-objcopy -I srec -O ihex hwimage.flash hwimage.hex Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба Наверное потому что я это не сделал ? sof2flash --input=<hwimage>.sof --output=hwimage.flash --epcs --verbose nios2-elf-objcopy -I srec -O ihex hwimage.flash hwimage.hex Это Вы делаете .hex из .sof. Но для формирования jic какраз и нужен .sof А вот после него должен идти .hex который сформирован из .elf elf2flash --input=<elf file>.elf --output=swimage.flash --epcs --after=hwimage.flash --verbose nios2-elf-objcopy -I srec -O ihex swimage.flash swimage.hex Может все же так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба А у меня не получалось так :crying: http://electronix.ru/forum/index.php?s=&am...t&p=1088042 там не все видно на второй картинке (видны параметры команды elf2flash, а надо бы еще sof2flash глянуть). то, что есть, выглядит правильно. какие еще симптомы? FPGA конфигурируется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosu-art 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба Да, ПЛИС грузится, процессор видно, но программа не выполняется. Выкрутился пока так http://electronix.ru/forum/index.php?showt...4&hl=sdram* но хотелось бы по нормальному делать. Плат пока на столе нет, потом с DDR2 еще попробую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба Да, ПЛИС грузится, процессор видно, но программа не выполняется. а через отладчик программа запускается (в sdram)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 29 января, 2013 Опубликовано 29 января, 2013 (изменено) · Жалоба Пока не получается. По включению питания система загружается (.sof) (FPGA конфигурируется) Но программа - .hex созданный из .elf sof2flash --input=<hwimage>.sof --output=hwimage.flash --epcs --verbose elf2flash --input=<elf file>.elf --output=swimage.flash --epcs --after=hwimage.flash --verbose nios2-elf-objcopy -I srec -O ihex swimage.flash swimage.hex не запускается. Запускается (sdram) только после принудительной загрузки из Nios Eclipse Конвертация и вектора на картинках Вроде все должно работать. Но не хочет Изменено 29 января, 2013 пользователем Acvarif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosu-art 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба а через отладчик программа запускается (в sdram)? Я уже если честно не помню, но потратил не мало времени. Плата была не серийная, один раз решил - забыл :rolleyes: Но сейчас чувствую снова придется возвращаться к этому вопросу. Жду пока припаяют DDR2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба Вроде все должно работать. Но не хочет Сделайте маленький тестовый проект, используя для Ниоса внутреннею память FPGA... От простого с сложному.. Потом, была еще заморочка: в *.hex нужно было по ходу дела переформатировать ширину слова к формату байта. На это я указал выше в своей шпаргалке hex.doc. А принт-скрины, вроде бы в норме... Не хватает только еще вида структуры из SOPC (Qsys)... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 29 января, 2013 Опубликовано 29 января, 2013 (изменено) · Жалоба Сделайте маленький тестовый проект, используя для Ниоса внутреннею память FPGA... От простого с сложному.. Потом, была еще заморочка: в *.hex нужно было по ходу дела переформатировать ширину слова к формату байта. На это я указал выше в своей шпаргалке hex.doc. А принт-скрины, вроде бы в норме... Не хватает только еще вида структуры из SOPC (Qsys)... Про ширину слова я забыл. Надо попробовать. Конфигурация системы на картинке. На EPCS подается pll_sys (100 мГц - может многовато будет?) Вверху cpu_0 Если опять застрянет, начну с внутренней памятью. Изменено 29 января, 2013 пользователем Acvarif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба Acvarif, я нить дискуссии немного потерял, а вы через flash-programmer пробовали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба Acvarif, я нить дискуссии немного потерял, а вы через flash-programmer пробовали? EPCS прошиваю USB Blaster но через Quartus II Programmer. flash-programmer не пробовал. А в чем будет разница? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 41 29 января, 2013 Опубликовано 29 января, 2013 · Жалоба Не хватает только еще вида структуры из SOPC (Qsys)... Не только. Еще важны настройки BSP - в каком состоянии находится галка "Allow code at reset" (или что-то в этом роде). А в чем будет разница? Разница будет в том, что не придется чесать левое ухо правой ногой. :angry2: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 29 января, 2013 Опубликовано 29 января, 2013 (изменено) · Жалоба Не только. Еще важны настройки BSP - в каком состоянии находится галка "Allow code at reset" (или что-то в этом роде). Работаю в Q90 - настройки системной библиотеки И все же почему именно flash-programmer если Q II programmer тоже позволяет программировать EPCS? Изменено 29 января, 2013 пользователем Acvarif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться