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

 
 
> 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



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

 


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


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