cpu: efm32_common + ef32mg1p: replace with generalized efm32 cpu
This commit is contained in:
parent
b05fa5991f
commit
8f12b9896f
@ -1,7 +1,6 @@
|
|||||||
# define the module that is build
|
MODULE = cpu
|
||||||
MODULE = efm32_common
|
|
||||||
|
|
||||||
# add a list of subdirectories, that should also be build
|
# add a list of subdirectories, that should also be build
|
||||||
DIRS = periph
|
DIRS = periph families/$(EFM32_FAMILY) $(RIOTCPU)/cortexm_common
|
||||||
|
|
||||||
include $(RIOTBASE)/Makefile.base
|
include $(RIOTBASE)/Makefile.base
|
||||||
@ -1,7 +1,7 @@
|
|||||||
ifneq (,$(filter periph_rtc,$(USEMODULE)))
|
ifneq (,$(filter periph_rtc,$(USEMODULE)))
|
||||||
USEMODULE += periph_rtc_series$(CPU_SERIES)
|
USEMODULE += periph_rtc_series$(EFM32_SERIES)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq (,$(filter periph_rtt,$(USEMODULE)))
|
ifneq (,$(filter periph_rtt,$(USEMODULE)))
|
||||||
USEMODULE += periph_rtt_series$(CPU_SERIES)
|
USEMODULE += periph_rtt_series$(EFM32_SERIES)
|
||||||
endif
|
endif
|
||||||
@ -1,3 +1,7 @@
|
|||||||
FEATURES_PROVIDED += periph_cpuid
|
FEATURES_PROVIDED += periph_cpuid
|
||||||
FEATURES_PROVIDED += periph_flashpage
|
FEATURES_PROVIDED += periph_flashpage
|
||||||
FEATURES_PROVIDED += periph_pm
|
FEATURES_PROVIDED += periph_pm
|
||||||
|
|
||||||
|
ifeq (1,$(EFM32_TNRG))
|
||||||
|
FEATURES_PROVIDED += periph_hwrng
|
||||||
|
endif
|
||||||
34
cpu/efm32/Makefile.include
Normal file
34
cpu/efm32/Makefile.include
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
include $(RIOTCPU)/efm32/efm32-info.mk
|
||||||
|
|
||||||
|
export CPU_ARCH = $(EFM32_ARCHITECTURE)
|
||||||
|
export CPU_FAM = $(EFM32_FAMILY)
|
||||||
|
|
||||||
|
# the em_device.h header requires a global define with the cpu model
|
||||||
|
export CFLAGS += -D$(shell echo $(CPU_MODEL) | tr 'a-z' 'A-Z')
|
||||||
|
|
||||||
|
# include Gecko SDK package
|
||||||
|
USEPKG += gecko_sdk
|
||||||
|
|
||||||
|
# CMSIS-DSP is needed for arm_math.h on Cortex-M0+ architectures
|
||||||
|
ifeq ($(CPU_ARCH),cortex-m0plus)
|
||||||
|
USEPKG += cmsis-dsp
|
||||||
|
endif
|
||||||
|
|
||||||
|
# include common periph module
|
||||||
|
USEMODULE += periph_common
|
||||||
|
|
||||||
|
# include layered power management
|
||||||
|
USEMODULE += pm_layered
|
||||||
|
|
||||||
|
# include vendor device headers
|
||||||
|
INCLUDES += -I$(RIOTCPU)/efm32/families/$(EFM32_FAMILY)/include/vendor
|
||||||
|
|
||||||
|
# include cortexm_common
|
||||||
|
LINKER_SCRIPT = cortexm.ld
|
||||||
|
|
||||||
|
ROM_START_ADDR = $(EFM32_FLASH_START)
|
||||||
|
ROM_LEN = $(EFM32_FLASH_SIZE)
|
||||||
|
RAM_START_ADDR = $(EFM32_SRAM_START)
|
||||||
|
RAM_LEN = $(EFM32_SRAM_SIZE)
|
||||||
|
|
||||||
|
include $(RIOTMAKE)/arch/cortexm.inc.mk
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
* @file
|
* @file
|
||||||
66
cpu/efm32/doc.txt
Normal file
66
cpu/efm32/doc.txt
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
/**
|
||||||
|
* @defgroup cpu_efm32 Silicon Labs EFM32/EFR32/EZR32
|
||||||
|
* @ingroup cpu
|
||||||
|
* @brief Implementation of Silicon Labs's EFM32/EFR32/EZR32 MCUs
|
||||||
|
*
|
||||||
|
* This module contains all code and definitions for the Silicon Labs
|
||||||
|
* EFM32/EFR32/EZR32 MCUs. It uses the Gecko SDK (vendor library) for the
|
||||||
|
* peripheral drivers.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Supported Peripherals
|
||||||
|
* =====================
|
||||||
|
*
|
||||||
|
* The following peripherals are supported (depends on microcontroller):
|
||||||
|
* - ADC
|
||||||
|
* - CPUID
|
||||||
|
* - DAC
|
||||||
|
* - Flash page
|
||||||
|
* - GPIO
|
||||||
|
* - HW RNG
|
||||||
|
* - I2C
|
||||||
|
* - Power Management
|
||||||
|
* - PWM
|
||||||
|
* - RTC
|
||||||
|
* - RTT
|
||||||
|
* - SPI
|
||||||
|
* - Timer
|
||||||
|
* - UART (including low-power)
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Clock Configuration
|
||||||
|
* ===================
|
||||||
|
*
|
||||||
|
* By default the microcontroller will run on the internal RC-oscillator. If
|
||||||
|
* an external crystal is available, you can configure it to use by setting
|
||||||
|
* `CLOCK_HF=cmuSelect_HFXO`. The same applies for `CLOCK_LFA`, `CLOCK_LFB` and
|
||||||
|
* `CLOCK_LFE` using `cmuSelect_LFXO`.
|
||||||
|
*
|
||||||
|
* If the internal RC-oscillator is not used, it will be disabled.
|
||||||
|
*
|
||||||
|
* Refer to the reference manual of the specific microcontroller for the
|
||||||
|
* specifics.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* EMU and CMU Configuration
|
||||||
|
* =========================
|
||||||
|
*
|
||||||
|
* The Energy Management Unit (EMU) and Clock Management Unit (CMU) are
|
||||||
|
* initialized using default values provided by the Gecko SDK. You can override
|
||||||
|
* any of the following defaults to use other values:
|
||||||
|
*
|
||||||
|
* - `CMU_HFXOINIT`
|
||||||
|
* - `CMU_LFXOINIT`
|
||||||
|
* - `EMU_DCDCINIT`
|
||||||
|
* - `EMU_EM23INIT`
|
||||||
|
* - `EMU_EM4INIT`
|
||||||
|
*
|
||||||
|
* Refer to the Gecko SDK for more information about these values.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Low-power Configuration
|
||||||
|
* =======================
|
||||||
|
*
|
||||||
|
* The EFM32/EFR32/EZR32 MCUs have support for low-power peripherals. Support
|
||||||
|
* is enabled by default, but can be disabled by setting LOW_POWER_ENABLED=0.
|
||||||
|
*/
|
||||||
27
cpu/efm32/efm32-info.mk
Normal file
27
cpu/efm32/efm32-info.mk
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Find the header file that should exist if the CPU is supported.
|
||||||
|
EFM32_HEADER = $(wildcard $(RIOTCPU)/efm32/families/*/include/vendor/$(CPU_MODEL).h)
|
||||||
|
|
||||||
|
ifeq (,$(EFM32_HEADER))
|
||||||
|
$(error Header file for $(CPU_MODEL) is missing)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Lookup up CPU information using grep.
|
||||||
|
EFM32_INFO = $(shell grep $(CPU_MODEL) $(shell dirname $(EFM32_HEADER))/../../cpus.txt)
|
||||||
|
|
||||||
|
ifeq (,$(EFM32_INFO))
|
||||||
|
$(error Unable to read CPU information for $(CPU_MODEL))
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Export variables to use in this build.
|
||||||
|
export EFM32_FAMILY = $(word 2, $(EFM32_INFO))
|
||||||
|
export EFM32_SERIES = $(word 3, $(EFM32_INFO))
|
||||||
|
export EFM32_ARCHITECTURE = $(word 4, $(EFM32_INFO))
|
||||||
|
|
||||||
|
export EFM32_FLASH_START = $(word 5, $(EFM32_INFO))
|
||||||
|
export EFM32_FLASH_SIZE = $(word 6, $(EFM32_INFO))
|
||||||
|
export EFM32_SRAM_START = $(word 7, $(EFM32_INFO))
|
||||||
|
export EFM32_SRAM_SIZE = $(word 8, $(EFM32_INFO))
|
||||||
|
|
||||||
|
export EFM32_CRYPTO = $(word 9, $(EFM32_INFO))
|
||||||
|
export EFM32_TRNG = $(word 10, $(EFM32_INFO))
|
||||||
|
export EFM32_RADIO = $(word 11, $(EFM32_INFO))
|
||||||
6
cpu/efm32/families/efr32mg1p/Makefile
Normal file
6
cpu/efm32/families/efr32mg1p/Makefile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
MODULE = cpu
|
||||||
|
|
||||||
|
# (file triggers compiler bug. see #5775)
|
||||||
|
SRC_NOLTO += vectors.c
|
||||||
|
|
||||||
|
include $(RIOTBASE)/Makefile.base
|
||||||
27
cpu/efm32/families/efr32mg1p/cpus.txt
Normal file
27
cpu/efm32/families/efr32mg1p/cpus.txt
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# This file is automatically generated, and should not be changed. There is
|
||||||
|
# propbably little reason to edit this file anyway, since it should already
|
||||||
|
# contain all information for the EFR32MG1P family of CPUs.
|
||||||
|
|
||||||
|
# The intended usage is to grep for the exact model name, and split by spaces
|
||||||
|
# to get the required information.
|
||||||
|
|
||||||
|
# CPU - Family - Series - Architecture - Flash base - Flash size - SRAM base - SRAM size - Crypto? - TRNG? - Radio?
|
||||||
|
efr32mg1p632f256gm32 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p132f256gm48 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p233f256gm48 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p132f256im32 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p232f256im32 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p133f256gm48 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p232f256gm48 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p732f256im32 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p232f256gj43 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p232f256gm32 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p231f256gm48 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p732f256gm32 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p232f256im48 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p132f256im48 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p632f256im32 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p131f256gm48 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p132f256gm32 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p233f256im48 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
|
efr32mg1p132f256gj43 efr32mg1p 1 cortex-m4f 0x00000000 0x00040000 0x20000000 0x00007c00 1 0 1
|
||||||
@ -49,12 +49,63 @@ extern "C" {
|
|||||||
#ifndef EM_DEVICE_H
|
#ifndef EM_DEVICE_H
|
||||||
#define EM_DEVICE_H
|
#define EM_DEVICE_H
|
||||||
|
|
||||||
#if defined(EFR32MG1P132F256GM48)
|
#if defined(EFR32MG1P131F256GM48)
|
||||||
#include "efr32mg1p132f256gm48.h"
|
#include "efr32mg1p131f256gm48.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P132F256GJ43)
|
||||||
|
#include "efr32mg1p132f256gj43.h"
|
||||||
|
|
||||||
#elif defined(EFR32MG1P132F256GM32)
|
#elif defined(EFR32MG1P132F256GM32)
|
||||||
#include "efr32mg1p132f256gm32.h"
|
#include "efr32mg1p132f256gm32.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P132F256GM48)
|
||||||
|
#include "efr32mg1p132f256gm48.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P132F256IM32)
|
||||||
|
#include "efr32mg1p132f256im32.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P132F256IM48)
|
||||||
|
#include "efr32mg1p132f256im48.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P133F256GM48)
|
||||||
|
#include "efr32mg1p133f256gm48.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P231F256GM48)
|
||||||
|
#include "efr32mg1p231f256gm48.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P232F256GJ43)
|
||||||
|
#include "efr32mg1p232f256gj43.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P232F256GM32)
|
||||||
|
#include "efr32mg1p232f256gm32.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P232F256GM48)
|
||||||
|
#include "efr32mg1p232f256gm48.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P232F256IM32)
|
||||||
|
#include "efr32mg1p232f256im32.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P232F256IM48)
|
||||||
|
#include "efr32mg1p232f256im48.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P233F256GM48)
|
||||||
|
#include "efr32mg1p233f256gm48.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P233F256IM48)
|
||||||
|
#include "efr32mg1p233f256im48.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P632F256GM32)
|
||||||
|
#include "efr32mg1p632f256gm32.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P632F256IM32)
|
||||||
|
#include "efr32mg1p632f256im32.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P732F256GM32)
|
||||||
|
#include "efr32mg1p732f256gm32.h"
|
||||||
|
|
||||||
|
#elif defined(EFR32MG1P732F256IM32)
|
||||||
|
#include "efr32mg1p732f256im32.h"
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#error "em_device.h: PART NUMBER undefined"
|
#error "em_device.h: PART NUMBER undefined"
|
||||||
#endif
|
#endif
|
||||||
@ -62,3 +113,4 @@ extern "C" {
|
|||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -19,7 +19,6 @@
|
|||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include "vectors_cortexm.h"
|
#include "vectors_cortexm.h"
|
||||||
|
|
||||||
/* define a local dummy handler as it needs to be in the same compilation unit
|
/* define a local dummy handler as it needs to be in the same compilation unit
|
||||||
@ -31,7 +30,13 @@ void dummy_handler(void)
|
|||||||
|
|
||||||
/* Silicon Labs specific interrupt vector */
|
/* Silicon Labs specific interrupt vector */
|
||||||
WEAK_DEFAULT void isr_emu(void);
|
WEAK_DEFAULT void isr_emu(void);
|
||||||
|
WEAK_DEFAULT void isr_frc_pri(void);
|
||||||
WEAK_DEFAULT void isr_wdog0(void);
|
WEAK_DEFAULT void isr_wdog0(void);
|
||||||
|
WEAK_DEFAULT void isr_frc(void);
|
||||||
|
WEAK_DEFAULT void isr_modem(void);
|
||||||
|
WEAK_DEFAULT void isr_rac_seq(void);
|
||||||
|
WEAK_DEFAULT void isr_rac_rsm(void);
|
||||||
|
WEAK_DEFAULT void isr_bufc(void);
|
||||||
WEAK_DEFAULT void isr_ldma(void);
|
WEAK_DEFAULT void isr_ldma(void);
|
||||||
WEAK_DEFAULT void isr_gpio_even(void);
|
WEAK_DEFAULT void isr_gpio_even(void);
|
||||||
WEAK_DEFAULT void isr_timer0(void);
|
WEAK_DEFAULT void isr_timer0(void);
|
||||||
@ -51,14 +56,24 @@ WEAK_DEFAULT void isr_cmu(void);
|
|||||||
WEAK_DEFAULT void isr_msc(void);
|
WEAK_DEFAULT void isr_msc(void);
|
||||||
WEAK_DEFAULT void isr_crypto(void);
|
WEAK_DEFAULT void isr_crypto(void);
|
||||||
WEAK_DEFAULT void isr_letimer0(void);
|
WEAK_DEFAULT void isr_letimer0(void);
|
||||||
|
WEAK_DEFAULT void isr_agc(void);
|
||||||
|
WEAK_DEFAULT void isr_protimer(void);
|
||||||
WEAK_DEFAULT void isr_rtcc(void);
|
WEAK_DEFAULT void isr_rtcc(void);
|
||||||
|
WEAK_DEFAULT void isr_synth(void);
|
||||||
WEAK_DEFAULT void isr_cryotimer(void);
|
WEAK_DEFAULT void isr_cryotimer(void);
|
||||||
|
WEAK_DEFAULT void isr_rfsense(void);
|
||||||
WEAK_DEFAULT void isr_fpueh(void);
|
WEAK_DEFAULT void isr_fpueh(void);
|
||||||
|
|
||||||
/* interrupt vector table */
|
/* interrupt vector table */
|
||||||
ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
|
ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
|
||||||
[ 0] = isr_emu, /* EMU */
|
[ 0] = isr_emu, /* EMU */
|
||||||
|
[ 1] = isr_frc_pri, /* FRC_PRI */
|
||||||
[ 2] = isr_wdog0, /* WDOG0 */
|
[ 2] = isr_wdog0, /* WDOG0 */
|
||||||
|
[ 3] = isr_frc, /* FRC */
|
||||||
|
[ 4] = isr_modem, /* MODEM */
|
||||||
|
[ 5] = isr_rac_seq, /* RAC_SEQ */
|
||||||
|
[ 6] = isr_rac_rsm, /* RAC_RSM */
|
||||||
|
[ 7] = isr_bufc, /* BUFC */
|
||||||
[ 8] = isr_ldma, /* LDMA */
|
[ 8] = isr_ldma, /* LDMA */
|
||||||
[ 9] = isr_gpio_even, /* GPIO_EVEN */
|
[ 9] = isr_gpio_even, /* GPIO_EVEN */
|
||||||
[10] = isr_timer0, /* TIMER0 */
|
[10] = isr_timer0, /* TIMER0 */
|
||||||
@ -78,7 +93,11 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
|
|||||||
[24] = isr_msc, /* MSC */
|
[24] = isr_msc, /* MSC */
|
||||||
[25] = isr_crypto, /* CRYPTO */
|
[25] = isr_crypto, /* CRYPTO */
|
||||||
[26] = isr_letimer0, /* LETIMER0 */
|
[26] = isr_letimer0, /* LETIMER0 */
|
||||||
|
[27] = isr_agc, /* AGC */
|
||||||
|
[28] = isr_protimer, /* PROTIMER */
|
||||||
[29] = isr_rtcc, /* RTCC */
|
[29] = isr_rtcc, /* RTCC */
|
||||||
|
[30] = isr_synth, /* SYNTH */
|
||||||
[31] = isr_cryotimer, /* CRYOTIMER */
|
[31] = isr_cryotimer, /* CRYOTIMER */
|
||||||
|
[32] = isr_rfsense, /* RFSENSE */
|
||||||
[33] = isr_fpueh, /* FPUEH */
|
[33] = isr_fpueh, /* FPUEH */
|
||||||
};
|
};
|
||||||
@ -7,9 +7,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup cpu_efr32mg1p Silicon Labs EFR32MG1P
|
* @defgroup cpu_efm32 Silicon Labs EFM32/EFR32/EZR32
|
||||||
* @ingroup cpu
|
* @ingroup cpu
|
||||||
* @brief Support for the Silicon Labs EFR32MG1P CPU
|
* @brief Support for Silicon Labs EFM32/EFR32/EZR32 CPUs
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
* @file
|
* @file
|
||||||
@ -31,12 +31,12 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief ARM Cortex-M4 specific CPU configuration
|
* @brief ARM Cortex-M specific CPU configuration
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
#define CPU_DEFAULT_IRQ_PRIO (1U)
|
#define CPU_DEFAULT_IRQ_PRIO (1U)
|
||||||
#define CPU_IRQ_NUMOF (FPUEH_IRQn + 1)
|
#define CPU_IRQ_NUMOF (EXT_IRQ_COUNT + 1)
|
||||||
#define CPU_FLASH_BASE FLASH_BASE
|
#define CPU_FLASH_BASE (FLASH_BASE)
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
* @file
|
* @file
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_adc
|
* @ingroup drivers_periph_adc
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_cpuid
|
* @ingroup drivers_periph_cpuid
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_dac
|
* @ingroup drivers_periph_dac
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_flashpage
|
* @ingroup drivers_periph_flashpage
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_gpio
|
* @ingroup drivers_periph_gpio
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_hwrng
|
* @ingroup drivers_periph_hwrng
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_i2c
|
* @ingroup drivers_periph_i2c
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_pm
|
* @ingroup drivers_periph_pm
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_pwm
|
* @ingroup drivers_periph_pwm
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_rtc
|
* @ingroup drivers_periph_rtc
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_rtc
|
* @ingroup drivers_periph_rtc
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_rtt
|
* @ingroup drivers_periph_rtt
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_rtt
|
* @ingroup drivers_periph_rtt
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_spi
|
* @ingroup drivers_periph_spi
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_timer
|
* @ingroup drivers_periph_timer
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup cpu_efm32_common
|
* @ingroup cpu_efm32
|
||||||
* @ingroup drivers_periph_uart
|
* @ingroup drivers_periph_uart
|
||||||
* @{
|
* @{
|
||||||
*
|
*
|
||||||
@ -1,20 +0,0 @@
|
|||||||
# the em_device.h header requires a global define with the cpu model
|
|
||||||
export CFLAGS += -D$(shell echo $(CPU_MODEL) | tr 'a-z' 'A-Z')
|
|
||||||
|
|
||||||
# include emlib package
|
|
||||||
USEPKG += emlib
|
|
||||||
|
|
||||||
# include efm32 common
|
|
||||||
USEMODULE += efm32_common
|
|
||||||
|
|
||||||
# include common periph module
|
|
||||||
USEMODULE += periph_common
|
|
||||||
|
|
||||||
# include efm32 common periph drivers
|
|
||||||
USEMODULE += efm32_common_periph
|
|
||||||
|
|
||||||
# include layered power management
|
|
||||||
USEMODULE += pm_layered
|
|
||||||
|
|
||||||
# export the common include directory
|
|
||||||
export INCLUDES += -I$(RIOTCPU)/efm32_common/include
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
/**
|
|
||||||
* @defgroup cpu_efm32_common Silicon Labs Exx32 MCU
|
|
||||||
* @ingroup cpu
|
|
||||||
* @brief Common implementations for the Exx32 family of CPUs
|
|
||||||
*/
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
MODULE = efm32_common_periph
|
|
||||||
|
|
||||||
include $(RIOTMAKE)/periph.mk
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
# define the module that is build
|
|
||||||
MODULE = cpu
|
|
||||||
|
|
||||||
# add a list of subdirectories, that should also be build
|
|
||||||
DIRS = periph $(RIOTCPU)/cortexm_common $(RIOTCPU)/efm32_common
|
|
||||||
|
|
||||||
# (file triggers compiler bug. see #5775)
|
|
||||||
SRC_NOLTO += vectors.c
|
|
||||||
|
|
||||||
include $(RIOTBASE)/Makefile.base
|
|
||||||
@ -1 +0,0 @@
|
|||||||
include $(RIOTCPU)/efm32_common/Makefile.dep
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
|
|
||||||
include $(RIOTCPU)/efm32_common/Makefile.features
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
export CPU_ARCH = cortex-m4
|
|
||||||
export CPU_FAM = efr32mg1p
|
|
||||||
export CPU_SERIES = 1
|
|
||||||
|
|
||||||
# include vendor device headers
|
|
||||||
export INCLUDES += -I$(RIOTCPU)/efr32mg1p/include/vendor
|
|
||||||
|
|
||||||
# include cortexm_common
|
|
||||||
include $(RIOTMAKE)/arch/cortexm.inc.mk
|
|
||||||
|
|
||||||
# include efm32_common
|
|
||||||
include $(RIOTCPU)/efm32_common/Makefile.include
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* @defgroup cpu_efr32mg1p Silicon Labs EFR32MG1P
|
|
||||||
* @ingroup cpu
|
|
||||||
* @brief Implementation of Silicon Labs's EFR32MG1P MCU
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup cpu_efr32mg1p_definitions Silicon Labs EFR32MG1P definitions
|
|
||||||
* @ingroup cpu_efr32mg1p
|
|
||||||
*/
|
|
||||||
@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2015-2017 Freie Universität Berlin
|
|
||||||
*
|
|
||||||
* This file is subject to the terms and conditions of the GNU Lesser
|
|
||||||
* General Public License v2.1. See the file LICENSE in the top level
|
|
||||||
* directory for more details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @addtogroup cpu_efr32mg1p
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @file
|
|
||||||
* @brief Memory definitions for the EFR32MG1P132F256GM32 CPU
|
|
||||||
*
|
|
||||||
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
|
|
||||||
* @author Bas Stottelaar <basstottelaar@gmail.com>
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
MEMORY
|
|
||||||
{
|
|
||||||
rom (rx) : ORIGIN = 0x00000000, LENGTH = 262144
|
|
||||||
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 31744
|
|
||||||
}
|
|
||||||
|
|
||||||
INCLUDE cortexm_base.ld
|
|
||||||
@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2015-2017 Freie Universität Berlin
|
|
||||||
*
|
|
||||||
* This file is subject to the terms and conditions of the GNU Lesser
|
|
||||||
* General Public License v2.1. See the file LICENSE in the top level
|
|
||||||
* directory for more details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @addtogroup cpu_efr32mg1p
|
|
||||||
* @{
|
|
||||||
*
|
|
||||||
* @file
|
|
||||||
* @brief Memory definitions for the EFR32MG1P132F256GM48 CPU
|
|
||||||
*
|
|
||||||
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
|
|
||||||
* @author Bas Stottelaar <basstottelaar@gmail.com>
|
|
||||||
*
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
MEMORY
|
|
||||||
{
|
|
||||||
rom (rx) : ORIGIN = 0x00000000, LENGTH = 262144
|
|
||||||
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 31744
|
|
||||||
}
|
|
||||||
|
|
||||||
INCLUDE cortexm_base.ld
|
|
||||||
Loading…
x
Reference in New Issue
Block a user