ARM GCC problem
Marek Peca
marek@tynska.cuni.cz
Pondělí Červen 11 08:54:48 CEST 2007
Zdravim,
> Takisto mi je zahadou preco sa v primitivnej cakacej gunkcii
>
> delay(uint_32_t t){
> for(volatile uint32_t n; n < t, n++);
> }
>
> musi pouzut VOLATILE, okrem main() ju nikde nepouzivam.
to je prece jasne z definice toho, co je "volatile". Kompilator pri
optimalizaci _muze_ zjistit, ze tento cyklus nic nedela (zpozdeni
se nepoklada za zadouci vysledek, naopak), proto jej vyoptimalizuje
pryc.
Ono by bylo dobre si zjistit zaklady modernich (= optimalizujicich)
kompilatoru. To zdaleka nechodi jako za starych casu na PMD-85 (nebo
Borland/Turbo Pascal/C), kdy prekladac prelozil konstrukci jazyka do
pevne dane konstrukce ze strojoveho kodu.
ZdraviM.P.
Další informace o konferenci Hw-list