Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
23.06.2010, 00:43
|
|
Прописка
Регистрация: 05.03.2010
Сообщений: 144
Сказал спасибо: 47
Сказали Спасибо 195 раз(а) в 19 сообщении(ях)
|
Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
Всем доброго дня.
Столкнулся со следующей непоняткой - при изменении режимов оптимизации компилятора нарушается работоспособность программы. Если компилится без оптимизации - все работает нормально. Но только стоит включить оптимизацию - гаплык, часть функций отрабатывает неверно. Ничего кроме режима оптимизации не меняется.
Использую AVR Studio 4.18 bild 692.
Может кто подскажет где собаке порыться?
Я.
|
|
|
|
23.06.2010, 01:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
На другой ветке недавно ссылка проходила - Вам может подойти http://chipenable.ru/index.php/progr...e-keyword.html
Последний раз редактировалось OlegNZH; 23.06.2010 в 01:07.
|
|
|
Сказали "Спасибо" OlegNZH
|
|
|
23.06.2010, 01:06
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
|
|
|
Эти 3 пользователя(ей) сказали Спасибо st_1 за это сообщение:
|
|
|
23.06.2010, 01:42
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,381
Сказал спасибо: 1,962
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
В таком случае стОит поизучать листинги.
Ну или хотя бы - показать программу и указать, что собственно меняется при различных оптимизациях.
Вообще, корректно написанная программа логику свою изменить, IMHO, не может.
А глюки... Они разные бывают
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
23.06.2010, 02:05
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
Сообщение от nml
|
что собственно меняется при различных оптимизациях.
|
ИМХО нет особого смысла.
Как правило всё разваливается на первом уровне оптимизации.
А вот листинги посмотреть стоит.
Последний раз редактировалось st_1; 23.06.2010 в 02:07.
|
|
|
|
23.06.2010, 12:21
|
|
Прописка
Регистрация: 05.03.2010
Сообщений: 144
Сказал спасибо: 47
Сказали Спасибо 195 раз(а) в 19 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
Благодарю всех за советы. Теперь понятно в каком направлении копать. Расстановка volatile на тех переменных которые могут меняться в прерываниях не привела к работоспособности программы. Сегодня займусь анализом листинга. Пограмма вроде простая, но впервые за много лет вернулся к программированию, да еще и на совершенно незнакомом процессоре.
По результатам копания обязательно отпишусь.
И еще один вопрос - можно ли получить на тине2313 четыре аппаратных выхода ШИМ с таймера? У меня нет ШИМа на 0C0B (все остальные работают нормально). я подозреваю что накосячил в инициализации, но пока не могу найти где.
Я.
|
|
|
|
23.06.2010, 13:00
|
|
Гражданин KAZUS.RU
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
На ATtiny2313 получить четыре аппаратных ШИМа легко, но только от двух таймеров.
|
|
|
|
23.06.2010, 14:52
|
|
Прописка
Регистрация: 05.03.2010
Сообщений: 144
Сказал спасибо: 47
Сказали Спасибо 195 раз(а) в 19 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
Я тоже так понимаю. Три выхода работают нормально а четвертый молчит. Значит где то ишибся в инициализации. один ШИМ с этого таймера работает нормально. Буду копать.
Последний раз редактировалось 291066; 23.06.2010 в 16:59.
|
|
|
|
23.06.2010, 15:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
Сталкивался с тем, что компилятор выбрасывал "лишние" по его мнению команды, что приводило к изменению временнЫх параметров импульсов. Присоединяюсь к мнению nml о необходимости изучения листинга.
__________________
misterdi<@>i.ua
|
|
|
|
24.06.2010, 09:27
|
|
Частый гость
Регистрация: 26.08.2008
Сообщений: 23
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
Оптимизацию по скорости лучше не применять, а критичные ко времени процедуры
писать на ассемблере. Особенно прерывания.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:56.
|
|