Compiling example program zephyr/lvgl using Visual Studio Code and NRF Connect

Hello,

I am trying to compile the zephyr/samples/subsys/display/lvgl.

I have the lv_conf.h enabled

I'm getting an error "No SOURCES given to Zephyr library: drivers_display

how do I fix this problem ?

Excluding target from build

and the remaining errors seem to be with the disp_drv

-- Configuring done
-- Generating done
-- Build files have been written to: C:/WORKING/NED/Nordic/Software/Testing/lvgl/build
-- west build: building application
[1/279] Generating misc/generated/syscalls.json, misc/generated/struct_tags.json
[2/279] Generating include/generated/driver-validation.h
[3/279] Generating include/generated/kobj-types-enum.h, include/generated/otype-to-str.h, include/generated/otype-to-size.h
[4/279] Generating include/generated/syscall_dispatch.c, include/generated/syscall_list.h
[5/279] Building C object zephyr/CMakeFiles/offsets.dir/arch/arm/core/offsets/offsets.c.obj
[6/279] Generating include/generated/offsets.h
[7/279] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi_on_reset.S.obj
[8/279] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/cpu_idle.S.obj
[9/279] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/irq_manage.c.obj
[10/279] Building C object zephyr/arch/common/CMakeFiles/isr_tables.dir/isr_tables.c.obj
[11/279] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi.c.obj
[12/279] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/prep_c.c.obj
[13/279] Building C object zephyr/arch/common/CMakeFiles/arch__common.dir/sw_isr_common.c.obj
[14/279] Generating linker_zephyr_pre1.cmd
[15/279] Generating linker_zephyr_pre0.cmd
[16/279] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap_helper.S.obj
[17/279] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/fatal.c.obj
[18/279] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_core_mpu.c.obj
[19/279] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault_s.S.obj
[20/279] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/isr_wrapper.S.obj
[21/279] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/exc_exit.S.obj
[22/279] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_mpu.c.obj
[23/279] Linking C static library zephyr\arch\common\libisr_tables.a
[24/279] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/thread.c.obj
[25/279] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap.c.obj
[26/279] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/reset.S.obj
[27/279] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/vector_table.S.obj
[28/279] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fpu.c.obj
[29/279] Linking C static library zephyr\arch\arch\arm\core\aarch32\mpu\libarch__arm__core__aarch32__mpu.a
[30/279] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/irq_init.c.obj
[31/279] Linking C static library zephyr\arch\common\libarch__common.a
[32/279] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/scb.c.obj
[33/279] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/thread_abort.c.obj
[34/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/time/gmtime.c.obj
[35/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdout/fprintf.c.obj
[36/279] Linking C static library zephyr\arch\arch\arm\core\aarch32\libarch__arm__core__aarch32.a
[37/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdout/stdout_console.c.obj
[38/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdout/sprintf.c.obj
[39/279] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault.c.obj
[40/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtol.c.obj
[41/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/atoi.c.obj
[42/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/strtoul.c.obj
[43/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/abort.c.obj
[44/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strncasecmp.c.obj
[45/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/bsearch.c.obj
[46/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/malloc.c.obj
[47/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/qsort.c.obj
[48/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strspn.c.obj
[49/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/strstr.c.obj
[50/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/exit.c.obj
[51/279] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/string/string.c.obj
[52/279] Linking C static library zephyr\arch\arch\arm\core\aarch32\cortex_m\libarch__arm__core__aarch32__cortex_m.a
[53/279] Building C object zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display.c.obj
FAILED: zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display.c.obj
C:\ncs\v1.9.1\toolchain\opt\bin\arm-none-eabi-gcc.exe -DBUILD_VERSION=v2.7.99-ncs1-1 -DKERNEL -DLV_CONF_INCLUDE_SIMPLE=1 -DNRF52840_XXAA -DUSE_PARTITION_MANAGER=0 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/ncs/v1.9.1/zephyr/include -Izephyr/include/generated -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/nrf52 -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/common/. -IC:/ncs/v1.9.1/nrf/include -IC:/ncs/v1.9.1/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/mdk -IC:/ncs/v1.9.1/zephyr/modules/hal_nordic/nrfx/. -IC:/ncs/v1.9.1/modules/debug/segger/SEGGER -IC:/ncs/v1.9.1/modules/debug/segger/Config -IC:/ncs/v1.9.1/zephyr/modules/segger/. -IC:/ncs/v1.9.1/zephyr/lib/gui/lvgl -IC:/ncs/v1.9.1/modules/lib/gui/lvgl -isystem C:/ncs/v1.9.1/zephyr/lib/libc/minimal/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed -isystem C:/ncs/v1.9.1/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros C:/WORKING/NED/Nordic/Software/Testing/lvgl/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -imacros C:/ncs/v1.9.1/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=C:/WORKING/NED/Nordic/Software/Testing/lvgl=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v1.9.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v1.9.1=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display.c.obj -MF zephyr\lib\gui\lvgl\CMakeFiles\lib__gui__lvgl.dir\lvgl_display.c.obj.d -o zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display.c.obj -c C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display.c
C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display.c: In function 'set_lvgl_rendering_cb':
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl_display.c:12:68: error: 'lv_disp_drv_t' {aka 'struct _disp_drv_t'} has no member named 'user_data'
   12 |  const struct device *display_dev = (const struct device *)disp_drv->user_data;
      |                                                                    ^~
[54/279] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/pthread_common.c.obj
[55/279] Building C object zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_mono.c.obj
FAILED: zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_mono.c.obj
C:\ncs\v1.9.1\toolchain\opt\bin\arm-none-eabi-gcc.exe -DBUILD_VERSION=v2.7.99-ncs1-1 -DKERNEL -DLV_CONF_INCLUDE_SIMPLE=1 -DNRF52840_XXAA -DUSE_PARTITION_MANAGER=0 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/ncs/v1.9.1/zephyr/include -Izephyr/include/generated -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/nrf52 -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/common/. -IC:/ncs/v1.9.1/nrf/include -IC:/ncs/v1.9.1/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/mdk -IC:/ncs/v1.9.1/zephyr/modules/hal_nordic/nrfx/. -IC:/ncs/v1.9.1/modules/debug/segger/SEGGER -IC:/ncs/v1.9.1/modules/debug/segger/Config -IC:/ncs/v1.9.1/zephyr/modules/segger/. -IC:/ncs/v1.9.1/zephyr/lib/gui/lvgl -IC:/ncs/v1.9.1/modules/lib/gui/lvgl -isystem C:/ncs/v1.9.1/zephyr/lib/libc/minimal/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed -isystem C:/ncs/v1.9.1/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros C:/WORKING/NED/Nordic/Software/Testing/lvgl/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -imacros C:/ncs/v1.9.1/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=C:/WORKING/NED/Nordic/Software/Testing/lvgl=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v1.9.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v1.9.1=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_mono.c.obj -MF zephyr\lib\gui\lvgl\CMakeFiles\lib__gui__lvgl.dir\lvgl_display_mono.c.obj.d -o zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_mono.c.obj -c C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_mono.c
C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_mono.c: In function 'lvgl_flush_cb_mono':
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl_display_mono.c:16:68: error: 'struct _disp_drv_t' has no member named 'user_data'
   16 |  const struct device *display_dev = (const struct device *)disp_drv->user_data;
      |                                                                    ^~
C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_mono.c: In function 'lvgl_set_px_cb_mono':
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl_display_mono.c:40:68: error: 'struct _disp_drv_t' has no member named 'user_data'
   40 |  const struct device *display_dev = (const struct device *)disp_drv->user_data;
      |                                                                    ^~
C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_mono.c: In function 'lvgl_rounder_cb_mono':
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl_display_mono.c:83:68: error: 'struct _disp_drv_t' has no member named 'user_data'
   83 |  const struct device *display_dev = (const struct device *)disp_drv->user_data;
      |                                                                    ^~
[56/279] Building C object zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_32bit.c.obj
FAILED: zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_32bit.c.obj
C:\ncs\v1.9.1\toolchain\opt\bin\arm-none-eabi-gcc.exe -DBUILD_VERSION=v2.7.99-ncs1-1 -DKERNEL -DLV_CONF_INCLUDE_SIMPLE=1 -DNRF52840_XXAA -DUSE_PARTITION_MANAGER=0 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/ncs/v1.9.1/zephyr/include -Izephyr/include/generated -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/nrf52 -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/common/. -IC:/ncs/v1.9.1/nrf/include -IC:/ncs/v1.9.1/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/mdk -IC:/ncs/v1.9.1/zephyr/modules/hal_nordic/nrfx/. -IC:/ncs/v1.9.1/modules/debug/segger/SEGGER -IC:/ncs/v1.9.1/modules/debug/segger/Config -IC:/ncs/v1.9.1/zephyr/modules/segger/. -IC:/ncs/v1.9.1/zephyr/lib/gui/lvgl -IC:/ncs/v1.9.1/modules/lib/gui/lvgl -isystem C:/ncs/v1.9.1/zephyr/lib/libc/minimal/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed -isystem C:/ncs/v1.9.1/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros C:/WORKING/NED/Nordic/Software/Testing/lvgl/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -imacros C:/ncs/v1.9.1/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=C:/WORKING/NED/Nordic/Software/Testing/lvgl=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v1.9.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v1.9.1=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_32bit.c.obj -MF zephyr\lib\gui\lvgl\CMakeFiles\lib__gui__lvgl.dir\lvgl_display_32bit.c.obj.d -o zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_32bit.c.obj -c C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_32bit.c
C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_32bit.c: In function 'lvgl_flush_cb_32bit':
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl_display_32bit.c:14:68: error: 'struct _disp_drv_t' has no member named 'user_data'
   14 |  const struct device *display_dev = (const struct device *)disp_drv->user_data;
      |                                                                    ^~
[57/279] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/nanosleep.c.obj
[58/279] Building C object zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl.c.obj
FAILED: zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl.c.obj
C:\ncs\v1.9.1\toolchain\opt\bin\arm-none-eabi-gcc.exe -DBUILD_VERSION=v2.7.99-ncs1-1 -DKERNEL -DLV_CONF_INCLUDE_SIMPLE=1 -DNRF52840_XXAA -DUSE_PARTITION_MANAGER=0 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/ncs/v1.9.1/zephyr/include -Izephyr/include/generated -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/nrf52 -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/common/. -IC:/ncs/v1.9.1/nrf/include -IC:/ncs/v1.9.1/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/mdk -IC:/ncs/v1.9.1/zephyr/modules/hal_nordic/nrfx/. -IC:/ncs/v1.9.1/modules/debug/segger/SEGGER -IC:/ncs/v1.9.1/modules/debug/segger/Config -IC:/ncs/v1.9.1/zephyr/modules/segger/. -IC:/ncs/v1.9.1/zephyr/lib/gui/lvgl -IC:/ncs/v1.9.1/modules/lib/gui/lvgl -isystem C:/ncs/v1.9.1/zephyr/lib/libc/minimal/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed -isystem C:/ncs/v1.9.1/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros C:/WORKING/NED/Nordic/Software/Testing/lvgl/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -imacros C:/ncs/v1.9.1/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=C:/WORKING/NED/Nordic/Software/Testing/lvgl=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v1.9.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v1.9.1=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl.c.obj -MF zephyr\lib\gui\lvgl\CMakeFiles\lib__gui__lvgl.dir\lvgl.c.obj.d -o zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl.c.obj -c C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl.c
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl.c:17:10: error: #include expects "FILENAME" or <FILENAME>
   17 | #include LV_MEM_CUSTOM_INCLUDE
      |          ^~~~~~~~~~~~~~~~~~~~~
C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl.c: In function 'lvgl_allocate_rendering_buffers':
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl.c:91:68: error: 'lv_disp_drv_t' {aka 'struct _disp_drv_t'} has no member named 'user_data'
   91 |  const struct device *display_dev = (const struct device *)disp_drv->user_data;
      |                                                                    ^~
C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl.c: In function 'lvgl_init':
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl.c:331:2: warning: implicit declaration of function 'lv_log_register_print_cb' [-Wimplicit-function-declaration]
  331 |  lv_log_register_print_cb(lvgl_log);
      |  ^~~~~~~~~~~~~~~~~~~~~~~~
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl.c:341:10: error: 'lv_disp_drv_t' {aka 'struct _disp_drv_t'} has no member named 'user_data'
  341 |  disp_drv.user_data = (void *) display_dev;
      |          ^
[59/279] Building C object zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_16bit.c.obj
FAILED: zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_16bit.c.obj
C:\ncs\v1.9.1\toolchain\opt\bin\arm-none-eabi-gcc.exe -DBUILD_VERSION=v2.7.99-ncs1-1 -DKERNEL -DLV_CONF_INCLUDE_SIMPLE=1 -DNRF52840_XXAA -DUSE_PARTITION_MANAGER=0 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/ncs/v1.9.1/zephyr/include -Izephyr/include/generated -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/nrf52 -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/common/. -IC:/ncs/v1.9.1/nrf/include -IC:/ncs/v1.9.1/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/mdk -IC:/ncs/v1.9.1/zephyr/modules/hal_nordic/nrfx/. -IC:/ncs/v1.9.1/modules/debug/segger/SEGGER -IC:/ncs/v1.9.1/modules/debug/segger/Config -IC:/ncs/v1.9.1/zephyr/modules/segger/. -IC:/ncs/v1.9.1/zephyr/lib/gui/lvgl -IC:/ncs/v1.9.1/modules/lib/gui/lvgl -isystem C:/ncs/v1.9.1/zephyr/lib/libc/minimal/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed -isystem C:/ncs/v1.9.1/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros C:/WORKING/NED/Nordic/Software/Testing/lvgl/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -imacros C:/ncs/v1.9.1/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=C:/WORKING/NED/Nordic/Software/Testing/lvgl=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v1.9.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v1.9.1=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_16bit.c.obj -MF zephyr\lib\gui\lvgl\CMakeFiles\lib__gui__lvgl.dir\lvgl_display_16bit.c.obj.d -o zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_16bit.c.obj -c C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_16bit.c
C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_16bit.c: In function 'lvgl_flush_cb_16bit':
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl_display_16bit.c:14:68: error: 'struct _disp_drv_t' has no member named 'user_data'
   14 |  const struct device *display_dev = (const struct device *)disp_drv->user_data;
      |                                                                    ^~
[60/279] Linking C static library zephyr\lib\libc\minimal\liblib__libc__minimal.a
[61/279] Building C object zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_24bit.c.obj
FAILED: zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_24bit.c.obj
C:\ncs\v1.9.1\toolchain\opt\bin\arm-none-eabi-gcc.exe -DBUILD_VERSION=v2.7.99-ncs1-1 -DKERNEL -DLV_CONF_INCLUDE_SIMPLE=1 -DNRF52840_XXAA -DUSE_PARTITION_MANAGER=0 -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/ncs/v1.9.1/zephyr/include -Izephyr/include/generated -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/nrf52 -IC:/ncs/v1.9.1/zephyr/soc/arm/nordic_nrf/common/. -IC:/ncs/v1.9.1/nrf/include -IC:/ncs/v1.9.1/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v1.9.1/modules/hal/nordic/nrfx/mdk -IC:/ncs/v1.9.1/zephyr/modules/hal_nordic/nrfx/. -IC:/ncs/v1.9.1/modules/debug/segger/SEGGER -IC:/ncs/v1.9.1/modules/debug/segger/Config -IC:/ncs/v1.9.1/zephyr/modules/segger/. -IC:/ncs/v1.9.1/zephyr/lib/gui/lvgl -IC:/ncs/v1.9.1/modules/lib/gui/lvgl -isystem C:/ncs/v1.9.1/zephyr/lib/libc/minimal/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include -isystem c:/ncs/v1.9.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed -isystem C:/ncs/v1.9.1/nrfxlib/crypto/nrf_cc310_platform/include -Os -imacros C:/WORKING/NED/Nordic/Software/Testing/lvgl/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfp16-format=ieee -imacros C:/ncs/v1.9.1/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=C:/WORKING/NED/Nordic/Software/Testing/lvgl=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v1.9.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v1.9.1=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_24bit.c.obj -MF zephyr\lib\gui\lvgl\CMakeFiles\lib__gui__lvgl.dir\lvgl_display_24bit.c.obj.d -o zephyr/lib/gui/lvgl/CMakeFiles/lib__gui__lvgl.dir/lvgl_display_24bit.c.obj -c C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_24bit.c
C:/ncs/v1.9.1/zephyr/lib/gui/lvgl/lvgl_display_24bit.c: In function 'lvgl_flush_cb_24bit':
C:\ncs\v1.9.1\zephyr\lib\gui\lvgl\lvgl_display_24bit.c:14:68: error: 'struct _disp_drv_t' has no member named 'user_data'
   14 |  const struct device *display_dev = (const struct device *)disp_drv->user_data;
      |                                                                    ^~
[62/279] Building C object zephyr/soc/arm/common/cortex_m/CMakeFiles/soc__arm__common__cortex_m.dir/arm_mpu_regions.c.obj
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: 'c:\ncs\v1.9.1\toolchain\opt\bin\cmake.EXE' --build 'c:\WORKING\NED\Nordic\Software\Testing\lvgl\build'

 *  The terminal process terminated with exit code: 1.
 *  Terminal will be reused by tasks, press any key to close it.

Parents
  • Hi,

    You need a display driver for the display you are trying to use. If you do not have a display connected, you can use the dummy_dc driver to get the sample running without a display.

    To do this add a nrf52840dk_nrf52840.overlay file and copy the contents from dummy_dc.overlay.

    Also add these configs to prj.conf:

    CONFIG_DUMMY_DISPLAY=y
    CONFIG_LOG_STRDUP_BUF_COUNT=16

    The log config is due to some log buffer allocation errors I saw without it.

    If you have a display connected that you would like to use, let me know which display you are using and I will check if zephyr has a driver for that display.

Reply
  • Hi,

    You need a display driver for the display you are trying to use. If you do not have a display connected, you can use the dummy_dc driver to get the sample running without a display.

    To do this add a nrf52840dk_nrf52840.overlay file and copy the contents from dummy_dc.overlay.

    Also add these configs to prj.conf:

    CONFIG_DUMMY_DISPLAY=y
    CONFIG_LOG_STRDUP_BUF_COUNT=16

    The log config is due to some log buffer allocation errors I saw without it.

    If you have a display connected that you would like to use, let me know which display you are using and I will check if zephyr has a driver for that display.

Children
  • Hi,

    Thanks for the help.

    We are using the GC9A01A

    https://www.makerfabs.com/desfile/files/GC9A01A.pdf

    I also updated the nrf52840dk_nrf52840.overlay  and added the CONFIG_DUMMY_DISPLAY and CONFIG_LOG_STRDUP_BUF_COUNT to the prj.conf but I'm basically getting the same compile errors above.

    Please let us know

  • Did you do a pristine build? Try deleting the build folder and building again. If you are still having issues, could you show me what your prj.conf and overlay file looks like now?

    I do not believe Zephyr has a specific driver for that board, so to use your display you will likely have to write a driver for it yourself.

    Here Simon explains how to add a driver to the SDK: https://devzone.nordicsemi.com/f/nordic-q-a/66230/how-to-add-new-i2c-based-sensor-device-to-ncs-v1-3-0-zephyr-drivers-sensor/271109#271109
    The thread is a little old, but I believe most of the information is still valid.

    You can also take a look at zephyr/samples/application_development/out_of_tree_driver if you want to keep the driver files in your project folder.

  • Hi,

    Im trying to use DMA with SPI. I dont see good examples for NRF52840 and DMA online..

    I've have the following code on the NRF52840 board:

    I have the spi connected to the GC9A01 display from previous code, and it works.

    The above code works..

    In my GC9A01.c   I've added some different code for the SPI and also to include SPIM (dma)

    I am unable to include "nrf_drv_spi.h" ... That file doesnt seem to exist.

    for the spim, I include "nrfx_spim.h" and that does work.

    Also these are the pins that work for my spi connection to the display

    these are specified in nrf52840_nrf52840.overlay

    &spi1 {
        compatible = "nordic,nrf-spim";
        status = "okay";
        sck-pin = <4>;
        mosi-pin = <11>;
        miso-pin = <25>;
        cs-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
    };

    This is my function for the GC9A01_spi_tx .. It either uses spi or spim,

    the nrf_drv_spi_transfer is not found because there is  no "nrf_dev_spi.h"

    and

    the nrfx_spim_xfer does not seem to work when compiled

    void GC9A01_spi_tx(uint8_t *data, size_t len) {
    #if defined(SPI) && (SPI)
    OLD_GC9A01_spi_tx(data,len);
       // nrf_drv_spi_transfer(&lcd_spi, data, len, 0, 0);
    #else
        nrfx_spim_xfer(&lcd_spim, &xfer_desc, 0); // for SPIM
    #endif
    }

    and here is my write command

    void GC9A01_write_command(uint8_t cmd) {
        DC_OFF;
        CS_OFF;
    #if (!SPI)
        xfer_desc.p_tx_buffer = &cmd;      // for SPIM
        xfer_desc.tx_length = sizeof(cmd); // for SPIM
    #endif
        GC9A01_spi_tx(&cmd, sizeof(cmd));
        CS_ON;
    }

    Questions

    1. How do I include "nrf_dev_spi.h" ?

    2. Does the spim connection need to use different pins ?

    3. Do I need to specify anything in the overlay or anywhere else to enable SPIM ?

    Any suggestions ?

  • Hi, apologies for the late response

    How is the situation now? Have you been able to solve the issues? Is there something you would like me to assist you with?

Related