|
Эффективность кода WinAVR |
|
|
|
 |
Ответов
|
Apr 21 2008, 17:11
|
Местный
  
Группа: Свой
Сообщений: 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 Никто ничего не вычисляет
|
|
|
|
|
Apr 22 2008, 04:31
|

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

|
Цитата(Qwertty @ Apr 21 2008, 21:11)  GCC 3.4.6 У меня была 3.4.5 Цитата(777777 @ Apr 21 2008, 20:44)  ... Впрочем, я уже скачал новую версию, 20080411 (4.3.0), там это место генерируется весьма эффективно, через SBRS, но там в другом месте глюк - часть кода не транслируется вообще, завтра буду разбираться. После уменьшения кода до минимально необходимого для повторения глюка, удалось понять его причину. Дело в том, что gcc - компилятор "настоящий" (в отличие от Keil, напимер), поэтому volatile нужно писать всегда, где это надо
|
|
|
|
Сообщений в этой теме
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  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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|