реклама на сайте
подробности

 
 
> Проект не стартует, .sof + .elf в CFI
ilkz
сообщение Feb 20 2015, 07:46
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Добрый день!

Имею кит CIII_DEV_KIT. В проекте есть NIOS с флэшкой.

Такая проблема: надо собрать .sof и .elf в один файл и залить, чтобы запускалось.

Делаю так:
Код
sof2flash --epcs --input=project.sof --output=hw.flash --verbose

elf2flash --input=project_nios.elf --output=sw.flash --boot="$ALTERA/nios2eds/components/altera_nios2/boot_loader_cfi.srec" \
          --base=0xc000000 --end=0x10000000 --reset=0xe000000 --verbose

nios2-elf-objcopy -I srec -O binary hw.flash hw.bin
nios2-elf-objcopy -I srec -O binary sw.flash sw.bin

cat hw.bin sw.bin > firmware.bin
nios2-elf-objcopy -I binary -O ihex firmware.bin firmware.hex

quartus_cpf -c make_pof.cof
quartus_pgm pgm_pof.cdf


В make_pof.cof, соответственно, прописано:
Прикрепленное изображение


В pgm_pof.cdf прописано:
Прикрепленное изображение


Программатор долго сначала стирает, затем прошивает, но проект в итоге не стартует (горит светодиод ERROR).

Что я делаю не так?
Спасибо!


P.S.: Если делать по отдельности - сначала заливать только .POF с образом ПЛИС, потом .SOF с ней же, потом на нее накатывать .FLASH с ниосом, то все работает прекрасно. Но хочется уйти от такой кучи файлов.

Сообщение отредактировал ilkz - Feb 20 2015, 07:48
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 30)
Alexey_Rostov
сообщение Feb 20 2015, 08:13
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(ilkz @ Feb 20 2015, 10:46) *
Что я делаю не так?
Спасибо!
P.S.: Если делать по отдельности - сначала заливать только .POF с образом ПЛИС, потом .SOF с ней же, потом на нее накатывать .FLASH с ниосом, то все работает прекрасно. Но хочется уйти от такой кучи файлов.


Попробуйте flash programmer в Eclipse. Там вручную конвертировать и объединять sof и elf не нужно.
Go to the top of the page
 
+Quote Post
ilkz
сообщение Feb 20 2015, 08:28
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Цитата(farbius @ Feb 20 2015, 11:13) *
Попробуйте flash programmer в Eclipse. Там вручную конвертировать и объединять sof и elf не нужно.


Так для того, чтобы им воспользоваться, надо все равно сначала .sof залить (иначе он не видит что в чип залито), плюс потом .POF, чтобы сам образ ПЛИС во флэшке оказался. А мне надо уйти от этих, по сути, лишних для производственника действий. Хочу просто один файл (содержащий и ПЛИС и ОС), который заливается через какой-то программатор (пускай пока через quartus_pgm), после чего устройство готово к использованию.
Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Feb 20 2015, 08:44
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(ilkz @ Feb 20 2015, 11:28) *
Так для того, чтобы им воспользоваться, надо все равно сначала .sof залить (иначе он не видит что в чип залито), плюс потом .POF, чтобы сам образ ПЛИС во флэшке оказался. А мне надо уйти от этих, по сути, лишних для производственника действий. Хочу просто один файл (содержащий и ПЛИС и ОС), который заливается через какой-то программатор (пускай пока через quartus_pgm), после чего устройство готово к использованию.


Буквально недавно шил в память один старый проект, собранный в Q7.1. Для заливки во флеш использовал Q 11.1. Делал следующее:
Залил через программер sof
Открыл flash programmer там указал sopcinfo и добавил файлы на заливку: sof + elf
нажал programm flash.
отключил/включил питание. Все заработало
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 20 2015, 09:59
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Есть такой вариант:
1) Компилите проект в Eclipse
2) Выполняете Make Targets -> Build -> mem_init_generate -> OK
3) В Quartus добавляете файл software/project_name/mem_init/meminit.qip в проект
4) Компилите проект в Quartus
5) Полученный SOF уже содержит проинициализированную память для Nios II.
6) Конвертируете SOF в нужный формат и заливаете в конфигурационное устройство.
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Feb 20 2015, 10:33
Сообщение #6


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(ilkz @ Feb 20 2015, 10:46) *
sof2flash --epcs --input=project.sof --output=hw.flash --verbose

Я таки не понял - у Вас флэшка параллельная (CFI) или последовательная (EPCS)???
И еще - какой установлен режим конфигурирования (что на MSEL'ах)?


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
ilkz
сообщение Feb 20 2015, 10:42
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Параллельная, CFI. Режим - 1bit-PS.

Ой, а ключика --epcs я и не заметил...
Go to the top of the page
 
+Quote Post
ilkz
сообщение Feb 20 2015, 11:43
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Цитата(farbius @ Feb 20 2015, 11:44) *
Буквально недавно шил в память один старый проект, собранный в Q7.1. Для заливки во флеш использовал Q 11.1. Делал следующее:
Залил через программер sof
Открыл flash programmer там указал sopcinfo и добавил файлы на заливку: sof + elf
нажал programm flash.
отключил/включил питание. Все заработало


Делаю в точности как Вы описали - не стартует, горит светодиод ERROR.

Выхлоп флэш-программера:
CODE
Info: Info: *******************************************************************
Info: Info: Running Quartus II 32-bit Convert_programming_file
Info: Info: Command: quartus_cpf --no_banner --convert D:/projects/pack/firmware.sof D:/projects/pack/firmware_ext_flash.rbf
Info: Info: Quartus II 32-bit Convert_programming_file was successful. 0 errors, 0 warnings
Info: Info: Peak virtual memory: 189 megabytes
Info: Info: Processing ended: Fri Feb 20 14:32:58 2015
Info: Info: Elapsed time: 00:00:01
Info: Info: Total CPU time (on all processors): 00:00:01
Info: Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Info: Resetting and pausing target processor: OK
Info: Reading System ID at address 0x08000040:
Info: ID value verified
Info: Timestamp value was not verified: value was not specified
Info:
Info: : Checksumming existing contents
Info:
Info: Checksums took 1.2s
Info: Erase not required
Info:
Info: 00000000 ( 0%): Programming
Info:
Info: 00020000 ( 3%): Programming
Info:
Info: 00040000 ( 7%): Programming
Info:
Info: 00060000 (11%): Programming
Info:
Info: 00080000 (14%): Programming
Info:
Info: 000A0000 (18%): Programming
Info:
Info: 000C0000 (22%): Programming
Info:
Info: 000E0000 (25%): Programming
Info:
Info: 00100000 (29%): Programming
Info:
Info: 00120000 (33%): Programming
Info:
Info: 00140000 (36%): Programming
Info:
Info: 00160000 (40%): Programming
Info:
Info: 00180000 (44%): Programming
Info:
Info: 001A0000 (47%): Programming
Info:
Info: 001C0000 (51%): Programming
Info:
Info: 001E0000 (55%): Programming
Info:
Info: 00200000 (58%): Programming
Info:
Info: 00220000 (62%): Programming
Info:
Info: 00240000 (66%): Programming
Info:
Info: 00260000 (69%): Programming
Info:
Info: 00280000 (73%): Programming
Info:
Info: 002A0000 (77%): Programming
Info:
Info: 002C0000 (80%): Programming
Info:
Info: 002E0000 (84%): Programming
Info:
Info: 00300000 (88%): Programming
Info:
Info: 00320000 (91%): Programming
Info:
Info: 00340000 (95%): Programming
Info:
Info: 00360000 (99%): Programming
Info:
Info: Programmed 3488KB in 52.8s (66.0KB/s)
Info: Device contents checksummed OK
Info: Leaving target processor paused
Info: Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Info: Resetting and pausing target processor: OK
Info: Reading System ID at address 0x08000040:
Info: ID value verified
Info: Timestamp value was not verified: value was not specified
Info:
Info: : Checksumming existing contents
Info:
Info: Checksums took 0.1s
Info: Erase not required
Info:
Info: 02000000 ( 0%): Programming
Info:
Info: 02020000 (37%): Programming
Info:
Info: 02040000 (75%): Programming
Info:
Info: Programmed 338KB in 5.5s (61.4KB/s)
Info: Device contents checksummed OK
Info: Leaving target processor paused


Сообщение отредактировал des00 - Feb 20 2015, 12:02
Причина редактирования: Используйте тег codebox для размещения больших сегментов кода (с) Модератор
Go to the top of the page
 
+Quote Post
ilkz
сообщение Feb 25 2015, 08:36
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Получается возможность сделать единый файл прошивки из .sof+.elf, и залить его сразу, отсутствует?
Go to the top of the page
 
+Quote Post
Swup
сообщение Feb 25 2015, 10:08
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 2-09-11
Из: Москва
Пользователь №: 66 970



В проекте, где ниос работает на onchip memory использую вариант doom13. При производстве прошивается только .pof.
Go to the top of the page
 
+Quote Post
ilkz
сообщение Feb 25 2015, 12:14
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Цитата(Swup @ Feb 25 2015, 13:08) *
В проекте, где ниос работает на onchip memory использую вариант doom13. При производстве прошивается только .pof.

В моем случае ниос работает в ddr2-памяти.
Go to the top of the page
 
+Quote Post
ilkz
сообщение Feb 27 2015, 08:07
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Цитата(doom13 @ Feb 20 2015, 12:59) *
Есть такой вариант:
1) Компилите проект в Eclipse
2) Выполняете Make Targets -> Build -> mem_init_generate -> OK
3) В Quartus добавляете файл software/project_name/mem_init/meminit.qip в проект
4) Компилите проект в Quartus
5) Полученный SOF уже содержит проинициализированную память для Nios II.
6) Конвертируете SOF в нужный формат и заливаете в конфигурационное устройство.


Спасибо, Ваш метод хорош, но он приводит к ненужной пересборке ПЛИС в случае если изменился только код NIOS (а он меняется на порядок чаще).
Вопрос по-прежнему открыт...
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 27 2015, 08:18
Сообщение #13


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(ilkz @ Feb 27 2015, 15:07) *
он приводит к ненужной пересборке ПЛИС в случае если изменился только код NIOS (а он меняется на порядок чаще).

smart compilation не помогает ?


--------------------
Go to the top of the page
 
+Quote Post
doom13
сообщение Mar 2 2015, 20:49
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(ilkz @ Feb 27 2015, 11:07) *
Спасибо, Ваш метод хорош, но он приводит к ненужной пересборке ПЛИС в случае если изменился только код NIOS (а он меняется на порядок чаще).
Вопрос по-прежнему открыт...

Если меняется только код Nios и используется Smart Compilation, то анализ/синтез и фиттер не выполняются, много времени не занимает, почему нет.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 3 2015, 10:31
Сообщение #15


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(doom13 @ Mar 2 2015, 22:49) *
Если меняется только код Nios и используется Smart Compilation, то анализ/синтез и фиттер не выполняются, много времени не занимает, почему нет.

Большое спасибо! Давно искал нечто подобное.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 5 2015, 07:22
Сообщение #16


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



А не выходит каменный цветок. Выполнил все пункты внимательно согласно Тыц. Не стартует ниос. Вектор сброса ниос не нужно изменять?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 5 2015, 08:32
Сообщение #17


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Вот результат трансляции без файла meminit.qip

Код
BLOCK        START ADDRESS        END ADDRESS

Page_0        0x00000000        0x0004845F


а вот с ним
Код
BLOCK        START ADDRESS        END ADDRESS

Page_0        0x00000000        0x0004849B


Программа ниос занимает примерно 16Кб, так что она к sof не пристегнулась.
Go to the top of the page
 
+Quote Post
doom13
сообщение Mar 5 2015, 10:32
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



У меня всё нормально работает и Ниос при данном способе получения прошивки стартует (5CEFA9, Q14.0). Есть ли в системе EPCS Flash Controller? Если да то где-то видел, что на Q13.0 могут быть проблемы с запуском Ниоса.

Цитата(_Anatoliy @ Mar 5 2015, 11:32) *
Программа ниос занимает примерно 16Кб, так что она к sof не пристегнулась.

Это - неправильный метод оценки. Если компрессия не используется, то значение END ADDRESS будет соответствовать размеру прошивки (максимальному без компрессии для используемого девайса) и не будет зависеть от того, подключён meminit.qip или нет. Т.е. подключение meminit.qip влияет на внутреннее содержимое выходного файла, а не на его размер. Если компрессия используется, то и размер прошивки будет изменяться при изменении программы Ниос, но не на величину программы.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Mar 5 2015, 11:33
Сообщение #19


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(doom13 @ Mar 5 2015, 12:32) *
У меня всё нормально работает и Ниос при данном способе получения прошивки стартует (5CEFA9, Q14.0). Есть ли в системе EPCS Flash Controller? Если да то где-то видел, что на Q13.0 могут быть проблемы с запуском Ниоса.

Да,контроллер есть. И проект рабочий,среда Q12.1. Если проект загружать nios2-flash-programmerом то проблем нет.
Я конвертирую *.sof в файл *.jic.
Тогда странно что не работает. А meminit.qip посто добавить в проект и всё?
Go to the top of the page
 
+Quote Post
doom13
сообщение Mar 5 2015, 13:18
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(_Anatoliy @ Mar 5 2015, 14:33) *
Я конвертирую *.sof в файл *.jic.

Всё аналогично, работает.
Цитата(_Anatoliy @ Mar 5 2015, 14:33) *
Тогда странно что не работает. А meminit.qip посто добавить в проект и всё?

Да, должно работать. После того как проект железа скомпилен, если меняем программу для Ниос и говорим пересобрать проект в Quartus, то выполнится только ассемблер (smart compilation должен стоять). По этому можно определить понял ли Quartus, что произошли изменения в программе Ниоса. Иногда происходили глюки, не хотел пересобирать прошивку, типа ничего не изменилось, хотя были изменения в программе Ниоса.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 6 2015, 06:43
Сообщение #21


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Наконец опять появилась возможность продолжить эксперименты. А ресет вектор для такого режима каким должен быть? Когда программировал nios2-flash-programmer-ом то у меня был вектор на epcs.controller. Пробовал сделать вектор на onchip ram_sys (память программ) всё равно ниос не стартует. Что ещё можно глянуть?
p.s. В отчётах компиляции не нашёл упоминания о файле nios2s_ram_sys.hex , сформированном с помощью mem_init_generate. Так и должно быть?
Go to the top of the page
 
+Quote Post
doom13
сообщение Apr 6 2015, 15:56
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(_Anatoliy @ Apr 6 2015, 09:43) *
А ресет вектор для такого режима каким должен быть? Когда программировал nios2-flash-programmer-ом то у меня был вектор на epcs.controller.

В моём случае всё в on-chip memory.
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Apr 6 2015, 21:41
Сообщение #23


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(_Anatoliy @ Apr 6 2015, 09:43) *
Пробовал сделать вектор на onchip ram_sys (память программ) всё равно ниос не стартует. Что ещё можно глянуть?

Еще нужно глянуть настройки bsp (allow code at reset и т.п.).


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 7 2015, 06:11
Сообщение #24


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Stewart Little @ Apr 6 2015, 23:41) *
Еще нужно глянуть настройки bsp (allow code at reset и т.п.).


Бит allow code at reset был сброшен, но после установки ничего не изменилось. Что ещё важно для этого режима?Видно что программа в памяти есть,проблема со стартом. Может скриншотов настроек bsp набросать?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 7 2015, 08:00
Сообщение #25


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Всем спасибо,ребята! Пошёл старт ниоса. Кстати, вместо запуска компиляции в квартусе можно просто выполнить Update MIF а затем start assebler.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 23 2015, 11:26
Сообщение #26


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Опять появилась возможность продолжить эксперименты.
Выяснилось что при изменении в qsys reset vector memory c epcs_flash_controller на ram_sys ,где ram_sys является блочной областью памяти, ниос начинает стартовать и работает, но почему-то отрубается доступ к epcs из моего софта. Программа зависает при обращении к epcs. Что посоветуете,коллеги?
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Apr 23 2015, 13:19
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 _Anatoliy
а в приведённой вами конфигурации, если черег Debug делать - где вываливаетесь ?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 23 2015, 13:58
Сообщение #28


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Kuzmi4 @ Apr 23 2015, 16:19) *
2 _Anatoliy
а в приведённой вами конфигурации, если черег Debug делать - где вываливаетесь ?

При ресет-векторе на ram_sys?Пошагово дохожу до чтения епцс, при входе в п/п чтения программа зависает.Остановить и глянуть чего ждёт нет возможности(я вам писал когда-то об этом).Если же ресет-вектор поставить на epcs_flash_controller то тогда чтение/запись епцс проходят нормально.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Apr 23 2015, 14:29
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 _Anatoliy
я бы асм глянул именно этого места...
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Apr 23 2015, 15:06
Сообщение #30


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(_Anatoliy @ Apr 23 2015, 16:58) *
при входе в п/п чтения программа зависает.

Вы через HAL к EPCS обращаетесь, или на низком уровне?


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Apr 23 2015, 15:17
Сообщение #31


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Stewart Little @ Apr 23 2015, 18:06) *
Вы через HAL к EPCS обращаетесь, или на низком уровне?

На низком,пользуюсь epcs_write_buffer(),epcs_read_buffer() из epcs_commands.c
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 02:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01646 секунд с 7
ELECTRONIX ©2004-2016