ryankurte / efm32-base

Base project for Silicon Labs EFM32 microcontrollers
89 stars 33 forks source link

FEATURE - Support EFR32 Chipsets #3

Closed Brando753 closed 6 years ago

Brando753 commented 7 years ago

What would one have to do to add additional chipset support? If we can document the process I can start adding support for the various EFR32 chipsets for the BLE support.

ryankurte commented 7 years ago

Hey, good question, and I think there is a two part answer.

To add devices:

  1. Grab the silabs Gecko SDK. Usually from the latest version of their IDE because this project predates the release of the SDK files on github and the github repo contains all sorts of documentation that we don't need.
  2. Copy the cmsis, device, drivers and emlib folders from the SDK into this repo.
  3. Add a test (or tests) to build the new chip families
  4. Add hacks to the .cmake files through the repo to fix the new inconsistencies until all the tests work again.
  5. Open a PR against the master
  6. [Maintainer] Review/Accept PR and Tag the repo with the Gecko SDK version

Which could totally go into the readme in an "updating this repo" section if that's useful.

I did have a go at rebuilding this project as a fork of the silabs source on github now that it's up, but because of the amount of data in that repo I elected to keep this separate and hand update every while. The download / copy / test part of it could probably be fairly easily scripted.

EFR devices

So adding the EFR devices should be pretty easy following the above steps, however, last I looked at BLE support with Silabs there wasn't useful support for BLE with custom applications, only via BGAPI/BGScript with their magic elf generator. Hopefully that's changed, but it will probably take some reverse engineering of Simplicity Studio / the support libraries / linking process to get it going ^_^

Also the part numbers now have an extra digit, sometimes, so regexes in the builders are going to have to be updated again I think.