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

 
 
> WinAvr: это что за оптимизация?
777777
сообщение May 21 2010, 07:55
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Установку/сброс битов WinAvr всерда делал нормально:
Код
    PORTD &= ~_BV(PD6);
514:    5e 98           cbi    0x0b, 6; 11

Однако для USART-овских регистров он генерит какую-то хрень:

Код
        UCSR0B &= ~_BV(UDRIE0);
4ca:    80 91 c1 00     lds    r24, 0x00C1
4ce:    8f 7d           andi    r24, 0xDF; 223
4d0:    80 93 c1 00     sts    0x00C1, r24


А в другом месте он устроил вообще черт знает что:

Код
    UCSR0B &= ~_BV(TXCIE0);
50a:    e1 ec           ldi    r30, 0xC1; 193
50c:    f0 e0           ldi    r31, 0x00; 0
50e:    80 81           ld    r24, Z
510:    8f 7b           andi    r24, 0xBF; 191
512:    80 83           st    Z, r24


Это что, садизм в особо извращенной форме? Как его заставить делать более осмысленный код?

Сообщение отредактировал 777777 - May 21 2010, 07:57
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение May 21 2010, 07:56
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



а какие ключи оптимизации?
Если никаких, то неудивительно.
Что попросили, то и сделал.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:37
Рейтинг@Mail.ru


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