Перейти к содержанию
    

Загрузка .sof + .elf в EPCS16

Поскольку у меня все (программа, данные, стек...) находится в SDRAM то и очевидно вектор сброса я должен выставить на SDRAM.

нет, вектор сброса указывает на EPCS. а вот в настройках линкера проекта все секции программы кидаете на SDRAM. тогда при подаче питания произойдет следующее:

  1. сконфигурируется ПЛИС (и ядро процессора в том числе)
  2. запустится программа, которая лежит по адресу сброса (контроллер EPCS), это бутлодер, который перепишет программу в SDRAM
  3. по окончании копирования в SDRAM управление будет передано вашей программе

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет, вектор сброса указывает на EPCS. а вот в настройках линкера проекта все секции программы кидаете на SDRAM. тогда при подаче питания произойдет следующее:

  1. сконфигурируется ПЛИС (и ядро процессора в том числе)
  2. запустится программа, которая лежит по адресу сброса (контроллер EPCS), это бутлодер, который перепишет программу в SDRAM
  3. по окончании копирования в SDRAM управление будет передано вашей программе

Спасибо. Понятно.

Осталась небольшая загвоздка. Сформировал я последовательно 2 .hex один из .sof другой из .elf. Каждый начинается со своего нужного адреса. Но конвертор jic разрешает добавить только один .hex как их теперь состыковать? Или может добавить просто .sof, а затем .hex который сделан из .elf с относительной настройкой адресации?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нет, вектор сброса указывает на EPCS. а вот в настройках линкера проекта все секции программы кидаете на SDRAM. тогда при подаче питания произойдет следующее:

  1. сконфигурируется ПЛИС (и ядро процессора в том числе)
  2. запустится программа, которая лежит по адресу сброса (контроллер EPCS), это бутлодер, который перепишет программу в SDRAM
  3. по окончании копирования в 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наверное потому что я это не сделал ?

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

Может все же так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А у меня не получалось так :crying: http://electronix.ru/forum/index.php?s=&am...t&p=1088042

там не все видно на второй картинке (видны параметры команды elf2flash, а надо бы еще sof2flash глянуть). то, что есть, выглядит правильно. какие еще симптомы? FPGA конфигурируется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, ПЛИС грузится, процессор видно, но программа не выполняется. Выкрутился пока так http://electronix.ru/forum/index.php?showt...4&hl=sdram* но хотелось бы по нормальному делать. Плат пока на столе нет, потом с DDR2 еще попробую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, ПЛИС грузится, процессор видно, но программа не выполняется.

а через отладчик программа запускается (в sdram)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пока не получается. По включению питания система загружается (.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

Конвертация и вектора на картинках

post-39850-1359451500_thumb.jpgpost-39850-1359451510_thumb.jpg

Вроде все должно работать. Но не хочет

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а через отладчик программа запускается (в sdram)?

Я уже если честно не помню, но потратил не мало времени. Плата была не серийная, один раз решил - забыл :rolleyes: Но сейчас чувствую снова придется возвращаться к этому вопросу. Жду пока припаяют DDR2. :wacko:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде все должно работать. Но не хочет

Сделайте маленький тестовый проект, используя для Ниоса внутреннею память FPGA... От простого с сложному..

Потом, была еще заморочка: в *.hex нужно было по ходу дела переформатировать ширину слова к формату байта. На это я указал выше в своей шпаргалке hex.doc.

А принт-скрины, вроде бы в норме... Не хватает только еще вида структуры из SOPC (Qsys)...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделайте маленький тестовый проект, используя для Ниоса внутреннею память FPGA... От простого с сложному..

Потом, была еще заморочка: в *.hex нужно было по ходу дела переформатировать ширину слова к формату байта. На это я указал выше в своей шпаргалке hex.doc.

А принт-скрины, вроде бы в норме... Не хватает только еще вида структуры из SOPC (Qsys)...

Про ширину слова я забыл. Надо попробовать. Конфигурация системы на картинке. На EPCS подается pll_sys (100 мГц - может многовато будет?)

post-39850-1359458124_thumb.jpg Вверху cpu_0

Если опять застрянет, начну с внутренней памятью.

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Acvarif, я нить дискуссии немного потерял, а вы через flash-programmer пробовали?

EPCS прошиваю USB Blaster но через Quartus II Programmer. flash-programmer не пробовал.

А в чем будет разница?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не хватает только еще вида структуры из SOPC (Qsys)...

Не только. Еще важны настройки BSP - в каком состоянии находится галка "Allow code at reset" (или что-то в этом роде).

 

А в чем будет разница?

Разница будет в том, что не придется чесать левое ухо правой ногой. :angry2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не только. Еще важны настройки BSP - в каком состоянии находится галка "Allow code at reset" (или что-то в этом роде).

Работаю в Q90 - настройки системной библиотекиpost-39850-1359461626_thumb.jpg И все же почему именно flash-programmer если Q II programmer тоже позволяет программировать EPCS?

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...