You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All development and pull requests should now happen on [`develop`](https://github.com/ARMmbed/DAPLink/tree/develop) branch where we are preparing the next version.
6
-
7
-
**Note:** The `main` branch requires an Arm Compiler 5 or Keil MDK license to build. See the
8
-
[`develop`](https://github.com/ARMmbed/DAPLink/tree/develop) branch for gcc and Arm
9
-
Compiler 6 support. As soon as testing is complete, gcc will become the default compiler and AC5 support will be
@@ -25,12 +19,18 @@ For more detailed usability information [see the users guide.](docs/USERS-GUIDE.
25
19
26
20
## Compatibility
27
21
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:
28
-
*[NXP OpenSDA based on K20, K22 and KL26](http://www.nxp.com/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA)
22
+
23
+
*[Maxim Integrated MAX32625PICO based on MAX32625](https://www.maximintegrated.com/en/products/microcontrollers/MAX32625PICO.html)
24
+
* Nuvoton Nu-Link2-Me based on M48SSIDAE
29
25
*[NXP LPC-Link2 based on LPC11U35 or LPC4322](https://www.nxp.com/support/developer-resources/hardware-development-tools/lpcxpresso-boards:LPCXPRESSO-BOARDS)
26
+
*[NXP MCU-LINK on LPC55xx](https://www.nxp.com/design/microcontrollers-developer-resources/mcu-link-debug-probe:MCU-LINK)
27
+
*[NXP OpenSDA based on K20, K22, KL26Z and KL27Z](http://www.nxp.com/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA)
30
28
*[Segger J-Link OB based on Atmel SAM3U](https://www.segger.com/products/debug-probes/j-link/models/j-link-ob/)
29
+
*[STMicroelectronics ST-LINK/V2 (on NUCLEO boards) based on STM32F103CB](https://www.st.com/en/evaluation-tools/stm32-nucleo-boards.html)
30
+
31
31
32
32
## Releases
33
-
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.](https://armmbed.github.io/DAPLink/)** Release notes and previous release builds can be found under GitHub releases.
33
+
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.](https://daplink.io/)** Release notes and previous release builds can be found under GitHub releases.
Copy file name to clipboardExpand all lines: docs/DEVELOPERS-GUIDE.md
+66-88Lines changed: 66 additions & 88 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,19 +1,20 @@
1
1
# DAPLink Developers Guide
2
2
3
3
## Setup
4
-
DAPLink sources can be compiled using Keil MDK-ARM or mbed cli tool with arm compiler, which could be run both on Linux and Windows. See [here](AUTOMATED_TESTS.md) for test instructions on both OS and Mac.
4
+
5
+
DAPLink sources are compiled using `progen` (from [project-generator](https://github.com/project-generator/project_generator)) which can be run on Linux, MacOS and Windows.
5
6
6
7
Install the necessary tools listed below. Skip any step where a compatible tool already exists.
7
8
8
-
* Install [Python 2, 2.7.11 or above](https://www.python.org/downloads/) . Add to PATH.
9
+
* Install [Python 3](https://www.python.org/downloads/) . Add to PATH.
9
10
* Install [Git](https://git-scm.com/downloads) . Add to PATH.
10
-
* Install [Keil MDK-ARM](https://www.keil.com/download/product/), preferably version 5. Set environment variable "UV4" to
11
-
the absolute path of the UV4 executable if you don't install to the default location. Note that "UV4" is what's used for
12
-
both MDK versions 4 and 5. This step can be skipped if you plan to use mbed cli, but you still need Arm Compiler 5, and
13
-
MDK is required to debug.
11
+
* Install a compiler:
12
+
*[GNU Arm Embedded Toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads) . This compiler will be identified as `gcc_arm`.
13
+
*[Arm Compiler 6](https://developer.arm.com/tools-and-software/embedded/arm-compiler) . This compiler will be identified as `armclang`. Only supported on Linux and Windows.
14
+
*[Keil MDK](https://developer.arm.com/tools-and-software/embedded/keil-mdk) or [Arm Compiler 5](https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/legacy-compilers#arm-compiler-5). This compiler will be identified as `armcc`. Only supported on Linux and Windows.
15
+
* Install `make` (tested with [GNU Make](https://www.gnu.org/software/make)). [CMake](https://cmake.org) can alternatively be used in conjunction with different implementations of `make` as well as [ninja](https://ninja-build.org).
14
16
* Install virtualenv in your global Python installation eg: `pip install virtualenv`.
15
17
16
-
17
18
**Step 1.** Initial setup.
18
19
19
20
Get the sources and create a virtual environment
@@ -25,101 +26,83 @@ $ pip install virtualenv
25
26
$ virtualenv venv
26
27
```
27
28
28
-
**Step 2.** One-time mbed-cli setup.
29
-
30
-
This step is only required once if you are planning to use the mbed-cli build method.
31
-
32
-
First run step 3 below to activate the virtual environment. Then execute these commands.
**Step 3.** 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**
30
+
**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**
42
31
43
32
```
44
33
$ venv/Scripts/activate (For Linux)
45
34
$ venv/Scripts/activate.bat (For Windows)
46
-
$ pip install -r requirements.txt
35
+
(venv) $ pip install -r requirements.txt
47
36
```
48
37
49
-
50
38
## Build
51
39
**This should be done every time you pull new changes**
52
40
53
-
There are two ways to build DAPLink. You can generate Keil MDK project files and build within MDK. MDK is also used to debug DAPLink running on the interface chip. Or, you can use the `mbedcli_compile.py`script to build projects from the command line without requiring MDK.
41
+
There are two ways to build DAPLink. You can use the `progen` command-line tool from project-generator or the `tools/progen_compile.py`wrapper tool.
54
42
43
+
**Step 3.1.** Using `progen_compile.py`
55
44
56
-
**Step 4.1.** For MDK progen compilation.
57
-
58
-
This command generates MDK project files under the `projectfiles/uvision` directory.
*`-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`.
50
+
*`--clean`: will clear existing compilation products and force recompilation of all files.
51
+
*`-v`: will make compilation process more verbose (typically listing all commands with their arguments)
52
+
*`--parallel`: enable parallel compilation within a project (projects are compiled sequentially).
53
+
*`<project>`: target project to compile (e.g. `stm32f103xb_bl`, `lpc11u35_if`), if none is specified all (140 to 150) projects will be compiled.
71
54
55
+
**Step 3.2.** Using `progen` with `make`
72
56
73
-
**Step 4.2.** For mbed-cli project compilation
57
+
The following command combines generation and compilation:
We would love to have your changes! Pull requests should be made once a changeset is [rebased onto Master](https://www.atlassian.com/git/tutorials/merging-vs-rebasing/workflow-walkthrough). See the [contributing guide](../CONTRIBUTING.md) for detailed requirements and guidelines for contributions.
73
+
**Step 3.3.** Using `progen` with `cmake`
86
74
87
-
## Mbed-cli compile environment
75
+
The following command combines generation and compilation:
88
76
89
-
### Features
90
-
- Support both Python 2.x and 3.x versions.
91
-
- Can compile a list of projects or the all of the projects.
92
-
- Can generate the release directory with one command.
*`custom_profile.json` lists toolchain profile or compile flags parsed from the yaml files
121
-
*`custom_targets.json` contains platform information for specific hics.
122
-
*`.mbedignore` filters all files not needed for the project.
104
+
## Contribute
105
+
We would love to have your changes! Pull requests should be made once a changeset is [rebased onto main](https://www.atlassian.com/git/tutorials/merging-vs-rebasing/workflow-walkthrough). See the [contributing guide](../CONTRIBUTING.md) for detailed requirements and guidelines for contributions.
123
106
124
107
## Port
125
108
There are three defined ways in which DAPLink can be extended. These are adding target support, adding board support and adding HIC support. Details on porting each of these can be found below.
@@ -128,15 +111,24 @@ There are three defined ways in which DAPLink can be extended. These are adding
128
111
*[Adding a new board](PORT_BOARD.md)
129
112
*[Adding a new HIC](PORT_HIC.md)
130
113
131
-
132
114
## Test
133
115
DAPLink has an extensive set of automated tests written in Python. They are used for regression testing, but you can use them to validate your DAPLink port. Details are [here](AUTOMATED_TESTS.md)
134
116
135
117
An option to search for the daplink firmware build in uvision and mbedcli build folders.
* All release deliverables will be created and stored in `firmware_<version>` (where `<version>` is the DAPLink version). Save this wherever your builds are stored.
131
+
140
132
### Release using uvision
141
133
142
134
DAPLink contains scripts to automate most of the steps of building a release. In addition to building the release, these scripts also save relevant build information such as git SHA and python tool versions so the same build can be reproduced. The recommended steps for creating a release are below.
@@ -150,20 +142,6 @@ Note: A previous build can be reproduced by using the ``build_requirements.txt``
150
142
To do this add the additional argument ``build_requirements.txt`` when calling ``build_release_uvision.bat`` in step 2.
151
143
This will install and build with the exact version of the python packages used to create that build.
152
144
153
-
### Release using mbedcli
154
-
155
-
If the project list is not specify, all interface and booloader projects will be compiled. If `--release_version` is given, a folder (`firmware` on default or specified by `--release_folder`, to be concatenated with the version number), will be generated with the bin, update.yml and zip file containing the bins for release
There is an intermediate step in uvision environment in creating a release directory. This step is not needed in mbedcli environment but to make this equivalent directory invoke
If you want to use the MDK (uVision) IDE to work with the DAPLink code, you must launch it in the right environment. The project will fail to build otherwise. To launch uVision properly, use ``tools/launch_uvision.bat``
0 commit comments