Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как отключить опцию оптимизации "Static clustering" для одной конкретной переменной?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
GetSmart
Опция уменьшает размер кода внутри одного модуля видимо из-за расположения рядом переменных и относительной их адресации через общий адрес. Но (как минимум в IAR ARM 4.20) при этом работает немного криво. Из сегмента DATA_Z переменная, особенно большая, может компилятором быть помещена в DATA_I / DATA_ID и заполнена нулями, с соответствующим увеличением прошивки. Можно ли отменить эту опцию для конкретной переменной?



Upd
Вынести инициализированные переменные в отдельный Си-файл - не предлагать. До этого я сам додумался sm.gif
jcxz
Можно явно указать сегмент для переменной:
int q @ ".X_RAM";
Далее в командном файле линкёра объявить его инициализируемым или нет, по желанию.
GetSmart
Цитата(jcxz @ Feb 24 2014, 09:05) *
Можно явно указать сегмент для переменной:
int q @ ".X_RAM";
Далее в командном файле линкёра объявить его инициализируемым или нет, по желанию.

Отключиь опцию требуется для инициализированной перемнной. Разве её можно поместить в свой/уникальный сегмент чтобы средствами компилятора она ещё и инициализиовалась какими-то ненулевыми значениями?
jcxz
Я думаю - можно. А как - изучать Вам sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.