Patches for https://github.com/blackmagic-debug/blackmagic
43f7e7a3cf
USB UART seems to work fine at 115.2Kbps or 230.4Kbps, but starts to drop characters as the data rate goes higher. This commit changes the usbuart ISR to fill a software FIFO, and adds a low priority timer interrupt to run deferred processing to drain a FIFO and send USB CDCACM packets, rather than calling the usb send within the UART ISR. Tested on native platform, up to 1.5MBps. |
||
---|---|---|
driver | ||
flashstub | ||
hardware | ||
libopencm3@20bfcaeb1c | ||
scripts | ||
src | ||
upgrade | ||
.gitignore | ||
.gitmodules | ||
COPYING | ||
HACKING | ||
Makefile | ||
README |
README
======================================= The Black Magic Debug Project -- README ======================================= The Black Magic Debug Probe is gadget providing an in-application debug capability for ARM Cortex-M microcontrollers. It interfaces with the GDB, the GNU source level debugger over the USB bus, and communicates with the target microcontroller over either a JTAG or Serial Wire debug port. Currently supported microcontrollers: - ST STM32 Family - TI/LMI Stellaris Family - NXP LPC11xx Family - Atmel SAM3X Getting started =============== The Black Magic Probe is available as a built-up product form Black Sphere Technologies. Contact <sales@blacksphere.co.nz> should you wish to order one. If you would like to work on the project see the file HACKING for developer's info. When connected via USB, the Black Magic probe will enumerate as a CDC-ACM device which the OS should present as a tty device or serial port. The GDB remote debugging protocol is implemented over this virtual character stream. To connect your ARM GDB to the target device use the following commands: (gdb) target extended-remote /dev/ttyACM0 (gdb) mon jtag_scan (gdb) attach 1 The command 'mon swdp_scan' may be used to use the Serial-Wire Debug Protocol instead of JTAG to connect to the target. Once attached, all the standard GDB commands may be used to start and control the execution of the embedded application. The peripheral registers are not included in the memory map provided to GDB. I suggest you add the command "set mem inaccessible-by-default off' to your '.gdbinit'. That will allow you to access addresses outside of the memory map. It will treat anything outside of the memory map as RAM. Project layout ============== driver/ - Windows drivers for the Black Magic probe hardware. flashstub/ - Source code for flash programming stubs in target drivers. hardware/ - Schematic (gschem) and PCB layout for the Black Magic Probe hardware/contrib/ - User contributed hardware variants. libopencm3/ - Submodule for the libopencm3 library needed for stm32 platforms. scripts/ - Python scripts useful for programming devices. src/ - Firmware source code for the Black Magic debug probe. upgrade/ - Alternate firmware upgrade tool written in C.