SDK 2.2 + "__device_dts_ord_XX" errors

Hi community,

I try to acces gpio0 and adc channels on a icarus board (nRF9160 + SDK 2.2).

On building, i have these errors "__device_dts_ord_94", "__device_dts_ord_95" and "__device_dts_ord_4".

DEVICE_DT_GET seems not accepted.
Any idea to solve this ?
Many thanks !

#define GPIO_NODE DT_NODELABEL(gpio0)
#define ADC_0 DT_CHILD(DT_NODELABEL(adc), channel_0)
#define ADC_5 DT_CHILD(DT_NODELABEL(adc), channel_5)

static const struct device *adc0;
static const struct device *adc5;
static const struct device *gpio;

adc0 = DEVICE_DT_GET(ADC_0);
adc5 = DEVICE_DT_GET(ADC_5);	
gpio = DEVICE_DT_GET(GPIO_NODE);

and overlay

&adc {
	#address-cells = <1>;
	#size-cells = <0>;
	
	channel@0 {
		reg = <0>;
		zephyr,gain = "ADC_GAIN_1_6";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME(ADC_ACQ_TIME_MICROSECONDS, 20)>;
		zephyr,input-positive = <NRF_SAADC_AIN0>;
		zephyr,resolution = < 10 >;
	};

	channel@5 {
		reg = <5>;
		zephyr,gain = "ADC_GAIN_1_6";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME(ADC_ACQ_TIME_MICROSECONDS, 20)>;
		zephyr,input-positive = <NRF_SAADC_AIN5>;
		zephyr,resolution = < 10 >;
	};
};

Parents
  • Hello

    Could you please share the adc node in your generated device tree in build/zephyr/zephyr.dts?

    You'll need to add a "compatible" property if it isn't already defined.

    I also suspect you might have to add

    #address-cells = <1>;
    #size-cells = <0>;

    to your overlay if you define reg as simply <5>.

    Best regards,

    Einar

  • The adc node

    adc: feather_adc: arduino_adc: adc@e000 {
    				compatible = "nordic,nrf-saadc";
    				reg = < 0xe000 0x1000 >;
    				interrupts = < 0xe 0x1 >;
    				status = "okay";
    				#io-channel-cells = < 0x1 >;
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				phandle = < 0x10 >;
    				channel@0 {
    					reg = < 0x0 >;
    					zephyr,gain = "ADC_GAIN_1_6";
    					zephyr,reference = "ADC_REF_INTERNAL";
    					zephyr,acquisition-time = < 0x4014 >;
    					zephyr,input-positive = < 0x1 >;
    					zephyr,resolution = < 0xa >;
    				};
    				channel@5 {
    					reg = < 0x5 >;
    					zephyr,gain = "ADC_GAIN_1_6";
    					zephyr,reference = "ADC_REF_INTERNAL";
    					zephyr,acquisition-time = < 0x4014 >;
    					zephyr,input-positive = < 0x6 >;
    					zephyr,resolution = < 0xa >;
    				};
    			};

    the gpio node

    gpio0: gpio@842500 {
    				compatible = "nordic,nrf-gpio";
    				gpio-controller;
    				reg = < 0x842500 0x300 >;
    				#gpio-cells = < 0x2 >;
    				status = "okay";
    				port = < 0x0 >;
    				phandle = < 0xa >;
    			};

  • yes, thanks you !

    i find an other solution with your help:

    instead DT_CHILD(DT_NODELABEL(adc), channel_0)
    directly DEVICE_DT_GET(DT_IO_CHANNELS_CTLR_BY_IDX(DT_PATH(zephyr_user),0))
    Ours two solutions still keep errors of type '_device_dts_ord_12' but build and works.
  • Alskandar said:
    instead DT_CHILD(DT_NODELABEL(adc), channel_0)
    directly DEVICE_DT_GET(DT_IO_CHANNELS_CTLR_BY_IDX(DT_PATH(zephyr_user),0))

    Yes I guess that works too, as long as you run adc_channel_setup.

    Alskandar said:
    Ours two solutions still keep errors of type '_device_dts_ord_12' but build and works.

    What do you mean by this exactly?

    I'm not seeing any errors when I build.

    -Einar

  • This is an error of IntelliSense.

    If i modify includePath, librairies are found but i have _device_dts_ord erros

    If not, it not found librairies but i haven't errors like _device_dts_ord.

    In both case, program is built and works.

    This a VSCode problem.

  • Alskandar said:
    If i modify includePath, librairies are found but i have _device_dts_ord erros

    How and why are you modifying includePath?

    I'm not doing this and the program builds without errors.

    -Einar

  • If i do nothing, i have this "errors" (not blocking build operation)

    #include <zephyr/kernel.h>				// Noyau
    #include <zephyr/device.h>
    #include <zephyr/drivers/adc.h>			// ADC
    #include <zephyr/drivers/gpio.h>		// GPIO
    #include <stdio.h>						// Calcul
    #include <zephyr/sys/printk.h>			// Affichage
    #include <zephyr/logging/log.h>			// Logging
    
    all with tilde -> impossible d'ouvrir le fichier source "zephyr/kernel.h"C/C++(1696)

    if i modify in folder .vscode, the file c_cpp_properties.json

    like this (create automatically the file and add a line)

    "includePath": [
                    "${default}",
                    "/opt/nordic/ncs/v2.2.0/zephyr/include",
                    "${workspaceFolder}/**" <-- i have add this
                ],

    i have no errors of include files.

    But 3 errors _device_dts_ord_XX

Reply
  • If i do nothing, i have this "errors" (not blocking build operation)

    #include <zephyr/kernel.h>				// Noyau
    #include <zephyr/device.h>
    #include <zephyr/drivers/adc.h>			// ADC
    #include <zephyr/drivers/gpio.h>		// GPIO
    #include <stdio.h>						// Calcul
    #include <zephyr/sys/printk.h>			// Affichage
    #include <zephyr/logging/log.h>			// Logging
    
    all with tilde -> impossible d'ouvrir le fichier source "zephyr/kernel.h"C/C++(1696)

    if i modify in folder .vscode, the file c_cpp_properties.json

    like this (create automatically the file and add a line)

    "includePath": [
                    "${default}",
                    "/opt/nordic/ncs/v2.2.0/zephyr/include",
                    "${workspaceFolder}/**" <-- i have add this
                ],

    i have no errors of include files.

    But 3 errors _device_dts_ord_XX

Children
  • Alskandar said:
    i have this "errors" (not blocking build operation)

    If your project builds you can ignore these warnings, VS Code not finding the header files doesn't mean the NCS build system doesn't find them.

    Alskandar said:
    if i modify in folder .vscode, the file c_cpp_properties.json

    I wouldn't recommend messing around in these files unless you really know what you're doing.

Related