Skip to content
Snippets Groups Projects
Verified Commit 339bc388 authored by rahix's avatar rahix
Browse files

feat(epicardium): Reset board when pressing power button


Signed-off-by: default avatarRahix <rahix@rahix.de>
parent 4c9dfee7
Branches
No related tags found
No related merge requests found
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "max32665.h"
#include "uart.h" #include "uart.h"
#include "cdcacm.h" #include "cdcacm.h"
#include "card10.h" #include "card10.h"
#include "pmic.h"
#include "leds.h" #include "leds.h"
#include "api/dispatcher.h" #include "api/dispatcher.h"
#include "serial.h" #include "serial.h"
...@@ -35,14 +37,23 @@ void vApiDispatcher(void*pvParameters) ...@@ -35,14 +37,23 @@ void vApiDispatcher(void*pvParameters)
} }
} }
static void pmic_button(bool falling)
{
if (falling) {
MXC_GCR->rstr0 = MXC_F_GCR_RSTR0_SYSTEM;
}
}
int main(void) int main(void)
{ {
card10_init(); card10_init();
card10_diag(); card10_diag();
pmic_set_button_callback(pmic_button);
cdcacm_init(); cdcacm_init();
printf("Initializing tasks ...\n"); printf("=> Initializing tasks ...\n");
/* Serial */ /* Serial */
if (xTaskCreate( if (xTaskCreate(
...@@ -69,12 +80,13 @@ int main(void) ...@@ -69,12 +80,13 @@ int main(void)
abort(); abort();
} }
printf("Initializing dispatcher ...\n"); printf("=> Initializing dispatcher ...\n");
api_dispatcher_init(); api_dispatcher_init();
printf("Staring core1 payload ...\n"); printf("=> Starting core1 payload ...\n");
core1_start(); core1_start();
printf("=> Starting FreeRTOS ...\n");
vTaskStartScheduler(); vTaskStartScheduler();
printf("ERROR: FreeRTOS did not start due to unknown error!\n"); printf("ERROR: FreeRTOS did not start due to unknown error!\n");
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment