As initially explained in an earlier post, we’re introducing a few changes in Mbed OS 6 to increase the quality of the platforms that Arm Mbed is officially supporting.
For the reasons we shared in the blog, community-contributed platforms will no longer be maintained in the mainline Mbed OS repository. Fortunately, developers can continue to use community boards in the upcoming version of Mbed OS 6. It simply needs to be done in a slightly different way, through a new concept known as custom board introduced in Mbed OS 5.
There are a number of benefits of the custom board support for Mbed OS:
- A developer owns the support for the custom or community board.
- Can be identified and recognized for the great contributions to an open-source project
- Can handle a transparent communication with rest of community developers through repository’s issues or Mbed forums
- Can accept contributions from other developers to fix issues or add new features
- Can decide when is appropriate to upgrade to a new version of Mbed OS
- Can keep track of known issues or limitations with the custom board
- Can perform tests whenever is required (or desired)
Additionally, custom board support in Mbed OS is suitable for the development of commercial products as it lets you customize and add or remove features that you don’t need in your project while making it easy to upgrade the version of Mbed OS when required.
The process of creating a custom board support is simple. The technical details are described in the documentation. This is a summary of the typical steps required:
- Create a repository with name of the board you would like to add support. GitHub is a good place to host your code
- Add a LICENSE file (see our guidelines)
- Add a README.md file with a description of the board, features, user guide, and known issues
- Add a folder TARGET_XXX including files for the MCU and peripheral support, where XXX is the name of the target (it will be used later to compile the project). If possible, inherit similar MCU or vendor family support that may exist in Mbed OS
- Add a custom_targets.json file with the JSON configuration (similarly to targets.json). It should include the XXX target configuration
- Add a mbed-os.lib file that uses a git HASH to point to the version of Mbed OS that is supported
- Optionally, add a main.cpp file as an example application to verify that the MCU boots, initializes peripherals, and sends messages over the serial port
- Use Mbed CLI or Mbed Studio to confirm it compiles ok.
- Additionally, if possible run Greentea tests to confirm that the drivers are working well
Mbed developers have been working on introducing software support for boards or personal projects. Here are a few examples:
- Bluepill board including an STM32F103 MCU
- MSP432 for the MSP-EXP432P401R Launchpad board
- Marquesas project including BSP custom support for the STM32H745 dual-core MCU
Our Mbed developers are publishing support for these and many more in the new section in the Mbed forums for Custom and Community boards.
We look forward to continuing to work with our Mbed developers on delivering the best platform support and user experience to our community!
You need to log in to post a discussion