Forum: Mikrocontroller und Digitale Elektronik Reset ohne Debugger ATSAM4E


von Andre Ogrodowski (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich arbeite mit Atmel Studio 7.0.790 und dem ATSAM4E8C. Ich habe das 
Problem, dass sich der Controller nach ca. 18s automatisch resetet. 
Läuft das Programm im Debugger tritt der Fehler nicht auf. Es ist egal 
ob der Debugger (ATMEL ICE) physisch angschlossen ist oder nicht. Sobald 
das Progamm nicht im Debugmodus ausgeführt wird, resetet sich der 
Controller. Woran kann das liegen? Wo liegt der Unterschied in der 
Ausführung des Codes im "Debugmodus" und im "Free Running"?

Codeausschnitt:

int main (void)
{
   while (1)
   {
  SYS_Init();
  while(1);
   };
}

void SYS_Init(void)
{
   uint32_t IO_Config = 0;
   uint32_t xReturned;

   irq_initialize_vectors();
   cpu_irq_disable();

   sysclk_init();
   board_init();

   while(1 != osc_is_ready(OSC_MAINCK_XTAL));

  //sd_mmc_init();
  //TIMER_Init();
  //MOTION_init(&INTERFACE_Handler);
  //BUTTON_init();
  //IO_init();

  //AKKU_init();
  //CAN_init();
  //FEUCHTE_init();
  //POWERMESS_Init();
  //RTC_init();

  //if(0 != SD_Init())
  //{
  //   while(1);
  //}

  //udc_start();

  // Testcode -------
  while(1)
  {
    delay_ms(100);
    CAN_TOGGLE; // Belieiger Pin wird getoggelt um zu prüfen on 
Controller noch aktiv ist
    CPU_VCC_EN; // Pin muss für Selbsthaltung der Controllerspannung 
gesetzt werden
  }
  //----------------

  TimeToken = xSemaphoreCreateMutex();

  SD_Data_Queue_id   = xQueueCreate(ANZ_SD_QUEUE_ELEMENTS, 
sizeof(tMess_Data));
  SD_COM_Queue_id    = xQueueCreate(ANZ_SD_QUEUE_ELEMENTS, 
sizeof(uint8_t));

  xReturned     = xTaskCreate(SYS_Main      ,"SYS_main_Task", 
configMINIMAL_STACK_SIZE+1000 ,NULL ,1 ,&SYS_main_Task_id);
  xReturned     = xTaskCreate(SD_write_Task ,"SD_write_Task", 
configMINIMAL_STACK_SIZE+1000 ,NULL ,1 ,&SD_write_Task_id);

  cpu_irq_enable();
  vTaskStartScheduler();

}

Schaltplanausschnitt siehe Anhang

Danke für euere Hilfe

von Marco H. (damarco)


Lesenswert?

Watchdoog prüfen!  Der könnte beim Debugger deaktiviert sein was ja auch 
sinnvoll wäre.

von Stefan (Gast)


Lesenswert?

Hört sich stark nach Watchdog an. Schau mal in die funktion SYS_init, ob 
der da deaktiviert wird.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.