Harald Welte | ba2ad56 | 2017-11-28 19:49:41 +0100 | [diff] [blame] | 1 | /* 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 Welte | 9d90d28 | 2018-06-29 22:25:42 +0200 | [diff] [blame] | 8 | #include <osmocom/core/timer.h> |
Harald Welte | ba2ad56 | 2017-11-28 19:49:41 +0100 | [diff] [blame] | 9 | #include "usb_buf.h" |
| 10 | |
| 11 | void board_exec_dbg_cmd(int ch) |
| 12 | { |
Harald Welte | 7b250bf | 2017-11-28 22:10:49 +0100 | [diff] [blame] | 13 | 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 Welte | ba2ad56 | 2017-11-28 19:49:41 +0100 | [diff] [blame] | 27 | } |
| 28 | |
| 29 | void board_main_top(void) |
| 30 | { |
Harald Welte | 7b250bf | 2017-11-28 22:10:49 +0100 | [diff] [blame] | 31 | #ifndef APPLICATION_dfu |
| 32 | usb_buf_init(); |
| 33 | |
| 34 | /* Initialize checking for card insert/remove events */ |
| 35 | //card_present_init(); |
| 36 | #endif |
Harald Welte | ba2ad56 | 2017-11-28 19:49:41 +0100 | [diff] [blame] | 37 | } |
Harald Welte | c1e2254 | 2017-11-28 22:29:53 +0100 | [diff] [blame] | 38 | |
| 39 | int 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 Redon | 8210ec3 | 2018-06-27 16:25:35 +0200 | [diff] [blame] | 47 | /* do not print to early since the console is not initialized yet */ |
| 48 | //printf("BOOTLOADER switch pressed -> Force DFU\n\r"); |
Harald Welte | c1e2254 | 2017-11-28 22:29:53 +0100 | [diff] [blame] | 49 | return 1; |
| 50 | } else |
| 51 | return 0; |
| 52 | } |