Getting the following build error when trying to build a test program after adding my HDC2022 driver to Zephyr:
user@MSOE-PF2CWB0L MINGW64 ~/Tecovan/dev_projects/ti_hdc_20x0_test $ west build -b nrf5340dk_nrf5340_cpuappns && west flash [0/1] Re-running CMake... Including boilerplate (Zephyr base (cached)): C:/Users/user/ncs/v1.5.1/zephyr/cmake/app/boilerplate.cmake -- Application: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test -- Using NCS Toolchain 1.5.1 for building. (C:/Users/user/ncs/v1.5.1/toolchain/cmake) -- Zephyr version: 2.4.99 (C:/Users/user/ncs/v1.5.1/zephyr) -- Found west (found suitable version "0.9.0", minimum required is "0.7.1") -- Board: nrf5340dk_nrf5340_cpuappns -- Cache files will be written to: C:/Users/user/ncs/v1.5.1/zephyr/.cache -- Found dtc: C:/Users/user/ncs/v1.5.1/toolchain/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") -- Found toolchain: gnuarmemb (C:/Users/user/ncs/v1.5.1/toolchain/opt) -- Found BOARD.dts: C:/Users/user/ncs/v1.5.1/zephyr/boards/arm/nrf5340dk_nrf5340/nrf5340dk_nrf5340_cpuappns.dts -- Found devicetree overlay: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/nrf5340dk_nrf5340_cpuappns.overlay -- Generated zephyr.dts: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/zephyr/zephyr.dts -- Generated devicetree_unfixed.h: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/zephyr/include/generated/devicetree_unfixed.h -- Generated device_extern.h: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/zephyr/include/generated/device_extern.h Parsing C:/Users/user/ncs/v1.5.1/zephyr/Kconfig Loaded configuration 'C:/Users/user/ncs/v1.5.1/zephyr/boards/arm/nrf5340dk_nrf5340/nrf5340dk_nrf5340_cpuappns_defconfig' Merged configuration 'C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/prj.conf' No change to configuration in 'C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/zephyr/.config' No change to Kconfig header in 'C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/zephyr/include/generated/autoconf.h' Changed board to secure nrf5340dk_nrf5340_cpuapp (NOT NS) === child image spm - begin === Including boilerplate (Zephyr base (cached)): C:/Users/user/ncs/v1.5.1/zephyr/cmake/app/boilerplate.cmake -- Application: C:/Users/user/ncs/v1.5.1/nrf/samples/spm -- Using NCS Toolchain 1.5.1 for building. (C:/Users/user/ncs/v1.5.1/toolchain/cmake) -- Zephyr version: 2.4.99 (C:/Users/user/ncs/v1.5.1/zephyr) -- Found west (found suitable version "0.9.0", minimum required is "0.7.1") -- Board: nrf5340dk_nrf5340_cpuapp -- Cache files will be written to: C:/Users/user/ncs/v1.5.1/zephyr/.cache -- Found dtc: C:/Users/user/ncs/v1.5.1/toolchain/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") -- Found toolchain: gnuarmemb (C:/Users/user/ncs/v1.5.1/toolchain/opt) -- Found BOARD.dts: C:/Users/user/ncs/v1.5.1/zephyr/boards/arm/nrf5340dk_nrf5340/nrf5340dk_nrf5340_cpuapp.dts -- Generated zephyr.dts: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/spm/zephyr/zephyr.dts -- Generated devicetree_unfixed.h: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/spm/zephyr/include/generated/devicetree_unfixed.h -- Generated device_extern.h: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/spm/zephyr/include/generated/device_extern.h Parsing C:/Users/user/ncs/v1.5.1/zephyr/Kconfig Loaded configuration 'C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/spm/zephyr/.config' No change to configuration in 'C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/spm/zephyr/.config' No change to Kconfig header in 'C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/spm/zephyr/include/generated/autoconf.h' -- Configuring done -- Generating done -- Build files have been written to: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/spm === child image spm - end === CMake Warning at C:/Users/user/ncs/v1.5.1/zephyr/CMakeLists.txt:1357 (message): __ASSERT() statements are globally ENABLED -- Configuring done -- Generating done -- Build files have been written to: C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build [0/126] Performing build step for 'spm_subimage' [1/111] Generating misc/generated/syscalls.json, misc/generated/struct_tags.json [2/111] Building C object zephyr/CMakeFiles/offsets.dir/arch/arm/core/offsets/offsets.c.obj [3/111] Generating include/generated/offsets.h [4/111] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/isr_wrapper.S.obj [5/111] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap_helper.S.obj [6/111] Building C object zephyr/arch/common/CMakeFiles/isr_tables.dir/isr_tables.c.obj [7/111] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi.c.obj [8/111] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/prep_c.c.obj [9/111] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/fatal.c.obj [10/111] Building C object zephyr/arch/common/CMakeFiles/arch__common.dir/sw_isr_common.c.obj [11/111] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap.c.obj [12/111] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/thread.c.obj [13/111] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/irq_manage.c.obj [14/111] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/exc_exit.S.obj [15/111] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/reset.S.obj [16/111] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/irq_init.c.obj [17/111] Linking C static library zephyr\arch\common\libisr_tables.a [18/111] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/scb.c.obj [19/111] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/thread_abort.c.obj [20/111] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/cmse/CMakeFiles/arch__arm__core__aarch32__cortex_m__cmse.dir/arm_core_cmse.c.obj [21/111] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/mpu/CMakeFiles/arch__arm__core__aarch32__cortex_m__mpu.dir/arm_core_mpu.c.obj [22/111] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/tz/CMakeFiles/arch__arm__core__aarch32__cortex_m__tz.dir/arm_core_tz.c.obj [23/111] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/abort.c.obj [24/111] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/mpu/CMakeFiles/arch__arm__core__aarch32__cortex_m__mpu.dir/arm_mpu.c.obj [25/111] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault.c.obj [26/111] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/malloc.c.obj [27/111] Linking C static library zephyr\arch\common\libarch__common.a [28/111] Building C object zephyr/soc/arm/common/cortex_m/CMakeFiles/soc__arm__common__cortex_m.dir/arm_mpu_regions.c.obj [29/111] Linking C static library zephyr\arch\arch\arm\core\aarch32\cortex_m\tz\libarch__arm__core__aarch32__cortex_m__tz.a [30/111] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/exit.c.obj [31/111] Linking C static library zephyr\arch\arch\arm\core\aarch32\cortex_m\cmse\libarch__arm__core__aarch32__cortex_m__cmse.a [32/111] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/pthread_common.c.obj [33/111] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/nanosleep.c.obj [34/111] Linking C static library zephyr\arch\arch\arm\core\aarch32\cortex_m\mpu\libarch__arm__core__aarch32__cortex_m__mpu.a [35/111] Linking C static library zephyr\arch\arch\arm\core\aarch32\cortex_m\libarch__arm__core__aarch32__cortex_m.a [36/111] Linking C static library zephyr\soc\arm\common\cortex_m\libsoc__arm__common__cortex_m.a [37/111] Linking C static library zephyr\lib\libc\minimal\liblib__libc__minimal.a [38/111] Building C object modules/nrf/lib/fatal_error/CMakeFiles/..__nrf__lib__fatal_error.dir/fatal_error.c.obj [39/111] Building C object modules/nrf/drivers/hw_cc310/CMakeFiles/..__nrf__drivers__hw_cc310.dir/hw_cc310.c.obj [40/111] Linking C static library zephyr\lib\posix\liblib__posix.a [41/111] Building C object modules/nrf/subsys/fw_info/CMakeFiles/..__nrf__subsys__fw_info.dir/fw_info.c.obj [42/111] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/C_/Users/user/ncs/v1.5.1/modules/hal/nordic/nrfx/drivers/src/nrfx_nvmc.c.obj [43/111] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uarte.c.obj [44/111] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/nrfx/nrfx_glue.c.obj [45/111] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/C_/Users/user/ncs/v1.5.1/modules/hal/nordic/nrfx/drivers/src/nrfx_dppi.c.obj [46/111] Linking C static library modules\nrf\lib\fatal_error\lib..__nrf__lib__fatal_error.a [47/111] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/C_/Users/user/ncs/v1.5.1/modules/hal/nordic/nrfx/drivers/src/nrfx_clock.c.obj [48/111] Linking C static library modules\nrf\drivers\hw_cc310\lib..__nrf__drivers__hw_cc310.a [49/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/errno.c.obj [50/111] Linking C static library modules\nrf\subsys\fw_info\lib..__nrf__subsys__fw_info.a [51/111] Linking C static library zephyr\drivers\serial\libdrivers__serial.a [52/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/idle.c.obj [53/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/fatal.c.obj [54/111] Linking C static library modules\hal_nordic\libmodules__hal_nordic.a [55/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/init.c.obj [56/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/device.c.obj [57/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mutex.c.obj [58/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/kheap.c.obj [59/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mem_slab.c.obj [60/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/msg_q.c.obj [61/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/stack.c.obj [62/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/pipes.c.obj [63/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mailbox.c.obj [64/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/system_work_q.c.obj [65/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/thread.c.obj [66/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/sem.c.obj [67/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/xip.c.obj [68/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/thread_abort.c.obj [69/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/queue.c.obj [70/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/condvar.c.obj [71/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/banner.c.obj [72/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mempool.c.obj [73/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/sched.c.obj [74/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/work_q.c.obj [75/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/smp.c.obj [76/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timer.c.obj [77/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/notify.c.obj [78/111] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timeout.c.obj [79/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/printk.c.obj [80/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/fdtable.c.obj [81/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/sem.c.obj [82/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/thread_entry.c.obj [83/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/work_q.c.obj [84/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/rb.c.obj [85/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/onoff.c.obj [86/111] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_base_addresses.c.obj [87/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap-validate.c.obj [88/111] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/nrf53/power.c.obj [89/111] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap.c.obj [90/111] Linking C static library zephyr\kernel\libkernel.a [91/111] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/nrf53/soc.c.obj [92/111] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/power/policy/policy_residency.c.obj [93/111] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_enabled_instances.c.obj [94/111] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/power/power.c.obj [95/111] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/console/uart_console.c.obj [96/111] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/power/reboot.c.obj [97/111] Building C object zephyr/CMakeFiles/zephyr.dir/C_/Users/user/ncs/v1.5.1/nrfxlib/crypto/nrf_cc312_platform/src/nrf_cc3xx_platform_mutex_zephyr.c.obj [98/111] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/timer/nrf_rtc_timer.c.obj [99/111] Building C object zephyr/CMakeFiles/zephyr.dir/C_/Users/user/ncs/v1.5.1/nrfxlib/crypto/nrf_cc312_platform/src/nrf_cc3xx_platform_abort_zephyr.c.obj [100/111] Generating linker.cmd [101/111] Linking C static library zephyr\arch\arch\arm\core\aarch32\libarch__arm__core__aarch32.a [102/111] Building C object zephyr/CMakeFiles/zephyr.dir/C_/Users/user/ncs/v1.5.1/nrf/subsys/spm/secure_services.c.obj [103/111] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/timer/sys_clock_init.c.obj [104/111] Building C object zephyr/CMakeFiles/zephyr.dir/C_/Users/user/ncs/v1.5.1/nrf/subsys/spm/spm.c.obj [105/111] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/clock_control/clock_control_nrf.c.obj [106/111] Linking C static library zephyr\libzephyr.a [107/111] Linking C executable zephyr\zephyr_prebuilt.elf Memory region Used Size Region Size %age Used FLASH: 32 KB 32 KB 100.00% SRAM: 8688 B 32 KB 26.51% IDT_LIST: 56 B 2 KB 2.73% [108/111] Generating linker_pass_final.cmd [109/111] Generating isr_tables.c [110/111] Building C object zephyr/CMakeFiles/zephyr_final.dir/isr_tables.c.obj [111/111] Linking C executable zephyr\zephyr.elf [1/126] Generating misc/generated/syscalls.json, misc/generated/struct_tags.json [3/124] Building C object zephyr/CMakeFiles/offsets.dir/arch/arm/core/offsets/offsets.c.obj [4/124] Generating include/generated/offsets.h [5/124] Building C object zephyr/CMakeFiles/zephyr.dir/misc/generated/configs.c.obj [6/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/timeutil.c.obj [7/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/thread_entry.c.obj [8/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/printk.c.obj [9/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/work_q.c.obj [10/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/sem.c.obj [11/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/assert.c.obj [12/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf_complete.c.obj [13/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap.c.obj [14/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap-validate.c.obj [15/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/fdtable.c.obj [16/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/notify.c.obj [17/124] Building C object modules/nrf/lib/fatal_error/CMakeFiles/..__nrf__lib__fatal_error.dir/fatal_error.c.obj [18/124] Building C object modules/nrf/subsys/fw_info/CMakeFiles/..__nrf__subsys__fw_info.dir/fw_info.c.obj [19/124] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/C_/Users/user/ncs/v1.5.1/modules/hal/nordic/nrfx/drivers/src/nrfx_dppi.c.obj [20/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/rb.c.obj [21/124] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/onoff.c.obj [22/124] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/C_/Users/user/ncs/v1.5.1/modules/hal/nordic/nrfx/drivers/src/nrfx_clock.c.obj [23/124] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/C_/Users/user/ncs/v1.5.1/modules/hal/nordic/nrfx/drivers/src/nrfx_nvmc.c.obj [24/124] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/nrfx/nrfx_glue.c.obj [25/124] Linking C static library modules\nrf\lib\fatal_error\lib..__nrf__lib__fatal_error.a [26/124] Linking C static library modules\nrf\subsys\fw_info\lib..__nrf__subsys__fw_info.a [27/124] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/C_/Users/user/ncs/v1.5.1/modules/hal/nordic/nrfx/drivers/src/nrfx_twi_twim.c.obj [28/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/idle.c.obj [29/124] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/C_/Users/user/ncs/v1.5.1/modules/hal/nordic/nrfx/drivers/src/nrfx_gpiote.c.obj [30/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/device.c.obj [31/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/init.c.obj [32/124] Building C object modules/hal_nordic/CMakeFiles/modules__hal_nordic.dir/C_/Users/user/ncs/v1.5.1/modules/hal/nordic/nrfx/drivers/src/nrfx_twim.c.obj [33/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/errno.c.obj [34/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/kheap.c.obj [35/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/fatal.c.obj [36/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mailbox.c.obj [37/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mutex.c.obj [38/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/msg_q.c.obj [39/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/queue.c.obj [40/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mem_slab.c.obj [41/124] Linking C static library modules\hal_nordic\libmodules__hal_nordic.a [42/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/thread_abort.c.obj [43/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/sem.c.obj [44/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/pipes.c.obj [45/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/system_work_q.c.obj [46/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/thread.c.obj [47/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/banner.c.obj [48/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/smp.c.obj [49/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/stack.c.obj [50/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/condvar.c.obj [51/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/xip.c.obj [52/124] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/reset.S.obj [53/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/work_q.c.obj [54/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/sched.c.obj [55/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mempool.c.obj [56/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timeout.c.obj [57/124] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timer.c.obj [58/124] Building C object CMakeFiles/app.dir/src/main.c.obj ../src/main.c: In function 'main': ../src/main.c:29:3: warning: implicit declaration of function 'hdc20x0_sample_fetch' [-Wimplicit-function-declaration] 29 | hdc20x0_sample_fetch(dev, SENSOR_CHAN_ALL); | ^~~~~~~~~~~~~~~~~~~~ ../src/main.c:30:3: warning: implicit declaration of function 'hdc20x0_channel_get' [-Wimplicit-function-declaration] 30 | hdc20x0_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP, &temp); | ^~~~~~~~~~~~~~~~~~~ [59/124] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/nrf53/soc.c.obj [60/124] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/power/reboot.c.obj [61/124] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault.c.obj [62/124] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_base_addresses.c.obj [63/124] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_enabled_instances.c.obj [64/124] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/nrf53/power.c.obj [65/124] Linking C static library app\libapp.a [66/124] Building C object zephyr/CMakeFiles/zephyr.dir/C_/Users/user/ncs/v1.5.1/nrf/subsys/nonsecure/secure_services_ns.c.obj [67/124] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/power/power.c.obj [68/124] Linking C static library zephyr\kernel\libkernel.a [69/124] Generating linker.cmd [70/124] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/console/uart_console.c.obj [71/124] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/power/policy/policy_residency.c.obj [72/124] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/timer/sys_clock_init.c.obj [73/124] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/irq_manage.c.obj [74/124] Building C object zephyr/arch/common/CMakeFiles/isr_tables.dir/isr_tables.c.obj [75/124] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/clock_control/clock_control_nrf.c.obj [76/124] Building C object zephyr/arch/common/CMakeFiles/arch__common.dir/sw_isr_common.c.obj [77/124] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap_helper.S.obj [78/124] Building C object zephyr/CMakeFiles/zephyr_prebuilt.dir/misc/empty_file.c.obj [79/124] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/timer/nrf_rtc_timer.c.obj [80/124] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/isr_wrapper.S.obj [81/124] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/thread.c.obj [82/124] Linking C static library zephyr\arch\common\libisr_tables.a [83/124] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap.c.obj [84/124] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/prep_c.c.obj [85/124] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi.c.obj [86/124] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/exc_exit.S.obj [87/124] Linking C static library zephyr\libzephyr.a [88/124] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/fatal.c.obj [89/124] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/thread_abort.c.obj [90/124] Linking C static library zephyr\arch\common\libarch__common.a [91/124] Building C object zephyr/drivers/sensor/hdc20x0/CMakeFiles/drivers__sensor__hdc20x0.dir/hdc20x0.c.obj C:/Users/user/ncs/v1.5.1/zephyr/drivers/sensor/hdc20x0/hdc20x0.c:243:13: warning: Macro is deprecated 243 | &hdc20x0_api_funcs); | ^~~~~~~~~~~~~~ [92/124] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uarte.c.obj [93/124] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/scb.c.obj [94/124] Linking C static library zephyr\arch\arch\arm\core\aarch32\libarch__arm__core__aarch32.a [95/124] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/irq_init.c.obj [96/124] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/mpu/CMakeFiles/arch__arm__core__aarch32__cortex_m__mpu.dir/arm_core_mpu.c.obj [97/124] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/abort.c.obj [98/124] Linking C static library zephyr\drivers\sensor\hdc20x0\libdrivers__sensor__hdc20x0.a [99/124] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/exit.c.obj [100/124] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/cmse/CMakeFiles/arch__arm__core__aarch32__cortex_m__cmse.dir/arm_core_cmse.c.obj [101/124] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/mpu/CMakeFiles/arch__arm__core__aarch32__cortex_m__mpu.dir/arm_mpu.c.obj [102/124] Linking C static library zephyr\drivers\serial\libdrivers__serial.a [103/124] Building C object zephyr/lib/libc/minimal/CMakeFiles/lib__libc__minimal.dir/source/stdlib/malloc.c.obj [104/124] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/pthread_common.c.obj [105/124] Linking C static library zephyr\arch\arch\arm\core\aarch32\cortex_m\libarch__arm__core__aarch32__cortex_m.a [106/124] Building C object zephyr/soc/arm/common/cortex_m/CMakeFiles/soc__arm__common__cortex_m.dir/arm_mpu_regions.c.obj [107/124] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/nanosleep.c.obj [108/124] Linking C static library zephyr\arch\arch\arm\core\aarch32\cortex_m\cmse\libarch__arm__core__aarch32__cortex_m__cmse.a [109/124] Linking C static library zephyr\arch\arch\arm\core\aarch32\cortex_m\mpu\libarch__arm__core__aarch32__cortex_m__mpu.a [110/124] Building C object zephyr/drivers/i2c/CMakeFiles/drivers__i2c.dir/i2c_common.c.obj [111/124] Linking C static library zephyr\lib\libc\minimal\liblib__libc__minimal.a [112/124] Linking C static library zephyr\lib\posix\liblib__posix.a [113/124] Linking C static library zephyr\soc\arm\common\cortex_m\libsoc__arm__common__cortex_m.a [114/124] Building C object zephyr/drivers/i2c/CMakeFiles/drivers__i2c.dir/i2c_nrfx_twim.c.obj [115/124] Building C object zephyr/drivers/gpio/CMakeFiles/drivers__gpio.dir/gpio_nrfx.c.obj [116/124] Linking C static library zephyr\drivers\i2c\libdrivers__i2c.a [117/124] Linking C static library zephyr\drivers\gpio\libdrivers__gpio.a [118/124] Linking C executable zephyr\zephyr_prebuilt.elf FAILED: zephyr/zephyr_prebuilt.elf cmd.exe /C "cd . && C:\Users\user\ncs\v1.5.1\toolchain\opt\bin\arm-none-eabi-gcc.exe zephyr/CMakeFiles/zephyr_prebuilt.dir/misc/empty_file.c.obj -o zephyr\zephyr_prebuilt.elf -Wl,-T zephyr/linker.cmd -Wl,-Map=C:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/zephyr/zephyr_prebuilt.map -Wl,--whole-archive app/libapp.a zephyr/libzephyr.a zephyr/arch/common/libarch__common.a zephyr/arch/arch/arm/core/aarch32/libarch__arm__core__aarch32.a zephyr/arch/arch/arm/core/aarch32/cortex_m/libarch__arm__core__aarch32__cortex_m.a zephyr/arch/arch/arm/core/aarch32/cortex_m/mpu/libarch__arm__core__aarch32__cortex_m__mpu.a zephyr/arch/arch/arm/core/aarch32/cortex_m/cmse/libarch__arm__core__aarch32__cortex_m__cmse.a zephyr/lib/libc/minimal/liblib__libc__minimal.a zephyr/lib/posix/liblib__posix.a zephyr/soc/arm/common/cortex_m/libsoc__arm__common__cortex_m.a zephyr/drivers/gpio/libdrivers__gpio.a zephyr/drivers/i2c/libdrivers__i2c.a zephyr/drivers/sensor/hdc20x0/libdrivers__sensor__hdc20x0.a zephyr/drivers/serial/libdrivers__serial.a modules/nrf/lib/fatal_error/lib..__nrf__lib__fatal_error.a modules/nrf/subsys/fw_info/lib..__nrf__subsys__fw_info.a modules/hal_nordic/libmodules__hal_nordic.a -Wl,--no-whole-archive zephyr/kernel/libkernel.a zephyr/CMakeFiles/offsets.dir/./arch/arm/core/offsets/offsets.c.obj -L"c:/users/user/ncs/v1.5.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v8-m.main/nofp" -LC:/Users/user/Tecovan/dev_projects/ti_hdc_20x0_test/build/zephyr -lgcc -Wl,--print-memory-usage zephyr/arch/common/libisr_tables.a -mcpu=cortex-m33 -mthumb -mabi=aapcs -Wl,--gc-sections -Wl,--build-id=none -Wl,--sort-common=descending -Wl,--sort-section=alignment -Wl,-u,_OffsetAbsSyms -Wl,-u,_ConfigAbsSyms -nostdlib -static -no-pie -Wl,-X -Wl,-N -Wl,--orphan-handling=warn spm/libspmsecureentries.a && cd ." Memory region Used Size Region Size %age Used FLASH: 35536 B 992 KB 3.50% SRAM: 4448 B 480 KB 0.90% IDT_LIST: 88 B 2 KB 4.30c:/users/user/ncs/v1.5.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: app/libapp.a(main.c.obj): in function `main': C:\Users\user\Tecovan\dev_projects\ti_hdc_20x0_test\build/../src/main.c:29: undefined reference to `hdc20x0_sample_fetch' c:/users/user/ncs/v1.5.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\user\Tecovan\dev_projects\ti_hdc_20x0_test\build/../src/main.c:30: undefined reference to `hdc20x0_channel_get' c:/users/user/ncs/v1.5.1/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\user\Tecovan\dev_projects\ti_hdc_20x0_test\build/../src/main.c:31: undefined reference to `hdc20x0_channel_get' collect2.exe: error: ld returned 1 exit status % ninja: build stopped: subcommand failed. FATAL ERROR: command exited with status 1: 'C:\Users\user\ncs\v1.5.1\toolchain\opt\bin\cmake.EXE' --build 'C:\Users\user\Tecovan\dev_projects\ti_hdc_20x0_test\build'
I think this simply has to do with a linker issue I'm missing or not understanding. I'll post all my project files in hopes someone can see something I'm not.
Here is the driver I am working with and the associated files:
sensor//hdc20x0/hdc20x0.c (driver):
/* Driver for TI hdc20x0 * hdc20x0 ±2% digital humidity sensor with temperature sensor */ /* * Copyright (c) 2020 seeed.cc * * SPDX-License-Identifier: Apache-2.0 */ #define DT_DRV_COMPAT ti_hdc20x0 #include <kernel.h> #include <drivers/sensor.h> #include <init.h> #include <sys/byteorder.h> #include <sys/util.h> #include <drivers/i2c.h> #include <logging/log.h> LOG_MODULE_REGISTER(hdc20x0, CONFIG_SENSOR_LOG_LEVEL); /* Register addresses as in the datasheet */ #define hdc20x0_REG_TEMP_LOW 0x00 #define hdc20x0_REG_TEMP_HIGH 0x01 #define hdc20x0_REG_HUMIDITY_LOW 0x02 #define hdc20x0_REG_HUMIDITY_HIGH 0x03 #define hdc20x0_REG_INTERRUPT_DRDY 0x04 #define hdc20x0_REG_TEMP_MAX 0x05 #define hdc20x0_REG_HUMIDITY_MAX 0x06 #define hdc20x0_REG_INTERRUPT_EN 0x07 #define hdc20x0_REG_TEMP_OFFSET_ADJ 0x08 #define hdc20x0_REG_HUMIDITY_OFFSET_ADJ 0x09 #define hdc20x0_REG_TEMP_THR_L 0x0a #define hdc20x0_REG_TEMP_THR_H 0x0b #define hdc20x0_REG_RH_THR_L 0x0c #define hdc20x0_REG_RH_THR_H 0x0d #define hdc20x0_REG_RESET_DRDY_INT_CONF 0x0e #define hdc20x0_REG_CONF 0x0f #define hdc20x0_MEAS_CONF GENMASK(2, 1) #define hdc20x0_MEAS_TRIG BIT(0) #define hdc20x0_HEATER_EN BIT(3) #define hdc20x0_AMM GENMASK(6, 4) struct hdc20x0_data { const struct device *i2c_master; /* Temperature Values */ int32_t temp_val1; int32_t temp_val2; /* Humidity Values*/ int32_t humidity_val1; int32_t humidity_val2; }; struct hdc20x0_cfg { char *i2c_bus_name; uint16_t i2c_addr; }; static int hdc20x0_read_temperature(struct hdc20x0_data *data, const struct hdc20x0_cfg *config) { uint8_t val; float celsius; if (i2c_reg_read_byte(data->i2c_master, config->i2c_addr, hdc20x0_REG_TEMP_LOW, &val)) { LOG_ERR("Failed to get temperature LSB "); return -EIO; } data->temp_val1 = val; if (i2c_reg_read_byte(data->i2c_master, config->i2c_addr, hdc20x0_REG_TEMP_HIGH, &val)) { LOG_ERR("Failed to get temperature MSB "); return -EIO; } data->temp_val2 = val; LOG_DBG("temperature, val1:0x%x, val2:0x%x", data->temp_val1, data->temp_val2); /*https://www.ti.com/lit/ds/symlink/hdc20x0.pdf*/ /*7.6.2 Address 0x01 Temperature MSB*/ celsius = ((data->temp_val2 * 256 + data->temp_val1) / 65536.0) * 165 - 40; data->temp_val1 = (int)celsius; data->temp_val2 = (celsius - data->temp_val1) * 1000000LL; return 0; } static int hdc20x0_read_humidity(struct hdc20x0_data *data, const struct hdc20x0_cfg *config) { uint8_t val; float rh; if (i2c_reg_read_byte(data->i2c_master, config->i2c_addr, hdc20x0_REG_HUMIDITY_LOW, &val)) { LOG_ERR("Failed to get humidity LSB "); return -EIO; } data->humidity_val1 = val; if (i2c_reg_read_byte(data->i2c_master, config->i2c_addr, hdc20x0_REG_HUMIDITY_HIGH, &val)) { LOG_ERR("Failed to get humidity MSB "); return -EIO; } data->humidity_val2 = val; LOG_DBG("humidity , val1:0x%x, val2:0x%x", data->humidity_val1, data->humidity_val2); /*https://www.ti.com/lit/ds/symlink/hdc20x0.pdf*/ /*7.6.4 Address 0x03 Humidity MSB*/ rh = ((data->humidity_val2 * 256 + data->humidity_val1) / 65536.0) * 100; data->humidity_val1 = (int)rh; data->humidity_val2 = (rh - data->humidity_val1) * 1000000LL; return 0; } static int hdc20x0_read_all(struct hdc20x0_data *data, const struct hdc20x0_cfg *config) { if (hdc20x0_read_temperature(data, config)) { return -EIO; } if (hdc20x0_read_humidity(data, config)) { return -EIO; } return 0; } static int hdc20x0_init(const struct device *dev) { struct hdc20x0_data *data = dev->data; const struct hdc20x0_cfg *config = dev->config; int ret; data->i2c_master = device_get_binding(config->i2c_bus_name); if (data->i2c_master == NULL) { LOG_ERR("Failed to get I2C device"); return -EINVAL; } LOG_DBG("Init hdc20x0"); /* Enable Automatic Measurement Mode at 5Hz */ if (i2c_reg_write_byte(data->i2c_master, config->i2c_addr, hdc20x0_REG_RESET_DRDY_INT_CONF, hdc20x0_AMM)) { return -EIO; } /* * We enable both temp and humidity measurement. * However the measurement won't start even in AMM until triggered. */ ret = i2c_reg_write_byte(data->i2c_master, config->i2c_addr, hdc20x0_REG_CONF, hdc20x0_MEAS_TRIG); if (ret) { LOG_ERR("Unable to set up measurement\n"); return ret; } LOG_DBG("Init OK"); return 0; } static int hdc20x0_sample_fetch(const struct device *dev, enum sensor_channel chan) { struct hdc20x0_data *data = dev->data; const struct hdc20x0_cfg *config = dev->config; LOG_DBG("Fetching sample from hdc20x0"); switch (chan) { case SENSOR_CHAN_AMBIENT_TEMP: if (hdc20x0_read_temperature(data, config)) { LOG_ERR("Failed to measure temperature"); return -EIO; } break; case SENSOR_CHAN_HUMIDITY: if (hdc20x0_read_humidity(data, config)) { LOG_ERR("Failed to measure humidity"); return -EIO; } break; case SENSOR_CHAN_ALL: if (hdc20x0_read_all(data, config)) { LOG_ERR("Failed to measure temperature and humidity"); return -EIO; } break; default: return -EINVAL; } return 0; } static int hdc20x0_channel_get(const struct device *dev, enum sensor_channel chan, struct sensor_value *val) { struct hdc20x0_data *data = dev->data; switch (chan) { case SENSOR_CHAN_AMBIENT_TEMP: val->val1 = data->temp_val1; val->val2 = data->temp_val2; break; case SENSOR_CHAN_HUMIDITY: val->val1 = data->humidity_val1; val->val2 = data->humidity_val2; break; case SENSOR_CHAN_ALL: val->val1 = data->temp_val1; val->val2 = data->temp_val2; (val + 1)->val1 = data->humidity_val1; (val + 1)->val2 = data->humidity_val2; break; default: return -EINVAL; } return 0; } static const struct sensor_driver_api hdc20x0_api_funcs = { .sample_fetch = hdc20x0_sample_fetch, .channel_get = hdc20x0_channel_get, }; static struct hdc20x0_data hdc20x0_data_0; static const struct hdc20x0_cfg hdc20x0_cfg_0 = { .i2c_bus_name = DT_INST_BUS_LABEL(0), .i2c_addr = DT_INST_REG_ADDR(0) }; DEVICE_AND_API_INIT(hdc20x0, DT_INST_LABEL(0), hdc20x0_init, &hdc20x0_data_0, &hdc20x0_cfg_0, POST_KERNEL, CONFIG_SENSOR_INIT_PRIORITY, &hdc20x0_api_funcs);
sensor/hdc20x0 Kconfig:
# HDC20x0 ±2% ultra-low-power, digital humidity sensor with # temperature sensor in WCSP # Copyright (c) 2020 seeed.cc # SPDX-License-Identifier: Apache-2.0 config HDC20X0 bool "HDC20X0 sensor" depends on I2C help Enable driver for HDC2010/HDC2080 I2C-based digital humidity sensor with temperature sensor.
sensor/hdc20x0 CMakeLists.txt:
# SPDX-License-Identifier: Apache-2.0 zephyr_library() zephyr_library_sources_ifdef(CONFIG_HDC20X0 hdc20x0.c)
zephyr/drivers/sensor Kconfig:
# Sensor configuration options # Copyright (c) 2016 Intel Corporation # SPDX-License-Identifier: Apache-2.0 menuconfig SENSOR bool "Sensor Drivers" help Include sensor drivers in system config if SENSOR module = SENSOR module-str = sensor source "subsys/logging/Kconfig.template.log_config" config SENSOR_INIT_PRIORITY int "Sensor init priority" default 90 help Sensor initialization priority. config SENSOR_SHELL bool "Enable sensor shell" depends on SHELL select CBPRINTF_FP_SUPPORT default y help This shell provides access to basic sensor data. config SENSOR_SHELL_BATTERY bool "Enable sensor shell 'battery' command" depends on SHELL help This enables the 'battery' command which reports charging information in a convenient format. It makes use of a fuel gauge to read its information. comment "Device Drivers" source "drivers/sensor/adt7420/Kconfig" source "drivers/sensor/adxl345/Kconfig" source "drivers/sensor/adxl362/Kconfig" source "drivers/sensor/adxl372/Kconfig" source "drivers/sensor/ak8975/Kconfig" source "drivers/sensor/amg88xx/Kconfig" source "drivers/sensor/ams_iAQcore/Kconfig" source "drivers/sensor/apds9960/Kconfig" source "drivers/sensor/bma280/Kconfig" source "drivers/sensor/bmc150_magn/Kconfig" source "drivers/sensor/bme280/Kconfig" source "drivers/sensor/bme680/Kconfig" source "drivers/sensor/bmg160/Kconfig" source "drivers/sensor/bmi160/Kconfig" source "drivers/sensor/bmm150/Kconfig" source "drivers/sensor/bq274xx/Kconfig" source "drivers/sensor/ccs811/Kconfig" source "drivers/sensor/dht/Kconfig" source "drivers/sensor/dps310/Kconfig" source "drivers/sensor/ens210/Kconfig" source "drivers/sensor/fxas21002/Kconfig" source "drivers/sensor/fxos8700/Kconfig" source "drivers/sensor/grove/Kconfig" source "drivers/sensor/ti_hdc/Kconfig" source "drivers/sensor/hdc20x0/Kconfig" source "drivers/sensor/hmc5883l/Kconfig" source "drivers/sensor/hp206c/Kconfig" source "drivers/sensor/hts221/Kconfig" source "drivers/sensor/icm42605/Kconfig" source "drivers/sensor/iis2dh/Kconfig" source "drivers/sensor/iis2dlpc/Kconfig" source "drivers/sensor/iis2iclx/Kconfig" source "drivers/sensor/iis2mdc/Kconfig" source "drivers/sensor/iis3dhhc/Kconfig" source "drivers/sensor/isl29035/Kconfig" source "drivers/sensor/ism330dhcx/Kconfig" source "drivers/sensor/lis2dh/Kconfig" source "drivers/sensor/lis2ds12/Kconfig" source "drivers/sensor/lis2dw12/Kconfig" source "drivers/sensor/lis2mdl/Kconfig" source "drivers/sensor/lis3mdl/Kconfig" source "drivers/sensor/lps22hb/Kconfig" source "drivers/sensor/lps22hh/Kconfig" source "drivers/sensor/lps25hb/Kconfig" source "drivers/sensor/lsm303dlhc_magn/Kconfig" source "drivers/sensor/lsm6ds0/Kconfig" source "drivers/sensor/lsm6dsl/Kconfig" source "drivers/sensor/lsm6dso/Kconfig" source "drivers/sensor/lsm9ds0_gyro/Kconfig" source "drivers/sensor/lsm9ds0_mfd/Kconfig" source "drivers/sensor/max17055/Kconfig" source "drivers/sensor/max30101/Kconfig" source "drivers/sensor/max44009/Kconfig" source "drivers/sensor/mchp_tach_xec/Kconfig" source "drivers/sensor/mcp9808/Kconfig" source "drivers/sensor/mpr/Kconfig" source "drivers/sensor/mpu6050/Kconfig" source "drivers/sensor/ms5837/Kconfig" source "drivers/sensor/ms5607/Kconfig" source "drivers/sensor/nrf5/Kconfig" source "drivers/sensor/opt3001/Kconfig" source "drivers/sensor/pms7003/Kconfig" source "drivers/sensor/qdec_nrfx/Kconfig" source "drivers/sensor/sht3xd/Kconfig" source "drivers/sensor/si7006/Kconfig" source "drivers/sensor/si7055/Kconfig" source "drivers/sensor/si7060/Kconfig" source "drivers/sensor/sm351lt/Kconfig" source "drivers/sensor/stts751/Kconfig" source "drivers/sensor/sx9500/Kconfig" source "drivers/sensor/th02/Kconfig" source "drivers/sensor/tmp007/Kconfig" source "drivers/sensor/tmp112/Kconfig" source "drivers/sensor/tmp116/Kconfig" source "drivers/sensor/vcnl4040/Kconfig" source "drivers/sensor/vl53l0x/Kconfig" source "drivers/sensor/nxp_kinetis_temp/Kconfig" source "drivers/sensor/wsen_itds/Kconfig" source "drivers/sensor/mcux_acmp/Kconfig" endif # SENSOR
zephyr/drivers/sensor CMakeLists.txt: # SPDX-License-Identifier: Apache-2.0
add_subdirectory_ifdef(CONFIG_ADT7420 adt7420)
add_subdirectory_ifdef(CONFIG_ADXL345 adxl345)
add_subdirectory_ifdef(CONFIG_ADXL362 adxl362)
add_subdirectory_ifdef(CONFIG_ADXL372 adxl372)
add_subdirectory_ifdef(CONFIG_AK8975 ak8975)
add_subdirectory_ifdef(CONFIG_AMG88XX amg88xx)
add_subdirectory_ifdef(CONFIG_AMS_IAQ_CORE ams_iAQcore)
add_subdirectory_ifdef(CONFIG_APDS9960 apds9960)
add_subdirectory_ifdef(CONFIG_BMA280 bma280)
add_subdirectory_ifdef(CONFIG_BMC150_MAGN bmc150_magn)
add_subdirectory_ifdef(CONFIG_BME280 bme280)
add_subdirectory_ifdef(CONFIG_BME680 bme680)
add_subdirectory_ifdef(CONFIG_BMG160 bmg160)
add_subdirectory_ifdef(CONFIG_BMI160 bmi160)
add_subdirectory_ifdef(CONFIG_BMM150 bmm150)
add_subdirectory_ifdef(CONFIG_BQ274XX bq274xx)
add_subdirectory_ifdef(CONFIG_CCS811 ccs811)
add_subdirectory_ifdef(CONFIG_DHT dht)
add_subdirectory_ifdef(CONFIG_DPS310 dps310)
add_subdirectory_ifdef(CONFIG_ENS210 ens210)
add_subdirectory_ifdef(CONFIG_FXAS21002 fxas21002)
add_subdirectory_ifdef(CONFIG_FXOS8700 fxos8700)
add_subdirectory(grove)
add_subdirectory_ifdef(CONFIG_TI_HDC ti_hdc)
add_subdirectory_ifdef(CONFIG_HMC5883L hmc5883l)
add_subdirectory_ifdef(CONFIG_HP206C hp206c)
add_subdirectory_ifdef(CONFIG_HTS221 hts221)
add_subdirectory_ifdef(CONFIG_IIS2DH iis2dh)
add_subdirectory_ifdef(CONFIG_IIS2DLPC iis2dlpc)
add_subdirectory_ifdef(CONFIG_IIS2ICLX iis2iclx)
add_subdirectory_ifdef(CONFIG_IIS2MDC iis2mdc)
add_subdirectory_ifdef(CONFIG_IIS3DHHC iis3dhhc)
add_subdirectory_ifdef(CONFIG_ISL29035 isl29035)
add_subdirectory_ifdef(CONFIG_ISM330DHCX ism330dhcx)
add_subdirectory_ifdef(CONFIG_LIS2DH lis2dh)
add_subdirectory_ifdef(CONFIG_LIS2DS12 lis2ds12)
add_subdirectory_ifdef(CONFIG_LIS2DW12 lis2dw12)
add_subdirectory_ifdef(CONFIG_LIS2MDL lis2mdl)
add_subdirectory_ifdef(CONFIG_LIS3MDL lis3mdl)
add_subdirectory_ifdef(CONFIG_LPS22HB lps22hb)
add_subdirectory_ifdef(CONFIG_LPS22HH lps22hh)
add_subdirectory_ifdef(CONFIG_LPS25HB lps25hb)
add_subdirectory_ifdef(CONFIG_LSM303DLHC_MAGN lsm303dlhc_magn)
add_subdirectory_ifdef(CONFIG_LSM6DS0 lsm6ds0)
add_subdirectory_ifdef(CONFIG_LSM6DSL lsm6dsl)
add_subdirectory_ifdef(CONFIG_LSM6DSO lsm6dso)
add_subdirectory_ifdef(CONFIG_LSM9DS0_GYRO lsm9ds0_gyro)
add_subdirectory_ifdef(CONFIG_LSM9DS0_MFD lsm9ds0_mfd)
add_subdirectory_ifdef(CONFIG_MAX17055 max17055)
add_subdirectory_ifdef(CONFIG_MAX30101 max30101)
add_subdirectory_ifdef(CONFIG_MAX44009 max44009)
add_subdirectory_ifdef(CONFIG_MCP9808 mcp9808)
add_subdirectory_ifdef(CONFIG_MPR mpr)
add_subdirectory_ifdef(CONFIG_MPU6050 mpu6050)
add_subdirectory_ifdef(CONFIG_MS5607 ms5607)
add_subdirectory_ifdef(CONFIG_MS5837 ms5837)
add_subdirectory_ifdef(CONFIG_OPT3001 opt3001)
add_subdirectory_ifdef(CONFIG_HDC20X0 hdc20x0)
add_subdirectory_ifdef(CONFIG_PMS7003 pms7003)
add_subdirectory_ifdef(CONFIG_QDEC_NRFX qdec_nrfx)
add_subdirectory_ifdef(CONFIG_TEMP_NRF5 nrf5)
add_subdirectory_ifdef(CONFIG_SHT3XD sht3xd)
add_subdirectory_ifdef(CONFIG_SI7006 si7006)
add_subdirectory_ifdef(CONFIG_SI7055 si7055)
add_subdirectory_ifdef(CONFIG_SI7060 si7060)
add_subdirectory_ifdef(CONFIG_SM351LT sm351lt)
add_subdirectory_ifdef(CONFIG_STTS751 stts751)
add_subdirectory_ifdef(CONFIG_SX9500 sx9500)
add_subdirectory_ifdef(CONFIG_TH02 th02)
add_subdirectory_ifdef(CONFIG_TMP007 tmp007)
add_subdirectory_ifdef(CONFIG_TMP112 tmp112)
add_subdirectory_ifdef(CONFIG_TMP116 tmp116)
add_subdirectory_ifdef(CONFIG_VCNL4040 vcnl4040)
add_subdirectory_ifdef(CONFIG_VL53L0X vl53l0x)
add_subdirectory_ifdef(CONFIG_TEMP_KINETIS nxp_kinetis_temp)
add_subdirectory_ifdef(CONFIG_TACH_XEC mchp_tach_xec)
add_subdirectory_ifdef(CONFIG_ITDS wsen_itds)
add_subdirectory_ifdef(CONFIG_MCUX_ACMP mcux_acmp)
zephyr_sources_ifdef(CONFIG_USERSPACE sensor_handlers.c)
zephyr_sources_ifdef(CONFIG_SENSOR_SHELL sensor_shell.c)
zephyr_sources_ifdef(CONFIG_SENSOR_SHELL_BATTERY shell_battery.c)
zephyr/dts/bindings/sensors ti,hdc20x0.yaml: # Copyright (c) 2020, seeed.cc
# SPDX-License-Identifier: Apache-2.0
description: TI HDC20x0 ±2% ultra-low-power, digital humidity sensor with temperature sensor
compatible: "ti,hdc20x0"
include: i2c-device.yaml
Project Files:
main.c: /*
* Copyright (c) 2019 Centaur Analytics
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr.h>
#include <device.h>
#include <drivers/sensor.h>
#include <sys/printk.h>
#include <sys/__assert.h>
#include <logging/log.h>
#include <drivers/gpio.h>
void main(void)
{
printk("Running on %s!\n", CONFIG_ARCH);
const struct device *dev = device_get_binding(DT_LABEL(DT_INST(0, ti_hdc20x0)));
__ASSERT(dev != NULL, "Failed to get device binding");
printk("Dev %p name %s is ready!\n", dev, dev->name);
struct sensor_value temp, humidity;
while (1) {
/* take a sample */
printk("Fetching...\n");
hdc20x0_sample_fetch(dev, SENSOR_CHAN_ALL);
hdc20x0_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP, &temp);
hdc20x0_channel_get(dev, SENSOR_CHAN_HUMIDITY, &humidity);
/* print the result */
printk("Temp = %d.%06d C, RH = %d.%06d %%\n",
temp.val1, temp.val2, humidity.val1, humidity.val2);
/* wait for the next sample */
k_sleep(K_SECONDS(1));
}
}
nrf5340dk_nrf5340_cpuappns.overlay: &i2c1 {
compatible = "nordic,nrf-twim";
status = "okay";
sda-pin = < 30 >;
scl-pin = < 31 >;
clock-frequency = <I2C_BITRATE_STANDARD>;
ti_hdc20x0: hdc20x0@41 {
compatible = "ti,hdc20x0";
reg = <0x41>;
label = "HDC2022";
};
};
prj.conf: CONFIG_ASSERT=y # validation
CONFIG_I2C=y # this is really I2C_0
# CONFIG_I2C_1=y # this is really I2C_1
CONFIG_I2C_NRFX=y
CONFIG_GPIO=y
CONFIG_SENSOR=y
# CONFIG_TI_HDC=y # this is the old TI HDC driver
CONFIG_HDC20X0=y # new TI HDC driver
CMakeLists.txt: # SPDX-License-Identifier: Apache-2.0
cmake_minimum_required(VERSION 3.13.1)
set(TEST_DTC_OVERLAY_FILE
${CMAKE_CURRENT_SOURCE_DIR}/nrf5340dk_nrf5340_cpuappns.overlay
)
set(PRJ_CONF_FILE
prj.conf
${CMAKE_CURRENT_LIST_DIR}/prj.conf
)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(ti_hdc_20x0_test)
FILE(GLOB app_sources src/*.c)
target_sources(app PRIVATE ${app_sources})