Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Непрочитано 14.07.2010, 22:44  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Сообщение от kison Посмотреть сообщение
Ну так листинг то дайте. Интересно же посмотреть в чем проблемы.

Возьмите не последнюю версию компилятора. Я же дал - 16/23. Это меньше 25-ти.
Я вас не совсем понимаю. Какой листинг? Я тупо смотрю на экране осцилла ширину импульса. Скриншот могу прислать

Я не вижу этих 23 тактов. Я вижу, что если сигнал не меняется, тратится 15 тактов. Если сигнал с датчика изменился, то тратится 16 тактов. Такого быть не может.

Да ещё и при отключении оптимизации код вообще не работает...
Реклама:
Godzilla82 вне форума  
Непрочитано 14.07.2010, 23:06  
rear
Вид на жительство
 
Аватар для rear
 
Регистрация: 30.12.2006
Адрес: Junktown
Сообщений: 300
Сказал спасибо: 160
Сказали Спасибо 171 раз(а) в 59 сообщении(ях)
rear на пути к лучшему
По умолчанию Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Если не трудно, выложите проект ВМлаб
__________________
Всегда стремись к недоступному
rear вне форума  
Непрочитано 15.07.2010, 00:11  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Сообщение от Godzilla82 Посмотреть сообщение
Какой листинг?
Посмотрите там, где hex файл. Нужен файл с расширением lss. Или elf файл.
Сообщение от Godzilla82 Посмотреть сообщение
Такого быть не может.
Вот чтоб это проверить и нужен листинг.
Студия есть? Вот выкладываю elf - откройте его студией, сохраните проект указав тип кристалла и запускайте симулятор.
https://kazus.run/forums/attachment....1&d=1279138246
Вложения:
Тип файла: zip test_enc.zip (2.0 Кб, 63 просмотров)
kison вне форума  
Непрочитано 15.07.2010, 00:15  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Сообщение от rear Посмотреть сообщение
Если не трудно, выложите проект ВМлаб
Пожалуйста

main-o0.hex - оптимизация 0 (не работает)
main-o2.hex - оптимизация 2 (15/16)

Нажатие кнопки K0 на панели имитирует изменение одной фазы.

Сообщение от kison Посмотреть сообщение
Студия есть?
Студия как таковая есть. Но я пока с ней не работал вообще. Давно уже программированием не занимался, а тут по работе понадобилось. Да и интересно стало. Буду потихоньку разбираться.
Вложения:
Тип файла: rar Encoder.kison.rar (6.2 Кб, 41 просмотров)

Последний раз редактировалось Godzilla82; 15.07.2010 в 00:42.
Godzilla82 вне форума  
Непрочитано 15.07.2010, 00:53  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Сообщение от Godzilla82 Посмотреть сообщение
main-o2.hex - оптимизация 2 (15/16)
Да, забавно. Переменной count вообще не стало. Глючный релиз WinAvr похоже. Возьмите проверенный WinAvr 20071221. Я поэтому и не обновляю компилятор, в старом все предсказуемо. Вы CV трехлетней давности используете же, ну и возьмите WinAvr того же года.
Вот хекс из старого WinAvr -
Вложения:
Тип файла: zip test_enc_hex.zip (410 байт, 36 просмотров)
kison вне форума  
Непрочитано 15.07.2010, 01:12  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Сообщение от kison Посмотреть сообщение
Вы CV трехлетней давности используете...
Если есть лекарство от последней версии, поделитесь, плиз. Хотя бы паролем на установщик.

С CV работать приятнее в плане предсказуемости. Пусть он в некоторых случаях делает более громоздкий код, который работает на несколько процентов медленнее, но:
1. код работает так, как планировалось
2. не тратится время на танцы с бубном вокруг жадной оптимизации, съедающей чуть ли не весь код
3. в итоге получается работоспособная программа
4. особо радует мастер начального кода

и мне не важно, что там код не соответствует каким-то стандартам, что глобальные переменные располагаются не там, где надо. мне важно то, что я получи желаемый результат (работающую программу) с минимальными затратами. а также эта программа ненамного жирнее и работает ненамного медленнее "правильных" компиляторов.

Последний раз редактировалось Godzilla82; 15.07.2010 в 01:17.
Godzilla82 вне форума  
Непрочитано 15.07.2010, 02:41  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Сообщение от Godzilla82 Посмотреть сообщение
С CV работать приятнее в плане предсказуемости.

Непредсказуемый компилятор - это что-то новое.
Как раз IAR, к примеру, предсказуем. Что вам подробно доказали.
Например в зависимости от объявления переменной он правильно её размещает. Предсказуемо.
Цитата:
Пусть он в некоторых случаях делает более громоздкий код, который работает на несколько процентов медленнее, но:
1. код работает так, как планировалось
Код везде работает как планировалось. Иначе как вообще можно работать? Не везде же 10 строк? Некоторые проекты состоят из десятков файлов и результирующий код - сотни килобайт. Лови там потом блох.
Цитата:
2. не тратится время на танцы с бубном вокруг жадной оптимизации, съедающей чуть ли не весь код
3. в итоге получается работоспособная программа
Это всё применимо к любому компилятору.
Цитата:
4. особо радует мастер начального кода
Это обсуждали. Для проффессионалов - это не нужно, для начинающих - крайне вредно.
Цитата:
и мне не важно, что там код не соответствует каким-то стандартам, что глобальные переменные располагаются не там, где надо. мне важно то, что я получи желаемый результат (работающую программу) с минимальными затратами.
Если это перенести на продукты питания, то вы написали следующее. Мне неважно, что колбаса не соответствует стандартам (например там химикатов много) и не важно, что что-то там не так заполнено, но, главное, что ей можно наестся.
Цитата:
а также эта программа ненамного жирнее и работает ненамного медленнее "правильных" компиляторов.
Вам никто не мешает пользоваться тем, чем вам нравится пользоваться. И вас никто не отговаривает от этого.
SasaVitebsk вне форума  
Непрочитано 15.07.2010, 03:11  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Сообщение от SasaVitebsk Посмотреть сообщение
Как раз IAR, к примеру, предсказуем.
Я в данном случае про WinAVR

Сообщение от SasaVitebsk Посмотреть сообщение
Код везде работает как планировалось. Иначе как вообще можно работать? Это всё применимо к любому компилятору.
Не ко всем. В WinAVR после включения оптимизации (а вот в случае с kison-ом и при отключении) нужно 1000 раз проверять, что выкинулось и что стало работать не так, как задумывалось из-за того, что компилятору вздумалось выкинуть половину кода.

Сообщение от SasaVitebsk Посмотреть сообщение
Это обсуждали. Для проффессионалов - это не нужно, для начинающих - крайне вредно.
Это сокращает время разработки. Значит полезно.

Сообщение от SasaVitebsk Посмотреть сообщение
Если это перенести на продукты питания, то вы написали следующее. Мне неважно, что колбаса не соответствует стандартам (например там химикатов много) и не важно, что что-то там не так заполнено, но, главное, что ей можно наестся.
Вот не надо всё коверкать. Есть задача - получить готовую программу, выполняющую конкретные действия в конкретные временные рамки. При работе с CVAVR время тратится в основном на алгоритм работы программы, а не на изучение багов и особенностей компилятора при различных режимах оптимизации.

Но если уж вы хотите аналогию с колбасой, то:
Есть две палки колбасы. Одна приготовлена за одно время. Другая - за другое время. И та и та колбаса соответствует все нормам, гостам и по вкусу - одинаковая. И количество химикатов в ней примерно одинаковое (в допустимых пределах).

Сообщение от SasaVitebsk Посмотреть сообщение
Вам никто не мешает пользоваться тем, чем вам нравится пользоваться. И вас никто не отговаривает от этого.
Не совсем так Одна программа платная, другая - нет
Godzilla82 вне форума  
Непрочитано 15.07.2010, 04:09  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Сообщение от Godzilla82 Посмотреть сообщение
Если есть лекарство от последней версии, поделитесь, плиз. Хотя бы паролем на установщик.
Нету. Я сторонник свободного софта. Но тут на форуме появлялось лекарство.
Ну или вот информация, на другом форуме - http://forum.giga.ua/viewtopic.php?f...436720#p436720
Сообщение от Godzilla82 Посмотреть сообщение
а также эта программа ненамного жирнее и работает ненамного медленнее "правильных" компиляторов.
Это пока программа маленькая. Стоит ей подрасти или например появится "плавучее" умножение/деление, как вместо проигрыша в единицы процентов Вы получите замедление раза в полтора. Кроме того свалка исходника в один файл удобна только на малых проектах. Как только он становится больше Вы начнете путаться. Особенно при отладке. Но впрочем уговаривать не буду - нравится CV, не планируются серьезные программы - им и пользуйтесь.

Сообщение от Godzilla82 Посмотреть сообщение
Это сокращает время разработки. Значит полезно.
Это время увеличивает. Если Вы ошибетесь где расставляя галочки, то найти эту ошибку очень сложно.
kison вне форума  
Непрочитано 15.07.2010, 11:17  
rear
Вид на жительство
 
Аватар для rear
 
Регистрация: 30.12.2006
Адрес: Junktown
Сообщений: 300
Сказал спасибо: 160
Сказали Спасибо 171 раз(а) в 59 сообщении(ях)
rear на пути к лучшему
По умолчанию Re: Может ли меняться логика откомпилированной программы при использовании разных режимов оптимизации?

Первое, что бросилось в глаза:
register volatile unsigned int count asm("r4");

не можно так делать, так как инт - для winavr - 16 битный тип.
нужно так:
register volatile unsigned char count asm("r4");

Далее.
вместо count = 0; в самом начале кода нужно написать
asm("clr r4"); Не могу сказать почему так, но иначе не работает.
Дальше по тексту прогаммы можно смело писать
count = 0;
И тогда все будет работать независимо от выбранной оптимизации, и переменная count никуда не денется.

Также я пересобрал проект, с МАКЕ файлом, автоматически сгенерированным ВМЛАБом.
результат компиляции:
При отключенной оптимизации размер кода 107 слов (см. листинг opt_enable.lss )
При оптимизации по мин. размеру: код 45 слова (см. листинг opt_size.lss )
так же можно посмотреть файлы дизасемблера opt_size.asm и opt_disable.asm
Вложения:
Тип файла: rar enc1.rar (17.9 Кб, 38 просмотров)
__________________
Всегда стремись к недоступному
rear вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 21:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.