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

 
 
> Что это фича или баг?, avr-gcc 4.1.2 WinAvr 20070525
xelax
сообщение Dec 1 2008, 07:46
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035



Столкнулся с очень интересным эффектом. Есть два кода, с моей точки зрения, которые должны работать идентично. Но первый случай не работает, второй работает безупречно.
Код
tty ? (UDR1 = data) : (UDR0 = data);

disasm code:
+000023EA:   91E010C5    LDS     R30,0x10C5       Load direct from data space
+000023EC:   91F010C6    LDS     R31,0x10C6       Load direct from data space
+000023EE:   0FE9            ADD     R30,R25          Add without carry
+000023EF:   1DF1            ADC     R31,R1           Add with carry
+000023F0:   8180            LDD     R24,Z+0          Load indirect with

+000023F1:   938000CE    STS     0x00CE,R24       Store direct to data space
+000023F3:   918000CE    LDS     R24,0x00CE       Load direct from data space



Код
if (tty > 0)
    UDR1 = data;
  else
    UDR0 = data;

disasm come:
+000023E8:   91E010C5    LDS     R30,0x10C5       Load direct from data space
+000023EA:   91F010C6    LDS     R31,0x10C6       Load direct from data space
+000023EC:   0FE9           ADD     R30,R25          Add without carry
+000023ED:   1DF1          ADC     R31,R1           Add with carry
+000023EE:   8180           LDD     R24,Z+0          Load indirect with

+000023EF:   938000CE    STS     0x00CE,R24       Store direct to data space




При дизасме в первом случае, вижу на мой взгляд абсолютно бесполезную строчку
Код
LDS     R24,0x00CE       Load direct from data space

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

Кто-нибудь может пояснить значение этой строчки??? Рботающий и неработающий коды отличаются только ей. И чем собственно коснтрукция ? : ; для компилятора отличается от if else? 07.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- xelax   Что это фича или баг?   Dec 1 2008, 07:46
- - forever failure   В первом случае в условии проверка на ненулевое зн...   Dec 1 2008, 08:00
|- - xelax   Цитата(forever failure @ Dec 1 2008, 11:0...   Dec 1 2008, 08:21
|- - Непомнящий Евгений   Цитата(xelax @ Dec 1 2008, 11:18) 0x00CE ...   Dec 1 2008, 08:23
||- - xelax   Цитата(Непомнящий Евгений @ Dec 1 2008, 11...   Dec 1 2008, 09:12
|- - _Pasha   Цитата(xelax @ Dec 1 2008, 12:21) я не по...   Dec 1 2008, 09:03
|- - Непомнящий Евгений   Цитата(_Pasha @ Dec 1 2008, 12:03) Выполн...   Dec 1 2008, 09:15
|- - _Pasha   Цитата(Непомнящий Евгений @ Dec 1 2008, 13...   Dec 1 2008, 09:28
|- - xelax   Цитата(_Pasha @ Dec 1 2008, 12:28) Вот ав...   Dec 1 2008, 09:54
||- - gotty   Цитата(xelax @ Dec 1 2008, 11:54) А собст...   Dec 1 2008, 10:33
||- - Непомнящий Евгений   Цитата(gotty @ Dec 1 2008, 13:33) Никакая...   Dec 1 2008, 10:44
||- - xelax   Цитата(gotty @ Dec 1 2008, 13:44) Никакая...   Dec 1 2008, 10:51
||- - gotty   Цитата(Непомнящий Евгений @ Dec 1 2008, 12...   Dec 1 2008, 11:02
||- - AHTOXA   Цитата(gotty @ Dec 1 2008, 16:02) Надо ра...   Dec 1 2008, 11:51
||- - _Pasha   Цитата(AHTOXA @ Dec 1 2008, 15:51) должна...   Dec 1 2008, 12:07
||- - AHTOXA   Цитата(_Pasha @ Dec 1 2008, 17:07) А это ...   Dec 1 2008, 12:21
||- - xelax   Цитата(_Pasha @ Dec 1 2008, 15:07) ../tes...   Dec 1 2008, 12:30
||- - _Pasha   Цитата(xelax @ Dec 1 2008, 16:30) а так? ...   Dec 1 2008, 12:38
||- - _Pasha   Цитата(_Pasha @ Dec 1 2008, 16:38) Понятн...   Dec 1 2008, 15:12
||- - ReAl   Цитата(_Pasha @ Dec 1 2008, 17:12) Господ...   Dec 11 2008, 09:13
|- - Непомнящий Евгений   Цитата(_Pasha @ Dec 1 2008, 12:28) Вот ав...   Dec 1 2008, 10:30
- - Непомнящий Евгений   Цитата(xelax @ Dec 1 2008, 10:46) И чем с...   Dec 1 2008, 08:09
- - _Pasha   Цитата(xelax @ Dec 1 2008, 11:46) но кото...   Dec 1 2008, 08:10


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

 


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


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