реклама на сайте
подробности

 
 
> Размер кода в Keil
Radiokrot
сообщение Mar 15 2009, 10:41
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 29-01-08
Пользователь №: 34 528



Есть вопрос - в Keil, указывая в параметрах проекта 'Use Cross-Module Optimization', при многократной компиляции размер кода меняется (напр. компилим проект, получаем размер Code=64984; не меняя ничего в проекте ещё раз его компилим, получаем Code=64994 (разница в 10 байт)), настораживает... Не в курсе, с чем связано, и влияет ли на работу проекта в целом? ))
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Mar 15 2009, 12:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Эта опция включает использование линкером feedback-файла. Каждая следущая компиляция при этом использует результаты предыдущей. По-идее, после второй сборки размер кода меняться не должен.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Mar 15 2009, 19:11
Сообщение #3


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-файла. Каждая следущая компиляция при этом использует результаты предыдущей. По-идее, после второй сборки размер кода меняться не должен.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 16 2009, 01:23
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
при многократной компиляции размер кода меняется

Для релиза всегда делайте clean build.
Это кстати не проблема Keil'а, это "фича" ARM'a. RVDS и SDT ведут себя также.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 16 2009, 13:16
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(defunct @ Mar 16 2009, 04:23) *
Для релиза всегда делайте clean build.

Интересно, а feedback'и clean удаляет? Если да, то совет вредный sad.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 16 2009, 16:48
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(aaarrr @ Mar 16 2009, 15:16) *
Интересно, а feedback'и clean удаляет? Если да, то совет вредный sad.gif

Совет не вредный в любом случае, разработчик (другой) который возможно будет исследовать кордамп после сбоя должен иметь возможность собрать идентичную прошивку. Clean build даст всегда идентичную сборку.

насчет feedback'ов, если с их наличием код растет, а не уменьшается, то какой в них смысл?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016