# SPDX-License-Identifier: Apache-2.0

CONFIG_SOC_SERIES_NRF53X=y
CONFIG_SOC_NRF5340_CPUAPP_QKAA=y
CONFIG_BOARD_NRF5340_CES_APP=y

# Enable MPU
CONFIG_ARM_MPU=y

# Enable hardware stack protection
CONFIG_HW_STACK_PROTECTION=y

# Enable TrustZone-M
CONFIG_ARM_TRUSTZONE_M=y

# enable GPIO
CONFIG_GPIO=y

#Distributed Programmable Peripheral Interconnect aktivieren
#Damit können Peripherie Module ohne CPU Aktion Signale austauschen
CONFIG_NRFX_DPPI=y

#Wir benutzen kein NFC, also können die Pins als normale IO Pins benutzt werden
CONFIG_NFCT_PINS_AS_GPIOS=y

# Der Kernel kommt per Default mit einem minimalen subset der Standaard C Library
# Es kann daher eine newlib benutzt werden, die die komplette Library enthält
# Sie liegt unter C:\ncs\v1.7.1\zephyr\lib\libc\newlib und es gibt auch libc-hooks.c
CONFIG_NEWLIB_LIBC=y

# Das auch C++ benutzt wird, die STD Library mitgelinkt wird und welcher C++ Standard benutzt wird
CONFIG_CPLUSPLUS=y
CONFIG_LIB_CPLUSPLUS=y
CONFIG_STD_CPP17=y

# Kein Logging konfigurieren.
CONFIG_LOG=n
CONFIG_SERIAL=n
CONFIG_CONSOLE=n

# Das __ASSERT() Macro wird nicht benötigt 
CONFIG_ASSERT=n

CONFIG_MAIN_STACK_SIZE=8192
CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048

CONFIG_MAIN_THREAD_PRIORITY=7

# Tasks auf der gleichen Priorität laufen nicht "gleichzeitig" in Zeitscheiben, sondern
# bis sie von einem höheren Task unterbrochen werden oder eine Wartepunkt erreicht haben
CONFIG_TIMESLICING=n

# Wir benutzen/haben keine 32kHz Quarz, sondern benutzen den internen 32kHz Resonator
CONFIG_SOC_ENABLE_LFXO=n
CONFIG_NRFX_CLOCK_LFXO_TWO_STAGE_ENABLED=n
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION=n

#CONFIG_NRFX_GPIOTE=n

#Es werden beide PWM Module (an Port0 und an Port1) benutzt
#Es wird der NRFX Treiber benutzt
CONFIG_NRFX_PWM=y
CONFIG_NRFX_PWM0=y
CONFIG_NRFX_PWM1=y
CONFIG_PWM=y
CONFIG_PWM_NRFX=y

#Im Moment nur den I2C Master Treiber einbinden
CONFIG_I2C=y
CONFIG_I2C_NRFX=y

