From 0c9d5d816639c2b4ebce2b234be52e6aac4275a7 Mon Sep 17 00:00:00 2001 From: bon@elektron.ikp.physik.tu-darmstadt.de Date: Mon, 6 Jan 2014 12:51:09 +0100 Subject: Add dfu bootloader update application and use absolute delay for stlink Hello, appended 3 patches - adds a dfu-bootloader appliaction - uses absolute delays when waiting for pull-up delays on the STLINK (hopefully fixes issue #30) Updating the dfu-bootloader by additional application is helpfull for the STLINK, as for flashing the bootloader by SWDb otherwise jumpers need to be soldered or external SWD is not possible. Use like: - dfu-util -s 0x08002000:leave -D dfu_upgrade.bin - dfu-util -s 0x08000000:leave -D blackmagic_dfu.bin - Push reset buttom and reconnect to enter new dfu bootloader - dfu-util -s 0x08002000:leave -D blackmagic.bin -- Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ---------- >From fae5022c304a8866f056ea66660ac7ce3809dcf8 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Sun, 20 Oct 2013 15:00:36 +0200 Subject: F1: Prepare to update dfu bootloader via DFU with additional application. --- src/platforms/native/platform.h | 2 ++ src/platforms/native/usbdfu.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/platforms/native') diff --git a/src/platforms/native/platform.h b/src/platforms/native/platform.h index 62d565b..a1a28cf 100644 --- a/src/platforms/native/platform.h +++ b/src/platforms/native/platform.h @@ -37,8 +37,10 @@ #define PLATFORM_HAS_TRACESWO #define BOARD_IDENT "Black Magic Probe" #define BOARD_IDENT_DFU "Black Magic Probe (Upgrade)" +#define BOARD_IDENT_UPD "Black Magic Probe (DFU Upgrade)" #define DFU_IDENT "Black Magic Firmware Upgrade" #define DFU_IFACE_STRING "@Internal Flash /0x08000000/8*001Ka,120*001Kg" +#define UPD_IFACE_STRING "@Internal Flash /0x08000000/8*001Kg" extern usbd_device *usbdev; #define CDCACM_GDB_ENDPOINT 1 diff --git a/src/platforms/native/usbdfu.c b/src/platforms/native/usbdfu.c index 068138e..e9094a3 100644 --- a/src/platforms/native/usbdfu.c +++ b/src/platforms/native/usbdfu.c @@ -25,6 +25,8 @@ #include "usbdfu.h" +uint32_t app_address = 0x08002000; + void dfu_detach(void) { /* USB device must detach, we just reset... */ @@ -38,7 +40,7 @@ int main(void) if(gpio_get(GPIOB, GPIO12)) dfu_jump_app_if_valid(); - dfu_protect_enable(); + dfu_protect(DFU_MODE); rcc_clock_setup_in_hse_8mhz_out_72mhz(); systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); @@ -56,7 +58,7 @@ int main(void) gpio_set_mode(GPIOB, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO2 | GPIO10); - dfu_init(&stm32f103_usb_driver); + dfu_init(&stm32f103_usb_driver, DFU_MODE); gpio_set(GPIOA, GPIO8); gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_2_MHZ, -- cgit v1.2.3