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

 
 
> Эффективность кода 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
Ответов
Kuzmi4
сообщение Apr 21 2008, 07:07
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 777777 - какие ключи использовали ??
..
там в принципе ключик -Os - генерит более менее правильный код..
Go to the top of the page
 
+Quote Post
777777
сообщение Apr 21 2008, 07:21
Сообщение #3


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

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



Цитата(Kuzmi4 @ Apr 21 2008, 11:07) *
там в принципе ключик -Os - генерит более менее правильный код..


Классно, код сразу сокранился почти в 2 раза. С таким уже можно работать. smile.gif
И еще вопрос: а есть ли там bool? Редактор подсвечивает bool, true и false, а компилер на них ругается. Может их тоже включать надо?
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 21 2008, 07:28
Сообщение #4


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

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



Цитата(777777 @ Apr 21 2008, 11:21) *
Классно, код сразу сокранился почти в 2 раза. С таким уже можно работать. smile.gif
И еще вопрос: а есть ли там bool? Редактор подсвечивает bool, true и false, а компилер на них ругается. Может их тоже включать надо?

надо подключить stdbool.h


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
777777
сообщение Apr 21 2008, 08:54
Сообщение #5


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

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



Цитата(MrYuran @ Apr 21 2008, 11:28) *
надо подключить stdbool.h


Э, это не то! там они просто дефайнятся, а я хотел поддержки со стороны компилятора, причем чтобы bool имел размер в 1 бит, как в 51 (правда, там этот тип называется bit). И если объявить такую функцию, то она будет возвращать свое значениев не в регистре, а в бите переноса.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 21 2008, 09:03
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(777777 @ Apr 21 2008, 11:54) *
Э, это не то! там они просто дефайнятся, а я хотел поддержки со стороны компилятора, причем чтобы bool имел размер в 1 бит, как в 51 (правда, там этот тип называется bit). И если объявить такую функцию, то она будет возвращать свое значениев не в регистре, а в бите переноса.
И, зачем это Вам? AVR - это не МК51, битовоадресуемой памяти нет, битовых операций тоже ( SBI, CBI, BST, BLD - невсчет).
Go to the top of the page
 
+Quote Post
mse
сообщение Apr 21 2008, 09:24
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(Палыч @ Apr 21 2008, 13:03) *
И, зачем это Вам? AVR - это не МК51, битовоадресуемой памяти нет, битовых операций тоже ( SBI, CBI, BST, BLD - невсчет).

Есть, есть...;О) Мало, не везде, но есть. GPIOR0...2
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 777777   Эффективность кода WinAVR   Apr 21 2008, 07:06
|- - 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
|- - Палыч   Цитата(MrYuran @ Apr 21 2008, 10:28) надо...   Apr 21 2008, 08:06
- - Палыч   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   GCC 3.4.6 Код#define F0 5 const int F0BIT = (1...   Apr 21 2008, 17:11
|- - 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 Текстовая версия Сейчас: 19th July 2025 - 09:18
Рейтинг@Mail.ru


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