Go Down

Topic: Software Reset the 101 (Read 996 times) previous topic - next topic

DoeJoe

May 04, 2016, 07:26 pm Last Edit: May 04, 2016, 08:57 pm by DoeJoe
I have a project with my Arduino 101 sealed inside of a chassis. Is there a way to software reset the 101 in the code?

with the uno it was: asm volatile ("  jmp 0");

but the chipset on the 101 is obviously different. I can't find a solution, if one exist.


Thanks for the help.


DJ

RedHunter

You can try with this. I don't know if this will work or not because I don't have the 101, but I found this code in the source of the 101 RTOS.

Code: [Select]
void reboot(void){
  SCSS_REG_VAL(SCSS_SS_CFG) |= ARC_HALT_REQ_A;
  SCSS_REG_VAL(SCSS_RSTC) = RSTC_WARM_RESET;
}

Babamar

#2
Sep 09, 2017, 11:34 pm Last Edit: Sep 09, 2017, 11:40 pm by Babamar
Here is the function to soft reset a 101. RedHunter provided the code, I only provide the defines and tested that it works.

#define SCSS_RSTC 0x570
#define RSTC_WARM_RESET (1 << 1)
void reboot(void)
{
  SCSS_REG_VAL(SCSS_SS_CFG) |= ARC_HALT_REQ_A;
  SCSS_REG_VAL(SCSS_RSTC) = RSTC_WARM_RESET;
}




Go Up