-
Notifications
You must be signed in to change notification settings - Fork 46
Architecture
The library aims to be compatible with the latest LTS release of Node.js (currently 6.x.x until April 2019) as well as WebUSB compatible browsers (currently Chrome only).
Support for newer JavaScript features (such as async/await) should be considered based on the target environments above. Please check the Node.js compatibility site for feature support in Node.js.
DAPjs is written using Typescript to take advantage of type checking and newer language features.
Visual Studio Code is a good environment for developing the project.
The DAPjs library is designed to have abstraction points to promote flexibility.
The transport layer abstracts the physical access to the debug interface with implementations for:
- WebUSB - allowing access from a WebUSB compatible browser or from Node.js using a shim
- HID - allowing access from Node.js to the USB HID interface using the node-hid npm package
- USB - allowing access from Node.js directly over USB using the usb npm package
The interface layer abstracts the debug interface. Currently this supports the Arm Debug Interface over CMSIS-DAP.
The processor layer abstracts the processor being debugged. Currently this supports CortexM.