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

 
 
> avrgcc как воткнуть бинарные данные в прошивку
viakon
сообщение Jan 29 2009, 05:42
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002



Есть бинарный файл надо чтобы эти данные попали в прошивку контроллера, и могли быть использованы основной программой.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jeca
сообщение Jan 7 2012, 20:15
Сообщение #2





Группа: Участник
Сообщений: 13
Регистрация: 7-01-12
Из: г. Москва
Пользователь №: 69 212



Цитата(viakon @ Jan 29 2009, 09:42) *
Есть бинарный файл надо чтобы эти данные попали в прошивку контроллера, и могли быть использованы основной программой.


Мучаюсь с этой-же задачей. Сгенерировал объектный файл, но не удается прилинковать его. avr-gcc ругается "Error 1 avr architecture of input file `FW_cp26m.o' is incompatible with avr:51 output". Не могли бы Вы подсказать как правильно линковать его?
Go to the top of the page
 
+Quote Post
alx2
сообщение Jan 9 2012, 05:36
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Код
alx% cat test.c
extern int _binary_data_bin_size;
int main()
{
    return _binary_data_bin_size;
}
alx% dd if=/dev/urandom of=data.bin bs=2k count=1
1+0 records in
1+0 records out
2048 bytes transferred in 0.000354 secs (5784468 bytes/sec)
alx% avr-objcopy -I binary -O elf32-avr data.bin data.elf
alx% avr-gcc -o test test.c data.elf
alx%


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
Jeca
сообщение Jan 9 2012, 16:02
Сообщение #4





Группа: Участник
Сообщений: 13
Регистрация: 7-01-12
Из: г. Москва
Пользователь №: 69 212



Спасибо, что ответили. Ваш пример линкуется прекрасно. На я использую ATmega128 и линковка avr-gcc -mmcu=atmega128 -o test test.c data.elf заканчивается:

Error 1 avr architecture of input file `data.elf' is incompatible with avr:51 output.

Я понимаю, что avr-objcopy надо вызывать по-другому, чтобы файл data.elf имел формат avr:51. Правильно ли я думаю и как это сделать?

Сообщение отредактировал IgorKossak - Jan 9 2012, 17:04
Причина редактирования: Бездумное цитирование
Go to the top of the page
 
+Quote Post
alx2
сообщение Jan 10 2012, 08:35
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(Jeca @ Jan 9 2012, 21:02) *
Ваш пример линкуется прекрасно. На я использую ATmega128 и линковка avr-gcc -mmcu=atmega128 -o test test.c data.elf заканчивается:

У меня не воспроизводится:
Код
alx% avr-objcopy -I binary -O elf32-avr data.bin data.elf
alx% avr-gcc -mmcu=atmega128 -o test test.c data.elf
alx%


Цитата(Jeca @ Jan 9 2012, 21:02) *
Я понимаю, что avr-objcopy надо вызывать по-другому, чтобы файл data.elf имел формат avr:51. Правильно ли я думаю и как это сделать?

А документацию прочитать? sm.gif Или хотя бы запустить objcopy без параметров? Там же все написано!
Архитектура выходного файла задается опцией -B для objcopy.
Попробуйте в строку с objcopy добавить -B avr:51 чтобы у всех объектных файлов была одна и та же архитектура.
Посмотреть архитектуру elf-файла можно с помощью objdump -f.

Сообщение отредактировал alx2 - Jan 10 2012, 08:40


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
Jeca
сообщение Jan 10 2012, 19:32
Сообщение #6





Группа: Участник
Сообщений: 13
Регистрация: 7-01-12
Из: г. Москва
Пользователь №: 69 212



Цитата(alx2 @ Jan 10 2012, 12:35) *
А документацию прочитать? sm.gif Или хотя бы запустить objcopy без параметров? Там же все написано!
Архитектура выходного файла задается опцией -B для objcopy.
Попробуйте в строку с objcopy добавить -B avr:51 чтобы у всех объектных файлов была одна и та же архитектура.
Посмотреть архитектуру elf-файла можно с помощью objdump -f.


Спасибо большое за помощь! sm.gif Все получилось. Документацию читал, слона то я и не заметил. sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- viakon   avrgcc как воткнуть бинарные данные в прошивку   Jan 29 2009, 05:42
- - S_agent   утилита bin2c поможет Вам. Результатом ее выполнен...   Jan 29 2009, 08:31
|- - alx2   Цитата(S_agent @ Jan 29 2009, 13:31) утил...   Jan 29 2009, 14:13
||- - viakon   Цитата(alx2 @ Jan 29 2009, 20:13) Для дос...   Jan 30 2009, 06:01
|||- - Сергей Борщ   Цитата(viakon @ Jan 30 2009, 08:01) _bina...   Jan 30 2009, 06:40
|||- - ARV   Цитата(viakon @ Jan 30 2009, 09:01) Прили...   Jan 30 2009, 07:21
|||- - alx2   Цитата(viakon @ Jan 30 2009, 11:01) Прили...   Jan 30 2009, 15:47
||- - S_agent   Цитата(alx2 @ Jan 29 2009, 16:13) Или под...   Jan 30 2009, 12:13
|- - Terminator   Цитата(S_agent @ Jan 29 2009, 14:31) утил...   Jan 30 2009, 05:22
- - ARV   внедрение бинарных данных большого объема таит в с...   Jan 30 2009, 06:05
- - viakon   extern unsigned int _binary_XXXX_size; extern PGM...   Jan 30 2009, 09:22


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

 


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


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