Отговори на тема  [ 4 мнения ] 
Въпрос за ползващите gcc (avr-gcc) 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение Въпрос за ползващите gcc (avr-gcc)
Каква е разликата между

Код:
asm volatile("nop");


и

Код:
asm ("nop");


Аз пиша нещата без volatile, но ми е чудно какво точно променя той?


Нед Окт 10, 2004 9:59 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Абе за АВР незнам, ама поп принцип volatile май значеше данни(а и не само данни май), които могат да се променят отвън, асинхронно с работата на твойта програма. Например от хардуера. Ама тоя ред дето си го записал хич си нямам и идея как ще се тълкува.


Нед Окт 10, 2004 11:29 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Пон Сеп 27, 2004 9:20 am
Мнения: 61
Местоположение: София
Мнение 
asm volatile("nop");
и
asm ("nop");
в AVR-GCC са еднакви.
Volatile се слага за по-сигурно, да не реши компилатора да оптимизира кода така, че да изхвърли "nop"-a. Не се знае в бъдещи версии на AVR-GCC какво може да промени при някои от настройките на "Optimization level" и asm ("nop"); да се не генерира код, а да се изхвърли от компилатора, затова е добра практика да се пише volatile.


Пон Окт 11, 2004 9:28 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Мартин написа:
asm volatile("nop");
и
asm ("nop");
в AVR-GCC са еднакви.
Volatile се слага за по-сигурно, да не реши компилатора да оптимизира кода така, че да изхвърли "nop"-a. Не се знае в бъдещи версии на AVR-GCC какво може да промени при някои от настройките на "Optimization level" и asm ("nop"); да се не генерира код, а да се изхвърли от компилатора, затова е добра практика да се пише volatile.


Ясно, мерси! :)


Вто Окт 12, 2004 3:24 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни