Re: Avr studio, atmega32 - neodhalitelnı problém ?

Miroslav Šinko sinkomiro@gmail.com
Středa Duben 15 19:58:05 CEST 2009


Dňa 15.4.2009, Jan Waclawek <konfera@efton.sk> napísal(a):
> Ja to volatile k asm davam v ramci paranoie tiez, ale nedavno som sa snazil si nastudovat, co tym vlastne chceli autori povedat, a musim priznat, ze som neporozumel ani zbla... Povodne som mal pocit, ze to znamena, ze sa maju pred tym asm vsetky premenne vyflushnut z registrov do pamate, ale podla toho popisu v manuali to vyzera, ze este aj preusporiadanie prikazov pred a za asm je mozne bez ohladu na volatile... Alebo som to len jednoducho nepochopil... :-?


Som si to teraz pozrel a nieco nove som sa dozvedel, aj ked mi to tiez
nie je uplne jasne. Pisu tam, ze GCC urcite zachova iba ten kod, ktory
zapisuje do operandov uvedenych tym divokym zapisom. Ostatne vystupy
moze optimalizator vypustit. Tomuto sa da zabranit uvedenim volatile.

Doteraz som asm volatile vnimal len v nasledovnom "zakladnom" kontexte:

You can prevent an asm instruction from being deleted by writing the
keyword volatile after the asm...
The volatile keyword indicates that the instruction has important
side-effects. GCC will not delete a volatile asm if it is reachable.

To reachable je tiez zaujimave, doteraz som nevedel, ze
nedosiahnutelny asm kod moze kompilator vypustit, aj ked je volatile.

miro



Další informace o konferenci Hw-list