Arm Mbed DAPLink
An open-source software project that enables programming and debugging application running on Arm Cortex CPUs.¶
Introduction¶
Arm Mbed DAPLink is an open-source software project that enables programming and debugging application software on running on Arm Cortex CPUs.
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!
For more information, please visit Arm Mbed DAPLink page.
Distinguishing features¶
DAPLink enables developers with:
- MSC - drag-n-drop programming flash memory
- CDC - virtual com port for log, trace and terminal emulation
- HID - CMSIS-DAP compliant debug channel
- WEBUSB HID - CMSIS-DAP compliant debug channel
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!
Block diagram¶
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.
How to update DAPLink for nRF5832-MDK?¶
You can update DAPLink interface firmware by performing the following steps:
-
While holding the board's RESET button, connect it to your computer. The device mounts in its bootloader mode. The drive name should be
CRP DISABLD
. -
Remove
firmware.bin
from this device's root directory. -
Download the latest DAPLink firmware. You can find it in the directory
nrf52832-mdk/firmware/daplink
with the namelpc11u35_nrf52832_mdk_if_crc_xxxx.bin
. -
Copy the new interface firmware to the drive:
-
Windows - Drag and drop the
.bin
file downloaded before into this directory. -
macOS - Run the following scripts:
$ sudo mount -u -w -o sync /Volumes/CRP DISABLD $ cp -X <path to interface firmware file> /Volumes/CRP DISABLD/
-
Linux - Run the following scripts:
$ cp <path to interface firmware file> <CRP DISABLD> && sync
-
-
When the file copy operation completes, unplug and replug the board into your computer normally (without holding down the RESET button). Your device now has the new firmware installed and mounts a drive named DAPLINK.
-
Check the
DETAILS.TXT
file in DAPLINK to verify theInterface Version
.
How to build DAPLink?¶
This tutorial will show you how to create a release build of DAPLink.
Set up prerequisites¶
Install the necessary tools listed below. Skip any step where a compatible tool already exists.
- Install Python 2, 2.7.9 or above. Add to PATH.
- Install Git. Add to PATH.
- Install Keil MDK-ARM, preferably version 5. Set environment variable "UV4" to the absolute path of the UV4 executable if you don't install to the default location. Note that "UV4" is what's used for both MDK versions 4 and 5.
- Install
virtualenv
in your global Python installation eg:pip install virtualenv
Get the sources and create a virtual environment¶
$ git clone https://github.com/ARMmbed/DAPLink
$ cd DAPLink
$ pip install virtualenv
$ virtualenv venv
Update tools and generate project files¶
Note
This should be done every time you pull new changes.
$ ./venv/Scripts/activate $ pip install -r requirements.txt $ progen generate -t uvision $ ./venv/Scripts/deactivate
Compile your project¶
Change to the projectfiles/uvision/<your-project>
directory, and open your project using Keil MDK-ARM. Click the build
icon to build your project. That's it.
Reference¶
Create an Issue¶
Interested in contributing to this project? Want to report a bug? Feel free and click here: