On Mar 1, 2012, at 9:45 AM, Johannes Bauer wrote:

>> Pardon me for tuning in late but since when did main() start ending with an 
>> "rjmp .-2" infinite loop as shown at 0x8a above? Is supposed to ret to 
>> caller which then calls _exit or perhaps calls something else. But my point 
>> is that int main() is a function that is supposed to return to caller.
> 
> Because his code looks like this:
> 
> int main(void)
> {
>        DDRB |= (1 << PB0);
>        turn_on_pb();
>        for (;;) {
>        }
>        return 0;
> }
> 
> The for(;;) is the interesting part ;-)

Thanks!

Use for(;;) or while(1) all the time for infinite loops. Was confused because 
the disassembly didn't list the code which generated rjmp .-2. Was concerned 
whether for some reason main() was now getting special treatment but now 
reassured that it is not.

--
David Kelly N4HHE, dke...@hiwaay.net
============================================================
Whom computers would destroy, they must first drive mad.




_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to