|
Проект не стартует, .sof + .elf в CFI |
|
|
|
Feb 20 2015, 07:46
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Feb 20 2015, 08:13
|
Местный
  
Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312

|
Цитата(ilkz @ Feb 20 2015, 10:46)  Что я делаю не так? Спасибо! P.S.: Если делать по отдельности - сначала заливать только .POF с образом ПЛИС, потом .SOF с ней же, потом на нее накатывать .FLASH с ниосом, то все работает прекрасно. Но хочется уйти от такой кучи файлов. Попробуйте flash programmer в Eclipse. Там вручную конвертировать и объединять sof и elf не нужно.
|
|
|
|
|
Feb 20 2015, 08:28
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084

|
Цитата(farbius @ Feb 20 2015, 11:13)  Попробуйте flash programmer в Eclipse. Там вручную конвертировать и объединять sof и elf не нужно. Так для того, чтобы им воспользоваться, надо все равно сначала .sof залить (иначе он не видит что в чип залито), плюс потом .POF, чтобы сам образ ПЛИС во флэшке оказался. А мне надо уйти от этих, по сути, лишних для производственника действий. Хочу просто один файл (содержащий и ПЛИС и ОС), который заливается через какой-то программатор (пускай пока через quartus_pgm), после чего устройство готово к использованию.
|
|
|
|
|
Feb 20 2015, 08:44
|
Местный
  
Группа: Свой
Сообщений: 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. отключил/включил питание. Все заработало
|
|
|
|
|
Feb 20 2015, 11:43
|
Частый гость
 
Группа: Участник
Сообщений: 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 для размещения больших сегментов кода (с) Модератор
|
|
|
|
|
Feb 25 2015, 12:14
|
Частый гость
 
Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084

|
Цитата(Swup @ Feb 25 2015, 13:08)  В проекте, где ниос работает на onchip memory использую вариант doom13. При производстве прошивается только .pof. В моем случае ниос работает в ddr2-памяти.
|
|
|
|
|
Feb 27 2015, 08:07
|
Частый гость
 
Группа: Участник
Сообщений: 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 (а он меняется на порядок чаще). Вопрос по-прежнему открыт...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|