• This repository has been archived on 31/Mar/2024
  • Stars
    star
    119
  • Rank 297,930 (Top 6 %)
  • Language
    C
  • Created almost 4 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CMSIS-DAP using TinyUSB

Dapper Mime

This unearths the name of a weekend project that I did in 2014. Both then and now, this is a port of ARM's CMSIS-DAP code to a platform without the need for an expensive proprietary compiler and USB drivers.

Whereas the original code used ST's STM32 USB drivers, this new iteration uses TinyUSB, an open source cross-platform USB stack for embedded systems.

Variants

Most TinyUSB supported MCUs can run this code; a subdirectory under bsp needs to be added for the "BOARD" name with a DAP_config.h to control the SWD/JTAG GPIOs and a unique.h to provide unique serial number (if any) and prefix to the USB product name.

Already added BOARD variants include:

For BOARD=raspberry_pi_pico, this project results in a standards-based CMSIS-DAP alternative to the approaches suggested in Chapter 5 and Appendix A of Getting Started with Raspberry Pi Pico. This uses two RP2040 boards (see wiring loom shown in Figure 34 of Appendix A) where one RP2040 is the debugger and the other RP2040 is being debugged. The instructions in Chapter 5 apply, except no Raspberry Pi is needed.

Alternatively, a special one RP2040 โ€œRaspberry Pi Picoโ€ variant is available here.

For BOARD=stm32f072disco, the inexpensive 32F072BDISCOVERY evaluation board can be used as a CMSIS-DAP SWD debugger.

Building

Unless you have a burning desire to build this from scratch, consider just downloading pre-build images from the selection here.

If, however, you are determined to build from scratch (for example, if you are planning to port Dapper Mime to an additional MCU), after initially downloading this project's code, issue the following command to download TinyUSB and CMSIS_5 code (as well as all submodules):

git submodule update --init --recursive

Follow the TinyUSB build instructions available here, but issue the make command in the base directory of Dapper Mime.

Note that each TinyUSB board name being targeted needs a corresponding subdirectory under the Dapper Mime ./bsp/ subdirectory and a customized version of DAP_config.h for the target.

License

TinyUSB is licensed under the MIT license.

ARM's CMSIS_5 code is licensed under the Apache 2.0 license.

Source code files within this project are licensed under the MIT license unless otherwise stated.

More Repositories

1

pico-debug

virtual debug pod for RP2040 "Raspberry Pi Pico" with no added hardware
C
383
star
2

SAMDx1-USB-DFU-Bootloader

1kByte USB DFU Bootloader for SAMD11 / SAMD21
C
93
star
3

stm32ecm

USB CDC-ECM implementation for STM32F072
C
68
star
4

stm32cdcuart

DMA-accelerated multi-UART USB CDC for STM32F072 microcontroller
C
56
star
5

MazdaCANbus

database of known Mazda CAN messages
48
star
6

HIDsensor

USB HID Sensor implementation for PIC16F1454 and STM32F072
C
33
star
7

elf2dfuse

STM32 ELF to DfuSe converter
C
31
star
8

CANsniffer

CANbus sniffer using STM32F042 microcontroller
C
29
star
9

pic16f1454-bootloader

open source C bootloader for PIC16F1454 family microcontrollers
C
22
star
10

D21ecm

CDC-ECM (Linux and macOS USB network) example SAMD21 embedded web server (lwip 2.1.2 based)
C
21
star
11

DapperMiser

lightweight CMSIS-DAP implementation
C
17
star
12

D21rndis

USB RNDIS example SAMD21 embedded web server (lwip 2.1.2 based)
C
14
star
13

SAMC21demoCAN

CAN and CAN-FD demonstration code for SAMC21-XPRO
C
13
star
14

blink0

genuinely open-source firmware that emulates a Blink(1)
C
13
star
15

SaleaeSWDAnalyzer

SW-DP (Serial Wire Debug Port) Analyzer plugin for the Saleae Logic
C++
10
star
16

armbin2elf

a bin2elf converter tool for 32-bit ARMs
C
9
star
17

easyecg2gdf

tool to convert Easy ECG device data into open biosig format
C
9
star
18

pico-demos

lightweight demos for rp2040 and pico-debug
C
6
star
19

MCUmisfits

unofficial CPU packages for SEGGER Embedded Studio / Rowley Crossworks for ARM
C
6
star
20

USBfloppy

floppy drive implementation for USB microcontroller
C
5
star
21

NUC126usb

NUC126 USB device sample code (gcc/clang-friendly)
C
5
star
22

somepixel

example BiblioPixel protocol WS281x controller using PIC16F1454 microcontroller
C
4
star
23

x264stm

experimental x264 port to STM32F429
C
4
star
24

miksms

controlling external devices with Mikrotik RouterOS
C
4
star
25

NUC121usb

NUC121/NUC125 USB device sample code (gcc/clang-friendly)
C
3
star
26

MetaROUTER-apps

C
3
star
27

D21eem

USB CDC-EEM example SAMD21 embedded web server (lwip 2.1.2 based)
C
2
star
28

nuc_driver

Nuvoton driver files for TinyUSB
C
2
star
29

ldrshrink

shrink image size (and boot time) for ADSP-BF70x / ADSP-SC57x / ADSP-SC58x
C
2
star
30

gpstelemetry

command-line GPS telemetry extractor for GoPro
C
2
star