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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Какой размер у hex файла прошивки и как его генерить?, virtex-6, blackfin
Bad0512
сообщение Oct 12 2012, 06:47
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(Flood @ Oct 12 2012, 13:44) *
Насчет C-array - в принципе, в
#define bitstream_length = ....;
нет необходимости, т.к. есть sizeof bitstream.

Не прокатит, т.к. массив в отдельном файле, а sizeof - это директива компилятора, а не линковщика.
Ну либо лепить в один файл с кодом, который к этому массиву обращается, что по моему ИМХО не есть гуд стайл...
Go to the top of the page
 
+Quote Post
Flood
сообщение Oct 12 2012, 07:00
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Цитата(Bad0512 @ Oct 12 2012, 10:47) *
Не прокатит, т.к. массив в отдельном файле, а sizeof - это директива компилятора, а не линковщика.
Ну либо лепить в один файл с кодом, который к этому массиву обращается, что по моему ИМХО не есть гуд стайл...


Если это .h файл, подключаемый через #include, то sizeof прокатит. Как правило, это наиболее распространенный вариант, т.к. bitstream в глобальных символах обычно не нужен (объявляется как static). Хотя в хранении битстрима в .c тоже есть смысл, чтобы не перекомпилировать загрузчик при изменении битстрима. Дело вкуса.
Если .c:
Код
const unsigned char bitstream = { ... };
const size_t bitstream_size = sizeof bitstream;


В том смысле, что конвертеру специально вычислять и заполнять поле bitstream_size не нужно.
Go to the top of the page
 
+Quote Post
Goose
сообщение Oct 13 2012, 07:16
Сообщение #18


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

Группа: Свой
Сообщений: 165
Регистрация: 26-02-10
Из: Москва
Пользователь №: 55 683



Цитата(Bad0512 @ Oct 12 2012, 09:25) *
Я делал так : специально для случая прилинковки битстрима к разным встроенным процессорам написал простенькую конвертайку *.bin(или *.bit) -> С-style const array. На выходе получается что-то типа :
Код
const unsigned char bitstream = { 0x11, 0x22, ..... };
#define bitstream_length = ....;


Такой файлик легко прилинковывается к любому проекту, написанному на C. Если есть интерес - могу выложить сорцы конвертайки.

З Ы Да, было бы вполне логично натравить на этот массив какой-нибудь алгоритм сжатия, но у меня до этого руки не дошли...

Да, конечно интерес есть! буду премного благодарен)
а сжимать его 100% надо, если проект небольшой то файл сжимается в десятки раз)
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 13 2012, 07:35
Сообщение #19


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



В C-шный массив можно конвертнуть тем же srecord, на который я уже давал линк. У самого были самописные приблуды bin2c, которые кочевали из одной операционки в другую с конца 80-ых, но всё забросил в пользу srecord или objcopy

Тут обсуждалось сжатие потока


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Oct 15 2012, 04:09
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(Goose @ Oct 13 2012, 14:16) *
Да, конечно интерес есть! буду премного благодарен)
а сжимать его 100% надо, если проект небольшой то файл сжимается в десятки раз)

Держите сорцы. Сделано это было ооочень давно, поэтому не факт что всё сразу заработает.
Про сжатие - сжимать-то надо конечно, но вот место под битстрим следует резервировать с запасом (худший случай = нежатый стрим).

Прикрепленные файлы
Прикрепленный файл  BIN2C.txt ( 2.21 килобайт ) Кол-во скачиваний: 44
 
Go to the top of the page
 
+Quote Post

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

 


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


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