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

 
 
 
Reply to this topicStart new topic
> niosii external boot, Как сформировать "распакованный" бинарный файл
R6L-025
сообщение Sep 2 2018, 10:47
Сообщение #1


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

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



Доброго времени суток!

Возникла задача загрузки софта в NIOS из HPS (работающих на одном кристалле). Нашел у Альтеры в "Embeded design handbook" раздел с примером как из одного проца залить код в Nios проц. Все хорошо, вот только там предполагается неким способом получить ,как в документации его называют, "распакованный" elf, представляющий из себя бинарник с размещенными некоторым способом сегментами. Как это сделать... В разделе 5.3.9.3.1 "Boot Images" есть всего 2 строчки рассказывающие что информацию о получении файла см. в разделе "Boot Images". Сепульки какие-то. Кто-нибудь может подсказать какие доки читать, или как получить требуемый формат?
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Sep 3 2018, 06:56
Сообщение #2


Гуру
******

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



2 R6L-025:
AN458: Alternative Nios II Boot Methods
Go to the top of the page
 
+Quote Post
R6L-025
сообщение Sep 3 2018, 07:26
Сообщение #3


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

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



Да вот тут я и встретил загадочную фразу

"Boot Images
The procedure described here assumes you have a Nios® II boot image in the format described in the “Boot Images” section."

Вообще, по аналогии с другими способами, как я понял, можно использовать скрипт для создания файла из экземпла "advanced boot copier". Но с ним тоже не особо вышло. Там алгоритм подразумевает что первые 32 байта заголовок (для external boot не используется), дальше сразу начинаются записи вида "len0, addr0, data0, len1, addr1, data1...". Если посмотреть на сформированные скриптом *.srec и *.bin файлы - то в первых 4 байтах хранящих длину сегмента (вроде как) находится число равное нескольким миллиардам. Что-то не так. Пока не разобрался почему.
Go to the top of the page
 
+Quote Post
Nick Potapov
сообщение Sep 4 2018, 08:26
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 19-05-06
Из: Нижний Новгород
Пользователь №: 17 250



Использую пример advanced_boot_copier для загрузки NIOS из внешнего процессора.
После того, как сделан .elf запускаю в скрипте две команды

Код
#!/bin/sh
./make_flash_image_script.sh hello_world.elf
bin2flash --input=hello_world.elf.flash.bin \
--output=hello_world.flash \
--location=0x00240000


Скрипты make_flash_image_script.sh и bin2flash из примера. Изменил только скрипт make_header.pl. Закомментировал в нем строку
Код
print { $out_FH } $bin_header;

чтобы в выходной файл не записывался ненужный заголовок.

В результате получаю файл hello_world.elf.flash.bin с содержимым в формате Length - Addr - Data.
Go to the top of the page
 
+Quote Post
R6L-025
сообщение Sep 4 2018, 17:59
Сообщение #5


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

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



Nick, Спасибо! Вот про bin2flash я и не подумал. Опробую
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th April 2024 - 23:57
Рейтинг@Mail.ru


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