blob: 90bf9bc5de88471a56ccfdf8974cd28feefbfcb5 [file] [log] [blame]
Harald Welteba2ad562017-11-28 19:49:41 +01001/* SIMtrace specific application code */
2/* (C) 2017 by Harald Welte <laforge@gnumonks.org> */
3
4#include "board.h"
5#include "simtrace.h"
6#include "utils.h"
7#include "sim_switch.h"
Harald Welte9d90d282018-06-29 22:25:42 +02008#include <osmocom/core/timer.h>
Harald Welteba2ad562017-11-28 19:49:41 +01009#include "usb_buf.h"
10
11void board_exec_dbg_cmd(int ch)
12{
Harald Welte7b250bf2017-11-28 22:10:49 +010013 switch (ch) {
14 case '?':
15 printf("\t?\thelp\n\r");
16 printf("\tR\treset SAM3\n\r");
17 break;
18 case 'R':
19 printf("Asking NVIC to reset us\n\r");
20 USBD_Disconnect();
21 NVIC_SystemReset();
22 break;
23 default:
24 printf("Unknown command '%c'\n\r", ch);
25 break;
26 }
Harald Welteba2ad562017-11-28 19:49:41 +010027}
28
29void board_main_top(void)
30{
Harald Welte7b250bf2017-11-28 22:10:49 +010031#ifndef APPLICATION_dfu
32 usb_buf_init();
33
34 /* Initialize checking for card insert/remove events */
35 //card_present_init();
36#endif
Harald Welteba2ad562017-11-28 19:49:41 +010037}
Harald Weltec1e22542017-11-28 22:29:53 +010038
39int board_override_enter_dfu(void)
40{
41 const Pin bl_sw_pin = PIN_BOOTLOADER_SW;
42
43 PIO_Configure(&bl_sw_pin, 1);
44
45 /* Enter DFU bootloader in case the respective button is pressed */
46 if (PIO_Get(&bl_sw_pin) == 0) {
Kévin Redon8210ec32018-06-27 16:25:35 +020047 /* do not print to early since the console is not initialized yet */
48 //printf("BOOTLOADER switch pressed -> Force DFU\n\r");
Harald Weltec1e22542017-11-28 22:29:53 +010049 return 1;
50 } else
51 return 0;
52}