Go to file
Stoyan Shopov 34a13723d8 Decrease the control USB pipe size on f103 blackmagic probes to 8 bytes
Rationale:
In USB device mode, the f103 chip provides 512 bytes
of memory for USB traffic. In the 'master' branch
of the blackmagic probe, the control endpoint pipe size
is set to 64 bytes, effectively consuming a quarter
(1 'in' endpoint, 1 'out' endpoint == 2 endpoints,
2 /* endpoints */ x 64 /* bytes per endpoint */ == 128 bytes
out of 512 /* bytes of precious usb packet memory */).
The USB standard, for full speed devices, does allow
a control endpoint size of 8 bytes.

I am not too aware of all the details of the USB standard,
but the USB standard seems to allow fragmented transactions
on the control USB pipe (endpoint 0), which libopencm3
apparently supports:
libopencm3/lib/usb/usb_control.c:usb_control_send_chunk()

I am using this change (from 64, to 8 bytes)
on a windows 10 machine, on an stlink hardware
('PROBE_HOST=stlink'). It works on my machine.

This change can potentially provide other USB endpoints
in the blackmagic firmware with more memory
2020-06-05 13:58:08 +02:00
driver Add udev rules 2019-01-07 13:32:58 +13:00
libopencm3@89074d6a13 libopencm3: Update to Head March 25 2020 to ease windows compilation #394 2020-03-25 11:04:01 +01:00
scripts Fixed overrun and formatting, when dumping data in swolisten. 2020-04-20 00:19:30 +02:00
src Decrease the control USB pipe size on f103 blackmagic probes to 8 bytes 2020-06-05 13:58:08 +02:00
upgrade Clarify STM32F103x8 Flashsize handling. 2019-09-01 12:11:51 +02:00
.gitignore jtag/swd: Rename defines/make variables to allow removal of weak attribute 2019-07-18 20:54:10 +02:00
.gitmodules Changed libopencm3 url to https. 2012-10-24 07:34:30 +13:00
.travis.yml libftdi: Allow to compile with mingw and cygwin and use recent libftdi1. 2019-01-07 15:31:57 +01:00
COPYING Added README and COPYING 2011-02-07 11:01:10 +13:00
HACKING Replace README and HACKING with references to the Github wiki. 2014-08-01 21:00:25 +12:00
Makefile Addition of pc-hosted variant and extensions to other targets to support it. 2019-10-08 19:16:12 +02:00
README.md traceswo decoding 2020-05-16 15:04:35 +02:00
UsingSWO swlink: Enable UART2 for SWO. 2018-10-03 15:19:33 -07:00

README.md

Black Magic Probe

Build Status Discord Donate Kickstarter

Firmware for the Black Magic Debug Probe.

The Black Magic Probe is a modern, in-application debugging tool for embedded microprocessors. It allows you see what is going on 'inside' an application running on an embedded microprocessor while it executes. It is able to control and examine the state of the target microprocessor using a JTAG or Serial Wire Debugging (SWD) port and on-chip debug logic provided by the microprocessor. The probe connects to a host computer using a standard USB interface. The user is able to control exactly what happens using the GNU source level debugging software, GDB. Serial Wire Output (SWO) allows the target to write tracing and logging to the host without using usb or serial port. Decoding SWO in the probe itself makes SWO viewing as simple as connecting to a serial port.

See online documentation at https://github.com/blacksphere/blackmagic/wiki

Binaries from the latest automated build are at http://builds.blacksphere.co.nz/blackmagic