belen 0 23 апреля, 2011 Опубликовано 23 апреля, 2011 · Жалоба Как отключить (включить) оптимизацию в WIN AVR выражением препроцессора по аналогии с #pragma opt-/+ в Code Vision? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 23 апреля, 2011 Опубликовано 23 апреля, 2011 · Жалоба Как отключить (включить) оптимизацию в WIN AVR выражением препроцессора по аналогии с #pragma opt-/+ в Code Vision?Никак. А зачем? Чаще всего такая "необходимость" возникает из-за некорректно написанной программы, когда оптимизатор выкидывает ненужные выражения. Покажите свой код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
belen 0 23 апреля, 2011 Опубликовано 23 апреля, 2011 · Жалоба Немного странно, один компилятор считает это полезным, а другой нет? Не всегда сразу удается корректно написать код. Для этого и существует отладка. А когда при отладке видно не всё из-за оптимизации, но она необходима для определенных функций, например delay(), тогда отключение её для фрагмента кода может быть очень полезным. Разве не так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smalcom 0 23 апреля, 2011 Опубликовано 23 апреля, 2011 · Жалоба оптимизация задаёца компилятору, а не препроцессору. Есть ключи -O, -g: man gcc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
msalov 0 24 апреля, 2011 Опубликовано 24 апреля, 2011 · Жалоба Лечить надо не оптимизатор, а функцию. А ответ на ваш вопрос есть в документации на gcc : http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html http://gcc.gnu.org/onlinedocs/gcc/Function...on-Pragmas.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
belen 0 25 апреля, 2011 Опубликовано 25 апреля, 2011 · Жалоба Лечить надо не оптимизатор, а функцию. А ответ на ваш вопрос есть в документации на gcc... Лечении оптимизатора и управлении им - это разные вещи. Я работаю с GCC уже не первый год и знаю какие флаги изменяют режим оптимизации, но режим оптимизации прменяется ко всему файлу(ам). Когда же я узнал, что CodeVision имеет прагму, отключающую режим внутри кода, я решил еще раз проверить хелп на GCC, но, к сожалению для себя, ничего не нашел. Вот я и решил спросить на форуме, надеясь, что ошибаюсь. На мой взгляд, отключение оптимизации на фрагменте кода - это очень полезная вещь. Всем спасибо за участие. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ek74 0 25 апреля, 2011 Опубликовано 25 апреля, 2011 · Жалоба http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html http://gcc.gnu.org/onlinedocs/gcc/Function...on-Pragmas.html Я работаю с GCC уже не первый год и знаю какие флаги изменяют режим оптимизации, но режим оптимизации прменяется ко всему файлу(ам). __attribute__ ((optimize("Os"))) optimize The optimize attribute is used to specify that a function is to be compiled with different optimization options than specified on the command line. Arguments can either be numbers or strings. Numbers are assumed to be an optimization level. Strings that begin with O are assumed to be an optimization option, while other options are assumed to be used with a -f prefix. You can also use the `#pragma GCC optimize' pragma to set the optimization options that affect more than one function. See Function Specific Option Pragmas, for details about the `#pragma GCC optimize' pragma. This can be used for instance to have frequently executed functions compiled with more aggressive optimization options that produce faster and larger code, while other functions can be called with less aggressive options. Работает с начиная с версии GCC 4.4. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
belen 0 28 апреля, 2011 Опубликовано 28 апреля, 2011 · Жалоба __attribute__ ((optimize("Os"))) Работает с начиная с версии GCC 4.4. Спасибо ek74. У меня GCC 4.3.3. Надо обновить. Замечательно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
belen 0 28 апреля, 2011 Опубликовано 28 апреля, 2011 · Жалоба Странно, но у меня нет возможности редактировать свои сообщения. Не понял, что, для этого нужны особые привилегии? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ek74 0 28 апреля, 2011 Опубликовано 28 апреля, 2011 · Жалоба Странно, но у меня нет возможности редактировать свои сообщения. Не понял, что, для этого нужны особые привилегии? Правка личных тем и сообщений Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
belen 0 28 апреля, 2011 Опубликовано 28 апреля, 2011 · Жалоба Ясссно, привилегию надо заслужить. И снова про gcc, точнее про WinAVR. У автора WinAVR, похоже, руки не доходят обновлять gcc. Надо самому. Хочу подстраховаться. Подскажите, достаточно ли будет заменить файл avr-gcc.exe копией нового gcc 4.xx в директории ...\WinAVR-20100110\bin\ ? И какую версию gcc сейчас лучше выбрать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
msalov 0 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба Подскажите, достаточно ли будет заменить файл avr-gcc.exe копией нового gcc 4.xx в директории ...\WinAVR-20100110\bin\ ?недостаточно. Лучше пересоберите toolchain целиком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
belen 0 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба ...пересоберите... Что это значит? Можно поподробнее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
msalov 0 9 мая, 2011 Опубликовано 9 мая, 2011 · Жалоба Что это значит? Можно поподробнее? Building and Installing the GNU Tool Chain How To: Set up an AVR-GCC build environment from scratch. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться