Перейти к содержанию
    

Некорректный размер .bin

здравствуйте.

Подскажите пожалуйста с такой проблемой.

Нужен был даунгрейд тулчейна  с 10.3 на 9.2

На 10 всё собирается и работает.

При переходе на 9.2 - всё собирается, но размер с 20Кб вырастает до нескольких сотен МБ.

В бинаре просто весь хвост забит нулями.

При этом размер HEX  и ELF файла ожидаемые и не сельно отличаются в версиях тулчейна.

При вызове OBJCOPY вручную, а не из мейкфайла,  генерирую такой же бинарь в сотни МБ.

Откуда это лезет?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, VladislavS said:

Экстрасенсы требуют загрузить в хрустальный шар map-файл.

Вот я его тоже уже час  смотрю , не могу найти откуда

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 minutes ago, VladislavS said:

_user_heap_stack подозрительно.

в том и дело, что оно все выверено на 10.3

 

Что такое отличает 9 и 10 версии.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

54 минуты назад, MKdemiurg сказал:

Вот я его тоже уже час  смотрю , не могу найти откуда

В .map есть адреса каких-то объектов около 0, а есть - около 0x8018000. Очевидно - если их слепить в один .bin, то его размер должен быть не менее 130МБ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 minutes ago, jcxz said:

В .map есть адреса каких-то объектов около 0, а есть - около 0x8018000. Очевидно - если их слепить в один .bin, то его размер должен быть не менее 130МБ.

Вы про это ?

 .debug_info    0x0000000000001367      0x470 .

19 minutes ago, jcxz said:

В .map есть адреса каких-то объектов около 0, а есть - около 0x8018000. Очевидно - если их слепить в один .bin, то его размер должен быть не менее 130МБ.

оно точно так же и на версии тулчейна 10.3

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой-то отстойный формат .map... Ни типов объектов (code/data/const/...), ни их атрибутов (rw/ro/...). Трудно понять - что из этой кучи к чему относится? Что должно быть в образе прошивки, а что - только аллоцирует ОЗУ?

Может там есть какие-то ключики, чтобы получить более информативный .map? Хотя бы как у IAR?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 11/23/2023 at 4:22 PM, MKdemiurg said:

 

 

Только я один не вижу map файл ?

 

On 11/23/2023 at 6:30 PM, jcxz said:

Какой-то отстойный формат .map... Ни типов объектов (code/data/const/...), ни их атрибутов (rw/ro/...). Трудно понять - что из этой кучи к чему относится? Что должно быть в образе прошивки, а что - только аллоцирует ОЗУ?

Может там есть какие-то ключики, чтобы получить более информативный .map? Хотя бы как у IAR?

Обычный для GCC.
Где-то в середине файла должна быть карта памяти, скопированная из файла линковщика.

В ней же и атрибуты памяти.

Примерно так выглядит

Quote

Memory Configuration

Name             Origin             Length             Attributes
RAM              0x20000000         0x00020000         xrw
CCMRAM           0x10000000         0x00010000         rw
FLASH            0x08000000         0x00020000         xr
APP              0x08020000         0x00020000         xr
*default*        0x00000000         0xffffffff

Далее идут стандартные для GCC text, data, bss.

Так же могут быть секции, объявленные пользователем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минут назад, dimka76 сказал:

Где-то в середине файла должна быть карта памяти, скопированная из файла линковщика.

В ней же и атрибуты памяти.

Я говорил не про атрибуты регионов памяти и не про них. А про атрибуты выходных секций компилятора. Входных для компоновщика.

Возможно какие-то из этих секций почему-то попадают не в свои регионы памяти. Отчего образ памяти начинает охватывать несколько регионов памяти, отчего и разбухает. Раскидывание этих секций по регионам памяти компоновщиком осуществляется обычно на основе их имён и их атрибутов. Коих здесь не видно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 11/23/2023 at 7:42 PM, jcxz said:

Коих здесь не видно.

Мне и map файла не видно )))

On 11/23/2023 at 7:42 PM, jcxz said:

Я говорил не про атрибуты регионов памяти и не про них. А про атрибуты выходных секций компилятора.

Атрибуты выходных секций соответствуют атрибутам регионов памяти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я всё же _user_heap_stack подозреваю. Посмотрите в hex, там хорошо видно даже глазами кусочки из разных областей памяти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...