Giter Site home page Giter Site logo

hongwjung / daplink Goto Github PK

View Code? Open in Web Editor NEW

This project forked from devanlai/daplink

0.0 2.0 0.0 10.88 MB

DAPLink fork with experimental WebUSB support

Home Page: https://github.com/devanlai/DAPLink/wiki

License: Other

C 95.88% Assembly 0.81% C++ 1.19% Objective-C 0.09% Python 1.95% Batchfile 0.07% Shell 0.02%

daplink's Introduction

DAPLink

DAPLink is firmware that runs on a microcontroller that is connected according to a Hardware Interface Circuit (HIC) guideline. This provides methods to program and debug an application running on ARM processors via JTAG or SWD. The interface firmware exposes a USB composite device to the host OS with CDC, HID and MSC endpoints. These endpoints are critical when developing software for microcontrollers. Description of endpoints:

  • MSC - drag-n-drop programming flash memory
  • CDC - virtual com port for log, trace and terminal emulation
  • HID - CMSIS-DAP compliant debug channel
  • DFU - USB DFU programming flash memory

For more detailed usability information see the users guide.

WebUSB

This fork/experimental branch adds a USB DFU interface that can be used to flash targets from the browser using WebUSB. The DFU interface can be used standalone with native tools like dfu-util.

Whitelisted origins can access the DFU interface via WebUSB. Currently, only two demos can access the DFU interface.

Limitations

  • This has only been tested on a limited selection of DAPLink hardware:
    • LPC11U35 interface chips, specifically with the Seeed Studio Arch Max board.
    • STM32F103RB interface chips, specifically the embedded STLink/v2-1 on the Nucleo F103RB board
  • This has only been tested on Linux and macOS - Windows will almost certainly require fiddling with Zadig to load an appropriate WinUSB/libusb driver for the DFU interface.
  • The DFU interface cannot be accessed by Chrome on Windows - Chrome's copy of libusb is missing upstream patches to handle control transfers to composite WinUSB devices more robustly.

Compatibility

There are many ARM microcontroller-based Hardware Interface Circuits (HICs) that DAPLink interface firmware runs on. These can be found as standalone boards or as part of development kits. Known supported circuits are based on and IO compatible with:

Releases

There are many board builds (board = HIC + target combination) created from this repository. Quarterly releases will contain new features and bugfixes. Standalone bugfixes are released once reported, verified and fixed. Both quarterly and bugfix releases will result in the build number being incremented; however, standalone bugfix release builds may only be made for affected boards. Release notes and all release builds can be found under releases. Products shipping with or compatible with this firmware should have instructions on how to upgrade and the most up to date release build on the product page.

Contribute

Look for an interesting feature or defect under issues or start a new thread to engage with the developers and maintainers. You must sign the contributor agreement before any contributions can be accepted.

Develop

Information for setting up a development environment, running the tests or creating a release build can be found in the developers guide.

daplink's People

Contributors

0xc0170 avatar augustofg avatar c1728p9 avatar d-kato avatar devanlai avatar donmorr avatar elektor-labs avatar emilmont avatar flit avatar gamnes avatar jasonnxp avatar jaustin avatar kaizen8501 avatar kgills avatar lindvalla avatar mazgch avatar mfiore02 avatar micromint avatar modtronix-com avatar sg- avatar stephenpaulger avatar stevew817 avatar sukidog avatar theotherjimmy avatar toyowata avatar xiongyihui avatar ytsuboi avatar

Watchers

 avatar  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.