summaryrefslogtreecommitdiff
path: root/examples/device
diff options
context:
space:
mode:
Diffstat (limited to 'examples/device')
-rw-r--r--examples/device/nrf52840/segger/nrf52840.emProject42
-rw-r--r--examples/device/nrf52840/segger/ses_nRF_Startup.s148
-rw-r--r--examples/device/nrf52840/segger/ses_nrf52840_Vectors.s513
-rw-r--r--examples/device/nrf52840/segger/system_nrf52840.c256
4 files changed, 22 insertions, 937 deletions
diff --git a/examples/device/nrf52840/segger/nrf52840.emProject b/examples/device/nrf52840/segger/nrf52840.emProject
index d8761d166..2fc3aa18a 100644
--- a/examples/device/nrf52840/segger/nrf52840.emProject
+++ b/examples/device/nrf52840/segger/nrf52840.emProject
@@ -19,7 +19,7 @@
arm_target_device_name="nRF52840_xxAA"
arm_target_interface_type="SWD"
c_preprocessor_definitions="NRF52840_XXAA;__nRF_FAMILY;ARM_MATH_CM4;FLASH_PLACEMENT=1;BOARD_PCA10056"
- c_user_include_directories="$(ProjectDir)/CMSIS_4/CMSIS/Include;$(ProjectDir)/nRF/CMSIS/Device/Include;$(RepoDir)/hw/cmsis/Include;$(RepoDir)/hw;$(McuDir)/hal;$(RepoDir)/tinyusb;$(McuDir)/sdk;$(McuDir)/sdk/drivers_nrf/hal;$(McuDir)/sdk/drivers_nrf/systick;$(McuDir)/sdk/drivers_nrf/uart;$(McuDir)/sdk/drivers_nrf/usbd;$(McuDir)/sdk/drivers_nrf/common;$(McuDir)/sdk/drivers_nrf/delay;$(McuDir)/sdk/drivers_nrf/power;$(McuDir)/sdk/drivers_nrf/clock;$(McuDir)/sdk/external/fprintf;$(McuDir)/sdk/libraries/util;$(McuDir)/sdk/libraries/strerror;$(McuDir)/sdk/libraries/atomic;$(McuDir)/sdk/libraries/balloc;$(McuDir)/sdk/libraries/experimental_log/src;$(McuDir)/sdk/libraries/experimental_log;$(McuDir)/sdk/libraries/experimental_section_vars;$(McuDir)/sdk/libraries/experimental_memobj;$(McuDir)/sdk/softdevice/s140/headers;$(McuDir)/sdk/softdevice/s140/headers/nrf52;$(McuDir)/sdk/softdevice/common;../src"
+ c_user_include_directories="$(ProjectDir)/nRF/CMSIS/Device/Include;$(RepoDir)/hw/cmsis/Include;$(RepoDir)/hw;$(McuDir)/hal;$(RepoDir)/tinyusb;$(McuDir)/sdk;$(McuDir)/sdk/device;$(McuDir)/sdk/drivers_nrf/hal;$(McuDir)/sdk/drivers_nrf/systick;$(McuDir)/sdk/drivers_nrf/uart;$(McuDir)/sdk/drivers_nrf/usbd;$(McuDir)/sdk/drivers_nrf/common;$(McuDir)/sdk/drivers_nrf/delay;$(McuDir)/sdk/drivers_nrf/power;$(McuDir)/sdk/drivers_nrf/clock;$(McuDir)/sdk/external/fprintf;$(McuDir)/sdk/libraries/util;$(McuDir)/sdk/libraries/strerror;$(McuDir)/sdk/libraries/atomic;$(McuDir)/sdk/libraries/balloc;$(McuDir)/sdk/libraries/experimental_log/src;$(McuDir)/sdk/libraries/experimental_log;$(McuDir)/sdk/libraries/experimental_section_vars;$(McuDir)/sdk/libraries/experimental_memobj;$(McuDir)/sdk/softdevice/s140/headers;$(McuDir)/sdk/softdevice/s140/headers/nrf52;$(McuDir)/sdk/softdevice/common;../src"
debug_register_definition_file="$(ProjectDir)/nrf52840_Registers.xml"
debug_target_connection="J-Link"
gcc_entry_point="Reset_Handler"
@@ -31,15 +31,6 @@
target_reset_script="Reset();"
target_script_file="$(ProjectDir)/nRF_Target.js"
target_trace_initialize_script="EnableTrace("$(TraceInterfaceType)")" />
- <folder Name="CMSIS Files">
- <file file_name="nrf.h" />
- <file file_name="system_nrf52840.c">
- <configuration
- Name="Common"
- default_code_section=".init"
- default_const_section=".init_rodata" />
- </file>
- </folder>
<folder Name="RTT Files">
<file file_name="SEGGER_RTT.c" />
<file file_name="SEGGER_RTT.h" />
@@ -53,10 +44,6 @@
</folder>
<folder Name="System Files">
<file file_name="thumb_crt0.s" />
- <file file_name="ses_nRF_Startup.s" />
- <file file_name="ses_nrf52840_Vectors.s">
- <configuration Name="Common" file_type="Assembly" />
- </file>
</folder>
<folder
Name="tinyusb"
@@ -85,12 +72,27 @@
<file file_name="../../../../hw/mcu/nordic/nrf52/tusb_port/dcd_nrf52.c" />
<file file_name="../../../../hw/mcu/nordic/nrf52/tusb_port/dcd_nrf52.h" />
</folder>
- <folder
- Name="sdk"
- exclude=""
- filter="*.c;*.h"
- path="../../../../hw/mcu/nordic/nrf52/sdk"
- recurse="Yes" />
+ <folder Name="sdk">
+ <file file_name="../../../../hw/mcu/nordic/nrf52/sdk/sdk_config.h" />
+ <folder
+ Name="device"
+ path="../../../../hw/mcu/nordic/nrf52/sdk/device" />
+ <folder
+ Name="documentation"
+ path="../../../../hw/mcu/nordic/nrf52/sdk/documentation" />
+ <folder
+ Name="drivers_nrf"
+ path="../../../../hw/mcu/nordic/nrf52/sdk/drivers_nrf" />
+ <folder
+ Name="libraries"
+ path="../../../../hw/mcu/nordic/nrf52/sdk/libraries" />
+ <folder
+ Name="softdevice"
+ path="../../../../hw/mcu/nordic/nrf52/sdk/softdevice" />
+ <folder
+ Name="toolchain"
+ path="../../../../hw/mcu/nordic/nrf52/sdk/toolchain" />
+ </folder>
</folder>
</folder>
</folder>
diff --git a/examples/device/nrf52840/segger/ses_nRF_Startup.s b/examples/device/nrf52840/segger/ses_nRF_Startup.s
deleted file mode 100644
index a4fa3c255..000000000
--- a/examples/device/nrf52840/segger/ses_nRF_Startup.s
+++ /dev/null
@@ -1,148 +0,0 @@
-/*****************************************************************************
- * SEGGER Microcontroller GmbH & Co. KG *
- * Solutions for real time microcontroller applications *
- *****************************************************************************
- * *
- * (c) 2017 SEGGER Microcontroller GmbH & Co. KG *
- * *
- * Internet: www.segger.com Support: [email protected] *
- * *
- *****************************************************************************/
-
-/*****************************************************************************
- * Preprocessor Definitions *
- * ------------------------ *
- * NO_FPU_ENABLE *
- * *
- * If defined, FPU will not be enabled. *
- * *
- * NO_STACK_INIT *
- * *
- * If defined, the stack pointer will not be initialised. *
- * *
- * NO_SYSTEM_INIT *
- * *
- * If defined, the SystemInit() function will not be called. By default *
- * SystemInit() is called after reset to enable the clocks and memories to *
- * be initialised prior to any C startup initialisation. *
- * *
- * NO_VTOR_CONFIG *
- * *
- * If defined, the vector table offset register will not be configured. *
- * *
- * MEMORY_INIT *
- * *
- * If defined, the MemoryInit() function will be called. By default *
- * MemoryInit() is called after SystemInit() to enable an external memory *
- * controller. *
- * *
- * STACK_INIT_VAL *
- * *
- * If defined, specifies the initial stack pointer value. If undefined, *
- * the stack pointer will be initialised to point to the end of the *
- * RAM segment. *
- * *
- * VECTORS_IN_RAM *
- * *
- * If defined, the exception vectors will be copied from Flash to RAM. *
- * *
- *****************************************************************************/
-
- .syntax unified
-
- .global Reset_Handler
-#ifdef INITIALIZE_USER_SECTIONS
- .global InitializeUserMemorySections
-#endif
- .extern _vectors
-
- .section .init, "ax"
- .thumb_func
-
- .equ VTOR_REG, 0xE000ED08
- .equ FPU_CPACR_REG, 0xE000ED88
-
-#ifndef STACK_INIT_VAL
-#define STACK_INIT_VAL __RAM_segment_end__
-#endif
-
-Reset_Handler:
-#ifndef NO_STACK_INIT
- /* Initialise main stack */
- ldr r0, =STACK_INIT_VAL
- ldr r1, =0x7
- bics r0, r1
- mov sp, r0
-#endif
-
-#ifndef NO_SYSTEM_INIT
- /* Initialise system */
- ldr r0, =SystemInit
- blx r0
-#endif
-
-#ifdef MEMORY_INIT
- ldr r0, =MemoryInit
- blx r0
-#endif
-
-#ifdef VECTORS_IN_RAM
- /* Copy exception vectors into RAM */
- ldr r0, =__vectors_start__
- ldr r1, =__vectors_end__
- ldr r2, =__vectors_ram_start__
-1:
- cmp r0, r1
- beq 2f
- ldr r3, [r0]
- str r3, [r2]
- adds r0, r0, #4
- adds r2, r2, #4
- b 1b
-2:
-#endif
-
-#ifndef NO_VTOR_CONFIG
- /* Configure vector table offset register */
- ldr r0, =VTOR_REG
-#ifdef VECTORS_IN_RAM
- ldr r1, =_vectors_ram
-#else
- ldr r1, =_vectors
-#endif
- str r1, [r0]
-#endif
-
-#if (defined(__ARM_ARCH_FPV4_SP_D16__) || defined(__ARM_ARCH_FPV5_D16__)) && !defined(NO_FPU_ENABLE)
- /* Enable FPU */
- ldr r0, =FPU_CPACR_REG
- ldr r1, [r0]
- orr r1, r1, #(0xF << 20)
- str r1, [r0]
- dsb
- isb
-#endif
-
- /* Jump to program start */
- b _start
-
-#ifdef INITIALIZE_USER_SECTIONS
- .thumb_func
-InitializeUserMemorySections:
- ldr r0, =__start_nrf_sections
- ldr r1, =__start_nrf_sections_run
- ldr r2, =__end_nrf_sections_run
- cmp r0, r1
- beq 2f
- subs r2, r2, r1
- beq 2f
-1:
- ldrb r3, [r0]
- adds r0, r0, #1
- strb r3, [r1]
- adds r1, r1, #1
- subs r2, r2, #1
- bne 1b
-2:
- bx lr
-#endif \ No newline at end of file
diff --git a/examples/device/nrf52840/segger/ses_nrf52840_Vectors.s b/examples/device/nrf52840/segger/ses_nrf52840_Vectors.s
deleted file mode 100644
index 1606c79bc..000000000
--- a/examples/device/nrf52840/segger/ses_nrf52840_Vectors.s
+++ /dev/null
@@ -1,513 +0,0 @@
-/*****************************************************************************
- * SEGGER Microcontroller GmbH & Co. KG *
- * Solutions for real time microcontroller applications *
- *****************************************************************************
- * *
- * (c) 2017 SEGGER Microcontroller GmbH & Co. KG *
- * *
- * Internet: www.segger.com Support: [email protected] *
- * *
- *****************************************************************************/
-
-/*****************************************************************************
- * Preprocessor Definitions *
- * ------------------------ *
- * VECTORS_IN_RAM *
- * *
- * If defined, an area of RAM will large enough to store the vector table *
- * will be reserved. *
- * *
- *****************************************************************************/
-
- .syntax unified
- .code 16
-
- .section .init, "ax"
- .align 0
-
-/*****************************************************************************
- * Default Exception Handlers *
- *****************************************************************************/
-
- .thumb_func
- .weak NMI_Handler
-NMI_Handler:
- b .
-
- .thumb_func
- .weak HardFault_Handler
-HardFault_Handler:
- b .
-
- .thumb_func
- .weak MemoryManagement_Handler
-MemoryManagement_Handler:
- b .
-
- .thumb_func
- .weak BusFault_Handler
-BusFault_Handler:
- b .
-
- .thumb_func
- .weak UsageFault_Handler
-UsageFault_Handler:
- b .
-
- .thumb_func
- .weak SVC_Handler
-SVC_Handler:
- b .
-
- .thumb_func
- .weak DebugMon_Handler
-DebugMon_Handler:
- b .
-
- .thumb_func
- .weak PendSV_Handler
-PendSV_Handler:
- b .
-
- .thumb_func
- .weak SysTick_Handler
-SysTick_Handler:
- b .
-
- .thumb_func
-Dummy_Handler:
- b .
-
-#if defined(__OPTIMIZATION_SMALL)
-
- .weak POWER_CLOCK_IRQHandler
- .thumb_set POWER_CLOCK_IRQHandler,Dummy_Handler
-
- .weak RADIO_IRQHandler
- .thumb_set RADIO_IRQHandler,Dummy_Handler
-
- .weak UARTE0_UART0_IRQHandler
- .thumb_set UARTE0_UART0_IRQHandler,Dummy_Handler
-
- .weak SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
- .thumb_set SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler,Dummy_Handler
-
- .weak SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
- .thumb_set SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler,Dummy_Handler
-
- .weak NFCT_IRQHandler
- .thumb_set NFCT_IRQHandler,Dummy_Handler
-
- .weak GPIOTE_IRQHandler
- .thumb_set GPIOTE_IRQHandler,Dummy_Handler
-
- .weak SAADC_IRQHandler
- .thumb_set SAADC_IRQHandler,Dummy_Handler
-
- .weak TIMER0_IRQHandler
- .thumb_set TIMER0_IRQHandler,Dummy_Handler
-
- .weak TIMER1_IRQHandler
- .thumb_set TIMER1_IRQHandler,Dummy_Handler
-
- .weak TIMER2_IRQHandler
- .thumb_set TIMER2_IRQHandler,Dummy_Handler
-
- .weak RTC0_IRQHandler
- .thumb_set RTC0_IRQHandler,Dummy_Handler
-
- .weak TEMP_IRQHandler
- .thumb_set TEMP_IRQHandler,Dummy_Handler
-
- .weak RNG_IRQHandler
- .thumb_set RNG_IRQHandler,Dummy_Handler
-
- .weak ECB_IRQHandler
- .thumb_set ECB_IRQHandler,Dummy_Handler
-
- .weak CCM_AAR_IRQHandler
- .thumb_set CCM_AAR_IRQHandler,Dummy_Handler
-
- .weak WDT_IRQHandler
- .thumb_set WDT_IRQHandler,Dummy_Handler
-
- .weak RTC1_IRQHandler
- .thumb_set RTC1_IRQHandler,Dummy_Handler
-
- .weak QDEC_IRQHandler
- .thumb_set QDEC_IRQHandler,Dummy_Handler
-
- .weak COMP_LPCOMP_IRQHandler
- .thumb_set COMP_LPCOMP_IRQHandler,Dummy_Handler
-
- .weak SWI0_EGU0_IRQHandler
- .thumb_set SWI0_EGU0_IRQHandler,Dummy_Handler
-
- .weak SWI1_EGU1_IRQHandler
- .thumb_set SWI1_EGU1_IRQHandler,Dummy_Handler
-
- .weak SWI2_EGU2_IRQHandler
- .thumb_set SWI2_EGU2_IRQHandler,Dummy_Handler
-
- .weak SWI3_EGU3_IRQHandler
- .thumb_set SWI3_EGU3_IRQHandler,Dummy_Handler
-
- .weak SWI4_EGU4_IRQHandler
- .thumb_set SWI4_EGU4_IRQHandler,Dummy_Handler
-
- .weak SWI5_EGU5_IRQHandler
- .thumb_set SWI5_EGU5_IRQHandler,Dummy_Handler
-
- .weak TIMER3_IRQHandler
- .thumb_set TIMER3_IRQHandler,Dummy_Handler
-
- .weak TIMER4_IRQHandler
- .thumb_set TIMER4_IRQHandler,Dummy_Handler
-
- .weak PWM0_IRQHandler
- .thumb_set PWM0_IRQHandler,Dummy_Handler
-
- .weak PDM_IRQHandler
- .thumb_set PDM_IRQHandler,Dummy_Handler
-
- .weak MWU_IRQHandler
- .thumb_set MWU_IRQHandler,Dummy_Handler
-
- .weak PWM1_IRQHandler
- .thumb_set PWM1_IRQHandler,Dummy_Handler
-
- .weak PWM2_IRQHandler
- .thumb_set PWM2_IRQHandler,Dummy_Handler
-
- .weak SPIM2_SPIS2_SPI2_IRQHandler
- .thumb_set SPIM2_SPIS2_SPI2_IRQHandler,Dummy_Handler
-
- .weak RTC2_IRQHandler
- .thumb_set RTC2_IRQHandler,Dummy_Handler
-
- .weak I2S_IRQHandler
- .thumb_set I2S_IRQHandler,Dummy_Handler
-
- .weak FPU_IRQHandler
- .thumb_set FPU_IRQHandler,Dummy_Handler
-
- .weak USBD_IRQHandler
- .thumb_set USBD_IRQHandler,Dummy_Handler
-
- .weak UARTE1_IRQHandler
- .thumb_set UARTE1_IRQHandler,Dummy_Handler
-
- .weak QSPI_IRQHandler
- .thumb_set QSPI_IRQHandler,Dummy_Handler
-
- .weak CRYPTOCELL_IRQHandler
- .thumb_set CRYPTOCELL_IRQHandler,Dummy_Handler
-
- .weak SPIM3_IRQHandler
- .thumb_set SPIM3_IRQHandler,Dummy_Handler
-
- .weak PWM3_IRQHandler
- .thumb_set PWM3_IRQHandler,Dummy_Handler
-
-#else
-
- .thumb_func
- .weak POWER_CLOCK_IRQHandler
-POWER_CLOCK_IRQHandler:
- b .
-
- .thumb_func
- .weak RADIO_IRQHandler
-RADIO_IRQHandler:
- b .
-
- .thumb_func
- .weak UARTE0_UART0_IRQHandler
-UARTE0_UART0_IRQHandler:
- b .
-
- .thumb_func
- .weak SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
-SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler:
- b .
-
- .thumb_func
- .weak SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
-SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler:
- b .
-
- .thumb_func
- .weak NFCT_IRQHandler
-NFCT_IRQHandler:
- b .
-
- .thumb_func
- .weak GPIOTE_IRQHandler
-GPIOTE_IRQHandler:
- b .
-
- .thumb_func
- .weak SAADC_IRQHandler
-SAADC_IRQHandler:
- b .
-
- .thumb_func
- .weak TIMER0_IRQHandler
-TIMER0_IRQHandler:
- b .
-
- .thumb_func
- .weak TIMER1_IRQHandler
-TIMER1_IRQHandler:
- b .
-
- .thumb_func
- .weak TIMER2_IRQHandler
-TIMER2_IRQHandler:
- b .
-
- .thumb_func
- .weak RTC0_IRQHandler
-RTC0_IRQHandler:
- b .
-
- .thumb_func
- .weak TEMP_IRQHandler
-TEMP_IRQHandler:
- b .
-
- .thumb_func
- .weak RNG_IRQHandler
-RNG_IRQHandler:
- b .
-
- .thumb_func
- .weak ECB_IRQHandler
-ECB_IRQHandler:
- b .
-
- .thumb_func
- .weak CCM_AAR_IRQHandler
-CCM_AAR_IRQHandler:
- b .
-
- .thumb_func
- .weak WDT_IRQHandler
-WDT_IRQHandler:
- b .
-
- .thumb_func
- .weak RTC1_IRQHandler
-RTC1_IRQHandler:
- b .
-
- .thumb_func
- .weak QDEC_IRQHandler
-QDEC_IRQHandler:
- b .
-
- .thumb_func
- .weak COMP_LPCOMP_IRQHandler
-COMP_LPCOMP_IRQHandler:
- b .
-
- .thumb_func
- .weak SWI0_EGU0_IRQHandler
-SWI0_EGU0_IRQHandler:
- b .
-
- .thumb_func
- .weak SWI1_EGU1_IRQHandler
-SWI1_EGU1_IRQHandler:
- b .
-
- .thumb_func
- .weak SWI2_EGU2_IRQHandler
-SWI2_EGU2_IRQHandler:
- b .
-
- .thumb_func
- .weak SWI3_EGU3_IRQHandler
-SWI3_EGU3_IRQHandler:
- b .
-
- .thumb_func
- .weak SWI4_EGU4_IRQHandler
-SWI4_EGU4_IRQHandler:
- b .
-
- .thumb_func
- .weak SWI5_EGU5_IRQHandler
-SWI5_EGU5_IRQHandler:
- b .
-
- .thumb_func
- .weak TIMER3_IRQHandler
-TIMER3_IRQHandler:
- b .
-
- .thumb_func
- .weak TIMER4_IRQHandler
-TIMER4_IRQHandler:
- b .
-
- .thumb_func
- .weak PWM0_IRQHandler
-PWM0_IRQHandler:
- b .
-
- .thumb_func
- .weak PDM_IRQHandler
-PDM_IRQHandler:
- b .
-
- .thumb_func
- .weak MWU_IRQHandler
-MWU_IRQHandler:
- b .
-
- .thumb_func
- .weak PWM1_IRQHandler
-PWM1_IRQHandler:
- b .
-
- .thumb_func
- .weak PWM2_IRQHandler
-PWM2_IRQHandler:
- b .
-
- .thumb_func
- .weak SPIM2_SPIS2_SPI2_IRQHandler
-SPIM2_SPIS2_SPI2_IRQHandler:
- b .
-
- .thumb_func
- .weak RTC2_IRQHandler
-RTC2_IRQHandler:
- b .
-
- .thumb_func
- .weak I2S_IRQHandler
-I2S_IRQHandler:
- b .
-
- .thumb_func
- .weak FPU_IRQHandler
-FPU_IRQHandler:
- b .
-
- .thumb_func
- .weak USBD_IRQHandler
-USBD_IRQHandler:
- b .
-
- .thumb_func
- .weak UARTE1_IRQHandler
-UARTE1_IRQHandler:
- b .
-
- .thumb_func
- .weak QSPI_IRQHandler
-QSPI_IRQHandler:
- b .
-
- .thumb_func
- .weak CRYPTOCELL_IRQHandler
-CRYPTOCELL_IRQHandler:
- b .
-
- .thumb_func
- .weak SPIM3_IRQHandler
-SPIM3_IRQHandler:
- b .
-
- .thumb_func
- .weak PWM3_IRQHandler
-PWM3_IRQHandler:
- b .
-
-#endif
-
-/*****************************************************************************
- * Vector Table *
- *****************************************************************************/
-
- .section .vectors, "ax"
- .align 0
- .global _vectors
- .extern __stack_end__
- .extern Reset_Handler
-
-_vectors:
- .word __stack_end__
- .word Reset_Handler
- .word NMI_Handler
- .word HardFault_Handler
- .word MemoryManagement_Handler
- .word BusFault_Handler
- .word UsageFault_Handler
- .word 0 /* Reserved */
- .word 0 /* Reserved */
- .word 0 /* Reserved */
- .word 0 /* Reserved */
- .word SVC_Handler
- .word DebugMon_Handler
- .word 0 /* Reserved */
- .word PendSV_Handler
- .word SysTick_Handler
- .word POWER_CLOCK_IRQHandler
- .word RADIO_IRQHandler
- .word UARTE0_UART0_IRQHandler
- .word SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
- .word SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
- .word NFCT_IRQHandler
- .word GPIOTE_IRQHandler
- .word SAADC_IRQHandler
- .word TIMER0_IRQHandler
- .word TIMER1_IRQHandler
- .word TIMER2_IRQHandler
- .word RTC0_IRQHandler
- .word TEMP_IRQHandler
- .word RNG_IRQHandler
- .word ECB_IRQHandler
- .word CCM_AAR_IRQHandler
- .word WDT_IRQHandler
- .word RTC1_IRQHandler
- .word QDEC_IRQHandler
- .word COMP_LPCOMP_IRQHandler
- .word SWI0_EGU0_IRQHandler
- .word SWI1_EGU1_IRQHandler
- .word SWI2_EGU2_IRQHandler
- .word SWI3_EGU3_IRQHandler
- .word SWI4_EGU4_IRQHandler
- .word SWI5_EGU5_IRQHandler
- .word TIMER3_IRQHandler
- .word TIMER4_IRQHandler
- .word PWM0_IRQHandler
- .word PDM_IRQHandler
- .word Dummy_Handler /* Reserved */
- .word Dummy_Handler /* Reserved */
- .word MWU_IRQHandler
- .word PWM1_IRQHandler
- .word PWM2_IRQHandler
- .word SPIM2_SPIS2_SPI2_IRQHandler
- .word RTC2_IRQHandler
- .word I2S_IRQHandler
- .word FPU_IRQHandler
- .word USBD_IRQHandler
- .word UARTE1_IRQHandler
- .word QSPI_IRQHandler
- .word CRYPTOCELL_IRQHandler
- .word SPIM3_IRQHandler
- .word Dummy_Handler /* Reserved */
- .word PWM3_IRQHandler
-_vectors_end:
-
-#ifdef VECTORS_IN_RAM
- .section .vectors_ram, "ax"
- .align 0
- .global _vectors_ram
-
-_vectors_ram:
- .space _vectors_end - _vectors, 0
-#endif
diff --git a/examples/device/nrf52840/segger/system_nrf52840.c b/examples/device/nrf52840/segger/system_nrf52840.c
deleted file mode 100644
index dd821df94..000000000
--- a/examples/device/nrf52840/segger/system_nrf52840.c
+++ /dev/null
@@ -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" */