эльфийский файл считает его маленьким, но большим! не может генерировать .bin и .hex файлы - PullRequest
2 голосов
/ 02 июля 2011

Я работаю над переносом проекта из Kail в Gcc.

Makefile http://www.copypastecode.com/73860/ .ld файл http://www.copypastecode.com/73856/

У меня есть Makefile и скрипт platform.ldи некоторые файлы .c и .h.Когда я делаю, все компилируется и ссылки, и это выглядит хорошо.

arm-none-eabi-size -B Вывод / stm32_gps_test.elf

text    data   bss      dec     hex filename
  0       0    2048    2048     800 Output/stm32_gps_test.elf

но когда я проверяю сгенерированные файлы, ясмотрите это:

ls Вывод /

7327274 2011-07-02 04:28 stm32_gps_test.elf
0 2011-07-02 04:28 stm32_gps_test.bin
34 2011-07-02 04:28 stm32_gps_test.hex

и:

tail Вывод / stm32_gps_test.hex

:0400000508000000EF
:00000001FF

Некоторая информация о файле эльфа:

arm-none-eabi-readelf -h Вывод / stm32_gps_test.elf

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x8000000
  Start of program headers:          52 (bytes into file)
  Start of section headers:          7323752 (bytes into file)
  Flags:                             0x5000002, has entry point, Version5 EABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         1
  Size of section headers:           40 (bytes)
  Number of section headers:         18
  Section header string table index: 15

Что не так?я попытался запустить objcopy для создания binfile и hexfile, но результат всегда один и тот же.

1 Ответ

0 голосов
/ 02 июля 2011

Когда вы его разбираете, что вы видите? (objdump -D) Если у вас есть, например, изображение rom с размером 0x80000000 и ram с размером 0x20000000, то файл .bin из objcopy будет иметь минимальный размер 0x60000000 байт плюс размер изображения в rom. Тем не менее, шестнадцатеричный файл intel или srec должен работать.

...