Commit Graph

22 Commits (97f10a11cc42bd424fe36a281a6a58c01d7af49a)

Author SHA1 Message Date
Jaeden Amero 612b148fd4 stack: armc: Workaround config passing bug
Workaround a bug where the boot stack size configuration option is not
passed on to armlink, the Arm Compiler's linker. Prefer
MBED_CONF_TARGET_BOOT_STACK_SIZE if present, as this is what the
configuration system should provide. Fall back to MBED_BOOT_STACK_SIZE
if MBED_CONF_TARGET_BOOT_STACK_SIZE is not defined, as in the case of
buggy tools. If both MBED_CONF_TARGET_BOOT_STACK_SIZE and
MBED_BOOT_STACK_SIZE are not defined, then we fall back to a hard-coded
value provided by the linkerscript. See
https://github.com/ARMmbed/mbed-os/issues/13474 for more information.
2020-09-10 10:08:38 +01:00
Jaeden Amero 39e69d328d Use boot stack size from config system
To allow overriding of the boot stack size from the Mbed configuration
system, consistently use MBED_CONF_TARGET_BOOT_STACK_SIZE rather than
MBED_BOOT_STACK_SIZE.

Fixes #10319
2020-09-10 10:08:38 +01:00
amq 6da9237f6f
Fix a typo in PeripheralPins.c for EFM32GG11
- PF13 had the same value as PF15
2020-09-08 12:04:32 +00:00
Martin Kojtal 66bf7e85a6
Merge pull request #12547 from amq/update-emlib
EFM32: update emlib to 5.9.1
2020-04-01 14:19:10 +02:00
amq ef28b74802 EFM32: move __Vectors from header to source 2020-03-31 10:37:28 +02:00
Martin Kojtal f011ccb2cb
Merge pull request #12692 from petroborys/master
EFM32G11: Add RGB LEDs to PinNames.h
2020-03-26 09:08:53 +01:00
petroborys 3f6a48fcc8 Added RGB LEDs to PinNames.h 2020-03-24 21:05:07 +02:00
amq 5dfea97afc EFM32: update emlib for EFM32GG11 2020-02-27 22:31:57 +01:00
amq 860ccdec5e
EFM32: add UART and LEUART for EFM32GG11
- adds the missing PinMap definitions for UART0, UART1, LEUART0 and LEUART1
- corrects a misplaced `#endif` for `#if DEVICE_SPI` which included `UART_TX`
- all according to https://www.silabs.com/documents/public/data-sheets/efm32gg11-datasheet.pdf
2020-01-18 14:10:22 +01:00
petroborys 2525100cc7 modified itm_api.c for STK3701 and add SWO location 0 to EFM32GG11_STK3701, EFM32GG_STK3700, EFM32LG_STK3600, EFM32PG_STK3401, EFM32PG12_STK3402 and EFM32WG_STK3800 2019-12-07 03:00:01 +02:00
Kevin Bracey fb6aa3ef4f Clean up ARM toolchain heap+stack setup in targets
ARM Compiler 6.13 testing revealed linker errors pointing out
conflicting use of `__user_setup_stackheap` and
`__user_initial_stackheap` in some targets. Remove the unwanted
`__user_initial_stackheap` from the targets - the setup is
centralised in the common platform code.

Looking into this, a number of other issues were highlighted

* Almost all targets had `__initial_sp` hardcoded in assembler,
  rather than getting it from the scatter file. This was behind
  issue #11313. Fix this generally.
* A few targets' `__initial_sp` values did not match the scatter
  file layout, in some cases meaning they were overlapping heap
  space. They now all use the area reserved in the scatter file.
  If any problems are seen, then there is an error in the
  scatter file.
* A number of targets were reserving unneeded space for heap and
  stack in their startup assembler, on top of the space reserved in
  the scatter file, so wasting a few K. A couple were using that
  space for the stack, rather than the space in the scatter file.

To clarify expected behaviour:

* Each scatter file contains empty regions `ARM_LIB_HEAP` and
  `ARM_LIB_STACK` to reserve space. `ARM_LIB_STACK` is sized
  by the macro `MBED_BOOT_STACK_SIZE`, which is set by the tools.
  `ARM_LIB_HEAP` is generally the space left over after static
  RAM and stack.
* The address of the end of `ARM_LIB_STACK` is written into the
  vector table and on reset the CPU sets MSP to that address.
* The common platform code in Mbed OS provides `__user_setup_stackheap`
  for the ARM library. The ARM library calls this during startup, and
  it calls `__mbed_user_setup_stackheap`.
* The default weak definition of `__mbed_user_setup_stackheap` does not
  modify SP, so we remain on the boot stack, and the heap is set to
  the region described by `ARM_LIB_HEAP`. If `ARM_LIB_HEAP` doesn't
  exist, then the heap is the space from the end of the used data in
  `RW_IRAM1` to the start of `ARM_LIB_STACK`.
* Targets can override `__mbed_user_setup_stackheap` if they want.
  Currently only Renesas (ARMv7-A class) devices do.
* If microlib is in use, then it doesn't call `__user_setup_stackheap`.
  Instead it just finds and uses `ARM_LIB_STACK` and `ARM_LIB_HEAP`
  itself.
2019-10-23 14:53:49 +03:00
Steven Cooreman 35851005ef Fix wrongly declared ADC pinout for EFM32GG11 STK3701A 2019-07-10 11:27:29 +01:00
Deepika 1f57568015 TARGET_Silicon_Labs Setup heap limit and size 2019-02-19 15:49:49 -06:00
Przemyslaw Stekiel d30a14e64f [Silicon_Labs] Support boot stack size configuration option 2019-01-08 15:32:06 +01:00
Deepika 08051f5c23 SiLabs: Fix alignment of execute region to 8-byte boundary
--legacyalign, --no_legacyalign are deprecated from ARMC6 compiler, in order to
remove deprecated flags all linker files (GCC and IAR as well to have uniformity)
should strictly align to 8-byte boundary
2018-10-09 10:15:07 -05:00
Steven Cooreman 55c6dade3d Apply changes corresponding to #7817
QSPI standard pin names were changed after the QSPI feature PR.
2018-08-27 10:10:18 +02:00
Steven 845a5beb30 Initial commit of Silicon Labs QSPI HAL implementation
* For EFM32GG11, since that is the only Silicon Labs target with QSPI per today
* Verified working using the on-board flash and tests-mbed_hal-qspi
2018-08-27 10:03:08 +02:00
PHST 804edd578e Place "MBED_WEAK" for IAR-Toolchain before the type. 2018-07-17 08:12:41 +02:00
PHST de266d827e Added missing include. 2018-07-16 19:28:54 +02:00
PHST 1658349965 Replace __attribute__((weak)) with MBED_WEAK 2018-07-16 15:38:25 +02:00
PHST a8dcf52971 Make PeripheralPins.c configuration tables weakly defined to be overridable for target EFM32GG11. 2018-07-16 12:35:44 +02:00
Steven Cooreman 001844231b Add EFM32GG11_STK3701 support 2018-07-11 10:45:38 +02:00