Sur une carte DUE il y a plusieurs façons de provoquer un software Reset.
Un exemple ici :
void setup() {
Serial.begin(250000);
GPBR->SYS_GPBR[0] ++;
Serial.print("GPBR[0] = "); Serial.println( GPBR->SYS_GPBR[0] );
uint32_t status = (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos;
Serial.print("\nRSTTYP = 0b"); Serial.println(status, BIN); // Should be 0b011 see page 232
}
void loop() {
delay(1000);
__DSB();
__DMB();
SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | SCB_AIRCR_SYSRESETREQ_Msk);//software reset
}