Формат ELF файла, сделанного AVR Studio

Обсуждаем контроллеры компании Atmel.
Ответить
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение eess9 »

Привет всем!

Имеется устройство на ATmega, которое общается с внешним миром через LAN по UDP протоколу. Теперь надо туда прикрутить bootloader. Соответственно стал вопрос написания софтины со стороны PC, которая будет отсылать новую прошивку по UDP. Есть выходной ELF - файл проекта, его и надо заливать в железо (т.к. там все и сразу: flash, epprom, fuse, lock bits). Описания формата и на русском, и на английском достаточно много, но есть проблема. Заголовок elf-файла:

Код: Выделить всё

unsigned char e_ident[EI_NIDENT]; 
    Elf32_Half e_type; 
    Elf32_Half e_machine; 
    Elf32_Word e_version; 
    Elf32_Addr e_entry; 
    Elf32_Off e_phoff; 
    Elf32_Off e_shoff; 
    Elf32_Word e_flags; 
    Elf32_Half e_ehsize; 
    Elf32_Half e_phentsize; 
    Elf32_Half e_phnum; 
    Elf32_Half e_shentsize; 
    Elf32_Half e_shnum; 
    Elf32_Half e_shstrndx; 
первым сразу идет массив. Какова величина EI_NIDENT неясно, говорится, что зависит от конкретной архитектуры. Для GCC ничего путнего не нашел.
Русскоязычная википедия утверждает, что первые 4 байта массива e_ident[EI_NIDENT] - это 0x7f 0x45 0x4c 0x46. Открыл elf как бинарный файл. Точно, первые же четыре байта - это 0x7f 0x45 0x4c 0x46. Но, например, попытки найти запись типа eeprom или fuse не дали результата. Но в заголовках секций должны же быть они указаны?

Кому приходилось сталкиваться поближе с elf, подскажите в каком направлении копать, пожалуйста.
Заранее спасибо.
Реклама
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт сен 21, 2007 17:53:23
Откуда: Зарайск

Сообщение mrFox »

что за необходимость использовать именно elf
avr-objcopy -O ihex -R .eeprom -R .eesafe bin/Debug/clock_m16_7seg.elf bin/Debug/clock_m16_7seg.elf.hex
и на выходе hex по которому в сети полно информации
PS фузов и локбитов в elfе нету
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение eess9 »

Нет, в elf фьюзы и блокировочные биты есть, если в проекте настроить их присутствие, конечно. Необходимость использования elf очень проста: он позволяет полностью зашить контроллер одним кликом с использованием одного файла. Разобраться все равно надо, т.к. хочется слить бутлоадер и основной проект в единый файл. Кто знает структуру elf файла? Не только заголовка самого файла (это очень хорошо описано), а и заголовков программ (секций файла)?
Ответить

Вернуться в «AVR»