Привет всем!
Имеется устройство на 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, подскажите в каком направлении копать, пожалуйста.
Заранее спасибо.