| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
28.07.2010, 13:36
|
|
|
Прописка
Регистрация: 05.03.2010
Сообщений: 144
Сказал спасибо: 47
Сказали Спасибо 195 раз(а) в 19 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
Ну, вот и опять я тут.
Та проблема, с которой началась эта ветка, естественно была вызвана недостатком у меня опыта. Покапался, поэксперементировал и все проблемы исчезли. Все верно работает при любом уровне оптимизации. Искренне благодарен всем откликнувшимся. Было много полезной и интересной информации, надеюсь не только для меня. Выкладываю рабочие исходники. Может быть для кого то будет полезно. Чуть позже выложу исходники приведенные в нормальный вид с актуальными и понятными комметариями.
|
|
|
|
28.07.2010, 14:22
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
Сообщение от 291066
|
|
Выкладываю рабочие исходники. Может быть для кого то будет полезно.
|
Вы бы лучше расписали, в чем были ошибки. Конкретно - было:стало. Думаю многим будет полезно.
|
|
|
|
30.07.2010, 17:33
|
|
|
Прописка
Регистрация: 05.03.2010
Сообщений: 144
Сказал спасибо: 47
Сказали Спасибо 195 раз(а) в 19 сообщении(ях)
|
Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?
По сравнению с первоначальным вариантом было изменено следующее:
- Из прерывания была полностью убрана какая либо обработка. Теперь только поднимается флаг, сигнализирующий о том, что было прерывание, а обработка вынесена в основной цикл.
- Убрано прерывание от сети. обошелся прерыванием от таймера с изменением разрядности переменных в которых хранится величина задержки. Это позволило использовать устройство при питании от источника постоянного напряжения (бортовая сеть автомобиля).
- Начал использовать "volatile" там, где это необходимо. Только в тех переменных, которые изменяют свое значение в теле прерывания.
- Обновил AVR Studio до version 4.18 build 700. Но очень сомневаюсь, что это повлияло. Хотя оболочка вроде быстрей работать стала.
Но, на самом деле понятия не имею почему раньше режим оптимизации влиял на работоспособность, а теперь не влияет.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:52.
|
|