I am trying to test a BME280 sensor on the nRF9160. I followed the steps where I created a folder (board) and added the nrf9160_pca10090.overlay and add couple of line in the prj.conf. I am building with build -b nrf9160_pca10090ns(non-secure). I get an error while building. I didnt connect the sensor but the code should build without the sensor am I wrong ?
same error with segger
In file included from /home/ahmed/v1.2.0/zephyr/drivers/sensor/bme280/bme280.c:24:0: 3> /home/ahmed/v1.2.0/zephyr/drivers/sensor/bme280/bme280.h:114:2: error: #error "BME280 device type not specified" 3> /home/ahmed/v1.2.0/zephyr/drivers/sensor/bme280/bme280.c:370:22: warning: unused variable 'data' [-Wunused-variable] 3> In file included from ../../../../include/drivers/sensor.h:23:0, 3> from /home/ahmed/v1.2.0/zephyr/drivers/sensor/bme280/bme280.c:11: 3> /home/ahmed/v1.2.0/zephyr/drivers/sensor/bme280/bme280.c:398:29: error: 'DT_INST_0_BOSCH_BME280_LABEL' undeclared here (not in a function); did you mean 'DT_INST_0_SOC_NV_FLASH_LABEL'? 3> ../../../../include/device.h:106:11: note: in definition of macro 'DEVICE_AND_API_INIT' 4> Compiling 'nrf_cc310_platform_mutex_zephyr.c' 5> Compiling 'nrf_cc310_platform_abort_zephyr.c' 8> Compiling 'sys_clock_init.c' Build failed
I will add the codes form the files as well to make it easier.
&i2c2 { status = "ok"; sda-pin = <12>; scl-pin = <11>; bme280@76 { compatible = "bosch,bme280"; reg = <0x76>; label = "BME280"; }; };Overlay
CONFIG_STDOUT_CONSOLE=y CONFIG_I2C=y CONFIG_SENSOR=y CONFIG_BME280=y CONFIG_I2C_2=yprj.conf
# SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.13.1) include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE) project(bme280) FILE(GLOB app_sources src/*.c) target_sources(app PRIVATE ${app_sources})CMake
/* * Copyright (c) 2012-2014 Wind River Systems, Inc. * * SPDX-License-Identifier: Apache-2.0 */ #include <zephyr.h> #include <device.h> #include <drivers/sensor.h> void main(void) { struct device *dev = device_get_binding("BME280"); if (dev == NULL) { printk("Could not get BME280 device\n"); return; } printk("dev %p name %s\n", dev, dev->config->name); while (1) { struct sensor_value temp, press, humidity; sensor_sample_fetch(dev); sensor_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP, &temp); sensor_channel_get(dev, SENSOR_CHAN_PRESS, &press); sensor_channel_get(dev, SENSOR_CHAN_HUMIDITY, &humidity); printk("temp: %d.%06d; press: %d.%06d; humidity: %d.%06d\n", temp.val1, temp.val2, press.val1, press.val2, humidity.val1, humidity.val2); k_sleep(K_MSEC(1000)); } }main