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

 
 
 
Reply to this topicStart new topic
> Структура в IAR, Компилятор глючит
Rash
сообщение Oct 25 2005, 14:52
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Всем привет. Что за ерунда IAR копирует идин и тодже регист. Обнуление структуры выглядит так:

Код
 char size = sizeof(stInqRes);
 char *ptr = (U8*)(&stInqRes );
 while (size --)
*(ptr ++) = 0;

в асме выклядит так
Код
//  208   char size = sizeof(stInqRes);
       LDI    R18, 92
//  209   char *ptr = (U8*)(&stInqRes );
       LDI    R16, LOW(stInqRes)
       LDI    R17, (stInqRes) >> 8
       MOVW    R31:R30, R17:R16
//  210   while (size --)
??Event_InqRes_1:
[B]   MOV    R16, R18
       MOV    R18, R16 [/B]
       DEC    R18
       TST    R16
       BREQ    ??Event_InqRes_2
//  211  *(ptr ++) = 0;
       LDI    R16, 0
       ST    Z, R16
       ADIW    R31:R30, 1
       RJMP    ??Event_InqRes_1
??Event_InqRes_2:

зачем туда сюда копировать?
Код
[B]   MOV    R16, R18
       MOV    R18, R16 [/B]
Go to the top of the page
 
+Quote Post
Gematogen
сообщение Oct 26 2005, 01:23
Сообщение #2





Группа: Новичок
Сообщений: 13
Регистрация: 18-10-05
Пользователь №: 9 808



Такой глупый код IAR генерит, если отключена оптимизация выходного кода или установлен Low уровень оптимизации, уже начиная с режима medium должно быть все OK.
Попробуйте!
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Oct 26 2005, 06:19
Сообщение #3


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Под глюком обычно понимается неделание того, чего надо или делание того, что вызывает порчу чего-либо.
Кому мешает "туда сюда копировать" даже если это и имеет место?
Откуда это взялось это другой вопрос, но насколько это вредно (если не считать вредом пару лишних тактов и четыре байта кода)?
Go to the top of the page
 
+Quote Post
Rash
сообщение Oct 26 2005, 06:24
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Цитата(Gematogen @ Oct 26 2005, 04:23)
Такой глупый код IAR генерит, если отключена оптимизация выходного кода или установлен Low уровень оптимизации, уже начиная с режима medium должно быть все OK.
Попробуйте!
*


Действительно с medium значительно лучше, спасибо.
Go to the top of the page
 
+Quote Post

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

 


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


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