mirror of
https://github.com/espressif/openthread.git
synced 2026-08-31 14:29:54 +00:00
[EFR32] Upgrade to RAIL Lib 1.6.0. (#1946)
This commit is contained in:
@@ -60,11 +60,11 @@ EFR32_MBEDTLS_CPPFLAGS = -DMBEDTLS_CONFIG_FILE='\"mbedtls-config.h\"'
|
||||
EFR32_MBEDTLS_CPPFLAGS += -DMBEDTLS_USER_CONFIG_FILE='\"efr32-mbedtls-config.h\"'
|
||||
EFR32_MBEDTLS_CPPFLAGS += -DEFR32MG12P432F1024GL125
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/examples/platforms/efr32/crypto
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.0/util/third_party/mbedtls/configs
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.0/platform/CMSIS/Include
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.0/util/third_party/mbedtls/sl_crypto/include
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.0/platform/Device/SiliconLabs/EFR32MG12P/Include
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/inc
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.1/util/third_party/mbedtls/configs
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.1/platform/CMSIS/Include
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.1/util/third_party/mbedtls/sl_crypto/include
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.1/platform/Device/SiliconLabs/EFR32MG12P/Include
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/inc
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/mbedtls
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/mbedtls/repo/include
|
||||
EFR32_MBEDTLS_CPPFLAGS += -I$(AbsTopSourceDir)/third_party/mbedtls/repo/include/mbedtls
|
||||
|
||||
@@ -105,11 +105,11 @@ endif # OPENTHREAD_EXAMPLES_DA15000
|
||||
if OPENTHREAD_EXAMPLES_EFR32
|
||||
LDADD_COMMON += \
|
||||
$(top_builddir)/examples/platforms/efr32/libopenthread-efr32.a \
|
||||
$(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.0/platform/radio/rail_lib/autogen/librail_release/librail_efr32xg12_gcc_release.a \
|
||||
$(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.1/platform/radio/rail_lib/autogen/librail_release/librail_efr32xg12_gcc_release.a \
|
||||
$(NULL)
|
||||
|
||||
LDFLAGS_COMMON += \
|
||||
-T $(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.0/platform/Device/SiliconLabs/EFR32MG12P/Source/GCC/efr32mg12p.ld \
|
||||
-T $(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.1/platform/Device/SiliconLabs/EFR32MG12P/Source/GCC/efr32mg12p.ld \
|
||||
$(NULL)
|
||||
endif # OPENTHREAD_EXAMPLES_EFR32
|
||||
|
||||
|
||||
@@ -105,11 +105,11 @@ endif # OPENTHREAD_EXAMPLES_DA15000
|
||||
if OPENTHREAD_EXAMPLES_EFR32
|
||||
LDADD_COMMON += \
|
||||
$(top_builddir)/examples/platforms/efr32/libopenthread-efr32.a \
|
||||
$(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.0/platform/radio/rail_lib/autogen/librail_release/librail_efr32xg12_gcc_release.a \
|
||||
$(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.1/platform/radio/rail_lib/autogen/librail_release/librail_efr32xg12_gcc_release.a \
|
||||
$(NULL)
|
||||
|
||||
LDFLAGS_COMMON += \
|
||||
-T $(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.0/platform/Device/SiliconLabs/EFR32MG12P/Source/GCC/efr32mg12p.ld \
|
||||
-T $(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.1/platform/Device/SiliconLabs/EFR32MG12P/Source/GCC/efr32mg12p.ld \
|
||||
$(NULL)
|
||||
endif # OPENTHREAD_EXAMPLES_EFR32
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ override CXXFLAGS := $(filter-out -Wconversion,$(CXXF
|
||||
override CFLAGS := $(filter-out -pedantic-errors,$(CFLAGS))
|
||||
override CXXFLAGS := $(filter-out -pedantic-errors,$(CXXFLAGS))
|
||||
|
||||
EFR32MG_SDK_SRCDIR = $(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.0
|
||||
EFR32MG_SDK_SRCDIR = $(top_srcdir)/third_party/silabs/gecko_sdk_suite/v1.1
|
||||
|
||||
libopenthread_efr32_a_CPPFLAGS = \
|
||||
-DEFR32MG12P432F1024GL125 \
|
||||
@@ -84,24 +84,24 @@ PLATFORM_SOURCES +=
|
||||
endif
|
||||
|
||||
nodist_libopenthread_efr32_a_SOURCES = \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/hardware/kit/common/bsp/bsp_bcc.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/hardware/kit/common/bsp/bsp_stk.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/Device/SiliconLabs/EFR32MG12P/Source/system_efr32mg12p.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/Device/SiliconLabs/EFR32MG12P/Source/GCC/startup_efr32mg12p.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emdrv/rtcdrv/src/rtcdriver.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emdrv/ustimer/src/ustimer.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_adc.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_cmu.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_core.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_emu.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_gpio.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_rmu.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_rtcc.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_system.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_timer.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_usart.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_msc.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/platform/emlib/src/em_crypto.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/hardware/kit/common/bsp/bsp_bcc.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/hardware/kit/common/bsp/bsp_stk.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/Device/SiliconLabs/EFR32MG12P/Source/system_efr32mg12p.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/Device/SiliconLabs/EFR32MG12P/Source/GCC/startup_efr32mg12p.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emdrv/rtcdrv/src/rtcdriver.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emdrv/ustimer/src/ustimer.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_adc.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_cmu.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_core.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_emu.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_gpio.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_rmu.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_rtcc.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_system.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_timer.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_usart.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_msc.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/platform/emlib/src/em_crypto.c \
|
||||
$(NULL)
|
||||
|
||||
noinst_HEADERS = \
|
||||
|
||||
@@ -185,5 +185,5 @@ The following toolchain has been used for testing and verification:
|
||||
- gcc version 4.9.3
|
||||
|
||||
The EFR32 example has been verified with following Flex SDK/RAIL Library version:
|
||||
- Flex SDK version 1.1.1.0
|
||||
- RAIL Library version 1.5.2.2
|
||||
- Flex SDK version 1.1.1.0, RAIL Library version 1.5.2
|
||||
- Flex SDK version 1.2.0.0, RAIL Library version 1.6.0
|
||||
|
||||
@@ -94,10 +94,4 @@ void efr32MiscInit(void);
|
||||
*/
|
||||
void efr32RandomInit(void);
|
||||
|
||||
/**
|
||||
* Initialization of EFR32 Hardware Abstract Layer.
|
||||
*
|
||||
*/
|
||||
void efr32HalInit(void);
|
||||
|
||||
#endif // PLATFORM_EFR32_H_
|
||||
|
||||
@@ -51,13 +51,15 @@
|
||||
|
||||
otInstance *sInstance;
|
||||
|
||||
void HAL_Init(void);
|
||||
|
||||
void PlatformInit(int argc, char *argv[])
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
|
||||
CHIP_Init();
|
||||
efr32HalInit();
|
||||
HAL_Init();
|
||||
BSP_Init(BSP_INIT_BCC);
|
||||
|
||||
otPlatUartEnable();
|
||||
@@ -142,7 +144,7 @@ void halInitChipSpecific(void)
|
||||
CMU_ClockEnable(cmuClock_CORELE, true);
|
||||
}
|
||||
|
||||
void efr32HalInit(void)
|
||||
void HAL_Init(void)
|
||||
{
|
||||
halInitChipSpecific();
|
||||
}
|
||||
|
||||
@@ -315,7 +315,6 @@ otError otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
|
||||
RAIL_TxData_t txData;
|
||||
RAIL_TxOptions_t txOption;
|
||||
uint8_t frame[IEEE802154_MAX_LENGTH + 1];
|
||||
bool isAckRequested = (aFrame->mPsdu[0] & IEEE802154_ACK_REQUEST) ? true : false;
|
||||
(void)aInstance;
|
||||
|
||||
CORE_DECLARE_IRQ_STATE;
|
||||
@@ -330,27 +329,21 @@ otError otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
|
||||
|
||||
frame[0] = aFrame->mLength;
|
||||
memcpy(frame + 1, aFrame->mPsdu, aFrame->mLength);
|
||||
|
||||
txData.dataPtr = frame;
|
||||
txData.dataLength = aFrame->mLength - 1;
|
||||
|
||||
txOption.waitForAck = (aFrame->mPsdu[0] & IEEE802154_ACK_REQUEST) ? true : false;
|
||||
txOption.removeCrc = false;
|
||||
txOption.syncWordId = 0;
|
||||
|
||||
RAIL_TxPowerSet(aFrame->mPower);
|
||||
setChannel(aFrame->mChannel);
|
||||
RAIL_RfIdleExt(RAIL_IDLE, true);
|
||||
|
||||
otEXPECT_ACTION(RAIL_TxDataLoad(&txData) == RAIL_STATUS_NO_ERROR, error = OT_ERROR_FAILED);
|
||||
|
||||
if (isAckRequested)
|
||||
{
|
||||
otEXPECT_ACTION(RAIL_TxStart(aFrame->mChannel, RAIL_CcaCsma, &csmaConfig) == RAIL_STATUS_NO_ERROR,
|
||||
error = OT_ERROR_FAILED);
|
||||
}
|
||||
else
|
||||
{
|
||||
txOption.waitForAck = false;
|
||||
|
||||
otEXPECT_ACTION(RAIL_TxStartWithOptions(aFrame->mChannel, &txOption, RAIL_CcaCsma, &csmaConfig) == RAIL_STATUS_NO_ERROR,
|
||||
error = OT_ERROR_FAILED);
|
||||
}
|
||||
otEXPECT_ACTION(RAIL_TxStartWithOptions(aFrame->mChannel, &txOption, RAIL_CcaCsma, &csmaConfig) == RAIL_STATUS_NO_ERROR,
|
||||
error = OT_ERROR_FAILED);
|
||||
|
||||
exit:
|
||||
CORE_EXIT_CRITICAL();
|
||||
@@ -653,6 +646,11 @@ void RAILCb_TxRadioStatus(uint8_t aStatus)
|
||||
sTransmitBusy = false;
|
||||
break;
|
||||
|
||||
case RAIL_TX_CONFIG_BUFFER_UNDERFLOW:
|
||||
sTransmitError = OT_ERROR_ABORT;
|
||||
sTransmitBusy = false;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -685,6 +683,8 @@ void RAILCb_RxPacketReceived(void *aRxPacketHandle)
|
||||
// check the lenght validity of recv packet
|
||||
otEXPECT(length >= IEEE802154_MIN_LENGTH && length <= IEEE802154_MAX_LENGTH);
|
||||
|
||||
otLogInfoPlat(sInstance, "Received data:%d", rxPacketInfo->dataLength);
|
||||
|
||||
memcpy(sReceiveFrame.mPsdu, rxPacketInfo->dataPtr + 1, rxPacketInfo->dataLength);
|
||||
sReceiveFrame.mPower = rxPacketInfo->appendedInfo.rssiLatch;
|
||||
sReceiveFrame.mLqi = rxPacketInfo->appendedInfo.lqi;
|
||||
|
||||
Vendored
+3
-3
@@ -51,7 +51,7 @@ libmbedcrypto_a_SOURCES = \
|
||||
|
||||
if OPENTHREAD_EXAMPLES_EFR32
|
||||
nodist_libmbedcrypto_a_SOURCES = \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/util/third_party/mbedtls/sl_crypto/src/sl_aes.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/util/third_party/mbedtls/sl_crypto/src/sl_aes.c \
|
||||
$(NULL)
|
||||
else
|
||||
libmbedcrypto_a_SOURCES += \
|
||||
@@ -82,8 +82,8 @@ libmbedcrypto_a_SOURCES += \
|
||||
|
||||
if OPENTHREAD_EXAMPLES_EFR32
|
||||
nodist_libmbedcrypto_a_SOURCES += \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/util/third_party/mbedtls/library/ecp.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.0/util/third_party/mbedtls/sl_crypto/src/sl_ecp.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/util/third_party/mbedtls/library/ecp.c \
|
||||
@top_builddir@/third_party/silabs/gecko_sdk_suite/v1.1/util/third_party/mbedtls/sl_crypto/src/sl_ecp.c \
|
||||
$(NULL)
|
||||
else
|
||||
libmbedcrypto_a_SOURCES += \
|
||||
|
||||
Reference in New Issue
Block a user