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})