remove some of sdk files
This commit is contained in:
parent
dfd5613a7e
commit
f8b5071978
@ -1,155 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2010 - 2017, Nordic Semiconductor ASA
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form, except as embedded into a Nordic
|
|
||||||
Semiconductor ASA integrated circuit in a product or a software update for
|
|
||||||
such product, must reproduce the above copyright notice, this list of
|
|
||||||
conditions and the following disclaimer in the documentation and/or other
|
|
||||||
materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from this
|
|
||||||
software without specific prior written permission.
|
|
||||||
|
|
||||||
4. This software, with or without modification, must only be used with a
|
|
||||||
Nordic Semiconductor ASA integrated circuit.
|
|
||||||
|
|
||||||
5. Any software provided in binary form under this license must not be reverse
|
|
||||||
engineered, decompiled, modified and/or disassembled.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
||||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
||||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
||||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _COMPILER_ABSTRACTION_H
|
|
||||||
#define _COMPILER_ABSTRACTION_H
|
|
||||||
|
|
||||||
/*lint ++flb "Enter library region" */
|
|
||||||
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
|
|
||||||
#ifndef __ASM
|
|
||||||
#define __ASM __asm
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __INLINE
|
|
||||||
#define __INLINE __inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __WEAK
|
|
||||||
#define __WEAK __weak
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __ALIGN
|
|
||||||
#define __ALIGN(n) __align(n)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __PACKED
|
|
||||||
#define __PACKED __packed
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define GET_SP() __current_sp()
|
|
||||||
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
|
|
||||||
#ifndef __ASM
|
|
||||||
#define __ASM __asm
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __INLINE
|
|
||||||
#define __INLINE inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __WEAK
|
|
||||||
#define __WEAK __weak
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __ALIGN
|
|
||||||
#define STRING_PRAGMA(x) _Pragma(#x)
|
|
||||||
#define __ALIGN(n) STRING_PRAGMA(data_alignment = n)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __PACKED
|
|
||||||
#define __PACKED __packed
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define GET_SP() __get_SP()
|
|
||||||
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
|
|
||||||
#ifndef __ASM
|
|
||||||
#define __ASM __asm
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __INLINE
|
|
||||||
#define __INLINE inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __WEAK
|
|
||||||
#define __WEAK __attribute__((weak))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __ALIGN
|
|
||||||
#define __ALIGN(n) __attribute__((aligned(n)))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __PACKED
|
|
||||||
#define __PACKED __attribute__((packed))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define GET_SP() gcc_current_sp()
|
|
||||||
|
|
||||||
static inline unsigned int gcc_current_sp(void)
|
|
||||||
{
|
|
||||||
register unsigned sp __ASM("sp");
|
|
||||||
return sp;
|
|
||||||
}
|
|
||||||
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
|
|
||||||
#ifndef __ASM
|
|
||||||
#define __ASM __asm
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __INLINE
|
|
||||||
#define __INLINE inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __WEAK
|
|
||||||
#define __WEAK __attribute__((weak))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __ALIGN
|
|
||||||
#define __ALIGN(n) __align(n)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Not defined for TASKING. */
|
|
||||||
#ifndef __PACKED
|
|
||||||
#define __PACKED
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define GET_SP() __get_MSP()
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*lint --flb "Leave library region" */
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,102 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2010 - 2017, Nordic Semiconductor ASA
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form, except as embedded into a Nordic
|
|
||||||
Semiconductor ASA integrated circuit in a product or a software update for
|
|
||||||
such product, must reproduce the above copyright notice, this list of
|
|
||||||
conditions and the following disclaimer in the documentation and/or other
|
|
||||||
materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from this
|
|
||||||
software without specific prior written permission.
|
|
||||||
|
|
||||||
4. This software, with or without modification, must only be used with a
|
|
||||||
Nordic Semiconductor ASA integrated circuit.
|
|
||||||
|
|
||||||
5. Any software provided in binary form under this license must not be reverse
|
|
||||||
engineered, decompiled, modified and/or disassembled.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
||||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
||||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
||||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef NRF_H
|
|
||||||
#define NRF_H
|
|
||||||
|
|
||||||
/* MDK version */
|
|
||||||
#define MDK_MAJOR_VERSION 8
|
|
||||||
#define MDK_MINOR_VERSION 15
|
|
||||||
#define MDK_MICRO_VERSION 0
|
|
||||||
|
|
||||||
/* Redefine "old" too-generic name NRF52 to NRF52832_XXAA to keep backwards compatibility. */
|
|
||||||
#if defined (NRF52)
|
|
||||||
#ifndef NRF52832_XXAA
|
|
||||||
#define NRF52832_XXAA
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define NRF52_SERIES for common use in nRF52 series devices. Only if not previously defined. */
|
|
||||||
#if defined (NRF52810_XXAA) || defined (NRF52832_XXAA) || defined (NRF52832_XXAB) || defined (NRF52840_XXAA)
|
|
||||||
#ifndef NRF52_SERIES
|
|
||||||
#define NRF52_SERIES
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
/* Do not include nrf specific files when building for PC host */
|
|
||||||
#elif defined(__unix)
|
|
||||||
/* Do not include nrf specific files when building for PC host */
|
|
||||||
#elif defined(__APPLE__)
|
|
||||||
/* Do not include nrf specific files when building for PC host */
|
|
||||||
#else
|
|
||||||
|
|
||||||
/* Device selection for device includes. */
|
|
||||||
#if defined (NRF51)
|
|
||||||
#include "nrf51.h"
|
|
||||||
#include "nrf51_bitfields.h"
|
|
||||||
#include "nrf51_deprecated.h"
|
|
||||||
#elif defined (NRF52840_XXAA)
|
|
||||||
#include "nrf52840.h"
|
|
||||||
#include "nrf52840_bitfields.h"
|
|
||||||
#include "nrf51_to_nrf52840.h"
|
|
||||||
#include "nrf52_to_nrf52840.h"
|
|
||||||
#elif defined (NRF52832_XXAA) || defined (NRF52832_XXAB)
|
|
||||||
#include "nrf52.h"
|
|
||||||
#include "nrf52_bitfields.h"
|
|
||||||
#include "nrf51_to_nrf52.h"
|
|
||||||
#include "nrf52_name_change.h"
|
|
||||||
#elif defined (NRF52810_XXAA)
|
|
||||||
#include "nrf52810.h"
|
|
||||||
#include "nrf52810_bitfields.h"
|
|
||||||
#include "nrf51_to_nrf52810.h"
|
|
||||||
#include "nrf52_to_nrf52810.h"
|
|
||||||
#else
|
|
||||||
#error "Device must be defined. See nrf.h."
|
|
||||||
#endif /* NRF51, NRF52832_XXAA, NRF52832_XXAB, NRF52810_XXAA, NRF52840_XXAA */
|
|
||||||
|
|
||||||
#include "compiler_abstraction.h"
|
|
||||||
|
|
||||||
#endif /* _WIN32 || __unix || __APPLE__ */
|
|
||||||
|
|
||||||
#endif /* NRF_H */
|
|
||||||
|
|
@ -1,963 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2010 - 2017, Nordic Semiconductor ASA
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form, except as embedded into a Nordic
|
|
||||||
Semiconductor ASA integrated circuit in a product or a software update for
|
|
||||||
such product, must reproduce the above copyright notice, this list of
|
|
||||||
conditions and the following disclaimer in the documentation and/or other
|
|
||||||
materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from this
|
|
||||||
software without specific prior written permission.
|
|
||||||
|
|
||||||
4. This software, with or without modification, must only be used with a
|
|
||||||
Nordic Semiconductor ASA integrated circuit.
|
|
||||||
|
|
||||||
5. Any software provided in binary form under this license must not be reverse
|
|
||||||
engineered, decompiled, modified and/or disassembled.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
||||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
||||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
||||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef NRF51_TO_NRF52_H
|
|
||||||
#define NRF51_TO_NRF52_H
|
|
||||||
|
|
||||||
/*lint ++flb "Enter library region */
|
|
||||||
|
|
||||||
/* This file is given to prevent your SW from not compiling with the name changes between nRF51 and nRF52 devices.
|
|
||||||
* It redefines the old nRF51 names into the new ones as long as the functionality is still supported. If the
|
|
||||||
* functionality is gone, there old names are not defined, so compilation will fail. Note that also includes macros
|
|
||||||
* from the nrf51_deprecated.h file. */
|
|
||||||
|
|
||||||
|
|
||||||
/* IRQ */
|
|
||||||
/* Several peripherals have been added to several indexes. Names of IRQ handlers and IRQ numbers have changed. */
|
|
||||||
#define UART0_IRQHandler UARTE0_UART0_IRQHandler
|
|
||||||
#define SPI0_TWI0_IRQHandler SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
|
|
||||||
#define SPI1_TWI1_IRQHandler SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
|
|
||||||
#define ADC_IRQHandler SAADC_IRQHandler
|
|
||||||
#define LPCOMP_IRQHandler COMP_LPCOMP_IRQHandler
|
|
||||||
#define SWI0_IRQHandler SWI0_EGU0_IRQHandler
|
|
||||||
#define SWI1_IRQHandler SWI1_EGU1_IRQHandler
|
|
||||||
#define SWI2_IRQHandler SWI2_EGU2_IRQHandler
|
|
||||||
#define SWI3_IRQHandler SWI3_EGU3_IRQHandler
|
|
||||||
#define SWI4_IRQHandler SWI4_EGU4_IRQHandler
|
|
||||||
#define SWI5_IRQHandler SWI5_EGU5_IRQHandler
|
|
||||||
|
|
||||||
#define UART0_IRQn UARTE0_UART0_IRQn
|
|
||||||
#define SPI0_TWI0_IRQn SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQn
|
|
||||||
#define SPI1_TWI1_IRQn SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQn
|
|
||||||
#define ADC_IRQn SAADC_IRQn
|
|
||||||
#define LPCOMP_IRQn COMP_LPCOMP_IRQn
|
|
||||||
#define SWI0_IRQn SWI0_EGU0_IRQn
|
|
||||||
#define SWI1_IRQn SWI1_EGU1_IRQn
|
|
||||||
#define SWI2_IRQn SWI2_EGU2_IRQn
|
|
||||||
#define SWI3_IRQn SWI3_EGU3_IRQn
|
|
||||||
#define SWI4_IRQn SWI4_EGU4_IRQn
|
|
||||||
#define SWI5_IRQn SWI5_EGU5_IRQn
|
|
||||||
|
|
||||||
|
|
||||||
/* UICR */
|
|
||||||
/* Register RBPCONF was renamed to APPROTECT. */
|
|
||||||
#define RBPCONF APPROTECT
|
|
||||||
|
|
||||||
#define UICR_RBPCONF_PALL_Pos UICR_APPROTECT_PALL_Pos
|
|
||||||
#define UICR_RBPCONF_PALL_Msk UICR_APPROTECT_PALL_Msk
|
|
||||||
#define UICR_RBPCONF_PALL_Enabled UICR_APPROTECT_PALL_Enabled
|
|
||||||
#define UICR_RBPCONF_PALL_Disabled UICR_APPROTECT_PALL_Disabled
|
|
||||||
|
|
||||||
|
|
||||||
/* GPIO */
|
|
||||||
/* GPIO port was renamed to P0. */
|
|
||||||
#define NRF_GPIO NRF_P0
|
|
||||||
#define NRF_GPIO_BASE NRF_P0_BASE
|
|
||||||
|
|
||||||
|
|
||||||
/* QDEC */
|
|
||||||
/* The registers PSELA, PSELB and PSELLED were restructured into a struct. */
|
|
||||||
#define PSELLED PSEL.LED
|
|
||||||
#define PSELA PSEL.A
|
|
||||||
#define PSELB PSEL.B
|
|
||||||
|
|
||||||
|
|
||||||
/* SPIS */
|
|
||||||
/* The registers PSELSCK, PSELMISO, PSELMOSI, PSELCSN were restructured into a struct. */
|
|
||||||
#define PSELSCK PSEL.SCK
|
|
||||||
#define PSELMISO PSEL.MISO
|
|
||||||
#define PSELMOSI PSEL.MOSI
|
|
||||||
#define PSELCSN PSEL.CSN
|
|
||||||
|
|
||||||
/* The registers RXDPTR, MAXRX, AMOUNTRX were restructured into a struct */
|
|
||||||
#define RXDPTR RXD.PTR
|
|
||||||
#define MAXRX RXD.MAXCNT
|
|
||||||
#define AMOUNTRX RXD.AMOUNT
|
|
||||||
|
|
||||||
#define SPIS_MAXRX_MAXRX_Pos SPIS_RXD_MAXCNT_MAXCNT_Pos
|
|
||||||
#define SPIS_MAXRX_MAXRX_Msk SPIS_RXD_MAXCNT_MAXCNT_Msk
|
|
||||||
|
|
||||||
#define SPIS_AMOUNTRX_AMOUNTRX_Pos SPIS_RXD_AMOUNT_AMOUNT_Pos
|
|
||||||
#define SPIS_AMOUNTRX_AMOUNTRX_Msk SPIS_RXD_AMOUNT_AMOUNT_Msk
|
|
||||||
|
|
||||||
/* The registers TXDPTR, MAXTX, AMOUNTTX were restructured into a struct */
|
|
||||||
#define TXDPTR TXD.PTR
|
|
||||||
#define MAXTX TXD.MAXCNT
|
|
||||||
#define AMOUNTTX TXD.AMOUNT
|
|
||||||
|
|
||||||
#define SPIS_MAXTX_MAXTX_Pos SPIS_TXD_MAXCNT_MAXCNT_Pos
|
|
||||||
#define SPIS_MAXTX_MAXTX_Msk SPIS_TXD_MAXCNT_MAXCNT_Msk
|
|
||||||
|
|
||||||
#define SPIS_AMOUNTTX_AMOUNTTX_Pos SPIS_TXD_AMOUNT_AMOUNT_Pos
|
|
||||||
#define SPIS_AMOUNTTX_AMOUNTTX_Msk SPIS_TXD_AMOUNT_AMOUNT_Msk
|
|
||||||
|
|
||||||
|
|
||||||
/* MPU */
|
|
||||||
/* Part of MPU module was renamed BPROT, while the rest was eliminated. */
|
|
||||||
#define NRF_MPU NRF_BPROT
|
|
||||||
|
|
||||||
/* Register DISABLEINDEBUG macros were affected. */
|
|
||||||
#define MPU_DISABLEINDEBUG_DISABLEINDEBUG_Pos BPROT_DISABLEINDEBUG_DISABLEINDEBUG_Pos
|
|
||||||
#define MPU_DISABLEINDEBUG_DISABLEINDEBUG_Msk BPROT_DISABLEINDEBUG_DISABLEINDEBUG_Msk
|
|
||||||
#define MPU_DISABLEINDEBUG_DISABLEINDEBUG_Enabled BPROT_DISABLEINDEBUG_DISABLEINDEBUG_Enabled
|
|
||||||
#define MPU_DISABLEINDEBUG_DISABLEINDEBUG_Disabled BPROT_DISABLEINDEBUG_DISABLEINDEBUG_Disabled
|
|
||||||
|
|
||||||
/* Registers PROTENSET0 and PROTENSET1 were affected and renamed as CONFIG0 and CONFIG1. */
|
|
||||||
#define PROTENSET0 CONFIG0
|
|
||||||
#define PROTENSET1 CONFIG1
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG63_Pos BPROT_CONFIG1_REGION63_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG63_Msk BPROT_CONFIG1_REGION63_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG63_Disabled BPROT_CONFIG1_REGION63_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG63_Enabled BPROT_CONFIG1_REGION63_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG63_Set BPROT_CONFIG1_REGION63_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG62_Pos BPROT_CONFIG1_REGION62_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG62_Msk BPROT_CONFIG1_REGION62_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG62_Disabled BPROT_CONFIG1_REGION62_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG62_Enabled BPROT_CONFIG1_REGION62_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG62_Set BPROT_CONFIG1_REGION62_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG61_Pos BPROT_CONFIG1_REGION61_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG61_Msk BPROT_CONFIG1_REGION61_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG61_Disabled BPROT_CONFIG1_REGION61_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG61_Enabled BPROT_CONFIG1_REGION61_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG61_Set BPROT_CONFIG1_REGION61_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG60_Pos BPROT_CONFIG1_REGION60_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG60_Msk BPROT_CONFIG1_REGION60_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG60_Disabled BPROT_CONFIG1_REGION60_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG60_Enabled BPROT_CONFIG1_REGION60_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG60_Set BPROT_CONFIG1_REGION60_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG59_Pos BPROT_CONFIG1_REGION59_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG59_Msk BPROT_CONFIG1_REGION59_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG59_Disabled BPROT_CONFIG1_REGION59_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG59_Enabled BPROT_CONFIG1_REGION59_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG59_Set BPROT_CONFIG1_REGION59_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG58_Pos BPROT_CONFIG1_REGION58_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG58_Msk BPROT_CONFIG1_REGION58_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG58_Disabled BPROT_CONFIG1_REGION58_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG58_Enabled BPROT_CONFIG1_REGION58_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG58_Set BPROT_CONFIG1_REGION58_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG57_Pos BPROT_CONFIG1_REGION57_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG57_Msk BPROT_CONFIG1_REGION57_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG57_Disabled BPROT_CONFIG1_REGION57_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG57_Enabled BPROT_CONFIG1_REGION57_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG57_Set BPROT_CONFIG1_REGION57_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG56_Pos BPROT_CONFIG1_REGION56_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG56_Msk BPROT_CONFIG1_REGION56_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG56_Disabled BPROT_CONFIG1_REGION56_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG56_Enabled BPROT_CONFIG1_REGION56_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG56_Set BPROT_CONFIG1_REGION56_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG55_Pos BPROT_CONFIG1_REGION55_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG55_Msk BPROT_CONFIG1_REGION55_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG55_Disabled BPROT_CONFIG1_REGION55_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG55_Enabled BPROT_CONFIG1_REGION55_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG55_Set BPROT_CONFIG1_REGION55_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG54_Pos BPROT_CONFIG1_REGION54_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG54_Msk BPROT_CONFIG1_REGION54_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG54_Disabled BPROT_CONFIG1_REGION54_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG54_Enabled BPROT_CONFIG1_REGION54_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG54_Set BPROT_CONFIG1_REGION54_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG53_Pos BPROT_CONFIG1_REGION53_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG53_Msk BPROT_CONFIG1_REGION53_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG53_Disabled BPROT_CONFIG1_REGION53_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG53_Enabled BPROT_CONFIG1_REGION53_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG53_Set BPROT_CONFIG1_REGION53_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG52_Pos BPROT_CONFIG1_REGION52_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG52_Msk BPROT_CONFIG1_REGION52_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG52_Disabled BPROT_CONFIG1_REGION52_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG52_Enabled BPROT_CONFIG1_REGION52_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG52_Set BPROT_CONFIG1_REGION52_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG51_Pos BPROT_CONFIG1_REGION51_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG51_Msk BPROT_CONFIG1_REGION51_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG51_Disabled BPROT_CONFIG1_REGION51_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG51_Enabled BPROT_CONFIG1_REGION51_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG51_Set BPROT_CONFIG1_REGION51_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG50_Pos BPROT_CONFIG1_REGION50_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG50_Msk BPROT_CONFIG1_REGION50_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG50_Disabled BPROT_CONFIG1_REGION50_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG50_Enabled BPROT_CONFIG1_REGION50_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG50_Set BPROT_CONFIG1_REGION50_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG49_Pos BPROT_CONFIG1_REGION49_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG49_Msk BPROT_CONFIG1_REGION49_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG49_Disabled BPROT_CONFIG1_REGION49_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG49_Enabled BPROT_CONFIG1_REGION49_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG49_Set BPROT_CONFIG1_REGION49_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG48_Pos BPROT_CONFIG1_REGION48_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG48_Msk BPROT_CONFIG1_REGION48_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG48_Disabled BPROT_CONFIG1_REGION48_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG48_Enabled BPROT_CONFIG1_REGION48_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG48_Set BPROT_CONFIG1_REGION48_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG47_Pos BPROT_CONFIG1_REGION47_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG47_Msk BPROT_CONFIG1_REGION47_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG47_Disabled BPROT_CONFIG1_REGION47_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG47_Enabled BPROT_CONFIG1_REGION47_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG47_Set BPROT_CONFIG1_REGION47_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG46_Pos BPROT_CONFIG1_REGION46_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG46_Msk BPROT_CONFIG1_REGION46_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG46_Disabled BPROT_CONFIG1_REGION46_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG46_Enabled BPROT_CONFIG1_REGION46_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG46_Set BPROT_CONFIG1_REGION46_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG45_Pos BPROT_CONFIG1_REGION45_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG45_Msk BPROT_CONFIG1_REGION45_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG45_Disabled BPROT_CONFIG1_REGION45_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG45_Enabled BPROT_CONFIG1_REGION45_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG45_Set BPROT_CONFIG1_REGION45_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG44_Pos BPROT_CONFIG1_REGION44_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG44_Msk BPROT_CONFIG1_REGION44_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG44_Disabled BPROT_CONFIG1_REGION44_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG44_Enabled BPROT_CONFIG1_REGION44_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG44_Set BPROT_CONFIG1_REGION44_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG43_Pos BPROT_CONFIG1_REGION43_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG43_Msk BPROT_CONFIG1_REGION43_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG43_Disabled BPROT_CONFIG1_REGION43_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG43_Enabled BPROT_CONFIG1_REGION43_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG43_Set BPROT_CONFIG1_REGION43_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG42_Pos BPROT_CONFIG1_REGION42_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG42_Msk BPROT_CONFIG1_REGION42_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG42_Disabled BPROT_CONFIG1_REGION42_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG42_Enabled BPROT_CONFIG1_REGION42_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG42_Set BPROT_CONFIG1_REGION42_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG41_Pos BPROT_CONFIG1_REGION41_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG41_Msk BPROT_CONFIG1_REGION41_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG41_Disabled BPROT_CONFIG1_REGION41_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG41_Enabled BPROT_CONFIG1_REGION41_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG41_Set BPROT_CONFIG1_REGION41_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG40_Pos BPROT_CONFIG1_REGION40_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG40_Msk BPROT_CONFIG1_REGION40_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG40_Disabled BPROT_CONFIG1_REGION40_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG40_Enabled BPROT_CONFIG1_REGION40_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG40_Set BPROT_CONFIG1_REGION40_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG39_Pos BPROT_CONFIG1_REGION39_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG39_Msk BPROT_CONFIG1_REGION39_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG39_Disabled BPROT_CONFIG1_REGION39_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG39_Enabled BPROT_CONFIG1_REGION39_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG39_Set BPROT_CONFIG1_REGION39_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG38_Pos BPROT_CONFIG1_REGION38_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG38_Msk BPROT_CONFIG1_REGION38_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG38_Disabled BPROT_CONFIG1_REGION38_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG38_Enabled BPROT_CONFIG1_REGION38_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG38_Set BPROT_CONFIG1_REGION38_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG37_Pos BPROT_CONFIG1_REGION37_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG37_Msk BPROT_CONFIG1_REGION37_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG37_Disabled BPROT_CONFIG1_REGION37_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG37_Enabled BPROT_CONFIG1_REGION37_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG37_Set BPROT_CONFIG1_REGION37_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG36_Pos BPROT_CONFIG1_REGION36_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG36_Msk BPROT_CONFIG1_REGION36_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG36_Disabled BPROT_CONFIG1_REGION36_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG36_Enabled BPROT_CONFIG1_REGION36_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG36_Set BPROT_CONFIG1_REGION36_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG35_Pos BPROT_CONFIG1_REGION35_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG35_Msk BPROT_CONFIG1_REGION35_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG35_Disabled BPROT_CONFIG1_REGION35_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG35_Enabled BPROT_CONFIG1_REGION35_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG35_Set BPROT_CONFIG1_REGION35_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG34_Pos BPROT_CONFIG1_REGION34_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG34_Msk BPROT_CONFIG1_REGION34_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG34_Disabled BPROT_CONFIG1_REGION34_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG34_Enabled BPROT_CONFIG1_REGION34_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG34_Set BPROT_CONFIG1_REGION34_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG33_Pos BPROT_CONFIG1_REGION33_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG33_Msk BPROT_CONFIG1_REGION33_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG33_Disabled BPROT_CONFIG1_REGION33_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG33_Enabled BPROT_CONFIG1_REGION33_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG33_Set BPROT_CONFIG1_REGION33_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET1_PROTREG32_Pos BPROT_CONFIG1_REGION32_Pos
|
|
||||||
#define MPU_PROTENSET1_PROTREG32_Msk BPROT_CONFIG1_REGION32_Msk
|
|
||||||
#define MPU_PROTENSET1_PROTREG32_Disabled BPROT_CONFIG1_REGION32_Disabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG32_Enabled BPROT_CONFIG1_REGION32_Enabled
|
|
||||||
#define MPU_PROTENSET1_PROTREG32_Set BPROT_CONFIG1_REGION32_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG31_Pos BPROT_CONFIG0_REGION31_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG31_Msk BPROT_CONFIG0_REGION31_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG31_Disabled BPROT_CONFIG0_REGION31_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG31_Enabled BPROT_CONFIG0_REGION31_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG31_Set BPROT_CONFIG0_REGION31_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG30_Pos BPROT_CONFIG0_REGION30_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG30_Msk BPROT_CONFIG0_REGION30_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG30_Disabled BPROT_CONFIG0_REGION30_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG30_Enabled BPROT_CONFIG0_REGION30_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG30_Set BPROT_CONFIG0_REGION30_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG29_Pos BPROT_CONFIG0_REGION29_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG29_Msk BPROT_CONFIG0_REGION29_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG29_Disabled BPROT_CONFIG0_REGION29_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG29_Enabled BPROT_CONFIG0_REGION29_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG29_Set BPROT_CONFIG0_REGION29_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG28_Pos BPROT_CONFIG0_REGION28_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG28_Msk BPROT_CONFIG0_REGION28_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG28_Disabled BPROT_CONFIG0_REGION28_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG28_Enabled BPROT_CONFIG0_REGION28_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG28_Set BPROT_CONFIG0_REGION28_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG27_Pos BPROT_CONFIG0_REGION27_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG27_Msk BPROT_CONFIG0_REGION27_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG27_Disabled BPROT_CONFIG0_REGION27_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG27_Enabled BPROT_CONFIG0_REGION27_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG27_Set BPROT_CONFIG0_REGION27_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG26_Pos BPROT_CONFIG0_REGION26_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG26_Msk BPROT_CONFIG0_REGION26_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG26_Disabled BPROT_CONFIG0_REGION26_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG26_Enabled BPROT_CONFIG0_REGION26_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG26_Set BPROT_CONFIG0_REGION26_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG25_Pos BPROT_CONFIG0_REGION25_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG25_Msk BPROT_CONFIG0_REGION25_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG25_Disabled BPROT_CONFIG0_REGION25_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG25_Enabled BPROT_CONFIG0_REGION25_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG25_Set BPROT_CONFIG0_REGION25_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG24_Pos BPROT_CONFIG0_REGION24_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG24_Msk BPROT_CONFIG0_REGION24_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG24_Disabled BPROT_CONFIG0_REGION24_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG24_Enabled BPROT_CONFIG0_REGION24_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG24_Set BPROT_CONFIG0_REGION24_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG23_Pos BPROT_CONFIG0_REGION23_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG23_Msk BPROT_CONFIG0_REGION23_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG23_Disabled BPROT_CONFIG0_REGION23_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG23_Enabled BPROT_CONFIG0_REGION23_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG23_Set BPROT_CONFIG0_REGION23_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG22_Pos BPROT_CONFIG0_REGION22_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG22_Msk BPROT_CONFIG0_REGION22_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG22_Disabled BPROT_CONFIG0_REGION22_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG22_Enabled BPROT_CONFIG0_REGION22_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG22_Set BPROT_CONFIG0_REGION22_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG21_Pos BPROT_CONFIG0_REGION21_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG21_Msk BPROT_CONFIG0_REGION21_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG21_Disabled BPROT_CONFIG0_REGION21_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG21_Enabled BPROT_CONFIG0_REGION21_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG21_Set BPROT_CONFIG0_REGION21_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG20_Pos BPROT_CONFIG0_REGION20_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG20_Msk BPROT_CONFIG0_REGION20_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG20_Disabled BPROT_CONFIG0_REGION20_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG20_Enabled BPROT_CONFIG0_REGION20_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG20_Set BPROT_CONFIG0_REGION20_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG19_Pos BPROT_CONFIG0_REGION19_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG19_Msk BPROT_CONFIG0_REGION19_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG19_Disabled BPROT_CONFIG0_REGION19_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG19_Enabled BPROT_CONFIG0_REGION19_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG19_Set BPROT_CONFIG0_REGION19_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG18_Pos BPROT_CONFIG0_REGION18_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG18_Msk BPROT_CONFIG0_REGION18_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG18_Disabled BPROT_CONFIG0_REGION18_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG18_Enabled BPROT_CONFIG0_REGION18_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG18_Set BPROT_CONFIG0_REGION18_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG17_Pos BPROT_CONFIG0_REGION17_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG17_Msk BPROT_CONFIG0_REGION17_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG17_Disabled BPROT_CONFIG0_REGION17_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG17_Enabled BPROT_CONFIG0_REGION17_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG17_Set BPROT_CONFIG0_REGION17_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG16_Pos BPROT_CONFIG0_REGION16_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG16_Msk BPROT_CONFIG0_REGION16_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG16_Disabled BPROT_CONFIG0_REGION16_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG16_Enabled BPROT_CONFIG0_REGION16_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG16_Set BPROT_CONFIG0_REGION16_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG15_Pos BPROT_CONFIG0_REGION15_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG15_Msk BPROT_CONFIG0_REGION15_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG15_Disabled BPROT_CONFIG0_REGION15_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG15_Enabled BPROT_CONFIG0_REGION15_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG15_Set BPROT_CONFIG0_REGION15_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG14_Pos BPROT_CONFIG0_REGION14_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG14_Msk BPROT_CONFIG0_REGION14_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG14_Disabled BPROT_CONFIG0_REGION14_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG14_Enabled BPROT_CONFIG0_REGION14_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG14_Set BPROT_CONFIG0_REGION14_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG13_Pos BPROT_CONFIG0_REGION13_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG13_Msk BPROT_CONFIG0_REGION13_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG13_Disabled BPROT_CONFIG0_REGION13_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG13_Enabled BPROT_CONFIG0_REGION13_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG13_Set BPROT_CONFIG0_REGION13_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG12_Pos BPROT_CONFIG0_REGION12_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG12_Msk BPROT_CONFIG0_REGION12_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG12_Disabled BPROT_CONFIG0_REGION12_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG12_Enabled BPROT_CONFIG0_REGION12_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG12_Set BPROT_CONFIG0_REGION12_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG11_Pos BPROT_CONFIG0_REGION11_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG11_Msk BPROT_CONFIG0_REGION11_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG11_Disabled BPROT_CONFIG0_REGION11_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG11_Enabled BPROT_CONFIG0_REGION11_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG11_Set BPROT_CONFIG0_REGION11_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG10_Pos BPROT_CONFIG0_REGION10_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG10_Msk BPROT_CONFIG0_REGION10_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG10_Disabled BPROT_CONFIG0_REGION10_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG10_Enabled BPROT_CONFIG0_REGION10_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG10_Set BPROT_CONFIG0_REGION10_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG9_Pos BPROT_CONFIG0_REGION9_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG9_Msk BPROT_CONFIG0_REGION9_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG9_Disabled BPROT_CONFIG0_REGION9_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG9_Enabled BPROT_CONFIG0_REGION9_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG9_Set BPROT_CONFIG0_REGION9_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG8_Pos BPROT_CONFIG0_REGION8_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG8_Msk BPROT_CONFIG0_REGION8_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG8_Disabled BPROT_CONFIG0_REGION8_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG8_Enabled BPROT_CONFIG0_REGION8_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG8_Set BPROT_CONFIG0_REGION8_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG7_Pos BPROT_CONFIG0_REGION7_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG7_Msk BPROT_CONFIG0_REGION7_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG7_Disabled BPROT_CONFIG0_REGION7_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG7_Enabled BPROT_CONFIG0_REGION7_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG7_Set BPROT_CONFIG0_REGION7_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG6_Pos BPROT_CONFIG0_REGION6_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG6_Msk BPROT_CONFIG0_REGION6_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG6_Disabled BPROT_CONFIG0_REGION6_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG6_Enabled BPROT_CONFIG0_REGION6_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG6_Set BPROT_CONFIG0_REGION6_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG5_Pos BPROT_CONFIG0_REGION5_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG5_Msk BPROT_CONFIG0_REGION5_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG5_Disabled BPROT_CONFIG0_REGION5_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG5_Enabled BPROT_CONFIG0_REGION5_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG5_Set BPROT_CONFIG0_REGION5_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG4_Pos BPROT_CONFIG0_REGION4_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG4_Msk BPROT_CONFIG0_REGION4_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG4_Disabled BPROT_CONFIG0_REGION4_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG4_Enabled BPROT_CONFIG0_REGION4_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG4_Set BPROT_CONFIG0_REGION4_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG3_Pos BPROT_CONFIG0_REGION3_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG3_Msk BPROT_CONFIG0_REGION3_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG3_Disabled BPROT_CONFIG0_REGION3_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG3_Enabled BPROT_CONFIG0_REGION3_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG3_Set BPROT_CONFIG0_REGION3_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG2_Pos BPROT_CONFIG0_REGION2_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG2_Msk BPROT_CONFIG0_REGION2_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG2_Disabled BPROT_CONFIG0_REGION2_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG2_Enabled BPROT_CONFIG0_REGION2_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG2_Set BPROT_CONFIG0_REGION2_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG1_Pos BPROT_CONFIG0_REGION1_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG1_Msk BPROT_CONFIG0_REGION1_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG1_Disabled BPROT_CONFIG0_REGION1_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG1_Enabled BPROT_CONFIG0_REGION1_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG1_Set BPROT_CONFIG0_REGION1_Enabled
|
|
||||||
|
|
||||||
#define MPU_PROTENSET0_PROTREG0_Pos BPROT_CONFIG0_REGION0_Pos
|
|
||||||
#define MPU_PROTENSET0_PROTREG0_Msk BPROT_CONFIG0_REGION0_Msk
|
|
||||||
#define MPU_PROTENSET0_PROTREG0_Disabled BPROT_CONFIG0_REGION0_Disabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG0_Enabled BPROT_CONFIG0_REGION0_Enabled
|
|
||||||
#define MPU_PROTENSET0_PROTREG0_Set BPROT_CONFIG0_REGION0_Enabled
|
|
||||||
|
|
||||||
|
|
||||||
/* From nrf51_deprecated.h */
|
|
||||||
|
|
||||||
/* NVMC */
|
|
||||||
/* The register ERASEPROTECTEDPAGE changed name to ERASEPCR0 in the documentation. */
|
|
||||||
#define ERASEPROTECTEDPAGE ERASEPCR0
|
|
||||||
|
|
||||||
|
|
||||||
/* IRQ */
|
|
||||||
/* COMP module was eliminated. Adapted to nrf52 headers. */
|
|
||||||
#define LPCOMP_COMP_IRQHandler COMP_LPCOMP_IRQHandler
|
|
||||||
#define LPCOMP_COMP_IRQn COMP_LPCOMP_IRQn
|
|
||||||
|
|
||||||
|
|
||||||
/* REFSEL register redefined enumerated values and added some more. */
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyOneEighthPrescaling LPCOMP_REFSEL_REFSEL_Ref1_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyTwoEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref2_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyThreeEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref3_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyFourEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref4_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyFiveEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref5_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplySixEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref6_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplySevenEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref7_8Vdd
|
|
||||||
|
|
||||||
|
|
||||||
/* RADIO */
|
|
||||||
/* The name of the field SKIPADDR was corrected. Old macros added for compatibility. */
|
|
||||||
#define RADIO_CRCCNF_SKIP_ADDR_Pos RADIO_CRCCNF_SKIPADDR_Pos
|
|
||||||
#define RADIO_CRCCNF_SKIP_ADDR_Msk RADIO_CRCCNF_SKIPADDR_Msk
|
|
||||||
#define RADIO_CRCCNF_SKIP_ADDR_Include RADIO_CRCCNF_SKIPADDR_Include
|
|
||||||
#define RADIO_CRCCNF_SKIP_ADDR_Skip RADIO_CRCCNF_SKIPADDR_Skip
|
|
||||||
|
|
||||||
|
|
||||||
/* FICR */
|
|
||||||
/* The registers FICR.DEVICEID0 and FICR.DEVICEID1 were renamed into an array. */
|
|
||||||
#define DEVICEID0 DEVICEID[0]
|
|
||||||
#define DEVICEID1 DEVICEID[1]
|
|
||||||
|
|
||||||
/* The registers FICR.ER0, FICR.ER1, FICR.ER2 and FICR.ER3 were renamed into an array. */
|
|
||||||
#define ER0 ER[0]
|
|
||||||
#define ER1 ER[1]
|
|
||||||
#define ER2 ER[2]
|
|
||||||
#define ER3 ER[3]
|
|
||||||
|
|
||||||
/* The registers FICR.IR0, FICR.IR1, FICR.IR2 and FICR.IR3 were renamed into an array. */
|
|
||||||
#define IR0 IR[0]
|
|
||||||
#define IR1 IR[1]
|
|
||||||
#define IR2 IR[2]
|
|
||||||
#define IR3 IR[3]
|
|
||||||
|
|
||||||
/* The registers FICR.DEVICEADDR0 and FICR.DEVICEADDR1 were renamed into an array. */
|
|
||||||
#define DEVICEADDR0 DEVICEADDR[0]
|
|
||||||
#define DEVICEADDR1 DEVICEADDR[1]
|
|
||||||
|
|
||||||
|
|
||||||
/* PPI */
|
|
||||||
/* The tasks PPI.TASKS_CHGxEN and PPI.TASKS_CHGxDIS were renamed into an array of structs. */
|
|
||||||
#define TASKS_CHG0EN TASKS_CHG[0].EN
|
|
||||||
#define TASKS_CHG0DIS TASKS_CHG[0].DIS
|
|
||||||
#define TASKS_CHG1EN TASKS_CHG[1].EN
|
|
||||||
#define TASKS_CHG1DIS TASKS_CHG[1].DIS
|
|
||||||
#define TASKS_CHG2EN TASKS_CHG[2].EN
|
|
||||||
#define TASKS_CHG2DIS TASKS_CHG[2].DIS
|
|
||||||
#define TASKS_CHG3EN TASKS_CHG[3].EN
|
|
||||||
#define TASKS_CHG3DIS TASKS_CHG[3].DIS
|
|
||||||
|
|
||||||
/* The registers PPI.CHx_EEP and PPI.CHx_TEP were renamed into an array of structs. */
|
|
||||||
#define CH0_EEP CH[0].EEP
|
|
||||||
#define CH0_TEP CH[0].TEP
|
|
||||||
#define CH1_EEP CH[1].EEP
|
|
||||||
#define CH1_TEP CH[1].TEP
|
|
||||||
#define CH2_EEP CH[2].EEP
|
|
||||||
#define CH2_TEP CH[2].TEP
|
|
||||||
#define CH3_EEP CH[3].EEP
|
|
||||||
#define CH3_TEP CH[3].TEP
|
|
||||||
#define CH4_EEP CH[4].EEP
|
|
||||||
#define CH4_TEP CH[4].TEP
|
|
||||||
#define CH5_EEP CH[5].EEP
|
|
||||||
#define CH5_TEP CH[5].TEP
|
|
||||||
#define CH6_EEP CH[6].EEP
|
|
||||||
#define CH6_TEP CH[6].TEP
|
|
||||||
#define CH7_EEP CH[7].EEP
|
|
||||||
#define CH7_TEP CH[7].TEP
|
|
||||||
#define CH8_EEP CH[8].EEP
|
|
||||||
#define CH8_TEP CH[8].TEP
|
|
||||||
#define CH9_EEP CH[9].EEP
|
|
||||||
#define CH9_TEP CH[9].TEP
|
|
||||||
#define CH10_EEP CH[10].EEP
|
|
||||||
#define CH10_TEP CH[10].TEP
|
|
||||||
#define CH11_EEP CH[11].EEP
|
|
||||||
#define CH11_TEP CH[11].TEP
|
|
||||||
#define CH12_EEP CH[12].EEP
|
|
||||||
#define CH12_TEP CH[12].TEP
|
|
||||||
#define CH13_EEP CH[13].EEP
|
|
||||||
#define CH13_TEP CH[13].TEP
|
|
||||||
#define CH14_EEP CH[14].EEP
|
|
||||||
#define CH14_TEP CH[14].TEP
|
|
||||||
#define CH15_EEP CH[15].EEP
|
|
||||||
#define CH15_TEP CH[15].TEP
|
|
||||||
|
|
||||||
/* The registers PPI.CHG0, PPI.CHG1, PPI.CHG2 and PPI.CHG3 were renamed into an array. */
|
|
||||||
#define CHG0 CHG[0]
|
|
||||||
#define CHG1 CHG[1]
|
|
||||||
#define CHG2 CHG[2]
|
|
||||||
#define CHG3 CHG[3]
|
|
||||||
|
|
||||||
/* All bitfield macros for the CHGx registers therefore changed name. */
|
|
||||||
#define PPI_CHG0_CH15_Pos PPI_CHG_CH15_Pos
|
|
||||||
#define PPI_CHG0_CH15_Msk PPI_CHG_CH15_Msk
|
|
||||||
#define PPI_CHG0_CH15_Excluded PPI_CHG_CH15_Excluded
|
|
||||||
#define PPI_CHG0_CH15_Included PPI_CHG_CH15_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH14_Pos PPI_CHG_CH14_Pos
|
|
||||||
#define PPI_CHG0_CH14_Msk PPI_CHG_CH14_Msk
|
|
||||||
#define PPI_CHG0_CH14_Excluded PPI_CHG_CH14_Excluded
|
|
||||||
#define PPI_CHG0_CH14_Included PPI_CHG_CH14_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH13_Pos PPI_CHG_CH13_Pos
|
|
||||||
#define PPI_CHG0_CH13_Msk PPI_CHG_CH13_Msk
|
|
||||||
#define PPI_CHG0_CH13_Excluded PPI_CHG_CH13_Excluded
|
|
||||||
#define PPI_CHG0_CH13_Included PPI_CHG_CH13_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH12_Pos PPI_CHG_CH12_Pos
|
|
||||||
#define PPI_CHG0_CH12_Msk PPI_CHG_CH12_Msk
|
|
||||||
#define PPI_CHG0_CH12_Excluded PPI_CHG_CH12_Excluded
|
|
||||||
#define PPI_CHG0_CH12_Included PPI_CHG_CH12_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH11_Pos PPI_CHG_CH11_Pos
|
|
||||||
#define PPI_CHG0_CH11_Msk PPI_CHG_CH11_Msk
|
|
||||||
#define PPI_CHG0_CH11_Excluded PPI_CHG_CH11_Excluded
|
|
||||||
#define PPI_CHG0_CH11_Included PPI_CHG_CH11_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH10_Pos PPI_CHG_CH10_Pos
|
|
||||||
#define PPI_CHG0_CH10_Msk PPI_CHG_CH10_Msk
|
|
||||||
#define PPI_CHG0_CH10_Excluded PPI_CHG_CH10_Excluded
|
|
||||||
#define PPI_CHG0_CH10_Included PPI_CHG_CH10_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH9_Pos PPI_CHG_CH9_Pos
|
|
||||||
#define PPI_CHG0_CH9_Msk PPI_CHG_CH9_Msk
|
|
||||||
#define PPI_CHG0_CH9_Excluded PPI_CHG_CH9_Excluded
|
|
||||||
#define PPI_CHG0_CH9_Included PPI_CHG_CH9_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH8_Pos PPI_CHG_CH8_Pos
|
|
||||||
#define PPI_CHG0_CH8_Msk PPI_CHG_CH8_Msk
|
|
||||||
#define PPI_CHG0_CH8_Excluded PPI_CHG_CH8_Excluded
|
|
||||||
#define PPI_CHG0_CH8_Included PPI_CHG_CH8_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH7_Pos PPI_CHG_CH7_Pos
|
|
||||||
#define PPI_CHG0_CH7_Msk PPI_CHG_CH7_Msk
|
|
||||||
#define PPI_CHG0_CH7_Excluded PPI_CHG_CH7_Excluded
|
|
||||||
#define PPI_CHG0_CH7_Included PPI_CHG_CH7_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH6_Pos PPI_CHG_CH6_Pos
|
|
||||||
#define PPI_CHG0_CH6_Msk PPI_CHG_CH6_Msk
|
|
||||||
#define PPI_CHG0_CH6_Excluded PPI_CHG_CH6_Excluded
|
|
||||||
#define PPI_CHG0_CH6_Included PPI_CHG_CH6_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH5_Pos PPI_CHG_CH5_Pos
|
|
||||||
#define PPI_CHG0_CH5_Msk PPI_CHG_CH5_Msk
|
|
||||||
#define PPI_CHG0_CH5_Excluded PPI_CHG_CH5_Excluded
|
|
||||||
#define PPI_CHG0_CH5_Included PPI_CHG_CH5_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH4_Pos PPI_CHG_CH4_Pos
|
|
||||||
#define PPI_CHG0_CH4_Msk PPI_CHG_CH4_Msk
|
|
||||||
#define PPI_CHG0_CH4_Excluded PPI_CHG_CH4_Excluded
|
|
||||||
#define PPI_CHG0_CH4_Included PPI_CHG_CH4_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH3_Pos PPI_CHG_CH3_Pos
|
|
||||||
#define PPI_CHG0_CH3_Msk PPI_CHG_CH3_Msk
|
|
||||||
#define PPI_CHG0_CH3_Excluded PPI_CHG_CH3_Excluded
|
|
||||||
#define PPI_CHG0_CH3_Included PPI_CHG_CH3_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH2_Pos PPI_CHG_CH2_Pos
|
|
||||||
#define PPI_CHG0_CH2_Msk PPI_CHG_CH2_Msk
|
|
||||||
#define PPI_CHG0_CH2_Excluded PPI_CHG_CH2_Excluded
|
|
||||||
#define PPI_CHG0_CH2_Included PPI_CHG_CH2_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH1_Pos PPI_CHG_CH1_Pos
|
|
||||||
#define PPI_CHG0_CH1_Msk PPI_CHG_CH1_Msk
|
|
||||||
#define PPI_CHG0_CH1_Excluded PPI_CHG_CH1_Excluded
|
|
||||||
#define PPI_CHG0_CH1_Included PPI_CHG_CH1_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH0_Pos PPI_CHG_CH0_Pos
|
|
||||||
#define PPI_CHG0_CH0_Msk PPI_CHG_CH0_Msk
|
|
||||||
#define PPI_CHG0_CH0_Excluded PPI_CHG_CH0_Excluded
|
|
||||||
#define PPI_CHG0_CH0_Included PPI_CHG_CH0_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH15_Pos PPI_CHG_CH15_Pos
|
|
||||||
#define PPI_CHG1_CH15_Msk PPI_CHG_CH15_Msk
|
|
||||||
#define PPI_CHG1_CH15_Excluded PPI_CHG_CH15_Excluded
|
|
||||||
#define PPI_CHG1_CH15_Included PPI_CHG_CH15_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH14_Pos PPI_CHG_CH14_Pos
|
|
||||||
#define PPI_CHG1_CH14_Msk PPI_CHG_CH14_Msk
|
|
||||||
#define PPI_CHG1_CH14_Excluded PPI_CHG_CH14_Excluded
|
|
||||||
#define PPI_CHG1_CH14_Included PPI_CHG_CH14_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH13_Pos PPI_CHG_CH13_Pos
|
|
||||||
#define PPI_CHG1_CH13_Msk PPI_CHG_CH13_Msk
|
|
||||||
#define PPI_CHG1_CH13_Excluded PPI_CHG_CH13_Excluded
|
|
||||||
#define PPI_CHG1_CH13_Included PPI_CHG_CH13_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH12_Pos PPI_CHG_CH12_Pos
|
|
||||||
#define PPI_CHG1_CH12_Msk PPI_CHG_CH12_Msk
|
|
||||||
#define PPI_CHG1_CH12_Excluded PPI_CHG_CH12_Excluded
|
|
||||||
#define PPI_CHG1_CH12_Included PPI_CHG_CH12_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH11_Pos PPI_CHG_CH11_Pos
|
|
||||||
#define PPI_CHG1_CH11_Msk PPI_CHG_CH11_Msk
|
|
||||||
#define PPI_CHG1_CH11_Excluded PPI_CHG_CH11_Excluded
|
|
||||||
#define PPI_CHG1_CH11_Included PPI_CHG_CH11_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH10_Pos PPI_CHG_CH10_Pos
|
|
||||||
#define PPI_CHG1_CH10_Msk PPI_CHG_CH10_Msk
|
|
||||||
#define PPI_CHG1_CH10_Excluded PPI_CHG_CH10_Excluded
|
|
||||||
#define PPI_CHG1_CH10_Included PPI_CHG_CH10_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH9_Pos PPI_CHG_CH9_Pos
|
|
||||||
#define PPI_CHG1_CH9_Msk PPI_CHG_CH9_Msk
|
|
||||||
#define PPI_CHG1_CH9_Excluded PPI_CHG_CH9_Excluded
|
|
||||||
#define PPI_CHG1_CH9_Included PPI_CHG_CH9_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH8_Pos PPI_CHG_CH8_Pos
|
|
||||||
#define PPI_CHG1_CH8_Msk PPI_CHG_CH8_Msk
|
|
||||||
#define PPI_CHG1_CH8_Excluded PPI_CHG_CH8_Excluded
|
|
||||||
#define PPI_CHG1_CH8_Included PPI_CHG_CH8_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH7_Pos PPI_CHG_CH7_Pos
|
|
||||||
#define PPI_CHG1_CH7_Msk PPI_CHG_CH7_Msk
|
|
||||||
#define PPI_CHG1_CH7_Excluded PPI_CHG_CH7_Excluded
|
|
||||||
#define PPI_CHG1_CH7_Included PPI_CHG_CH7_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH6_Pos PPI_CHG_CH6_Pos
|
|
||||||
#define PPI_CHG1_CH6_Msk PPI_CHG_CH6_Msk
|
|
||||||
#define PPI_CHG1_CH6_Excluded PPI_CHG_CH6_Excluded
|
|
||||||
#define PPI_CHG1_CH6_Included PPI_CHG_CH6_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH5_Pos PPI_CHG_CH5_Pos
|
|
||||||
#define PPI_CHG1_CH5_Msk PPI_CHG_CH5_Msk
|
|
||||||
#define PPI_CHG1_CH5_Excluded PPI_CHG_CH5_Excluded
|
|
||||||
#define PPI_CHG1_CH5_Included PPI_CHG_CH5_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH4_Pos PPI_CHG_CH4_Pos
|
|
||||||
#define PPI_CHG1_CH4_Msk PPI_CHG_CH4_Msk
|
|
||||||
#define PPI_CHG1_CH4_Excluded PPI_CHG_CH4_Excluded
|
|
||||||
#define PPI_CHG1_CH4_Included PPI_CHG_CH4_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH3_Pos PPI_CHG_CH3_Pos
|
|
||||||
#define PPI_CHG1_CH3_Msk PPI_CHG_CH3_Msk
|
|
||||||
#define PPI_CHG1_CH3_Excluded PPI_CHG_CH3_Excluded
|
|
||||||
#define PPI_CHG1_CH3_Included PPI_CHG_CH3_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH2_Pos PPI_CHG_CH2_Pos
|
|
||||||
#define PPI_CHG1_CH2_Msk PPI_CHG_CH2_Msk
|
|
||||||
#define PPI_CHG1_CH2_Excluded PPI_CHG_CH2_Excluded
|
|
||||||
#define PPI_CHG1_CH2_Included PPI_CHG_CH2_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH1_Pos PPI_CHG_CH1_Pos
|
|
||||||
#define PPI_CHG1_CH1_Msk PPI_CHG_CH1_Msk
|
|
||||||
#define PPI_CHG1_CH1_Excluded PPI_CHG_CH1_Excluded
|
|
||||||
#define PPI_CHG1_CH1_Included PPI_CHG_CH1_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH0_Pos PPI_CHG_CH0_Pos
|
|
||||||
#define PPI_CHG1_CH0_Msk PPI_CHG_CH0_Msk
|
|
||||||
#define PPI_CHG1_CH0_Excluded PPI_CHG_CH0_Excluded
|
|
||||||
#define PPI_CHG1_CH0_Included PPI_CHG_CH0_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH15_Pos PPI_CHG_CH15_Pos
|
|
||||||
#define PPI_CHG2_CH15_Msk PPI_CHG_CH15_Msk
|
|
||||||
#define PPI_CHG2_CH15_Excluded PPI_CHG_CH15_Excluded
|
|
||||||
#define PPI_CHG2_CH15_Included PPI_CHG_CH15_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH14_Pos PPI_CHG_CH14_Pos
|
|
||||||
#define PPI_CHG2_CH14_Msk PPI_CHG_CH14_Msk
|
|
||||||
#define PPI_CHG2_CH14_Excluded PPI_CHG_CH14_Excluded
|
|
||||||
#define PPI_CHG2_CH14_Included PPI_CHG_CH14_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH13_Pos PPI_CHG_CH13_Pos
|
|
||||||
#define PPI_CHG2_CH13_Msk PPI_CHG_CH13_Msk
|
|
||||||
#define PPI_CHG2_CH13_Excluded PPI_CHG_CH13_Excluded
|
|
||||||
#define PPI_CHG2_CH13_Included PPI_CHG_CH13_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH12_Pos PPI_CHG_CH12_Pos
|
|
||||||
#define PPI_CHG2_CH12_Msk PPI_CHG_CH12_Msk
|
|
||||||
#define PPI_CHG2_CH12_Excluded PPI_CHG_CH12_Excluded
|
|
||||||
#define PPI_CHG2_CH12_Included PPI_CHG_CH12_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH11_Pos PPI_CHG_CH11_Pos
|
|
||||||
#define PPI_CHG2_CH11_Msk PPI_CHG_CH11_Msk
|
|
||||||
#define PPI_CHG2_CH11_Excluded PPI_CHG_CH11_Excluded
|
|
||||||
#define PPI_CHG2_CH11_Included PPI_CHG_CH11_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH10_Pos PPI_CHG_CH10_Pos
|
|
||||||
#define PPI_CHG2_CH10_Msk PPI_CHG_CH10_Msk
|
|
||||||
#define PPI_CHG2_CH10_Excluded PPI_CHG_CH10_Excluded
|
|
||||||
#define PPI_CHG2_CH10_Included PPI_CHG_CH10_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH9_Pos PPI_CHG_CH9_Pos
|
|
||||||
#define PPI_CHG2_CH9_Msk PPI_CHG_CH9_Msk
|
|
||||||
#define PPI_CHG2_CH9_Excluded PPI_CHG_CH9_Excluded
|
|
||||||
#define PPI_CHG2_CH9_Included PPI_CHG_CH9_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH8_Pos PPI_CHG_CH8_Pos
|
|
||||||
#define PPI_CHG2_CH8_Msk PPI_CHG_CH8_Msk
|
|
||||||
#define PPI_CHG2_CH8_Excluded PPI_CHG_CH8_Excluded
|
|
||||||
#define PPI_CHG2_CH8_Included PPI_CHG_CH8_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH7_Pos PPI_CHG_CH7_Pos
|
|
||||||
#define PPI_CHG2_CH7_Msk PPI_CHG_CH7_Msk
|
|
||||||
#define PPI_CHG2_CH7_Excluded PPI_CHG_CH7_Excluded
|
|
||||||
#define PPI_CHG2_CH7_Included PPI_CHG_CH7_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH6_Pos PPI_CHG_CH6_Pos
|
|
||||||
#define PPI_CHG2_CH6_Msk PPI_CHG_CH6_Msk
|
|
||||||
#define PPI_CHG2_CH6_Excluded PPI_CHG_CH6_Excluded
|
|
||||||
#define PPI_CHG2_CH6_Included PPI_CHG_CH6_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH5_Pos PPI_CHG_CH5_Pos
|
|
||||||
#define PPI_CHG2_CH5_Msk PPI_CHG_CH5_Msk
|
|
||||||
#define PPI_CHG2_CH5_Excluded PPI_CHG_CH5_Excluded
|
|
||||||
#define PPI_CHG2_CH5_Included PPI_CHG_CH5_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH4_Pos PPI_CHG_CH4_Pos
|
|
||||||
#define PPI_CHG2_CH4_Msk PPI_CHG_CH4_Msk
|
|
||||||
#define PPI_CHG2_CH4_Excluded PPI_CHG_CH4_Excluded
|
|
||||||
#define PPI_CHG2_CH4_Included PPI_CHG_CH4_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH3_Pos PPI_CHG_CH3_Pos
|
|
||||||
#define PPI_CHG2_CH3_Msk PPI_CHG_CH3_Msk
|
|
||||||
#define PPI_CHG2_CH3_Excluded PPI_CHG_CH3_Excluded
|
|
||||||
#define PPI_CHG2_CH3_Included PPI_CHG_CH3_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH2_Pos PPI_CHG_CH2_Pos
|
|
||||||
#define PPI_CHG2_CH2_Msk PPI_CHG_CH2_Msk
|
|
||||||
#define PPI_CHG2_CH2_Excluded PPI_CHG_CH2_Excluded
|
|
||||||
#define PPI_CHG2_CH2_Included PPI_CHG_CH2_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH1_Pos PPI_CHG_CH1_Pos
|
|
||||||
#define PPI_CHG2_CH1_Msk PPI_CHG_CH1_Msk
|
|
||||||
#define PPI_CHG2_CH1_Excluded PPI_CHG_CH1_Excluded
|
|
||||||
#define PPI_CHG2_CH1_Included PPI_CHG_CH1_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH0_Pos PPI_CHG_CH0_Pos
|
|
||||||
#define PPI_CHG2_CH0_Msk PPI_CHG_CH0_Msk
|
|
||||||
#define PPI_CHG2_CH0_Excluded PPI_CHG_CH0_Excluded
|
|
||||||
#define PPI_CHG2_CH0_Included PPI_CHG_CH0_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH15_Pos PPI_CHG_CH15_Pos
|
|
||||||
#define PPI_CHG3_CH15_Msk PPI_CHG_CH15_Msk
|
|
||||||
#define PPI_CHG3_CH15_Excluded PPI_CHG_CH15_Excluded
|
|
||||||
#define PPI_CHG3_CH15_Included PPI_CHG_CH15_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH14_Pos PPI_CHG_CH14_Pos
|
|
||||||
#define PPI_CHG3_CH14_Msk PPI_CHG_CH14_Msk
|
|
||||||
#define PPI_CHG3_CH14_Excluded PPI_CHG_CH14_Excluded
|
|
||||||
#define PPI_CHG3_CH14_Included PPI_CHG_CH14_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH13_Pos PPI_CHG_CH13_Pos
|
|
||||||
#define PPI_CHG3_CH13_Msk PPI_CHG_CH13_Msk
|
|
||||||
#define PPI_CHG3_CH13_Excluded PPI_CHG_CH13_Excluded
|
|
||||||
#define PPI_CHG3_CH13_Included PPI_CHG_CH13_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH12_Pos PPI_CHG_CH12_Pos
|
|
||||||
#define PPI_CHG3_CH12_Msk PPI_CHG_CH12_Msk
|
|
||||||
#define PPI_CHG3_CH12_Excluded PPI_CHG_CH12_Excluded
|
|
||||||
#define PPI_CHG3_CH12_Included PPI_CHG_CH12_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH11_Pos PPI_CHG_CH11_Pos
|
|
||||||
#define PPI_CHG3_CH11_Msk PPI_CHG_CH11_Msk
|
|
||||||
#define PPI_CHG3_CH11_Excluded PPI_CHG_CH11_Excluded
|
|
||||||
#define PPI_CHG3_CH11_Included PPI_CHG_CH11_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH10_Pos PPI_CHG_CH10_Pos
|
|
||||||
#define PPI_CHG3_CH10_Msk PPI_CHG_CH10_Msk
|
|
||||||
#define PPI_CHG3_CH10_Excluded PPI_CHG_CH10_Excluded
|
|
||||||
#define PPI_CHG3_CH10_Included PPI_CHG_CH10_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH9_Pos PPI_CHG_CH9_Pos
|
|
||||||
#define PPI_CHG3_CH9_Msk PPI_CHG_CH9_Msk
|
|
||||||
#define PPI_CHG3_CH9_Excluded PPI_CHG_CH9_Excluded
|
|
||||||
#define PPI_CHG3_CH9_Included PPI_CHG_CH9_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH8_Pos PPI_CHG_CH8_Pos
|
|
||||||
#define PPI_CHG3_CH8_Msk PPI_CHG_CH8_Msk
|
|
||||||
#define PPI_CHG3_CH8_Excluded PPI_CHG_CH8_Excluded
|
|
||||||
#define PPI_CHG3_CH8_Included PPI_CHG_CH8_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH7_Pos PPI_CHG_CH7_Pos
|
|
||||||
#define PPI_CHG3_CH7_Msk PPI_CHG_CH7_Msk
|
|
||||||
#define PPI_CHG3_CH7_Excluded PPI_CHG_CH7_Excluded
|
|
||||||
#define PPI_CHG3_CH7_Included PPI_CHG_CH7_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH6_Pos PPI_CHG_CH6_Pos
|
|
||||||
#define PPI_CHG3_CH6_Msk PPI_CHG_CH6_Msk
|
|
||||||
#define PPI_CHG3_CH6_Excluded PPI_CHG_CH6_Excluded
|
|
||||||
#define PPI_CHG3_CH6_Included PPI_CHG_CH6_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH5_Pos PPI_CHG_CH5_Pos
|
|
||||||
#define PPI_CHG3_CH5_Msk PPI_CHG_CH5_Msk
|
|
||||||
#define PPI_CHG3_CH5_Excluded PPI_CHG_CH5_Excluded
|
|
||||||
#define PPI_CHG3_CH5_Included PPI_CHG_CH5_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH4_Pos PPI_CHG_CH4_Pos
|
|
||||||
#define PPI_CHG3_CH4_Msk PPI_CHG_CH4_Msk
|
|
||||||
#define PPI_CHG3_CH4_Excluded PPI_CHG_CH4_Excluded
|
|
||||||
#define PPI_CHG3_CH4_Included PPI_CHG_CH4_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH3_Pos PPI_CHG_CH3_Pos
|
|
||||||
#define PPI_CHG3_CH3_Msk PPI_CHG_CH3_Msk
|
|
||||||
#define PPI_CHG3_CH3_Excluded PPI_CHG_CH3_Excluded
|
|
||||||
#define PPI_CHG3_CH3_Included PPI_CHG_CH3_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH2_Pos PPI_CHG_CH2_Pos
|
|
||||||
#define PPI_CHG3_CH2_Msk PPI_CHG_CH2_Msk
|
|
||||||
#define PPI_CHG3_CH2_Excluded PPI_CHG_CH2_Excluded
|
|
||||||
#define PPI_CHG3_CH2_Included PPI_CHG_CH2_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH1_Pos PPI_CHG_CH1_Pos
|
|
||||||
#define PPI_CHG3_CH1_Msk PPI_CHG_CH1_Msk
|
|
||||||
#define PPI_CHG3_CH1_Excluded PPI_CHG_CH1_Excluded
|
|
||||||
#define PPI_CHG3_CH1_Included PPI_CHG_CH1_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH0_Pos PPI_CHG_CH0_Pos
|
|
||||||
#define PPI_CHG3_CH0_Msk PPI_CHG_CH0_Msk
|
|
||||||
#define PPI_CHG3_CH0_Excluded PPI_CHG_CH0_Excluded
|
|
||||||
#define PPI_CHG3_CH0_Included PPI_CHG_CH0_Included
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*lint --flb "Leave library region" */
|
|
||||||
|
|
||||||
#endif /* NRF51_TO_NRF52_H */
|
|
||||||
|
|
@ -1,578 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2010 - 2017, Nordic Semiconductor ASA
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form, except as embedded into a Nordic
|
|
||||||
Semiconductor ASA integrated circuit in a product or a software update for
|
|
||||||
such product, must reproduce the above copyright notice, this list of
|
|
||||||
conditions and the following disclaimer in the documentation and/or other
|
|
||||||
materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from this
|
|
||||||
software without specific prior written permission.
|
|
||||||
|
|
||||||
4. This software, with or without modification, must only be used with a
|
|
||||||
Nordic Semiconductor ASA integrated circuit.
|
|
||||||
|
|
||||||
5. Any software provided in binary form under this license must not be reverse
|
|
||||||
engineered, decompiled, modified and/or disassembled.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
||||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
||||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
||||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef NRF51_TO_NRF52840_H
|
|
||||||
#define NRF51_TO_NRF52840_H
|
|
||||||
|
|
||||||
/*lint ++flb "Enter library region */
|
|
||||||
|
|
||||||
/* This file is given to prevent your SW from not compiling with the name changes between nRF51 and nRF52840 devices.
|
|
||||||
* It redefines the old nRF51 names into the new ones as long as the functionality is still supported. If the
|
|
||||||
* functionality is gone, there old names are not defined, so compilation will fail. Note that also includes macros
|
|
||||||
* from the nrf51_deprecated.h file. */
|
|
||||||
|
|
||||||
|
|
||||||
/* IRQ */
|
|
||||||
/* Several peripherals have been added to several indexes. Names of IRQ handlers and IRQ numbers have changed. */
|
|
||||||
#define UART0_IRQHandler UARTE0_UART0_IRQHandler
|
|
||||||
#define SPI0_TWI0_IRQHandler SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
|
|
||||||
#define SPI1_TWI1_IRQHandler SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
|
|
||||||
#define ADC_IRQHandler SAADC_IRQHandler
|
|
||||||
#define LPCOMP_IRQHandler COMP_LPCOMP_IRQHandler
|
|
||||||
#define SWI0_IRQHandler SWI0_EGU0_IRQHandler
|
|
||||||
#define SWI1_IRQHandler SWI1_EGU1_IRQHandler
|
|
||||||
#define SWI2_IRQHandler SWI2_EGU2_IRQHandler
|
|
||||||
#define SWI3_IRQHandler SWI3_EGU3_IRQHandler
|
|
||||||
#define SWI4_IRQHandler SWI4_EGU4_IRQHandler
|
|
||||||
#define SWI5_IRQHandler SWI5_EGU5_IRQHandler
|
|
||||||
|
|
||||||
#define UART0_IRQn UARTE0_UART0_IRQn
|
|
||||||
#define SPI0_TWI0_IRQn SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQn
|
|
||||||
#define SPI1_TWI1_IRQn SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQn
|
|
||||||
#define ADC_IRQn SAADC_IRQn
|
|
||||||
#define LPCOMP_IRQn COMP_LPCOMP_IRQn
|
|
||||||
#define SWI0_IRQn SWI0_EGU0_IRQn
|
|
||||||
#define SWI1_IRQn SWI1_EGU1_IRQn
|
|
||||||
#define SWI2_IRQn SWI2_EGU2_IRQn
|
|
||||||
#define SWI3_IRQn SWI3_EGU3_IRQn
|
|
||||||
#define SWI4_IRQn SWI4_EGU4_IRQn
|
|
||||||
#define SWI5_IRQn SWI5_EGU5_IRQn
|
|
||||||
|
|
||||||
|
|
||||||
/* UICR */
|
|
||||||
/* Register RBPCONF was renamed to APPROTECT. */
|
|
||||||
#define RBPCONF APPROTECT
|
|
||||||
|
|
||||||
#define UICR_RBPCONF_PALL_Pos UICR_APPROTECT_PALL_Pos
|
|
||||||
#define UICR_RBPCONF_PALL_Msk UICR_APPROTECT_PALL_Msk
|
|
||||||
#define UICR_RBPCONF_PALL_Enabled UICR_APPROTECT_PALL_Enabled
|
|
||||||
#define UICR_RBPCONF_PALL_Disabled UICR_APPROTECT_PALL_Disabled
|
|
||||||
|
|
||||||
|
|
||||||
/* GPIO */
|
|
||||||
/* GPIO port was renamed to P0. */
|
|
||||||
#define NRF_GPIO NRF_P0
|
|
||||||
#define NRF_GPIO_BASE NRF_P0_BASE
|
|
||||||
|
|
||||||
|
|
||||||
/* QDEC */
|
|
||||||
/* The registers PSELA, PSELB and PSELLED were restructured into a struct. */
|
|
||||||
#define PSELLED PSEL.LED
|
|
||||||
#define PSELA PSEL.A
|
|
||||||
#define PSELB PSEL.B
|
|
||||||
|
|
||||||
|
|
||||||
/* SPIS */
|
|
||||||
/* The registers PSELSCK, PSELMISO, PSELMOSI, PSELCSN were restructured into a struct. */
|
|
||||||
#define PSELSCK PSEL.SCK
|
|
||||||
#define PSELMISO PSEL.MISO
|
|
||||||
#define PSELMOSI PSEL.MOSI
|
|
||||||
#define PSELCSN PSEL.CSN
|
|
||||||
|
|
||||||
/* The registers RXDPTR, MAXRX, AMOUNTRX were restructured into a struct */
|
|
||||||
#define RXDPTR RXD.PTR
|
|
||||||
#define MAXRX RXD.MAXCNT
|
|
||||||
#define AMOUNTRX RXD.AMOUNT
|
|
||||||
|
|
||||||
#define SPIS_MAXRX_MAXRX_Pos SPIS_RXD_MAXCNT_MAXCNT_Pos
|
|
||||||
#define SPIS_MAXRX_MAXRX_Msk SPIS_RXD_MAXCNT_MAXCNT_Msk
|
|
||||||
|
|
||||||
#define SPIS_AMOUNTRX_AMOUNTRX_Pos SPIS_RXD_AMOUNT_AMOUNT_Pos
|
|
||||||
#define SPIS_AMOUNTRX_AMOUNTRX_Msk SPIS_RXD_AMOUNT_AMOUNT_Msk
|
|
||||||
|
|
||||||
/* The registers TXDPTR, MAXTX, AMOUNTTX were restructured into a struct */
|
|
||||||
#define TXDPTR TXD.PTR
|
|
||||||
#define MAXTX TXD.MAXCNT
|
|
||||||
#define AMOUNTTX TXD.AMOUNT
|
|
||||||
|
|
||||||
#define SPIS_MAXTX_MAXTX_Pos SPIS_TXD_MAXCNT_MAXCNT_Pos
|
|
||||||
#define SPIS_MAXTX_MAXTX_Msk SPIS_TXD_MAXCNT_MAXCNT_Msk
|
|
||||||
|
|
||||||
#define SPIS_AMOUNTTX_AMOUNTTX_Pos SPIS_TXD_AMOUNT_AMOUNT_Pos
|
|
||||||
#define SPIS_AMOUNTTX_AMOUNTTX_Msk SPIS_TXD_AMOUNT_AMOUNT_Msk
|
|
||||||
|
|
||||||
|
|
||||||
/* UART */
|
|
||||||
/* The registers PSELRTS, PSELTXD, PSELCTS, PSELRXD were restructured into a struct. */
|
|
||||||
#define PSELRTS PSEL.RTS
|
|
||||||
#define PSELTXD PSEL.TXD
|
|
||||||
#define PSELCTS PSEL.CTS
|
|
||||||
#define PSELRXD PSEL.RXD
|
|
||||||
|
|
||||||
/* TWI */
|
|
||||||
/* The registers PSELSCL, PSELSDA were restructured into a struct. */
|
|
||||||
#define PSELSCL PSEL.SCL
|
|
||||||
#define PSELSDA PSEL.SDA
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* From nrf51_deprecated.h */
|
|
||||||
|
|
||||||
/* NVMC */
|
|
||||||
/* The register ERASEPROTECTEDPAGE changed name to ERASEPCR0 in the documentation. */
|
|
||||||
#define ERASEPROTECTEDPAGE ERASEPCR0
|
|
||||||
|
|
||||||
|
|
||||||
/* IRQ */
|
|
||||||
/* COMP module was eliminated. Adapted to nrf52840 headers. */
|
|
||||||
#define LPCOMP_COMP_IRQHandler COMP_LPCOMP_IRQHandler
|
|
||||||
#define LPCOMP_COMP_IRQn COMP_LPCOMP_IRQn
|
|
||||||
|
|
||||||
|
|
||||||
/* REFSEL register redefined enumerated values and added some more. */
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyOneEighthPrescaling LPCOMP_REFSEL_REFSEL_Ref1_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyTwoEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref2_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyThreeEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref3_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyFourEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref4_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplyFiveEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref5_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplySixEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref6_8Vdd
|
|
||||||
#define LPCOMP_REFSEL_REFSEL_SupplySevenEighthsPrescaling LPCOMP_REFSEL_REFSEL_Ref7_8Vdd
|
|
||||||
|
|
||||||
|
|
||||||
/* RADIO */
|
|
||||||
/* The name of the field SKIPADDR was corrected. Old macros added for compatibility. */
|
|
||||||
#define RADIO_CRCCNF_SKIP_ADDR_Pos RADIO_CRCCNF_SKIPADDR_Pos
|
|
||||||
#define RADIO_CRCCNF_SKIP_ADDR_Msk RADIO_CRCCNF_SKIPADDR_Msk
|
|
||||||
#define RADIO_CRCCNF_SKIP_ADDR_Include RADIO_CRCCNF_SKIPADDR_Include
|
|
||||||
#define RADIO_CRCCNF_SKIP_ADDR_Skip RADIO_CRCCNF_SKIPADDR_Skip
|
|
||||||
|
|
||||||
|
|
||||||
/* FICR */
|
|
||||||
/* The registers FICR.DEVICEID0 and FICR.DEVICEID1 were renamed into an array. */
|
|
||||||
#define DEVICEID0 DEVICEID[0]
|
|
||||||
#define DEVICEID1 DEVICEID[1]
|
|
||||||
|
|
||||||
/* The registers FICR.ER0, FICR.ER1, FICR.ER2 and FICR.ER3 were renamed into an array. */
|
|
||||||
#define ER0 ER[0]
|
|
||||||
#define ER1 ER[1]
|
|
||||||
#define ER2 ER[2]
|
|
||||||
#define ER3 ER[3]
|
|
||||||
|
|
||||||
/* The registers FICR.IR0, FICR.IR1, FICR.IR2 and FICR.IR3 were renamed into an array. */
|
|
||||||
#define IR0 IR[0]
|
|
||||||
#define IR1 IR[1]
|
|
||||||
#define IR2 IR[2]
|
|
||||||
#define IR3 IR[3]
|
|
||||||
|
|
||||||
/* The registers FICR.DEVICEADDR0 and FICR.DEVICEADDR1 were renamed into an array. */
|
|
||||||
#define DEVICEADDR0 DEVICEADDR[0]
|
|
||||||
#define DEVICEADDR1 DEVICEADDR[1]
|
|
||||||
|
|
||||||
|
|
||||||
/* PPI */
|
|
||||||
/* The tasks PPI.TASKS_CHGxEN and PPI.TASKS_CHGxDIS were renamed into an array of structs. */
|
|
||||||
#define TASKS_CHG0EN TASKS_CHG[0].EN
|
|
||||||
#define TASKS_CHG0DIS TASKS_CHG[0].DIS
|
|
||||||
#define TASKS_CHG1EN TASKS_CHG[1].EN
|
|
||||||
#define TASKS_CHG1DIS TASKS_CHG[1].DIS
|
|
||||||
#define TASKS_CHG2EN TASKS_CHG[2].EN
|
|
||||||
#define TASKS_CHG2DIS TASKS_CHG[2].DIS
|
|
||||||
#define TASKS_CHG3EN TASKS_CHG[3].EN
|
|
||||||
#define TASKS_CHG3DIS TASKS_CHG[3].DIS
|
|
||||||
|
|
||||||
/* The registers PPI.CHx_EEP and PPI.CHx_TEP were renamed into an array of structs. */
|
|
||||||
#define CH0_EEP CH[0].EEP
|
|
||||||
#define CH0_TEP CH[0].TEP
|
|
||||||
#define CH1_EEP CH[1].EEP
|
|
||||||
#define CH1_TEP CH[1].TEP
|
|
||||||
#define CH2_EEP CH[2].EEP
|
|
||||||
#define CH2_TEP CH[2].TEP
|
|
||||||
#define CH3_EEP CH[3].EEP
|
|
||||||
#define CH3_TEP CH[3].TEP
|
|
||||||
#define CH4_EEP CH[4].EEP
|
|
||||||
#define CH4_TEP CH[4].TEP
|
|
||||||
#define CH5_EEP CH[5].EEP
|
|
||||||
#define CH5_TEP CH[5].TEP
|
|
||||||
#define CH6_EEP CH[6].EEP
|
|
||||||
#define CH6_TEP CH[6].TEP
|
|
||||||
#define CH7_EEP CH[7].EEP
|
|
||||||
#define CH7_TEP CH[7].TEP
|
|
||||||
#define CH8_EEP CH[8].EEP
|
|
||||||
#define CH8_TEP CH[8].TEP
|
|
||||||
#define CH9_EEP CH[9].EEP
|
|
||||||
#define CH9_TEP CH[9].TEP
|
|
||||||
#define CH10_EEP CH[10].EEP
|
|
||||||
#define CH10_TEP CH[10].TEP
|
|
||||||
#define CH11_EEP CH[11].EEP
|
|
||||||
#define CH11_TEP CH[11].TEP
|
|
||||||
#define CH12_EEP CH[12].EEP
|
|
||||||
#define CH12_TEP CH[12].TEP
|
|
||||||
#define CH13_EEP CH[13].EEP
|
|
||||||
#define CH13_TEP CH[13].TEP
|
|
||||||
#define CH14_EEP CH[14].EEP
|
|
||||||
#define CH14_TEP CH[14].TEP
|
|
||||||
#define CH15_EEP CH[15].EEP
|
|
||||||
#define CH15_TEP CH[15].TEP
|
|
||||||
|
|
||||||
/* The registers PPI.CHG0, PPI.CHG1, PPI.CHG2 and PPI.CHG3 were renamed into an array. */
|
|
||||||
#define CHG0 CHG[0]
|
|
||||||
#define CHG1 CHG[1]
|
|
||||||
#define CHG2 CHG[2]
|
|
||||||
#define CHG3 CHG[3]
|
|
||||||
|
|
||||||
/* All bitfield macros for the CHGx registers therefore changed name. */
|
|
||||||
#define PPI_CHG0_CH15_Pos PPI_CHG_CH15_Pos
|
|
||||||
#define PPI_CHG0_CH15_Msk PPI_CHG_CH15_Msk
|
|
||||||
#define PPI_CHG0_CH15_Excluded PPI_CHG_CH15_Excluded
|
|
||||||
#define PPI_CHG0_CH15_Included PPI_CHG_CH15_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH14_Pos PPI_CHG_CH14_Pos
|
|
||||||
#define PPI_CHG0_CH14_Msk PPI_CHG_CH14_Msk
|
|
||||||
#define PPI_CHG0_CH14_Excluded PPI_CHG_CH14_Excluded
|
|
||||||
#define PPI_CHG0_CH14_Included PPI_CHG_CH14_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH13_Pos PPI_CHG_CH13_Pos
|
|
||||||
#define PPI_CHG0_CH13_Msk PPI_CHG_CH13_Msk
|
|
||||||
#define PPI_CHG0_CH13_Excluded PPI_CHG_CH13_Excluded
|
|
||||||
#define PPI_CHG0_CH13_Included PPI_CHG_CH13_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH12_Pos PPI_CHG_CH12_Pos
|
|
||||||
#define PPI_CHG0_CH12_Msk PPI_CHG_CH12_Msk
|
|
||||||
#define PPI_CHG0_CH12_Excluded PPI_CHG_CH12_Excluded
|
|
||||||
#define PPI_CHG0_CH12_Included PPI_CHG_CH12_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH11_Pos PPI_CHG_CH11_Pos
|
|
||||||
#define PPI_CHG0_CH11_Msk PPI_CHG_CH11_Msk
|
|
||||||
#define PPI_CHG0_CH11_Excluded PPI_CHG_CH11_Excluded
|
|
||||||
#define PPI_CHG0_CH11_Included PPI_CHG_CH11_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH10_Pos PPI_CHG_CH10_Pos
|
|
||||||
#define PPI_CHG0_CH10_Msk PPI_CHG_CH10_Msk
|
|
||||||
#define PPI_CHG0_CH10_Excluded PPI_CHG_CH10_Excluded
|
|
||||||
#define PPI_CHG0_CH10_Included PPI_CHG_CH10_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH9_Pos PPI_CHG_CH9_Pos
|
|
||||||
#define PPI_CHG0_CH9_Msk PPI_CHG_CH9_Msk
|
|
||||||
#define PPI_CHG0_CH9_Excluded PPI_CHG_CH9_Excluded
|
|
||||||
#define PPI_CHG0_CH9_Included PPI_CHG_CH9_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH8_Pos PPI_CHG_CH8_Pos
|
|
||||||
#define PPI_CHG0_CH8_Msk PPI_CHG_CH8_Msk
|
|
||||||
#define PPI_CHG0_CH8_Excluded PPI_CHG_CH8_Excluded
|
|
||||||
#define PPI_CHG0_CH8_Included PPI_CHG_CH8_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH7_Pos PPI_CHG_CH7_Pos
|
|
||||||
#define PPI_CHG0_CH7_Msk PPI_CHG_CH7_Msk
|
|
||||||
#define PPI_CHG0_CH7_Excluded PPI_CHG_CH7_Excluded
|
|
||||||
#define PPI_CHG0_CH7_Included PPI_CHG_CH7_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH6_Pos PPI_CHG_CH6_Pos
|
|
||||||
#define PPI_CHG0_CH6_Msk PPI_CHG_CH6_Msk
|
|
||||||
#define PPI_CHG0_CH6_Excluded PPI_CHG_CH6_Excluded
|
|
||||||
#define PPI_CHG0_CH6_Included PPI_CHG_CH6_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH5_Pos PPI_CHG_CH5_Pos
|
|
||||||
#define PPI_CHG0_CH5_Msk PPI_CHG_CH5_Msk
|
|
||||||
#define PPI_CHG0_CH5_Excluded PPI_CHG_CH5_Excluded
|
|
||||||
#define PPI_CHG0_CH5_Included PPI_CHG_CH5_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH4_Pos PPI_CHG_CH4_Pos
|
|
||||||
#define PPI_CHG0_CH4_Msk PPI_CHG_CH4_Msk
|
|
||||||
#define PPI_CHG0_CH4_Excluded PPI_CHG_CH4_Excluded
|
|
||||||
#define PPI_CHG0_CH4_Included PPI_CHG_CH4_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH3_Pos PPI_CHG_CH3_Pos
|
|
||||||
#define PPI_CHG0_CH3_Msk PPI_CHG_CH3_Msk
|
|
||||||
#define PPI_CHG0_CH3_Excluded PPI_CHG_CH3_Excluded
|
|
||||||
#define PPI_CHG0_CH3_Included PPI_CHG_CH3_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH2_Pos PPI_CHG_CH2_Pos
|
|
||||||
#define PPI_CHG0_CH2_Msk PPI_CHG_CH2_Msk
|
|
||||||
#define PPI_CHG0_CH2_Excluded PPI_CHG_CH2_Excluded
|
|
||||||
#define PPI_CHG0_CH2_Included PPI_CHG_CH2_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH1_Pos PPI_CHG_CH1_Pos
|
|
||||||
#define PPI_CHG0_CH1_Msk PPI_CHG_CH1_Msk
|
|
||||||
#define PPI_CHG0_CH1_Excluded PPI_CHG_CH1_Excluded
|
|
||||||
#define PPI_CHG0_CH1_Included PPI_CHG_CH1_Included
|
|
||||||
|
|
||||||
#define PPI_CHG0_CH0_Pos PPI_CHG_CH0_Pos
|
|
||||||
#define PPI_CHG0_CH0_Msk PPI_CHG_CH0_Msk
|
|
||||||
#define PPI_CHG0_CH0_Excluded PPI_CHG_CH0_Excluded
|
|
||||||
#define PPI_CHG0_CH0_Included PPI_CHG_CH0_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH15_Pos PPI_CHG_CH15_Pos
|
|
||||||
#define PPI_CHG1_CH15_Msk PPI_CHG_CH15_Msk
|
|
||||||
#define PPI_CHG1_CH15_Excluded PPI_CHG_CH15_Excluded
|
|
||||||
#define PPI_CHG1_CH15_Included PPI_CHG_CH15_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH14_Pos PPI_CHG_CH14_Pos
|
|
||||||
#define PPI_CHG1_CH14_Msk PPI_CHG_CH14_Msk
|
|
||||||
#define PPI_CHG1_CH14_Excluded PPI_CHG_CH14_Excluded
|
|
||||||
#define PPI_CHG1_CH14_Included PPI_CHG_CH14_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH13_Pos PPI_CHG_CH13_Pos
|
|
||||||
#define PPI_CHG1_CH13_Msk PPI_CHG_CH13_Msk
|
|
||||||
#define PPI_CHG1_CH13_Excluded PPI_CHG_CH13_Excluded
|
|
||||||
#define PPI_CHG1_CH13_Included PPI_CHG_CH13_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH12_Pos PPI_CHG_CH12_Pos
|
|
||||||
#define PPI_CHG1_CH12_Msk PPI_CHG_CH12_Msk
|
|
||||||
#define PPI_CHG1_CH12_Excluded PPI_CHG_CH12_Excluded
|
|
||||||
#define PPI_CHG1_CH12_Included PPI_CHG_CH12_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH11_Pos PPI_CHG_CH11_Pos
|
|
||||||
#define PPI_CHG1_CH11_Msk PPI_CHG_CH11_Msk
|
|
||||||
#define PPI_CHG1_CH11_Excluded PPI_CHG_CH11_Excluded
|
|
||||||
#define PPI_CHG1_CH11_Included PPI_CHG_CH11_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH10_Pos PPI_CHG_CH10_Pos
|
|
||||||
#define PPI_CHG1_CH10_Msk PPI_CHG_CH10_Msk
|
|
||||||
#define PPI_CHG1_CH10_Excluded PPI_CHG_CH10_Excluded
|
|
||||||
#define PPI_CHG1_CH10_Included PPI_CHG_CH10_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH9_Pos PPI_CHG_CH9_Pos
|
|
||||||
#define PPI_CHG1_CH9_Msk PPI_CHG_CH9_Msk
|
|
||||||
#define PPI_CHG1_CH9_Excluded PPI_CHG_CH9_Excluded
|
|
||||||
#define PPI_CHG1_CH9_Included PPI_CHG_CH9_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH8_Pos PPI_CHG_CH8_Pos
|
|
||||||
#define PPI_CHG1_CH8_Msk PPI_CHG_CH8_Msk
|
|
||||||
#define PPI_CHG1_CH8_Excluded PPI_CHG_CH8_Excluded
|
|
||||||
#define PPI_CHG1_CH8_Included PPI_CHG_CH8_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH7_Pos PPI_CHG_CH7_Pos
|
|
||||||
#define PPI_CHG1_CH7_Msk PPI_CHG_CH7_Msk
|
|
||||||
#define PPI_CHG1_CH7_Excluded PPI_CHG_CH7_Excluded
|
|
||||||
#define PPI_CHG1_CH7_Included PPI_CHG_CH7_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH6_Pos PPI_CHG_CH6_Pos
|
|
||||||
#define PPI_CHG1_CH6_Msk PPI_CHG_CH6_Msk
|
|
||||||
#define PPI_CHG1_CH6_Excluded PPI_CHG_CH6_Excluded
|
|
||||||
#define PPI_CHG1_CH6_Included PPI_CHG_CH6_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH5_Pos PPI_CHG_CH5_Pos
|
|
||||||
#define PPI_CHG1_CH5_Msk PPI_CHG_CH5_Msk
|
|
||||||
#define PPI_CHG1_CH5_Excluded PPI_CHG_CH5_Excluded
|
|
||||||
#define PPI_CHG1_CH5_Included PPI_CHG_CH5_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH4_Pos PPI_CHG_CH4_Pos
|
|
||||||
#define PPI_CHG1_CH4_Msk PPI_CHG_CH4_Msk
|
|
||||||
#define PPI_CHG1_CH4_Excluded PPI_CHG_CH4_Excluded
|
|
||||||
#define PPI_CHG1_CH4_Included PPI_CHG_CH4_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH3_Pos PPI_CHG_CH3_Pos
|
|
||||||
#define PPI_CHG1_CH3_Msk PPI_CHG_CH3_Msk
|
|
||||||
#define PPI_CHG1_CH3_Excluded PPI_CHG_CH3_Excluded
|
|
||||||
#define PPI_CHG1_CH3_Included PPI_CHG_CH3_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH2_Pos PPI_CHG_CH2_Pos
|
|
||||||
#define PPI_CHG1_CH2_Msk PPI_CHG_CH2_Msk
|
|
||||||
#define PPI_CHG1_CH2_Excluded PPI_CHG_CH2_Excluded
|
|
||||||
#define PPI_CHG1_CH2_Included PPI_CHG_CH2_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH1_Pos PPI_CHG_CH1_Pos
|
|
||||||
#define PPI_CHG1_CH1_Msk PPI_CHG_CH1_Msk
|
|
||||||
#define PPI_CHG1_CH1_Excluded PPI_CHG_CH1_Excluded
|
|
||||||
#define PPI_CHG1_CH1_Included PPI_CHG_CH1_Included
|
|
||||||
|
|
||||||
#define PPI_CHG1_CH0_Pos PPI_CHG_CH0_Pos
|
|
||||||
#define PPI_CHG1_CH0_Msk PPI_CHG_CH0_Msk
|
|
||||||
#define PPI_CHG1_CH0_Excluded PPI_CHG_CH0_Excluded
|
|
||||||
#define PPI_CHG1_CH0_Included PPI_CHG_CH0_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH15_Pos PPI_CHG_CH15_Pos
|
|
||||||
#define PPI_CHG2_CH15_Msk PPI_CHG_CH15_Msk
|
|
||||||
#define PPI_CHG2_CH15_Excluded PPI_CHG_CH15_Excluded
|
|
||||||
#define PPI_CHG2_CH15_Included PPI_CHG_CH15_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH14_Pos PPI_CHG_CH14_Pos
|
|
||||||
#define PPI_CHG2_CH14_Msk PPI_CHG_CH14_Msk
|
|
||||||
#define PPI_CHG2_CH14_Excluded PPI_CHG_CH14_Excluded
|
|
||||||
#define PPI_CHG2_CH14_Included PPI_CHG_CH14_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH13_Pos PPI_CHG_CH13_Pos
|
|
||||||
#define PPI_CHG2_CH13_Msk PPI_CHG_CH13_Msk
|
|
||||||
#define PPI_CHG2_CH13_Excluded PPI_CHG_CH13_Excluded
|
|
||||||
#define PPI_CHG2_CH13_Included PPI_CHG_CH13_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH12_Pos PPI_CHG_CH12_Pos
|
|
||||||
#define PPI_CHG2_CH12_Msk PPI_CHG_CH12_Msk
|
|
||||||
#define PPI_CHG2_CH12_Excluded PPI_CHG_CH12_Excluded
|
|
||||||
#define PPI_CHG2_CH12_Included PPI_CHG_CH12_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH11_Pos PPI_CHG_CH11_Pos
|
|
||||||
#define PPI_CHG2_CH11_Msk PPI_CHG_CH11_Msk
|
|
||||||
#define PPI_CHG2_CH11_Excluded PPI_CHG_CH11_Excluded
|
|
||||||
#define PPI_CHG2_CH11_Included PPI_CHG_CH11_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH10_Pos PPI_CHG_CH10_Pos
|
|
||||||
#define PPI_CHG2_CH10_Msk PPI_CHG_CH10_Msk
|
|
||||||
#define PPI_CHG2_CH10_Excluded PPI_CHG_CH10_Excluded
|
|
||||||
#define PPI_CHG2_CH10_Included PPI_CHG_CH10_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH9_Pos PPI_CHG_CH9_Pos
|
|
||||||
#define PPI_CHG2_CH9_Msk PPI_CHG_CH9_Msk
|
|
||||||
#define PPI_CHG2_CH9_Excluded PPI_CHG_CH9_Excluded
|
|
||||||
#define PPI_CHG2_CH9_Included PPI_CHG_CH9_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH8_Pos PPI_CHG_CH8_Pos
|
|
||||||
#define PPI_CHG2_CH8_Msk PPI_CHG_CH8_Msk
|
|
||||||
#define PPI_CHG2_CH8_Excluded PPI_CHG_CH8_Excluded
|
|
||||||
#define PPI_CHG2_CH8_Included PPI_CHG_CH8_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH7_Pos PPI_CHG_CH7_Pos
|
|
||||||
#define PPI_CHG2_CH7_Msk PPI_CHG_CH7_Msk
|
|
||||||
#define PPI_CHG2_CH7_Excluded PPI_CHG_CH7_Excluded
|
|
||||||
#define PPI_CHG2_CH7_Included PPI_CHG_CH7_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH6_Pos PPI_CHG_CH6_Pos
|
|
||||||
#define PPI_CHG2_CH6_Msk PPI_CHG_CH6_Msk
|
|
||||||
#define PPI_CHG2_CH6_Excluded PPI_CHG_CH6_Excluded
|
|
||||||
#define PPI_CHG2_CH6_Included PPI_CHG_CH6_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH5_Pos PPI_CHG_CH5_Pos
|
|
||||||
#define PPI_CHG2_CH5_Msk PPI_CHG_CH5_Msk
|
|
||||||
#define PPI_CHG2_CH5_Excluded PPI_CHG_CH5_Excluded
|
|
||||||
#define PPI_CHG2_CH5_Included PPI_CHG_CH5_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH4_Pos PPI_CHG_CH4_Pos
|
|
||||||
#define PPI_CHG2_CH4_Msk PPI_CHG_CH4_Msk
|
|
||||||
#define PPI_CHG2_CH4_Excluded PPI_CHG_CH4_Excluded
|
|
||||||
#define PPI_CHG2_CH4_Included PPI_CHG_CH4_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH3_Pos PPI_CHG_CH3_Pos
|
|
||||||
#define PPI_CHG2_CH3_Msk PPI_CHG_CH3_Msk
|
|
||||||
#define PPI_CHG2_CH3_Excluded PPI_CHG_CH3_Excluded
|
|
||||||
#define PPI_CHG2_CH3_Included PPI_CHG_CH3_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH2_Pos PPI_CHG_CH2_Pos
|
|
||||||
#define PPI_CHG2_CH2_Msk PPI_CHG_CH2_Msk
|
|
||||||
#define PPI_CHG2_CH2_Excluded PPI_CHG_CH2_Excluded
|
|
||||||
#define PPI_CHG2_CH2_Included PPI_CHG_CH2_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH1_Pos PPI_CHG_CH1_Pos
|
|
||||||
#define PPI_CHG2_CH1_Msk PPI_CHG_CH1_Msk
|
|
||||||
#define PPI_CHG2_CH1_Excluded PPI_CHG_CH1_Excluded
|
|
||||||
#define PPI_CHG2_CH1_Included PPI_CHG_CH1_Included
|
|
||||||
|
|
||||||
#define PPI_CHG2_CH0_Pos PPI_CHG_CH0_Pos
|
|
||||||
#define PPI_CHG2_CH0_Msk PPI_CHG_CH0_Msk
|
|
||||||
#define PPI_CHG2_CH0_Excluded PPI_CHG_CH0_Excluded
|
|
||||||
#define PPI_CHG2_CH0_Included PPI_CHG_CH0_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH15_Pos PPI_CHG_CH15_Pos
|
|
||||||
#define PPI_CHG3_CH15_Msk PPI_CHG_CH15_Msk
|
|
||||||
#define PPI_CHG3_CH15_Excluded PPI_CHG_CH15_Excluded
|
|
||||||
#define PPI_CHG3_CH15_Included PPI_CHG_CH15_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH14_Pos PPI_CHG_CH14_Pos
|
|
||||||
#define PPI_CHG3_CH14_Msk PPI_CHG_CH14_Msk
|
|
||||||
#define PPI_CHG3_CH14_Excluded PPI_CHG_CH14_Excluded
|
|
||||||
#define PPI_CHG3_CH14_Included PPI_CHG_CH14_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH13_Pos PPI_CHG_CH13_Pos
|
|
||||||
#define PPI_CHG3_CH13_Msk PPI_CHG_CH13_Msk
|
|
||||||
#define PPI_CHG3_CH13_Excluded PPI_CHG_CH13_Excluded
|
|
||||||
#define PPI_CHG3_CH13_Included PPI_CHG_CH13_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH12_Pos PPI_CHG_CH12_Pos
|
|
||||||
#define PPI_CHG3_CH12_Msk PPI_CHG_CH12_Msk
|
|
||||||
#define PPI_CHG3_CH12_Excluded PPI_CHG_CH12_Excluded
|
|
||||||
#define PPI_CHG3_CH12_Included PPI_CHG_CH12_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH11_Pos PPI_CHG_CH11_Pos
|
|
||||||
#define PPI_CHG3_CH11_Msk PPI_CHG_CH11_Msk
|
|
||||||
#define PPI_CHG3_CH11_Excluded PPI_CHG_CH11_Excluded
|
|
||||||
#define PPI_CHG3_CH11_Included PPI_CHG_CH11_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH10_Pos PPI_CHG_CH10_Pos
|
|
||||||
#define PPI_CHG3_CH10_Msk PPI_CHG_CH10_Msk
|
|
||||||
#define PPI_CHG3_CH10_Excluded PPI_CHG_CH10_Excluded
|
|
||||||
#define PPI_CHG3_CH10_Included PPI_CHG_CH10_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH9_Pos PPI_CHG_CH9_Pos
|
|
||||||
#define PPI_CHG3_CH9_Msk PPI_CHG_CH9_Msk
|
|
||||||
#define PPI_CHG3_CH9_Excluded PPI_CHG_CH9_Excluded
|
|
||||||
#define PPI_CHG3_CH9_Included PPI_CHG_CH9_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH8_Pos PPI_CHG_CH8_Pos
|
|
||||||
#define PPI_CHG3_CH8_Msk PPI_CHG_CH8_Msk
|
|
||||||
#define PPI_CHG3_CH8_Excluded PPI_CHG_CH8_Excluded
|
|
||||||
#define PPI_CHG3_CH8_Included PPI_CHG_CH8_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH7_Pos PPI_CHG_CH7_Pos
|
|
||||||
#define PPI_CHG3_CH7_Msk PPI_CHG_CH7_Msk
|
|
||||||
#define PPI_CHG3_CH7_Excluded PPI_CHG_CH7_Excluded
|
|
||||||
#define PPI_CHG3_CH7_Included PPI_CHG_CH7_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH6_Pos PPI_CHG_CH6_Pos
|
|
||||||
#define PPI_CHG3_CH6_Msk PPI_CHG_CH6_Msk
|
|
||||||
#define PPI_CHG3_CH6_Excluded PPI_CHG_CH6_Excluded
|
|
||||||
#define PPI_CHG3_CH6_Included PPI_CHG_CH6_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH5_Pos PPI_CHG_CH5_Pos
|
|
||||||
#define PPI_CHG3_CH5_Msk PPI_CHG_CH5_Msk
|
|
||||||
#define PPI_CHG3_CH5_Excluded PPI_CHG_CH5_Excluded
|
|
||||||
#define PPI_CHG3_CH5_Included PPI_CHG_CH5_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH4_Pos PPI_CHG_CH4_Pos
|
|
||||||
#define PPI_CHG3_CH4_Msk PPI_CHG_CH4_Msk
|
|
||||||
#define PPI_CHG3_CH4_Excluded PPI_CHG_CH4_Excluded
|
|
||||||
#define PPI_CHG3_CH4_Included PPI_CHG_CH4_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH3_Pos PPI_CHG_CH3_Pos
|
|
||||||
#define PPI_CHG3_CH3_Msk PPI_CHG_CH3_Msk
|
|
||||||
#define PPI_CHG3_CH3_Excluded PPI_CHG_CH3_Excluded
|
|
||||||
#define PPI_CHG3_CH3_Included PPI_CHG_CH3_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH2_Pos PPI_CHG_CH2_Pos
|
|
||||||
#define PPI_CHG3_CH2_Msk PPI_CHG_CH2_Msk
|
|
||||||
#define PPI_CHG3_CH2_Excluded PPI_CHG_CH2_Excluded
|
|
||||||
#define PPI_CHG3_CH2_Included PPI_CHG_CH2_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH1_Pos PPI_CHG_CH1_Pos
|
|
||||||
#define PPI_CHG3_CH1_Msk PPI_CHG_CH1_Msk
|
|
||||||
#define PPI_CHG3_CH1_Excluded PPI_CHG_CH1_Excluded
|
|
||||||
#define PPI_CHG3_CH1_Included PPI_CHG_CH1_Included
|
|
||||||
|
|
||||||
#define PPI_CHG3_CH0_Pos PPI_CHG_CH0_Pos
|
|
||||||
#define PPI_CHG3_CH0_Msk PPI_CHG_CH0_Msk
|
|
||||||
#define PPI_CHG3_CH0_Excluded PPI_CHG_CH0_Excluded
|
|
||||||
#define PPI_CHG3_CH0_Included PPI_CHG_CH0_Included
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*lint --flb "Leave library region" */
|
|
||||||
|
|
||||||
#endif /* NRF51_TO_NRF52840_H */
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,275 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2010 - 2017, Nordic Semiconductor ASA
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form, except as embedded into a Nordic
|
|
||||||
Semiconductor ASA integrated circuit in a product or a software update for
|
|
||||||
such product, must reproduce the above copyright notice, this list of
|
|
||||||
conditions and the following disclaimer in the documentation and/or other
|
|
||||||
materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from this
|
|
||||||
software without specific prior written permission.
|
|
||||||
|
|
||||||
4. This software, with or without modification, must only be used with a
|
|
||||||
Nordic Semiconductor ASA integrated circuit.
|
|
||||||
|
|
||||||
5. Any software provided in binary form under this license must not be reverse
|
|
||||||
engineered, decompiled, modified and/or disassembled.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
||||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
||||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
||||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _NRF52832_PERIPHERALS_H
|
|
||||||
#define _NRF52832_PERIPHERALS_H
|
|
||||||
|
|
||||||
|
|
||||||
/* Power Peripheral */
|
|
||||||
#define POWER_PRESENT
|
|
||||||
#define POWER_COUNT 1
|
|
||||||
|
|
||||||
#define POWER_FEATURE_RAM_REGISTERS_PRESENT
|
|
||||||
#define POWER_FEATURE_RAM_REGISTERS_COUNT 8
|
|
||||||
|
|
||||||
/* Floating Point Unit */
|
|
||||||
#define FPU_PRESENT
|
|
||||||
#define FPU_COUNT 1
|
|
||||||
|
|
||||||
/* Systick timer */
|
|
||||||
#define SYSTICK_PRESENT
|
|
||||||
#define SYSTICK_COUNT 1
|
|
||||||
|
|
||||||
/* Software Interrupts */
|
|
||||||
#define SWI_PRESENT
|
|
||||||
#define SWI_COUNT 6
|
|
||||||
|
|
||||||
/* Memory Watch Unit */
|
|
||||||
#define MWU_PRESENT
|
|
||||||
#define MWU_COUNT 1
|
|
||||||
|
|
||||||
/* GPIO */
|
|
||||||
#define GPIO_PRESENT
|
|
||||||
#define GPIO_COUNT 1
|
|
||||||
|
|
||||||
#define P0_PIN_NUM 32
|
|
||||||
|
|
||||||
/* MPU and BPROT */
|
|
||||||
#define BPROT_PRESENT
|
|
||||||
|
|
||||||
#define BPROT_REGIONS_SIZE 4096
|
|
||||||
#define BPROT_REGIONS_NUM 128
|
|
||||||
|
|
||||||
/* Radio */
|
|
||||||
#define RADIO_PRESENT
|
|
||||||
#define RADIO_COUNT 1
|
|
||||||
|
|
||||||
#define RADIO_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
|
|
||||||
/* Accelerated Address Resolver */
|
|
||||||
#define AAR_PRESENT
|
|
||||||
#define AAR_COUNT 1
|
|
||||||
|
|
||||||
#define AAR_MAX_IRK_NUM 16
|
|
||||||
|
|
||||||
/* AES Electronic CodeBook mode encryption */
|
|
||||||
#define ECB_PRESENT
|
|
||||||
#define ECB_COUNT 1
|
|
||||||
|
|
||||||
/* AES CCM mode encryption */
|
|
||||||
#define CCM_PRESENT
|
|
||||||
#define CCM_COUNT 1
|
|
||||||
|
|
||||||
/* NFC Tag */
|
|
||||||
#define NFCT_PRESENT
|
|
||||||
#define NFCT_COUNT 1
|
|
||||||
|
|
||||||
#define NFCT_EASYDMA_MAXCNT_SIZE 9
|
|
||||||
|
|
||||||
/* Peripheral to Peripheral Interconnect */
|
|
||||||
#define PPI_PRESENT
|
|
||||||
#define PPI_COUNT 1
|
|
||||||
|
|
||||||
#define PPI_CH_NUM 20
|
|
||||||
#define PPI_FIXED_CH_NUM 12
|
|
||||||
#define PPI_GROUP_NUM 6
|
|
||||||
#define PPI_FEATURE_FORKS_PRESENT
|
|
||||||
|
|
||||||
/* Event Generator Unit */
|
|
||||||
#define EGU_PRESENT
|
|
||||||
#define EGU_COUNT 6
|
|
||||||
|
|
||||||
#define EGU0_CH_NUM 16
|
|
||||||
#define EGU1_CH_NUM 16
|
|
||||||
#define EGU2_CH_NUM 16
|
|
||||||
#define EGU3_CH_NUM 16
|
|
||||||
#define EGU4_CH_NUM 16
|
|
||||||
#define EGU5_CH_NUM 16
|
|
||||||
|
|
||||||
/* Timer/Counter */
|
|
||||||
#define TIMER_PRESENT
|
|
||||||
#define TIMER_COUNT 5
|
|
||||||
|
|
||||||
#define TIMER0_MAX_SIZE 32
|
|
||||||
#define TIMER1_MAX_SIZE 32
|
|
||||||
#define TIMER2_MAX_SIZE 32
|
|
||||||
#define TIMER3_MAX_SIZE 32
|
|
||||||
#define TIMER4_MAX_SIZE 32
|
|
||||||
|
|
||||||
#define TIMER0_CC_NUM 4
|
|
||||||
#define TIMER1_CC_NUM 4
|
|
||||||
#define TIMER2_CC_NUM 4
|
|
||||||
#define TIMER3_CC_NUM 6
|
|
||||||
#define TIMER4_CC_NUM 6
|
|
||||||
|
|
||||||
/* Real Time Counter */
|
|
||||||
#define RTC_PRESENT
|
|
||||||
#define RTC_COUNT 3
|
|
||||||
|
|
||||||
#define RTC0_CC_NUM 3
|
|
||||||
#define RTC1_CC_NUM 4
|
|
||||||
#define RTC2_CC_NUM 4
|
|
||||||
|
|
||||||
/* RNG */
|
|
||||||
#define RNG_PRESENT
|
|
||||||
#define RNG_COUNT 1
|
|
||||||
|
|
||||||
/* Watchdog Timer */
|
|
||||||
#define WDT_PRESENT
|
|
||||||
#define WDT_COUNT 1
|
|
||||||
|
|
||||||
/* Temperature Sensor */
|
|
||||||
#define TEMP_PRESENT
|
|
||||||
#define TEMP_COUNT 1
|
|
||||||
|
|
||||||
/* Serial Peripheral Interface Master */
|
|
||||||
#define SPI_PRESENT
|
|
||||||
#define SPI_COUNT 3
|
|
||||||
|
|
||||||
/* Serial Peripheral Interface Master with DMA */
|
|
||||||
#define SPIM_PRESENT
|
|
||||||
#define SPIM_COUNT 3
|
|
||||||
|
|
||||||
#define SPIM0_MAX_DATARATE 8
|
|
||||||
#define SPIM1_MAX_DATARATE 8
|
|
||||||
#define SPIM2_MAX_DATARATE 8
|
|
||||||
|
|
||||||
#define SPIM0_FEATURE_HARDWARE_CSN_PRESENT 0
|
|
||||||
#define SPIM1_FEATURE_HARDWARE_CSN_PRESENT 0
|
|
||||||
#define SPIM2_FEATURE_HARDWARE_CSN_PRESENT 0
|
|
||||||
|
|
||||||
#define SPIM0_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
#define SPIM1_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
#define SPIM2_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
|
|
||||||
/* Serial Peripheral Interface Slave with DMA*/
|
|
||||||
#define SPIS_PRESENT
|
|
||||||
#define SPIS_COUNT 3
|
|
||||||
|
|
||||||
#define SPIS0_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
#define SPIS1_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
#define SPIS2_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
|
|
||||||
/* Two Wire Interface Master */
|
|
||||||
#define TWI_PRESENT
|
|
||||||
#define TWI_COUNT 2
|
|
||||||
|
|
||||||
/* Two Wire Interface Master with DMA */
|
|
||||||
#define TWIM_PRESENT
|
|
||||||
#define TWIM_COUNT 2
|
|
||||||
|
|
||||||
#define TWIM0_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
#define TWIM1_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
|
|
||||||
/* Two Wire Interface Slave with DMA */
|
|
||||||
#define TWIS_PRESENT
|
|
||||||
#define TWIS_COUNT 2
|
|
||||||
|
|
||||||
#define TWIS0_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
#define TWIS1_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
|
|
||||||
/* Universal Asynchronous Receiver-Transmitter */
|
|
||||||
#define UART_PRESENT
|
|
||||||
#define UART_COUNT 1
|
|
||||||
|
|
||||||
/* Universal Asynchronous Receiver-Transmitter with DMA */
|
|
||||||
#define UARTE_PRESENT
|
|
||||||
#define UARTE_COUNT 1
|
|
||||||
|
|
||||||
#define UARTE0_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
|
|
||||||
/* Quadrature Decoder */
|
|
||||||
#define QDEC_PRESENT
|
|
||||||
#define QDEC_COUNT 1
|
|
||||||
|
|
||||||
/* Successive Approximation Analog to Digital Converter */
|
|
||||||
#define SAADC_PRESENT
|
|
||||||
#define SAADC_COUNT 1
|
|
||||||
|
|
||||||
#define SAADC_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
|
|
||||||
/* GPIO Tasks and Events */
|
|
||||||
#define GPIOTE_PRESENT
|
|
||||||
#define GPIOTE_COUNT 1
|
|
||||||
|
|
||||||
#define GPIOTE_CH_NUM 8
|
|
||||||
|
|
||||||
#define GPIOTE_FEATURE_SET_PRESENT
|
|
||||||
#define GPIOTE_FEATURE_CLR_PRESENT
|
|
||||||
|
|
||||||
/* Low Power Comparator */
|
|
||||||
#define LPCOMP_PRESENT
|
|
||||||
#define LPCOMP_COUNT 1
|
|
||||||
|
|
||||||
#define LPCOMP_REFSEL_RESOLUTION 16
|
|
||||||
|
|
||||||
#define LPCOMP_FEATURE_HYST_PRESENT
|
|
||||||
|
|
||||||
/* Comparator */
|
|
||||||
#define COMP_PRESENT
|
|
||||||
#define COMP_COUNT 1
|
|
||||||
|
|
||||||
/* Pulse Width Modulator */
|
|
||||||
#define PWM_PRESENT
|
|
||||||
#define PWM_COUNT 3
|
|
||||||
|
|
||||||
#define PWM0_CH_NUM 4
|
|
||||||
#define PWM1_CH_NUM 4
|
|
||||||
#define PWM2_CH_NUM 4
|
|
||||||
|
|
||||||
#define PWM0_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
#define PWM1_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
#define PWM2_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
|
|
||||||
/* Pulse Density Modulator */
|
|
||||||
#define PDM_PRESENT
|
|
||||||
#define PDM_COUNT 1
|
|
||||||
|
|
||||||
#define PDM_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
|
|
||||||
/* Inter-IC Sound Interface */
|
|
||||||
#define I2S_PRESENT
|
|
||||||
#define I2S_COUNT 1
|
|
||||||
|
|
||||||
#define I2S_EASYDMA_MAXCNT_SIZE 14
|
|
||||||
|
|
||||||
|
|
||||||
#endif // _NRF52832_PERIPHERALS_H
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,298 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2010 - 2017, Nordic Semiconductor ASA
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form, except as embedded into a Nordic
|
|
||||||
Semiconductor ASA integrated circuit in a product or a software update for
|
|
||||||
such product, must reproduce the above copyright notice, this list of
|
|
||||||
conditions and the following disclaimer in the documentation and/or other
|
|
||||||
materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from this
|
|
||||||
software without specific prior written permission.
|
|
||||||
|
|
||||||
4. This software, with or without modification, must only be used with a
|
|
||||||
Nordic Semiconductor ASA integrated circuit.
|
|
||||||
|
|
||||||
5. Any software provided in binary form under this license must not be reverse
|
|
||||||
engineered, decompiled, modified and/or disassembled.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
||||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
||||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
||||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _NRF52840_PERIPHERALS_H
|
|
||||||
#define _NRF52840_PERIPHERALS_H
|
|
||||||
|
|
||||||
|
|
||||||
/* Power Peripheral */
|
|
||||||
#define POWER_PRESENT
|
|
||||||
#define POWER_COUNT 1
|
|
||||||
|
|
||||||
#define POWER_FEATURE_RAM_REGISTERS_PRESENT
|
|
||||||
#define POWER_FEATURE_RAM_REGISTERS_COUNT 9
|
|
||||||
|
|
||||||
#define POWER_FEATURE_VDDH_PRESENT
|
|
||||||
|
|
||||||
/* Floating Point Unit */
|
|
||||||
#define FPU_PRESENT
|
|
||||||
#define FPU_COUNT 1
|
|
||||||
|
|
||||||
/* Systick timer */
|
|
||||||
#define SYSTICK_PRESENT
|
|
||||||
#define SYSTICK_COUNT 1
|
|
||||||
|
|
||||||
/* Software Interrupts */
|
|
||||||
#define SWI_PRESENT
|
|
||||||
#define SWI_COUNT 6
|
|
||||||
|
|
||||||
/* Memory Watch Unit */
|
|
||||||
#define MWU_PRESENT
|
|
||||||
#define MWU_COUNT 1
|
|
||||||
|
|
||||||
/* GPIO */
|
|
||||||
#define GPIO_PRESENT
|
|
||||||
#define GPIO_COUNT 2
|
|
||||||
|
|
||||||
#define P0_PIN_NUM 32
|
|
||||||
#define P1_PIN_NUM 16
|
|
||||||
|
|
||||||
/* ACL */
|
|
||||||
#define ACL_PRESENT
|
|
||||||
|
|
||||||
#define ACL_REGIONS_COUNT 8
|
|
||||||
|
|
||||||
/* Radio */
|
|
||||||
#define RADIO_PRESENT
|
|
||||||
#define RADIO_COUNT 1
|
|
||||||
|
|
||||||
#define RADIO_EASYDMA_MAXCNT_SIZE 8
|
|
||||||
|
|
||||||
/* Accelerated Address Resolver */
|
|
||||||
#define AAR_PRESENT
|
|
||||||
#define AAR_COUNT 1
|
|
||||||
|
|
||||||
#define AAR_MAX_IRK_NUM 16
|
|
||||||
|
|
||||||
/* AES Electronic CodeBook mode encryption */
|
|
||||||
#define ECB_PRESENT
|
|
||||||
#define ECB_COUNT 1
|
|
||||||
|
|
||||||
/* AES CCM mode encryption */
|
|
||||||
#define CCM_PRESENT
|
|
||||||
#define CCM_COUNT 1
|
|
||||||
|
|
||||||
/* NFC Tag */
|
|
||||||
#define NFCT_PRESENT
|
|
||||||
#define NFCT_COUNT 1
|
|
||||||
|
|
||||||
#define NFCT_EASYDMA_MAXCNT_SIZE 9
|
|
||||||
|
|
||||||
/* Peripheral to Peripheral Interconnect */
|
|
||||||
#define PPI_PRESENT
|
|
||||||
#define PPI_COUNT 1
|
|
||||||
|
|
||||||
#define PPI_CH_NUM 20
|
|
||||||
#define PPI_FIXED_CH_NUM 12
|
|
||||||
#define PPI_GROUP_NUM 6
|
|
||||||
#define PPI_FEATURE_FORKS_PRESENT
|
|
||||||
|
|
||||||
/* Event Generator Unit */
|
|
||||||
#define EGU_PRESENT
|
|
||||||
#define EGU_COUNT 6
|
|
||||||
|
|
||||||
#define EGU0_CH_NUM 16
|
|
||||||
#define EGU1_CH_NUM 16
|
|
||||||
#define EGU2_CH_NUM 16
|
|
||||||
#define EGU3_CH_NUM 16
|
|
||||||
#define EGU4_CH_NUM 16
|
|
||||||
#define EGU5_CH_NUM 16
|
|
||||||
|
|
||||||
/* Timer/Counter */
|
|
||||||
#define TIMER_PRESENT
|
|
||||||
#define TIMER_COUNT 5
|
|
||||||
|
|
||||||
#define TIMER0_MAX_SIZE 32
|
|
||||||
#define TIMER1_MAX_SIZE 32
|
|
||||||
#define TIMER2_MAX_SIZE 32
|
|
||||||
#define TIMER3_MAX_SIZE 32
|
|
||||||
#define TIMER4_MAX_SIZE 32
|
|
||||||
|
|
||||||
#define TIMER0_CC_NUM 4
|
|
||||||
#define TIMER1_CC_NUM 4
|
|
||||||
#define TIMER2_CC_NUM 4
|
|
||||||
#define TIMER3_CC_NUM 6
|
|
||||||
#define TIMER4_CC_NUM 6
|
|
||||||
|
|
||||||
/* Real Time Counter */
|
|
||||||
#define RTC_PRESENT
|
|
||||||
#define RTC_COUNT 3
|
|
||||||
|
|
||||||
#define RTC0_CC_NUM 3
|
|
||||||
#define RTC1_CC_NUM 4
|
|
||||||
#define RTC2_CC_NUM 4
|
|
||||||
|
|
||||||
/* RNG */
|
|
||||||
#define RNG_PRESENT
|
|
||||||
#define RNG_COUNT 1
|
|
||||||
|
|
||||||
/* Watchdog Timer */
|
|
||||||
#define WDT_PRESENT
|
|
||||||
#define WDT_COUNT 1
|
|
||||||
|
|
||||||
/* Temperature Sensor */
|
|
||||||
#define TEMP_PRESENT
|
|
||||||
#define TEMP_COUNT 1
|
|
||||||
|
|
||||||
/* Serial Peripheral Interface Master */
|
|
||||||
#define SPI_PRESENT
|
|
||||||
#define SPI_COUNT 3
|
|
||||||
|
|
||||||
/* Serial Peripheral Interface Master with DMA */
|
|
||||||
#define SPIM_PRESENT
|
|
||||||
#define SPIM_COUNT 4
|
|
||||||
|
|
||||||
#define SPIM0_MAX_DATARATE 8
|
|
||||||
#define SPIM1_MAX_DATARATE 8
|
|
||||||
#define SPIM2_MAX_DATARATE 8
|
|
||||||
#define SPIM3_MAX_DATARATE 32
|
|
||||||
|
|
||||||
#define SPIM0_FEATURE_HARDWARE_CSN_PRESENT 0
|
|
||||||
#define SPIM1_FEATURE_HARDWARE_CSN_PRESENT 0
|
|
||||||
#define SPIM2_FEATURE_HARDWARE_CSN_PRESENT 0
|
|
||||||
#define SPIM3_FEATURE_HARDWARE_CSN_PRESENT 1
|
|
||||||
|
|
||||||
#define SPIM0_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
#define SPIM1_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
#define SPIM2_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
#define SPIM3_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
|
|
||||||
/* Serial Peripheral Interface Slave with DMA*/
|
|
||||||
#define SPIS_PRESENT
|
|
||||||
#define SPIS_COUNT 3
|
|
||||||
|
|
||||||
#define SPIS0_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
#define SPIS1_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
#define SPIS2_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
|
|
||||||
/* Two Wire Interface Master */
|
|
||||||
#define TWI_PRESENT
|
|
||||||
#define TWI_COUNT 2
|
|
||||||
|
|
||||||
/* Two Wire Interface Master with DMA */
|
|
||||||
#define TWIM_PRESENT
|
|
||||||
#define TWIM_COUNT 2
|
|
||||||
|
|
||||||
#define TWIM0_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
#define TWIM1_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
|
|
||||||
/* Two Wire Interface Slave with DMA */
|
|
||||||
#define TWIS_PRESENT
|
|
||||||
#define TWIS_COUNT 2
|
|
||||||
|
|
||||||
#define TWIS0_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
#define TWIS1_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
|
|
||||||
/* Universal Asynchronous Receiver-Transmitter */
|
|
||||||
#define UART_PRESENT
|
|
||||||
#define UART_COUNT 1
|
|
||||||
|
|
||||||
/* Universal Asynchronous Receiver-Transmitter with DMA */
|
|
||||||
#define UARTE_PRESENT
|
|
||||||
#define UARTE_COUNT 2
|
|
||||||
|
|
||||||
#define UARTE0_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
#define UARTE1_EASYDMA_MAXCNT_SIZE 16
|
|
||||||
|
|
||||||
/* Quadrature Decoder */
|
|
||||||
#define QDEC_PRESENT
|
|
||||||
#define QDEC_COUNT 1
|
|
||||||
|
|
||||||
/* Successive Approximation Analog to Digital Converter */
|
|
||||||
#define SAADC_PRESENT
|
|
||||||
#define SAADC_COUNT 1
|
|
||||||
|
|
||||||
#define SAADC_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
|
|
||||||
/* GPIO Tasks and Events */
|
|
||||||
#define GPIOTE_PRESENT
|
|
||||||
#define GPIOTE_COUNT 1
|
|
||||||
|
|
||||||
#define GPIOTE_CH_NUM 8
|
|
||||||
|
|
||||||
#define GPIOTE_FEATURE_SET_PRESENT
|
|
||||||
#define GPIOTE_FEATURE_CLR_PRESENT
|
|
||||||
|
|
||||||
/* Low Power Comparator */
|
|
||||||
#define LPCOMP_PRESENT
|
|
||||||
#define LPCOMP_COUNT 1
|
|
||||||
|
|
||||||
#define LPCOMP_REFSEL_RESOLUTION 16
|
|
||||||
|
|
||||||
#define LPCOMP_FEATURE_HYST_PRESENT
|
|
||||||
|
|
||||||
/* Comparator */
|
|
||||||
#define COMP_PRESENT
|
|
||||||
#define COMP_COUNT 1
|
|
||||||
|
|
||||||
/* Pulse Width Modulator */
|
|
||||||
#define PWM_PRESENT
|
|
||||||
#define PWM_COUNT 4
|
|
||||||
|
|
||||||
#define PWM0_CH_NUM 4
|
|
||||||
#define PWM1_CH_NUM 4
|
|
||||||
#define PWM2_CH_NUM 4
|
|
||||||
#define PWM3_CH_NUM 4
|
|
||||||
|
|
||||||
#define PWM0_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
#define PWM1_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
#define PWM2_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
#define PWM3_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
|
|
||||||
/* Pulse Density Modulator */
|
|
||||||
#define PDM_PRESENT
|
|
||||||
#define PDM_COUNT 1
|
|
||||||
|
|
||||||
#define PDM_EASYDMA_MAXCNT_SIZE 15
|
|
||||||
|
|
||||||
/* Inter-IC Sound Interface */
|
|
||||||
#define I2S_PRESENT
|
|
||||||
#define I2S_COUNT 1
|
|
||||||
|
|
||||||
#define I2S_EASYDMA_MAXCNT_SIZE 14
|
|
||||||
|
|
||||||
/* Universal Serial Bus Device */
|
|
||||||
#define USBD_PRESENT
|
|
||||||
#define USBD_COUNT 1
|
|
||||||
|
|
||||||
#define USBD_EASYDMA_MAXCNT_SIZE 7
|
|
||||||
|
|
||||||
/* ARM TrustZone Cryptocell 310 */
|
|
||||||
#define CRYPTOCELL_PRESENT
|
|
||||||
#define CRYPTOCELL_COUNT 1
|
|
||||||
|
|
||||||
/* Quad SPI */
|
|
||||||
#define QSPI_PRESENT
|
|
||||||
#define QSPI_COUNT 1
|
|
||||||
|
|
||||||
#define QSPI_EASYDMA_MAXCNT_SIZE 20
|
|
||||||
|
|
||||||
#endif // _NRF52840_PERIPHERALS_H
|
|
File diff suppressed because it is too large
Load Diff
@ -1,81 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2010 - 2017, Nordic Semiconductor ASA
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form, except as embedded into a Nordic
|
|
||||||
Semiconductor ASA integrated circuit in a product or a software update for
|
|
||||||
such product, must reproduce the above copyright notice, this list of
|
|
||||||
conditions and the following disclaimer in the documentation and/or other
|
|
||||||
materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from this
|
|
||||||
software without specific prior written permission.
|
|
||||||
|
|
||||||
4. This software, with or without modification, must only be used with a
|
|
||||||
Nordic Semiconductor ASA integrated circuit.
|
|
||||||
|
|
||||||
5. Any software provided in binary form under this license must not be reverse
|
|
||||||
engineered, decompiled, modified and/or disassembled.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
||||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
||||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
||||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef NRF52_NAME_CHANGE_H
|
|
||||||
#define NRF52_NAME_CHANGE_H
|
|
||||||
|
|
||||||
/*lint ++flb "Enter library region */
|
|
||||||
|
|
||||||
/* This file is given to prevent your SW from not compiling with the updates made to nrf52.h and
|
|
||||||
* nrf52_bitfields.h. The macros defined in this file were available previously. Do not use these
|
|
||||||
* macros on purpose. Use the ones defined in nrf52.h and nrf52_bitfields.h instead.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* I2S */
|
|
||||||
/* Several enumerations changed case. Adding old macros to keep compilation compatibility. */
|
|
||||||
#define I2S_ENABLE_ENABLE_DISABLE I2S_ENABLE_ENABLE_Disabled
|
|
||||||
#define I2S_ENABLE_ENABLE_ENABLE I2S_ENABLE_ENABLE_Enabled
|
|
||||||
#define I2S_CONFIG_MODE_MODE_MASTER I2S_CONFIG_MODE_MODE_Master
|
|
||||||
#define I2S_CONFIG_MODE_MODE_SLAVE I2S_CONFIG_MODE_MODE_Slave
|
|
||||||
#define I2S_CONFIG_RXEN_RXEN_DISABLE I2S_CONFIG_RXEN_RXEN_Disabled
|
|
||||||
#define I2S_CONFIG_RXEN_RXEN_ENABLE I2S_CONFIG_RXEN_RXEN_Enabled
|
|
||||||
#define I2S_CONFIG_TXEN_TXEN_DISABLE I2S_CONFIG_TXEN_TXEN_Disabled
|
|
||||||
#define I2S_CONFIG_TXEN_TXEN_ENABLE I2S_CONFIG_TXEN_TXEN_Enabled
|
|
||||||
#define I2S_CONFIG_MCKEN_MCKEN_DISABLE I2S_CONFIG_MCKEN_MCKEN_Disabled
|
|
||||||
#define I2S_CONFIG_MCKEN_MCKEN_ENABLE I2S_CONFIG_MCKEN_MCKEN_Enabled
|
|
||||||
#define I2S_CONFIG_SWIDTH_SWIDTH_8BIT I2S_CONFIG_SWIDTH_SWIDTH_8Bit
|
|
||||||
#define I2S_CONFIG_SWIDTH_SWIDTH_16BIT I2S_CONFIG_SWIDTH_SWIDTH_16Bit
|
|
||||||
#define I2S_CONFIG_SWIDTH_SWIDTH_24BIT I2S_CONFIG_SWIDTH_SWIDTH_24Bit
|
|
||||||
#define I2S_CONFIG_ALIGN_ALIGN_LEFT I2S_CONFIG_ALIGN_ALIGN_Left
|
|
||||||
#define I2S_CONFIG_ALIGN_ALIGN_RIGHT I2S_CONFIG_ALIGN_ALIGN_Right
|
|
||||||
#define I2S_CONFIG_FORMAT_FORMAT_ALIGNED I2S_CONFIG_FORMAT_FORMAT_Aligned
|
|
||||||
#define I2S_CONFIG_CHANNELS_CHANNELS_STEREO I2S_CONFIG_CHANNELS_CHANNELS_Stereo
|
|
||||||
#define I2S_CONFIG_CHANNELS_CHANNELS_LEFT I2S_CONFIG_CHANNELS_CHANNELS_Left
|
|
||||||
#define I2S_CONFIG_CHANNELS_CHANNELS_RIGHT I2S_CONFIG_CHANNELS_CHANNELS_Right
|
|
||||||
|
|
||||||
/* LPCOMP */
|
|
||||||
/* Corrected typo in RESULT register. */
|
|
||||||
#define LPCOMP_RESULT_RESULT_Bellow LPCOMP_RESULT_RESULT_Below
|
|
||||||
|
|
||||||
/*lint --flb "Leave library region" */
|
|
||||||
|
|
||||||
#endif /* NRF52_NAME_CHANGE_H */
|
|
||||||
|
|
@ -1,105 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2010 - 2017, Nordic Semiconductor ASA
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form, except as embedded into a Nordic
|
|
||||||
Semiconductor ASA integrated circuit in a product or a software update for
|
|
||||||
such product, must reproduce the above copyright notice, this list of
|
|
||||||
conditions and the following disclaimer in the documentation and/or other
|
|
||||||
materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from this
|
|
||||||
software without specific prior written permission.
|
|
||||||
|
|
||||||
4. This software, with or without modification, must only be used with a
|
|
||||||
Nordic Semiconductor ASA integrated circuit.
|
|
||||||
|
|
||||||
5. Any software provided in binary form under this license must not be reverse
|
|
||||||
engineered, decompiled, modified and/or disassembled.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
||||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
||||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
||||||
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef NRF52_TO_NRF52840_H
|
|
||||||
#define NRF52_TO_NRF52840_H
|
|
||||||
|
|
||||||
/*lint ++flb "Enter library region */
|
|
||||||
|
|
||||||
/* This file is given to prevent your SW from not compiling with the name changes between nRF51 or nRF52832 and nRF52840 devices.
|
|
||||||
* It redefines the old nRF51 or nRF52832 names into the new ones as long as the functionality is still supported. If the
|
|
||||||
* functionality is gone, there old names are not defined, so compilation will fail. Note that also includes macros
|
|
||||||
* from the nrf52_namechange.h file. */
|
|
||||||
|
|
||||||
/* Differences between latest nRF52 headers and nRF52840 headers. */
|
|
||||||
|
|
||||||
/* UART */
|
|
||||||
/* The registers PSELRTS, PSELTXD, PSELCTS, PSELRXD were restructured into a struct. */
|
|
||||||
#define PSELRTS PSEL.RTS
|
|
||||||
#define PSELTXD PSEL.TXD
|
|
||||||
#define PSELCTS PSEL.CTS
|
|
||||||
#define PSELRXD PSEL.RXD
|
|
||||||
|
|
||||||
/* TWI */
|
|
||||||
/* The registers PSELSCL, PSELSDA were restructured into a struct. */
|
|
||||||
#define PSELSCL PSEL.SCL
|
|
||||||
#define PSELSDA PSEL.SDA
|
|
||||||
|
|
||||||
|
|
||||||
/* LPCOMP */
|
|
||||||
/* The hysteresis control enumerated values has changed name for nRF52840 devices. */
|
|
||||||
#define LPCOMP_HYST_HYST_NoHyst LPCOMP_HYST_HYST_Disabled
|
|
||||||
#define LPCOMP_HYST_HYST_Hyst50mV LPCOMP_HYST_HYST_Enabled
|
|
||||||
|
|
||||||
|
|
||||||
/* From nrf52_name_change.h. Several macros changed in different versions of nRF52 headers. By defining the following, any code written for any version of nRF52 headers will still compile. */
|
|
||||||
|
|
||||||
/* I2S */
|
|
||||||
/* Several enumerations changed case. Adding old macros to keep compilation compatibility. */
|
|
||||||
#define I2S_ENABLE_ENABLE_DISABLE I2S_ENABLE_ENABLE_Disabled
|
|
||||||
#define I2S_ENABLE_ENABLE_ENABLE I2S_ENABLE_ENABLE_Enabled
|
|
||||||
#define I2S_CONFIG_MODE_MODE_MASTER I2S_CONFIG_MODE_MODE_Master
|
|
||||||
#define I2S_CONFIG_MODE_MODE_SLAVE I2S_CONFIG_MODE_MODE_Slave
|
|
||||||
#define I2S_CONFIG_RXEN_RXEN_DISABLE I2S_CONFIG_RXEN_RXEN_Disabled
|
|
||||||
#define I2S_CONFIG_RXEN_RXEN_ENABLE I2S_CONFIG_RXEN_RXEN_Enabled
|
|
||||||
#define I2S_CONFIG_TXEN_TXEN_DISABLE I2S_CONFIG_TXEN_TXEN_Disabled
|
|
||||||
#define I2S_CONFIG_TXEN_TXEN_ENABLE I2S_CONFIG_TXEN_TXEN_Enabled
|
|
||||||
#define I2S_CONFIG_MCKEN_MCKEN_DISABLE I2S_CONFIG_MCKEN_MCKEN_Disabled
|
|
||||||
#define I2S_CONFIG_MCKEN_MCKEN_ENABLE I2S_CONFIG_MCKEN_MCKEN_Enabled
|
|
||||||
#define I2S_CONFIG_SWIDTH_SWIDTH_8BIT I2S_CONFIG_SWIDTH_SWIDTH_8Bit
|
|
||||||
#define I2S_CONFIG_SWIDTH_SWIDTH_16BIT I2S_CONFIG_SWIDTH_SWIDTH_16Bit
|
|
||||||
#define I2S_CONFIG_SWIDTH_SWIDTH_24BIT I2S_CONFIG_SWIDTH_SWIDTH_24Bit
|
|
||||||
#define I2S_CONFIG_ALIGN_ALIGN_LEFT I2S_CONFIG_ALIGN_ALIGN_Left
|
|
||||||
#define I2S_CONFIG_ALIGN_ALIGN_RIGHT I2S_CONFIG_ALIGN_ALIGN_Right
|
|
||||||
#define I2S_CONFIG_FORMAT_FORMAT_ALIGNED I2S_CONFIG_FORMAT_FORMAT_Aligned
|
|
||||||
#define I2S_CONFIG_CHANNELS_CHANNELS_STEREO I2S_CONFIG_CHANNELS_CHANNELS_Stereo
|
|
||||||
#define I2S_CONFIG_CHANNELS_CHANNELS_LEFT I2S_CONFIG_CHANNELS_CHANNELS_Left
|
|
||||||
#define I2S_CONFIG_CHANNELS_CHANNELS_RIGHT I2S_CONFIG_CHANNELS_CHANNELS_Right
|
|
||||||
|
|
||||||
/* LPCOMP */
|
|
||||||
/* Corrected typo in RESULT register. */
|
|
||||||
#define LPCOMP_RESULT_RESULT_Bellow LPCOMP_RESULT_RESULT_Below
|
|
||||||
|
|
||||||
|
|
||||||
/*lint --flb "Leave library region" */
|
|
||||||
|
|
||||||
#endif /* NRF51_TO_NRF52840_H */
|
|
||||||
|
|
@ -1,193 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2017 - 2018, Nordic Semiconductor ASA
|
|
||||||
*
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
* are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
* list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* 2. Redistributions in binary form, except as embedded into a Nordic
|
|
||||||
* Semiconductor ASA integrated circuit in a product or a software update for
|
|
||||||
* such product, must reproduce the above copyright notice, this list of
|
|
||||||
* conditions and the following disclaimer in the documentation and/or other
|
|
||||||
* materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* 3. Neither the name of Nordic Semiconductor ASA nor the names of its
|
|
||||||
* contributors may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* 4. This software, with or without modification, must only be used with a
|
|
||||||
* Nordic Semiconductor ASA integrated circuit.
|
|
||||||
*
|
|
||||||
* 5. Any software provided in binary form under this license must not be reverse
|
|
||||||
* engineered, decompiled, modified and/or disassembled.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
|
||||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
* OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
|
|
||||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
||||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
||||||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef NRF_DRV_USBD_ERRATA_H__
|
|
||||||
#define NRF_DRV_USBD_ERRATA_H__
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
/**
|
|
||||||
* @defgroup nrf_drv_usbd_errata Functions to check if selected PAN is present in current chip
|
|
||||||
* @{
|
|
||||||
* @ingroup nrf_drv_usbd
|
|
||||||
*
|
|
||||||
* Functions here are checking the presence of an error in current chip.
|
|
||||||
* The checking is done at runtime based on the microcontroller version.
|
|
||||||
* This file is subject to removal when nRF51840 prototype support is removed.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef NRF_DRV_USBD_ERRATA_ENABLE
|
|
||||||
/**
|
|
||||||
* @brief The constant that informs if errata should be enabled at all
|
|
||||||
*
|
|
||||||
* If this constant is set to 0, all the Errata bug fixes will be automatically disabled.
|
|
||||||
*/
|
|
||||||
#define NRF_DRV_USBD_ERRATA_ENABLE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Internal auxiliary function to check if the program is running on NRF52840 chip
|
|
||||||
* @retval true It is NRF52480 chip
|
|
||||||
* @retval false It is other chip
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usbd_errata_type_52840(void)
|
|
||||||
{
|
|
||||||
return ((((*(uint32_t *)0xF0000FE0) & 0xFF) == 0x08) &&
|
|
||||||
(((*(uint32_t *)0xF0000FE4) & 0x0F) == 0x0));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Internal auxiliary function to check if the program is running on first sample of
|
|
||||||
* NRF52840 chip
|
|
||||||
* @retval true It is NRF52480 chip and it is first sample version
|
|
||||||
* @retval false It is other chip
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usbd_errata_type_52840_proto1(void)
|
|
||||||
{
|
|
||||||
return ( nrf_drv_usbd_errata_type_52840() &&
|
|
||||||
( ((*(uint32_t *)0xF0000FE8) & 0xF0) == 0x00 ) &&
|
|
||||||
( ((*(uint32_t *)0xF0000FEC) & 0xF0) == 0x00 ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Internal auxiliary function to check if the program is running on first final product of
|
|
||||||
* NRF52840 chip
|
|
||||||
* @retval true It is NRF52480 chip and it is first final product
|
|
||||||
* @retval false It is other chip
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usbd_errata_type_52840_fp1(void)
|
|
||||||
{
|
|
||||||
return ( nrf_drv_usbd_errata_type_52840() &&
|
|
||||||
( ((*(uint32_t *)0xF0000FE8) & 0xF0) == 0x20 ) &&
|
|
||||||
( ((*(uint32_t *)0xF0000FEC) & 0xF0) == 0x00 ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Function to check if chip requires errata 104
|
|
||||||
*
|
|
||||||
* Errata: USBD: EPDATA event is not always generated.
|
|
||||||
*
|
|
||||||
* @retval true Errata should be implemented
|
|
||||||
* @retval false Errata should not be implemented
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usbd_errata_104(void)
|
|
||||||
{
|
|
||||||
return NRF_DRV_USBD_ERRATA_ENABLE && nrf_drv_usbd_errata_type_52840_proto1();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Function to check if chip requires errata 154
|
|
||||||
*
|
|
||||||
* Errata: During setup read/write transfer USBD acknowledges setup stage without SETUP task.
|
|
||||||
*
|
|
||||||
* @retval true Errata should be implemented
|
|
||||||
* @retval false Errata should not be implemented
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usbd_errata_154(void)
|
|
||||||
{
|
|
||||||
return NRF_DRV_USBD_ERRATA_ENABLE && nrf_drv_usbd_errata_type_52840_proto1();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Function to check if chip requires errata 166
|
|
||||||
*
|
|
||||||
* Errata: ISO double buffering not functional
|
|
||||||
*
|
|
||||||
* @retval true Errata should be implemented
|
|
||||||
* @retval false Errata should not be implemented
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usbd_errata_166(void)
|
|
||||||
{
|
|
||||||
return NRF_DRV_USBD_ERRATA_ENABLE && true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Function to check if chip requires errata 171
|
|
||||||
*
|
|
||||||
* Errata: USBD might not reach its active state.
|
|
||||||
*
|
|
||||||
* @retval true Errata should be implemented
|
|
||||||
* @retval false Errata should not be implemented
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usbd_errata_171(void)
|
|
||||||
{
|
|
||||||
return NRF_DRV_USBD_ERRATA_ENABLE && true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Function to check if chip requires errata 187
|
|
||||||
*
|
|
||||||
* Errata: USB cannot be enabled
|
|
||||||
*
|
|
||||||
* @retval true Errata should be implemented
|
|
||||||
* @retval false Errata should not be implemented
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usbd_errata_187(void)
|
|
||||||
{
|
|
||||||
return NRF_DRV_USBD_ERRATA_ENABLE && nrf_drv_usbd_errata_type_52840_fp1();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Function to check if chip requires errata ???
|
|
||||||
*
|
|
||||||
* Errata: SIZE.EPOUT not writable
|
|
||||||
*
|
|
||||||
* @retval true Errata should be implemented
|
|
||||||
* @retval false Errata should not be implemented
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usbd_errata_sizeepout_rw(void)
|
|
||||||
{
|
|
||||||
return NRF_DRV_USBD_ERRATA_ENABLE && nrf_drv_usbd_errata_type_52840_proto1();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Function to check if chip requires errata 199
|
|
||||||
*
|
|
||||||
* Errata: USBD cannot receive tasks during DMA
|
|
||||||
*
|
|
||||||
* @retval true Errata should be implemented
|
|
||||||
* @retval false Errata should not be implemented
|
|
||||||
*/
|
|
||||||
static inline bool nrf_drv_usb_errata_199(void)
|
|
||||||
{
|
|
||||||
return NRF_DRV_USBD_ERRATA_ENABLE && true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @} */
|
|
||||||
#endif /* NRF_DRV_USBD_ERRATA_H__ */
|
|
@ -1,136 +0,0 @@
|
|||||||
/* ----------------------------------------------------------------------
|
|
||||||
* Copyright (C) 2010-2014 ARM Limited. All rights reserved.
|
|
||||||
*
|
|
||||||
* $Date: 19. October 2015
|
|
||||||
* $Revision: V.1.4.5 a
|
|
||||||
*
|
|
||||||
* Project: CMSIS DSP Library
|
|
||||||
* Title: arm_common_tables.h
|
|
||||||
*
|
|
||||||
* Description: This file has extern declaration for common tables like Bitreverse, reciprocal etc which are used across different functions
|
|
||||||
*
|
|
||||||
* Target Processor: Cortex-M4/Cortex-M3
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in
|
|
||||||
* the documentation and/or other materials provided with the
|
|
||||||
* distribution.
|
|
||||||
* - Neither the name of ARM LIMITED nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
* -------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
#ifndef _ARM_COMMON_TABLES_H
|
|
||||||
#define _ARM_COMMON_TABLES_H
|
|
||||||
|
|
||||||
#include "arm_math.h"
|
|
||||||
|
|
||||||
extern const uint16_t armBitRevTable[1024];
|
|
||||||
extern const q15_t armRecipTableQ15[64];
|
|
||||||
extern const q31_t armRecipTableQ31[64];
|
|
||||||
/* extern const q31_t realCoefAQ31[1024]; */
|
|
||||||
/* extern const q31_t realCoefBQ31[1024]; */
|
|
||||||
extern const float32_t twiddleCoef_16[32];
|
|
||||||
extern const float32_t twiddleCoef_32[64];
|
|
||||||
extern const float32_t twiddleCoef_64[128];
|
|
||||||
extern const float32_t twiddleCoef_128[256];
|
|
||||||
extern const float32_t twiddleCoef_256[512];
|
|
||||||
extern const float32_t twiddleCoef_512[1024];
|
|
||||||
extern const float32_t twiddleCoef_1024[2048];
|
|
||||||
extern const float32_t twiddleCoef_2048[4096];
|
|
||||||
extern const float32_t twiddleCoef_4096[8192];
|
|
||||||
#define twiddleCoef twiddleCoef_4096
|
|
||||||
extern const q31_t twiddleCoef_16_q31[24];
|
|
||||||
extern const q31_t twiddleCoef_32_q31[48];
|
|
||||||
extern const q31_t twiddleCoef_64_q31[96];
|
|
||||||
extern const q31_t twiddleCoef_128_q31[192];
|
|
||||||
extern const q31_t twiddleCoef_256_q31[384];
|
|
||||||
extern const q31_t twiddleCoef_512_q31[768];
|
|
||||||
extern const q31_t twiddleCoef_1024_q31[1536];
|
|
||||||
extern const q31_t twiddleCoef_2048_q31[3072];
|
|
||||||
extern const q31_t twiddleCoef_4096_q31[6144];
|
|
||||||
extern const q15_t twiddleCoef_16_q15[24];
|
|
||||||
extern const q15_t twiddleCoef_32_q15[48];
|
|
||||||
extern const q15_t twiddleCoef_64_q15[96];
|
|
||||||
extern const q15_t twiddleCoef_128_q15[192];
|
|
||||||
extern const q15_t twiddleCoef_256_q15[384];
|
|
||||||
extern const q15_t twiddleCoef_512_q15[768];
|
|
||||||
extern const q15_t twiddleCoef_1024_q15[1536];
|
|
||||||
extern const q15_t twiddleCoef_2048_q15[3072];
|
|
||||||
extern const q15_t twiddleCoef_4096_q15[6144];
|
|
||||||
extern const float32_t twiddleCoef_rfft_32[32];
|
|
||||||
extern const float32_t twiddleCoef_rfft_64[64];
|
|
||||||
extern const float32_t twiddleCoef_rfft_128[128];
|
|
||||||
extern const float32_t twiddleCoef_rfft_256[256];
|
|
||||||
extern const float32_t twiddleCoef_rfft_512[512];
|
|
||||||
extern const float32_t twiddleCoef_rfft_1024[1024];
|
|
||||||
extern const float32_t twiddleCoef_rfft_2048[2048];
|
|
||||||
extern const float32_t twiddleCoef_rfft_4096[4096];
|
|
||||||
|
|
||||||
|
|
||||||
/* floating-point bit reversal tables */
|
|
||||||
#define ARMBITREVINDEXTABLE__16_TABLE_LENGTH ((uint16_t)20 )
|
|
||||||
#define ARMBITREVINDEXTABLE__32_TABLE_LENGTH ((uint16_t)48 )
|
|
||||||
#define ARMBITREVINDEXTABLE__64_TABLE_LENGTH ((uint16_t)56 )
|
|
||||||
#define ARMBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208 )
|
|
||||||
#define ARMBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440 )
|
|
||||||
#define ARMBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448 )
|
|
||||||
#define ARMBITREVINDEXTABLE1024_TABLE_LENGTH ((uint16_t)1800)
|
|
||||||
#define ARMBITREVINDEXTABLE2048_TABLE_LENGTH ((uint16_t)3808)
|
|
||||||
#define ARMBITREVINDEXTABLE4096_TABLE_LENGTH ((uint16_t)4032)
|
|
||||||
|
|
||||||
extern const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE__16_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE__32_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE__64_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE1024_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE2048_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE4096_TABLE_LENGTH];
|
|
||||||
|
|
||||||
/* fixed-point bit reversal tables */
|
|
||||||
#define ARMBITREVINDEXTABLE_FIXED___16_TABLE_LENGTH ((uint16_t)12 )
|
|
||||||
#define ARMBITREVINDEXTABLE_FIXED___32_TABLE_LENGTH ((uint16_t)24 )
|
|
||||||
#define ARMBITREVINDEXTABLE_FIXED___64_TABLE_LENGTH ((uint16_t)56 )
|
|
||||||
#define ARMBITREVINDEXTABLE_FIXED__128_TABLE_LENGTH ((uint16_t)112 )
|
|
||||||
#define ARMBITREVINDEXTABLE_FIXED__256_TABLE_LENGTH ((uint16_t)240 )
|
|
||||||
#define ARMBITREVINDEXTABLE_FIXED__512_TABLE_LENGTH ((uint16_t)480 )
|
|
||||||
#define ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH ((uint16_t)992 )
|
|
||||||
#define ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH ((uint16_t)1984)
|
|
||||||
#define ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH ((uint16_t)4032)
|
|
||||||
|
|
||||||
extern const uint16_t armBitRevIndexTable_fixed_16[ARMBITREVINDEXTABLE_FIXED___16_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable_fixed_32[ARMBITREVINDEXTABLE_FIXED___32_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable_fixed_64[ARMBITREVINDEXTABLE_FIXED___64_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable_fixed_128[ARMBITREVINDEXTABLE_FIXED__128_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable_fixed_256[ARMBITREVINDEXTABLE_FIXED__256_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable_fixed_512[ARMBITREVINDEXTABLE_FIXED__512_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable_fixed_1024[ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable_fixed_2048[ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH];
|
|
||||||
extern const uint16_t armBitRevIndexTable_fixed_4096[ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH];
|
|
||||||
|
|
||||||
/* Tables for Fast Math Sine and Cosine */
|
|
||||||
extern const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1];
|
|
||||||
extern const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1];
|
|
||||||
extern const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1];
|
|
||||||
|
|
||||||
#endif /* ARM_COMMON_TABLES_H */
|
|
@ -1,79 +0,0 @@
|
|||||||
/* ----------------------------------------------------------------------
|
|
||||||
* Copyright (C) 2010-2014 ARM Limited. All rights reserved.
|
|
||||||
*
|
|
||||||
* $Date: 19. March 2015
|
|
||||||
* $Revision: V.1.4.5
|
|
||||||
*
|
|
||||||
* Project: CMSIS DSP Library
|
|
||||||
* Title: arm_const_structs.h
|
|
||||||
*
|
|
||||||
* Description: This file has constant structs that are initialized for
|
|
||||||
* user convenience. For example, some can be given as
|
|
||||||
* arguments to the arm_cfft_f32() function.
|
|
||||||
*
|
|
||||||
* Target Processor: Cortex-M4/Cortex-M3
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* - Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* - Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in
|
|
||||||
* the documentation and/or other materials provided with the
|
|
||||||
* distribution.
|
|
||||||
* - Neither the name of ARM LIMITED nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
* -------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
#ifndef _ARM_CONST_STRUCTS_H
|
|
||||||
#define _ARM_CONST_STRUCTS_H
|
|
||||||
|
|
||||||
#include "arm_math.h"
|
|
||||||
#include "arm_common_tables.h"
|
|
||||||
|
|
||||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len16;
|
|
||||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len32;
|
|
||||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len64;
|
|
||||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len128;
|
|
||||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len256;
|
|
||||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len512;
|
|
||||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len1024;
|
|
||||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len2048;
|
|
||||||
extern const arm_cfft_instance_f32 arm_cfft_sR_f32_len4096;
|
|
||||||
|
|
||||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len16;
|
|
||||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len32;
|
|
||||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len64;
|
|
||||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len128;
|
|
||||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len256;
|
|
||||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len512;
|
|
||||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len1024;
|
|
||||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len2048;
|
|
||||||
extern const arm_cfft_instance_q31 arm_cfft_sR_q31_len4096;
|
|
||||||
|
|
||||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len16;
|
|
||||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len32;
|
|
||||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len64;
|
|
||||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len128;
|
|
||||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len256;
|
|
||||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len512;
|
|
||||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len1024;
|
|
||||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len2048;
|
|
||||||
extern const arm_cfft_instance_q15 arm_cfft_sR_q15_len4096;
|
|
||||||
|
|
||||||
#endif
|
|
File diff suppressed because it is too large
Load Diff
@ -1,734 +0,0 @@
|
|||||||
/**************************************************************************//**
|
|
||||||
* @file cmsis_armcc.h
|
|
||||||
* @brief CMSIS Cortex-M Core Function/Instruction Header File
|
|
||||||
* @version V4.30
|
|
||||||
* @date 20. October 2015
|
|
||||||
******************************************************************************/
|
|
||||||
/* Copyright (c) 2009 - 2015 ARM LIMITED
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
- Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
- Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
- Neither the name of ARM nor the names of its contributors may be used
|
|
||||||
to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.
|
|
||||||
*
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __CMSIS_ARMCC_H
|
|
||||||
#define __CMSIS_ARMCC_H
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 400677)
|
|
||||||
#error "Please use ARM Compiler Toolchain V4.0.677 or later!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ########################### Core Function Access ########################### */
|
|
||||||
/** \ingroup CMSIS_Core_FunctionInterface
|
|
||||||
\defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* intrinsic void __enable_irq(); */
|
|
||||||
/* intrinsic void __disable_irq(); */
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Control Register
|
|
||||||
\details Returns the content of the Control Register.
|
|
||||||
\return Control Register value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_CONTROL(void)
|
|
||||||
{
|
|
||||||
register uint32_t __regControl __ASM("control");
|
|
||||||
return(__regControl);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Control Register
|
|
||||||
\details Writes the given value to the Control Register.
|
|
||||||
\param [in] control Control Register value to set
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void __set_CONTROL(uint32_t control)
|
|
||||||
{
|
|
||||||
register uint32_t __regControl __ASM("control");
|
|
||||||
__regControl = control;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get IPSR Register
|
|
||||||
\details Returns the content of the IPSR Register.
|
|
||||||
\return IPSR Register value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_IPSR(void)
|
|
||||||
{
|
|
||||||
register uint32_t __regIPSR __ASM("ipsr");
|
|
||||||
return(__regIPSR);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get APSR Register
|
|
||||||
\details Returns the content of the APSR Register.
|
|
||||||
\return APSR Register value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_APSR(void)
|
|
||||||
{
|
|
||||||
register uint32_t __regAPSR __ASM("apsr");
|
|
||||||
return(__regAPSR);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get xPSR Register
|
|
||||||
\details Returns the content of the xPSR Register.
|
|
||||||
\return xPSR Register value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_xPSR(void)
|
|
||||||
{
|
|
||||||
register uint32_t __regXPSR __ASM("xpsr");
|
|
||||||
return(__regXPSR);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Process Stack Pointer
|
|
||||||
\details Returns the current value of the Process Stack Pointer (PSP).
|
|
||||||
\return PSP Register value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_PSP(void)
|
|
||||||
{
|
|
||||||
register uint32_t __regProcessStackPointer __ASM("psp");
|
|
||||||
return(__regProcessStackPointer);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Process Stack Pointer
|
|
||||||
\details Assigns the given value to the Process Stack Pointer (PSP).
|
|
||||||
\param [in] topOfProcStack Process Stack Pointer value to set
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void __set_PSP(uint32_t topOfProcStack)
|
|
||||||
{
|
|
||||||
register uint32_t __regProcessStackPointer __ASM("psp");
|
|
||||||
__regProcessStackPointer = topOfProcStack;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Main Stack Pointer
|
|
||||||
\details Returns the current value of the Main Stack Pointer (MSP).
|
|
||||||
\return MSP Register value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_MSP(void)
|
|
||||||
{
|
|
||||||
register uint32_t __regMainStackPointer __ASM("msp");
|
|
||||||
return(__regMainStackPointer);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Main Stack Pointer
|
|
||||||
\details Assigns the given value to the Main Stack Pointer (MSP).
|
|
||||||
\param [in] topOfMainStack Main Stack Pointer value to set
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void __set_MSP(uint32_t topOfMainStack)
|
|
||||||
{
|
|
||||||
register uint32_t __regMainStackPointer __ASM("msp");
|
|
||||||
__regMainStackPointer = topOfMainStack;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Priority Mask
|
|
||||||
\details Returns the current state of the priority mask bit from the Priority Mask Register.
|
|
||||||
\return Priority Mask value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_PRIMASK(void)
|
|
||||||
{
|
|
||||||
register uint32_t __regPriMask __ASM("primask");
|
|
||||||
return(__regPriMask);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Priority Mask
|
|
||||||
\details Assigns the given value to the Priority Mask Register.
|
|
||||||
\param [in] priMask Priority Mask
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void __set_PRIMASK(uint32_t priMask)
|
|
||||||
{
|
|
||||||
register uint32_t __regPriMask __ASM("primask");
|
|
||||||
__regPriMask = (priMask);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#if (__CORTEX_M >= 0x03U) || (__CORTEX_SC >= 300U)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Enable FIQ
|
|
||||||
\details Enables FIQ interrupts by clearing the F-bit in the CPSR.
|
|
||||||
Can only be executed in Privileged modes.
|
|
||||||
*/
|
|
||||||
#define __enable_fault_irq __enable_fiq
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Disable FIQ
|
|
||||||
\details Disables FIQ interrupts by setting the F-bit in the CPSR.
|
|
||||||
Can only be executed in Privileged modes.
|
|
||||||
*/
|
|
||||||
#define __disable_fault_irq __disable_fiq
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Base Priority
|
|
||||||
\details Returns the current value of the Base Priority register.
|
|
||||||
\return Base Priority register value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_BASEPRI(void)
|
|
||||||
{
|
|
||||||
register uint32_t __regBasePri __ASM("basepri");
|
|
||||||
return(__regBasePri);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Base Priority
|
|
||||||
\details Assigns the given value to the Base Priority register.
|
|
||||||
\param [in] basePri Base Priority value to set
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void __set_BASEPRI(uint32_t basePri)
|
|
||||||
{
|
|
||||||
register uint32_t __regBasePri __ASM("basepri");
|
|
||||||
__regBasePri = (basePri & 0xFFU);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Base Priority with condition
|
|
||||||
\details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled,
|
|
||||||
or the new value increases the BASEPRI priority level.
|
|
||||||
\param [in] basePri Base Priority value to set
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri)
|
|
||||||
{
|
|
||||||
register uint32_t __regBasePriMax __ASM("basepri_max");
|
|
||||||
__regBasePriMax = (basePri & 0xFFU);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Fault Mask
|
|
||||||
\details Returns the current value of the Fault Mask register.
|
|
||||||
\return Fault Mask register value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_FAULTMASK(void)
|
|
||||||
{
|
|
||||||
register uint32_t __regFaultMask __ASM("faultmask");
|
|
||||||
return(__regFaultMask);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Fault Mask
|
|
||||||
\details Assigns the given value to the Fault Mask register.
|
|
||||||
\param [in] faultMask Fault Mask value to set
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask)
|
|
||||||
{
|
|
||||||
register uint32_t __regFaultMask __ASM("faultmask");
|
|
||||||
__regFaultMask = (faultMask & (uint32_t)1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* (__CORTEX_M >= 0x03U) || (__CORTEX_SC >= 300U) */
|
|
||||||
|
|
||||||
|
|
||||||
#if (__CORTEX_M == 0x04U) || (__CORTEX_M == 0x07U)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get FPSCR
|
|
||||||
\details Returns the current value of the Floating Point Status/Control register.
|
|
||||||
\return Floating Point Status/Control register value
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t __get_FPSCR(void)
|
|
||||||
{
|
|
||||||
#if (__FPU_PRESENT == 1U) && (__FPU_USED == 1U)
|
|
||||||
register uint32_t __regfpscr __ASM("fpscr");
|
|
||||||
return(__regfpscr);
|
|
||||||
#else
|
|
||||||
return(0U);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set FPSCR
|
|
||||||
\details Assigns the given value to the Floating Point Status/Control register.
|
|
||||||
\param [in] fpscr Floating Point Status/Control value to set
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void __set_FPSCR(uint32_t fpscr)
|
|
||||||
{
|
|
||||||
#if (__FPU_PRESENT == 1U) && (__FPU_USED == 1U)
|
|
||||||
register uint32_t __regfpscr __ASM("fpscr");
|
|
||||||
__regfpscr = (fpscr);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* (__CORTEX_M == 0x04U) || (__CORTEX_M == 0x07U) */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*@} end of CMSIS_Core_RegAccFunctions */
|
|
||||||
|
|
||||||
|
|
||||||
/* ########################## Core Instruction Access ######################### */
|
|
||||||
/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
|
|
||||||
Access to dedicated instructions
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief No Operation
|
|
||||||
\details No Operation does nothing. This instruction can be used for code alignment purposes.
|
|
||||||
*/
|
|
||||||
#define __NOP __nop
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Wait For Interrupt
|
|
||||||
\details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs.
|
|
||||||
*/
|
|
||||||
#define __WFI __wfi
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Wait For Event
|
|
||||||
\details Wait For Event is a hint instruction that permits the processor to enter
|
|
||||||
a low-power state until one of a number of events occurs.
|
|
||||||
*/
|
|
||||||
#define __WFE __wfe
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Send Event
|
|
||||||
\details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
|
|
||||||
*/
|
|
||||||
#define __SEV __sev
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Instruction Synchronization Barrier
|
|
||||||
\details Instruction Synchronization Barrier flushes the pipeline in the processor,
|
|
||||||
so that all instructions following the ISB are fetched from cache or memory,
|
|
||||||
after the instruction has been completed.
|
|
||||||
*/
|
|
||||||
#define __ISB() do {\
|
|
||||||
__schedule_barrier();\
|
|
||||||
__isb(0xF);\
|
|
||||||
__schedule_barrier();\
|
|
||||||
} while (0U)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Data Synchronization Barrier
|
|
||||||
\details Acts as a special kind of Data Memory Barrier.
|
|
||||||
It completes when all explicit memory accesses before this instruction complete.
|
|
||||||
*/
|
|
||||||
#define __DSB() do {\
|
|
||||||
__schedule_barrier();\
|
|
||||||
__dsb(0xF);\
|
|
||||||
__schedule_barrier();\
|
|
||||||
} while (0U)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Data Memory Barrier
|
|
||||||
\details Ensures the apparent order of the explicit memory operations before
|
|
||||||
and after the instruction, without ensuring their completion.
|
|
||||||
*/
|
|
||||||
#define __DMB() do {\
|
|
||||||
__schedule_barrier();\
|
|
||||||
__dmb(0xF);\
|
|
||||||
__schedule_barrier();\
|
|
||||||
} while (0U)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Reverse byte order (32 bit)
|
|
||||||
\details Reverses the byte order in integer value.
|
|
||||||
\param [in] value Value to reverse
|
|
||||||
\return Reversed value
|
|
||||||
*/
|
|
||||||
#define __REV __rev
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Reverse byte order (16 bit)
|
|
||||||
\details Reverses the byte order in two unsigned short values.
|
|
||||||
\param [in] value Value to reverse
|
|
||||||
\return Reversed value
|
|
||||||
*/
|
|
||||||
#ifndef __NO_EMBEDDED_ASM
|
|
||||||
__attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value)
|
|
||||||
{
|
|
||||||
rev16 r0, r0
|
|
||||||
bx lr
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Reverse byte order in signed short value
|
|
||||||
\details Reverses the byte order in a signed short value with sign extension to integer.
|
|
||||||
\param [in] value Value to reverse
|
|
||||||
\return Reversed value
|
|
||||||
*/
|
|
||||||
#ifndef __NO_EMBEDDED_ASM
|
|
||||||
__attribute__((section(".revsh_text"))) __STATIC_INLINE __ASM int32_t __REVSH(int32_t value)
|
|
||||||
{
|
|
||||||
revsh r0, r0
|
|
||||||
bx lr
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Rotate Right in unsigned value (32 bit)
|
|
||||||
\details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits.
|
|
||||||
\param [in] value Value to rotate
|
|
||||||
\param [in] value Number of Bits to rotate
|
|
||||||
\return Rotated value
|
|
||||||
*/
|
|
||||||
#define __ROR __ror
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Breakpoint
|
|
||||||
\details Causes the processor to enter Debug state.
|
|
||||||
Debug tools can use this to investigate system state when the instruction at a particular address is reached.
|
|
||||||
\param [in] value is ignored by the processor.
|
|
||||||
If required, a debugger can use it to store additional information about the breakpoint.
|
|
||||||
*/
|
|
||||||
#define __BKPT(value) __breakpoint(value)
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Reverse bit order of value
|
|
||||||
\details Reverses the bit order of the given value.
|
|
||||||
\param [in] value Value to reverse
|
|
||||||
\return Reversed value
|
|
||||||
*/
|
|
||||||
#if (__CORTEX_M >= 0x03U) || (__CORTEX_SC >= 300U)
|
|
||||||
#define __RBIT __rbit
|
|
||||||
#else
|
|
||||||
__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value)
|
|
||||||
{
|
|
||||||
uint32_t result;
|
|
||||||
int32_t s = 4 /*sizeof(v)*/ * 8 - 1; /* extra shift needed at end */
|
|
||||||
|
|
||||||
result = value; /* r will be reversed bits of v; first get LSB of v */
|
|
||||||
for (value >>= 1U; value; value >>= 1U)
|
|
||||||
{
|
|
||||||
result <<= 1U;
|
|
||||||
result |= value & 1U;
|
|
||||||
s--;
|
|
||||||
}
|
|
||||||
result <<= s; /* shift when v's highest bits are zero */
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Count leading zeros
|
|
||||||
\details Counts the number of leading zeros of a data value.
|
|
||||||
\param [in] value Value to count the leading zeros
|
|
||||||
\return number of leading zeros in value
|
|
||||||
*/
|
|
||||||
#define __CLZ __clz
|
|
||||||
|
|
||||||
|
|
||||||
#if (__CORTEX_M >= 0x03U) || (__CORTEX_SC >= 300U)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief LDR Exclusive (8 bit)
|
|
||||||
\details Executes a exclusive LDR instruction for 8 bit value.
|
|
||||||
\param [in] ptr Pointer to data
|
|
||||||
\return value of type uint8_t at (*ptr)
|
|
||||||
*/
|
|
||||||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)
|
|
||||||
#define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr))
|
|
||||||
#else
|
|
||||||
#define __LDREXB(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint8_t ) __ldrex(ptr)) _Pragma("pop")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief LDR Exclusive (16 bit)
|
|
||||||
\details Executes a exclusive LDR instruction for 16 bit values.
|
|
||||||
\param [in] ptr Pointer to data
|
|
||||||
\return value of type uint16_t at (*ptr)
|
|
||||||
*/
|
|
||||||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)
|
|
||||||
#define __LDREXH(ptr) ((uint16_t) __ldrex(ptr))
|
|
||||||
#else
|
|
||||||
#define __LDREXH(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint16_t) __ldrex(ptr)) _Pragma("pop")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief LDR Exclusive (32 bit)
|
|
||||||
\details Executes a exclusive LDR instruction for 32 bit values.
|
|
||||||
\param [in] ptr Pointer to data
|
|
||||||
\return value of type uint32_t at (*ptr)
|
|
||||||
*/
|
|
||||||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)
|
|
||||||
#define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr))
|
|
||||||
#else
|
|
||||||
#define __LDREXW(ptr) _Pragma("push") _Pragma("diag_suppress 3731") ((uint32_t ) __ldrex(ptr)) _Pragma("pop")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief STR Exclusive (8 bit)
|
|
||||||
\details Executes a exclusive STR instruction for 8 bit values.
|
|
||||||
\param [in] value Value to store
|
|
||||||
\param [in] ptr Pointer to location
|
|
||||||
\return 0 Function succeeded
|
|
||||||
\return 1 Function failed
|
|
||||||
*/
|
|
||||||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)
|
|
||||||
#define __STREXB(value, ptr) __strex(value, ptr)
|
|
||||||
#else
|
|
||||||
#define __STREXB(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief STR Exclusive (16 bit)
|
|
||||||
\details Executes a exclusive STR instruction for 16 bit values.
|
|
||||||
\param [in] value Value to store
|
|
||||||
\param [in] ptr Pointer to location
|
|
||||||
\return 0 Function succeeded
|
|
||||||
\return 1 Function failed
|
|
||||||
*/
|
|
||||||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)
|
|
||||||
#define __STREXH(value, ptr) __strex(value, ptr)
|
|
||||||
#else
|
|
||||||
#define __STREXH(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief STR Exclusive (32 bit)
|
|
||||||
\details Executes a exclusive STR instruction for 32 bit values.
|
|
||||||
\param [in] value Value to store
|
|
||||||
\param [in] ptr Pointer to location
|
|
||||||
\return 0 Function succeeded
|
|
||||||
\return 1 Function failed
|
|
||||||
*/
|
|
||||||
#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION < 5060020)
|
|
||||||
#define __STREXW(value, ptr) __strex(value, ptr)
|
|
||||||
#else
|
|
||||||
#define __STREXW(value, ptr) _Pragma("push") _Pragma("diag_suppress 3731") __strex(value, ptr) _Pragma("pop")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Remove the exclusive lock
|
|
||||||
\details Removes the exclusive lock which is created by LDREX.
|
|
||||||
*/
|
|
||||||
#define __CLREX __clrex
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Signed Saturate
|
|
||||||
\details Saturates a signed value.
|
|
||||||
\param [in] value Value to be saturated
|
|
||||||
\param [in] sat Bit position to saturate to (1..32)
|
|
||||||
\return Saturated value
|
|
||||||
*/
|
|
||||||
#define __SSAT __ssat
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Unsigned Saturate
|
|
||||||
\details Saturates an unsigned value.
|
|
||||||
\param [in] value Value to be saturated
|
|
||||||
\param [in] sat Bit position to saturate to (0..31)
|
|
||||||
\return Saturated value
|
|
||||||
*/
|
|
||||||
#define __USAT __usat
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Rotate Right with Extend (32 bit)
|
|
||||||
\details Moves each bit of a bitstring right by one bit.
|
|
||||||
The carry input is shifted in at the left end of the bitstring.
|
|
||||||
\param [in] value Value to rotate
|
|
||||||
\return Rotated value
|
|
||||||
*/
|
|
||||||
#ifndef __NO_EMBEDDED_ASM
|
|
||||||
__attribute__((section(".rrx_text"))) __STATIC_INLINE __ASM uint32_t __RRX(uint32_t value)
|
|
||||||
{
|
|
||||||
rrx r0, r0
|
|
||||||
bx lr
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief LDRT Unprivileged (8 bit)
|
|
||||||
\details Executes a Unprivileged LDRT instruction for 8 bit value.
|
|
||||||
\param [in] ptr Pointer to data
|
|
||||||
\return value of type uint8_t at (*ptr)
|
|
||||||
*/
|
|
||||||
#define __LDRBT(ptr) ((uint8_t ) __ldrt(ptr))
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief LDRT Unprivileged (16 bit)
|
|
||||||
\details Executes a Unprivileged LDRT instruction for 16 bit values.
|
|
||||||
\param [in] ptr Pointer to data
|
|
||||||
\return value of type uint16_t at (*ptr)
|
|
||||||
*/
|
|
||||||
#define __LDRHT(ptr) ((uint16_t) __ldrt(ptr))
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief LDRT Unprivileged (32 bit)
|
|
||||||
\details Executes a Unprivileged LDRT instruction for 32 bit values.
|
|
||||||
\param [in] ptr Pointer to data
|
|
||||||
\return value of type uint32_t at (*ptr)
|
|
||||||
*/
|
|
||||||
#define __LDRT(ptr) ((uint32_t ) __ldrt(ptr))
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief STRT Unprivileged (8 bit)
|
|
||||||
\details Executes a Unprivileged STRT instruction for 8 bit values.
|
|
||||||
\param [in] value Value to store
|
|
||||||
\param [in] ptr Pointer to location
|
|
||||||
*/
|
|
||||||
#define __STRBT(value, ptr) __strt(value, ptr)
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief STRT Unprivileged (16 bit)
|
|
||||||
\details Executes a Unprivileged STRT instruction for 16 bit values.
|
|
||||||
\param [in] value Value to store
|
|
||||||
\param [in] ptr Pointer to location
|
|
||||||
*/
|
|
||||||
#define __STRHT(value, ptr) __strt(value, ptr)
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief STRT Unprivileged (32 bit)
|
|
||||||
\details Executes a Unprivileged STRT instruction for 32 bit values.
|
|
||||||
\param [in] value Value to store
|
|
||||||
\param [in] ptr Pointer to location
|
|
||||||
*/
|
|
||||||
#define __STRT(value, ptr) __strt(value, ptr)
|
|
||||||
|
|
||||||
#endif /* (__CORTEX_M >= 0x03U) || (__CORTEX_SC >= 300U) */
|
|
||||||
|
|
||||||
/*@}*/ /* end of group CMSIS_Core_InstructionInterface */
|
|
||||||
|
|
||||||
|
|
||||||
/* ################### Compiler specific Intrinsics ########################### */
|
|
||||||
/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics
|
|
||||||
Access to dedicated SIMD instructions
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if (__CORTEX_M >= 0x04U) /* only for Cortex-M4 and above */
|
|
||||||
|
|
||||||
#define __SADD8 __sadd8
|
|
||||||
#define __QADD8 __qadd8
|
|
||||||
#define __SHADD8 __shadd8
|
|
||||||
#define __UADD8 __uadd8
|
|
||||||
#define __UQADD8 __uqadd8
|
|
||||||
#define __UHADD8 __uhadd8
|
|
||||||
#define __SSUB8 __ssub8
|
|
||||||
#define __QSUB8 __qsub8
|
|
||||||
#define __SHSUB8 __shsub8
|
|
||||||
#define __USUB8 __usub8
|
|
||||||
#define __UQSUB8 __uqsub8
|
|
||||||
#define __UHSUB8 __uhsub8
|
|
||||||
#define __SADD16 __sadd16
|
|
||||||
#define __QADD16 __qadd16
|
|
||||||
#define __SHADD16 __shadd16
|
|
||||||
#define __UADD16 __uadd16
|
|
||||||
#define __UQADD16 __uqadd16
|
|
||||||
#define __UHADD16 __uhadd16
|
|
||||||
#define __SSUB16 __ssub16
|
|
||||||
#define __QSUB16 __qsub16
|
|
||||||
#define __SHSUB16 __shsub16
|
|
||||||
#define __USUB16 __usub16
|
|
||||||
#define __UQSUB16 __uqsub16
|
|
||||||
#define __UHSUB16 __uhsub16
|
|
||||||
#define __SASX __sasx
|
|
||||||
#define __QASX __qasx
|
|
||||||
#define __SHASX __shasx
|
|
||||||
#define __UASX __uasx
|
|
||||||
#define __UQASX __uqasx
|
|
||||||
#define __UHASX __uhasx
|
|
||||||
#define __SSAX __ssax
|
|
||||||
#define __QSAX __qsax
|
|
||||||
#define __SHSAX __shsax
|
|
||||||
#define __USAX __usax
|
|
||||||
#define __UQSAX __uqsax
|
|
||||||
#define __UHSAX __uhsax
|
|
||||||
#define __USAD8 __usad8
|
|
||||||
#define __USADA8 __usada8
|
|
||||||
#define __SSAT16 __ssat16
|
|
||||||
#define __USAT16 __usat16
|
|
||||||
#define __UXTB16 __uxtb16
|
|
||||||
#define __UXTAB16 __uxtab16
|
|
||||||
#define __SXTB16 __sxtb16
|
|
||||||
#define __SXTAB16 __sxtab16
|
|
||||||
#define __SMUAD __smuad
|
|
||||||
#define __SMUADX __smuadx
|
|
||||||
#define __SMLAD __smlad
|
|
||||||
#define __SMLADX __smladx
|
|
||||||
#define __SMLALD __smlald
|
|
||||||
#define __SMLALDX __smlaldx
|
|
||||||
#define __SMUSD __smusd
|
|
||||||
#define __SMUSDX __smusdx
|
|
||||||
#define __SMLSD __smlsd
|
|
||||||
#define __SMLSDX __smlsdx
|
|
||||||
#define __SMLSLD __smlsld
|
|
||||||
#define __SMLSLDX __smlsldx
|
|
||||||
#define __SEL __sel
|
|
||||||
#define __QADD __qadd
|
|
||||||
#define __QSUB __qsub
|
|
||||||
|
|
||||||
#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \
|
|
||||||
((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) )
|
|
||||||
|
|
||||||
#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \
|
|
||||||
((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) )
|
|
||||||
|
|
||||||
#define __SMMLA(ARG1,ARG2,ARG3) ( (int32_t)((((int64_t)(ARG1) * (ARG2)) + \
|
|
||||||
((int64_t)(ARG3) << 32U) ) >> 32U))
|
|
||||||
|
|
||||||
#endif /* (__CORTEX_M >= 0x04) */
|
|
||||||
/*@} end of group CMSIS_SIMD_intrinsics */
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __CMSIS_ARMCC_H */
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,798 +0,0 @@
|
|||||||
/**************************************************************************//**
|
|
||||||
* @file core_cm0.h
|
|
||||||
* @brief CMSIS Cortex-M0 Core Peripheral Access Layer Header File
|
|
||||||
* @version V4.30
|
|
||||||
* @date 20. October 2015
|
|
||||||
******************************************************************************/
|
|
||||||
/* Copyright (c) 2009 - 2015 ARM LIMITED
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
- Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
- Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
- Neither the name of ARM nor the names of its contributors may be used
|
|
||||||
to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.
|
|
||||||
*
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
#if defined ( __ICCARM__ )
|
|
||||||
#pragma system_include /* treat file as system include file for MISRA check */
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#pragma clang system_header /* treat file as system include file */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __CORE_CM0_H_GENERIC
|
|
||||||
#define __CORE_CM0_H_GENERIC
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
\page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions
|
|
||||||
CMSIS violates the following MISRA-C:2004 rules:
|
|
||||||
|
|
||||||
\li Required Rule 8.5, object/function definition in header file.<br>
|
|
||||||
Function definitions in header files are used to allow 'inlining'.
|
|
||||||
|
|
||||||
\li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br>
|
|
||||||
Unions are used for effective representation of core registers.
|
|
||||||
|
|
||||||
\li Advisory Rule 19.7, Function-like macro defined.<br>
|
|
||||||
Function-like macros are used to allow more efficient code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* CMSIS definitions
|
|
||||||
******************************************************************************/
|
|
||||||
/**
|
|
||||||
\ingroup Cortex_M0
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* CMSIS CM0 definitions */
|
|
||||||
#define __CM0_CMSIS_VERSION_MAIN (0x04U) /*!< [31:16] CMSIS HAL main version */
|
|
||||||
#define __CM0_CMSIS_VERSION_SUB (0x1EU) /*!< [15:0] CMSIS HAL sub version */
|
|
||||||
#define __CM0_CMSIS_VERSION ((__CM0_CMSIS_VERSION_MAIN << 16U) | \
|
|
||||||
__CM0_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */
|
|
||||||
|
|
||||||
#define __CORTEX_M (0x00U) /*!< Cortex-M Core */
|
|
||||||
|
|
||||||
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
#define __ASM __asm /*!< asm keyword for ARM Compiler */
|
|
||||||
#define __INLINE __inline /*!< inline keyword for ARM Compiler */
|
|
||||||
#define __STATIC_INLINE static __inline
|
|
||||||
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#define __ASM __asm /*!< asm keyword for ARM Compiler */
|
|
||||||
#define __INLINE __inline /*!< inline keyword for ARM Compiler */
|
|
||||||
#define __STATIC_INLINE static __inline
|
|
||||||
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for GNU Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for GNU Compiler */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for IAR Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __TMS470__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for TI CCS Compiler */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for TASKING Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for TASKING Compiler */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __CSMC__ )
|
|
||||||
#define __packed
|
|
||||||
#define __ASM _asm /*!< asm keyword for COSMIC Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for COSMIC Compiler. Use -pc99 on compile line */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error Unknown compiler
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** __FPU_USED indicates whether an FPU is used or not.
|
|
||||||
This core does not support an FPU at all
|
|
||||||
*/
|
|
||||||
#define __FPU_USED 0U
|
|
||||||
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
#if defined __TARGET_FPU_VFP
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#if defined __ARM_PCS_VFP
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
#if defined (__VFP_FP__) && !defined(__SOFTFP__)
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
#if defined __ARMVFP__
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __TMS470__ )
|
|
||||||
#if defined __TI_VFP_SUPPORT__
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
#if defined __FPU_VFP__
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __CSMC__ )
|
|
||||||
#if ( __CSMC__ & 0x400U)
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "core_cmInstr.h" /* Core Instruction Access */
|
|
||||||
#include "core_cmFunc.h" /* Core Function Access */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __CORE_CM0_H_GENERIC */
|
|
||||||
|
|
||||||
#ifndef __CMSIS_GENERIC
|
|
||||||
|
|
||||||
#ifndef __CORE_CM0_H_DEPENDANT
|
|
||||||
#define __CORE_CM0_H_DEPENDANT
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* check device defines and use defaults */
|
|
||||||
#if defined __CHECK_DEVICE_DEFINES
|
|
||||||
#ifndef __CM0_REV
|
|
||||||
#define __CM0_REV 0x0000U
|
|
||||||
#warning "__CM0_REV not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __NVIC_PRIO_BITS
|
|
||||||
#define __NVIC_PRIO_BITS 2U
|
|
||||||
#warning "__NVIC_PRIO_BITS not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __Vendor_SysTickConfig
|
|
||||||
#define __Vendor_SysTickConfig 0U
|
|
||||||
#warning "__Vendor_SysTickConfig not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* IO definitions (access restrictions to peripheral registers) */
|
|
||||||
/**
|
|
||||||
\defgroup CMSIS_glob_defs CMSIS Global Defines
|
|
||||||
|
|
||||||
<strong>IO Type Qualifiers</strong> are used
|
|
||||||
\li to specify the access to peripheral variables.
|
|
||||||
\li for automatic generation of peripheral register debug information.
|
|
||||||
*/
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define __I volatile /*!< Defines 'read only' permissions */
|
|
||||||
#else
|
|
||||||
#define __I volatile const /*!< Defines 'read only' permissions */
|
|
||||||
#endif
|
|
||||||
#define __O volatile /*!< Defines 'write only' permissions */
|
|
||||||
#define __IO volatile /*!< Defines 'read / write' permissions */
|
|
||||||
|
|
||||||
/* following defines should be used for structure members */
|
|
||||||
#define __IM volatile const /*! Defines 'read only' structure member permissions */
|
|
||||||
#define __OM volatile /*! Defines 'write only' structure member permissions */
|
|
||||||
#define __IOM volatile /*! Defines 'read / write' structure member permissions */
|
|
||||||
|
|
||||||
/*@} end of group Cortex_M0 */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Register Abstraction
|
|
||||||
Core Register contain:
|
|
||||||
- Core Register
|
|
||||||
- Core NVIC Register
|
|
||||||
- Core SCB Register
|
|
||||||
- Core SysTick Register
|
|
||||||
******************************************************************************/
|
|
||||||
/**
|
|
||||||
\defgroup CMSIS_core_register Defines and Type Definitions
|
|
||||||
\brief Type definitions and defines for Cortex-M processor based devices.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_CORE Status and Control Registers
|
|
||||||
\brief Core Register type definitions.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Application Program Status Register (APSR).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */
|
|
||||||
uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
|
|
||||||
uint32_t C:1; /*!< bit: 29 Carry condition code flag */
|
|
||||||
uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
|
|
||||||
uint32_t N:1; /*!< bit: 31 Negative condition code flag */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} APSR_Type;
|
|
||||||
|
|
||||||
/* APSR Register Definitions */
|
|
||||||
#define APSR_N_Pos 31U /*!< APSR: N Position */
|
|
||||||
#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */
|
|
||||||
|
|
||||||
#define APSR_Z_Pos 30U /*!< APSR: Z Position */
|
|
||||||
#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */
|
|
||||||
|
|
||||||
#define APSR_C_Pos 29U /*!< APSR: C Position */
|
|
||||||
#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */
|
|
||||||
|
|
||||||
#define APSR_V_Pos 28U /*!< APSR: V Position */
|
|
||||||
#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Interrupt Program Status Register (IPSR).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
|
|
||||||
uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} IPSR_Type;
|
|
||||||
|
|
||||||
/* IPSR Register Definitions */
|
|
||||||
#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */
|
|
||||||
#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Special-Purpose Program Status Registers (xPSR).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
|
|
||||||
uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */
|
|
||||||
uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */
|
|
||||||
uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */
|
|
||||||
uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
|
|
||||||
uint32_t C:1; /*!< bit: 29 Carry condition code flag */
|
|
||||||
uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
|
|
||||||
uint32_t N:1; /*!< bit: 31 Negative condition code flag */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} xPSR_Type;
|
|
||||||
|
|
||||||
/* xPSR Register Definitions */
|
|
||||||
#define xPSR_N_Pos 31U /*!< xPSR: N Position */
|
|
||||||
#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */
|
|
||||||
|
|
||||||
#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */
|
|
||||||
#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */
|
|
||||||
|
|
||||||
#define xPSR_C_Pos 29U /*!< xPSR: C Position */
|
|
||||||
#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */
|
|
||||||
|
|
||||||
#define xPSR_V_Pos 28U /*!< xPSR: V Position */
|
|
||||||
#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */
|
|
||||||
|
|
||||||
#define xPSR_T_Pos 24U /*!< xPSR: T Position */
|
|
||||||
#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */
|
|
||||||
|
|
||||||
#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */
|
|
||||||
#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Control Registers (CONTROL).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t _reserved0:1; /*!< bit: 0 Reserved */
|
|
||||||
uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */
|
|
||||||
uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} CONTROL_Type;
|
|
||||||
|
|
||||||
/* CONTROL Register Definitions */
|
|
||||||
#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */
|
|
||||||
#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_CORE */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC)
|
|
||||||
\brief Type definitions for the NVIC Registers
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the Nested Vectored Interrupt Controller (NVIC).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */
|
|
||||||
uint32_t RESERVED0[31U];
|
|
||||||
__IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */
|
|
||||||
uint32_t RSERVED1[31U];
|
|
||||||
__IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */
|
|
||||||
uint32_t RESERVED2[31U];
|
|
||||||
__IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */
|
|
||||||
uint32_t RESERVED3[31U];
|
|
||||||
uint32_t RESERVED4[64U];
|
|
||||||
__IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */
|
|
||||||
} NVIC_Type;
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_NVIC */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_SCB System Control Block (SCB)
|
|
||||||
\brief Type definitions for the System Control Block Registers
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the System Control Block (SCB).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */
|
|
||||||
__IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */
|
|
||||||
uint32_t RESERVED0;
|
|
||||||
__IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */
|
|
||||||
__IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */
|
|
||||||
__IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */
|
|
||||||
uint32_t RESERVED1;
|
|
||||||
__IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */
|
|
||||||
__IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */
|
|
||||||
} SCB_Type;
|
|
||||||
|
|
||||||
/* SCB CPUID Register Definitions */
|
|
||||||
#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */
|
|
||||||
#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */
|
|
||||||
#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */
|
|
||||||
#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */
|
|
||||||
#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */
|
|
||||||
#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */
|
|
||||||
|
|
||||||
/* SCB Interrupt Control State Register Definitions */
|
|
||||||
#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */
|
|
||||||
#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */
|
|
||||||
#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */
|
|
||||||
#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */
|
|
||||||
#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */
|
|
||||||
#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */
|
|
||||||
#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */
|
|
||||||
#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */
|
|
||||||
#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */
|
|
||||||
#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */
|
|
||||||
|
|
||||||
/* SCB Application Interrupt and Reset Control Register Definitions */
|
|
||||||
#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */
|
|
||||||
#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */
|
|
||||||
#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */
|
|
||||||
#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */
|
|
||||||
#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */
|
|
||||||
#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */
|
|
||||||
|
|
||||||
/* SCB System Control Register Definitions */
|
|
||||||
#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */
|
|
||||||
#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */
|
|
||||||
|
|
||||||
#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */
|
|
||||||
#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */
|
|
||||||
|
|
||||||
#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */
|
|
||||||
#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */
|
|
||||||
|
|
||||||
/* SCB Configuration Control Register Definitions */
|
|
||||||
#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */
|
|
||||||
#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */
|
|
||||||
|
|
||||||
#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */
|
|
||||||
#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */
|
|
||||||
|
|
||||||
/* SCB System Handler Control and State Register Definitions */
|
|
||||||
#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */
|
|
||||||
#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_SCB */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_SysTick System Tick Timer (SysTick)
|
|
||||||
\brief Type definitions for the System Timer Registers.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the System Timer (SysTick).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */
|
|
||||||
__IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */
|
|
||||||
__IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */
|
|
||||||
__IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */
|
|
||||||
} SysTick_Type;
|
|
||||||
|
|
||||||
/* SysTick Control / Status Register Definitions */
|
|
||||||
#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */
|
|
||||||
#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */
|
|
||||||
|
|
||||||
#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */
|
|
||||||
#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */
|
|
||||||
|
|
||||||
#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */
|
|
||||||
#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */
|
|
||||||
|
|
||||||
#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */
|
|
||||||
#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */
|
|
||||||
|
|
||||||
/* SysTick Reload Register Definitions */
|
|
||||||
#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */
|
|
||||||
#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */
|
|
||||||
|
|
||||||
/* SysTick Current Register Definitions */
|
|
||||||
#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */
|
|
||||||
#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */
|
|
||||||
|
|
||||||
/* SysTick Calibration Register Definitions */
|
|
||||||
#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */
|
|
||||||
#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */
|
|
||||||
|
|
||||||
#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */
|
|
||||||
#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */
|
|
||||||
|
|
||||||
#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */
|
|
||||||
#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_SysTick */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug)
|
|
||||||
\brief Cortex-M0 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor.
|
|
||||||
Therefore they are not covered by the Cortex-M0 header file.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
/*@} end of group CMSIS_CoreDebug */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_core_bitfield Core register bit field macros
|
|
||||||
\brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk).
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Mask and shift a bit field value for use in a register bit range.
|
|
||||||
\param[in] field Name of the register bit field.
|
|
||||||
\param[in] value Value of the bit field.
|
|
||||||
\return Masked and shifted value.
|
|
||||||
*/
|
|
||||||
#define _VAL2FLD(field, value) ((value << field ## _Pos) & field ## _Msk)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Mask and shift a register value to extract a bit filed value.
|
|
||||||
\param[in] field Name of the register bit field.
|
|
||||||
\param[in] value Value of register.
|
|
||||||
\return Masked and shifted bit field value.
|
|
||||||
*/
|
|
||||||
#define _FLD2VAL(field, value) ((value & field ## _Msk) >> field ## _Pos)
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_core_bitfield */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_core_base Core Definitions
|
|
||||||
\brief Definitions for base addresses, unions, and structures.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Memory mapping of Cortex-M0 Hardware */
|
|
||||||
#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */
|
|
||||||
#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */
|
|
||||||
#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */
|
|
||||||
#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */
|
|
||||||
|
|
||||||
#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */
|
|
||||||
#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */
|
|
||||||
#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */
|
|
||||||
|
|
||||||
|
|
||||||
/*@} */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Hardware Abstraction Layer
|
|
||||||
Core Function Interface contains:
|
|
||||||
- Core NVIC Functions
|
|
||||||
- Core SysTick Functions
|
|
||||||
- Core Register Access Functions
|
|
||||||
******************************************************************************/
|
|
||||||
/**
|
|
||||||
\defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ########################## NVIC functions #################################### */
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_Core_FunctionInterface
|
|
||||||
\defgroup CMSIS_Core_NVICFunctions NVIC Functions
|
|
||||||
\brief Functions that manage interrupts and exceptions via the NVIC.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Interrupt Priorities are WORD accessible only under ARMv6M */
|
|
||||||
/* The following MACROS handle generation of the register offset and byte masks */
|
|
||||||
#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL)
|
|
||||||
#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) )
|
|
||||||
#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) )
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Enable External Interrupt
|
|
||||||
\details Enables a device-specific interrupt in the NVIC interrupt controller.
|
|
||||||
\param [in] IRQn External interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Disable External Interrupt
|
|
||||||
\details Disables a device-specific interrupt in the NVIC interrupt controller.
|
|
||||||
\param [in] IRQn External interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Pending Interrupt
|
|
||||||
\details Reads the pending register in the NVIC and returns the pending bit for the specified interrupt.
|
|
||||||
\param [in] IRQn Interrupt number.
|
|
||||||
\return 0 Interrupt status is not pending.
|
|
||||||
\return 1 Interrupt status is pending.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Pending Interrupt
|
|
||||||
\details Sets the pending bit of an external interrupt.
|
|
||||||
\param [in] IRQn Interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Clear Pending Interrupt
|
|
||||||
\details Clears the pending bit of an external interrupt.
|
|
||||||
\param [in] IRQn External interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Interrupt Priority
|
|
||||||
\details Sets the priority of an interrupt.
|
|
||||||
\note The priority cannot be set for every core interrupt.
|
|
||||||
\param [in] IRQn Interrupt number.
|
|
||||||
\param [in] priority Priority to set.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
|
|
||||||
{
|
|
||||||
if ((int32_t)(IRQn) < 0)
|
|
||||||
{
|
|
||||||
SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
|
|
||||||
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
|
|
||||||
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Interrupt Priority
|
|
||||||
\details Reads the priority of an interrupt.
|
|
||||||
The interrupt number can be positive to specify an external (device specific) interrupt,
|
|
||||||
or negative to specify an internal (core) interrupt.
|
|
||||||
\param [in] IRQn Interrupt number.
|
|
||||||
\return Interrupt Priority.
|
|
||||||
Value is aligned automatically to the implemented priority bits of the microcontroller.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
|
|
||||||
if ((int32_t)(IRQn) < 0)
|
|
||||||
{
|
|
||||||
return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS)));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief System Reset
|
|
||||||
\details Initiates a system reset request to reset the MCU.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_SystemReset(void)
|
|
||||||
{
|
|
||||||
__DSB(); /* Ensure all outstanding memory accesses included
|
|
||||||
buffered write are completed before reset */
|
|
||||||
SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
|
|
||||||
SCB_AIRCR_SYSRESETREQ_Msk);
|
|
||||||
__DSB(); /* Ensure completion of memory access */
|
|
||||||
|
|
||||||
for (;;) /* wait until reset */
|
|
||||||
{
|
|
||||||
__NOP();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*@} end of CMSIS_Core_NVICFunctions */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ################################## SysTick function ############################################ */
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_Core_FunctionInterface
|
|
||||||
\defgroup CMSIS_Core_SysTickFunctions SysTick Functions
|
|
||||||
\brief Functions that configure the System.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if (__Vendor_SysTickConfig == 0U)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief System Tick Configuration
|
|
||||||
\details Initializes the System Timer and its interrupt, and starts the System Tick Timer.
|
|
||||||
Counter is in free running mode to generate periodic interrupts.
|
|
||||||
\param [in] ticks Number of ticks between two interrupts.
|
|
||||||
\return 0 Function succeeded.
|
|
||||||
\return 1 Function failed.
|
|
||||||
\note When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the
|
|
||||||
function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
|
|
||||||
must contain a vendor-specific implementation of this function.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
|
|
||||||
{
|
|
||||||
if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
|
|
||||||
{
|
|
||||||
return (1UL); /* Reload value impossible */
|
|
||||||
}
|
|
||||||
|
|
||||||
SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
|
|
||||||
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
|
|
||||||
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
|
|
||||||
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
|
|
||||||
SysTick_CTRL_TICKINT_Msk |
|
|
||||||
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
|
|
||||||
return (0UL); /* Function successful */
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*@} end of CMSIS_Core_SysTickFunctions */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __CORE_CM0_H_DEPENDANT */
|
|
||||||
|
|
||||||
#endif /* __CMSIS_GENERIC */
|
|
@ -1,914 +0,0 @@
|
|||||||
/**************************************************************************//**
|
|
||||||
* @file core_cm0plus.h
|
|
||||||
* @brief CMSIS Cortex-M0+ Core Peripheral Access Layer Header File
|
|
||||||
* @version V4.30
|
|
||||||
* @date 20. October 2015
|
|
||||||
******************************************************************************/
|
|
||||||
/* Copyright (c) 2009 - 2015 ARM LIMITED
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
- Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
- Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
- Neither the name of ARM nor the names of its contributors may be used
|
|
||||||
to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.
|
|
||||||
*
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
#if defined ( __ICCARM__ )
|
|
||||||
#pragma system_include /* treat file as system include file for MISRA check */
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#pragma clang system_header /* treat file as system include file */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __CORE_CM0PLUS_H_GENERIC
|
|
||||||
#define __CORE_CM0PLUS_H_GENERIC
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
\page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions
|
|
||||||
CMSIS violates the following MISRA-C:2004 rules:
|
|
||||||
|
|
||||||
\li Required Rule 8.5, object/function definition in header file.<br>
|
|
||||||
Function definitions in header files are used to allow 'inlining'.
|
|
||||||
|
|
||||||
\li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br>
|
|
||||||
Unions are used for effective representation of core registers.
|
|
||||||
|
|
||||||
\li Advisory Rule 19.7, Function-like macro defined.<br>
|
|
||||||
Function-like macros are used to allow more efficient code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* CMSIS definitions
|
|
||||||
******************************************************************************/
|
|
||||||
/**
|
|
||||||
\ingroup Cortex-M0+
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* CMSIS CM0+ definitions */
|
|
||||||
#define __CM0PLUS_CMSIS_VERSION_MAIN (0x04U) /*!< [31:16] CMSIS HAL main version */
|
|
||||||
#define __CM0PLUS_CMSIS_VERSION_SUB (0x1EU) /*!< [15:0] CMSIS HAL sub version */
|
|
||||||
#define __CM0PLUS_CMSIS_VERSION ((__CM0PLUS_CMSIS_VERSION_MAIN << 16U) | \
|
|
||||||
__CM0PLUS_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */
|
|
||||||
|
|
||||||
#define __CORTEX_M (0x00U) /*!< Cortex-M Core */
|
|
||||||
|
|
||||||
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
#define __ASM __asm /*!< asm keyword for ARM Compiler */
|
|
||||||
#define __INLINE __inline /*!< inline keyword for ARM Compiler */
|
|
||||||
#define __STATIC_INLINE static __inline
|
|
||||||
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#define __ASM __asm /*!< asm keyword for ARM Compiler */
|
|
||||||
#define __INLINE __inline /*!< inline keyword for ARM Compiler */
|
|
||||||
#define __STATIC_INLINE static __inline
|
|
||||||
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for GNU Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for GNU Compiler */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for IAR Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __TMS470__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for TI CCS Compiler */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for TASKING Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for TASKING Compiler */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __CSMC__ )
|
|
||||||
#define __packed
|
|
||||||
#define __ASM _asm /*!< asm keyword for COSMIC Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for COSMIC Compiler. Use -pc99 on compile line */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error Unknown compiler
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** __FPU_USED indicates whether an FPU is used or not.
|
|
||||||
This core does not support an FPU at all
|
|
||||||
*/
|
|
||||||
#define __FPU_USED 0U
|
|
||||||
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
#if defined __TARGET_FPU_VFP
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#if defined __ARM_PCS_VFP
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
#if defined (__VFP_FP__) && !defined(__SOFTFP__)
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
#if defined __ARMVFP__
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __TMS470__ )
|
|
||||||
#if defined __TI_VFP_SUPPORT__
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
#if defined __FPU_VFP__
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __CSMC__ )
|
|
||||||
#if ( __CSMC__ & 0x400U)
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "core_cmInstr.h" /* Core Instruction Access */
|
|
||||||
#include "core_cmFunc.h" /* Core Function Access */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __CORE_CM0PLUS_H_GENERIC */
|
|
||||||
|
|
||||||
#ifndef __CMSIS_GENERIC
|
|
||||||
|
|
||||||
#ifndef __CORE_CM0PLUS_H_DEPENDANT
|
|
||||||
#define __CORE_CM0PLUS_H_DEPENDANT
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* check device defines and use defaults */
|
|
||||||
#if defined __CHECK_DEVICE_DEFINES
|
|
||||||
#ifndef __CM0PLUS_REV
|
|
||||||
#define __CM0PLUS_REV 0x0000U
|
|
||||||
#warning "__CM0PLUS_REV not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __MPU_PRESENT
|
|
||||||
#define __MPU_PRESENT 0U
|
|
||||||
#warning "__MPU_PRESENT not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __VTOR_PRESENT
|
|
||||||
#define __VTOR_PRESENT 0U
|
|
||||||
#warning "__VTOR_PRESENT not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __NVIC_PRIO_BITS
|
|
||||||
#define __NVIC_PRIO_BITS 2U
|
|
||||||
#warning "__NVIC_PRIO_BITS not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __Vendor_SysTickConfig
|
|
||||||
#define __Vendor_SysTickConfig 0U
|
|
||||||
#warning "__Vendor_SysTickConfig not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* IO definitions (access restrictions to peripheral registers) */
|
|
||||||
/**
|
|
||||||
\defgroup CMSIS_glob_defs CMSIS Global Defines
|
|
||||||
|
|
||||||
<strong>IO Type Qualifiers</strong> are used
|
|
||||||
\li to specify the access to peripheral variables.
|
|
||||||
\li for automatic generation of peripheral register debug information.
|
|
||||||
*/
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define __I volatile /*!< Defines 'read only' permissions */
|
|
||||||
#else
|
|
||||||
#define __I volatile const /*!< Defines 'read only' permissions */
|
|
||||||
#endif
|
|
||||||
#define __O volatile /*!< Defines 'write only' permissions */
|
|
||||||
#define __IO volatile /*!< Defines 'read / write' permissions */
|
|
||||||
|
|
||||||
/* following defines should be used for structure members */
|
|
||||||
#define __IM volatile const /*! Defines 'read only' structure member permissions */
|
|
||||||
#define __OM volatile /*! Defines 'write only' structure member permissions */
|
|
||||||
#define __IOM volatile /*! Defines 'read / write' structure member permissions */
|
|
||||||
|
|
||||||
/*@} end of group Cortex-M0+ */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Register Abstraction
|
|
||||||
Core Register contain:
|
|
||||||
- Core Register
|
|
||||||
- Core NVIC Register
|
|
||||||
- Core SCB Register
|
|
||||||
- Core SysTick Register
|
|
||||||
- Core MPU Register
|
|
||||||
******************************************************************************/
|
|
||||||
/**
|
|
||||||
\defgroup CMSIS_core_register Defines and Type Definitions
|
|
||||||
\brief Type definitions and defines for Cortex-M processor based devices.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_CORE Status and Control Registers
|
|
||||||
\brief Core Register type definitions.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Application Program Status Register (APSR).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */
|
|
||||||
uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
|
|
||||||
uint32_t C:1; /*!< bit: 29 Carry condition code flag */
|
|
||||||
uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
|
|
||||||
uint32_t N:1; /*!< bit: 31 Negative condition code flag */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} APSR_Type;
|
|
||||||
|
|
||||||
/* APSR Register Definitions */
|
|
||||||
#define APSR_N_Pos 31U /*!< APSR: N Position */
|
|
||||||
#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */
|
|
||||||
|
|
||||||
#define APSR_Z_Pos 30U /*!< APSR: Z Position */
|
|
||||||
#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */
|
|
||||||
|
|
||||||
#define APSR_C_Pos 29U /*!< APSR: C Position */
|
|
||||||
#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */
|
|
||||||
|
|
||||||
#define APSR_V_Pos 28U /*!< APSR: V Position */
|
|
||||||
#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Interrupt Program Status Register (IPSR).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
|
|
||||||
uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} IPSR_Type;
|
|
||||||
|
|
||||||
/* IPSR Register Definitions */
|
|
||||||
#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */
|
|
||||||
#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Special-Purpose Program Status Registers (xPSR).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
|
|
||||||
uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */
|
|
||||||
uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */
|
|
||||||
uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */
|
|
||||||
uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
|
|
||||||
uint32_t C:1; /*!< bit: 29 Carry condition code flag */
|
|
||||||
uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
|
|
||||||
uint32_t N:1; /*!< bit: 31 Negative condition code flag */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} xPSR_Type;
|
|
||||||
|
|
||||||
/* xPSR Register Definitions */
|
|
||||||
#define xPSR_N_Pos 31U /*!< xPSR: N Position */
|
|
||||||
#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */
|
|
||||||
|
|
||||||
#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */
|
|
||||||
#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */
|
|
||||||
|
|
||||||
#define xPSR_C_Pos 29U /*!< xPSR: C Position */
|
|
||||||
#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */
|
|
||||||
|
|
||||||
#define xPSR_V_Pos 28U /*!< xPSR: V Position */
|
|
||||||
#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */
|
|
||||||
|
|
||||||
#define xPSR_T_Pos 24U /*!< xPSR: T Position */
|
|
||||||
#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */
|
|
||||||
|
|
||||||
#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */
|
|
||||||
#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Control Registers (CONTROL).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */
|
|
||||||
uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */
|
|
||||||
uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} CONTROL_Type;
|
|
||||||
|
|
||||||
/* CONTROL Register Definitions */
|
|
||||||
#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */
|
|
||||||
#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */
|
|
||||||
|
|
||||||
#define CONTROL_nPRIV_Pos 0U /*!< CONTROL: nPRIV Position */
|
|
||||||
#define CONTROL_nPRIV_Msk (1UL /*<< CONTROL_nPRIV_Pos*/) /*!< CONTROL: nPRIV Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_CORE */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC)
|
|
||||||
\brief Type definitions for the NVIC Registers
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the Nested Vectored Interrupt Controller (NVIC).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */
|
|
||||||
uint32_t RESERVED0[31U];
|
|
||||||
__IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */
|
|
||||||
uint32_t RSERVED1[31U];
|
|
||||||
__IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */
|
|
||||||
uint32_t RESERVED2[31U];
|
|
||||||
__IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */
|
|
||||||
uint32_t RESERVED3[31U];
|
|
||||||
uint32_t RESERVED4[64U];
|
|
||||||
__IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */
|
|
||||||
} NVIC_Type;
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_NVIC */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_SCB System Control Block (SCB)
|
|
||||||
\brief Type definitions for the System Control Block Registers
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the System Control Block (SCB).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */
|
|
||||||
__IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */
|
|
||||||
#if (__VTOR_PRESENT == 1U)
|
|
||||||
__IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */
|
|
||||||
#else
|
|
||||||
uint32_t RESERVED0;
|
|
||||||
#endif
|
|
||||||
__IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */
|
|
||||||
__IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */
|
|
||||||
__IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */
|
|
||||||
uint32_t RESERVED1;
|
|
||||||
__IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */
|
|
||||||
__IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */
|
|
||||||
} SCB_Type;
|
|
||||||
|
|
||||||
/* SCB CPUID Register Definitions */
|
|
||||||
#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */
|
|
||||||
#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */
|
|
||||||
#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */
|
|
||||||
#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */
|
|
||||||
#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */
|
|
||||||
#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */
|
|
||||||
|
|
||||||
/* SCB Interrupt Control State Register Definitions */
|
|
||||||
#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */
|
|
||||||
#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */
|
|
||||||
#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */
|
|
||||||
#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */
|
|
||||||
#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */
|
|
||||||
#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */
|
|
||||||
#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */
|
|
||||||
#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */
|
|
||||||
#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */
|
|
||||||
#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */
|
|
||||||
|
|
||||||
#if (__VTOR_PRESENT == 1U)
|
|
||||||
/* SCB Interrupt Control State Register Definitions */
|
|
||||||
#define SCB_VTOR_TBLOFF_Pos 8U /*!< SCB VTOR: TBLOFF Position */
|
|
||||||
#define SCB_VTOR_TBLOFF_Msk (0xFFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* SCB Application Interrupt and Reset Control Register Definitions */
|
|
||||||
#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */
|
|
||||||
#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */
|
|
||||||
#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */
|
|
||||||
#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */
|
|
||||||
#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */
|
|
||||||
#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */
|
|
||||||
|
|
||||||
/* SCB System Control Register Definitions */
|
|
||||||
#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */
|
|
||||||
#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */
|
|
||||||
|
|
||||||
#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */
|
|
||||||
#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */
|
|
||||||
|
|
||||||
#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */
|
|
||||||
#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */
|
|
||||||
|
|
||||||
/* SCB Configuration Control Register Definitions */
|
|
||||||
#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */
|
|
||||||
#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */
|
|
||||||
|
|
||||||
#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */
|
|
||||||
#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */
|
|
||||||
|
|
||||||
/* SCB System Handler Control and State Register Definitions */
|
|
||||||
#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */
|
|
||||||
#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_SCB */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_SysTick System Tick Timer (SysTick)
|
|
||||||
\brief Type definitions for the System Timer Registers.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the System Timer (SysTick).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */
|
|
||||||
__IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */
|
|
||||||
__IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */
|
|
||||||
__IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */
|
|
||||||
} SysTick_Type;
|
|
||||||
|
|
||||||
/* SysTick Control / Status Register Definitions */
|
|
||||||
#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */
|
|
||||||
#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */
|
|
||||||
|
|
||||||
#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */
|
|
||||||
#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */
|
|
||||||
|
|
||||||
#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */
|
|
||||||
#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */
|
|
||||||
|
|
||||||
#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */
|
|
||||||
#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */
|
|
||||||
|
|
||||||
/* SysTick Reload Register Definitions */
|
|
||||||
#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */
|
|
||||||
#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */
|
|
||||||
|
|
||||||
/* SysTick Current Register Definitions */
|
|
||||||
#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */
|
|
||||||
#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */
|
|
||||||
|
|
||||||
/* SysTick Calibration Register Definitions */
|
|
||||||
#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */
|
|
||||||
#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */
|
|
||||||
|
|
||||||
#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */
|
|
||||||
#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */
|
|
||||||
|
|
||||||
#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */
|
|
||||||
#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_SysTick */
|
|
||||||
|
|
||||||
#if (__MPU_PRESENT == 1U)
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_MPU Memory Protection Unit (MPU)
|
|
||||||
\brief Type definitions for the Memory Protection Unit (MPU)
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the Memory Protection Unit (MPU).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */
|
|
||||||
__IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */
|
|
||||||
__IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */
|
|
||||||
__IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */
|
|
||||||
__IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */
|
|
||||||
} MPU_Type;
|
|
||||||
|
|
||||||
/* MPU Type Register Definitions */
|
|
||||||
#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */
|
|
||||||
#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */
|
|
||||||
|
|
||||||
#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */
|
|
||||||
#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */
|
|
||||||
|
|
||||||
#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */
|
|
||||||
#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */
|
|
||||||
|
|
||||||
/* MPU Control Register Definitions */
|
|
||||||
#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */
|
|
||||||
#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */
|
|
||||||
|
|
||||||
#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */
|
|
||||||
#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */
|
|
||||||
|
|
||||||
#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */
|
|
||||||
#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */
|
|
||||||
|
|
||||||
/* MPU Region Number Register Definitions */
|
|
||||||
#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */
|
|
||||||
#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */
|
|
||||||
|
|
||||||
/* MPU Region Base Address Register Definitions */
|
|
||||||
#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */
|
|
||||||
#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */
|
|
||||||
|
|
||||||
#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */
|
|
||||||
#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */
|
|
||||||
|
|
||||||
#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */
|
|
||||||
#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */
|
|
||||||
|
|
||||||
/* MPU Region Attribute and Size Register Definitions */
|
|
||||||
#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */
|
|
||||||
#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */
|
|
||||||
#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */
|
|
||||||
#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */
|
|
||||||
#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */
|
|
||||||
#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */
|
|
||||||
#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */
|
|
||||||
#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */
|
|
||||||
#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */
|
|
||||||
#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */
|
|
||||||
#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_MPU */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug)
|
|
||||||
\brief Cortex-M0+ Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor.
|
|
||||||
Therefore they are not covered by the Cortex-M0+ header file.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
/*@} end of group CMSIS_CoreDebug */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_core_bitfield Core register bit field macros
|
|
||||||
\brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk).
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Mask and shift a bit field value for use in a register bit range.
|
|
||||||
\param[in] field Name of the register bit field.
|
|
||||||
\param[in] value Value of the bit field.
|
|
||||||
\return Masked and shifted value.
|
|
||||||
*/
|
|
||||||
#define _VAL2FLD(field, value) ((value << field ## _Pos) & field ## _Msk)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Mask and shift a register value to extract a bit filed value.
|
|
||||||
\param[in] field Name of the register bit field.
|
|
||||||
\param[in] value Value of register.
|
|
||||||
\return Masked and shifted bit field value.
|
|
||||||
*/
|
|
||||||
#define _FLD2VAL(field, value) ((value & field ## _Msk) >> field ## _Pos)
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_core_bitfield */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_core_base Core Definitions
|
|
||||||
\brief Definitions for base addresses, unions, and structures.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Memory mapping of Cortex-M0+ Hardware */
|
|
||||||
#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */
|
|
||||||
#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */
|
|
||||||
#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */
|
|
||||||
#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */
|
|
||||||
|
|
||||||
#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */
|
|
||||||
#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */
|
|
||||||
#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */
|
|
||||||
|
|
||||||
#if (__MPU_PRESENT == 1U)
|
|
||||||
#define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */
|
|
||||||
#define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*@} */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Hardware Abstraction Layer
|
|
||||||
Core Function Interface contains:
|
|
||||||
- Core NVIC Functions
|
|
||||||
- Core SysTick Functions
|
|
||||||
- Core Register Access Functions
|
|
||||||
******************************************************************************/
|
|
||||||
/**
|
|
||||||
\defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ########################## NVIC functions #################################### */
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_Core_FunctionInterface
|
|
||||||
\defgroup CMSIS_Core_NVICFunctions NVIC Functions
|
|
||||||
\brief Functions that manage interrupts and exceptions via the NVIC.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Interrupt Priorities are WORD accessible only under ARMv6M */
|
|
||||||
/* The following MACROS handle generation of the register offset and byte masks */
|
|
||||||
#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL)
|
|
||||||
#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) )
|
|
||||||
#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) )
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Enable External Interrupt
|
|
||||||
\details Enables a device-specific interrupt in the NVIC interrupt controller.
|
|
||||||
\param [in] IRQn External interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Disable External Interrupt
|
|
||||||
\details Disables a device-specific interrupt in the NVIC interrupt controller.
|
|
||||||
\param [in] IRQn External interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Pending Interrupt
|
|
||||||
\details Reads the pending register in the NVIC and returns the pending bit for the specified interrupt.
|
|
||||||
\param [in] IRQn Interrupt number.
|
|
||||||
\return 0 Interrupt status is not pending.
|
|
||||||
\return 1 Interrupt status is pending.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Pending Interrupt
|
|
||||||
\details Sets the pending bit of an external interrupt.
|
|
||||||
\param [in] IRQn Interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Clear Pending Interrupt
|
|
||||||
\details Clears the pending bit of an external interrupt.
|
|
||||||
\param [in] IRQn External interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Interrupt Priority
|
|
||||||
\details Sets the priority of an interrupt.
|
|
||||||
\note The priority cannot be set for every core interrupt.
|
|
||||||
\param [in] IRQn Interrupt number.
|
|
||||||
\param [in] priority Priority to set.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
|
|
||||||
{
|
|
||||||
if ((int32_t)(IRQn) < 0)
|
|
||||||
{
|
|
||||||
SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
|
|
||||||
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
|
|
||||||
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Interrupt Priority
|
|
||||||
\details Reads the priority of an interrupt.
|
|
||||||
The interrupt number can be positive to specify an external (device specific) interrupt,
|
|
||||||
or negative to specify an internal (core) interrupt.
|
|
||||||
\param [in] IRQn Interrupt number.
|
|
||||||
\return Interrupt Priority.
|
|
||||||
Value is aligned automatically to the implemented priority bits of the microcontroller.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
|
|
||||||
if ((int32_t)(IRQn) < 0)
|
|
||||||
{
|
|
||||||
return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS)));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief System Reset
|
|
||||||
\details Initiates a system reset request to reset the MCU.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_SystemReset(void)
|
|
||||||
{
|
|
||||||
__DSB(); /* Ensure all outstanding memory accesses included
|
|
||||||
buffered write are completed before reset */
|
|
||||||
SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
|
|
||||||
SCB_AIRCR_SYSRESETREQ_Msk);
|
|
||||||
__DSB(); /* Ensure completion of memory access */
|
|
||||||
|
|
||||||
for (;;) /* wait until reset */
|
|
||||||
{
|
|
||||||
__NOP();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*@} end of CMSIS_Core_NVICFunctions */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ################################## SysTick function ############################################ */
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_Core_FunctionInterface
|
|
||||||
\defgroup CMSIS_Core_SysTickFunctions SysTick Functions
|
|
||||||
\brief Functions that configure the System.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if (__Vendor_SysTickConfig == 0U)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief System Tick Configuration
|
|
||||||
\details Initializes the System Timer and its interrupt, and starts the System Tick Timer.
|
|
||||||
Counter is in free running mode to generate periodic interrupts.
|
|
||||||
\param [in] ticks Number of ticks between two interrupts.
|
|
||||||
\return 0 Function succeeded.
|
|
||||||
\return 1 Function failed.
|
|
||||||
\note When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the
|
|
||||||
function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
|
|
||||||
must contain a vendor-specific implementation of this function.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
|
|
||||||
{
|
|
||||||
if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
|
|
||||||
{
|
|
||||||
return (1UL); /* Reload value impossible */
|
|
||||||
}
|
|
||||||
|
|
||||||
SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
|
|
||||||
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
|
|
||||||
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
|
|
||||||
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
|
|
||||||
SysTick_CTRL_TICKINT_Msk |
|
|
||||||
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
|
|
||||||
return (0UL); /* Function successful */
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*@} end of CMSIS_Core_SysTickFunctions */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __CORE_CM0PLUS_H_DEPENDANT */
|
|
||||||
|
|
||||||
#endif /* __CMSIS_GENERIC */
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,86 +0,0 @@
|
|||||||
/**************************************************************************//**
|
|
||||||
* @file core_cmFunc.h
|
|
||||||
* @brief CMSIS Cortex-M Core Function Access Header File
|
|
||||||
* @version V4.30
|
|
||||||
* @date 20. October 2015
|
|
||||||
******************************************************************************/
|
|
||||||
/* Copyright (c) 2009 - 2015 ARM LIMITED
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
- Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
- Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
- Neither the name of ARM nor the names of its contributors may be used
|
|
||||||
to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.
|
|
||||||
*
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#if defined ( __ICCARM__ )
|
|
||||||
#pragma system_include /* treat file as system include file for MISRA check */
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#pragma clang system_header /* treat file as system include file */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __CORE_CMFUNC_H
|
|
||||||
#define __CORE_CMFUNC_H
|
|
||||||
|
|
||||||
|
|
||||||
/* ########################### Core Function Access ########################### */
|
|
||||||
/** \ingroup CMSIS_Core_FunctionInterface
|
|
||||||
\defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*------------------ RealView Compiler -----------------*/
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
#include "cmsis_armcc.h"
|
|
||||||
|
|
||||||
/*------------------ ARM Compiler V6 -------------------*/
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#include "cmsis_armcc_V6.h"
|
|
||||||
|
|
||||||
/*------------------ GNU Compiler ----------------------*/
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
#include "cmsis_gcc.h"
|
|
||||||
|
|
||||||
/*------------------ ICC Compiler ----------------------*/
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
#include <cmsis_iar.h>
|
|
||||||
|
|
||||||
/*------------------ TI CCS Compiler -------------------*/
|
|
||||||
#elif defined ( __TMS470__ )
|
|
||||||
#include <cmsis_ccs.h>
|
|
||||||
|
|
||||||
/*------------------ TASKING Compiler ------------------*/
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
/*
|
|
||||||
* The CMSIS functions have been implemented as intrinsics in the compiler.
|
|
||||||
* Please use "carm -?i" to get an up to date list of all intrinsics,
|
|
||||||
* Including the CMSIS ones.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*------------------ COSMIC Compiler -------------------*/
|
|
||||||
#elif defined ( __CSMC__ )
|
|
||||||
#include <cmsis_csm.h>
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*@} end of CMSIS_Core_RegAccFunctions */
|
|
||||||
|
|
||||||
#endif /* __CORE_CMFUNC_H */
|
|
@ -1,87 +0,0 @@
|
|||||||
/**************************************************************************//**
|
|
||||||
* @file core_cmInstr.h
|
|
||||||
* @brief CMSIS Cortex-M Core Instruction Access Header File
|
|
||||||
* @version V4.30
|
|
||||||
* @date 20. October 2015
|
|
||||||
******************************************************************************/
|
|
||||||
/* Copyright (c) 2009 - 2015 ARM LIMITED
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
- Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
- Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
- Neither the name of ARM nor the names of its contributors may be used
|
|
||||||
to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.
|
|
||||||
*
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
#if defined ( __ICCARM__ )
|
|
||||||
#pragma system_include /* treat file as system include file for MISRA check */
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#pragma clang system_header /* treat file as system include file */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __CORE_CMINSTR_H
|
|
||||||
#define __CORE_CMINSTR_H
|
|
||||||
|
|
||||||
|
|
||||||
/* ########################## Core Instruction Access ######################### */
|
|
||||||
/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
|
|
||||||
Access to dedicated instructions
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*------------------ RealView Compiler -----------------*/
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
#include "cmsis_armcc.h"
|
|
||||||
|
|
||||||
/*------------------ ARM Compiler V6 -------------------*/
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#include "cmsis_armcc_V6.h"
|
|
||||||
|
|
||||||
/*------------------ GNU Compiler ----------------------*/
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
#include "cmsis_gcc.h"
|
|
||||||
|
|
||||||
/*------------------ ICC Compiler ----------------------*/
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
#include <cmsis_iar.h>
|
|
||||||
|
|
||||||
/*------------------ TI CCS Compiler -------------------*/
|
|
||||||
#elif defined ( __TMS470__ )
|
|
||||||
#include <cmsis_ccs.h>
|
|
||||||
|
|
||||||
/*------------------ TASKING Compiler ------------------*/
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
/*
|
|
||||||
* The CMSIS functions have been implemented as intrinsics in the compiler.
|
|
||||||
* Please use "carm -?i" to get an up to date list of all intrinsics,
|
|
||||||
* Including the CMSIS ones.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*------------------ COSMIC Compiler -------------------*/
|
|
||||||
#elif defined ( __CSMC__ )
|
|
||||||
#include <cmsis_csm.h>
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*@}*/ /* end of group CMSIS_Core_InstructionInterface */
|
|
||||||
|
|
||||||
#endif /* __CORE_CMINSTR_H */
|
|
@ -1,96 +0,0 @@
|
|||||||
/**************************************************************************//**
|
|
||||||
* @file core_cmSimd.h
|
|
||||||
* @brief CMSIS Cortex-M SIMD Header File
|
|
||||||
* @version V4.30
|
|
||||||
* @date 20. October 2015
|
|
||||||
******************************************************************************/
|
|
||||||
/* Copyright (c) 2009 - 2015 ARM LIMITED
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
- Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
- Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
- Neither the name of ARM nor the names of its contributors may be used
|
|
||||||
to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.
|
|
||||||
*
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
#if defined ( __ICCARM__ )
|
|
||||||
#pragma system_include /* treat file as system include file for MISRA check */
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#pragma clang system_header /* treat file as system include file */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __CORE_CMSIMD_H
|
|
||||||
#define __CORE_CMSIMD_H
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* ################### Compiler specific Intrinsics ########################### */
|
|
||||||
/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics
|
|
||||||
Access to dedicated SIMD instructions
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*------------------ RealView Compiler -----------------*/
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
#include "cmsis_armcc.h"
|
|
||||||
|
|
||||||
/*------------------ ARM Compiler V6 -------------------*/
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#include "cmsis_armcc_V6.h"
|
|
||||||
|
|
||||||
/*------------------ GNU Compiler ----------------------*/
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
#include "cmsis_gcc.h"
|
|
||||||
|
|
||||||
/*------------------ ICC Compiler ----------------------*/
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
#include <cmsis_iar.h>
|
|
||||||
|
|
||||||
/*------------------ TI CCS Compiler -------------------*/
|
|
||||||
#elif defined ( __TMS470__ )
|
|
||||||
#include <cmsis_ccs.h>
|
|
||||||
|
|
||||||
/*------------------ TASKING Compiler ------------------*/
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
/*
|
|
||||||
* The CMSIS functions have been implemented as intrinsics in the compiler.
|
|
||||||
* Please use "carm -?i" to get an up to date list of all intrinsics,
|
|
||||||
* Including the CMSIS ones.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*------------------ COSMIC Compiler -------------------*/
|
|
||||||
#elif defined ( __CSMC__ )
|
|
||||||
#include <cmsis_csm.h>
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_SIMD_intrinsics */
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __CORE_CMSIMD_H */
|
|
@ -1,926 +0,0 @@
|
|||||||
/**************************************************************************//**
|
|
||||||
* @file core_sc000.h
|
|
||||||
* @brief CMSIS SC000 Core Peripheral Access Layer Header File
|
|
||||||
* @version V4.30
|
|
||||||
* @date 20. October 2015
|
|
||||||
******************************************************************************/
|
|
||||||
/* Copyright (c) 2009 - 2015 ARM LIMITED
|
|
||||||
|
|
||||||
All rights reserved.
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
- Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
- Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
- Neither the name of ARM nor the names of its contributors may be used
|
|
||||||
to endorse or promote products derived from this software without
|
|
||||||
specific prior written permission.
|
|
||||||
*
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
|
||||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
||||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
||||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
||||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
---------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
|
|
||||||
#if defined ( __ICCARM__ )
|
|
||||||
#pragma system_include /* treat file as system include file for MISRA check */
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#pragma clang system_header /* treat file as system include file */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __CORE_SC000_H_GENERIC
|
|
||||||
#define __CORE_SC000_H_GENERIC
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
|
||||||
\page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions
|
|
||||||
CMSIS violates the following MISRA-C:2004 rules:
|
|
||||||
|
|
||||||
\li Required Rule 8.5, object/function definition in header file.<br>
|
|
||||||
Function definitions in header files are used to allow 'inlining'.
|
|
||||||
|
|
||||||
\li Required Rule 18.4, declaration of union type or object of union type: '{...}'.<br>
|
|
||||||
Unions are used for effective representation of core registers.
|
|
||||||
|
|
||||||
\li Advisory Rule 19.7, Function-like macro defined.<br>
|
|
||||||
Function-like macros are used to allow more efficient code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* CMSIS definitions
|
|
||||||
******************************************************************************/
|
|
||||||
/**
|
|
||||||
\ingroup SC000
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* CMSIS SC000 definitions */
|
|
||||||
#define __SC000_CMSIS_VERSION_MAIN (0x04U) /*!< [31:16] CMSIS HAL main version */
|
|
||||||
#define __SC000_CMSIS_VERSION_SUB (0x1EU) /*!< [15:0] CMSIS HAL sub version */
|
|
||||||
#define __SC000_CMSIS_VERSION ((__SC000_CMSIS_VERSION_MAIN << 16U) | \
|
|
||||||
__SC000_CMSIS_VERSION_SUB ) /*!< CMSIS HAL version number */
|
|
||||||
|
|
||||||
#define __CORTEX_SC (000U) /*!< Cortex secure core */
|
|
||||||
|
|
||||||
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
#define __ASM __asm /*!< asm keyword for ARM Compiler */
|
|
||||||
#define __INLINE __inline /*!< inline keyword for ARM Compiler */
|
|
||||||
#define __STATIC_INLINE static __inline
|
|
||||||
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#define __ASM __asm /*!< asm keyword for ARM Compiler */
|
|
||||||
#define __INLINE __inline /*!< inline keyword for ARM Compiler */
|
|
||||||
#define __STATIC_INLINE static __inline
|
|
||||||
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for GNU Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for GNU Compiler */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for IAR Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for IAR Compiler. Only available in High optimization mode! */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __TMS470__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for TI CCS Compiler */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
#define __ASM __asm /*!< asm keyword for TASKING Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for TASKING Compiler */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#elif defined ( __CSMC__ )
|
|
||||||
#define __packed
|
|
||||||
#define __ASM _asm /*!< asm keyword for COSMIC Compiler */
|
|
||||||
#define __INLINE inline /*!< inline keyword for COSMIC Compiler. Use -pc99 on compile line */
|
|
||||||
#define __STATIC_INLINE static inline
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error Unknown compiler
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** __FPU_USED indicates whether an FPU is used or not.
|
|
||||||
This core does not support an FPU at all
|
|
||||||
*/
|
|
||||||
#define __FPU_USED 0U
|
|
||||||
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
#if defined __TARGET_FPU_VFP
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
|
|
||||||
#if defined __ARM_PCS_VFP
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
#if defined (__VFP_FP__) && !defined(__SOFTFP__)
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
#if defined __ARMVFP__
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __TMS470__ )
|
|
||||||
#if defined __TI_VFP_SUPPORT__
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __TASKING__ )
|
|
||||||
#if defined __FPU_VFP__
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif defined ( __CSMC__ )
|
|
||||||
#if ( __CSMC__ & 0x400U)
|
|
||||||
#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "core_cmInstr.h" /* Core Instruction Access */
|
|
||||||
#include "core_cmFunc.h" /* Core Function Access */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __CORE_SC000_H_GENERIC */
|
|
||||||
|
|
||||||
#ifndef __CMSIS_GENERIC
|
|
||||||
|
|
||||||
#ifndef __CORE_SC000_H_DEPENDANT
|
|
||||||
#define __CORE_SC000_H_DEPENDANT
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* check device defines and use defaults */
|
|
||||||
#if defined __CHECK_DEVICE_DEFINES
|
|
||||||
#ifndef __SC000_REV
|
|
||||||
#define __SC000_REV 0x0000U
|
|
||||||
#warning "__SC000_REV not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __MPU_PRESENT
|
|
||||||
#define __MPU_PRESENT 0U
|
|
||||||
#warning "__MPU_PRESENT not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __NVIC_PRIO_BITS
|
|
||||||
#define __NVIC_PRIO_BITS 2U
|
|
||||||
#warning "__NVIC_PRIO_BITS not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __Vendor_SysTickConfig
|
|
||||||
#define __Vendor_SysTickConfig 0U
|
|
||||||
#warning "__Vendor_SysTickConfig not defined in device header file; using default!"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* IO definitions (access restrictions to peripheral registers) */
|
|
||||||
/**
|
|
||||||
\defgroup CMSIS_glob_defs CMSIS Global Defines
|
|
||||||
|
|
||||||
<strong>IO Type Qualifiers</strong> are used
|
|
||||||
\li to specify the access to peripheral variables.
|
|
||||||
\li for automatic generation of peripheral register debug information.
|
|
||||||
*/
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define __I volatile /*!< Defines 'read only' permissions */
|
|
||||||
#else
|
|
||||||
#define __I volatile const /*!< Defines 'read only' permissions */
|
|
||||||
#endif
|
|
||||||
#define __O volatile /*!< Defines 'write only' permissions */
|
|
||||||
#define __IO volatile /*!< Defines 'read / write' permissions */
|
|
||||||
|
|
||||||
/* following defines should be used for structure members */
|
|
||||||
#define __IM volatile const /*! Defines 'read only' structure member permissions */
|
|
||||||
#define __OM volatile /*! Defines 'write only' structure member permissions */
|
|
||||||
#define __IOM volatile /*! Defines 'read / write' structure member permissions */
|
|
||||||
|
|
||||||
/*@} end of group SC000 */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Register Abstraction
|
|
||||||
Core Register contain:
|
|
||||||
- Core Register
|
|
||||||
- Core NVIC Register
|
|
||||||
- Core SCB Register
|
|
||||||
- Core SysTick Register
|
|
||||||
- Core MPU Register
|
|
||||||
******************************************************************************/
|
|
||||||
/**
|
|
||||||
\defgroup CMSIS_core_register Defines and Type Definitions
|
|
||||||
\brief Type definitions and defines for Cortex-M processor based devices.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_CORE Status and Control Registers
|
|
||||||
\brief Core Register type definitions.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Application Program Status Register (APSR).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t _reserved0:28; /*!< bit: 0..27 Reserved */
|
|
||||||
uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
|
|
||||||
uint32_t C:1; /*!< bit: 29 Carry condition code flag */
|
|
||||||
uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
|
|
||||||
uint32_t N:1; /*!< bit: 31 Negative condition code flag */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} APSR_Type;
|
|
||||||
|
|
||||||
/* APSR Register Definitions */
|
|
||||||
#define APSR_N_Pos 31U /*!< APSR: N Position */
|
|
||||||
#define APSR_N_Msk (1UL << APSR_N_Pos) /*!< APSR: N Mask */
|
|
||||||
|
|
||||||
#define APSR_Z_Pos 30U /*!< APSR: Z Position */
|
|
||||||
#define APSR_Z_Msk (1UL << APSR_Z_Pos) /*!< APSR: Z Mask */
|
|
||||||
|
|
||||||
#define APSR_C_Pos 29U /*!< APSR: C Position */
|
|
||||||
#define APSR_C_Msk (1UL << APSR_C_Pos) /*!< APSR: C Mask */
|
|
||||||
|
|
||||||
#define APSR_V_Pos 28U /*!< APSR: V Position */
|
|
||||||
#define APSR_V_Msk (1UL << APSR_V_Pos) /*!< APSR: V Mask */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Interrupt Program Status Register (IPSR).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
|
|
||||||
uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} IPSR_Type;
|
|
||||||
|
|
||||||
/* IPSR Register Definitions */
|
|
||||||
#define IPSR_ISR_Pos 0U /*!< IPSR: ISR Position */
|
|
||||||
#define IPSR_ISR_Msk (0x1FFUL /*<< IPSR_ISR_Pos*/) /*!< IPSR: ISR Mask */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Special-Purpose Program Status Registers (xPSR).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */
|
|
||||||
uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */
|
|
||||||
uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */
|
|
||||||
uint32_t _reserved1:3; /*!< bit: 25..27 Reserved */
|
|
||||||
uint32_t V:1; /*!< bit: 28 Overflow condition code flag */
|
|
||||||
uint32_t C:1; /*!< bit: 29 Carry condition code flag */
|
|
||||||
uint32_t Z:1; /*!< bit: 30 Zero condition code flag */
|
|
||||||
uint32_t N:1; /*!< bit: 31 Negative condition code flag */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} xPSR_Type;
|
|
||||||
|
|
||||||
/* xPSR Register Definitions */
|
|
||||||
#define xPSR_N_Pos 31U /*!< xPSR: N Position */
|
|
||||||
#define xPSR_N_Msk (1UL << xPSR_N_Pos) /*!< xPSR: N Mask */
|
|
||||||
|
|
||||||
#define xPSR_Z_Pos 30U /*!< xPSR: Z Position */
|
|
||||||
#define xPSR_Z_Msk (1UL << xPSR_Z_Pos) /*!< xPSR: Z Mask */
|
|
||||||
|
|
||||||
#define xPSR_C_Pos 29U /*!< xPSR: C Position */
|
|
||||||
#define xPSR_C_Msk (1UL << xPSR_C_Pos) /*!< xPSR: C Mask */
|
|
||||||
|
|
||||||
#define xPSR_V_Pos 28U /*!< xPSR: V Position */
|
|
||||||
#define xPSR_V_Msk (1UL << xPSR_V_Pos) /*!< xPSR: V Mask */
|
|
||||||
|
|
||||||
#define xPSR_T_Pos 24U /*!< xPSR: T Position */
|
|
||||||
#define xPSR_T_Msk (1UL << xPSR_T_Pos) /*!< xPSR: T Mask */
|
|
||||||
|
|
||||||
#define xPSR_ISR_Pos 0U /*!< xPSR: ISR Position */
|
|
||||||
#define xPSR_ISR_Msk (0x1FFUL /*<< xPSR_ISR_Pos*/) /*!< xPSR: ISR Mask */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Union type to access the Control Registers (CONTROL).
|
|
||||||
*/
|
|
||||||
typedef union
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t _reserved0:1; /*!< bit: 0 Reserved */
|
|
||||||
uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */
|
|
||||||
uint32_t _reserved1:30; /*!< bit: 2..31 Reserved */
|
|
||||||
} b; /*!< Structure used for bit access */
|
|
||||||
uint32_t w; /*!< Type used for word access */
|
|
||||||
} CONTROL_Type;
|
|
||||||
|
|
||||||
/* CONTROL Register Definitions */
|
|
||||||
#define CONTROL_SPSEL_Pos 1U /*!< CONTROL: SPSEL Position */
|
|
||||||
#define CONTROL_SPSEL_Msk (1UL << CONTROL_SPSEL_Pos) /*!< CONTROL: SPSEL Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_CORE */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_NVIC Nested Vectored Interrupt Controller (NVIC)
|
|
||||||
\brief Type definitions for the NVIC Registers
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the Nested Vectored Interrupt Controller (NVIC).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IOM uint32_t ISER[1U]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */
|
|
||||||
uint32_t RESERVED0[31U];
|
|
||||||
__IOM uint32_t ICER[1U]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */
|
|
||||||
uint32_t RSERVED1[31U];
|
|
||||||
__IOM uint32_t ISPR[1U]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */
|
|
||||||
uint32_t RESERVED2[31U];
|
|
||||||
__IOM uint32_t ICPR[1U]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */
|
|
||||||
uint32_t RESERVED3[31U];
|
|
||||||
uint32_t RESERVED4[64U];
|
|
||||||
__IOM uint32_t IP[8U]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register */
|
|
||||||
} NVIC_Type;
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_NVIC */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_SCB System Control Block (SCB)
|
|
||||||
\brief Type definitions for the System Control Block Registers
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the System Control Block (SCB).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IM uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */
|
|
||||||
__IOM uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control and State Register */
|
|
||||||
__IOM uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */
|
|
||||||
__IOM uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt and Reset Control Register */
|
|
||||||
__IOM uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */
|
|
||||||
__IOM uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */
|
|
||||||
uint32_t RESERVED0[1U];
|
|
||||||
__IOM uint32_t SHP[2U]; /*!< Offset: 0x01C (R/W) System Handlers Priority Registers. [0] is RESERVED */
|
|
||||||
__IOM uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */
|
|
||||||
uint32_t RESERVED1[154U];
|
|
||||||
__IOM uint32_t SFCR; /*!< Offset: 0x290 (R/W) Security Features Control Register */
|
|
||||||
} SCB_Type;
|
|
||||||
|
|
||||||
/* SCB CPUID Register Definitions */
|
|
||||||
#define SCB_CPUID_IMPLEMENTER_Pos 24U /*!< SCB CPUID: IMPLEMENTER Position */
|
|
||||||
#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_VARIANT_Pos 20U /*!< SCB CPUID: VARIANT Position */
|
|
||||||
#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_ARCHITECTURE_Pos 16U /*!< SCB CPUID: ARCHITECTURE Position */
|
|
||||||
#define SCB_CPUID_ARCHITECTURE_Msk (0xFUL << SCB_CPUID_ARCHITECTURE_Pos) /*!< SCB CPUID: ARCHITECTURE Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_PARTNO_Pos 4U /*!< SCB CPUID: PARTNO Position */
|
|
||||||
#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */
|
|
||||||
|
|
||||||
#define SCB_CPUID_REVISION_Pos 0U /*!< SCB CPUID: REVISION Position */
|
|
||||||
#define SCB_CPUID_REVISION_Msk (0xFUL /*<< SCB_CPUID_REVISION_Pos*/) /*!< SCB CPUID: REVISION Mask */
|
|
||||||
|
|
||||||
/* SCB Interrupt Control State Register Definitions */
|
|
||||||
#define SCB_ICSR_NMIPENDSET_Pos 31U /*!< SCB ICSR: NMIPENDSET Position */
|
|
||||||
#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSVSET_Pos 28U /*!< SCB ICSR: PENDSVSET Position */
|
|
||||||
#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSVCLR_Pos 27U /*!< SCB ICSR: PENDSVCLR Position */
|
|
||||||
#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSTSET_Pos 26U /*!< SCB ICSR: PENDSTSET Position */
|
|
||||||
#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_PENDSTCLR_Pos 25U /*!< SCB ICSR: PENDSTCLR Position */
|
|
||||||
#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_ISRPREEMPT_Pos 23U /*!< SCB ICSR: ISRPREEMPT Position */
|
|
||||||
#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_ISRPENDING_Pos 22U /*!< SCB ICSR: ISRPENDING Position */
|
|
||||||
#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_VECTPENDING_Pos 12U /*!< SCB ICSR: VECTPENDING Position */
|
|
||||||
#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */
|
|
||||||
|
|
||||||
#define SCB_ICSR_VECTACTIVE_Pos 0U /*!< SCB ICSR: VECTACTIVE Position */
|
|
||||||
#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL /*<< SCB_ICSR_VECTACTIVE_Pos*/) /*!< SCB ICSR: VECTACTIVE Mask */
|
|
||||||
|
|
||||||
/* SCB Interrupt Control State Register Definitions */
|
|
||||||
#define SCB_VTOR_TBLOFF_Pos 7U /*!< SCB VTOR: TBLOFF Position */
|
|
||||||
#define SCB_VTOR_TBLOFF_Msk (0x1FFFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */
|
|
||||||
|
|
||||||
/* SCB Application Interrupt and Reset Control Register Definitions */
|
|
||||||
#define SCB_AIRCR_VECTKEY_Pos 16U /*!< SCB AIRCR: VECTKEY Position */
|
|
||||||
#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_VECTKEYSTAT_Pos 16U /*!< SCB AIRCR: VECTKEYSTAT Position */
|
|
||||||
#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_ENDIANESS_Pos 15U /*!< SCB AIRCR: ENDIANESS Position */
|
|
||||||
#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */
|
|
||||||
#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */
|
|
||||||
|
|
||||||
#define SCB_AIRCR_VECTCLRACTIVE_Pos 1U /*!< SCB AIRCR: VECTCLRACTIVE Position */
|
|
||||||
#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */
|
|
||||||
|
|
||||||
/* SCB System Control Register Definitions */
|
|
||||||
#define SCB_SCR_SEVONPEND_Pos 4U /*!< SCB SCR: SEVONPEND Position */
|
|
||||||
#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */
|
|
||||||
|
|
||||||
#define SCB_SCR_SLEEPDEEP_Pos 2U /*!< SCB SCR: SLEEPDEEP Position */
|
|
||||||
#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */
|
|
||||||
|
|
||||||
#define SCB_SCR_SLEEPONEXIT_Pos 1U /*!< SCB SCR: SLEEPONEXIT Position */
|
|
||||||
#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */
|
|
||||||
|
|
||||||
/* SCB Configuration Control Register Definitions */
|
|
||||||
#define SCB_CCR_STKALIGN_Pos 9U /*!< SCB CCR: STKALIGN Position */
|
|
||||||
#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */
|
|
||||||
|
|
||||||
#define SCB_CCR_UNALIGN_TRP_Pos 3U /*!< SCB CCR: UNALIGN_TRP Position */
|
|
||||||
#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */
|
|
||||||
|
|
||||||
/* SCB System Handler Control and State Register Definitions */
|
|
||||||
#define SCB_SHCSR_SVCALLPENDED_Pos 15U /*!< SCB SHCSR: SVCALLPENDED Position */
|
|
||||||
#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_SCB */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_SCnSCB System Controls not in SCB (SCnSCB)
|
|
||||||
\brief Type definitions for the System Control and ID Register not in the SCB
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the System Control and ID Register not in the SCB.
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
uint32_t RESERVED0[2U];
|
|
||||||
__IOM uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */
|
|
||||||
} SCnSCB_Type;
|
|
||||||
|
|
||||||
/* Auxiliary Control Register Definitions */
|
|
||||||
#define SCnSCB_ACTLR_DISMCYCINT_Pos 0U /*!< ACTLR: DISMCYCINT Position */
|
|
||||||
#define SCnSCB_ACTLR_DISMCYCINT_Msk (1UL /*<< SCnSCB_ACTLR_DISMCYCINT_Pos*/) /*!< ACTLR: DISMCYCINT Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_SCnotSCB */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_SysTick System Tick Timer (SysTick)
|
|
||||||
\brief Type definitions for the System Timer Registers.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the System Timer (SysTick).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IOM uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */
|
|
||||||
__IOM uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */
|
|
||||||
__IOM uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */
|
|
||||||
__IM uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */
|
|
||||||
} SysTick_Type;
|
|
||||||
|
|
||||||
/* SysTick Control / Status Register Definitions */
|
|
||||||
#define SysTick_CTRL_COUNTFLAG_Pos 16U /*!< SysTick CTRL: COUNTFLAG Position */
|
|
||||||
#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */
|
|
||||||
|
|
||||||
#define SysTick_CTRL_CLKSOURCE_Pos 2U /*!< SysTick CTRL: CLKSOURCE Position */
|
|
||||||
#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */
|
|
||||||
|
|
||||||
#define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */
|
|
||||||
#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */
|
|
||||||
|
|
||||||
#define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */
|
|
||||||
#define SysTick_CTRL_ENABLE_Msk (1UL /*<< SysTick_CTRL_ENABLE_Pos*/) /*!< SysTick CTRL: ENABLE Mask */
|
|
||||||
|
|
||||||
/* SysTick Reload Register Definitions */
|
|
||||||
#define SysTick_LOAD_RELOAD_Pos 0U /*!< SysTick LOAD: RELOAD Position */
|
|
||||||
#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL /*<< SysTick_LOAD_RELOAD_Pos*/) /*!< SysTick LOAD: RELOAD Mask */
|
|
||||||
|
|
||||||
/* SysTick Current Register Definitions */
|
|
||||||
#define SysTick_VAL_CURRENT_Pos 0U /*!< SysTick VAL: CURRENT Position */
|
|
||||||
#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL /*<< SysTick_VAL_CURRENT_Pos*/) /*!< SysTick VAL: CURRENT Mask */
|
|
||||||
|
|
||||||
/* SysTick Calibration Register Definitions */
|
|
||||||
#define SysTick_CALIB_NOREF_Pos 31U /*!< SysTick CALIB: NOREF Position */
|
|
||||||
#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */
|
|
||||||
|
|
||||||
#define SysTick_CALIB_SKEW_Pos 30U /*!< SysTick CALIB: SKEW Position */
|
|
||||||
#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */
|
|
||||||
|
|
||||||
#define SysTick_CALIB_TENMS_Pos 0U /*!< SysTick CALIB: TENMS Position */
|
|
||||||
#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL /*<< SysTick_CALIB_TENMS_Pos*/) /*!< SysTick CALIB: TENMS Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_SysTick */
|
|
||||||
|
|
||||||
#if (__MPU_PRESENT == 1U)
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_MPU Memory Protection Unit (MPU)
|
|
||||||
\brief Type definitions for the Memory Protection Unit (MPU)
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Structure type to access the Memory Protection Unit (MPU).
|
|
||||||
*/
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
__IM uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */
|
|
||||||
__IOM uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */
|
|
||||||
__IOM uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */
|
|
||||||
__IOM uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */
|
|
||||||
__IOM uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */
|
|
||||||
} MPU_Type;
|
|
||||||
|
|
||||||
/* MPU Type Register Definitions */
|
|
||||||
#define MPU_TYPE_IREGION_Pos 16U /*!< MPU TYPE: IREGION Position */
|
|
||||||
#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */
|
|
||||||
|
|
||||||
#define MPU_TYPE_DREGION_Pos 8U /*!< MPU TYPE: DREGION Position */
|
|
||||||
#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */
|
|
||||||
|
|
||||||
#define MPU_TYPE_SEPARATE_Pos 0U /*!< MPU TYPE: SEPARATE Position */
|
|
||||||
#define MPU_TYPE_SEPARATE_Msk (1UL /*<< MPU_TYPE_SEPARATE_Pos*/) /*!< MPU TYPE: SEPARATE Mask */
|
|
||||||
|
|
||||||
/* MPU Control Register Definitions */
|
|
||||||
#define MPU_CTRL_PRIVDEFENA_Pos 2U /*!< MPU CTRL: PRIVDEFENA Position */
|
|
||||||
#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */
|
|
||||||
|
|
||||||
#define MPU_CTRL_HFNMIENA_Pos 1U /*!< MPU CTRL: HFNMIENA Position */
|
|
||||||
#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */
|
|
||||||
|
|
||||||
#define MPU_CTRL_ENABLE_Pos 0U /*!< MPU CTRL: ENABLE Position */
|
|
||||||
#define MPU_CTRL_ENABLE_Msk (1UL /*<< MPU_CTRL_ENABLE_Pos*/) /*!< MPU CTRL: ENABLE Mask */
|
|
||||||
|
|
||||||
/* MPU Region Number Register Definitions */
|
|
||||||
#define MPU_RNR_REGION_Pos 0U /*!< MPU RNR: REGION Position */
|
|
||||||
#define MPU_RNR_REGION_Msk (0xFFUL /*<< MPU_RNR_REGION_Pos*/) /*!< MPU RNR: REGION Mask */
|
|
||||||
|
|
||||||
/* MPU Region Base Address Register Definitions */
|
|
||||||
#define MPU_RBAR_ADDR_Pos 8U /*!< MPU RBAR: ADDR Position */
|
|
||||||
#define MPU_RBAR_ADDR_Msk (0xFFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */
|
|
||||||
|
|
||||||
#define MPU_RBAR_VALID_Pos 4U /*!< MPU RBAR: VALID Position */
|
|
||||||
#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */
|
|
||||||
|
|
||||||
#define MPU_RBAR_REGION_Pos 0U /*!< MPU RBAR: REGION Position */
|
|
||||||
#define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) /*!< MPU RBAR: REGION Mask */
|
|
||||||
|
|
||||||
/* MPU Region Attribute and Size Register Definitions */
|
|
||||||
#define MPU_RASR_ATTRS_Pos 16U /*!< MPU RASR: MPU Region Attribute field Position */
|
|
||||||
#define MPU_RASR_ATTRS_Msk (0xFFFFUL << MPU_RASR_ATTRS_Pos) /*!< MPU RASR: MPU Region Attribute field Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_XN_Pos 28U /*!< MPU RASR: ATTRS.XN Position */
|
|
||||||
#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: ATTRS.XN Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_AP_Pos 24U /*!< MPU RASR: ATTRS.AP Position */
|
|
||||||
#define MPU_RASR_AP_Msk (0x7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: ATTRS.AP Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_TEX_Pos 19U /*!< MPU RASR: ATTRS.TEX Position */
|
|
||||||
#define MPU_RASR_TEX_Msk (0x7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: ATTRS.TEX Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_S_Pos 18U /*!< MPU RASR: ATTRS.S Position */
|
|
||||||
#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: ATTRS.S Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_C_Pos 17U /*!< MPU RASR: ATTRS.C Position */
|
|
||||||
#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: ATTRS.C Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_B_Pos 16U /*!< MPU RASR: ATTRS.B Position */
|
|
||||||
#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: ATTRS.B Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_SRD_Pos 8U /*!< MPU RASR: Sub-Region Disable Position */
|
|
||||||
#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_SIZE_Pos 1U /*!< MPU RASR: Region Size Field Position */
|
|
||||||
#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */
|
|
||||||
|
|
||||||
#define MPU_RASR_ENABLE_Pos 0U /*!< MPU RASR: Region enable bit Position */
|
|
||||||
#define MPU_RASR_ENABLE_Msk (1UL /*<< MPU_RASR_ENABLE_Pos*/) /*!< MPU RASR: Region enable bit Disable Mask */
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_MPU */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_CoreDebug Core Debug Registers (CoreDebug)
|
|
||||||
\brief SC000 Core Debug Registers (DCB registers, SHCSR, and DFSR) are only accessible over DAP and not via processor.
|
|
||||||
Therefore they are not covered by the SC000 header file.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
/*@} end of group CMSIS_CoreDebug */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_core_bitfield Core register bit field macros
|
|
||||||
\brief Macros for use with bit field definitions (xxx_Pos, xxx_Msk).
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Mask and shift a bit field value for use in a register bit range.
|
|
||||||
\param[in] field Name of the register bit field.
|
|
||||||
\param[in] value Value of the bit field.
|
|
||||||
\return Masked and shifted value.
|
|
||||||
*/
|
|
||||||
#define _VAL2FLD(field, value) ((value << field ## _Pos) & field ## _Msk)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Mask and shift a register value to extract a bit filed value.
|
|
||||||
\param[in] field Name of the register bit field.
|
|
||||||
\param[in] value Value of register.
|
|
||||||
\return Masked and shifted bit field value.
|
|
||||||
*/
|
|
||||||
#define _FLD2VAL(field, value) ((value & field ## _Msk) >> field ## _Pos)
|
|
||||||
|
|
||||||
/*@} end of group CMSIS_core_bitfield */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_core_register
|
|
||||||
\defgroup CMSIS_core_base Core Definitions
|
|
||||||
\brief Definitions for base addresses, unions, and structures.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Memory mapping of SC000 Hardware */
|
|
||||||
#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */
|
|
||||||
#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */
|
|
||||||
#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */
|
|
||||||
#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */
|
|
||||||
|
|
||||||
#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*!< System control Register not in SCB */
|
|
||||||
#define SCB ((SCB_Type *) SCB_BASE ) /*!< SCB configuration struct */
|
|
||||||
#define SysTick ((SysTick_Type *) SysTick_BASE ) /*!< SysTick configuration struct */
|
|
||||||
#define NVIC ((NVIC_Type *) NVIC_BASE ) /*!< NVIC configuration struct */
|
|
||||||
|
|
||||||
#if (__MPU_PRESENT == 1U)
|
|
||||||
#define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */
|
|
||||||
#define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*@} */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Hardware Abstraction Layer
|
|
||||||
Core Function Interface contains:
|
|
||||||
- Core NVIC Functions
|
|
||||||
- Core SysTick Functions
|
|
||||||
- Core Register Access Functions
|
|
||||||
******************************************************************************/
|
|
||||||
/**
|
|
||||||
\defgroup CMSIS_Core_FunctionInterface Functions and Instructions Reference
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ########################## NVIC functions #################################### */
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_Core_FunctionInterface
|
|
||||||
\defgroup CMSIS_Core_NVICFunctions NVIC Functions
|
|
||||||
\brief Functions that manage interrupts and exceptions via the NVIC.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Interrupt Priorities are WORD accessible only under ARMv6M */
|
|
||||||
/* The following MACROS handle generation of the register offset and byte masks */
|
|
||||||
#define _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL)
|
|
||||||
#define _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) )
|
|
||||||
#define _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) )
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Enable External Interrupt
|
|
||||||
\details Enables a device-specific interrupt in the NVIC interrupt controller.
|
|
||||||
\param [in] IRQn External interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Disable External Interrupt
|
|
||||||
\details Disables a device-specific interrupt in the NVIC interrupt controller.
|
|
||||||
\param [in] IRQn External interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ICER[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Pending Interrupt
|
|
||||||
\details Reads the pending register in the NVIC and returns the pending bit for the specified interrupt.
|
|
||||||
\param [in] IRQn Interrupt number.
|
|
||||||
\return 0 Interrupt status is not pending.
|
|
||||||
\return 1 Interrupt status is pending.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
return((uint32_t)(((NVIC->ISPR[0U] & (1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL))) != 0UL) ? 1UL : 0UL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Pending Interrupt
|
|
||||||
\details Sets the pending bit of an external interrupt.
|
|
||||||
\param [in] IRQn Interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ISPR[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Clear Pending Interrupt
|
|
||||||
\details Clears the pending bit of an external interrupt.
|
|
||||||
\param [in] IRQn External interrupt number. Value cannot be negative.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
NVIC->ICPR[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Set Interrupt Priority
|
|
||||||
\details Sets the priority of an interrupt.
|
|
||||||
\note The priority cannot be set for every core interrupt.
|
|
||||||
\param [in] IRQn Interrupt number.
|
|
||||||
\param [in] priority Priority to set.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
|
|
||||||
{
|
|
||||||
if ((int32_t)(IRQn) < 0)
|
|
||||||
{
|
|
||||||
SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
|
|
||||||
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
|
|
||||||
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Get Interrupt Priority
|
|
||||||
\details Reads the priority of an interrupt.
|
|
||||||
The interrupt number can be positive to specify an external (device specific) interrupt,
|
|
||||||
or negative to specify an internal (core) interrupt.
|
|
||||||
\param [in] IRQn Interrupt number.
|
|
||||||
\return Interrupt Priority.
|
|
||||||
Value is aligned automatically to the implemented priority bits of the microcontroller.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
|
|
||||||
{
|
|
||||||
|
|
||||||
if ((int32_t)(IRQn) < 0)
|
|
||||||
{
|
|
||||||
return((uint32_t)(((SCB->SHP[_SHP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS)));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return((uint32_t)(((NVIC->IP[ _IP_IDX(IRQn)] >> _BIT_SHIFT(IRQn) ) & (uint32_t)0xFFUL) >> (8U - __NVIC_PRIO_BITS)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief System Reset
|
|
||||||
\details Initiates a system reset request to reset the MCU.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE void NVIC_SystemReset(void)
|
|
||||||
{
|
|
||||||
__DSB(); /* Ensure all outstanding memory accesses included
|
|
||||||
buffered write are completed before reset */
|
|
||||||
SCB->AIRCR = ((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
|
|
||||||
SCB_AIRCR_SYSRESETREQ_Msk);
|
|
||||||
__DSB(); /* Ensure completion of memory access */
|
|
||||||
|
|
||||||
for (;;) /* wait until reset */
|
|
||||||
{
|
|
||||||
__NOP();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*@} end of CMSIS_Core_NVICFunctions */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ################################## SysTick function ############################################ */
|
|
||||||
/**
|
|
||||||
\ingroup CMSIS_Core_FunctionInterface
|
|
||||||
\defgroup CMSIS_Core_SysTickFunctions SysTick Functions
|
|
||||||
\brief Functions that configure the System.
|
|
||||||
@{
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if (__Vendor_SysTickConfig == 0U)
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief System Tick Configuration
|
|
||||||
\details Initializes the System Timer and its interrupt, and starts the System Tick Timer.
|
|
||||||
Counter is in free running mode to generate periodic interrupts.
|
|
||||||
\param [in] ticks Number of ticks between two interrupts.
|
|
||||||
\return 0 Function succeeded.
|
|
||||||
\return 1 Function failed.
|
|
||||||
\note When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the
|
|
||||||
function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
|
|
||||||
must contain a vendor-specific implementation of this function.
|
|
||||||
*/
|
|
||||||
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
|
|
||||||
{
|
|
||||||
if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
|
|
||||||
{
|
|
||||||
return (1UL); /* Reload value impossible */
|
|
||||||
}
|
|
||||||
|
|
||||||
SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
|
|
||||||
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
|
|
||||||
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
|
|
||||||
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
|
|
||||||
SysTick_CTRL_TICKINT_Msk |
|
|
||||||
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
|
|
||||||
return (0UL); /* Function successful */
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*@} end of CMSIS_Core_SysTickFunctions */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __CORE_SC000_H_DEPENDANT */
|
|
||||||
|
|
||||||
#endif /* __CMSIS_GENERIC */
|
|
File diff suppressed because it is too large
Load Diff
@ -1,410 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2009-2017 ARM Limited. All rights reserved.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the License); you may
|
|
||||||
not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
|
||||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
NOTICE: This file has been modified by Nordic Semiconductor ASA.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
.arch armv7e-m
|
|
||||||
|
|
||||||
#ifdef __STARTUP_CONFIG
|
|
||||||
#include "startup_config.h"
|
|
||||||
#ifndef __STARTUP_CONFIG_STACK_ALIGNEMENT
|
|
||||||
#define __STARTUP_CONFIG_STACK_ALIGNEMENT 3
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
.section .stack
|
|
||||||
#if defined(__STARTUP_CONFIG)
|
|
||||||
.align __STARTUP_CONFIG_STACK_ALIGNEMENT
|
|
||||||
.equ Stack_Size, __STARTUP_CONFIG_STACK_SIZE
|
|
||||||
#elif defined(__STACK_SIZE)
|
|
||||||
.align 3
|
|
||||||
.equ Stack_Size, __STACK_SIZE
|
|
||||||
#else
|
|
||||||
.align 3
|
|
||||||
.equ Stack_Size, 8192
|
|
||||||
#endif
|
|
||||||
.globl __StackTop
|
|
||||||
.globl __StackLimit
|
|
||||||
__StackLimit:
|
|
||||||
.space Stack_Size
|
|
||||||
.size __StackLimit, . - __StackLimit
|
|
||||||
__StackTop:
|
|
||||||
.size __StackTop, . - __StackTop
|
|
||||||
|
|
||||||
.section .heap
|
|
||||||
.align 3
|
|
||||||
#if defined(__STARTUP_CONFIG)
|
|
||||||
.equ Heap_Size, __STARTUP_CONFIG_HEAP_SIZE
|
|
||||||
#elif defined(__HEAP_SIZE)
|
|
||||||
.equ Heap_Size, __HEAP_SIZE
|
|
||||||
#else
|
|
||||||
.equ Heap_Size, 8192
|
|
||||||
#endif
|
|
||||||
.globl __HeapBase
|
|
||||||
.globl __HeapLimit
|
|
||||||
__HeapBase:
|
|
||||||
.if Heap_Size
|
|
||||||
.space Heap_Size
|
|
||||||
.endif
|
|
||||||
.size __HeapBase, . - __HeapBase
|
|
||||||
__HeapLimit:
|
|
||||||
.size __HeapLimit, . - __HeapLimit
|
|
||||||
|
|
||||||
.section .isr_vector
|
|
||||||
.align 2
|
|
||||||
.globl __isr_vector
|
|
||||||
__isr_vector:
|
|
||||||
.long __StackTop /* Top of Stack */
|
|
||||||
.long Reset_Handler
|
|
||||||
.long NMI_Handler
|
|
||||||
.long HardFault_Handler
|
|
||||||
.long MemoryManagement_Handler
|
|
||||||
.long BusFault_Handler
|
|
||||||
.long UsageFault_Handler
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long SVC_Handler
|
|
||||||
.long DebugMon_Handler
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long PendSV_Handler
|
|
||||||
.long SysTick_Handler
|
|
||||||
|
|
||||||
/* External Interrupts */
|
|
||||||
.long POWER_CLOCK_IRQHandler
|
|
||||||
.long RADIO_IRQHandler
|
|
||||||
.long UARTE0_UART0_IRQHandler
|
|
||||||
.long SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
|
|
||||||
.long SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
|
|
||||||
.long NFCT_IRQHandler
|
|
||||||
.long GPIOTE_IRQHandler
|
|
||||||
.long SAADC_IRQHandler
|
|
||||||
.long TIMER0_IRQHandler
|
|
||||||
.long TIMER1_IRQHandler
|
|
||||||
.long TIMER2_IRQHandler
|
|
||||||
.long RTC0_IRQHandler
|
|
||||||
.long TEMP_IRQHandler
|
|
||||||
.long RNG_IRQHandler
|
|
||||||
.long ECB_IRQHandler
|
|
||||||
.long CCM_AAR_IRQHandler
|
|
||||||
.long WDT_IRQHandler
|
|
||||||
.long RTC1_IRQHandler
|
|
||||||
.long QDEC_IRQHandler
|
|
||||||
.long COMP_LPCOMP_IRQHandler
|
|
||||||
.long SWI0_EGU0_IRQHandler
|
|
||||||
.long SWI1_EGU1_IRQHandler
|
|
||||||
.long SWI2_EGU2_IRQHandler
|
|
||||||
.long SWI3_EGU3_IRQHandler
|
|
||||||
.long SWI4_EGU4_IRQHandler
|
|
||||||
.long SWI5_EGU5_IRQHandler
|
|
||||||
.long TIMER3_IRQHandler
|
|
||||||
.long TIMER4_IRQHandler
|
|
||||||
.long PWM0_IRQHandler
|
|
||||||
.long PDM_IRQHandler
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long MWU_IRQHandler
|
|
||||||
.long PWM1_IRQHandler
|
|
||||||
.long PWM2_IRQHandler
|
|
||||||
.long SPIM2_SPIS2_SPI2_IRQHandler
|
|
||||||
.long RTC2_IRQHandler
|
|
||||||
.long I2S_IRQHandler
|
|
||||||
.long FPU_IRQHandler
|
|
||||||
.long USBD_IRQHandler
|
|
||||||
.long UARTE1_IRQHandler
|
|
||||||
.long QSPI_IRQHandler
|
|
||||||
.long CRYPTOCELL_IRQHandler
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long PWM3_IRQHandler
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long SPIM3_IRQHandler
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
.long 0 /*Reserved */
|
|
||||||
|
|
||||||
.size __isr_vector, . - __isr_vector
|
|
||||||
|
|
||||||
/* Reset Handler */
|
|
||||||
|
|
||||||
|
|
||||||
.text
|
|
||||||
.thumb
|
|
||||||
.thumb_func
|
|
||||||
.align 1
|
|
||||||
.globl Reset_Handler
|
|
||||||
.type Reset_Handler, %function
|
|
||||||
Reset_Handler:
|
|
||||||
|
|
||||||
|
|
||||||
/* Loop to copy data from read only memory to RAM.
|
|
||||||
* The ranges of copy from/to are specified by following symbols:
|
|
||||||
* __etext: LMA of start of the section to copy from. Usually end of text
|
|
||||||
* __data_start__: VMA of start of the section to copy to.
|
|
||||||
* __bss_start__: VMA of end of the section to copy to. Normally __data_end__ is used, but by using __bss_start__
|
|
||||||
* the user can add their own initialized data section before BSS section with the INTERT AFTER command.
|
|
||||||
*
|
|
||||||
* All addresses must be aligned to 4 bytes boundary.
|
|
||||||
*/
|
|
||||||
ldr r1, =__etext
|
|
||||||
ldr r2, =__data_start__
|
|
||||||
ldr r3, =__bss_start__
|
|
||||||
|
|
||||||
subs r3, r2
|
|
||||||
ble .L_loop1_done
|
|
||||||
|
|
||||||
.L_loop1:
|
|
||||||
subs r3, #4
|
|
||||||
ldr r0, [r1,r3]
|
|
||||||
str r0, [r2,r3]
|
|
||||||
bgt .L_loop1
|
|
||||||
|
|
||||||
.L_loop1_done:
|
|
||||||
|
|
||||||
/* This part of work usually is done in C library startup code. Otherwise,
|
|
||||||
* define __STARTUP_CLEAR_BSS to enable it in this startup. This section
|
|
||||||
* clears the RAM where BSS data is located.
|
|
||||||
*
|
|
||||||
* The BSS section is specified by following symbols
|
|
||||||
* __bss_start__: start of the BSS section.
|
|
||||||
* __bss_end__: end of the BSS section.
|
|
||||||
*
|
|
||||||
* All addresses must be aligned to 4 bytes boundary.
|
|
||||||
*/
|
|
||||||
#ifdef __STARTUP_CLEAR_BSS
|
|
||||||
ldr r1, =__bss_start__
|
|
||||||
ldr r2, =__bss_end__
|
|
||||||
|
|
||||||
movs r0, 0
|
|
||||||
|
|
||||||
subs r2, r1
|
|
||||||
ble .L_loop3_done
|
|
||||||
|
|
||||||
.L_loop3:
|
|
||||||
subs r2, #4
|
|
||||||
str r0, [r1, r2]
|
|
||||||
bgt .L_loop3
|
|
||||||
|
|
||||||
.L_loop3_done:
|
|
||||||
#endif /* __STARTUP_CLEAR_BSS */
|
|
||||||
|
|
||||||
/* Execute SystemInit function. */
|
|
||||||
bl SystemInit
|
|
||||||
|
|
||||||
/* Call _start function provided by libraries.
|
|
||||||
* If those libraries are not accessible, define __START as your entry point.
|
|
||||||
*/
|
|
||||||
#ifndef __START
|
|
||||||
#define __START _start
|
|
||||||
#endif
|
|
||||||
bl __START
|
|
||||||
|
|
||||||
.pool
|
|
||||||
.size Reset_Handler,.-Reset_Handler
|
|
||||||
|
|
||||||
.section ".text"
|
|
||||||
|
|
||||||
|
|
||||||
/* Dummy Exception Handlers (infinite loops which can be modified) */
|
|
||||||
|
|
||||||
.weak NMI_Handler
|
|
||||||
.type NMI_Handler, %function
|
|
||||||
NMI_Handler:
|
|
||||||
b .
|
|
||||||
.size NMI_Handler, . - NMI_Handler
|
|
||||||
|
|
||||||
|
|
||||||
.weak HardFault_Handler
|
|
||||||
.type HardFault_Handler, %function
|
|
||||||
HardFault_Handler:
|
|
||||||
b .
|
|
||||||
.size HardFault_Handler, . - HardFault_Handler
|
|
||||||
|
|
||||||
|
|
||||||
.weak MemoryManagement_Handler
|
|
||||||
.type MemoryManagement_Handler, %function
|
|
||||||
MemoryManagement_Handler:
|
|
||||||
b .
|
|
||||||
.size MemoryManagement_Handler, . - MemoryManagement_Handler
|
|
||||||
|
|
||||||
|
|
||||||
.weak BusFault_Handler
|
|
||||||
.type BusFault_Handler, %function
|
|
||||||
BusFault_Handler:
|
|
||||||
b .
|
|
||||||
.size BusFault_Handler, . - BusFault_Handler
|
|
||||||
|
|
||||||
|
|
||||||
.weak UsageFault_Handler
|
|
||||||
.type UsageFault_Handler, %function
|
|
||||||
UsageFault_Handler:
|
|
||||||
b .
|
|
||||||
.size UsageFault_Handler, . - UsageFault_Handler
|
|
||||||
|
|
||||||
|
|
||||||
.weak SVC_Handler
|
|
||||||
.type SVC_Handler, %function
|
|
||||||
SVC_Handler:
|
|
||||||
b .
|
|
||||||
.size SVC_Handler, . - SVC_Handler
|
|
||||||
|
|
||||||
|
|
||||||
.weak DebugMon_Handler
|
|
||||||
.type DebugMon_Handler, %function
|
|
||||||
DebugMon_Handler:
|
|
||||||
b .
|
|
||||||
.size DebugMon_Handler, . - DebugMon_Handler
|
|
||||||
|
|
||||||
|
|
||||||
.weak PendSV_Handler
|
|
||||||
.type PendSV_Handler, %function
|
|
||||||
PendSV_Handler:
|
|
||||||
b .
|
|
||||||
.size PendSV_Handler, . - PendSV_Handler
|
|
||||||
|
|
||||||
|
|
||||||
.weak SysTick_Handler
|
|
||||||
.type SysTick_Handler, %function
|
|
||||||
SysTick_Handler:
|
|
||||||
b .
|
|
||||||
.size SysTick_Handler, . - SysTick_Handler
|
|
||||||
|
|
||||||
|
|
||||||
/* IRQ Handlers */
|
|
||||||
|
|
||||||
.globl Default_Handler
|
|
||||||
.type Default_Handler, %function
|
|
||||||
Default_Handler:
|
|
||||||
b .
|
|
||||||
.size Default_Handler, . - Default_Handler
|
|
||||||
|
|
||||||
.macro IRQ handler
|
|
||||||
.weak \handler
|
|
||||||
.set \handler, Default_Handler
|
|
||||||
.endm
|
|
||||||
|
|
||||||
IRQ POWER_CLOCK_IRQHandler
|
|
||||||
IRQ RADIO_IRQHandler
|
|
||||||
IRQ UARTE0_UART0_IRQHandler
|
|
||||||
IRQ SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
|
|
||||||
IRQ SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
|
|
||||||
IRQ NFCT_IRQHandler
|
|
||||||
IRQ GPIOTE_IRQHandler
|
|
||||||
IRQ SAADC_IRQHandler
|
|
||||||
IRQ TIMER0_IRQHandler
|
|
||||||
IRQ TIMER1_IRQHandler
|
|
||||||
IRQ TIMER2_IRQHandler
|
|
||||||
IRQ RTC0_IRQHandler
|
|
||||||
IRQ TEMP_IRQHandler
|
|
||||||
IRQ RNG_IRQHandler
|
|
||||||
IRQ ECB_IRQHandler
|
|
||||||
IRQ CCM_AAR_IRQHandler
|
|
||||||
IRQ WDT_IRQHandler
|
|
||||||
IRQ RTC1_IRQHandler
|
|
||||||
IRQ QDEC_IRQHandler
|
|
||||||
IRQ COMP_LPCOMP_IRQHandler
|
|
||||||
IRQ SWI0_EGU0_IRQHandler
|
|
||||||
IRQ SWI1_EGU1_IRQHandler
|
|
||||||
IRQ SWI2_EGU2_IRQHandler
|
|
||||||
IRQ SWI3_EGU3_IRQHandler
|
|
||||||
IRQ SWI4_EGU4_IRQHandler
|
|
||||||
IRQ SWI5_EGU5_IRQHandler
|
|
||||||
IRQ TIMER3_IRQHandler
|
|
||||||
IRQ TIMER4_IRQHandler
|
|
||||||
IRQ PWM0_IRQHandler
|
|
||||||
IRQ PDM_IRQHandler
|
|
||||||
IRQ MWU_IRQHandler
|
|
||||||
IRQ PWM1_IRQHandler
|
|
||||||
IRQ PWM2_IRQHandler
|
|
||||||
IRQ SPIM2_SPIS2_SPI2_IRQHandler
|
|
||||||
IRQ RTC2_IRQHandler
|
|
||||||
IRQ I2S_IRQHandler
|
|
||||||
IRQ FPU_IRQHandler
|
|
||||||
IRQ USBD_IRQHandler
|
|
||||||
IRQ UARTE1_IRQHandler
|
|
||||||
IRQ QSPI_IRQHandler
|
|
||||||
IRQ CRYPTOCELL_IRQHandler
|
|
||||||
IRQ PWM3_IRQHandler
|
|
||||||
IRQ SPIM3_IRQHandler
|
|
||||||
|
|
||||||
.end
|
|
@ -1,168 +0,0 @@
|
|||||||
/* Linker script for Nordic Semiconductor nRF52 devices
|
|
||||||
*
|
|
||||||
* Version: Sourcery G++ 4.5-1
|
|
||||||
* Support: https://support.codesourcery.com/GNUToolchain/
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007, 2008, 2009, 2010 CodeSourcery, Inc.
|
|
||||||
*
|
|
||||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
|
||||||
* and license this software and its documentation for any purpose, provided
|
|
||||||
* that existing copyright notices are retained in all copies and that this
|
|
||||||
* notice is included verbatim in any distributions. No written agreement,
|
|
||||||
* license, or royalty fee is required for any of the authorized uses.
|
|
||||||
* Modifications to this software may be copyrighted by their authors
|
|
||||||
* and need not follow the licensing terms described here, provided that
|
|
||||||
* the new terms are clearly indicated on the first page of each file where
|
|
||||||
* they apply.
|
|
||||||
*/
|
|
||||||
OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
|
|
||||||
|
|
||||||
/* Linker script to place sections and symbol values. Should be used together
|
|
||||||
* with other linker script that defines memory regions FLASH and RAM.
|
|
||||||
* It references following symbols, which must be defined in code:
|
|
||||||
* Reset_Handler : Entry of reset handler
|
|
||||||
*
|
|
||||||
* It defines following symbols, which code can use without definition:
|
|
||||||
* __exidx_start
|
|
||||||
* __exidx_end
|
|
||||||
* __etext
|
|
||||||
* __data_start__
|
|
||||||
* __preinit_array_start
|
|
||||||
* __preinit_array_end
|
|
||||||
* __init_array_start
|
|
||||||
* __init_array_end
|
|
||||||
* __fini_array_start
|
|
||||||
* __fini_array_end
|
|
||||||
* __data_end__
|
|
||||||
* __bss_start__
|
|
||||||
* __bss_end__
|
|
||||||
* __end__
|
|
||||||
* end
|
|
||||||
* __HeapBase
|
|
||||||
* __HeapLimit
|
|
||||||
* __StackLimit
|
|
||||||
* __StackTop
|
|
||||||
* __stack
|
|
||||||
*/
|
|
||||||
ENTRY(Reset_Handler)
|
|
||||||
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
.text :
|
|
||||||
{
|
|
||||||
KEEP(*(.isr_vector))
|
|
||||||
*(.text*)
|
|
||||||
|
|
||||||
KEEP(*(.init))
|
|
||||||
KEEP(*(.fini))
|
|
||||||
|
|
||||||
/* .ctors */
|
|
||||||
*crtbegin.o(.ctors)
|
|
||||||
*crtbegin?.o(.ctors)
|
|
||||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
|
|
||||||
*(SORT(.ctors.*))
|
|
||||||
*(.ctors)
|
|
||||||
|
|
||||||
/* .dtors */
|
|
||||||
*crtbegin.o(.dtors)
|
|
||||||
*crtbegin?.o(.dtors)
|
|
||||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
|
|
||||||
*(SORT(.dtors.*))
|
|
||||||
*(.dtors)
|
|
||||||
|
|
||||||
*(.rodata*)
|
|
||||||
|
|
||||||
KEEP(*(.eh_frame*))
|
|
||||||
} > FLASH
|
|
||||||
|
|
||||||
.ARM.extab :
|
|
||||||
{
|
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
|
||||||
} > FLASH
|
|
||||||
|
|
||||||
__exidx_start = .;
|
|
||||||
.ARM.exidx :
|
|
||||||
{
|
|
||||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
|
||||||
} > FLASH
|
|
||||||
__exidx_end = .;
|
|
||||||
|
|
||||||
__etext = .;
|
|
||||||
|
|
||||||
.data : AT (__etext)
|
|
||||||
{
|
|
||||||
__data_start__ = .;
|
|
||||||
*(vtable)
|
|
||||||
*(.data*)
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
/* preinit data */
|
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
|
||||||
KEEP(*(.preinit_array))
|
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
/* init data */
|
|
||||||
PROVIDE_HIDDEN (__init_array_start = .);
|
|
||||||
KEEP(*(SORT(.init_array.*)))
|
|
||||||
KEEP(*(.init_array))
|
|
||||||
PROVIDE_HIDDEN (__init_array_end = .);
|
|
||||||
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
/* finit data */
|
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
|
||||||
KEEP(*(SORT(.fini_array.*)))
|
|
||||||
KEEP(*(.fini_array))
|
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
|
||||||
|
|
||||||
KEEP(*(.jcr*))
|
|
||||||
. = ALIGN(4);
|
|
||||||
/* All data end */
|
|
||||||
__data_end__ = .;
|
|
||||||
|
|
||||||
} > RAM
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
__bss_start__ = .;
|
|
||||||
*(.bss*)
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
__bss_end__ = .;
|
|
||||||
} > RAM
|
|
||||||
|
|
||||||
.heap (COPY):
|
|
||||||
{
|
|
||||||
__HeapBase = .;
|
|
||||||
__end__ = .;
|
|
||||||
PROVIDE(end = .);
|
|
||||||
KEEP(*(.heap*))
|
|
||||||
__HeapLimit = .;
|
|
||||||
} > RAM
|
|
||||||
|
|
||||||
/* .stack_dummy section doesn't contains any symbols. It is only
|
|
||||||
* used for linker to calculate size of stack sections, and assign
|
|
||||||
* values to stack symbols later */
|
|
||||||
.stack_dummy (COPY):
|
|
||||||
{
|
|
||||||
KEEP(*(.stack*))
|
|
||||||
} > RAM
|
|
||||||
|
|
||||||
/* Set stack top to end of RAM, and stack limit move down by
|
|
||||||
* size of stack_dummy section */
|
|
||||||
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
|
|
||||||
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
|
|
||||||
PROVIDE(__stack = __StackTop);
|
|
||||||
|
|
||||||
/* Check if data + heap + stack exceeds RAM limit */
|
|
||||||
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
|
|
||||||
|
|
||||||
/* Check if text sections + data exceeds FLASH limit */
|
|
||||||
DataInitFlashUsed = __bss_start__ - __data_start__;
|
|
||||||
CodeFlashUsed = __etext - ORIGIN(FLASH);
|
|
||||||
TotalFlashUsed = CodeFlashUsed + DataInitFlashUsed;
|
|
||||||
ASSERT(TotalFlashUsed <= LENGTH(FLASH), "region FLASH overflowed with .data and user data")
|
|
||||||
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
/* Linker script to configure memory regions. */
|
|
||||||
|
|
||||||
SEARCH_DIR(.)
|
|
||||||
GROUP(-lgcc -lc -lnosys)
|
|
||||||
|
|
||||||
MEMORY
|
|
||||||
{
|
|
||||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x80000
|
|
||||||
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x10000
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
INCLUDE "nrf52_common.ld"
|
|
@ -1,168 +0,0 @@
|
|||||||
/* Linker script for Nordic Semiconductor nRF51 devices
|
|
||||||
*
|
|
||||||
* Version: Sourcery G++ 4.5-1
|
|
||||||
* Support: https://support.codesourcery.com/GNUToolchain/
|
|
||||||
*
|
|
||||||
* Copyright (c) 2007, 2008, 2009, 2010 CodeSourcery, Inc.
|
|
||||||
*
|
|
||||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
|
||||||
* and license this software and its documentation for any purpose, provided
|
|
||||||
* that existing copyright notices are retained in all copies and that this
|
|
||||||
* notice is included verbatim in any distributions. No written agreement,
|
|
||||||
* license, or royalty fee is required for any of the authorized uses.
|
|
||||||
* Modifications to this software may be copyrighted by their authors
|
|
||||||
* and need not follow the licensing terms described here, provided that
|
|
||||||
* the new terms are clearly indicated on the first page of each file where
|
|
||||||
* they apply.
|
|
||||||
*/
|
|
||||||
OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
|
|
||||||
|
|
||||||
/* Linker script to place sections and symbol values. Should be used together
|
|
||||||
* with other linker script that defines memory regions FLASH and RAM.
|
|
||||||
* It references following symbols, which must be defined in code:
|
|
||||||
* Reset_Handler : Entry of reset handler
|
|
||||||
*
|
|
||||||
* It defines following symbols, which code can use without definition:
|
|
||||||
* __exidx_start
|
|
||||||
* __exidx_end
|
|
||||||
* __etext
|
|
||||||
* __data_start__
|
|
||||||
* __preinit_array_start
|
|
||||||
* __preinit_array_end
|
|
||||||
* __init_array_start
|
|
||||||
* __init_array_end
|
|
||||||
* __fini_array_start
|
|
||||||
* __fini_array_end
|
|
||||||
* __data_end__
|
|
||||||
* __bss_start__
|
|
||||||
* __bss_end__
|
|
||||||
* __end__
|
|
||||||
* end
|
|
||||||
* __HeapBase
|
|
||||||
* __HeapLimit
|
|
||||||
* __StackLimit
|
|
||||||
* __StackTop
|
|
||||||
* __stack
|
|
||||||
*/
|
|
||||||
ENTRY(Reset_Handler)
|
|
||||||
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
.text :
|
|
||||||
{
|
|
||||||
KEEP(*(.isr_vector))
|
|
||||||
*(.text*)
|
|
||||||
|
|
||||||
KEEP(*(.init))
|
|
||||||
KEEP(*(.fini))
|
|
||||||
|
|
||||||
/* .ctors */
|
|
||||||
*crtbegin.o(.ctors)
|
|
||||||
*crtbegin?.o(.ctors)
|
|
||||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
|
|
||||||
*(SORT(.ctors.*))
|
|
||||||
*(.ctors)
|
|
||||||
|
|
||||||
/* .dtors */
|
|
||||||
*crtbegin.o(.dtors)
|
|
||||||
*crtbegin?.o(.dtors)
|
|
||||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
|
|
||||||
*(SORT(.dtors.*))
|
|
||||||
*(.dtors)
|
|
||||||
|
|
||||||
*(.rodata*)
|
|
||||||
|
|
||||||
KEEP(*(.eh_frame*))
|
|
||||||
} > FLASH
|
|
||||||
|
|
||||||
.ARM.extab :
|
|
||||||
{
|
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
|
||||||
} > FLASH
|
|
||||||
|
|
||||||
__exidx_start = .;
|
|
||||||
.ARM.exidx :
|
|
||||||
{
|
|
||||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
|
||||||
} > FLASH
|
|
||||||
__exidx_end = .;
|
|
||||||
|
|
||||||
__etext = .;
|
|
||||||
|
|
||||||
.data : AT (__etext)
|
|
||||||
{
|
|
||||||
__data_start__ = .;
|
|
||||||
*(vtable)
|
|
||||||
*(.data*)
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
/* preinit data */
|
|
||||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
|
||||||
KEEP(*(.preinit_array))
|
|
||||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
/* init data */
|
|
||||||
PROVIDE_HIDDEN (__init_array_start = .);
|
|
||||||
KEEP(*(SORT(.init_array.*)))
|
|
||||||
KEEP(*(.init_array))
|
|
||||||
PROVIDE_HIDDEN (__init_array_end = .);
|
|
||||||
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
/* finit data */
|
|
||||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
|
||||||
KEEP(*(SORT(.fini_array.*)))
|
|
||||||
KEEP(*(.fini_array))
|
|
||||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
|
||||||
|
|
||||||
KEEP(*(.jcr*))
|
|
||||||
. = ALIGN(4);
|
|
||||||
/* All data end */
|
|
||||||
__data_end__ = .;
|
|
||||||
|
|
||||||
} > RAM
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
__bss_start__ = .;
|
|
||||||
*(.bss*)
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
__bss_end__ = .;
|
|
||||||
} > RAM
|
|
||||||
|
|
||||||
.heap (COPY):
|
|
||||||
{
|
|
||||||
__HeapBase = .;
|
|
||||||
__end__ = .;
|
|
||||||
PROVIDE(end = .);
|
|
||||||
KEEP(*(.heap*))
|
|
||||||
__HeapLimit = .;
|
|
||||||
} > RAM
|
|
||||||
|
|
||||||
/* .stack_dummy section doesn't contains any symbols. It is only
|
|
||||||
* used for linker to calculate size of stack sections, and assign
|
|
||||||
* values to stack symbols later */
|
|
||||||
.stack_dummy (COPY):
|
|
||||||
{
|
|
||||||
KEEP(*(.stack*))
|
|
||||||
} > RAM
|
|
||||||
|
|
||||||
/* Set stack top to end of RAM, and stack limit move down by
|
|
||||||
* size of stack_dummy section */
|
|
||||||
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
|
|
||||||
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
|
|
||||||
PROVIDE(__stack = __StackTop);
|
|
||||||
|
|
||||||
/* Check if data + heap + stack exceeds RAM limit */
|
|
||||||
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
|
|
||||||
|
|
||||||
/* Check if text sections + data exceeds FLASH limit */
|
|
||||||
DataInitFlashUsed = __bss_start__ - __data_start__;
|
|
||||||
CodeFlashUsed = __etext - ORIGIN(FLASH);
|
|
||||||
TotalFlashUsed = CodeFlashUsed + DataInitFlashUsed;
|
|
||||||
ASSERT(TotalFlashUsed <= LENGTH(FLASH), "region FLASH overflowed with .data and user data")
|
|
||||||
|
|
||||||
}
|
|
@ -1,256 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2009-2017 ARM Limited. All rights reserved.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the License); you may
|
|
||||||
not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
|
||||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
NOTICE: This file has been modified by Nordic Semiconductor ASA.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* NOTE: Template files (including this one) are application specific and therefore expected to
|
|
||||||
be copied into the application project folder prior to its use! */
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include "nrf.h"
|
|
||||||
#include "system_nrf52840.h"
|
|
||||||
|
|
||||||
/*lint ++flb "Enter library region" */
|
|
||||||
|
|
||||||
#define __SYSTEM_CLOCK_64M (64000000UL)
|
|
||||||
|
|
||||||
static bool errata_36(void);
|
|
||||||
static bool errata_66(void);
|
|
||||||
static bool errata_98(void);
|
|
||||||
static bool errata_103(void);
|
|
||||||
static bool errata_115(void);
|
|
||||||
static bool errata_120(void);
|
|
||||||
static bool errata_136(void);
|
|
||||||
|
|
||||||
|
|
||||||
#if defined ( __CC_ARM )
|
|
||||||
uint32_t SystemCoreClock __attribute__((used)) = __SYSTEM_CLOCK_64M;
|
|
||||||
#elif defined ( __ICCARM__ )
|
|
||||||
__root uint32_t SystemCoreClock = __SYSTEM_CLOCK_64M;
|
|
||||||
#elif defined ( __GNUC__ )
|
|
||||||
uint32_t SystemCoreClock __attribute__((used)) = __SYSTEM_CLOCK_64M;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void SystemCoreClockUpdate(void)
|
|
||||||
{
|
|
||||||
SystemCoreClock = __SYSTEM_CLOCK_64M;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SystemInit(void)
|
|
||||||
{
|
|
||||||
/* Enable SWO trace functionality. If ENABLE_SWO is not defined, SWO pin will be used as GPIO (see Product
|
|
||||||
Specification to see which one). */
|
|
||||||
#if defined (ENABLE_SWO)
|
|
||||||
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
|
|
||||||
NRF_CLOCK->TRACECONFIG |= CLOCK_TRACECONFIG_TRACEMUX_Serial << CLOCK_TRACECONFIG_TRACEMUX_Pos;
|
|
||||||
NRF_P1->PIN_CNF[0] = (GPIO_PIN_CNF_DRIVE_H0H1 << GPIO_PIN_CNF_DRIVE_Pos) | (GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos) | (GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Enable Trace functionality. If ENABLE_TRACE is not defined, TRACE pins will be used as GPIOs (see Product
|
|
||||||
Specification to see which ones). */
|
|
||||||
#if defined (ENABLE_TRACE)
|
|
||||||
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
|
|
||||||
NRF_CLOCK->TRACECONFIG |= CLOCK_TRACECONFIG_TRACEMUX_Parallel << CLOCK_TRACECONFIG_TRACEMUX_Pos;
|
|
||||||
NRF_P0->PIN_CNF[7] = (GPIO_PIN_CNF_DRIVE_H0H1 << GPIO_PIN_CNF_DRIVE_Pos) | (GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos) | (GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos);
|
|
||||||
NRF_P1->PIN_CNF[0] = (GPIO_PIN_CNF_DRIVE_H0H1 << GPIO_PIN_CNF_DRIVE_Pos) | (GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos) | (GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos);
|
|
||||||
NRF_P0->PIN_CNF[12] = (GPIO_PIN_CNF_DRIVE_H0H1 << GPIO_PIN_CNF_DRIVE_Pos) | (GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos) | (GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos);
|
|
||||||
NRF_P0->PIN_CNF[11] = (GPIO_PIN_CNF_DRIVE_H0H1 << GPIO_PIN_CNF_DRIVE_Pos) | (GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos) | (GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos);
|
|
||||||
NRF_P1->PIN_CNF[9] = (GPIO_PIN_CNF_DRIVE_H0H1 << GPIO_PIN_CNF_DRIVE_Pos) | (GPIO_PIN_CNF_INPUT_Connect << GPIO_PIN_CNF_INPUT_Pos) | (GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Workaround for Errata 36 "CLOCK: Some registers are not reset when expected" found at the Errata document
|
|
||||||
for your device located at https://infocenter.nordicsemi.com/ */
|
|
||||||
if (errata_36()){
|
|
||||||
NRF_CLOCK->EVENTS_DONE = 0;
|
|
||||||
NRF_CLOCK->EVENTS_CTTO = 0;
|
|
||||||
NRF_CLOCK->CTIV = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Workaround for Errata 66 "TEMP: Linearity specification not met with default settings" found at the Errata document
|
|
||||||
for your device located at https://infocenter.nordicsemi.com/ */
|
|
||||||
if (errata_66()){
|
|
||||||
NRF_TEMP->A0 = NRF_FICR->TEMP.A0;
|
|
||||||
NRF_TEMP->A1 = NRF_FICR->TEMP.A1;
|
|
||||||
NRF_TEMP->A2 = NRF_FICR->TEMP.A2;
|
|
||||||
NRF_TEMP->A3 = NRF_FICR->TEMP.A3;
|
|
||||||
NRF_TEMP->A4 = NRF_FICR->TEMP.A4;
|
|
||||||
NRF_TEMP->A5 = NRF_FICR->TEMP.A5;
|
|
||||||
NRF_TEMP->B0 = NRF_FICR->TEMP.B0;
|
|
||||||
NRF_TEMP->B1 = NRF_FICR->TEMP.B1;
|
|
||||||
NRF_TEMP->B2 = NRF_FICR->TEMP.B2;
|
|
||||||
NRF_TEMP->B3 = NRF_FICR->TEMP.B3;
|
|
||||||
NRF_TEMP->B4 = NRF_FICR->TEMP.B4;
|
|
||||||
NRF_TEMP->B5 = NRF_FICR->TEMP.B5;
|
|
||||||
NRF_TEMP->T0 = NRF_FICR->TEMP.T0;
|
|
||||||
NRF_TEMP->T1 = NRF_FICR->TEMP.T1;
|
|
||||||
NRF_TEMP->T2 = NRF_FICR->TEMP.T2;
|
|
||||||
NRF_TEMP->T3 = NRF_FICR->TEMP.T3;
|
|
||||||
NRF_TEMP->T4 = NRF_FICR->TEMP.T4;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Workaround for Errata 98 "NFCT: Not able to communicate with the peer" found at the Errata document
|
|
||||||
for your device located at https://infocenter.nordicsemi.com/ */
|
|
||||||
if (errata_98()){
|
|
||||||
*(volatile uint32_t *)0x4000568Cul = 0x00038148ul;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Workaround for Errata 103 "CCM: Wrong reset value of CCM MAXPACKETSIZE" found at the Errata document
|
|
||||||
for your device located at https://infocenter.nordicsemi.com/ */
|
|
||||||
if (errata_103()){
|
|
||||||
NRF_CCM->MAXPACKETSIZE = 0xFBul;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Workaround for Errata 115 "RAM: RAM content cannot be trusted upon waking up from System ON Idle or System OFF mode" found at the Errata document
|
|
||||||
for your device located at https://infocenter.nordicsemi.com/ */
|
|
||||||
if (errata_115()){
|
|
||||||
*(volatile uint32_t *)0x40000EE4 = (*(volatile uint32_t *)0x40000EE4 & 0xFFFFFFF0) | (*(uint32_t *)0x10000258 & 0x0000000F);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Workaround for Errata 120 "QSPI: Data read or written is corrupted" found at the Errata document
|
|
||||||
for your device located at https://infocenter.nordicsemi.com/ */
|
|
||||||
if (errata_120()){
|
|
||||||
*(volatile uint32_t *)0x40029640ul = 0x200ul;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Workaround for Errata 136 "System: Bits in RESETREAS are set when they should not be" found at the Errata document
|
|
||||||
for your device located at https://infocenter.nordicsemi.com/ */
|
|
||||||
if (errata_136()){
|
|
||||||
if (NRF_POWER->RESETREAS & POWER_RESETREAS_RESETPIN_Msk){
|
|
||||||
NRF_POWER->RESETREAS = ~POWER_RESETREAS_RESETPIN_Msk;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Enable the FPU if the compiler used floating point unit instructions. __FPU_USED is a MACRO defined by the
|
|
||||||
* compiler. Since the FPU consumes energy, remember to disable FPU use in the compiler if floating point unit
|
|
||||||
* operations are not used in your code. */
|
|
||||||
#if (__FPU_USED == 1)
|
|
||||||
SCB->CPACR |= (3UL << 20) | (3UL << 22);
|
|
||||||
__DSB();
|
|
||||||
__ISB();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Configure NFCT pins as GPIOs if NFCT is not to be used in your code. If CONFIG_NFCT_PINS_AS_GPIOS is not defined,
|
|
||||||
two GPIOs (see Product Specification to see which ones) will be reserved for NFC and will not be available as
|
|
||||||
normal GPIOs. */
|
|
||||||
#if defined (CONFIG_NFCT_PINS_AS_GPIOS)
|
|
||||||
if ((NRF_UICR->NFCPINS & UICR_NFCPINS_PROTECT_Msk) == (UICR_NFCPINS_PROTECT_NFC << UICR_NFCPINS_PROTECT_Pos)){
|
|
||||||
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
|
|
||||||
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
|
|
||||||
NRF_UICR->NFCPINS &= ~UICR_NFCPINS_PROTECT_Msk;
|
|
||||||
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
|
|
||||||
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
|
|
||||||
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
|
|
||||||
NVIC_SystemReset();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Configure GPIO pads as pPin Reset pin if Pin Reset capabilities desired. If CONFIG_GPIO_AS_PINRESET is not
|
|
||||||
defined, pin reset will not be available. One GPIO (see Product Specification to see which one) will then be
|
|
||||||
reserved for PinReset and not available as normal GPIO. */
|
|
||||||
#if defined (CONFIG_GPIO_AS_PINRESET)
|
|
||||||
if (((NRF_UICR->PSELRESET[0] & UICR_PSELRESET_CONNECT_Msk) != (UICR_PSELRESET_CONNECT_Connected << UICR_PSELRESET_CONNECT_Pos)) ||
|
|
||||||
((NRF_UICR->PSELRESET[1] & UICR_PSELRESET_CONNECT_Msk) != (UICR_PSELRESET_CONNECT_Connected << UICR_PSELRESET_CONNECT_Pos))){
|
|
||||||
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
|
|
||||||
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
|
|
||||||
NRF_UICR->PSELRESET[0] = 18;
|
|
||||||
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
|
|
||||||
NRF_UICR->PSELRESET[1] = 18;
|
|
||||||
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
|
|
||||||
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
|
|
||||||
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
|
|
||||||
NVIC_SystemReset();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SystemCoreClockUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static bool errata_36(void)
|
|
||||||
{
|
|
||||||
if ((*(uint32_t *)0x10000130ul == 0x8ul) && (*(uint32_t *)0x10000134ul == 0x0ul)){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static bool errata_66(void)
|
|
||||||
{
|
|
||||||
if ((*(uint32_t *)0x10000130ul == 0x8ul) && (*(uint32_t *)0x10000134ul == 0x0ul)){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static bool errata_98(void)
|
|
||||||
{
|
|
||||||
if ((*(uint32_t *)0x10000130ul == 0x8ul) && (*(uint32_t *)0x10000134ul == 0x0ul)){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static bool errata_103(void)
|
|
||||||
{
|
|
||||||
if ((*(uint32_t *)0x10000130ul == 0x8ul) && (*(uint32_t *)0x10000134ul == 0x0ul)){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static bool errata_115(void)
|
|
||||||
{
|
|
||||||
if ((*(uint32_t *)0x10000130ul == 0x8ul) && (*(uint32_t *)0x10000134ul == 0x0ul)){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static bool errata_120(void)
|
|
||||||
{
|
|
||||||
if ((*(uint32_t *)0x10000130ul == 0x8ul) && (*(uint32_t *)0x10000134ul == 0x0ul)){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static bool errata_136(void)
|
|
||||||
{
|
|
||||||
if ((*(uint32_t *)0x10000130ul == 0x8ul) && (*(uint32_t *)0x10000134ul == 0x0ul)){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*lint --flb "Leave library region" */
|
|
@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
Copyright (c) 2009-2017 ARM Limited. All rights reserved.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the License); you may
|
|
||||||
not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
|
||||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
NOTICE: This file has been modified by Nordic Semiconductor ASA.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef SYSTEM_NRF52840_H
|
|
||||||
#define SYSTEM_NRF52840_H
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
|
|
||||||
extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialize the system
|
|
||||||
*
|
|
||||||
* @param none
|
|
||||||
* @return none
|
|
||||||
*
|
|
||||||
* @brief Setup the microcontroller system.
|
|
||||||
* Initialize the System and update the SystemCoreClock variable.
|
|
||||||
*/
|
|
||||||
extern void SystemInit (void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update SystemCoreClock variable
|
|
||||||
*
|
|
||||||
* @param none
|
|
||||||
* @return none
|
|
||||||
*
|
|
||||||
* @brief Updates the SystemCoreClock with current core Clock
|
|
||||||
* retrieved from cpu registers.
|
|
||||||
*/
|
|
||||||
extern void SystemCoreClockUpdate (void);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* SYSTEM_NRF52840_H */
|
|
Loading…
Reference in New Issue
Block a user