Hello all. I'm looking for a relatively clean way to code a software reset for an AT90CAN128 or ATMEGA128 microcontroller using C code (or C with assemby embedded) that will compile under the avr-gcc 3.4.6 compiler chain. Essentially, I want a function softReset() that I can call from my program when appropriate that will reset and reinitialize everything, just as if a POR had occurred or the reset pin had been pulled low. I am ok with the MCUSR register containing garbage after coming out of this reset. I'm trying to avoid using the hardware watchdog and just not petting it, since I think it has to be always on or always off, and I don't want to have to "pet" it while the rest of my program is running. Ideas?
-Will