> And once again, if I leave this routine in the .text section, the
> unexpected resets suddenly disappear.

That would exactly be the behaviour if you have an interrupt enabled as Joerg 
mentioned. The ATmega644 does not support moving the whole interrupt vector 
table into the bootloader section. So any interrupt (other than reset) would be 
serviced by whatever you have in the application section. If you just 
downloaded your bootloader that would be 0xFF. From experience I can tell you 
that is a noop (logically) and the IP gets incremented as normal. So it runs 
through your whole code section until it reaches something different than 0xFF 
which is the bootloader reset vector (typically a rjmp). Looking from the 
outside at the behaviour it would seem as if your processor gets reset, 
although no reset source will be set (as you pointed out earlier).

Your best bet is going through your code and check if you enable any 
interrupts, or if any of your library functions do so.

Markus





      
____________________________________________________________________________________
Fussy? Opinionated? Impossible to please? Perfect.  Join Yahoo!'s user panel 
and lay it on us. http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7 



_______________________________________________
AVR-libc-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-libc-dev

Reply via email to