|
Размер кода в Keil |
|
|
|
Mar 15 2009, 10:41
|
Группа: Новичок
Сообщений: 1
Регистрация: 29-01-08
Пользователь №: 34 528

|
Есть вопрос - в Keil, указывая в параметрах проекта 'Use Cross-Module Optimization', при многократной компиляции размер кода меняется (напр. компилим проект, получаем размер Code=64984; не меняя ничего в проекте ещё раз его компилим, получаем Code=64994 (разница в 10 байт)), настораживает... Не в курсе, с чем связано, и влияет ли на работу проекта в целом? ))
|
|
|
|
|
 |
Ответов
|
Mar 15 2009, 19:11
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Замечал раньше такое, но вот в последнем Keil-е такой фокус как-то не удается. Однако заметил, что Keil любит при включенной опции "one ELF section per function" располагать программные модули в памяти по алфавиту Из-за этого соседние функции могут быть раскиданы хаотично по всей памяти и из-за этого появляются многочисленные вставки с указателями длинных переходов. В результате код вместо того чтобы сжаться может разрастись на пару десятков байт. Даже при отключенной этой опции но оставшейся "Use cross-module optimization" все равно хочет расположить что-то по алфавиту. Может с этим связаны колебания размеров. Хотя при перестановке секций тож должны быть колебания из-за выравниваний структур данных в ro секциях. Цитата(aaarrr @ Mar 15 2009, 14:53)  Эта опция включает использование линкером feedback-файла. Каждая следущая компиляция при этом использует результаты предыдущей. По-идее, после второй сборки размер кода меняться не должен.
|
|
|
|
|
Mar 16 2009, 17:03
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Mar 16 2009, 19:48)  Совет не вредный в любом случае, разработчик (другой) который возможно будет исследовать кордамп после сбоя должен иметь возможность собрать идентичную прошивку. Clean build даст всегда идентичную сборку. ИМХО, в этом случае нужно делать полный архив релиза, а не пытаться создать идентичную прошивку (какими-нибудь __DATE__ и __TIME__ она все равно может отличаться). Цитата(defunct @ Mar 16 2009, 19:48)  насчет feedback'ов, если с их наличием код растет, а не уменьшается, то какой в них смысл? Ну, 10 байт - это еще не растет, хотя сам факт, конечно, настораживает.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|