Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Въпрос за ползващите gcc (avr-gcc)
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=46
Страница 1 от 1

Автор:  Реконструктор [ Нед Окт 10, 2004 9:59 am ]
Заглавие:  Въпрос за ползващите gcc (avr-gcc)

Каква е разликата между

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


и

Код:
asm ("nop");


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

Автор:  Цецо [ Нед Окт 10, 2004 11:29 am ]
Заглавие: 

Абе за АВР незнам, ама поп принцип volatile май значеше данни(а и не само данни май), които могат да се променят отвън, асинхронно с работата на твойта програма. Например от хардуера. Ама тоя ред дето си го записал хич си нямам и идея как ще се тълкува.

Автор:  Мартин [ Пон Окт 11, 2004 9:28 am ]
Заглавие: 

asm volatile("nop");
и
asm ("nop");
в AVR-GCC са еднакви.
Volatile се слага за по-сигурно, да не реши компилатора да оптимизира кода така, че да изхвърли "nop"-a. Не се знае в бъдещи версии на AVR-GCC какво може да промени при някои от настройките на "Optimization level" и asm ("nop"); да се не генерира код, а да се изхвърли от компилатора, затова е добра практика да се пише volatile.

Автор:  Реконструктор [ Вто Окт 12, 2004 3:24 pm ]
Заглавие: 

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


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

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/