mirror of https://github.com/ARMmbed/mbed-os.git
nrf52840: add workaround for RTC errata 20
include thered main stack for cmsis rtospull/3841/head
parent
f1c3d75c21
commit
5b36de9c4f
|
@ -354,7 +354,7 @@ __attribute__((used)) void _mutex_release (OS_ID *mutex) {
|
|||
/* Main Thread definition */
|
||||
extern void pre_main (void);
|
||||
|
||||
#if defined(TARGET_MCU_NRF52832) ||\
|
||||
#if defined(TARGET_MCU_NRF52840) ||\
|
||||
defined(TARGET_MCU_NRF51822) || defined(TARGET_MCU_NRF52832) || defined (TARGET_STM32F334R8) ||\
|
||||
defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB) || \
|
||||
defined(TARGET_STM32F302R8) || defined(TARGET_STM32F303K8) || defined (TARGET_STM32F334C8) ||\
|
||||
|
|
|
@ -76,6 +76,20 @@ void COMMON_RTC_IRQ_HANDLER(void)
|
|||
}
|
||||
}
|
||||
|
||||
// Function for fix errata 20: RTC Register values are invalid
|
||||
__STATIC_INLINE void errata_20(void)
|
||||
{
|
||||
#if defined(NRF52_ERRATA_20)
|
||||
if (!softdevice_handler_is_enabled())
|
||||
{
|
||||
NRF_CLOCK->EVENTS_LFCLKSTARTED = 0;
|
||||
NRF_CLOCK->TASKS_LFCLKSTART = 1;
|
||||
while (NRF_CLOCK->EVENTS_LFCLKSTARTED == 0) {}
|
||||
}
|
||||
NRF_RTC1->TASKS_STOP = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if (defined (__ICCARM__)) && defined(TARGET_MCU_NRF51822)//IAR
|
||||
__stackless __task
|
||||
#endif
|
||||
|
@ -87,6 +101,8 @@ void common_rtc_init(void)
|
|||
return;
|
||||
}
|
||||
|
||||
errata_20();
|
||||
|
||||
NVIC_SetVector(RTC1_IRQn, (uint32_t)RTC1_IRQHandler);
|
||||
|
||||
// RTC is driven by the low frequency (32.768 kHz) clock, a proper request
|
||||
|
|
|
@ -2560,7 +2560,7 @@
|
|||
"MCU_NRF52840": {
|
||||
"inherits": ["Target"],
|
||||
"core": "Cortex-M4F",
|
||||
"macros": ["TARGET_NRF52840", "BLE_STACK_SUPPORT_REQD", "SOFTDEVICE_PRESENT", "S140", "NRF_SD_BLE_API_VERSION=5", "NRF52840_XXAA", "NRF_DFU_SETTINGS_VERSION=1"],
|
||||
"macros": ["TARGET_NRF52840", "BLE_STACK_SUPPORT_REQD", "SOFTDEVICE_PRESENT", "S140", "NRF_SD_BLE_API_VERSION=5", "NRF52840_XXAA", "NRF_DFU_SETTINGS_VERSION=1", "NRF_SD_BLE_API_VERSION=5"],
|
||||
"extra_labels": ["NORDIC", "MCU_NRF52840", "NRF5_SDK13"],
|
||||
"OUTPUT_EXT": "hex",
|
||||
"is_disk_virtual": true,
|
||||
|
@ -2598,7 +2598,7 @@
|
|||
"NRF52840_DK": {
|
||||
"supported_form_factors": ["ARDUINO"],
|
||||
"inherits": ["MCU_NRF52840"],
|
||||
"macros_add": ["BOARD_PCA10056", "CONFIG_GPIO_AS_PINRESET", "SWI_DISABLE0"],
|
||||
"macros_add": ["BOARD_PCA10056", "CONFIG_GPIO_AS_PINRESET", "SWI_DISABLE0", "NRF52_ERRATA_20"],
|
||||
"device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"],
|
||||
"release_versions": ["2", "5"],
|
||||
"device_name": "nRF52840_xxAA"
|
||||
|
|
Loading…
Reference in New Issue