This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF9160 and SPI (CS control inhibited (no GPIO device)

I'm struggling with SPI and nRF9160. I've used an old sample (which didn't compile right of the bat):
github.com/.../spi

Seems the CS pin isn't passed on and I'm getting the "spi_nrfx_spim: CS control inhibited (no GPIO device)" error. It fails the check:
if (ctx->config->cs && ctx->config->cs->gpio_dev)
since
ctx->config->cs = 0
ctx->config->cs->gpio_dev = 536877096

If i "fake it" in spi_context.h and hardcode in the cs config:
const struct device *port;
port = device_get_binding(DT_LABEL(DT_NODELABEL(gpio0)));
gpio_pin_configure(port, 13, GPIO_OUTPUT_INACTIVE);

It throws the CS line low (since initial state of GPIO_OUTPUT_INACTIVE is low) and it stays low. If i set it GPIO_OUTPUT_INIT_HIGH, CS stays high. Which is not so strange, since the driver isn't able to hook into the cs pin.

What am I missing?
I read somewhere that SPI only works non-secure, but I see correct data with my Saleae Logic both when building secure and non-secure.


NCS v1.5.0.
West version: v0.10.1

Here is my main.c:

/*
* Copyright (c) 2012-2014 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/

#include <zephyr.h>
#include <sys/printk.h>
#include <drivers/spi.h>


#define DT_DRV_COMPAT bosch_bmi160 //just for experimenting with DT macros

static const struct spi_config spi_cfg = {
	.operation = SPI_WORD_SET(8) | SPI_TRANSFER_MSB |
		     SPI_MODE_CPOL | SPI_MODE_CPHA,
	.frequency = 1000000,
	.slave = 0,
	.cs = NULL,
};

struct device * spi_dev;

static void spi_init(void)
{
	const char* const spiName = "SPI_3";
	spi_dev = device_get_binding(spiName);

	if (spi_dev == NULL) {
		printk("Could not get %s device\n", spiName);
		return;
	}
}

void spi_test_send(void)
{
	int err;
	static int8_t tx_buffer[1];
	static int8_t rx_buffer[1];

	const struct spi_buf tx_buf = {
		.buf = tx_buffer,
		.len = sizeof(tx_buffer)
	};
	const struct spi_buf_set tx = {
		.buffers = &tx_buf,
		.count = 1
	};

	struct spi_buf rx_buf = {
		.buf = rx_buffer,
		.len = sizeof(rx_buffer),
	};
	const struct spi_buf_set rx = {
		.buffers = &rx_buf,
		.count = 1
	};

	err = spi_transceive(spi_dev, &spi_cfg, &tx, &rx);
	if (err) {
		printk("SPI error: %d\n", err);
	} else {
		/* Connect MISO to MOSI for loopback */
		printk("TX sent: %x\n", tx_buffer[0]);
		printk("RX recv: %x\n", rx_buffer[0]);
		tx_buffer[0]++;
	}
}

void main(void)
{
	spi_init();

	while (1) {
        	spi_test_send();
		k_sleep(K_MSEC(1000));
	}
}

nrf9160dk_nrf9160.overlay and nrf9160dk_nrf9160ns.overlay are identical:


&uart3{
	status = "disabled";
};

&spi3{
	compatible = "nordic,nrf-spim";
	status = "okay";
	sck-pin = <10>;
	mosi-pin = <11>;
	miso-pin = <12>;
	cs-gpios =	<&gpio0 13 GPIO_ACTIVE_LOW>,
			<&gpio0 7 GPIO_ACTIVE_LOW>,
			<&gpio0 8 GPIO_ACTIVE_LOW>,
			<&gpio0 9 GPIO_ACTIVE_LOW>;

	accelerometer: bmi160@0 {
		compatible = "bosch,bmi160";
		status = "okay";
		reg = <0>;
	        spi-max-frequency = <1000000>;
		label = "BMI160";
		int-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
	};

	pressure: lps22hb-press@1 {
		compatible = "st,lps22hb-press";
		spi-max-frequency = <1000000>;
		status = "okay";
		reg = <1>;
		label = "LPS22HB";
	};

	flashchip: at25sf321bsshbb@2 {
		compatible = "jedec,spi-nor";
		label = "AT25SF321BSSHBB";
		status = "okay";
		reg = <2>;
		spi-max-frequency = <1000000>;
		size = <0x10000000>;
		has-dpd;
		t-enter-dpd = <1000>;
		t-exit-dpd = <30000>;
		jedec-id = [1F 47 01];
	};


        memorycard: sdhc@3 {
                compatible = "zephyr,mmc-spi-slot";
                reg = <3>;
                status = "okay";
                label = "SDHC0";
                spi-max-frequency = <1000000>;
        };
};

prj.conf:

CONFIG_GPIO=y
CONFIG_SERIAL=y

#Debug Specific
CONFIG_DEBUG=y
CONFIG_LOG=y
CONFIG_LOG_DEFAULT_LEVEL=4
CONFIG_LOG_MAX_LEVEL=4
CONFIG_LOG_BACKEND_UART=y


# SPI
CONFIG_SPI=y
CONFIG_SPI_NRFX=y
CONFIG_SPI_3=y
CONFIG_NRFX_SPIM3=y
CONFIG_MAIN_STACK_SIZE=4096

Parents
  • Hi,

    From your main.c I see that you have .cs = NULL. This will result in ctx->config->cs = 0, as you stated. When using CS control and controlling a CS line via a GPIO line, both gpio_dev and cs should be valid pointers (gpio_dev to an actual GPIO device, and cs is used for the SPI Chip Select control structure). Therefore, you should instead set .cs = &spi_cs, and define spi_cs as:

    struct spi_cs_control spi_cs = {
    	.gpio_pin = CONFIG_SPI_CS_CTRL_GPIO_PIN,
    	.gpio_dt_flags = GPIO_ACTIVE_LOW,
    	.delay = 0,
    };

    CONFIG_SPI_CS_CTRL_GPIO_PIN is a number representing the GPIO PIN that will be used to act as a CS line. You can rename it to something else, but you must remember to define this in your project.

    spi_cfg will then be:

    static const struct spi_config spi_cfg = {
    	.operation = SPI_WORD_SET(8) | SPI_TRANSFER_MSB |
    		     SPI_MODE_CPOL | SPI_MODE_CPHA,
    	.frequency = 1000000,
    	.slave = 0,
    	.cs = &spi_cs,
    };

    Best regards,

    Marte

  • That took care of the cs (now 13), but now ctx->config->cs->gpio_dev: 0, so it still failed. I had to changed it to:

      struct spi_cs_control spi_cs = {
        .gpio_dev = NULL,
        .gpio_pin = 13,
        .gpio_dt_flags = GPIO_ACTIVE_LOW,
        .delay = 0,
      };
    
      static const struct spi_config spi_cfg = {
        .operation = SPI_WORD_SET(8) | SPI_TRANSFER_MSB |
        SPI_MODE_CPOL | SPI_MODE_CPHA,
        .frequency = 1000000,
        .slave = 0,
        .cs = &spi_cs,
      };

    And add this in static void spi_init(void):

    spi_cs.gpio_dev = device_get_binding("GPIO_0");
    

    Seems to work now. 

    We have 3 SPI devices on the bus (one accelerometer which shall be read very often (10-100kHz), and two other sensors with low read (1-5 Hz)). Each sensor will be running in their own thread, and put values in a cue, then a message handler and pick from the cue.

    Is there a more elegant way to handle the SPI initialisation than the one I did above (considering we have 3 devices on the bus)? Maybe one that picks each property from the DT? Or is this fine (set up 3 individual spi instances)?

Reply
  • That took care of the cs (now 13), but now ctx->config->cs->gpio_dev: 0, so it still failed. I had to changed it to:

      struct spi_cs_control spi_cs = {
        .gpio_dev = NULL,
        .gpio_pin = 13,
        .gpio_dt_flags = GPIO_ACTIVE_LOW,
        .delay = 0,
      };
    
      static const struct spi_config spi_cfg = {
        .operation = SPI_WORD_SET(8) | SPI_TRANSFER_MSB |
        SPI_MODE_CPOL | SPI_MODE_CPHA,
        .frequency = 1000000,
        .slave = 0,
        .cs = &spi_cs,
      };

    And add this in static void spi_init(void):

    spi_cs.gpio_dev = device_get_binding("GPIO_0");
    

    Seems to work now. 

    We have 3 SPI devices on the bus (one accelerometer which shall be read very often (10-100kHz), and two other sensors with low read (1-5 Hz)). Each sensor will be running in their own thread, and put values in a cue, then a message handler and pick from the cue.

    Is there a more elegant way to handle the SPI initialisation than the one I did above (considering we have 3 devices on the bus)? Maybe one that picks each property from the DT? Or is this fine (set up 3 individual spi instances)?

Children
  • Hi,

    Good to hear that it seems to work now! I have not seen examples of having three devices on the bus, as most SPI implementations are only using one device, so I cannot say much about more elegant ways to do it. I do not see any reason why it would cause problems as you have it now, so if it is working with the way you have implemented it you should be fine.

    I am still looking into your problem regarding merged.hex, and I still have not found any reasons why you are only getting zephyr.hex when building. Could you check the .config file that is generated when you build your project? It can be found in <build_folder>/zephyr/.config. When using nrf9160dk_nrf9160ns as the build target, the following configurations should be set in .config:

    CONFIG_TRUSTED_EXECUTION_NONSECURE=y
    CONFIG_SPM=y

    If these are set, then you were able to build it as non-secure. If not, there was something wrong with building it as non-secure, and that might be the reason why you only get zephyr.hex.

    Have you tested using both west and SES, or only one of the options?

    Best regards,

    Marte

  • I tried a few samples with

    CONFIG_SPM=y
    CONFIG_TRUSTED_EXECUTION_NONSECURE=y

    both in the top, and in the bottom of the .conf, but get this:

    warning: attempt to assign the value 'y' to the undefined symbol SPM

    error: Aborting due to Kconfig warnings

  • Hi,

    You should not have to set those in prj.conf yourself in order to build non-secure and SPM. SPM should be built automatically when you build for nrf9160dk_nrf9160ns (unless you have set the config option CONFIG_SPM=n in prj.conf, then you will not build SPM), and the configurations I mentioned should then be added to the <build_directory>/zephyr/.config file to reflect that it was built as non-secure and that SPM was built. Could you please check this file that is generated when you build to make sure that it was built as non-secure?

    Marte Myrvold said:
    Have you tested using both west and SES, or only one of the options?

     Could you also answer this? If you are using command line and west, please try with "-p" to get a pristine build This will delete everything in your build directory and build as if it is a new build directory. This will make sure that no old configurations or other things from previous builds affects the build.

    west build -p -b nrf9160dk_nrf9160ns

    If you are using SES to build the project, please make sure to select the board nrf9160dk_nrf9160ns and to select the option "Clean Build Directory" when opening the project.

    Best regards,

    Marte

  • I always use 'west build -p', to make sure i don't forget after changing configs.

    Until now, I haven't used SES. I prefer cli. 

    Here are the two .config files: 

    Secure:

    CONFIG_SPI=y
    # CONFIG_I2C is not set
    # CONFIG_KSCAN is not set
    # CONFIG_WIFI is not set
    # CONFIG_MODEM is not set
    CONFIG_UART_INTERRUPT_DRIVEN=y
    CONFIG_BOARD="xx_nrf9160"
    CONFIG_FLASH_LOAD_SIZE=0
    CONFIG_FLASH_LOAD_OFFSET=0
    CONFIG_SOC="nRF9160_SICA"
    CONFIG_SOC_SERIES="nrf91"
    CONFIG_NUM_IRQS=65
    CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=32768
    # CONFIG_WATCHDOG is not set
    CONFIG_HEAP_MEM_POOL_SIZE=0
    # CONFIG_UART_NS16550 is not set
    CONFIG_GPIO=y
    CONFIG_PM=y
    # CONFIG_PM_DEVICE is not set
    CONFIG_SOC_HAS_TIMING_FUNCTIONS=y
    CONFIG_ARCH_HAS_CUSTOM_BUSY_WAIT=y
    # CONFIG_CORTEX_M_SYSTICK is not set
    CONFIG_CLOCK_CONTROL=y
    CONFIG_NRF_RTC_TIMER=y
    CONFIG_SYS_CLOCK_TICKS_PER_SEC=32768
    CONFIG_BUILD_OUTPUT_HEX=y
    # CONFIG_FPU is not set
    CONFIG_ROM_START_OFFSET=0
    CONFIG_FLASH_SIZE=1024
    CONFIG_FLASH_BASE_ADDRESS=0x0
    # CONFIG_GPIO_MCUX is not set
    # CONFIG_CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS is not set
    # CONFIG_TINYCRYPT is not set
    CONFIG_SERIAL=y
    # CONFIG_UART_PL011 is not set
    
    #
    # Modules
    #
    
    #
    # Available modules.
    #
    
    #
    # hal_nordic (/Users/macbook/zephyrproject/modules/hal/nordic)
    #
    CONFIG_ZEPHYR_HAL_NORDIC_MODULE=y
    CONFIG_HAS_NRFX=y
    
    #
    # nrfx drivers
    #
    CONFIG_NRFX_CLOCK=y
    CONFIG_NRFX_CLOCK_LFXO_TWO_STAGE_ENABLED=y
    CONFIG_NRFX_DPPI=y
    # CONFIG_NRFX_EGU is not set
    # CONFIG_NRFX_EGU0 is not set
    # CONFIG_NRFX_EGU1 is not set
    # CONFIG_NRFX_EGU2 is not set
    # CONFIG_NRFX_EGU3 is not set
    # CONFIG_NRFX_EGU4 is not set
    # CONFIG_NRFX_EGU5 is not set
    CONFIG_NRFX_GPIOTE=y
    # CONFIG_NRFX_I2S is not set
    # CONFIG_NRFX_IPC is not set
    # CONFIG_NRFX_NVMC is not set
    # CONFIG_NRFX_PDM is not set
    # CONFIG_NRFX_POWER is not set
    # CONFIG_NRFX_PWM is not set
    # CONFIG_NRFX_PWM0 is not set
    # CONFIG_NRFX_PWM1 is not set
    # CONFIG_NRFX_PWM2 is not set
    # CONFIG_NRFX_PWM3 is not set
    # CONFIG_NRFX_RTC is not set
    # CONFIG_NRFX_RTC0 is not set
    # CONFIG_NRFX_RTC1 is not set
    # CONFIG_NRFX_SAADC is not set
    CONFIG_NRFX_SPIM=y
    # CONFIG_NRFX_SPIM0 is not set
    # CONFIG_NRFX_SPIM1 is not set
    CONFIG_NRFX_SPIM2=y
    # CONFIG_NRFX_SPIM3 is not set
    # CONFIG_NRFX_SPIS is not set
    # CONFIG_NRFX_SPIS0 is not set
    # CONFIG_NRFX_SPIS1 is not set
    # CONFIG_NRFX_SPIS2 is not set
    # CONFIG_NRFX_SPIS3 is not set
    # CONFIG_NRFX_SYSTICK is not set
    # CONFIG_NRFX_TIMER is not set
    # CONFIG_NRFX_TIMER0 is not set
    # CONFIG_NRFX_TIMER1 is not set
    # CONFIG_NRFX_TIMER2 is not set
    # CONFIG_NRFX_TWIM is not set
    # CONFIG_NRFX_TWIM0 is not set
    # CONFIG_NRFX_TWIM1 is not set
    # CONFIG_NRFX_TWIM2 is not set
    # CONFIG_NRFX_TWIM3 is not set
    # CONFIG_NRFX_TWIS is not set
    # CONFIG_NRFX_TWIS0 is not set
    # CONFIG_NRFX_TWIS1 is not set
    # CONFIG_NRFX_TWIS2 is not set
    # CONFIG_NRFX_TWIS3 is not set
    # CONFIG_NRFX_UARTE is not set
    # CONFIG_NRFX_UARTE0 is not set
    # CONFIG_NRFX_UARTE1 is not set
    # CONFIG_NRFX_UARTE2 is not set
    # CONFIG_NRFX_UARTE3 is not set
    # CONFIG_NRFX_WDT is not set
    # CONFIG_NRFX_WDT0 is not set
    # CONFIG_NRFX_PRS is not set
    # CONFIG_NRFX_PRS_BOX_0 is not set
    # CONFIG_NRFX_PRS_BOX_1 is not set
    # CONFIG_NRFX_PRS_BOX_2 is not set
    # CONFIG_NRFX_PRS_BOX_3 is not set
    # CONFIG_NRFX_PRS_BOX_4 is not set
    # end of nrfx drivers
    # end of hal_nordic (/Users/macbook/zephyrproject/modules/hal/nordic)
    
    #
    # sof (/Users/macbook/zephyrproject/modules/audio/sof)
    #
    # CONFIG_DEBUG is not set
    CONFIG_ZEPHYR_SOF_MODULE=y
    # end of sof (/Users/macbook/zephyrproject/modules/audio/sof)
    
    #
    # trusted-firmware-m (/Users/macbook/zephyrproject/modules/tee/tfm)
    #
    CONFIG_ZEPHYR_TRUSTED_FIRMWARE_M_MODULE=y
    # end of trusted-firmware-m (/Users/macbook/zephyrproject/modules/tee/tfm)
    
    #
    # Optional modules. Make sure they're installed, via the project manifest.
    #
    # CONFIG_CANOPENNODE is not set
    # CONFIG_CIVETWEB is not set
    CONFIG_HAS_CMSIS_CORE=y
    CONFIG_HAS_CMSIS_CORE_M=y
    # CONFIG_LIBMETAL is not set
    # CONFIG_HAS_SEMTECH_LORAMAC is not set
    # CONFIG_HAS_SEMTECH_SOFT_SE is not set
    # CONFIG_HAS_SEMTECH_RADIO_DRIVERS is not set
    # CONFIG_MBEDTLS is not set
    # CONFIG_HAS_MEC_HAL is not set
    # CONFIG_OPENAMP is not set
    # CONFIG_SOF is not set
    # CONFIG_MIPI_SYST_LIB is not set
    # CONFIG_TINYCBOR is not set
    # CONFIG_MCUBOOT_BOOTUTIL_LIB is not set
    
    #
    # Unavailable modules, please install those via the project manifest.
    #
    # end of Modules
    
    CONFIG_BOARD_XX_NRF9160=y
    # CONFIG_BOARD_XX_NRF9160NS is not set
    
    #
    # Board Options
    #
    # end of Board Options
    
    # CONFIG_SOC_SERIES_BEETLE is not set
    # CONFIG_SOC_SERIES_ARM_DESIGNSTART is not set
    # CONFIG_SOC_SERIES_MPS2 is not set
    # CONFIG_SOC_SERIES_MUSCA_B1 is not set
    # CONFIG_SOC_SERIES_MUSCA_S1 is not set
    # CONFIG_SOC_SERIES_SAM3X is not set
    # CONFIG_SOC_SERIES_SAM4E is not set
    # CONFIG_SOC_SERIES_SAM4L is not set
    # CONFIG_SOC_SERIES_SAM4S is not set
    # CONFIG_SOC_SERIES_SAME70 is not set
    # CONFIG_SOC_SERIES_SAMV71 is not set
    # CONFIG_SOC_SERIES_SAMD20 is not set
    # CONFIG_SOC_SERIES_SAMD21 is not set
    # CONFIG_SOC_SERIES_SAMD51 is not set
    # CONFIG_SOC_SERIES_SAME51 is not set
    # CONFIG_SOC_SERIES_SAME53 is not set
    # CONFIG_SOC_SERIES_SAME54 is not set
    # CONFIG_SOC_SERIES_SAMR21 is not set
    # CONFIG_SOC_SERIES_VALKYRIE is not set
    # CONFIG_SOC_SERIES_VIPER is not set
    # CONFIG_SOC_SERIES_PSOC62 is not set
    # CONFIG_SOC_SERIES_PSOC63 is not set
    # CONFIG_SOC_SERIES_XMC_4XXX is not set
    # CONFIG_SOC_SERIES_MEC1501X is not set
    # CONFIG_SOC_SERIES_MEC1701X is not set
    # CONFIG_SOC_SERIES_NRF51X is not set
    # CONFIG_SOC_SERIES_NRF52X is not set
    # CONFIG_SOC_SERIES_NRF53X is not set
    CONFIG_SOC_SERIES_NRF91X=y
    # CONFIG_SOC_SERIES_M48X is not set
    # CONFIG_SOC_SERIES_NPCX7 is not set
    # CONFIG_SOC_SERIES_IMX_6X_M4 is not set
    # CONFIG_SOC_SERIES_IMX7_M4 is not set
    # CONFIG_SOC_SERIES_IMX8MM_M4 is not set
    # CONFIG_SOC_SERIES_IMX_RT is not set
    # CONFIG_SOC_SERIES_IMX_RT6XX is not set
    # CONFIG_SOC_SERIES_KINETIS_K2X is not set
    # CONFIG_SOC_SERIES_KINETIS_K6X is not set
    # CONFIG_SOC_SERIES_KINETIS_K8X is not set
    # CONFIG_SOC_SERIES_KINETIS_KE1XF is not set
    # CONFIG_SOC_SERIES_KINETIS_KL2X is not set
    # CONFIG_SOC_SERIES_KINETIS_KV5X is not set
    # CONFIG_SOC_SERIES_KINETIS_KWX is not set
    # CONFIG_SOC_SERIES_LPC11U6X is not set
    # CONFIG_SOC_SERIES_LPC54XXX is not set
    # CONFIG_SOC_SERIES_LPC55XXX is not set
    # CONFIG_SOC_QEMU_CORTEX_A53 is not set
    # CONFIG_SOC_EOS_S3 is not set
    # CONFIG_SOC_SERIES_EFM32GG11B is not set
    # CONFIG_SOC_SERIES_EFM32HG is not set
    # CONFIG_SOC_SERIES_EFM32JG12B is not set
    # CONFIG_SOC_SERIES_EFM32PG12B is not set
    # CONFIG_SOC_SERIES_EFM32PG1B is not set
    # CONFIG_SOC_SERIES_EFM32WG is not set
    # CONFIG_SOC_SERIES_EFR32BG13P is not set
    # CONFIG_SOC_SERIES_EFR32FG1P is not set
    # CONFIG_SOC_SERIES_EFR32MG12P is not set
    # CONFIG_SOC_SERIES_EFR32MG21 is not set
    # CONFIG_SOC_SERIES_STM32F0X is not set
    # CONFIG_SOC_SERIES_STM32F1X is not set
    # CONFIG_SOC_SERIES_STM32F2X is not set
    # CONFIG_SOC_SERIES_STM32F3X is not set
    # CONFIG_SOC_SERIES_STM32F4X is not set
    # CONFIG_SOC_SERIES_STM32F7X is not set
    # CONFIG_SOC_SERIES_STM32G0X is not set
    # CONFIG_SOC_SERIES_STM32G4X is not set
    # CONFIG_SOC_SERIES_STM32H7X is not set
    # CONFIG_SOC_SERIES_STM32L0X is not set
    # CONFIG_SOC_SERIES_STM32L1X is not set
    # CONFIG_SOC_SERIES_STM32L4X is not set
    # CONFIG_SOC_SERIES_STM32L5X is not set
    # CONFIG_SOC_SERIES_STM32MP1X is not set
    # CONFIG_SOC_SERIES_STM32WBX is not set
    # CONFIG_SOC_SERIES_STM32WLX is not set
    # CONFIG_SOC_TI_LM3S6965 is not set
    # CONFIG_SOC_SERIES_CC13X2_CC26X2 is not set
    # CONFIG_SOC_SERIES_CC32XX is not set
    # CONFIG_SOC_SERIES_MSP432P4XX is not set
    # CONFIG_SOC_XENVM is not set
    # CONFIG_SOC_XILINX_ZYNQMP_RPU is not set
    
    #
    # Hardware Configuration
    #
    CONFIG_CPU_HAS_ARM_MPU=y
    CONFIG_CPU_HAS_NRF_IDAU=y
    CONFIG_NRF_SPU_FLASH_REGION_SIZE=0x8000
    CONFIG_NRF_SPU_RAM_REGION_SIZE=0x2000
    CONFIG_SOC_FAMILY="nordic_nrf"
    CONFIG_SOC_FAMILY_NRF=y
    CONFIG_HAS_HW_NRF_CC310=y
    CONFIG_HAS_HW_NRF_CLOCK=y
    CONFIG_HAS_HW_NRF_DPPIC=y
    CONFIG_HAS_HW_NRF_EGU0=y
    CONFIG_HAS_HW_NRF_EGU1=y
    CONFIG_HAS_HW_NRF_EGU2=y
    CONFIG_HAS_HW_NRF_EGU3=y
    CONFIG_HAS_HW_NRF_EGU4=y
    CONFIG_HAS_HW_NRF_EGU5=y
    CONFIG_HAS_HW_NRF_GPIO0=y
    CONFIG_HAS_HW_NRF_GPIOTE=y
    CONFIG_HAS_HW_NRF_I2S=y
    CONFIG_HAS_HW_NRF_IPC=y
    CONFIG_HAS_HW_NRF_NVMC_PE=y
    CONFIG_HAS_HW_NRF_PDM=y
    CONFIG_HAS_HW_NRF_POWER=y
    CONFIG_HAS_HW_NRF_PWM0=y
    CONFIG_HAS_HW_NRF_PWM1=y
    CONFIG_HAS_HW_NRF_PWM2=y
    CONFIG_HAS_HW_NRF_PWM3=y
    CONFIG_HAS_HW_NRF_RTC0=y
    CONFIG_HAS_HW_NRF_RTC1=y
    CONFIG_HAS_HW_NRF_SAADC=y
    CONFIG_HAS_HW_NRF_SPIM0=y
    CONFIG_HAS_HW_NRF_SPIM1=y
    CONFIG_HAS_HW_NRF_SPIM2=y
    CONFIG_HAS_HW_NRF_SPIM3=y
    CONFIG_HAS_HW_NRF_SPIS0=y
    CONFIG_HAS_HW_NRF_SPIS1=y
    CONFIG_HAS_HW_NRF_SPIS2=y
    CONFIG_HAS_HW_NRF_SPIS3=y
    CONFIG_HAS_HW_NRF_SPU=y
    CONFIG_HAS_HW_NRF_TIMER0=y
    CONFIG_HAS_HW_NRF_TIMER1=y
    CONFIG_HAS_HW_NRF_TIMER2=y
    CONFIG_HAS_HW_NRF_TWIM0=y
    CONFIG_HAS_HW_NRF_TWIM1=y
    CONFIG_HAS_HW_NRF_TWIM2=y
    CONFIG_HAS_HW_NRF_TWIM3=y
    CONFIG_HAS_HW_NRF_TWIS0=y
    CONFIG_HAS_HW_NRF_TWIS1=y
    CONFIG_HAS_HW_NRF_TWIS2=y
    CONFIG_HAS_HW_NRF_TWIS3=y
    CONFIG_HAS_HW_NRF_UARTE0=y
    CONFIG_HAS_HW_NRF_UARTE1=y
    CONFIG_HAS_HW_NRF_UARTE2=y
    CONFIG_HAS_HW_NRF_UARTE3=y
    CONFIG_HAS_HW_NRF_WDT=y
    CONFIG_NRF_HW_RTC1_RESERVED=y
    CONFIG_NRF_ENABLE_ICACHE=y
    CONFIG_SOC_NRF9160=y
    CONFIG_SOC_NRF9160_SICA=y
    # CONFIG_SOC_LOG_LEVEL_OFF is not set
    # CONFIG_SOC_LOG_LEVEL_ERR is not set
    # CONFIG_SOC_LOG_LEVEL_WRN is not set
    CONFIG_SOC_LOG_LEVEL_INF=y
    # CONFIG_SOC_LOG_LEVEL_DBG is not set
    CONFIG_SOC_LOG_LEVEL=3
    # end of Hardware Configuration
    
    CONFIG_SOC_COMPATIBLE_NRF=y
    
    #
    # ARM Options
    #
    CONFIG_ARCH="arm"
    CONFIG_CPU_CORTEX=y
    CONFIG_CPU_CORTEX_M=y
    CONFIG_ISA_THUMB2=y
    CONFIG_ASSEMBLER_ISA_THUMB2=y
    CONFIG_COMPILER_ISA_THUMB2=y
    CONFIG_STACK_ALIGN_DOUBLE_WORD=y
    # CONFIG_RUNTIME_NMI is not set
    CONFIG_PLATFORM_SPECIFIC_INIT=y
    CONFIG_FAULT_DUMP=2
    CONFIG_BUILTIN_STACK_GUARD=y
    CONFIG_ARM_STACK_PROTECTION=y
    CONFIG_CPU_CORTEX_M33=y
    CONFIG_CPU_CORTEX_M_HAS_SYSTICK=y
    CONFIG_CPU_CORTEX_M_HAS_DWT=y
    CONFIG_CPU_CORTEX_M_HAS_BASEPRI=y
    CONFIG_CPU_CORTEX_M_HAS_VTOR=y
    CONFIG_CPU_CORTEX_M_HAS_SPLIM=y
    CONFIG_CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS=y
    CONFIG_CPU_CORTEX_M_HAS_CMSE=y
    CONFIG_ARMV7_M_ARMV8_M_MAINLINE=y
    CONFIG_ARMV8_M_MAINLINE=y
    CONFIG_ARMV8_M_SE=y
    CONFIG_ARMV7_M_ARMV8_M_FP=y
    CONFIG_ARMV8_M_DSP=y
    
    #
    # ARM Cortex-M0/M0+/M1/M3/M4/M7/M23/M33 options
    #
    CONFIG_GEN_ISR_TABLES=y
    # CONFIG_ZERO_LATENCY_IRQS is not set
    # CONFIG_SW_VECTOR_RELAY is not set
    # CONFIG_CORTEX_M_DWT is not set
    CONFIG_TEST_EXTRA_STACKSIZE=0
    # end of ARM Cortex-M0/M0+/M1/M3/M4/M7/M23/M33 options
    
    CONFIG_ARM_MPU=y
    CONFIG_ARM_MPU_REGION_MIN_ALIGN_AND_SIZE=32
    # CONFIG_MPU_STACK_GUARD is not set
    # CONFIG_MPU_ALLOW_FLASH_WRITE is not set
    # CONFIG_CUSTOM_SECTION_ALIGN is not set
    CONFIG_CUSTOM_SECTION_MIN_ALIGN_SIZE=32
    CONFIG_ARM_TRUSTZONE_M=y
    CONFIG_GEN_IRQ_VECTOR_TABLE=y
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_IDLE_STACK_SIZE=320
    CONFIG_ISR_STACK_SIZE=2048
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=1024
    CONFIG_XIP=y
    # end of ARM Options
    
    CONFIG_ARM=y
    CONFIG_ARCH_IS_SET=y
    
    #
    # General Architecture Options
    #
    # CONFIG_ARCH_LOG_LEVEL_OFF is not set
    # CONFIG_ARCH_LOG_LEVEL_ERR is not set
    # CONFIG_ARCH_LOG_LEVEL_WRN is not set
    CONFIG_ARCH_LOG_LEVEL_INF=y
    # CONFIG_ARCH_LOG_LEVEL_DBG is not set
    CONFIG_ARCH_LOG_LEVEL=3
    # CONFIG_MPU_LOG_LEVEL_OFF is not set
    # CONFIG_MPU_LOG_LEVEL_ERR is not set
    # CONFIG_MPU_LOG_LEVEL_WRN is not set
    CONFIG_MPU_LOG_LEVEL_INF=y
    # CONFIG_MPU_LOG_LEVEL_DBG is not set
    CONFIG_MPU_LOG_LEVEL=3
    CONFIG_SRAM_SIZE=64
    CONFIG_SRAM_BASE_ADDRESS=0x20000000
    # CONFIG_TRUSTED_EXECUTION_SECURE is not set
    # CONFIG_TRUSTED_EXECUTION_NONSECURE is not set
    CONFIG_HW_STACK_PROTECTION=y
    # CONFIG_USERSPACE is not set
    CONFIG_PRIVILEGED_STACK_SIZE=1024
    CONFIG_KOBJECT_TEXT_AREA=256
    CONFIG_GEN_PRIV_STACKS=y
    # CONFIG_STACK_GROWS_UP is not set
    
    #
    # Interrupt Configuration
    #
    # CONFIG_DYNAMIC_INTERRUPTS is not set
    CONFIG_GEN_SW_ISR_TABLE=y
    CONFIG_ARCH_SW_ISR_TABLE_ALIGN=0
    CONFIG_GEN_IRQ_START_VECTOR=0
    # CONFIG_EXTRA_EXCEPTION_INFO is not set
    # end of Interrupt Configuration
    
    # CONFIG_INIT_ARCH_HW_AT_BOOT is not set
    # end of General Architecture Options
    
    CONFIG_ARCH_HAS_TIMING_FUNCTIONS=y
    CONFIG_ARCH_HAS_TRUSTED_EXECUTION=y
    CONFIG_ARCH_HAS_STACK_PROTECTION=y
    CONFIG_ARCH_HAS_USERSPACE=y
    CONFIG_ARCH_HAS_EXECUTABLE_PAGE_BIT=y
    CONFIG_ARCH_HAS_RAMFUNC_SUPPORT=y
    CONFIG_ARCH_HAS_NESTED_EXCEPTION_DETECTION=y
    CONFIG_ARCH_SUPPORTS_COREDUMP=y
    CONFIG_ARCH_SUPPORTS_ARCH_HW_INIT=y
    CONFIG_ARCH_HAS_EXTRA_EXCEPTION_INFO=y
    CONFIG_ARCH_HAS_THREAD_LOCAL_STORAGE=y
    CONFIG_ARCH_HAS_THREAD_ABORT=y
    CONFIG_CPU_HAS_TEE=y
    CONFIG_CPU_HAS_FPU=y
    CONFIG_CPU_HAS_MPU=y
    CONFIG_MPU=y
    CONFIG_MPU_REQUIRES_NON_OVERLAPPING_REGIONS=y
    CONFIG_MPU_GAP_FILLING=y
    CONFIG_SRAM_REGION_PERMISSIONS=y
    
    #
    # Floating Point Options
    #
    # end of Floating Point Options
    
    #
    # Cache Options
    #
    # CONFIG_CACHE_MANAGEMENT is not set
    # end of Cache Options
    
    #
    # General Kernel Options
    #
    # CONFIG_KERNEL_LOG_LEVEL_OFF is not set
    # CONFIG_KERNEL_LOG_LEVEL_ERR is not set
    # CONFIG_KERNEL_LOG_LEVEL_WRN is not set
    CONFIG_KERNEL_LOG_LEVEL_INF=y
    # CONFIG_KERNEL_LOG_LEVEL_DBG is not set
    CONFIG_KERNEL_LOG_LEVEL=3
    CONFIG_MULTITHREADING=y
    CONFIG_NUM_COOP_PRIORITIES=16
    CONFIG_NUM_PREEMPT_PRIORITIES=15
    CONFIG_MAIN_THREAD_PRIORITY=0
    CONFIG_COOP_ENABLED=y
    CONFIG_PREEMPT_ENABLED=y
    CONFIG_PRIORITY_CEILING=0
    CONFIG_NUM_METAIRQ_PRIORITIES=0
    # CONFIG_SCHED_DEADLINE is not set
    # CONFIG_SCHED_CPU_MASK is not set
    CONFIG_THREAD_STACK_INFO=y
    # CONFIG_THREAD_CUSTOM_DATA is not set
    CONFIG_ERRNO=y
    CONFIG_SCHED_DUMB=y
    # CONFIG_SCHED_SCALABLE is not set
    # CONFIG_SCHED_MULTIQ is not set
    # CONFIG_WAITQ_SCALABLE is not set
    CONFIG_WAITQ_DUMB=y
    
    #
    # Kernel Debugging and Metrics
    #
    # CONFIG_INIT_STACKS is not set
    CONFIG_BOOT_BANNER=y
    CONFIG_BOOT_DELAY=0
    # CONFIG_THREAD_MONITOR is not set
    # CONFIG_THREAD_NAME is not set
    # CONFIG_THREAD_RUNTIME_STATS is not set
    # end of Kernel Debugging and Metrics
    
    #
    # Work Queue Options
    #
    CONFIG_SYSTEM_WORKQUEUE_PRIORITY=-1
    # end of Work Queue Options
    
    #
    # Atomic Operations
    #
    CONFIG_ATOMIC_OPERATIONS_BUILTIN=y
    # end of Atomic Operations
    
    #
    # Timer API Options
    #
    CONFIG_TIMESLICING=y
    CONFIG_TIMESLICE_SIZE=0
    CONFIG_TIMESLICE_PRIORITY=0
    # CONFIG_POLL is not set
    # end of Timer API Options
    
    #
    # Other Kernel Object Options
    #
    # CONFIG_MEM_SLAB_TRACE_MAX_UTILIZATION is not set
    CONFIG_NUM_MBOX_ASYNC_MSGS=10
    CONFIG_NUM_PIPE_ASYNC_MSGS=10
    CONFIG_KERNEL_MEM_POOL=y
    # end of Other Kernel Object Options
    
    CONFIG_ARCH_HAS_CUSTOM_SWAP_TO_MAIN=y
    CONFIG_SWAP_NONATOMIC=y
    CONFIG_SYS_CLOCK_EXISTS=y
    CONFIG_TIMEOUT_64BIT=y
    
    #
    # Initialization Priorities
    #
    CONFIG_KERNEL_INIT_PRIORITY_OBJECTS=30
    CONFIG_KERNEL_INIT_PRIORITY_DEFAULT=40
    CONFIG_KERNEL_INIT_PRIORITY_DEVICE=50
    CONFIG_APPLICATION_INIT_PRIORITY=90
    # end of Initialization Priorities
    
    #
    # Security Options
    #
    # end of Security Options
    
    #
    # SMP Options
    #
    CONFIG_MP_NUM_CPUS=1
    # end of SMP Options
    
    CONFIG_TICKLESS_IDLE=y
    CONFIG_TICKLESS_IDLE_THRESH=3
    CONFIG_TICKLESS_KERNEL=y
    # end of General Kernel Options
    
    CONFIG_HAS_DTS=y
    CONFIG_HAS_DTS_GPIO=y
    
    #
    # Device Drivers
    #
    # CONFIG_IEEE802154 is not set
    # CONFIG_LORA is not set
    CONFIG_UART_CONSOLE_ON_DEV_NAME="UART_0"
    CONFIG_CONSOLE=y
    CONFIG_CONSOLE_INPUT_MAX_LINE_LEN=128
    CONFIG_CONSOLE_HAS_DRIVER=y
    # CONFIG_CONSOLE_HANDLER is not set
    CONFIG_UART_CONSOLE=y
    CONFIG_UART_CONSOLE_INIT_PRIORITY=60
    # CONFIG_UART_CONSOLE_DEBUG_SERVER_HOOKS is not set
    # CONFIG_UART_CONSOLE_MCUMGR is not set
    # CONFIG_USB_UART_CONSOLE is not set
    # CONFIG_RAM_CONSOLE is not set
    # CONFIG_IPM_CONSOLE_SENDER is not set
    # CONFIG_IPM_CONSOLE_RECEIVER is not set
    # CONFIG_UART_PIPE is not set
    # CONFIG_UART_MCUMGR is not set
    # CONFIG_SEMIHOST_CONSOLE is not set
    # CONFIG_UART_CONSOLE_LOG_LEVEL_OFF is not set
    # CONFIG_UART_CONSOLE_LOG_LEVEL_ERR is not set
    # CONFIG_UART_CONSOLE_LOG_LEVEL_WRN is not set
    CONFIG_UART_CONSOLE_LOG_LEVEL_INF=y
    # CONFIG_UART_CONSOLE_LOG_LEVEL_DBG is not set
    CONFIG_UART_CONSOLE_LOG_LEVEL=3
    # CONFIG_GSM_MUX is not set
    CONFIG_HAS_SEGGER_RTT=y
    # CONFIG_USE_SEGGER_RTT is not set
    # CONFIG_EC_HOST_CMD_PERIPH is not set
    # CONFIG_NET_LOOPBACK is not set
    
    #
    # Capabilities
    #
    CONFIG_SERIAL_HAS_DRIVER=y
    CONFIG_SERIAL_SUPPORT_ASYNC=y
    CONFIG_SERIAL_SUPPORT_INTERRUPT=y
    # CONFIG_UART_ASYNC_API is not set
    # CONFIG_UART_LINE_CTRL is not set
    # CONFIG_UART_DRV_CMD is not set
    
    #
    # Serial Drivers
    #
    CONFIG_UART_NRFX=y
    CONFIG_UART_0_NRF_UARTE=y
    CONFIG_UART_0_ENHANCED_POLL_OUT=y
    CONFIG_UART_0_INTERRUPT_DRIVEN=y
    # CONFIG_UART_0_NRF_PARITY_BIT is not set
    CONFIG_UART_0_NRF_TX_BUFFER_SIZE=32
    CONFIG_NRF_UARTE_PERIPHERAL=y
    # CONFIG_UART_ALTERA_JTAG is not set
    # CONFIG_UART_XLNX_UARTLITE is not set
    
    #
    # Interrupt Controllers
    #
    # CONFIG_SWERV_PIC is not set
    # CONFIG_MULTI_LEVEL_INTERRUPTS is not set
    # end of Interrupt Controllers
    
    #
    # Timer Drivers
    #
    CONFIG_NRF_RTC_TIMER_USER_CHAN_COUNT=0
    # CONFIG_SYSTEM_CLOCK_NO_WAIT is not set
    # CONFIG_SYSTEM_CLOCK_WAIT_FOR_AVAILABILITY is not set
    CONFIG_SYSTEM_CLOCK_WAIT_FOR_STABILITY=y
    # CONFIG_SYSTEM_CLOCK_DISABLE is not set
    # CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME is not set
    # CONFIG_SYSTEM_CLOCK_SLOPPY_IDLE is not set
    CONFIG_SYSTEM_CLOCK_INIT_PRIORITY=0
    CONFIG_TICKLESS_CAPABLE=y
    # end of Timer Drivers
    
    # CONFIG_ENTROPY_GENERATOR is not set
    # CONFIG_PCIE is not set
    # CONFIG_PCIE_ENDPOINT is not set
    # CONFIG_GPIO_LOG_LEVEL_OFF is not set
    # CONFIG_GPIO_LOG_LEVEL_ERR is not set
    # CONFIG_GPIO_LOG_LEVEL_WRN is not set
    CONFIG_GPIO_LOG_LEVEL_INF=y
    # CONFIG_GPIO_LOG_LEVEL_DBG is not set
    CONFIG_GPIO_LOG_LEVEL=3
    # CONFIG_GPIO_DW is not set
    # CONFIG_GPIO_MCP23S17 is not set
    CONFIG_GPIO_NRFX=y
    CONFIG_GPIO_NRF_INIT_PRIORITY=40
    CONFIG_GPIO_NRF_P0=y
    # CONFIG_GPIO_ITE_IT8XXX2 is not set
    # CONFIG_GPIO_INTEL_APL is not set
    # CONFIG_GPIO_XLNX_AXI is not set
    # CONFIG_GPIO_EMUL is not set
    # CONFIG_SHARED_IRQ is not set
    # CONFIG_SPI_ASYNC is not set
    # CONFIG_SPI_SLAVE is not set
    CONFIG_SPI_INIT_PRIORITY=70
    # CONFIG_SPI_LOG_LEVEL_OFF is not set
    # CONFIG_SPI_LOG_LEVEL_ERR is not set
    # CONFIG_SPI_LOG_LEVEL_WRN is not set
    CONFIG_SPI_LOG_LEVEL_INF=y
    # CONFIG_SPI_LOG_LEVEL_DBG is not set
    CONFIG_SPI_LOG_LEVEL=3
    # CONFIG_SPI_0 is not set
    # CONFIG_SPI_1 is not set
    CONFIG_SPI_2=y
    CONFIG_SPI_2_OP_MODES=1
    # CONFIG_SPI_3 is not set
    # CONFIG_SPI_4 is not set
    # CONFIG_SPI_5 is not set
    # CONFIG_SPI_6 is not set
    # CONFIG_SPI_7 is not set
    # CONFIG_SPI_8 is not set
    # CONFIG_SPI_EMUL is not set
    CONFIG_SPI_NRFX=y
    CONFIG_SPI_2_NRF_SPIM=y
    CONFIG_SPI_2_NRF_ORC=0xff
    CONFIG_SPI_NRFX_RAM_BUFFER_SIZE=256
    # CONFIG_SPI_OC_SIMPLE is not set
    # CONFIG_SPI_XLNX_AXI_QUADSPI is not set
    # CONFIG_I2S is not set
    # CONFIG_PWM is not set
    # CONFIG_PINMUX is not set
    # CONFIG_ADC is not set
    # CONFIG_DAC is not set
    # CONFIG_CLOCK_CONTROL_LOG_LEVEL_OFF is not set
    # CONFIG_CLOCK_CONTROL_LOG_LEVEL_ERR is not set
    # CONFIG_CLOCK_CONTROL_LOG_LEVEL_WRN is not set
    CONFIG_CLOCK_CONTROL_LOG_LEVEL_INF=y
    # CONFIG_CLOCK_CONTROL_LOG_LEVEL_DBG is not set
    CONFIG_CLOCK_CONTROL_LOG_LEVEL=3
    CONFIG_CLOCK_CONTROL_NRF=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC is not set
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_250PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_150PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_100PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_75PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_50PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_30PPM is not set
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_20PPM=y
    # CONFIG_PTP_CLOCK is not set
    # CONFIG_IPM is not set
    # CONFIG_FLASH is not set
    CONFIG_SENSOR=y
    # CONFIG_SENSOR_LOG_LEVEL_OFF is not set
    # CONFIG_SENSOR_LOG_LEVEL_ERR is not set
    # CONFIG_SENSOR_LOG_LEVEL_WRN is not set
    CONFIG_SENSOR_LOG_LEVEL_INF=y
    # CONFIG_SENSOR_LOG_LEVEL_DBG is not set
    CONFIG_SENSOR_LOG_LEVEL=3
    CONFIG_SENSOR_INIT_PRIORITY=90
    
    #
    # Device Drivers
    #
    # CONFIG_ADXL362 is not set
    # CONFIG_ADXL372 is not set
    # CONFIG_BME280 is not set
    CONFIG_BMI160=y
    # CONFIG_BMI160_TRIGGER_NONE is not set
    # CONFIG_BMI160_TRIGGER_GLOBAL_THREAD is not set
    CONFIG_BMI160_TRIGGER_OWN_THREAD=y
    CONFIG_BMI160_TRIGGER=y
    CONFIG_BMI160_THREAD_PRIORITY=10
    CONFIG_BMI160_THREAD_STACK_SIZE=1024
    CONFIG_BMI160_ACCEL_PMU_RUNTIME=y
    # CONFIG_BMI160_ACCEL_PMU_SUSPEND is not set
    # CONFIG_BMI160_ACCEL_PMU_NORMAL is not set
    # CONFIG_BMI160_ACCEL_PMU_LOW_POWER is not set
    CONFIG_BMI160_ACCEL_RANGE_RUNTIME=y
    # CONFIG_BMI160_ACCEL_RANGE_2G is not set
    # CONFIG_BMI160_ACCEL_RANGE_4G is not set
    # CONFIG_BMI160_ACCEL_RANGE_8G is not set
    # CONFIG_BMI160_ACCEL_RANGE_16G is not set
    CONFIG_BMI160_ACCEL_ODR_RUNTIME=y
    # CONFIG_BMI160_ACCEL_ODR_25_2 is not set
    # CONFIG_BMI160_ACCEL_ODR_25 is not set
    # CONFIG_BMI160_ACCEL_ODR_50 is not set
    # CONFIG_BMI160_ACCEL_ODR_100 is not set
    # CONFIG_BMI160_ACCEL_ODR_200 is not set
    # CONFIG_BMI160_ACCEL_ODR_400 is not set
    # CONFIG_BMI160_ACCEL_ODR_800 is not set
    # CONFIG_BMI160_ACCEL_ODR_1600 is not set
    CONFIG_BMI160_GYRO_PMU_RUNTIME=y
    # CONFIG_BMI160_GYRO_PMU_SUSPEND is not set
    # CONFIG_BMI160_GYRO_PMU_NORMAL is not set
    # CONFIG_BMI160_GYRO_PMU_FAST_STARTUP is not set
    CONFIG_BMI160_GYRO_RANGE_RUNTIME=y
    # CONFIG_BMI160_GYRO_RANGE_2000DPS is not set
    # CONFIG_BMI160_GYRO_RANGE_1000DPS is not set
    # CONFIG_BMI160_GYRO_RANGE_500DPS is not set
    # CONFIG_BMI160_GYRO_RANGE_250DPS is not set
    # CONFIG_BMI160_GYRO_RANGE_125DPS is not set
    CONFIG_BMI160_GYRO_ODR_RUNTIME=y
    # CONFIG_BMI160_GYRO_ODR_25 is not set
    # CONFIG_BMI160_GYRO_ODR_50 is not set
    # CONFIG_BMI160_GYRO_ODR_100 is not set
    # CONFIG_BMI160_GYRO_ODR_200 is not set
    # CONFIG_BMI160_GYRO_ODR_400 is not set
    # CONFIG_BMI160_GYRO_ODR_800 is not set
    # CONFIG_BMI160_GYRO_ODR_1600 is not set
    # CONFIG_BMI160_GYRO_ODR_3200 is not set
    CONFIG_PRINTK=y
    # CONFIG_DHT is not set
    # CONFIG_ICM42605 is not set
    # CONFIG_IIS2DH is not set
    # CONFIG_IIS2DLPC is not set
    # CONFIG_IIS2ICLX is not set
    # CONFIG_IIS2MDC is not set
    # CONFIG_IIS3DHHC is not set
    # CONFIG_ISM330DHCX is not set
    # CONFIG_LIS2DH is not set
    # CONFIG_LIS2DS12 is not set
    # CONFIG_LIS2DW12 is not set
    # CONFIG_LIS2MDL is not set
    # CONFIG_LPS22HH is not set
    # CONFIG_LSM6DSL is not set
    # CONFIG_LSM6DSO is not set
    # CONFIG_MAX6675 is not set
    # CONFIG_MS5607 is not set
    # CONFIG_PMS7003 is not set
    # CONFIG_SM351LT is not set
    # CONFIG_COUNTER is not set
    # CONFIG_DMA is not set
    # CONFIG_USB is not set
    # CONFIG_CRYPTO is not set
    # CONFIG_DISPLAY is not set
    # CONFIG_LED_STRIP is not set
    # CONFIG_LED is not set
    # CONFIG_CAN is not set
    # CONFIG_AUDIO is not set
    # CONFIG_NEURAL_NET_ACCEL is not set
    # CONFIG_HWINFO is not set
    # CONFIG_ESPI is not set
    # CONFIG_PS2 is not set
    # CONFIG_VIDEO is not set
    # CONFIG_EEPROM is not set
    # CONFIG_PECI is not set
    # CONFIG_PECI_INTERRUPT_DRIVEN is not set
    # CONFIG_REGULATOR is not set
    # CONFIG_MEMC is not set
    # CONFIG_VIRTUALIZATION is not set
    # CONFIG_EDAC is not set
    # end of Device Drivers
    
    #
    # C Library
    #
    CONFIG_MINIMAL_LIBC=y
    # CONFIG_NEWLIB_LIBC is not set
    # CONFIG_EXTERNAL_LIBC is not set
    CONFIG_HAS_NEWLIB_LIBC_NANO=y
    CONFIG_MINIMAL_LIBC_MALLOC=y
    CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=0
    CONFIG_MINIMAL_LIBC_CALLOC=y
    CONFIG_MINIMAL_LIBC_REALLOCARRAY=y
    # CONFIG_MINIMAL_LIBC_LL_PRINTF is not set
    CONFIG_STDOUT_CONSOLE=y
    # end of C Library
    
    #
    # Additional libraries
    #
    # CONFIG_FNMATCH is not set
    # CONFIG_LVGL is not set
    
    #
    # OS Support Library
    #
    # CONFIG_JSON_LIBRARY is not set
    # CONFIG_RING_BUFFER is not set
    # CONFIG_BASE64 is not set
    # CONFIG_SYS_HEAP_VALIDATE is not set
    CONFIG_SYS_HEAP_ALLOC_LOOPS=3
    # CONFIG_PRINTK64 is not set
    # CONFIG_PRINTK_SYNC is not set
    CONFIG_CBPRINTF_COMPLETE=y
    # CONFIG_CBPRINTF_NANO is not set
    CONFIG_CBPRINTF_FULL_INTEGRAL=y
    # CONFIG_CBPRINTF_REDUCED_INTEGRAL is not set
    # CONFIG_CBPRINTF_FP_SUPPORT is not set
    # CONFIG_CBPRINTF_FP_A_SUPPORT is not set
    # CONFIG_CBPRINTF_FP_ALWAYS_A is not set
    CONFIG_CBPRINTF_N_SPECIFIER=y
    # CONFIG_CBPRINTF_LIBC_SUBSTS is not set
    # end of OS Support Library
    
    CONFIG_POSIX_MAX_FDS=4
    # CONFIG_POSIX_API is not set
    # CONFIG_PTHREAD_IPC is not set
    # CONFIG_POSIX_CLOCK is not set
    CONFIG_MAX_TIMER_COUNT=5
    # CONFIG_POSIX_MQUEUE is not set
    # CONFIG_EVENTFD is not set
    # CONFIG_OPENAMP_RSC_TABLE is not set
    # end of Additional libraries
    
    #
    # Sub Systems and OS Services
    #
    # CONFIG_BT is not set
    
    #
    # Controller Area Network (CAN) bus subsystem
    #
    # CONFIG_ISOTP is not set
    # end of Controller Area Network (CAN) bus subsystem
    
    # CONFIG_CONSOLE_SUBSYS is not set
    # CONFIG_CPLUSPLUS is not set
    
    #
    # System Monitoring Options
    #
    # CONFIG_BOOT_TIME_MEASUREMENT is not set
    # CONFIG_THREAD_ANALYZER is not set
    # end of System Monitoring Options
    
    #
    # Debugging Options
    #
    # CONFIG_STACK_USAGE is not set
    # CONFIG_STACK_SENTINEL is not set
    CONFIG_EARLY_CONSOLE=y
    # CONFIG_ASSERT is not set
    # CONFIG_FORCE_NO_ASSERT is not set
    CONFIG_ASSERT_VERBOSE=y
    # CONFIG_ASSERT_NO_FILE_INFO is not set
    # CONFIG_ASSERT_NO_COND_INFO is not set
    # CONFIG_ASSERT_NO_MSG_INFO is not set
    # CONFIG_OBJECT_TRACING is not set
    # CONFIG_OVERRIDE_FRAME_POINTER_DEFAULT is not set
    # CONFIG_DEBUG_INFO is not set
    # CONFIG_OPENOCD_SUPPORT is not set
    # CONFIG_DEBUG_COREDUMP is not set
    # end of Debugging Options
    
    # CONFIG_DISK_ACCESS is not set
    # CONFIG_EMUL is not set
    # CONFIG_CHARACTER_FRAMEBUFFER is not set
    
    #
    # File Systems
    #
    # CONFIG_FILE_SYSTEM is not set
    # CONFIG_NVS is not set
    # end of File Systems
    
    #
    # Inter Processor Communication
    #
    # CONFIG_RPMSG_SERVICE is not set
    # end of Inter Processor Communication
    
    # CONFIG_JWT is not set
    CONFIG_LOG=y
    CONFIG_LOG_MODE_DEFERRED=y
    # CONFIG_LOG_MODE_IMMEDIATE is not set
    # CONFIG_LOG_MODE_MINIMAL is not set
    # CONFIG_LOG_FRONTEND is not set
    
    #
    # Logging levels filtering
    #
    # CONFIG_LOG_RUNTIME_FILTERING is not set
    CONFIG_LOG_DEFAULT_LEVEL=4
    CONFIG_LOG_OVERRIDE_LEVEL=0
    CONFIG_LOG_MAX_LEVEL=4
    # end of Logging levels filtering
    
    #
    # Output Formatting
    #
    
    #
    # Prepend non-hexdump log message with function name
    #
    # CONFIG_LOG_FUNC_NAME_PREFIX_ERR is not set
    # CONFIG_LOG_FUNC_NAME_PREFIX_WRN is not set
    # CONFIG_LOG_FUNC_NAME_PREFIX_INF is not set
    CONFIG_LOG_FUNC_NAME_PREFIX_DBG=y
    # end of Prepend non-hexdump log message with function name
    
    # CONFIG_LOG_MIPI_SYST_ENABLE is not set
    CONFIG_LOG_BACKEND_SHOW_COLOR=y
    CONFIG_LOG_BACKEND_FORMAT_TIMESTAMP=y
    # end of Output Formatting
    
    #
    # Processing
    #
    # CONFIG_LOG_PRINTK is not set
    CONFIG_LOG_MODE_OVERFLOW=y
    # CONFIG_LOG_BLOCK_IN_THREAD is not set
    CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD=10
    CONFIG_LOG_PROCESS_THREAD=y
    CONFIG_LOG_PROCESS_THREAD_SLEEP_MS=1000
    CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=768
    CONFIG_LOG_BUFFER_SIZE=1024
    CONFIG_LOG_DETECT_MISSED_STRDUP=y
    CONFIG_LOG_STRDUP_MAX_STRING=32
    CONFIG_LOG_STRDUP_BUF_COUNT=4
    # CONFIG_LOG_STRDUP_POOL_PROFILING is not set
    # end of Processing
    
    #
    # Backends
    #
    CONFIG_LOG_BACKEND_UART=y
    # end of Backends
    
    #
    # Misc
    #
    CONFIG_LOG_DOMAIN_ID=0
    # end of Misc
    
    #
    # Device Management
    #
    
    #
    # Host command handler subsystem
    #
    # CONFIG_EC_HOST_CMD is not set
    # end of Host command handler subsystem
    
    # CONFIG_MCUMGR is not set
    # CONFIG_HAWKBIT is not set
    # CONFIG_UPDATEHUB is not set
    # CONFIG_OSDP is not set
    # end of Device Management
    
    #
    # Networking
    #
    # CONFIG_NET_BUF is not set
    # CONFIG_NETWORKING is not set
    # end of Networking
    
    #
    # Power Management
    #
    # CONFIG_SYS_POWER_MANAGEMENT is not set
    # CONFIG_PM_DIRECT_FORCE_MODE is not set
    # CONFIG_PM_DEBUG is not set
    CONFIG_PM_POLICY_RESIDENCY=y
    # CONFIG_PM_POLICY_DUMMY is not set
    # CONFIG_PM_POLICY_APP is not set
    CONFIG_PM_POLICY_RESIDENCY_DEFAULT=y
    # CONFIG_PM_LOG_LEVEL_OFF is not set
    # CONFIG_PM_LOG_LEVEL_ERR is not set
    # CONFIG_PM_LOG_LEVEL_WRN is not set
    CONFIG_PM_LOG_LEVEL_INF=y
    # CONFIG_PM_LOG_LEVEL_DBG is not set
    CONFIG_PM_LOG_LEVEL=3
    # CONFIG_DEVICE_POWER_MANAGEMENT is not set
    # end of Power Management
    
    # CONFIG_SHELL is not set
    # CONFIG_STATS is not set
    # CONFIG_IMG_MANAGER is not set
    
    #
    # Random Number Generators
    #
    # CONFIG_TEST_RANDOM_GENERATOR is not set
    # end of Random Number Generators
    
    #
    # Storage
    #
    # CONFIG_STREAM_FLASH is not set
    # end of Storage
    
    # CONFIG_SETTINGS is not set
    
    #
    # Testing
    #
    # CONFIG_ZTEST is not set
    # CONFIG_ZTEST_MOCKING is not set
    # CONFIG_TEST is not set
    # CONFIG_TEST_USERSPACE is not set
    CONFIG_TEST_ARM_CORTEX_M=y
    # end of Testing
    
    # CONFIG_TIMING_FUNCTIONS is not set
    # CONFIG_TRACING is not set
    # end of Sub Systems and OS Services
    
    CONFIG_TOOLCHAIN_GNUARMEMB=y
    
    #
    # Build and Link Features
    #
    
    #
    # Linker Options
    #
    # CONFIG_LINKER_ORPHAN_SECTION_PLACE is not set
    CONFIG_LINKER_ORPHAN_SECTION_WARN=y
    # CONFIG_LINKER_ORPHAN_SECTION_ERROR is not set
    # CONFIG_CODE_DATA_RELOCATION is not set
    CONFIG_HAS_FLASH_LOAD_OFFSET=y
    # CONFIG_USE_DT_CODE_PARTITION is not set
    # CONFIG_HAVE_CUSTOM_LINKER_SCRIPT is not set
    CONFIG_KERNEL_ENTRY="__start"
    CONFIG_LINKER_SORT_BY_ALIGNMENT=y
    # end of Linker Options
    
    #
    # Compiler Options
    #
    # CONFIG_CODING_GUIDELINE_CHECK is not set
    # CONFIG_NATIVE_APPLICATION is not set
    CONFIG_SIZE_OPTIMIZATIONS=y
    # CONFIG_SPEED_OPTIMIZATIONS is not set
    # CONFIG_DEBUG_OPTIMIZATIONS is not set
    # CONFIG_NO_OPTIMIZATIONS is not set
    CONFIG_COMPILER_OPT=""
    # end of Compiler Options
    
    # CONFIG_ASSERT_ON_ERRORS is not set
    # CONFIG_NO_RUNTIME_CHECKS is not set
    CONFIG_RUNTIME_ERROR_CHECKS=y
    
    #
    # Build Options
    #
    CONFIG_KERNEL_BIN_NAME="zephyr"
    CONFIG_OUTPUT_STAT=y
    CONFIG_OUTPUT_DISASSEMBLY=y
    # CONFIG_OUTPUT_DISASSEMBLE_ALL is not set
    CONFIG_OUTPUT_PRINT_MEMORY_USAGE=y
    # CONFIG_CLEANUP_INTERMEDIATE_FILES is not set
    # CONFIG_BUILD_NO_GAP_FILL is not set
    CONFIG_BUILD_OUTPUT_BIN=y
    # CONFIG_BUILD_OUTPUT_EXE is not set
    # CONFIG_BUILD_OUTPUT_S19 is not set
    # CONFIG_BUILD_OUTPUT_STRIPPED is not set
    # CONFIG_APPLICATION_DEFINED_SYSCALL is not set
    # CONFIG_MAKEFILE_EXPORTS is not set
    # CONFIG_DEPRECATED_ZEPHYR_INT_TYPES is not set
    # end of Build Options
    # end of Build and Link Features
    
    #
    # Boot Options
    #
    # CONFIG_IS_BOOTLOADER is not set
    # CONFIG_BOOTLOADER_MCUBOOT is not set
    # CONFIG_REBOOT is not set
    # CONFIG_MISRA_SANE is not set
    # end of Boot Options
    
    #
    # Compatibility
    #
    CONFIG_COMPAT_INCLUDES=y
    # end of Compatibility
    

    Non-secure:

    CONFIG_SPI=y
    # CONFIG_I2C is not set
    # CONFIG_KSCAN is not set
    # CONFIG_WIFI is not set
    # CONFIG_MODEM is not set
    CONFIG_UART_INTERRUPT_DRIVEN=y
    CONFIG_BOARD="xx_nrf9160"
    CONFIG_FLASH_LOAD_SIZE=0x40000
    CONFIG_FLASH_LOAD_OFFSET=0x40000
    CONFIG_SOC="nRF9160_SICA"
    CONFIG_SOC_SERIES="nrf91"
    CONFIG_NUM_IRQS=65
    CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=32768
    # CONFIG_WATCHDOG is not set
    CONFIG_HEAP_MEM_POOL_SIZE=0
    # CONFIG_UART_NS16550 is not set
    CONFIG_GPIO=y
    CONFIG_PM=y
    # CONFIG_PM_DEVICE is not set
    CONFIG_SOC_HAS_TIMING_FUNCTIONS=y
    CONFIG_ARCH_HAS_CUSTOM_BUSY_WAIT=y
    # CONFIG_CORTEX_M_SYSTICK is not set
    CONFIG_CLOCK_CONTROL=y
    CONFIG_NRF_RTC_TIMER=y
    CONFIG_SYS_CLOCK_TICKS_PER_SEC=32768
    CONFIG_BUILD_OUTPUT_HEX=y
    # CONFIG_FPU is not set
    CONFIG_ROM_START_OFFSET=0
    CONFIG_FLASH_SIZE=1024
    CONFIG_FLASH_BASE_ADDRESS=0x0
    # CONFIG_GPIO_MCUX is not set
    # CONFIG_CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS is not set
    # CONFIG_TINYCRYPT is not set
    CONFIG_SERIAL=y
    # CONFIG_UART_PL011 is not set
    
    #
    # Modules
    #
    
    #
    # Available modules.
    #
    
    #
    # hal_nordic (/Users/macbook/zephyrproject/modules/hal/nordic)
    #
    CONFIG_ZEPHYR_HAL_NORDIC_MODULE=y
    CONFIG_HAS_NRFX=y
    
    #
    # nrfx drivers
    #
    CONFIG_NRFX_CLOCK=y
    CONFIG_NRFX_CLOCK_LFXO_TWO_STAGE_ENABLED=y
    CONFIG_NRFX_DPPI=y
    # CONFIG_NRFX_EGU is not set
    # CONFIG_NRFX_EGU0 is not set
    # CONFIG_NRFX_EGU1 is not set
    # CONFIG_NRFX_EGU2 is not set
    # CONFIG_NRFX_EGU3 is not set
    # CONFIG_NRFX_EGU4 is not set
    # CONFIG_NRFX_EGU5 is not set
    CONFIG_NRFX_GPIOTE=y
    # CONFIG_NRFX_I2S is not set
    # CONFIG_NRFX_IPC is not set
    # CONFIG_NRFX_NVMC is not set
    # CONFIG_NRFX_PDM is not set
    # CONFIG_NRFX_POWER is not set
    # CONFIG_NRFX_PWM is not set
    # CONFIG_NRFX_PWM0 is not set
    # CONFIG_NRFX_PWM1 is not set
    # CONFIG_NRFX_PWM2 is not set
    # CONFIG_NRFX_PWM3 is not set
    # CONFIG_NRFX_RTC is not set
    # CONFIG_NRFX_RTC0 is not set
    # CONFIG_NRFX_RTC1 is not set
    # CONFIG_NRFX_SAADC is not set
    CONFIG_NRFX_SPIM=y
    # CONFIG_NRFX_SPIM0 is not set
    # CONFIG_NRFX_SPIM1 is not set
    CONFIG_NRFX_SPIM2=y
    # CONFIG_NRFX_SPIM3 is not set
    # CONFIG_NRFX_SPIS is not set
    # CONFIG_NRFX_SPIS0 is not set
    # CONFIG_NRFX_SPIS1 is not set
    # CONFIG_NRFX_SPIS2 is not set
    # CONFIG_NRFX_SPIS3 is not set
    # CONFIG_NRFX_SYSTICK is not set
    # CONFIG_NRFX_TIMER is not set
    # CONFIG_NRFX_TIMER0 is not set
    # CONFIG_NRFX_TIMER1 is not set
    # CONFIG_NRFX_TIMER2 is not set
    # CONFIG_NRFX_TWIM is not set
    # CONFIG_NRFX_TWIM0 is not set
    # CONFIG_NRFX_TWIM1 is not set
    # CONFIG_NRFX_TWIM2 is not set
    # CONFIG_NRFX_TWIM3 is not set
    # CONFIG_NRFX_TWIS is not set
    # CONFIG_NRFX_TWIS0 is not set
    # CONFIG_NRFX_TWIS1 is not set
    # CONFIG_NRFX_TWIS2 is not set
    # CONFIG_NRFX_TWIS3 is not set
    # CONFIG_NRFX_UARTE is not set
    # CONFIG_NRFX_UARTE0 is not set
    # CONFIG_NRFX_UARTE1 is not set
    # CONFIG_NRFX_UARTE2 is not set
    # CONFIG_NRFX_UARTE3 is not set
    # CONFIG_NRFX_WDT is not set
    # CONFIG_NRFX_WDT0 is not set
    # CONFIG_NRFX_PRS is not set
    # CONFIG_NRFX_PRS_BOX_0 is not set
    # CONFIG_NRFX_PRS_BOX_1 is not set
    # CONFIG_NRFX_PRS_BOX_2 is not set
    # CONFIG_NRFX_PRS_BOX_3 is not set
    # CONFIG_NRFX_PRS_BOX_4 is not set
    # end of nrfx drivers
    # end of hal_nordic (/Users/macbook/zephyrproject/modules/hal/nordic)
    
    #
    # sof (/Users/macbook/zephyrproject/modules/audio/sof)
    #
    # CONFIG_DEBUG is not set
    CONFIG_ZEPHYR_SOF_MODULE=y
    # end of sof (/Users/macbook/zephyrproject/modules/audio/sof)
    
    #
    # trusted-firmware-m (/Users/macbook/zephyrproject/modules/tee/tfm)
    #
    CONFIG_ZEPHYR_TRUSTED_FIRMWARE_M_MODULE=y
    # end of trusted-firmware-m (/Users/macbook/zephyrproject/modules/tee/tfm)
    
    #
    # Optional modules. Make sure they're installed, via the project manifest.
    #
    # CONFIG_CANOPENNODE is not set
    # CONFIG_CIVETWEB is not set
    CONFIG_HAS_CMSIS_CORE=y
    CONFIG_HAS_CMSIS_CORE_M=y
    # CONFIG_LIBMETAL is not set
    # CONFIG_HAS_SEMTECH_LORAMAC is not set
    # CONFIG_HAS_SEMTECH_SOFT_SE is not set
    # CONFIG_HAS_SEMTECH_RADIO_DRIVERS is not set
    # CONFIG_MBEDTLS is not set
    # CONFIG_HAS_MEC_HAL is not set
    # CONFIG_OPENAMP is not set
    # CONFIG_SOF is not set
    # CONFIG_MIPI_SYST_LIB is not set
    # CONFIG_TINYCBOR is not set
    # CONFIG_MCUBOOT_BOOTUTIL_LIB is not set
    
    #
    # Unavailable modules, please install those via the project manifest.
    #
    # end of Modules
    
    # CONFIG_BOARD_XX_NRF9160 is not set
    CONFIG_BOARD_XX_NRF9160NS=y
    
    #
    # Board Options
    #
    # end of Board Options
    
    # CONFIG_SOC_SERIES_BEETLE is not set
    # CONFIG_SOC_SERIES_ARM_DESIGNSTART is not set
    # CONFIG_SOC_SERIES_MPS2 is not set
    # CONFIG_SOC_SERIES_MUSCA_B1 is not set
    # CONFIG_SOC_SERIES_MUSCA_S1 is not set
    # CONFIG_SOC_SERIES_SAM3X is not set
    # CONFIG_SOC_SERIES_SAM4E is not set
    # CONFIG_SOC_SERIES_SAM4L is not set
    # CONFIG_SOC_SERIES_SAM4S is not set
    # CONFIG_SOC_SERIES_SAME70 is not set
    # CONFIG_SOC_SERIES_SAMV71 is not set
    # CONFIG_SOC_SERIES_SAMD20 is not set
    # CONFIG_SOC_SERIES_SAMD21 is not set
    # CONFIG_SOC_SERIES_SAMD51 is not set
    # CONFIG_SOC_SERIES_SAME51 is not set
    # CONFIG_SOC_SERIES_SAME53 is not set
    # CONFIG_SOC_SERIES_SAME54 is not set
    # CONFIG_SOC_SERIES_SAMR21 is not set
    # CONFIG_SOC_SERIES_VALKYRIE is not set
    # CONFIG_SOC_SERIES_VIPER is not set
    # CONFIG_SOC_SERIES_PSOC62 is not set
    # CONFIG_SOC_SERIES_PSOC63 is not set
    # CONFIG_SOC_SERIES_XMC_4XXX is not set
    # CONFIG_SOC_SERIES_MEC1501X is not set
    # CONFIG_SOC_SERIES_MEC1701X is not set
    # CONFIG_SOC_SERIES_NRF51X is not set
    # CONFIG_SOC_SERIES_NRF52X is not set
    # CONFIG_SOC_SERIES_NRF53X is not set
    CONFIG_SOC_SERIES_NRF91X=y
    # CONFIG_SOC_SERIES_M48X is not set
    # CONFIG_SOC_SERIES_NPCX7 is not set
    # CONFIG_SOC_SERIES_IMX_6X_M4 is not set
    # CONFIG_SOC_SERIES_IMX7_M4 is not set
    # CONFIG_SOC_SERIES_IMX8MM_M4 is not set
    # CONFIG_SOC_SERIES_IMX_RT is not set
    # CONFIG_SOC_SERIES_IMX_RT6XX is not set
    # CONFIG_SOC_SERIES_KINETIS_K2X is not set
    # CONFIG_SOC_SERIES_KINETIS_K6X is not set
    # CONFIG_SOC_SERIES_KINETIS_K8X is not set
    # CONFIG_SOC_SERIES_KINETIS_KE1XF is not set
    # CONFIG_SOC_SERIES_KINETIS_KL2X is not set
    # CONFIG_SOC_SERIES_KINETIS_KV5X is not set
    # CONFIG_SOC_SERIES_KINETIS_KWX is not set
    # CONFIG_SOC_SERIES_LPC11U6X is not set
    # CONFIG_SOC_SERIES_LPC54XXX is not set
    # CONFIG_SOC_SERIES_LPC55XXX is not set
    # CONFIG_SOC_QEMU_CORTEX_A53 is not set
    # CONFIG_SOC_EOS_S3 is not set
    # CONFIG_SOC_SERIES_EFM32GG11B is not set
    # CONFIG_SOC_SERIES_EFM32HG is not set
    # CONFIG_SOC_SERIES_EFM32JG12B is not set
    # CONFIG_SOC_SERIES_EFM32PG12B is not set
    # CONFIG_SOC_SERIES_EFM32PG1B is not set
    # CONFIG_SOC_SERIES_EFM32WG is not set
    # CONFIG_SOC_SERIES_EFR32BG13P is not set
    # CONFIG_SOC_SERIES_EFR32FG1P is not set
    # CONFIG_SOC_SERIES_EFR32MG12P is not set
    # CONFIG_SOC_SERIES_EFR32MG21 is not set
    # CONFIG_SOC_SERIES_STM32F0X is not set
    # CONFIG_SOC_SERIES_STM32F1X is not set
    # CONFIG_SOC_SERIES_STM32F2X is not set
    # CONFIG_SOC_SERIES_STM32F3X is not set
    # CONFIG_SOC_SERIES_STM32F4X is not set
    # CONFIG_SOC_SERIES_STM32F7X is not set
    # CONFIG_SOC_SERIES_STM32G0X is not set
    # CONFIG_SOC_SERIES_STM32G4X is not set
    # CONFIG_SOC_SERIES_STM32H7X is not set
    # CONFIG_SOC_SERIES_STM32L0X is not set
    # CONFIG_SOC_SERIES_STM32L1X is not set
    # CONFIG_SOC_SERIES_STM32L4X is not set
    # CONFIG_SOC_SERIES_STM32L5X is not set
    # CONFIG_SOC_SERIES_STM32MP1X is not set
    # CONFIG_SOC_SERIES_STM32WBX is not set
    # CONFIG_SOC_SERIES_STM32WLX is not set
    # CONFIG_SOC_TI_LM3S6965 is not set
    # CONFIG_SOC_SERIES_CC13X2_CC26X2 is not set
    # CONFIG_SOC_SERIES_CC32XX is not set
    # CONFIG_SOC_SERIES_MSP432P4XX is not set
    # CONFIG_SOC_XENVM is not set
    # CONFIG_SOC_XILINX_ZYNQMP_RPU is not set
    
    #
    # Hardware Configuration
    #
    CONFIG_CPU_HAS_ARM_MPU=y
    CONFIG_CPU_HAS_NRF_IDAU=y
    CONFIG_NRF_SPU_FLASH_REGION_SIZE=0x8000
    CONFIG_NRF_SPU_RAM_REGION_SIZE=0x2000
    CONFIG_SOC_FAMILY="nordic_nrf"
    CONFIG_SOC_FAMILY_NRF=y
    CONFIG_HAS_HW_NRF_CC310=y
    CONFIG_HAS_HW_NRF_CLOCK=y
    CONFIG_HAS_HW_NRF_DPPIC=y
    CONFIG_HAS_HW_NRF_EGU0=y
    CONFIG_HAS_HW_NRF_EGU1=y
    CONFIG_HAS_HW_NRF_EGU2=y
    CONFIG_HAS_HW_NRF_EGU3=y
    CONFIG_HAS_HW_NRF_EGU4=y
    CONFIG_HAS_HW_NRF_EGU5=y
    CONFIG_HAS_HW_NRF_GPIO0=y
    CONFIG_HAS_HW_NRF_GPIOTE=y
    CONFIG_HAS_HW_NRF_I2S=y
    CONFIG_HAS_HW_NRF_IPC=y
    CONFIG_HAS_HW_NRF_NVMC_PE=y
    CONFIG_HAS_HW_NRF_PDM=y
    CONFIG_HAS_HW_NRF_POWER=y
    CONFIG_HAS_HW_NRF_PWM0=y
    CONFIG_HAS_HW_NRF_PWM1=y
    CONFIG_HAS_HW_NRF_PWM2=y
    CONFIG_HAS_HW_NRF_PWM3=y
    CONFIG_HAS_HW_NRF_RTC0=y
    CONFIG_HAS_HW_NRF_RTC1=y
    CONFIG_HAS_HW_NRF_SAADC=y
    CONFIG_HAS_HW_NRF_SPIM0=y
    CONFIG_HAS_HW_NRF_SPIM1=y
    CONFIG_HAS_HW_NRF_SPIM2=y
    CONFIG_HAS_HW_NRF_SPIM3=y
    CONFIG_HAS_HW_NRF_SPIS0=y
    CONFIG_HAS_HW_NRF_SPIS1=y
    CONFIG_HAS_HW_NRF_SPIS2=y
    CONFIG_HAS_HW_NRF_SPIS3=y
    CONFIG_HAS_HW_NRF_SPU=y
    CONFIG_HAS_HW_NRF_TIMER0=y
    CONFIG_HAS_HW_NRF_TIMER1=y
    CONFIG_HAS_HW_NRF_TIMER2=y
    CONFIG_HAS_HW_NRF_TWIM0=y
    CONFIG_HAS_HW_NRF_TWIM1=y
    CONFIG_HAS_HW_NRF_TWIM2=y
    CONFIG_HAS_HW_NRF_TWIM3=y
    CONFIG_HAS_HW_NRF_TWIS0=y
    CONFIG_HAS_HW_NRF_TWIS1=y
    CONFIG_HAS_HW_NRF_TWIS2=y
    CONFIG_HAS_HW_NRF_TWIS3=y
    CONFIG_HAS_HW_NRF_UARTE0=y
    CONFIG_HAS_HW_NRF_UARTE1=y
    CONFIG_HAS_HW_NRF_UARTE2=y
    CONFIG_HAS_HW_NRF_UARTE3=y
    CONFIG_HAS_HW_NRF_WDT=y
    CONFIG_NRF_HW_RTC1_RESERVED=y
    CONFIG_NRF_ENABLE_ICACHE=y
    CONFIG_SOC_NRF9160=y
    CONFIG_SOC_NRF9160_SICA=y
    # CONFIG_SOC_LOG_LEVEL_OFF is not set
    # CONFIG_SOC_LOG_LEVEL_ERR is not set
    # CONFIG_SOC_LOG_LEVEL_WRN is not set
    CONFIG_SOC_LOG_LEVEL_INF=y
    # CONFIG_SOC_LOG_LEVEL_DBG is not set
    CONFIG_SOC_LOG_LEVEL=3
    # end of Hardware Configuration
    
    CONFIG_SOC_COMPATIBLE_NRF=y
    
    #
    # ARM Options
    #
    CONFIG_ARCH="arm"
    CONFIG_CPU_CORTEX=y
    CONFIG_CPU_CORTEX_M=y
    CONFIG_ISA_THUMB2=y
    CONFIG_ASSEMBLER_ISA_THUMB2=y
    CONFIG_COMPILER_ISA_THUMB2=y
    CONFIG_STACK_ALIGN_DOUBLE_WORD=y
    # CONFIG_RUNTIME_NMI is not set
    CONFIG_PLATFORM_SPECIFIC_INIT=y
    CONFIG_FAULT_DUMP=2
    CONFIG_BUILTIN_STACK_GUARD=y
    CONFIG_ARM_STACK_PROTECTION=y
    CONFIG_ARM_NONSECURE_FIRMWARE=y
    CONFIG_CPU_CORTEX_M33=y
    CONFIG_CPU_CORTEX_M_HAS_SYSTICK=y
    CONFIG_CPU_CORTEX_M_HAS_DWT=y
    CONFIG_CPU_CORTEX_M_HAS_BASEPRI=y
    CONFIG_CPU_CORTEX_M_HAS_VTOR=y
    CONFIG_CPU_CORTEX_M_HAS_SPLIM=y
    CONFIG_CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS=y
    CONFIG_CPU_CORTEX_M_HAS_CMSE=y
    CONFIG_ARMV7_M_ARMV8_M_MAINLINE=y
    CONFIG_ARMV8_M_MAINLINE=y
    CONFIG_ARMV8_M_SE=y
    CONFIG_ARMV7_M_ARMV8_M_FP=y
    CONFIG_ARMV8_M_DSP=y
    
    #
    # ARM Cortex-M0/M0+/M1/M3/M4/M7/M23/M33 options
    #
    CONFIG_GEN_ISR_TABLES=y
    # CONFIG_ZERO_LATENCY_IRQS is not set
    # CONFIG_SW_VECTOR_RELAY is not set
    # CONFIG_CORTEX_M_DWT is not set
    CONFIG_TEST_EXTRA_STACKSIZE=0
    # end of ARM Cortex-M0/M0+/M1/M3/M4/M7/M23/M33 options
    
    CONFIG_ARM_MPU=y
    CONFIG_ARM_MPU_REGION_MIN_ALIGN_AND_SIZE=32
    # CONFIG_MPU_STACK_GUARD is not set
    # CONFIG_MPU_ALLOW_FLASH_WRITE is not set
    # CONFIG_CUSTOM_SECTION_ALIGN is not set
    CONFIG_CUSTOM_SECTION_MIN_ALIGN_SIZE=32
    CONFIG_ARM_TRUSTZONE_M=y
    
    #
    # ARM TrustZone-M Options
    #
    
    #
    # Non-secure firmware
    #
    # CONFIG_ARM_FIRMWARE_USES_SECURE_ENTRY_FUNCS is not set
    # end of ARM TrustZone-M Options
    
    CONFIG_GEN_IRQ_VECTOR_TABLE=y
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_IDLE_STACK_SIZE=320
    CONFIG_ISR_STACK_SIZE=2048
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=1024
    CONFIG_XIP=y
    # end of ARM Options
    
    CONFIG_ARM=y
    CONFIG_ARCH_IS_SET=y
    
    #
    # General Architecture Options
    #
    # CONFIG_ARCH_LOG_LEVEL_OFF is not set
    # CONFIG_ARCH_LOG_LEVEL_ERR is not set
    # CONFIG_ARCH_LOG_LEVEL_WRN is not set
    CONFIG_ARCH_LOG_LEVEL_INF=y
    # CONFIG_ARCH_LOG_LEVEL_DBG is not set
    CONFIG_ARCH_LOG_LEVEL=3
    # CONFIG_MPU_LOG_LEVEL_OFF is not set
    # CONFIG_MPU_LOG_LEVEL_ERR is not set
    # CONFIG_MPU_LOG_LEVEL_WRN is not set
    CONFIG_MPU_LOG_LEVEL_INF=y
    # CONFIG_MPU_LOG_LEVEL_DBG is not set
    CONFIG_MPU_LOG_LEVEL=3
    CONFIG_SRAM_SIZE=128
    CONFIG_SRAM_BASE_ADDRESS=0x20020000
    # CONFIG_TRUSTED_EXECUTION_SECURE is not set
    CONFIG_TRUSTED_EXECUTION_NONSECURE=y
    CONFIG_HW_STACK_PROTECTION=y
    # CONFIG_USERSPACE is not set
    CONFIG_PRIVILEGED_STACK_SIZE=1024
    CONFIG_KOBJECT_TEXT_AREA=256
    CONFIG_GEN_PRIV_STACKS=y
    # CONFIG_STACK_GROWS_UP is not set
    
    #
    # Interrupt Configuration
    #
    # CONFIG_DYNAMIC_INTERRUPTS is not set
    CONFIG_GEN_SW_ISR_TABLE=y
    CONFIG_ARCH_SW_ISR_TABLE_ALIGN=0
    CONFIG_GEN_IRQ_START_VECTOR=0
    # CONFIG_EXTRA_EXCEPTION_INFO is not set
    # end of Interrupt Configuration
    
    # CONFIG_INIT_ARCH_HW_AT_BOOT is not set
    # end of General Architecture Options
    
    CONFIG_ARCH_HAS_TIMING_FUNCTIONS=y
    CONFIG_ARCH_HAS_TRUSTED_EXECUTION=y
    CONFIG_ARCH_HAS_STACK_PROTECTION=y
    CONFIG_ARCH_HAS_USERSPACE=y
    CONFIG_ARCH_HAS_EXECUTABLE_PAGE_BIT=y
    CONFIG_ARCH_HAS_RAMFUNC_SUPPORT=y
    CONFIG_ARCH_HAS_NESTED_EXCEPTION_DETECTION=y
    CONFIG_ARCH_SUPPORTS_COREDUMP=y
    CONFIG_ARCH_SUPPORTS_ARCH_HW_INIT=y
    CONFIG_ARCH_HAS_EXTRA_EXCEPTION_INFO=y
    CONFIG_ARCH_HAS_THREAD_LOCAL_STORAGE=y
    CONFIG_ARCH_HAS_THREAD_ABORT=y
    CONFIG_CPU_HAS_TEE=y
    CONFIG_CPU_HAS_FPU=y
    CONFIG_CPU_HAS_MPU=y
    CONFIG_MPU=y
    CONFIG_MPU_REQUIRES_NON_OVERLAPPING_REGIONS=y
    CONFIG_MPU_GAP_FILLING=y
    CONFIG_SRAM_REGION_PERMISSIONS=y
    
    #
    # Floating Point Options
    #
    # end of Floating Point Options
    
    #
    # Cache Options
    #
    # CONFIG_CACHE_MANAGEMENT is not set
    # end of Cache Options
    
    #
    # General Kernel Options
    #
    # CONFIG_KERNEL_LOG_LEVEL_OFF is not set
    # CONFIG_KERNEL_LOG_LEVEL_ERR is not set
    # CONFIG_KERNEL_LOG_LEVEL_WRN is not set
    CONFIG_KERNEL_LOG_LEVEL_INF=y
    # CONFIG_KERNEL_LOG_LEVEL_DBG is not set
    CONFIG_KERNEL_LOG_LEVEL=3
    CONFIG_MULTITHREADING=y
    CONFIG_NUM_COOP_PRIORITIES=16
    CONFIG_NUM_PREEMPT_PRIORITIES=15
    CONFIG_MAIN_THREAD_PRIORITY=0
    CONFIG_COOP_ENABLED=y
    CONFIG_PREEMPT_ENABLED=y
    CONFIG_PRIORITY_CEILING=0
    CONFIG_NUM_METAIRQ_PRIORITIES=0
    # CONFIG_SCHED_DEADLINE is not set
    # CONFIG_SCHED_CPU_MASK is not set
    CONFIG_THREAD_STACK_INFO=y
    # CONFIG_THREAD_CUSTOM_DATA is not set
    CONFIG_ERRNO=y
    CONFIG_SCHED_DUMB=y
    # CONFIG_SCHED_SCALABLE is not set
    # CONFIG_SCHED_MULTIQ is not set
    # CONFIG_WAITQ_SCALABLE is not set
    CONFIG_WAITQ_DUMB=y
    
    #
    # Kernel Debugging and Metrics
    #
    # CONFIG_INIT_STACKS is not set
    CONFIG_BOOT_BANNER=y
    CONFIG_BOOT_DELAY=0
    # CONFIG_THREAD_MONITOR is not set
    # CONFIG_THREAD_NAME is not set
    # CONFIG_THREAD_RUNTIME_STATS is not set
    # end of Kernel Debugging and Metrics
    
    #
    # Work Queue Options
    #
    CONFIG_SYSTEM_WORKQUEUE_PRIORITY=-1
    # end of Work Queue Options
    
    #
    # Atomic Operations
    #
    CONFIG_ATOMIC_OPERATIONS_BUILTIN=y
    # end of Atomic Operations
    
    #
    # Timer API Options
    #
    CONFIG_TIMESLICING=y
    CONFIG_TIMESLICE_SIZE=0
    CONFIG_TIMESLICE_PRIORITY=0
    # CONFIG_POLL is not set
    # end of Timer API Options
    
    #
    # Other Kernel Object Options
    #
    # CONFIG_MEM_SLAB_TRACE_MAX_UTILIZATION is not set
    CONFIG_NUM_MBOX_ASYNC_MSGS=10
    CONFIG_NUM_PIPE_ASYNC_MSGS=10
    CONFIG_KERNEL_MEM_POOL=y
    # end of Other Kernel Object Options
    
    CONFIG_ARCH_HAS_CUSTOM_SWAP_TO_MAIN=y
    CONFIG_SWAP_NONATOMIC=y
    CONFIG_SYS_CLOCK_EXISTS=y
    CONFIG_TIMEOUT_64BIT=y
    
    #
    # Initialization Priorities
    #
    CONFIG_KERNEL_INIT_PRIORITY_OBJECTS=30
    CONFIG_KERNEL_INIT_PRIORITY_DEFAULT=40
    CONFIG_KERNEL_INIT_PRIORITY_DEVICE=50
    CONFIG_APPLICATION_INIT_PRIORITY=90
    # end of Initialization Priorities
    
    #
    # Security Options
    #
    # end of Security Options
    
    #
    # SMP Options
    #
    CONFIG_MP_NUM_CPUS=1
    # end of SMP Options
    
    CONFIG_TICKLESS_IDLE=y
    CONFIG_TICKLESS_IDLE_THRESH=3
    CONFIG_TICKLESS_KERNEL=y
    # end of General Kernel Options
    
    CONFIG_HAS_DTS=y
    CONFIG_HAS_DTS_GPIO=y
    
    #
    # Device Drivers
    #
    # CONFIG_IEEE802154 is not set
    # CONFIG_LORA is not set
    CONFIG_UART_CONSOLE_ON_DEV_NAME="UART_0"
    CONFIG_CONSOLE=y
    CONFIG_CONSOLE_INPUT_MAX_LINE_LEN=128
    CONFIG_CONSOLE_HAS_DRIVER=y
    # CONFIG_CONSOLE_HANDLER is not set
    CONFIG_UART_CONSOLE=y
    CONFIG_UART_CONSOLE_INIT_PRIORITY=60
    # CONFIG_UART_CONSOLE_DEBUG_SERVER_HOOKS is not set
    # CONFIG_UART_CONSOLE_MCUMGR is not set
    # CONFIG_USB_UART_CONSOLE is not set
    # CONFIG_RAM_CONSOLE is not set
    # CONFIG_IPM_CONSOLE_SENDER is not set
    # CONFIG_IPM_CONSOLE_RECEIVER is not set
    # CONFIG_UART_PIPE is not set
    # CONFIG_UART_MCUMGR is not set
    # CONFIG_SEMIHOST_CONSOLE is not set
    # CONFIG_UART_CONSOLE_LOG_LEVEL_OFF is not set
    # CONFIG_UART_CONSOLE_LOG_LEVEL_ERR is not set
    # CONFIG_UART_CONSOLE_LOG_LEVEL_WRN is not set
    CONFIG_UART_CONSOLE_LOG_LEVEL_INF=y
    # CONFIG_UART_CONSOLE_LOG_LEVEL_DBG is not set
    CONFIG_UART_CONSOLE_LOG_LEVEL=3
    # CONFIG_GSM_MUX is not set
    CONFIG_HAS_SEGGER_RTT=y
    # CONFIG_USE_SEGGER_RTT is not set
    # CONFIG_EC_HOST_CMD_PERIPH is not set
    # CONFIG_NET_LOOPBACK is not set
    
    #
    # Capabilities
    #
    CONFIG_SERIAL_HAS_DRIVER=y
    CONFIG_SERIAL_SUPPORT_ASYNC=y
    CONFIG_SERIAL_SUPPORT_INTERRUPT=y
    # CONFIG_UART_ASYNC_API is not set
    # CONFIG_UART_LINE_CTRL is not set
    # CONFIG_UART_DRV_CMD is not set
    
    #
    # Serial Drivers
    #
    CONFIG_UART_NRFX=y
    CONFIG_UART_0_NRF_UARTE=y
    CONFIG_UART_0_ENHANCED_POLL_OUT=y
    CONFIG_UART_0_INTERRUPT_DRIVEN=y
    # CONFIG_UART_0_NRF_PARITY_BIT is not set
    CONFIG_UART_0_NRF_TX_BUFFER_SIZE=32
    CONFIG_NRF_UARTE_PERIPHERAL=y
    # CONFIG_UART_ALTERA_JTAG is not set
    # CONFIG_UART_XLNX_UARTLITE is not set
    
    #
    # Interrupt Controllers
    #
    # CONFIG_SWERV_PIC is not set
    # CONFIG_MULTI_LEVEL_INTERRUPTS is not set
    # end of Interrupt Controllers
    
    #
    # Timer Drivers
    #
    CONFIG_NRF_RTC_TIMER_USER_CHAN_COUNT=0
    # CONFIG_SYSTEM_CLOCK_NO_WAIT is not set
    # CONFIG_SYSTEM_CLOCK_WAIT_FOR_AVAILABILITY is not set
    CONFIG_SYSTEM_CLOCK_WAIT_FOR_STABILITY=y
    # CONFIG_SYSTEM_CLOCK_DISABLE is not set
    # CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME is not set
    # CONFIG_SYSTEM_CLOCK_SLOPPY_IDLE is not set
    CONFIG_SYSTEM_CLOCK_INIT_PRIORITY=0
    CONFIG_TICKLESS_CAPABLE=y
    # end of Timer Drivers
    
    # CONFIG_ENTROPY_GENERATOR is not set
    # CONFIG_PCIE is not set
    # CONFIG_PCIE_ENDPOINT is not set
    # CONFIG_GPIO_LOG_LEVEL_OFF is not set
    # CONFIG_GPIO_LOG_LEVEL_ERR is not set
    # CONFIG_GPIO_LOG_LEVEL_WRN is not set
    CONFIG_GPIO_LOG_LEVEL_INF=y
    # CONFIG_GPIO_LOG_LEVEL_DBG is not set
    CONFIG_GPIO_LOG_LEVEL=3
    # CONFIG_GPIO_DW is not set
    # CONFIG_GPIO_MCP23S17 is not set
    CONFIG_GPIO_NRFX=y
    CONFIG_GPIO_NRF_INIT_PRIORITY=40
    CONFIG_GPIO_NRF_P0=y
    # CONFIG_GPIO_ITE_IT8XXX2 is not set
    # CONFIG_GPIO_INTEL_APL is not set
    # CONFIG_GPIO_XLNX_AXI is not set
    # CONFIG_GPIO_EMUL is not set
    # CONFIG_SHARED_IRQ is not set
    # CONFIG_SPI_ASYNC is not set
    # CONFIG_SPI_SLAVE is not set
    CONFIG_SPI_INIT_PRIORITY=70
    # CONFIG_SPI_LOG_LEVEL_OFF is not set
    # CONFIG_SPI_LOG_LEVEL_ERR is not set
    # CONFIG_SPI_LOG_LEVEL_WRN is not set
    CONFIG_SPI_LOG_LEVEL_INF=y
    # CONFIG_SPI_LOG_LEVEL_DBG is not set
    CONFIG_SPI_LOG_LEVEL=3
    # CONFIG_SPI_0 is not set
    # CONFIG_SPI_1 is not set
    CONFIG_SPI_2=y
    CONFIG_SPI_2_OP_MODES=1
    CONFIG_SPI_3=y
    CONFIG_SPI_3_OP_MODES=1
    # CONFIG_SPI_4 is not set
    # CONFIG_SPI_5 is not set
    # CONFIG_SPI_6 is not set
    # CONFIG_SPI_7 is not set
    # CONFIG_SPI_8 is not set
    # CONFIG_SPI_EMUL is not set
    CONFIG_SPI_NRFX=y
    CONFIG_SPI_2_NRF_SPIM=y
    CONFIG_SPI_2_NRF_ORC=0xff
    CONFIG_SPI_NRFX_RAM_BUFFER_SIZE=256
    # CONFIG_SPI_OC_SIMPLE is not set
    # CONFIG_SPI_XLNX_AXI_QUADSPI is not set
    # CONFIG_I2S is not set
    # CONFIG_PWM is not set
    # CONFIG_PINMUX is not set
    # CONFIG_ADC is not set
    # CONFIG_DAC is not set
    # CONFIG_CLOCK_CONTROL_LOG_LEVEL_OFF is not set
    # CONFIG_CLOCK_CONTROL_LOG_LEVEL_ERR is not set
    # CONFIG_CLOCK_CONTROL_LOG_LEVEL_WRN is not set
    CONFIG_CLOCK_CONTROL_LOG_LEVEL_INF=y
    # CONFIG_CLOCK_CONTROL_LOG_LEVEL_DBG is not set
    CONFIG_CLOCK_CONTROL_LOG_LEVEL=3
    CONFIG_CLOCK_CONTROL_NRF=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC is not set
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_250PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_150PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_100PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_75PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_50PPM is not set
    # CONFIG_CLOCK_CONTROL_NRF_K32SRC_30PPM is not set
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_20PPM=y
    # CONFIG_PTP_CLOCK is not set
    # CONFIG_IPM is not set
    # CONFIG_FLASH is not set
    CONFIG_SENSOR=y
    # CONFIG_SENSOR_LOG_LEVEL_OFF is not set
    # CONFIG_SENSOR_LOG_LEVEL_ERR is not set
    # CONFIG_SENSOR_LOG_LEVEL_WRN is not set
    CONFIG_SENSOR_LOG_LEVEL_INF=y
    # CONFIG_SENSOR_LOG_LEVEL_DBG is not set
    CONFIG_SENSOR_LOG_LEVEL=3
    CONFIG_SENSOR_INIT_PRIORITY=90
    
    #
    # Device Drivers
    #
    # CONFIG_ADXL362 is not set
    # CONFIG_ADXL372 is not set
    # CONFIG_BME280 is not set
    CONFIG_BMI160=y
    # CONFIG_BMI160_TRIGGER_NONE is not set
    # CONFIG_BMI160_TRIGGER_GLOBAL_THREAD is not set
    CONFIG_BMI160_TRIGGER_OWN_THREAD=y
    CONFIG_BMI160_TRIGGER=y
    CONFIG_BMI160_THREAD_PRIORITY=10
    CONFIG_BMI160_THREAD_STACK_SIZE=1024
    CONFIG_BMI160_ACCEL_PMU_RUNTIME=y
    # CONFIG_BMI160_ACCEL_PMU_SUSPEND is not set
    # CONFIG_BMI160_ACCEL_PMU_NORMAL is not set
    # CONFIG_BMI160_ACCEL_PMU_LOW_POWER is not set
    CONFIG_BMI160_ACCEL_RANGE_RUNTIME=y
    # CONFIG_BMI160_ACCEL_RANGE_2G is not set
    # CONFIG_BMI160_ACCEL_RANGE_4G is not set
    # CONFIG_BMI160_ACCEL_RANGE_8G is not set
    # CONFIG_BMI160_ACCEL_RANGE_16G is not set
    CONFIG_BMI160_ACCEL_ODR_RUNTIME=y
    # CONFIG_BMI160_ACCEL_ODR_25_2 is not set
    # CONFIG_BMI160_ACCEL_ODR_25 is not set
    # CONFIG_BMI160_ACCEL_ODR_50 is not set
    # CONFIG_BMI160_ACCEL_ODR_100 is not set
    # CONFIG_BMI160_ACCEL_ODR_200 is not set
    # CONFIG_BMI160_ACCEL_ODR_400 is not set
    # CONFIG_BMI160_ACCEL_ODR_800 is not set
    # CONFIG_BMI160_ACCEL_ODR_1600 is not set
    CONFIG_BMI160_GYRO_PMU_RUNTIME=y
    # CONFIG_BMI160_GYRO_PMU_SUSPEND is not set
    # CONFIG_BMI160_GYRO_PMU_NORMAL is not set
    # CONFIG_BMI160_GYRO_PMU_FAST_STARTUP is not set
    CONFIG_BMI160_GYRO_RANGE_RUNTIME=y
    # CONFIG_BMI160_GYRO_RANGE_2000DPS is not set
    # CONFIG_BMI160_GYRO_RANGE_1000DPS is not set
    # CONFIG_BMI160_GYRO_RANGE_500DPS is not set
    # CONFIG_BMI160_GYRO_RANGE_250DPS is not set
    # CONFIG_BMI160_GYRO_RANGE_125DPS is not set
    CONFIG_BMI160_GYRO_ODR_RUNTIME=y
    # CONFIG_BMI160_GYRO_ODR_25 is not set
    # CONFIG_BMI160_GYRO_ODR_50 is not set
    # CONFIG_BMI160_GYRO_ODR_100 is not set
    # CONFIG_BMI160_GYRO_ODR_200 is not set
    # CONFIG_BMI160_GYRO_ODR_400 is not set
    # CONFIG_BMI160_GYRO_ODR_800 is not set
    # CONFIG_BMI160_GYRO_ODR_1600 is not set
    # CONFIG_BMI160_GYRO_ODR_3200 is not set
    CONFIG_PRINTK=y
    # CONFIG_DHT is not set
    # CONFIG_ICM42605 is not set
    # CONFIG_IIS2DH is not set
    # CONFIG_IIS2DLPC is not set
    # CONFIG_IIS2ICLX is not set
    # CONFIG_IIS2MDC is not set
    # CONFIG_IIS3DHHC is not set
    # CONFIG_ISM330DHCX is not set
    # CONFIG_LIS2DH is not set
    # CONFIG_LIS2DS12 is not set
    # CONFIG_LIS2DW12 is not set
    # CONFIG_LIS2MDL is not set
    # CONFIG_LPS22HH is not set
    # CONFIG_LSM6DSL is not set
    # CONFIG_LSM6DSO is not set
    # CONFIG_MAX6675 is not set
    # CONFIG_MS5607 is not set
    # CONFIG_PMS7003 is not set
    # CONFIG_SM351LT is not set
    # CONFIG_COUNTER is not set
    # CONFIG_DMA is not set
    # CONFIG_USB is not set
    # CONFIG_CRYPTO is not set
    # CONFIG_DISPLAY is not set
    # CONFIG_LED_STRIP is not set
    # CONFIG_LED is not set
    # CONFIG_CAN is not set
    # CONFIG_AUDIO is not set
    # CONFIG_NEURAL_NET_ACCEL is not set
    # CONFIG_HWINFO is not set
    # CONFIG_ESPI is not set
    # CONFIG_PS2 is not set
    # CONFIG_VIDEO is not set
    # CONFIG_EEPROM is not set
    # CONFIG_PECI is not set
    # CONFIG_PECI_INTERRUPT_DRIVEN is not set
    # CONFIG_REGULATOR is not set
    # CONFIG_MEMC is not set
    # CONFIG_VIRTUALIZATION is not set
    # CONFIG_EDAC is not set
    # end of Device Drivers
    
    #
    # C Library
    #
    CONFIG_MINIMAL_LIBC=y
    # CONFIG_NEWLIB_LIBC is not set
    # CONFIG_EXTERNAL_LIBC is not set
    CONFIG_HAS_NEWLIB_LIBC_NANO=y
    CONFIG_MINIMAL_LIBC_MALLOC=y
    CONFIG_MINIMAL_LIBC_MALLOC_ARENA_SIZE=0
    CONFIG_MINIMAL_LIBC_CALLOC=y
    CONFIG_MINIMAL_LIBC_REALLOCARRAY=y
    # CONFIG_MINIMAL_LIBC_LL_PRINTF is not set
    CONFIG_STDOUT_CONSOLE=y
    # end of C Library
    
    #
    # Additional libraries
    #
    # CONFIG_FNMATCH is not set
    # CONFIG_LVGL is not set
    
    #
    # OS Support Library
    #
    # CONFIG_JSON_LIBRARY is not set
    # CONFIG_RING_BUFFER is not set
    # CONFIG_BASE64 is not set
    # CONFIG_SYS_HEAP_VALIDATE is not set
    CONFIG_SYS_HEAP_ALLOC_LOOPS=3
    # CONFIG_PRINTK64 is not set
    # CONFIG_PRINTK_SYNC is not set
    CONFIG_CBPRINTF_COMPLETE=y
    # CONFIG_CBPRINTF_NANO is not set
    CONFIG_CBPRINTF_FULL_INTEGRAL=y
    # CONFIG_CBPRINTF_REDUCED_INTEGRAL is not set
    # CONFIG_CBPRINTF_FP_SUPPORT is not set
    # CONFIG_CBPRINTF_FP_A_SUPPORT is not set
    # CONFIG_CBPRINTF_FP_ALWAYS_A is not set
    CONFIG_CBPRINTF_N_SPECIFIER=y
    # CONFIG_CBPRINTF_LIBC_SUBSTS is not set
    # end of OS Support Library
    
    CONFIG_POSIX_MAX_FDS=4
    # CONFIG_POSIX_API is not set
    # CONFIG_PTHREAD_IPC is not set
    # CONFIG_POSIX_CLOCK is not set
    CONFIG_MAX_TIMER_COUNT=5
    # CONFIG_POSIX_MQUEUE is not set
    # CONFIG_EVENTFD is not set
    # CONFIG_OPENAMP_RSC_TABLE is not set
    # end of Additional libraries
    
    #
    # Sub Systems and OS Services
    #
    # CONFIG_BT is not set
    
    #
    # Controller Area Network (CAN) bus subsystem
    #
    # CONFIG_ISOTP is not set
    # end of Controller Area Network (CAN) bus subsystem
    
    # CONFIG_CONSOLE_SUBSYS is not set
    # CONFIG_CPLUSPLUS is not set
    
    #
    # System Monitoring Options
    #
    # CONFIG_BOOT_TIME_MEASUREMENT is not set
    # CONFIG_THREAD_ANALYZER is not set
    # end of System Monitoring Options
    
    #
    # Debugging Options
    #
    # CONFIG_STACK_USAGE is not set
    # CONFIG_STACK_SENTINEL is not set
    CONFIG_EARLY_CONSOLE=y
    # CONFIG_ASSERT is not set
    # CONFIG_FORCE_NO_ASSERT is not set
    CONFIG_ASSERT_VERBOSE=y
    # CONFIG_ASSERT_NO_FILE_INFO is not set
    # CONFIG_ASSERT_NO_COND_INFO is not set
    # CONFIG_ASSERT_NO_MSG_INFO is not set
    # CONFIG_OBJECT_TRACING is not set
    # CONFIG_OVERRIDE_FRAME_POINTER_DEFAULT is not set
    # CONFIG_DEBUG_INFO is not set
    # CONFIG_OPENOCD_SUPPORT is not set
    # CONFIG_DEBUG_COREDUMP is not set
    # end of Debugging Options
    
    # CONFIG_DISK_ACCESS is not set
    # CONFIG_EMUL is not set
    # CONFIG_CHARACTER_FRAMEBUFFER is not set
    
    #
    # File Systems
    #
    # CONFIG_FILE_SYSTEM is not set
    # CONFIG_NVS is not set
    # end of File Systems
    
    #
    # Inter Processor Communication
    #
    # CONFIG_RPMSG_SERVICE is not set
    # end of Inter Processor Communication
    
    # CONFIG_JWT is not set
    CONFIG_LOG=y
    CONFIG_LOG_MODE_DEFERRED=y
    # CONFIG_LOG_MODE_IMMEDIATE is not set
    # CONFIG_LOG_MODE_MINIMAL is not set
    # CONFIG_LOG_FRONTEND is not set
    
    #
    # Logging levels filtering
    #
    # CONFIG_LOG_RUNTIME_FILTERING is not set
    CONFIG_LOG_DEFAULT_LEVEL=4
    CONFIG_LOG_OVERRIDE_LEVEL=0
    CONFIG_LOG_MAX_LEVEL=4
    # end of Logging levels filtering
    
    #
    # Output Formatting
    #
    
    #
    # Prepend non-hexdump log message with function name
    #
    # CONFIG_LOG_FUNC_NAME_PREFIX_ERR is not set
    # CONFIG_LOG_FUNC_NAME_PREFIX_WRN is not set
    # CONFIG_LOG_FUNC_NAME_PREFIX_INF is not set
    CONFIG_LOG_FUNC_NAME_PREFIX_DBG=y
    # end of Prepend non-hexdump log message with function name
    
    # CONFIG_LOG_MIPI_SYST_ENABLE is not set
    CONFIG_LOG_BACKEND_SHOW_COLOR=y
    CONFIG_LOG_BACKEND_FORMAT_TIMESTAMP=y
    # end of Output Formatting
    
    #
    # Processing
    #
    # CONFIG_LOG_PRINTK is not set
    CONFIG_LOG_MODE_OVERFLOW=y
    # CONFIG_LOG_BLOCK_IN_THREAD is not set
    CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD=10
    CONFIG_LOG_PROCESS_THREAD=y
    CONFIG_LOG_PROCESS_THREAD_SLEEP_MS=1000
    CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=768
    CONFIG_LOG_BUFFER_SIZE=1024
    CONFIG_LOG_DETECT_MISSED_STRDUP=y
    CONFIG_LOG_STRDUP_MAX_STRING=32
    CONFIG_LOG_STRDUP_BUF_COUNT=4
    # CONFIG_LOG_STRDUP_POOL_PROFILING is not set
    # end of Processing
    
    #
    # Backends
    #
    CONFIG_LOG_BACKEND_UART=y
    # end of Backends
    
    #
    # Misc
    #
    CONFIG_LOG_DOMAIN_ID=0
    # end of Misc
    
    #
    # Device Management
    #
    
    #
    # Host command handler subsystem
    #
    # CONFIG_EC_HOST_CMD is not set
    # end of Host command handler subsystem
    
    # CONFIG_MCUMGR is not set
    # CONFIG_HAWKBIT is not set
    # CONFIG_UPDATEHUB is not set
    # CONFIG_OSDP is not set
    # end of Device Management
    
    #
    # Networking
    #
    # CONFIG_NET_BUF is not set
    # CONFIG_NETWORKING is not set
    # end of Networking
    
    #
    # Power Management
    #
    # CONFIG_SYS_POWER_MANAGEMENT is not set
    # CONFIG_PM_DIRECT_FORCE_MODE is not set
    # CONFIG_PM_DEBUG is not set
    CONFIG_PM_POLICY_RESIDENCY=y
    # CONFIG_PM_POLICY_DUMMY is not set
    # CONFIG_PM_POLICY_APP is not set
    CONFIG_PM_POLICY_RESIDENCY_DEFAULT=y
    # CONFIG_PM_LOG_LEVEL_OFF is not set
    # CONFIG_PM_LOG_LEVEL_ERR is not set
    # CONFIG_PM_LOG_LEVEL_WRN is not set
    CONFIG_PM_LOG_LEVEL_INF=y
    # CONFIG_PM_LOG_LEVEL_DBG is not set
    CONFIG_PM_LOG_LEVEL=3
    # CONFIG_DEVICE_POWER_MANAGEMENT is not set
    # end of Power Management
    
    # CONFIG_SHELL is not set
    # CONFIG_STATS is not set
    # CONFIG_IMG_MANAGER is not set
    
    #
    # Random Number Generators
    #
    # CONFIG_TEST_RANDOM_GENERATOR is not set
    # end of Random Number Generators
    
    #
    # Storage
    #
    # CONFIG_STREAM_FLASH is not set
    # end of Storage
    
    # CONFIG_SETTINGS is not set
    
    #
    # Testing
    #
    # CONFIG_ZTEST is not set
    # CONFIG_ZTEST_MOCKING is not set
    # CONFIG_TEST is not set
    # CONFIG_TEST_USERSPACE is not set
    CONFIG_TEST_ARM_CORTEX_M=y
    # end of Testing
    
    # CONFIG_TIMING_FUNCTIONS is not set
    # CONFIG_TRACING is not set
    # end of Sub Systems and OS Services
    
    CONFIG_TOOLCHAIN_GNUARMEMB=y
    
    #
    # Build and Link Features
    #
    
    #
    # Linker Options
    #
    # CONFIG_LINKER_ORPHAN_SECTION_PLACE is not set
    CONFIG_LINKER_ORPHAN_SECTION_WARN=y
    # CONFIG_LINKER_ORPHAN_SECTION_ERROR is not set
    # CONFIG_CODE_DATA_RELOCATION is not set
    CONFIG_HAS_FLASH_LOAD_OFFSET=y
    # CONFIG_USE_DT_CODE_PARTITION is not set
    # CONFIG_HAVE_CUSTOM_LINKER_SCRIPT is not set
    CONFIG_KERNEL_ENTRY="__start"
    CONFIG_LINKER_SORT_BY_ALIGNMENT=y
    # end of Linker Options
    
    #
    # Compiler Options
    #
    # CONFIG_CODING_GUIDELINE_CHECK is not set
    # CONFIG_NATIVE_APPLICATION is not set
    CONFIG_SIZE_OPTIMIZATIONS=y
    # CONFIG_SPEED_OPTIMIZATIONS is not set
    # CONFIG_DEBUG_OPTIMIZATIONS is not set
    # CONFIG_NO_OPTIMIZATIONS is not set
    CONFIG_COMPILER_OPT=""
    # end of Compiler Options
    
    # CONFIG_ASSERT_ON_ERRORS is not set
    # CONFIG_NO_RUNTIME_CHECKS is not set
    CONFIG_RUNTIME_ERROR_CHECKS=y
    
    #
    # Build Options
    #
    CONFIG_KERNEL_BIN_NAME="zephyr"
    CONFIG_OUTPUT_STAT=y
    CONFIG_OUTPUT_DISASSEMBLY=y
    # CONFIG_OUTPUT_DISASSEMBLE_ALL is not set
    CONFIG_OUTPUT_PRINT_MEMORY_USAGE=y
    # CONFIG_CLEANUP_INTERMEDIATE_FILES is not set
    # CONFIG_BUILD_NO_GAP_FILL is not set
    CONFIG_BUILD_OUTPUT_BIN=y
    # CONFIG_BUILD_OUTPUT_EXE is not set
    # CONFIG_BUILD_OUTPUT_S19 is not set
    # CONFIG_BUILD_OUTPUT_STRIPPED is not set
    # CONFIG_APPLICATION_DEFINED_SYSCALL is not set
    # CONFIG_MAKEFILE_EXPORTS is not set
    # CONFIG_DEPRECATED_ZEPHYR_INT_TYPES is not set
    # end of Build Options
    # end of Build and Link Features
    
    #
    # Boot Options
    #
    # CONFIG_IS_BOOTLOADER is not set
    # CONFIG_BOOTLOADER_MCUBOOT is not set
    # CONFIG_REBOOT is not set
    # CONFIG_MISRA_SANE is not set
    # end of Boot Options
    
    #
    # Compatibility
    #
    CONFIG_COMPAT_INCLUDES=y
    # end of Compatibility
    

    They are identical, except:

    //Secure:
    CONFIG_FLASH_LOAD_SIZE=0
    CONFIG_FLASH_LOAD_OFFSET=0
    CONFIG_BOARD_XX_NRF9160=y
    # CONFIG_BOARD_XX_NRF9160NS is not set
    CONFIG_SRAM_SIZE=64
    CONFIG_SRAM_BASE_ADDRESS=0x20000000
    # CONFIG_TRUSTED_EXECUTION_NONSECURE is not set
    # CONFIG_SPI_3 is not set
    
    
    //Non-secure:
    CONFIG_FLASH_LOAD_SIZE=0x40000
    CONFIG_FLASH_LOAD_OFFSET=0x40000
    # CONFIG_BOARD_XX_NRF9160 is not set
    CONFIG_BOARD_XX_NRF9160NS=y
    CONFIG_ARM_NONSECURE_FIRMWARE=y
    #
    # ARM TrustZone-M Options
    #
    
    #
    # Non-secure firmware
    #
    # CONFIG_ARM_FIRMWARE_USES_SECURE_ENTRY_FUNCS is not set
    # end of ARM TrustZone-M Options
    CONFIG_SRAM_SIZE=128
    CONFIG_SRAM_BASE_ADDRESS=0x20020000
    CONFIG_TRUSTED_EXECUTION_NONSECURE=y
    CONFIG_SPI_3=y
    CONFIG_SPI_3_OP_MODES=1

  • Hi,

    So it does set CONFIG_TRUSTED_EXECUTION_NONSECURE=y when you are building non-secure, but for some reason the Secure Partition Manager (SPM) is not built, since you are missing CONFIG_SPM=y. I have not been able to figure out what might cause this. West should automatically build SPM and merge it with your application, which is the default configuration. It seems like something with the multi-image build fails.

    A possible workaround for this is to define and enable SPM as a child image yourself, by following this. You must add the following to CMakeLists.txt:

    if (CONFIG_SPM)
      add_child_image(
        NAME spm
        SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/spm
        )
    endif()

    You must also add the required configuration option. Since you want to build the child image (SPM) from source along with the parent image, you must use 

    <IMAGE_NAME>\_BUILD_STRATEGY_FROM_SOURCE

    This should be added to the Kconfig file of your child image, replacing <IMAGE_NAME> with the uppercase name of your child image, as specified in add_child_image above. So in your case it will be SPM\_BUILD_STRATEGY_FROM_SOURCE. Please see the link above for more details on how to add a child image. You must also remember to add CONFIG_SPM=y to the prj.conf of your project.

    I do not know if this will fix your issue, so if it does not please let me know. I have also asked some colleagues about this, but they have so far not been able to say why SPM is not build either. Please also be aware that because of Easter it might take some time before I get a response from some of my colleagues.

    Best regards,

    Marte

Related