remove some of sdk files
This commit is contained in:
		@@ -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 */
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user