kinetis: Add support for NXP Kinetis KW41Z SoC
This commit is contained in:
parent
6dbc8d7e17
commit
68ea6b3316
@ -63,7 +63,18 @@
|
|||||||
|
|
||||||
#elif defined(KINETIS_CORE_Z)
|
#elif defined(KINETIS_CORE_Z)
|
||||||
/* Kinetis KWxxZ */
|
/* Kinetis KWxxZ */
|
||||||
/* TODO */
|
#if defined(CPU_MODEL_MKW21Z256VHT4) || \
|
||||||
|
defined(CPU_MODEL_MKW21Z512VHT4)
|
||||||
|
#include "vendor/MKW21Z4.h"
|
||||||
|
#elif defined(CPU_MODEL_MKW31Z256VHT4) || \
|
||||||
|
defined(CPU_MODEL_MKW31Z512CAT4) || \
|
||||||
|
defined(CPU_MODEL_MKW31Z512VHT4)
|
||||||
|
#include "vendor/MKW31Z4.h"
|
||||||
|
#elif defined(CPU_MODEL_MKW41Z256VHT4) || \
|
||||||
|
defined(CPU_MODEL_MKW41Z512CAT4) || \
|
||||||
|
defined(CPU_MODEL_MKW41Z512VHT4)
|
||||||
|
#include "vendor/MKW41Z4.h"
|
||||||
|
#endif
|
||||||
#endif /* KINETIS_CORE_x */
|
#endif /* KINETIS_CORE_x */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@ -121,6 +121,7 @@ void isr_lvd_lvw(void); /**< PMC controller low-voltage detect, low-voltage
|
|||||||
void isr_mcg(void); /**< MCG interrupt handler */
|
void isr_mcg(void); /**< MCG interrupt handler */
|
||||||
void isr_mcm(void); /**< MCM normal interrupt handler */
|
void isr_mcm(void); /**< MCM normal interrupt handler */
|
||||||
void isr_pdb0(void); /**< PDB0 interrupt handler */
|
void isr_pdb0(void); /**< PDB0 interrupt handler */
|
||||||
|
void isr_pit(void); /**< PIT any channel interrupt handler */
|
||||||
void isr_pit0(void); /**< PIT timer channel 0 interrupt handler */
|
void isr_pit0(void); /**< PIT timer channel 0 interrupt handler */
|
||||||
void isr_pit1(void); /**< PIT timer channel 1 interrupt handler */
|
void isr_pit1(void); /**< PIT timer channel 1 interrupt handler */
|
||||||
void isr_pit2(void); /**< PIT timer channel 2 interrupt handler */
|
void isr_pit2(void); /**< PIT timer channel 2 interrupt handler */
|
||||||
@ -130,6 +131,9 @@ void isr_portb(void); /**< Port B pin detect interrupt handler */
|
|||||||
void isr_portc(void); /**< Port C pin detect interrupt handler */
|
void isr_portc(void); /**< Port C pin detect interrupt handler */
|
||||||
void isr_portd(void); /**< Port D pin detect interrupt handler */
|
void isr_portd(void); /**< Port D pin detect interrupt handler */
|
||||||
void isr_porte(void); /**< Port E pin detect interrupt handler */
|
void isr_porte(void); /**< Port E pin detect interrupt handler */
|
||||||
|
void isr_portb_portc(void); /**< Port B, C combined pin detect interrupt handler */
|
||||||
|
void isr_radio_0(void); /**< Radio transceiver INT0 interrupt handler */
|
||||||
|
void isr_radio_1(void); /**< Radio transceiver INT1 interrupt handler */
|
||||||
void isr_rng(void); /**< RNG interrupt handler */
|
void isr_rng(void); /**< RNG interrupt handler */
|
||||||
void isr_rtc(void); /**< RTC interrupt handler */
|
void isr_rtc(void); /**< RTC interrupt handler */
|
||||||
void isr_rtc_seconds(void); /**< RTC seconds interrupt handler */
|
void isr_rtc_seconds(void); /**< RTC seconds interrupt handler */
|
||||||
@ -141,6 +145,7 @@ void isr_swi(void); /**< Software interrupt handler */
|
|||||||
void isr_tpm0(void); /**< TPM0 interrupt handler */
|
void isr_tpm0(void); /**< TPM0 interrupt handler */
|
||||||
void isr_tpm1(void); /**< TPM1 interrupt handler */
|
void isr_tpm1(void); /**< TPM1 interrupt handler */
|
||||||
void isr_tpm2(void); /**< TPM2 interrupt handler */
|
void isr_tpm2(void); /**< TPM2 interrupt handler */
|
||||||
|
void isr_trng0(void); /**< TRNG0 interrupt handler */
|
||||||
void isr_tsi0(void); /**< TSI0 interrupt handler */
|
void isr_tsi0(void); /**< TSI0 interrupt handler */
|
||||||
void isr_uart0_err(void); /**< UART0 error interrupt handler */
|
void isr_uart0_err(void); /**< UART0 error interrupt handler */
|
||||||
void isr_uart0_lon(void); /**< UART0 LON interrupt handler */
|
void isr_uart0_lon(void); /**< UART0 LON interrupt handler */
|
||||||
|
|||||||
12944
cpu/kinetis/include/vendor/MKW21Z4.h
vendored
Normal file
12944
cpu/kinetis/include/vendor/MKW21Z4.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
12312
cpu/kinetis/include/vendor/MKW31Z4.h
vendored
Normal file
12312
cpu/kinetis/include/vendor/MKW31Z4.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
13015
cpu/kinetis/include/vendor/MKW41Z4.h
vendored
Normal file
13015
cpu/kinetis/include/vendor/MKW41Z4.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -179,6 +179,9 @@ WEAK_DEFAULT void isr_portb(void);
|
|||||||
WEAK_DEFAULT void isr_portc(void);
|
WEAK_DEFAULT void isr_portc(void);
|
||||||
WEAK_DEFAULT void isr_portd(void);
|
WEAK_DEFAULT void isr_portd(void);
|
||||||
WEAK_DEFAULT void isr_porte(void);
|
WEAK_DEFAULT void isr_porte(void);
|
||||||
|
WEAK_DEFAULT void isr_portb_portc(void);
|
||||||
|
WEAK_DEFAULT void isr_radio_0(void);
|
||||||
|
WEAK_DEFAULT void isr_radio_1(void);
|
||||||
WEAK_DEFAULT void isr_rng(void);
|
WEAK_DEFAULT void isr_rng(void);
|
||||||
WEAK_DEFAULT void isr_rtc(void);
|
WEAK_DEFAULT void isr_rtc(void);
|
||||||
WEAK_DEFAULT void isr_rtc_seconds(void);
|
WEAK_DEFAULT void isr_rtc_seconds(void);
|
||||||
@ -191,6 +194,7 @@ WEAK_DEFAULT void isr_tpm0(void);
|
|||||||
WEAK_DEFAULT void isr_tpm1(void);
|
WEAK_DEFAULT void isr_tpm1(void);
|
||||||
WEAK_DEFAULT void isr_tpm2(void);
|
WEAK_DEFAULT void isr_tpm2(void);
|
||||||
WEAK_DEFAULT void isr_tsi0(void);
|
WEAK_DEFAULT void isr_tsi0(void);
|
||||||
|
WEAK_DEFAULT void isr_trng0(void);
|
||||||
WEAK_DEFAULT void isr_uart0_err(void);
|
WEAK_DEFAULT void isr_uart0_err(void);
|
||||||
WEAK_DEFAULT void isr_uart0_lon(void);
|
WEAK_DEFAULT void isr_uart0_lon(void);
|
||||||
WEAK_DEFAULT void isr_uart0_rx_tx(void);
|
WEAK_DEFAULT void isr_uart0_rx_tx(void);
|
||||||
|
|||||||
@ -38,6 +38,7 @@
|
|||||||
#define FTFL_Collision_IRQn Read_Collision_IRQn
|
#define FTFL_Collision_IRQn Read_Collision_IRQn
|
||||||
#define PMC_IRQn LVD_LVW_IRQn
|
#define PMC_IRQn LVD_LVW_IRQn
|
||||||
#define Watchdog_IRQn WDOG_EWM_IRQn
|
#define Watchdog_IRQn WDOG_EWM_IRQn
|
||||||
|
#define LVD_LVW_DCDC_IRQn LVD_LVW_IRQn
|
||||||
|
|
||||||
#include "vectors_kinetis.h"
|
#include "vectors_kinetis.h"
|
||||||
|
|
||||||
@ -125,21 +126,29 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
|
|||||||
#elif defined(DMA_INT_INT15_MASK)
|
#elif defined(DMA_INT_INT15_MASK)
|
||||||
[DMA15_IRQn ] = isr_dma15, /* DMA Channel 15 Transfer Complete */
|
[DMA15_IRQn ] = isr_dma15, /* DMA Channel 15 Transfer Complete */
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef KINETIS_CORE_Z
|
||||||
[DMA_Error_IRQn ] = isr_dma_error, /* DMA Error Interrupt */
|
[DMA_Error_IRQn ] = isr_dma_error, /* DMA Error Interrupt */
|
||||||
|
#endif
|
||||||
#endif /* defined(DMA0) */
|
#endif /* defined(DMA0) */
|
||||||
#ifdef MCM
|
#if defined(MCM) && !defined(KINETIS_CORE_Z)
|
||||||
[MCM_IRQn ] = isr_mcm, /* Normal Interrupt */
|
[MCM_IRQn ] = isr_mcm, /* Normal Interrupt */
|
||||||
#endif
|
#endif
|
||||||
#if defined(FTFA)
|
#if defined(FTFA)
|
||||||
[FTFA_IRQn ] = isr_ftfa, /* FTFA command complete */
|
[FTFA_IRQn ] = isr_ftfa, /* FTFA command complete */
|
||||||
|
#ifndef KINETIS_CORE_Z
|
||||||
[FTFA_Collision_IRQn] = isr_ftfa_collision, /* FTFA read collision */
|
[FTFA_Collision_IRQn] = isr_ftfa_collision, /* FTFA read collision */
|
||||||
|
#endif
|
||||||
#elif defined(FTFE)
|
#elif defined(FTFE)
|
||||||
[FTFE_IRQn ] = isr_ftfe, /* FTFE command complete */
|
[FTFE_IRQn ] = isr_ftfe, /* FTFE command complete */
|
||||||
|
#ifndef KINETIS_CORE_Z
|
||||||
[FTFE_Collision_IRQn] = isr_ftfe_collision, /* FTFE read collision */
|
[FTFE_Collision_IRQn] = isr_ftfe_collision, /* FTFE read collision */
|
||||||
|
#endif
|
||||||
#elif defined(FTFL)
|
#elif defined(FTFL)
|
||||||
[FTFL_IRQn ] = isr_ftfl, /* FTFL command complete */
|
[FTFL_IRQn ] = isr_ftfl, /* FTFL command complete */
|
||||||
|
#ifndef KINETIS_CORE_Z
|
||||||
[FTFL_Collision_IRQn] = isr_ftfl_collision, /* FTFL read collision */
|
[FTFL_Collision_IRQn] = isr_ftfl_collision, /* FTFL read collision */
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#ifdef PMC
|
#ifdef PMC
|
||||||
[LVD_LVW_IRQn ] = isr_lvd_lvw, /* Low Voltage Detect, Low Voltage Warning */
|
[LVD_LVW_IRQn ] = isr_lvd_lvw, /* Low Voltage Detect, Low Voltage Warning */
|
||||||
#endif
|
#endif
|
||||||
@ -245,11 +254,15 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
|
|||||||
[RTC_Seconds_IRQn] = isr_rtc_seconds, /* RTC seconds interrupt */
|
[RTC_Seconds_IRQn] = isr_rtc_seconds, /* RTC seconds interrupt */
|
||||||
#endif
|
#endif
|
||||||
#ifdef PIT
|
#ifdef PIT
|
||||||
|
#ifdef KINETIS_CORE_Z
|
||||||
|
[PIT_IRQn ] = isr_pit, /* PIT any channel interrupt */
|
||||||
|
#else
|
||||||
[PIT0_IRQn ] = isr_pit0, /* PIT timer channel 0 interrupt */
|
[PIT0_IRQn ] = isr_pit0, /* PIT timer channel 0 interrupt */
|
||||||
[PIT1_IRQn ] = isr_pit1, /* PIT timer channel 1 interrupt */
|
[PIT1_IRQn ] = isr_pit1, /* PIT timer channel 1 interrupt */
|
||||||
[PIT2_IRQn ] = isr_pit2, /* PIT timer channel 2 interrupt */
|
[PIT2_IRQn ] = isr_pit2, /* PIT timer channel 2 interrupt */
|
||||||
[PIT3_IRQn ] = isr_pit3, /* PIT timer channel 3 interrupt */
|
[PIT3_IRQn ] = isr_pit3, /* PIT timer channel 3 interrupt */
|
||||||
#endif
|
#endif
|
||||||
|
#endif /* defined(PIT) */
|
||||||
#ifdef PDB0
|
#ifdef PDB0
|
||||||
[PDB0_IRQn ] = isr_pdb0, /* PDB0 Interrupt */
|
[PDB0_IRQn ] = isr_pdb0, /* PDB0 Interrupt */
|
||||||
#endif
|
#endif
|
||||||
@ -274,6 +287,11 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
|
|||||||
#ifdef PORTA
|
#ifdef PORTA
|
||||||
[PORTA_IRQn ] = isr_porta, /* Port A interrupt */
|
[PORTA_IRQn ] = isr_porta, /* Port A interrupt */
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef KINETIS_CORE_Z
|
||||||
|
#if defined(PORTB) && defined(PORTC)
|
||||||
|
[PORTB_PORTC_IRQn] = isr_portb_portc, /* Port B, C combined interrupt */
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
#ifdef PORTB
|
#ifdef PORTB
|
||||||
[PORTB_IRQn ] = isr_portb, /* Port B interrupt */
|
[PORTB_IRQn ] = isr_portb, /* Port B interrupt */
|
||||||
#endif
|
#endif
|
||||||
@ -286,6 +304,7 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
|
|||||||
#ifdef PORTE
|
#ifdef PORTE
|
||||||
[PORTE_IRQn ] = isr_porte, /* Port E interrupt */
|
[PORTE_IRQn ] = isr_porte, /* Port E interrupt */
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#if __CORTEX_M >= 3
|
#if __CORTEX_M >= 3
|
||||||
[SWI_IRQn ] = isr_swi, /* Software interrupt */
|
[SWI_IRQn ] = isr_swi, /* Software interrupt */
|
||||||
#endif
|
#endif
|
||||||
@ -350,6 +369,12 @@ ISR_VECTOR(1) const isr_t vector_cpu[CPU_IRQ_NUMOF] = {
|
|||||||
#ifdef USBHS
|
#ifdef USBHS
|
||||||
[USBHS_IRQn ] = isr_usbhs, /* USB high speed OTG interrupt */
|
[USBHS_IRQn ] = isr_usbhs, /* USB high speed OTG interrupt */
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef BTLE_RF
|
||||||
|
[Radio_0_IRQn ] = isr_radio_0, /* Radio INT0 interrupt */
|
||||||
|
#endif
|
||||||
|
#ifdef ZLL
|
||||||
|
[Radio_1_IRQn ] = isr_radio_1, /* Radio INT1 interrupt */
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user