Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Есть ли в WinAVR intrinsic-функции?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
777777
В Keil'е были функции типа ror(), rol(), nop() и т.п., то есть реализация ассемблерных команд, для которых нет поддержки в C. Нет ли чего-нибудь подобного в WinAVR? Есть же здесь функции sei() и cli()
Aleksandr Baranov
AFAIK, Есть еще wdt_reset() и wdt_disable(), wdt_enable(timeout)
aesok
Цитата(777777 @ Apr 22 2008, 17:02) *
В Keil'е были функции типа ror(), rol(), nop() и т.п., то есть реализация ассемблерных команд, для которых нет поддержки в C. Нет ли чего-нибудь подобного в WinAVR? Есть же здесь функции sei() и cli()


Пока нет. Я сейчас пробую добавить builtins (так в GCC называються intrinsic-функции) для FMUL*, SWAP, SEI, CLI и NOP инструкций. Но народ не в восторге, говорят что если надо можно использовать ассемблерные вставки. Я считаю что удобнее написать a = __builtin_avr_swap(n); чем разбираться со вставками.

Насчет инструкций сдвига я пока не думал.

Анатолий.
Aleksandr Baranov
А зачем всем разбираться? Достаточно один раз написать, например:

#ifndef _NOP
#define _NOP() __asm__ __volatile__ ("nop")
#endif

и дальше пользоваться, не разбираясь.
aesok
Цитата(Aleksandr Baranov @ Apr 22 2008, 18:42) *
А зачем всем разбираться? Достаточно один раз написать, например:

#define _NOP() __asm__ __volatile__ ("nop")


А сколько времени Вам потребуеться чтобы без ошибок написать ассемблерную вставку для инструкции FMUL?

Можете привести ваш результат?

Анатолий.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.