Begin documenting Mbed OS target features and components #240
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of changes
As part of the testing effort, I'd like to make a dashboard showing all the COMPONENTs, FEATUREs, and TARGET_ defines present in Mbed, so we can see what devices they're enabled on and such. But I realized, before we can do that, we need to actually have an agreed upon idea of what some of these features and components actually are. I think that these have grown rather organically over the years, with vendors not quite sure whether to add something as a component, a macro, or a device_has entry. In this PR, I try to document them in a new features.json file and clean up some of the incorrectly created ones.
I only got through about half the components, but this PR was so large that I figured I'd submit it here and let y'all review. More will be coming after this!
Probably the biggest single change in this PR was hiding all of the cellular drivers behind new COMPONENT_ labels. The COMPONENT system is created to do exactly this -- it's supposed to be a way to enable drivers specifically for one target without making them compile for every Mbed board. However, for whatever weird reason, the cellular drivers weren't using components, so every single build of Mbed sees the gemalto, quectel, telit, etc drivers be compiled. It's a waste of compile time and these should be taken out of the standard build.
Other changes include:
When reviewing this code, I'd mainly focus on the targets.json5 and features.json5 changes as those are the meat of this PR. The other changes/renames are just to support those and remove unnneeded stuff from the build.
Impact of changes
"target.semihosting-enabled": true
in the mbed_app.json overrides sectionMigration actions required
Documentation
This actually adds new documentation!
Pull request type
Test results
Ultimately it's going to be tough to test this one as we don't have CI builds for most of these boards. I did test MTS_DRAGONFLY_L496VG and it builds OK.
Reviewers