Porting a new target for exporters
Note: Note that exporters to export your code to various third party tools and IDEs are no longer supported. See this blog post for more details.
Exporting allows users to transition from Mbed CLI to the development environment of their choice. When you add a new target, you must add support for exporters. The following sections explain how you add support for a new target to each exporter.
Eclipse and Make
The Eclipse unmanaged project exporter and the Makefile exporter use a generated Makefile for building. The Makefile generated by these exporters mimics the behavior of the Mbed OS build system. For example, if mbed compile -t IAR -m NUCLEO_F303ZE
works, then mbed export -i make_iar -m NUCLEO_F303ZE
also works.
GNU Arm Eclipse managed projects
The GNU Arm Eclipse exporter is available for all targets that use the GCC Arm toolchain. Similar to the Makefile and Eclipse unmanaged project exporters, the GNU Arm Eclipse exporter mimics the behavior of the Mbed OS build system with the GCC_ARM
toolchain. For example, If mbed compile -t GCC_ARM -m NUCLEO_F207ZG
works, then mbed export -i gnuarmeclipse -m NUCLEO_F207ZG
also works.
Qt Creator and Make
The Qt Creator project export is available for the GCC Arm toolchain; it generates a Qt Creator generic project and a Makefile, in a similar fashion to the Eclipse and Make exporter.
You can open the generated .creator
project in Qt Creator, enabling integration with the project pane, syntax highlighting and automatic code completion. You can use the Makefile to compile the project; the IDE automatically invokes the Makefile when you issue the build command.
uVision and IAR
CMSIS Packs
uVision and IAR both use CMSIS packs to find target information necessary to create a valid project file. Add a "device_name"
attribute to your target as Adding and configuring targets describes to support these exporters.
uVision
uVision project file template uses target information from CMSIS Packs to generate valid uVision5 projects. If the uVision exporter cannot find the "device_name"
, it substitutes a generic Arm CPU target.
IAR
tools/export/iar/iar_definitions.json
uses this device name to store information necessary to set the target in an IAR project.
Updating index.json
You can regenerate index.json
to contain a newly made CMSIS pack with the following command:
mbed export -i uvision --update-packs
Include the changes to index.json
in your device support PR.