Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Silicon Labs] Update of Silicon Labs HAL #3122

Merged
merged 16 commits into from
Oct 27, 2016

Conversation

stevew817
Copy link
Contributor

Rebase of PR #3116

This is general maintenance of the Silicon Labs HAL implementation to make use of some added features, such as the config system. Additionally, we moved to Gecko SDK 5.0.0 in preparation for new target support.

Be aware that I added IM, _OM and _IOM macros to the CMSIS core* headers, in order to be compatible with device headers based on CMSIS 4.2 and newer (which happened a few years ago). Those macros are required for the update to Gecko SDK 5.0.0 since it moved to those new macros. See issue #2944

stevew817 and others added 14 commits October 24, 2016 18:23
First wave of squashing header files in order to get to a more sensible folder tree.
* Moved header files with 100% similarity to common folder
* Created a CommonPinNames.h header containing the base pin names P[A-F][0-15] and NC
Removed deprecated defines MODULES_SIZE_* and moved the setting for the SPI asynch transfer queue size to targets.json, where it apparently belongs
Now that we have targets.json, we get target inheritance and can use it to clean up the EFM32 folder structure.
* In the top-level EFM32 folder, there are now folders per MCU family (Giant, Leopard, ...)
* Those family folders contain the CMSIS headers in the 'device' subfolder, as well as global family headers (i.e. mapping of pins to peripherals)
* Inside of the family folder, there is a per-target folder containing target settings. In the future, we'll want to get rid of those by using the config system provided by targets.json
* Use mbed_error
* Include cmsis headers by default when grabbing device.h
* Get rid of enum to uint casting in pinmap
mbed added configuration options for default serial baud rate and stdio baud rate, so we can get rid of the workaround in the HAL
* Updated cmsis headers to match emlib 5.0.0
* Updated GPIO handling to match new header guards in use
* Updated linker scripts to match emlib 5.0.0
The current version of cmsis shipping with mbed does not provide the __IOM and friends macros that became standard with CMSIS 4.2+. Patching these into CMSIS to allow vendors to continue updating their support libraries, awaiting a full CMSIS update in mbed (which is past due now).
Gecko SDK 5.0.0 provides a convenient define for the amount of vectors wired on the chip, so we can use that to collapse the cmsis_nvic.h header
Moving the per-board clock configuration (which oscillators are available on the board, their frequencies, and which ones to use) as config options to the target database. This way, they're more easily overridable when third parties start creating boards with EFM32 MCUs
To allow enabling of uVisor on EFM32, the ROM table must be accessed
through the CMSIS-provided SECURE_ACCESS macro.
@stevew817
Copy link
Contributor Author

@0xc0170 @adbridge This is #3116 applied to master instead of mbed-os-5.2.

@bridadan
Copy link
Contributor

@stevew817 Could you please take a look at the Travis failure?

This is a workaround to fix the breaking build until someone adds NVIC virtualization to the CM0plus CMSIS header
Aliased a few macros that changed name from SDK4.x to SDK5.x. in order to make the USB library play nice with SDK5.0.0
@bridadan
Copy link
Contributor

/morph test

@mbed-bot
Copy link

Result: SUCCESS

Your command has finished executing! Here's what you wrote!

/morph test

Output

mbed Build Number: 944

All builds and test passed!

@0xc0170
Copy link
Contributor

0xc0170 commented Oct 26, 2016

@mbed-bot: TEST

HOST_OSES=ALL
BUILD_TOOLCHAINS=ALL
TARGETS=ALL

Copy link
Contributor

@0xc0170 0xc0170 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mbed-bot
Copy link

[Build 1064]
FAILURE: Something went wrong when building and testing.

@bridadan
Copy link
Contributor

bridadan commented Oct 26, 2016

Failure is still from an unrelated board in mbed 2, looks OK

@0xc0170 0xc0170 merged commit c9c6428 into ARMmbed:master Oct 27, 2016
aisair pushed a commit to aisair/mbed that referenced this pull request Apr 30, 2024
Ports for Upcoming Targets


Fixes and Changes

2966: Add kw24 support ARMmbed/mbed-os#2966
3068: MultiTech mDot - clean up PeripheralPins.c and add new pin names ARMmbed/mbed-os#3068
3089: Kinetis HAL: Remove clock initialization code from serial and ticker  ARMmbed/mbed-os#3089
2943: [NRF5] NVIC_SetVector functionality ARMmbed/mbed-os#2943
2938: InterruptIn changes in NCS36510 HAL. ARMmbed/mbed-os#2938
3108: Fix sleep function for NRF52. ARMmbed/mbed-os#3108
3076: STM32F1: Correct timer master value reading ARMmbed/mbed-os#3076
3085: Add LOWPOWERTIMER capability for NUCLEO_F303ZE ARMmbed/mbed-os#3085
3046: [BEETLE] Update BLE stack on Beetle board ARMmbed/mbed-os#3046
3122: [Silicon Labs] Update of Silicon Labs HAL ARMmbed/mbed-os#3122
3022: OnSemi RAM usage fix ARMmbed/mbed-os#3022
3121: STM32F3: Correct UART4 and UART5 defines when using DEVICE_SERIAL_ASYNCH ARMmbed/mbed-os#3121
3142: Targets- NUMAKER_PFM_NUC47216 remove mbed 2 ARMmbed/mbed-os#3142
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants