I am using the ATMEL EVK1100 with AVR ONE!, FreeRTOS and lwIP stack.
I would like to reset my application when certain configuration changes happened (switches which I read in). Therefor I call the routine wdt_reset_mcu() which immediately forces the watchdog timer to bite.
So far so good but unfortunately the program doesn’t start again. Only pressing the hardware reset button on the kit helps.
Does anybody know if there are any limitations for shutting down / restarting FreeRTOS which could cause the problem?
Thanks for helping.
As far as I know there are no such limitations in FreeRTOS.
I also think that your particular problem is caused by lack of proper initialization in you application. I mean I suspect that your application is based on assumption that some parts of memory/registers/etc. have a specific value after hardware reset. Which can be not the case if you are doing "software" reset. But it is just a guess. Suggest check where exactly program stops working after "software" reset.
You could also try deinitializing all timers and interrupts before resetting so it doesn’t matter if the software reset does not reset peripherals.
The Atmel ARM7 parts have a register you can write to to force all different types of reset. Maybe the AVR32 has the same?