Difference between revisions of "ARM Mbed"

Line 19: Line 19:
 
sudo apt install git mercurial
 
sudo apt install git mercurial
 
sudo pip3 install mbed-cli
 
sudo pip3 install mbed-cli
mbed config -G GCC_ARM_PATH <toolchain path>/bin/arm-none-eabi-gcc
+
mbed config -G GCC_ARM_PATH <toolchain path>/bin
 
</pre>
 
</pre>
 
where ''<toolchain path>'' is the installation path of the [https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm GNU Arm Embedded Toolchain for Cortex M architecture].
 
where ''<toolchain path>'' is the installation path of the [https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm GNU Arm Embedded Toolchain for Cortex M architecture].
Line 27: Line 27:
 
<pre class="terminal">
 
<pre class="terminal">
 
mbed new --scm git mbed-test    # generates new project files with a Git repository  
 
mbed new --scm git mbed-test    # generates new project files with a Git repository  
cd mbed-test                               # next commands require that the current working directory is the project root  
+
cd mbed-test                     # next commands require that the current working directory is the project root  
mbed target NUCLEO_F303K8   # sets the target device (the Nucleo-32 board STM32F303K8T6)
+
mbed target NUCLEO_F303K8       # sets the target device (the Nucleo-32 board STM32F303K8T6)
 
</pre>
 
</pre>
 
where the name of the target device can be determined by connecting the target board with your Ubuntu computer and typing
 
where the name of the target device can be determined by connecting the target board with your Ubuntu computer and typing
Line 51: Line 51:
 
Supported targets: 0
 
Supported targets: 0
 
</pre>
 
</pre>
Note that the tools do not even support Mbed OS 2 on the STM32F303 Nucleo board because of the Python 3 environment instead of Python 2.
+
Note that even Mbed OS 2 is not supported on the STM32F303 Nucleo board because of the Python 3 environment instead of Python 2.
 
<br />
 
<br />

Revision as of 2019-07-23T16:11:53

Introduction

Mbed (official website) is a collection of APIs which simplify software development for microcontrollers with ARM Cortex kernel. Mbed is maintained by ARM, in cooperation with their partners.

Mbed OS

Mbed OS is a real-time operating system that comes with the Mbed APIs.

Web IDE

The web IDE is the most convenient of getting started with the Mbed API and Mbed OS. You can generate a blank Mbed project or a project based on one of the many example projects. You can build the project on the Web IDE and download the resulting binary. You can also download the complete source package as an archive file (ZIP file) with project file stubs for the popular embedded software development environments.

Command Line Tools

Mbed CLI is a collection of command line tools for generating Mbed project stubs in the same way that the Web IDE does. With the command line tools you can create a script that generates the Mbed part of your project's source files so that these files do not need to be included in your version control repository.

To install the tools on Ubuntu Linux type

sudo apt install git mercurial
sudo pip3 install mbed-cli
mbed config -G GCC_ARM_PATH <toolchain path>/bin

where <toolchain path> is the installation path of the GNU Arm Embedded Toolchain for Cortex M architecture.

Use the CLI tool mbed to generate project skeleton files:

mbed new --scm git mbed-test     # generates new project files with a Git repository 
cd mbed-test                     # next commands require that the current working directory is the project root 
mbed target NUCLEO_F303K8        # sets the target device (the Nucleo-32 board STM32F303K8T6)

where the name of the target device can be determined by connecting the target board with your Ubuntu computer and typing

mbed detect


which prints device information and whether MbedOS is supported:

[mbed] Detected NUCLEO_F411RE, port /dev/ttyACM1, mounted /media/kai/NODE_F411RE, interface version 0221:
[mbed] Supported toolchains for NUCLEO_F411RE
| Target        | mbed OS 2 | mbed OS 5 |    ARM    |    uARM   |  GCC_ARM  |    IAR    | ARMC5 |
|---------------|-----------|-----------|-----------|-----------|-----------|-----------|-------|
| NUCLEO_F411RE | Supported | Supported | Supported | Supported | Supported | Supported |   -   |
Supported targets: 1
Supported toolchains: 4

[mbed] Detected NUCLEO_F303K8, port /dev/ttyACM0, mounted /media/kai/NODE_F303K8, interface version 0221:
[mbed] Supported toolchains for NUCLEO_F303K8
| Target | mbed OS 2 | mbed OS 5 | ARM | uARM | GCC_ARM | IAR | ARMC5 |
|--------|-----------|-----------|-----|------|---------|-----|-------|
Supported targets: 0

Note that even Mbed OS 2 is not supported on the STM32F303 Nucleo board because of the Python 3 environment instead of Python 2.