Merge pull request #125 from bvernoux/master

Cleanup and Fix code for HydraBus
This commit is contained in:
Gareth McMullin 2016-04-18 13:01:00 -07:00
commit e010cd763d
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
SRC += cdcacm.c \
platform.c \
traceswo.c \
usbuart.c \
serialno.c \
@ -24,15 +23,9 @@ SRC += cdcacm.c \
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
@echo Creating $@
@python ../scripts/dfu-convert.py -i $< $@
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
============
```
cd blackmagic/src
cd blackmagic
make clean
make PROBE_HOST=hydrabus
```

View File

@ -3,7 +3,7 @@
*
* Copyright (C) 2015 Black Sphere Technologies Ltd.
* 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
* it under the terms of the GNU General Public License as published by
@ -25,18 +25,15 @@
#ifndef __PLATFORM_H
#define __PLATFORM_H
#include "gdb_packet.h"
#include "gpio.h"
#include "morse.h"
#include "timing.h"
#include "version.h"
#include <setjmp.h>
#define INLINE_GPIO
#define CDCACM_PACKET_SIZE 64
#define PLATFORM_HAS_TRACESWO
#define BOARD_IDENT "Black Magic Probe (HydraBus), (Firmware 1.5" VERSION_SUFFIX ", build " BUILDDATE ")"
#define BOARD_IDENT_DFU "Black Magic (Upgrade) for 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 " FIRMWARE_VERSION ")"
#define DFU_IDENT "Black Magic Firmware Upgrade (HydraBus)"
#define DFU_IFACE_STRING "@Internal Flash /0x08000000/1*016Ka,3*016Kg,1*064Kg,7*128Kg"
@ -59,26 +56,25 @@
/* Hardware definitions... */
#define JTAG_PORT GPIOC
#define TDI_PORT JTAG_PORT
#define TMS_PORT JTAG_PORT
#define TCK_PORT JTAG_PORT
#define TDO_PORT JTAG_PORT
#define TDI_PORT JTAG_PORT
#define TDI_PIN GPIO3
#define TMS_PIN GPIO0
#define TCK_PIN GPIO1
#define TDO_PIN GPIO2
#define TDI_PIN GPIO3
#define SWDIO_PORT JTAG_PORT
#define SWCLK_PORT JTAG_PORT
#define SWDIO_PIN TMS_PIN
#define SWCLK_PIN TCK_PIN
#define SRST_PORT GPIOC
#define SRST_PIN GPIO4
#define TRST_PORT GPIOC
#define TRST_PIN GPIO5
#define SRST_PORT GPIOC
#define SRST_PIN GPIO4
#define LED_PORT GPIOA
#define LED_PORT_UART GPIOA
@ -141,22 +137,17 @@
#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_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 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)
{
return 0;
@ -166,6 +157,7 @@ static inline int platform_hwversion(void)
#define sscanf siscanf
#define sprintf siprintf
#define vasprintf vasiprintf
#define snprintf sniprintf
#endif

View File

@ -18,16 +18,14 @@
* 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/stm32/rcc.h>
#include <libopencm3/stm32/gpio.h>
#include <libopencm3/cm3/scb.h>
#include "usbdfu.h"
extern void dfu_protect_enable(void);
void dfu_detach(void)
{
/* USB device must detach, we just reset... */
@ -65,7 +63,7 @@ int main(void)
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE,
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();
}