Skip to content

Commit 07ddb9d

Browse files
authored
Merge pull request #4073 from akselsm/bugfix/efm32-bootloader-s1
[Silicon Labs] Bugfix for bootloader on Pearl and Mighty Gecko
2 parents a52e1eb + 1c63863 commit 07ddb9d

File tree

5 files changed

+13
-12
lines changed

5 files changed

+13
-12
lines changed

targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG/device/TARGET_256K/TOOLCHAIN_GCC_ARM/efm32pg1b.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,5 +219,5 @@ SECTIONS
219219
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
220220

221221
/* Check if FLASH usage exceeds FLASH size */
222-
ASSERT( LENGTH(FLASH) >= (__etext + SIZEOF(.data)), "FLASH memory overflowed !")
222+
ASSERT(ORIGIN(FLASH) + LENGTH(FLASH) >= (__etext + SIZEOF(.data)), "FLASH memory overflowed !")
223223
}

targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG12/device/TOOLCHAIN_GCC_ARM/efm32pg12b.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,5 +219,5 @@ SECTIONS
219219
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
220220

221221
/* Check if FLASH usage exceeds FLASH size */
222-
ASSERT( LENGTH(FLASH) >= (__etext + SIZEOF(.data)), "FLASH memory overflowed !")
222+
ASSERT(ORIGIN(FLASH) + LENGTH(FLASH) >= (__etext + SIZEOF(.data)), "FLASH memory overflowed !")
223223
}

targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFR32MG1/device/TOOLCHAIN_GCC_ARM/efr32mg1p.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,5 +219,5 @@ SECTIONS
219219
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
220220

221221
/* Check if FLASH usage exceeds FLASH size */
222-
ASSERT( LENGTH(FLASH) >= (__etext + SIZEOF(.data)), "FLASH memory overflowed !")
222+
ASSERT( ORIGIN(FLASH) + LENGTH(FLASH) >= (__etext + SIZEOF(.data)), "FLASH memory overflowed !")
223223
}

targets/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFR32MG12/device/TOOLCHAIN_GCC_ARM/efr32mg12p.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,5 +219,5 @@ SECTIONS
219219
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
220220

221221
/* Check if FLASH usage exceeds FLASH size */
222-
ASSERT( LENGTH(FLASH) >= (__etext + SIZEOF(.data)), "FLASH memory overflowed !")
222+
ASSERT(ORIGIN(FLASH) + LENGTH(FLASH) >= (__etext + SIZEOF(.data)), "FLASH memory overflowed !")
223223
}

targets/TARGET_Silicon_Labs/TARGET_EFM32/common/mbed_overrides.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,20 @@ void mbed_sdk_init()
3838
{
3939
CHIP_Init();
4040

41-
#if defined(_SILICON_LABS_32B_PLATFORM_2)
41+
#if defined(_SILICON_LABS_32B_SERIES_1)
4242
EMU_DCDCInit_TypeDef dcdcInit = EMU_DCDCINIT_DEFAULT;
4343
EMU_DCDCInit(&dcdcInit);
4444

45+
#if (CORE_CLOCK_SOURCE == HFXO)
46+
// Only init HFXO if not already done (e.g. by bootloader)
47+
if (CMU_ClockSelectGet(cmuClock_HF) != cmuSelect_HFXO) {
4548
#if defined(_EFR_DEVICE)
46-
CMU_HFXOInit_TypeDef hfxoInit = CMU_HFXOINIT_WSTK_DEFAULT;
47-
// Initialize the HFXO using the settings from the WSTK bspconfig.h
48-
// Note: This configures things like the capacitive tuning CTUNE variable
49-
// which can vary based on your hardware design.
50-
CMU_HFXOInit(&hfxoInit);
49+
CMU_HFXOInit_TypeDef hfxoInit = CMU_HFXOINIT_WSTK_DEFAULT;
5150
#else
52-
CMU_HFXOInit_TypeDef hfxoInit = CMU_HFXOINIT_STK_DEFAULT;
53-
CMU_HFXOInit(&hfxoInit);
51+
CMU_HFXOInit_TypeDef hfxoInit = CMU_HFXOINIT_STK_DEFAULT;
52+
#endif
53+
CMU_HFXOInit(&hfxoInit);
54+
}
5455
#endif
5556
#endif
5657

0 commit comments

Comments
 (0)