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

 
 
> Эффективность кода WinAVR
777777
сообщение Apr 21 2008, 07:06
Сообщение #1


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

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



Она действительно такая никудышняя или можно повысить какими-то ключами?
Вот пример:
Код
40:           if(chng != 0)
+00000074:   8189        LDD     R24,Y+1          Load indirect with displacement
+00000075:   2388        TST     R24              Test for Zero or Minus
+00000076:   F179        BREQ    PC+0x30          Branch if equal
42:               if(chng & (1<<IN1_INC))
+00000077:   8189        LDD     R24,Y+1          Load indirect with displacement
               ...

В следующей строке компилятор уже не помнит, что переменная уже лежит в R24 и грузит ее заново. Такой тупой компиляции я никак не ожидал, может надо где-то включить оптимизацию? Да и хелпа я что-то нигде не найду sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Qwertty
сообщение Apr 21 2008, 17:11
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



GCC 3.4.6
Код
#define    F0    5
const int F0BIT    = (1<<F0);
uint16_t v;

int    main(void)
{
if(v & F0BIT) PORTD = 0; else PORTD = 0xFF;

while(1){};
}


Код
---- main.c ---------------------------------------------------------------------------------------
23:       if(v & F0BIT) PORTD = 0; else PORTD = 0xFF;
+00000032:   91800062    LDS     R24,0x0062       Load direct from data space
+00000034:   91900063    LDS     R25,0x0063       Load direct from data space
+00000036:   FF85        SBRS    R24,5            Skip if bit in register set
+00000037:   C002        RJMP    PC+0x0003        Relative jump
+00000038:   BA12        OUT     0x12,R1          Out to I/O location
+00000039:   C002        RJMP    PC+0x0003        Relative jump
+0000003A:   EF8F        SER     R24              Set Register
+0000003B:   BB82        OUT     0x12,R24         Out to I/O location
33:       while(1){};
+0000003C:   CFFF        RJMP    PC-0x0000        Relative jump

Никто ничего не вычисляет smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 777777   Эффективность кода WinAVR   Apr 21 2008, 07:06
- - Kuzmi4   2 777777 - какие ключи использовали ?? .. там в пр...   Apr 21 2008, 07:07
|- - 777777   Цитата(Kuzmi4 @ Apr 21 2008, 11:07) 2 777...   Apr 21 2008, 07:12
||- - Палыч   -O0 - Do not optimize Ключи описаны в файле gcc.p...   Apr 21 2008, 07:18
||- - Obama   Цитата(Палыч @ Apr 21 2008, 11:18) -O0 - ...   Apr 21 2008, 09:48
|- - 777777   Цитата(Kuzmi4 @ Apr 21 2008, 11:07) там в...   Apr 21 2008, 07:21
|- - MrYuran   Цитата(777777 @ Apr 21 2008, 11:21) Класс...   Apr 21 2008, 07:28
|- - Палыч   Цитата(MrYuran @ Apr 21 2008, 10:28) надо...   Apr 21 2008, 08:06
|- - 777777   Цитата(MrYuran @ Apr 21 2008, 11:28) надо...   Apr 21 2008, 08:54
|- - Палыч   Цитата(777777 @ Apr 21 2008, 11:54) Э, эт...   Apr 21 2008, 09:03
|- - mse   Цитата(Палыч @ Apr 21 2008, 13:03) И, зач...   Apr 21 2008, 09:24
- - Палыч   gcc.gnu.org/onlinedocs/gcc-4.0.2/gcc.pdf P.S. Све...   Apr 21 2008, 09:59
- - mdmitry   После инсталляции: C:\WinAVR-20071221\do...   Apr 21 2008, 14:21
|- - 777777   Я в шоке. Какой код можно сгенерировать на такую с...   Apr 21 2008, 14:43
|- - aaarrr   Цитата(777777 @ Apr 21 2008, 18:43) А все...   Apr 21 2008, 15:06
|- - 777777   Цитата(aaarrr @ Apr 21 2008, 19:06) А зач...   Apr 21 2008, 15:42
|- - singlskv   Цитата(777777 @ Apr 21 2008, 19:42) Тот ж...   Apr 21 2008, 15:46
|- - Палыч   Цитата(777777 @ Apr 21 2008, 18:42) Тот ж...   Apr 21 2008, 15:48
|- - 777777   Цитата(Палыч @ Apr 21 2008, 19:48) Что, т...   Apr 21 2008, 16:44
|- - 777777   Цитата(Qwertty @ Apr 21 2008, 21:11) GCC ...   Apr 22 2008, 04:31
|- - Qwertty   Цитата(777777 @ Apr 22 2008, 08:31) У мен...   Apr 22 2008, 07:05
|- - 777777   Цитата(Qwertty @ Apr 22 2008, 11:05) Нико...   Apr 22 2008, 07:30
|- - IgorKossak   Цитата(777777 @ Apr 22 2008, 10:30) Правд...   Apr 22 2008, 07:39
- - Aesthete Animus   Вопрос конечно совсем не в тему... Но не скажите к...   Apr 21 2008, 17:36
|- - Qwertty   Цитата(Aesthete Animus @ Apr 21 2008, 21...   Apr 21 2008, 17:50
|- - Aesthete Animus   Цитата(Qwertty @ Apr 21 2008, 21:50) Я за...   Apr 21 2008, 18:24
- - west329_   извеняюсь за оффтоп, что ето значит volatile, встр...   Apr 22 2008, 07:17


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

 


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


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