[elektro] C csodálkozás
zulu
zulu at gmail.hu
Tue Oct 1 21:12:21 CEST 2013
2013-10-01 20:58 keltezéssel, Móczik Gábor írta:
> A main()-re gondolsz?
> Az is csak egy sima függvény. Ott is használható a return, de véget ér a program. PC-n. Mikrokontrolleren ez általában nem normális, többnyire
> generál egy reset-et a startup kód, vagy végtelen ciklusban lefagy, ha a main() visszatérne.
Én anno avr-gcc-vel szaladtam a sűrűbe:
int main (void){
.
.
.
}
Lényegében volt egy inicializálás, és minden elindult (volna) interruptosan. Mielőtt az utolsó szál hajamat kitéptem volna
megnéztem az assembly listát. Ennek a programnak a vége végtelen ciklus, ez nem is lett volna baj. De hogy tuttira kifagyjon
minden, a gcc odabigyeszt még egy cli utasítást is:
0000291a <_exit>:
291a: f8 94 cli
0000291c <__stop_program>:
291c: ff cf rjmp .-2 ; 0x291c <__stop_program>
Ergo for(;;); kell a program végére, ha miden irq-val megy.
-zulu
More information about the Elektro
mailing list