Jak vynutit sekvencni provadeni prikazu u GCC ?

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pondělí Únor 24 13:14:10 CET 2014


Pro avr jsem napsal tuto fci:

void UpdateAmp()
{

     cli();
     uint32_t amp = adc_chvals[3];
     sei();


     amp *= 20000;
     amp /= 1023;
     uint32_t ampcorrr = 45000UL + amp;

     cli();
     pwmAmplitude = (uint16_t)ampcorrr;
     sei();


}

A problem je, ze deleni 1023 se zaradi pri zapnute optimalizaci az za 
cli() coz je samozrejme velmi spatne protoze trva dost dlouho.
Pomuze vypnout optimalizaci pro tuto funkci 
(__attribute__((optimize("-O0"))); ) a pomuze i pokud obe lokalni 
promenne definuju jako volatile - to ale nevim, jestli je spolehlive.
Existuje nejaka elegantnejsi metoda?


---
Tato zpráva neobsahuje viry ani jiný škodlivý kód - avast! Antivirus je aktivní.
http://www.avast.com



Další informace o konferenci Hw-list