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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Проект не стартует, .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
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

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:51
Рейтинг@Mail.ru


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