Arm Mbed DAPLink is an open-source software project that enables programming and debugging application software on running on Arm Cortex CPUs. Commonly referred to as interface firmware, DAPLink runs on a secondary MCU that is attached to the SWD or JTAG port of the application MCU. This configuration is found on nearly all development boards. It creates a bridge between your development computer and the CPU debug access port. DAPLink enables developers with drag-and-drop programming, a serial port and CMSIS-DAP based debugging. More features are planned and will show up gradually over time. The project is constantly under heavy development by Arm, its partners, numerous hardware vendors and the open-source community around the world. DAPLink has superseded the mbed CMSIS-DAP interface firmware project. You are free to use and contribute. Enjoy!
DAPLink is compatible with all known versions of Windows, Mac OSX and Linux. Once connected to a computer DAPLink will present itself as a storage device. It also has HID and CDC endpoints.
The HID endpoint creates a tunnel to the CPUs debug access port. If you develop with an IDE that support the CMSIS-DAP debug protocol then DAPLink is compatible! You’ll need to make sure the device you wish to debug is supported in that environment otherwise you can debug (but not program flash contents) by selecting the Arm CPU architecture of the microcontroller in the device running your application. We also develop pyOCD, a python based on-chip debugger and gdb-server that runs on Windows, Mac OSX and Linux.
If your computer is running Windows 10, Mac OSX or Linux and using DAPLink firmware version 0240 or later then drivers are not needed. If your computer is Windows 8 or older you will need to install the serial port driver. A board running DAPLink must be connected to your computer to install this driver.
Sure! Check out the Arm Mbed HDK and grab the reference designs. These includes schematics and board layout files. It’s recommended to copy the circuits pin for pin and to use the same component values as called out to avoid software modifications such as IO or clock configurations. This allows your design to be compatible with mainline DAPLink updates as they’re made available. If your design requires modified IO connections or different component values, open an issue and start a conversation about why this is needed otherwise you’ll be at risk of needing to maintain your own fork of the project which is not ideal.
It’s in the Arm Mbed GitHub organization. There you can make feature requests and file bugs about the interface firmware or release site.