16+
Суббота
22 сентября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
sladkoejka  (05.07.2018 17:19) , в ответ на Сравнивайте автор: Bill
Что сравнивать? В вашем примере ошибка - вы закоментили вызов __no_operation(). Без этого вызова цикл должен быть удалён. То, что с volatile не удаляет - это результат плохой оптимизации. Мозгов у компилятора не хватает чтобы отследить, что 
получить ссылку на локальную переменную никто не может. А в полноценном цикле с volatile и без я уже сравнивал. Время выполнения delay(10000): - без volatile, компиляция с адреса 0x0055, время = 4682268 циклов - без volatile, компиляция с адреса 0x0056, время = 4682268 циклов - с volatile, компиляция с адреса 0x0055, время = 10683012 циклов - с volatile, компиляция с адреса 0x0056, время = 10683012 циклов Как видим volatile сделало код менее эффективным. Был бы оптимизатор более навороченным, то разницы вообще не было-бы. В любом случае, на зависание процессора это никак не влияет. При компиляции с адреса 0x0055 он зависает в обоих случаях.
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVIII