Coder Social home page Coder Social logo

ospilos / daplink-port Goto Github PK

View Code? Open in Web Editor NEW

This project forked from google/daplink-port

0.0 0.0 0.0 17.73 MB

In order to work with Wavgat Daplink from Aliexpress

License: Apache License 2.0

Shell 0.02% Python 0.79% C 97.86% Assembly 1.31% Batchfile 0.02%

daplink-port's Introduction

Warning: Development branch

This is is a development branch:

  • It adds support for the GCC (gcc_arm) and ARMC6 (armclang) compilers, ARMC5 (armcc) will be deprecated.
  • It focuses on progen support using make and cmake.

Setup

DAPLink sources are compiled using progen (from project-generator) which can be run on Linux, MacOS and Windows.

Install the necessary tools listed below. Skip any step where a compatible tool already exists.

  • Install Python 3 . Add to PATH.
  • Install Git . Add to PATH.
  • Install a compiler:
  • Install make (tested with GNU Make). CMake can alternatively be used in conjunction with different implementations of make as well as ninja.
  • Install virtualenv in your global Python installation eg: pip install virtualenv.

Step 1. Initial setup.

Get the sources and create a virtual environment

$ git clone https://github.com/ARMmbed/DAPLink
$ cd DAPLink
$ git checkout develop
$ virtualenv venv

Activate virtual environment

Step 2. Activate the virtual environment and update requirements. This is necessary when you open a new shell. This should be done every time you pull new changes

$ venv/Scripts/activate   (For Linux)
$ venv/Scripts/activate.bat   (For Windows)
(venv) $ pip install -r requirements.txt

Build

This should be done every time you pull new changes

You can use the progen command-line tool from project-generator or the tools/progen_compile.py wrapper tool.

Step 4.1. Using progen_compile.py

(venv) $ python tools/progen_compile.py [-t <tool>] [--clean] [-v] [--parallel] [<project> [<project> ...]]
  • -t <tool>: choose the toolchain to build. The default is make_gcc_arm. Other options tested are make_gcc_arm, make_armclang, make_armcc, cmake_gcc_arm, cmake_armclang, cmake_armcc.
  • --clean: will clear existing compilation products and force recompilation of all files.
  • -v: will make compilation process more verbose (typically listing all commands with their arguments)
  • --parallel: enable parallel compilation within a project (projects are compiled sequentially).
  • <project>: target project to compile (e.g. stm32f103xb_bl, lpc11u35_if), if none is specified all (140 to 150) projects will be compiled.

Step 4.2. Using progen with make

The following command combines generation and compilation:

(venv) $ progen generate -t make_gcc_arm -p <project> -b

Alternatively one can separate those task:

(venv) $ progen generate -t make_gcc_arm -p <project>
(venv) $ make -C projectfiles/make_gcc_arm/<project> [<target>] [VERBOSE=1]

Where:

  • <project>: target project to compile (e.g. stm32f103xb_bl, lpc11u35_if).
  • <target>: build target, can be all, clean or help.
  • VERBOSE=1: display additional compilation information.

Step 4.3. Using progen with cmake

The following command combines generation and compilation:

(venv) $ progen generate -t cmake_gcc_arm -o generator=<generator> -p <project> -b
  • <generator>: use CMake generators among the following options:
    • make (Unix Makefiles)
    • mingw-make (MinGW Makefiles)
    • msys-make (MSYS Makefiles, untested)
    • ninja (Ninja)
    • nmake (NMake Makefiles, untested)
  • <project>: target project to compile (e.g. stm32f103xb_bl, lpc11u35_if).

End of warning

DAPLink

Note: The master branch requires an Arm Compiler 5 or Keil MDK license to build. See the develop branch for gcc and Arm Compiler 6 support. As soon as testing is complete, gcc will become the default compiler and AC5 support will be dropped.


Arm Mbed DAPLink is an open-source software project that enables programming and debugging application software 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. Enumerating as a USB composite device, it creates a bridge between your development computer and the CPU debug access port. DAPLink enables developers with:

  • MSC - drag-n-drop programming flash memory
  • CDC - virtual com port for log, trace and terminal emulation
  • CMSIS-DAPv2 WinUSB (driver-less vendor-specific bulk) - CMSIS compliant debug channel
  • CMSIS-DAPv1 HID - CMSIS compliant debug channel
  • WebUSB CMSIS-DAP HID - CMSIS 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!

For more detailed usability information see the users guide.

Compatibility

There are many ARM microcontroller-based Hardware Interface Circuits (HICs) that DAPLink interface firmware runs on. These can be found as standalone boards (debugger) or as part of a development kit. Some branded circuits that are known to be IO compatible are:

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. Many development kits and products ship with DAPLink interface firmware or are capable of running DAPLink firmware. The current release builds and instructions for updating DAPLink interface firmware is hosted on the DAPLink release site. Release notes and previous release builds can be found under GitHub releases.

Contribute

We welcome contributions to DAPLink in any area. Look for an interesting feature or defect under issues, or start a new thread to engage with the developers and maintainers.

Please see the contribution guidelines for detailed requirements for contributions.

To report bugs, please create an issue in the GitHub project.

Develop

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

License

DAPLink is licensed with the permissive Apache 2.0 license. See the LICENSE file for the full text of the license.

Copyright © 2006-2021 Arm Ltd

daplink-port's People

Contributors

c1728p9 avatar sg- avatar flit avatar brianesquilona avatar mbrossard avatar gerargz avatar 0xc0170 avatar mathias-arm avatar eleenest avatar mazgch avatar sukidog avatar xiongyihui avatar linlingao avatar mmahadevan108 avatar emilmont avatar gaborcsapo avatar toyowata avatar cederom avatar ehassman-g avatar gamnes avatar lindvalla avatar donmorr avatar ytsuboi avatar kgills avatar micromint avatar d-kato avatar iosabi avatar willlordarm avatar mjonescae avatar jaustin 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.