Cleanup and Fix code for HydraBus

This commit is contained in:
bvernoux 2016-04-18 00:48:06 +02:00
parent 2685906fc8
commit 2e3778e772
4 changed files with 22 additions and 38 deletions

View File

@ -16,7 +16,6 @@ LDFLAGS = -lopencm3_stm32f4 -Wl,--defsym,_stack=0x20006000 \
VPATH += platforms/stm32 VPATH += platforms/stm32
SRC += cdcacm.c \ SRC += cdcacm.c \
platform.c \
traceswo.c \ traceswo.c \
usbuart.c \ usbuart.c \
serialno.c \ serialno.c \
@ -24,15 +23,9 @@ SRC += cdcacm.c \
all: blackmagic.bin blackmagic.hex blackmagic.dfu all: blackmagic.bin blackmagic.hex blackmagic.dfu
blackmagic.bin: blackmagic
$(OBJCOPY) -O binary $^ $@
blackmagic.hex: blackmagic.bin
$(OBJCOPY) -O ihex blackmagic $@
blackmagic.dfu: blackmagic.hex blackmagic.dfu: blackmagic.hex
@echo Creating $@ @echo Creating $@
@python ../scripts/dfu-convert.py -i $< $@ @python ../scripts/dfu-convert.py -i $< $@
host_clean: host_clean:
-rm blackmagic.bin blackmagic.hex blackmagic.dfu -$(Q)$(RM) blackmagic.bin blackmagic.hex blackmagic.dfu

View File

@ -19,7 +19,8 @@ Connections
How to Build How to Build
============ ============
``` ```
cd blackmagic/src cd blackmagic
make clean
make PROBE_HOST=hydrabus make PROBE_HOST=hydrabus
``` ```

View File

@ -3,7 +3,7 @@
* *
* Copyright (C) 2015 Black Sphere Technologies Ltd. * Copyright (C) 2015 Black Sphere Technologies Ltd.
* Written by Gareth McMullin <gareth@blacksphere.co.nz> * Written by Gareth McMullin <gareth@blacksphere.co.nz>
* Copyright (C) 2015 Benjamin Vernoux <bvernoux@gmail.com> * Copyright (C) 2016 Benjamin Vernoux <bvernoux@gmail.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -25,18 +25,15 @@
#ifndef __PLATFORM_H #ifndef __PLATFORM_H
#define __PLATFORM_H #define __PLATFORM_H
#include "gdb_packet.h"
#include "gpio.h" #include "gpio.h"
#include "morse.h"
#include "timing.h" #include "timing.h"
#include "version.h"
#include <setjmp.h> #include <setjmp.h>
#define INLINE_GPIO
#define CDCACM_PACKET_SIZE 64
#define PLATFORM_HAS_TRACESWO #define PLATFORM_HAS_TRACESWO
#define BOARD_IDENT "Black Magic Probe (HydraBus), (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")" #define BOARD_IDENT "Black Magic Probe (HydraBus), (Firmware " FIRMWARE_VERSION ")"
#define BOARD_IDENT_DFU "Black Magic (Upgrade) for HydraBus, (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")" #define BOARD_IDENT_DFU "Black Magic (Upgrade) for HydraBus, (Firmware " FIRMWARE_VERSION ")"
#define DFU_IDENT "Black Magic Firmware Upgrade (HydraBus)" #define DFU_IDENT "Black Magic Firmware Upgrade (HydraBus)"
#define DFU_IFACE_STRING "@Internal Flash /0x08000000/1*016Ka,3*016Kg,1*064Kg,7*128Kg" #define DFU_IFACE_STRING "@Internal Flash /0x08000000/1*016Ka,3*016Kg,1*064Kg,7*128Kg"
@ -59,26 +56,25 @@
/* Hardware definitions... */ /* Hardware definitions... */
#define JTAG_PORT GPIOC #define JTAG_PORT GPIOC
#define TDI_PORT JTAG_PORT
#define TMS_PORT JTAG_PORT #define TMS_PORT JTAG_PORT
#define TCK_PORT JTAG_PORT #define TCK_PORT JTAG_PORT
#define TDO_PORT JTAG_PORT #define TDO_PORT JTAG_PORT
#define TDI_PORT JTAG_PORT
#define TDI_PIN GPIO3
#define TMS_PIN GPIO0 #define TMS_PIN GPIO0
#define TCK_PIN GPIO1 #define TCK_PIN GPIO1
#define TDO_PIN GPIO2 #define TDO_PIN GPIO2
#define TDI_PIN GPIO3
#define SWDIO_PORT JTAG_PORT #define SWDIO_PORT JTAG_PORT
#define SWCLK_PORT JTAG_PORT #define SWCLK_PORT JTAG_PORT
#define SWDIO_PIN TMS_PIN #define SWDIO_PIN TMS_PIN
#define SWCLK_PIN TCK_PIN #define SWCLK_PIN TCK_PIN
#define SRST_PORT GPIOC
#define SRST_PIN GPIO4
#define TRST_PORT GPIOC #define TRST_PORT GPIOC
#define TRST_PIN GPIO5 #define TRST_PIN GPIO5
#define SRST_PORT GPIOC
#define SRST_PIN GPIO4
#define LED_PORT GPIOA #define LED_PORT GPIOA
#define LED_PORT_UART GPIOA #define LED_PORT_UART GPIOA
@ -141,22 +137,17 @@
#define DEBUG(...) #define DEBUG(...)
extern jmp_buf fatal_error_jmpbuf; #define gpio_set_val(port, pin, val) do { \
if(val) \
gpio_set((port), (pin)); \
else \
gpio_clear((port), (pin)); \
} while(0)
#define SET_RUN_STATE(state) {running_status = (state);} #define SET_RUN_STATE(state) {running_status = (state);}
#define SET_IDLE_STATE(state) {gpio_set_val(LED_PORT, LED_IDLE_RUN, state);} #define SET_IDLE_STATE(state) {gpio_set_val(LED_PORT, LED_IDLE_RUN, state);}
#define SET_ERROR_STATE(state) {gpio_set_val(LED_PORT, LED_ERROR, state);} #define SET_ERROR_STATE(state) {gpio_set_val(LED_PORT, LED_ERROR, state);}
#define PLATFORM_SET_FATAL_ERROR_RECOVERY() {setjmp(fatal_error_jmpbuf);}
#define PLATFORM_FATAL_ERROR(error) { \
if(running_status) gdb_putpacketz("X1D"); \
else gdb_putpacketz("EFF"); \
running_status = 0; \
target_list_free(); \
morse("TARGET LOST.", 1); \
longjmp(fatal_error_jmpbuf, (error)); \
}
static inline int platform_hwversion(void) static inline int platform_hwversion(void)
{ {
return 0; return 0;
@ -166,6 +157,7 @@ static inline int platform_hwversion(void)
#define sscanf siscanf #define sscanf siscanf
#define sprintf siprintf #define sprintf siprintf
#define vasprintf vasiprintf #define vasprintf vasiprintf
#define snprintf sniprintf
#endif #endif

View File

@ -18,16 +18,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <string.h> #include "general.h"
#include "usbdfu.h"
#include <libopencm3/cm3/systick.h> #include <libopencm3/cm3/systick.h>
#include <libopencm3/stm32/rcc.h> #include <libopencm3/stm32/rcc.h>
#include <libopencm3/stm32/gpio.h> #include <libopencm3/stm32/gpio.h>
#include <libopencm3/cm3/scb.h> #include <libopencm3/cm3/scb.h>
#include "usbdfu.h"
extern void dfu_protect_enable(void);
void dfu_detach(void) void dfu_detach(void)
{ {
/* USB device must detach, we just reset... */ /* USB device must detach, we just reset... */
@ -65,7 +63,7 @@ int main(void)
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE,
GPIO9 | GPIO10 | GPIO11 | GPIO12); GPIO9 | GPIO10 | GPIO11 | GPIO12);
gpio_set_af(GPIOA, GPIO_AF10, GPIO9 | GPIO10| GPIO11 | GPIO12); gpio_set_af(GPIOA, GPIO_AF10, GPIO9 | GPIO10| GPIO11 | GPIO12);
dfu_init(&stm32f107_usb_driver, DFU_MODE); dfu_init(&stm32f107_usb_driver);
dfu_main(); dfu_main();
} }