Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: __swap_nibbles() удален из оптимизатора
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Student2
Имею код:


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() при оптимизации?
AHTOXA
Может так:
resultFast = __swap_nibbles(resultFast);
smile.gif
Student2
Цитата(AHTOXA @ Aug 13 2009, 13:42) *
Может так:
resultFast = __swap_nibbles(resultFast);
smile.gif


Спасибо! Я дурак... конечно, надо присвоить в конце значение swap к переменной resulFast!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.