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

 
 
 
Reply to this topicStart new topic
> __swap_nibbles() удален из оптимизатора
Student2
сообщение Aug 13 2009, 10:27
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 4-08-09
Из: Болгария / София
Пользователь №: 51 737



Имею код:


CODE
uint8_t resultFast ;
......

if (mainFlags & FLAGS_USE_HIGH_NIBBLE)
{
__swap_nibbles(resultFast); /* we need high nibble */
}

resultFast &= 0x0F; /* remove the nibble we don't need */
.....


После компиляции __swap_nibbles просто нет в коде (optimization = max speed, IAR 5.30). Чтобы вернуть функциональность нужно написать:

CODE
if (mainFlags & FLAGS_USE_HIGH_NIBBLE)
{
resultFast >>= 4; /* сейчас код больше */
}


Вопрос - как сказать компилятору не удалять __swap_nibbles() при оптимизации?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 13 2009, 10:42
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Может так:
resultFast = __swap_nibbles(resultFast);
smile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Student2
сообщение Aug 13 2009, 10:46
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 4-08-09
Из: Болгария / София
Пользователь №: 51 737



Цитата(AHTOXA @ Aug 13 2009, 13:42) *
Может так:
resultFast = __swap_nibbles(resultFast);
smile.gif


Спасибо! Я дурак... конечно, надо присвоить в конце значение swap к переменной resulFast!

Сообщение отредактировал Student2 - Aug 13 2009, 10:48
Go to the top of the page
 
+Quote Post

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

 


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


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