реклама на сайте
подробности

 
 
> Оптимизатор кода в WinAVR, сплошное непонятство
Panych
сообщение Aug 21 2006, 13:31
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35



Никак не могу понять, почему это требуется?: код без оптимизации работает, с оптимизацией по параметру "s" - приходится вставлять строки 170, 211 и 300.
Как они влияют на работу?
Смотрел листинг ассемблера - вроде ничего не меняется с их использованием, но ведь начинает работать!

Программа - начального уровня, конечно, но в самом начале хотелось бы уяснить, как оптимально писать...


--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Aug 21 2006, 13:48
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Эта.. А что у Вас не работает-то?

Цитата
Как они влияют на работу?

На первый взгляд их влияние - задержка на ~20-30 тактов между записью в порт и считыванием..

вероятно там будет достаточно одного _NOP в строках 211 и 300.
В 170 задержка скорее всего не нужна.

Сообщение отредактировал defunct - Aug 21 2006, 13:51
Go to the top of the page
 
+Quote Post
Panych
сообщение Aug 21 2006, 14:04
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35



Цитата(defunct @ Aug 21 2006, 17:48) *
Эта.. А что у Вас не работает-то?

индикатор должен писать код кнопки... так вот без строк 170 и 211 кнопка не считывается ( smile.gif да, смешно, но разными подстановками в программе именно это и вырисовывается smile.gif ), а без 300-й - не выводится на экран, хотя и считывается, причем вместо 300 можно подставить вызов любой другой функции, а вот подстановка NOP ничего не дает smile.gif

еще один прикол - при перестановке строк 169 и 170 порт так же не считывается, хотя и при этом ассемблерный код меняется адекватно - просто переставляются команды...

да, стоит WinAVR-20060421

Сообщение отредактировал Panych - Aug 21 2006, 14:05


--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016