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

 
 
 
Reply to this topicStart new topic
> Есть ли в WinAVR intrinsic-функции?
777777
сообщение Apr 22 2008, 13:02
Сообщение #1


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

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



В Keil'е были функции типа ror(), rol(), nop() и т.п., то есть реализация ассемблерных команд, для которых нет поддержки в C. Нет ли чего-нибудь подобного в WinAVR? Есть же здесь функции sei() и cli()
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Apr 22 2008, 13:36
Сообщение #2


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

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



AFAIK, Есть еще wdt_reset() и wdt_disable(), wdt_enable(timeout)


--------------------
ASB
Go to the top of the page
 
+Quote Post
aesok
сообщение Apr 22 2008, 14:01
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(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); чем разбираться со вставками.

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

Анатолий.

Сообщение отредактировал aesok - Apr 22 2008, 14:10
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Apr 22 2008, 14:42
Сообщение #4


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

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



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

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

и дальше пользоваться, не разбираясь.


--------------------
ASB
Go to the top of the page
 
+Quote Post
aesok
сообщение Apr 22 2008, 17:13
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



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

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


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

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

Анатолий.
Go to the top of the page
 
+Quote Post

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

 


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


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