Giter Site home page Giter Site logo

dap42's Introduction

dap42

The dap42 project is an open-source firmware and hardware design for an inexpensive, minimalist CMSIS-DAP based debug probe based on the STM32F042F6 in a TSSOP-20 package.

This project is currently in alpha - features generally do 80% of what's needed, but the last 20% is generally untested.

Current features

Firmware

Flash instructions

The default method to upload new firmware is via dfu-util. The Makefile includes the dfuse-flash target to invoke dfu-util. dfu-util automatically detaches the dap42 firmware and uploads the firmware through the on-chip bootloader.

To flash via another debugger, use make flash.

For detailed flashing instructions, see FLASHING.md

STM32F103

The dap42 firmware can experimentally also target the STM32F103 chip. The CDC UART is connected to PB11 (the SWIM pin on certain STLink/v2 knockoff designs) as an RX-only input.

Usage

OpenOCD

The dap42 firmware has been tested with gdb and OpenOCD on STM32F042 (of course), STM32F103, and LPC11C14 targets.

In general, the probe can be used with OpenOCD just by specifying the cmsis-dap interface:

openocd -f interface/cmsis-dap.cfg -f your_config.cfg -c "some inline command"

Example OpenOCD configurations can be found under the openocd/ folder.

LPCXpresso

As of LPCXpresso 8.0.0, the default probe detection rules will not auto-discover generic CMSIS-DAP probes. To use the dap42 probe with LPCXpresso, you can modify the detection rules by editing lpcxpresso/bin/Scripts/probetable.csv in your LPCXpresso installation.

Add the following line to probetable.csv:

0x1209, 0xDA42, 64, 1, 0, 0, 0, "", 0x0000, -1

USB-serial

Windows

On Windows 10, the serial port works without requiring additional configuration.

For Windows XP through Windows 7, the DAP42CDC.inf .inf file can be used to load the generic USB serial driver.

Mac OSX

On Mac OSX version 10.7 and later, the serial port should work without requiring any additional configuration.

Linux

On Linux, the serial port should be detected without requiring additional configuration. Depending on your distro settings, the modem manager may attempt to grab the serial port and use it as a modem. To prevent this, you can define a custom udev rule to ensure that the modem manager ignores the debugger.

ATTRS{idVendor}=="1209" ATTRS{idProduct}=="da42", ENV{ID_MM_DEVICE_IGNORE}="1"

Planned features

Firmware

Hardware

  • Simultaneous USB-serial bridge and SWO trace using an STM32F042K6 in an LQFP-32 package with both UARTs pinned out.
  • ESD protection
  • Level-shifting/protective tri-state buffer between the probe and target SWD port.

Acknowledgements

The dap42 project was inspired by the Dapper Mime CMSIS-DAP proof-of-concept project.

The dap42 USB VID/PID pair is 1209/DA42, allocated through the pid.codes open-source USB PID program.

Licensing

All contents of the dap42 project are licensed under terms that are compatible with the terms of the GNU Lesser General Public License version 3.

Non-libopencm3 related portions of the dap42 project are licensed under the less restrictive ISC license, except where otherwise specified in the headers of specific files.

See the LICENSE file for full details.

dap42's People

Contributors

devanlai avatar edwardcwang avatar

Watchers

Zhang Zhi Qiang avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.