diff --git a/Kconfig b/Kconfig index 8703fb9cc7..fda4d890aa 100644 --- a/Kconfig +++ b/Kconfig @@ -11,20 +11,18 @@ comment "Toolchain: $(TOOLCHAIN)" comment "Architecture: $(ARCHITECTURE)" comment "Romfsroot: $(ROMFSROOT)" - menu "drivers" -source src/drivers/Kconfig +source "src/drivers/Kconfig" endmenu menu "modules" -source src/modules/Kconfig +source "src/modules/Kconfig" endmenu menu "systemcmds" -source src/systemcmds/Kconfig +source "src/systemcmds/Kconfig" endmenu menu "examples" -source src/examples/Kconfig +source "src/examples/Kconfig" endmenu - diff --git a/boards/nxp/fmuk66-v3/default-boardconfig b/boards/nxp/fmuk66-v3/default-boardconfig index 88e7f7d712..a0b32e16f4 100644 --- a/boards/nxp/fmuk66-v3/default-boardconfig +++ b/boards/nxp/fmuk66-v3/default-boardconfig @@ -1,156 +1,38 @@ - -# -# Platform: nuttx -# - -# -# Vendor: nxp -# - -# -# Model: fmuk66-v3 -# - -# -# Label: default -# - -# -# Toolchain: Toolchain-arm-none-eabi -# - -# -# Architecture: cortex-m4 -# - -# -# Romfsroot: px4fmu_common -# - -# -# drivers -# - -# -# ADC -# -# CONFIG_DRIVERS_ADC_ADS1115 is not set CONFIG_DRIVERS_ADC_BOARD_ADC=y -# end of ADC - CONFIG_DRIVERS_BAROMETER=y -# CONFIG_DRIVERS_BAROMETER_BMP280 is not set -# CONFIG_DRIVERS_BAROMETER_BMP388 is not set -# CONFIG_DRIVERS_BAROMETER_DPS310 is not set -# CONFIG_DRIVERS_BAROMETER_LPS22HB is not set -# CONFIG_DRIVERS_BAROMETER_LPS25H is not set -# CONFIG_DRIVERS_BAROMETER_LPS33HW is not set CONFIG_DRIVERS_BAROMETER_MPL3115A2=y -# CONFIG_DRIVERS_BAROMETER_MS5611 is not set -# CONFIG_DRIVERS_BAROMETER_TCBP001TA is not set CONFIG_DRIVERS_BATT_SMBUS=y -# CONFIG_DRIVERS_BOOTLOADERS is not set CONFIG_DRIVERS_CAMERA_CAPTURE=y CONFIG_DRIVERS_CAMERA_TRIGGER=y CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE=y CONFIG_DRIVERS_DISTANCE_SENSOR=y -# CONFIG_DRIVERS_DSHOT is not set CONFIG_DRIVERS_GPS=y -# CONFIG_DRIVERS_HEATER is not set - -# -# IMU -# -# CONFIG_DRIVERS_IMU_ADIS16477 is not set -# CONFIG_DRIVERS_IMU_ADIS16497 is not set -# CONFIG_DRIVERS_IMU_ANALOG_DEVICES is not set -# CONFIG_DRIVERS_IMU_BOSCH is not set CONFIG_DRIVERS_IMU_FXAS21002C=y CONFIG_DRIVERS_IMU_FXOS8701CQ=y -# CONFIG_DRIVERS_IMU_INVENSENSE is not set -# CONFIG_DRIVERS_IMU_L3GD20 is not set -# CONFIG_DRIVERS_IMU_LSM303D is not set -# CONFIG_DRIVERS_IMU_ST is not set -# end of IMU - CONFIG_DRIVERS_IRLOCK=y - -# -# Lights -# CONFIG_DRIVERS_LIGHTS_BLINKM=y -# CONFIG_DRIVERS_LIGHTS_NEOPIXEL is not set CONFIG_DRIVERS_LIGHTS_RGBLED=y CONFIG_DRIVERS_LIGHTS_RGBLED_PWM=y CONFIG_DRIVERS_LIGHTS_RGBLED_NCP5623C=y -# end of Lights - -# CONFIG_DRIVERS_LINUX_PWM_OUT is not set CONFIG_DRIVERS_MAGNETOMETER=y -# CONFIG_DRIVERS_MAGNETOMETER_AKM is not set -# CONFIG_DRIVERS_MAGNETOMETER_BOSCH is not set -# CONFIG_DRIVERS_MAGNETOMETER_HMC5883 is not set -# CONFIG_DRIVERS_MAGNETOMETER_ISENTEK is not set -# CONFIG_DRIVERS_MAGNETOMETER_LIS2MDL is not set -# CONFIG_DRIVERS_MAGNETOMETER_LIS3MDL is not set -# CONFIG_DRIVERS_MAGNETOMETER_LSM303AGR is not set -# CONFIG_DRIVERS_MAGNETOMETER_LSM9DS1_MAG is not set -# CONFIG_DRIVERS_MAGNETOMETER_QMC5883L is not set -# CONFIG_DRIVERS_MAGNETOMETER_RM3100 is not set - -# -# Optical flow -# -# CONFIG_DRIVERS_OPTICAL_FLOW_PAW3902 is not set -# CONFIG_DRIVERS_OPTICAL_FLOW_PMW3901 is not set CONFIG_DRIVERS_OPTICAL_FLOW_PX4FLOW=y -# CONFIG_DRIVERS_OPTICAL_FLOW_THONEFLOW is not set -# end of Optical flow - -# CONFIG_DRIVERS_OSD is not set CONFIG_DRIVERS_PCA9685=y -# CONFIG_DRIVERS_PCA9685_PWM_OUT is not set - -# -# Power monitor -# CONFIG_DRIVERS_POWER_MONITOR_INA226=y -# CONFIG_DRIVERS_POWER_MONITOR_VOXLPM is not set -# end of Power monitor - -# CONFIG_DRIVERS_PROTOCOL_SPLITTER is not set -# CONFIG_DRIVERS_PWM_INPUT is not set CONFIG_DRIVERS_PWM_OUT=y CONFIG_DRIVERS_PWM_OUT_SIM=y -# CONFIG_DRIVERS_PX4IO is not set -# CONFIG_DRIVERS_QSHELL is not set CONFIG_DRIVERS_RC_INPUT=y CONFIG_DRIVERS_ROBOCLAW=y -# CONFIG_DRIVERS_RPI_RC_IN is not set -# CONFIG_DRIVERS_RPM is not set CONFIG_DRIVERS_SAFETY_BUTTON=y -# CONFIG_DRIVERS_SPEKTRUM_RC is not set CONFIG_DRIVERS_TELEMETRY=y -# CONFIG_DRIVERS_TEST_PPM is not set CONFIG_DRIVERS_TONE_ALARM=y CONFIG_DRIVERS_UAVCAN=y -# CONFIG_DRIVERS_UAVCAN_V1 is not set -# end of drivers - -# -# modules -# -# CONFIG_MODULES_AIRSHIP_ATT_CONTROL is not set CONFIG_MODULES_AIRSPEED_SELECTOR=y -# CONFIG_MODULES_ANGULAR_VELOCITY_CONTROLLER is not set CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q=y CONFIG_MODULES_BATTERY_STATUS=y CONFIG_MODULES_CAMERA_FEEDBACK=y CONFIG_MODULES_COMMANDER=y -# CONFIG_MODULES_CONTROL_ALLOCATOR is not set CONFIG_MODULES_DATAMAN=y CONFIG_MODULES_EKF2=y -# CONFIG_MODULES_ESC_BATTERY is not set CONFIG_MODULES_EVENTS=y CONFIG_MODULES_FLIGHT_MODE_MANAGER=y CONFIG_MODULES_FW_ATT_CONTROL=y @@ -166,34 +48,17 @@ CONFIG_MODULES_MC_ATT_CONTROL=y CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=y CONFIG_MODULES_MC_POS_CONTROL=y CONFIG_MODULES_MC_RATE_CONTROL=y -# CONFIG_MODULES_MICRORTPS_BRIDGE is not set -# CONFIG_MODULES_MUORB is not set CONFIG_MODULES_NAVIGATOR=y -# CONFIG_MODULES_PX4IOFIRMWARE is not set CONFIG_MODULES_RC_UPDATE=y -# CONFIG_MODULES_REPLAY is not set CONFIG_MODULES_ROVER_POS_CONTROL=y CONFIG_MODULES_SENSORS=y CONFIG_MODULES_SIH=y -# CONFIG_MODULES_SIMULATOR is not set CONFIG_MODULES_TEMPERATURE_COMPENSATION=y -# CONFIG_MODULES_UUV_ATT_CONTROL is not set -# CONFIG_MODULES_UUV_POS_CONTROL is not set CONFIG_MODULES_VMOUNT=y CONFIG_MODULES_VTOL_ATT_CONTROL=y -# end of modules - -# -# systemcmds -# CONFIG_SYSTEMCMDS_BL_UPDATE=y -# CONFIG_SYSTEMCMDS_DMESG is not set CONFIG_SYSTEMCMDS_DUMPFILE=y -# CONFIG_SYSTEMCMDS_DYN is not set CONFIG_SYSTEMCMDS_ESC_CALIB=y -# CONFIG_SYSTEMCMDS_FAILURE is not set -# CONFIG_SYSTEMCMDS_GPIO is not set -# CONFIG_SYSTEMCMDS_HARDFAULT_LOG is not set CONFIG_SYSTEMCMDS_I2CDETECT=y CONFIG_SYSTEMCMDS_LED_CONTROL=y CONFIG_SYSTEMCMDS_MFT=y @@ -201,7 +66,6 @@ CONFIG_SYSTEMCMDS_MIXER=y CONFIG_SYSTEMCMDS_MOTOR_RAMP=y CONFIG_SYSTEMCMDS_MOTOR_TEST=y CONFIG_SYSTEMCMDS_MTD=y -# CONFIG_SYSTEMCMDS_NETMAN is not set CONFIG_SYSTEMCMDS_NSHTERM=y CONFIG_SYSTEMCMDS_PARAM=y CONFIG_SYSTEMCMDS_PERF=y @@ -209,8 +73,6 @@ CONFIG_SYSTEMCMDS_PWM=y CONFIG_SYSTEMCMDS_REBOOT=y CONFIG_SYSTEMCMDS_REFLECT=y CONFIG_SYSTEMCMDS_SD_BENCH=y -# CONFIG_SYSTEMCMDS_SERIAL_TEST is not set -# CONFIG_SYSTEMCMDS_SHUTDOWN is not set CONFIG_SYSTEMCMDS_SYSTEM_TIME=y CONFIG_SYSTEMCMDS_TESTS=y CONFIG_SYSTEMCMDS_TOP=y @@ -220,22 +82,12 @@ CONFIG_SYSTEMCMDS_UORB=y CONFIG_SYSTEMCMDS_USB_CONNECTED=y CONFIG_SYSTEMCMDS_VER=y CONFIG_SYSTEMCMDS_WORK_QUEUE=y -# end of systemcmds - -# -# examples -# -# CONFIG_EXAMPLES_DYN_HELLO is not set CONFIG_EXAMPLES_FAKE_GPS=y -# CONFIG_EXAMPLES_FAKE_GYRO is not set -# CONFIG_EXAMPLES_FAKE_MAGNETOMETER is not set CONFIG_EXAMPLES_FIXEDWING_CONTROL=y CONFIG_EXAMPLES_HELLO=y CONFIG_EXAMPLES_HWTEST=y -# CONFIG_EXAMPLES_MATLAB_CSV_SERIAL is not set CONFIG_EXAMPLES_PX4_MAVLINK_DEBUG=y CONFIG_EXAMPLES_PX4_SIMPLE_APP=y CONFIG_EXAMPLES_ROVER_STEERING_CONTROL=y CONFIG_EXAMPLES_UUV_EXAMPLE_APP=y CONFIG_EXAMPLES_WORK_ITEM=y -# end of examples diff --git a/cmake/kconfig.cmake b/cmake/kconfig.cmake index 50e67676aa..8b0de17814 100644 --- a/cmake/kconfig.cmake +++ b/cmake/kconfig.cmake @@ -1,16 +1,18 @@ set(BOARD_DEFCONFIG ${PX4_BOARD_DIR}/${PX4_BOARD_LABEL}-boardconfig CACHE FILEPATH "path to defconfig" FORCE) - +set(BOARD_CONFIG ${PX4_BINARY_DIR}/boardconfig CACHE FILEPATH "path to config" FORCE) find_program(MENUCONFIG_PATH menuconfig) find_program(GUICONFIG_PATH guiconfig) -if(NOT MENUCONFIG_PATH AND NOT GUICONFIG_PATH) +find_program(DEFCONFIG_PATH defconfig) +find_program(SAVEDEFCONFIG_PATH savedefconfig) +if(NOT MENUCONFIG_PATH OR NOT GUICONFIG_PATH OR NOT DEFCONFIG_PATH OR NOT SAVEDEFCONFIG_PATH) message(STATUS "kconfiglib is not installed\n" "please install using \"pip3 install kconfiglib\"\n") endif() set(COMMON_KCONFIG_ENV_SETTINGS PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} - KCONFIG_CONFIG=${BOARD_DEFCONFIG} + KCONFIG_CONFIG=${BOARD_CONFIG} # Set environment variables so that Kconfig can prune Kconfig source # files for other architectures PLATFORM=${PX4_PLATFORM} @@ -26,6 +28,8 @@ add_custom_target(boardconfig ${CMAKE_COMMAND} -E env ${COMMON_KCONFIG_ENV_SETTINGS} ${MENUCONFIG_PATH} Kconfig + COMMAND ${CMAKE_COMMAND} -E env ${COMMON_KCONFIG_ENV_SETTINGS} ${SAVEDEFCONFIG_PATH} + COMMAND ${CMAKE_COMMAND} -E copy defconfig ${BOARD_DEFCONFIG} WORKING_DIRECTORY ${PX4_SOURCE_DIR} USES_TERMINAL COMMAND_EXPAND_LISTS @@ -35,14 +39,24 @@ add_custom_target(boardguiconfig ${CMAKE_COMMAND} -E env ${COMMON_KCONFIG_ENV_SETTINGS} ${GUICONFIG_PATH} Kconfig + COMMAND ${CMAKE_COMMAND} -E env ${COMMON_KCONFIG_ENV_SETTINGS} ${SAVEDEFCONFIG_PATH} + COMMAND ${CMAKE_COMMAND} -E copy defconfig ${BOARD_DEFCONFIG} WORKING_DIRECTORY ${PX4_SOURCE_DIR} USES_TERMINAL COMMAND_EXPAND_LISTS ) if(EXISTS ${BOARD_DEFCONFIG}) + + + # Generate boardconfig from saved defconfig + execute_process(COMMAND ${CMAKE_COMMAND} -E env ${COMMON_KCONFIG_ENV_SETTINGS} + ${DEFCONFIG_PATH} ${BOARD_DEFCONFIG} + WORKING_DIRECTORY ${PX4_SOURCE_DIR} + OUTPUT_VARIABLE DUMMY_RESULTS) + # parse board config options for cmake - file(STRINGS ${BOARD_DEFCONFIG} ConfigContents) + file(STRINGS ${BOARD_CONFIG} ConfigContents) foreach(NameAndValue ${ConfigContents}) # Strip leading spaces string(REGEX REPLACE "^[ ]+" "" NameAndValue ${NameAndValue}) diff --git a/src/drivers/Kconfig b/src/drivers/Kconfig index 6e2a674684..05d703dd47 100644 --- a/src/drivers/Kconfig +++ b/src/drivers/Kconfig @@ -1,7 +1,7 @@ menu "ADC" -source src/drivers/adc/Kconfig -endmenu +source "src/drivers/adc/Kconfig" +endmenu #ADC menuconfig DRIVERS_BAROMETER bool "Barometer" @@ -10,7 +10,7 @@ menuconfig DRIVERS_BAROMETER Enable support for Barometers if DRIVERS_BAROMETER -source src/drivers/barometer/Kconfig +source "src/drivers/barometer/Kconfig" endif #DRIVERS_BAROMETER menuconfig DRIVERS_BATT_SMBUS @@ -68,7 +68,7 @@ menuconfig DRIVERS_HEATER Enable support for heater menu "IMU" -source src/drivers/imu/Kconfig +source "src/drivers/imu/Kconfig" endmenu menuconfig DRIVERS_IRLOCK @@ -78,7 +78,7 @@ menuconfig DRIVERS_IRLOCK Enable support for irlock menu "Lights" -source src/drivers/lights/Kconfig +source "src/drivers/lights/Kconfig" endmenu menuconfig DRIVERS_LINUX_PWM_OUT @@ -94,11 +94,11 @@ menuconfig DRIVERS_MAGNETOMETER Enable support for all available magnetometer drivers if DRIVERS_MAGNETOMETER -source src/drivers/magnetometer/Kconfig +source "src/drivers/magnetometer/Kconfig" endif #DRIVERS_MAGNETOMETER menu "Optical flow" -source src/drivers/optical_flow/Kconfig +source "src/drivers/optical_flow/Kconfig" endmenu menuconfig DRIVERS_OSD @@ -120,7 +120,7 @@ menuconfig DRIVERS_PCA9685_PWM_OUT Enable support for pca9685 pwm out menu "Power monitor" -source src/drivers/power_monitor/Kconfig +source "src/drivers/power_monitor/Kconfig" endmenu menuconfig DRIVERS_PROTOCOL_SPLITTER @@ -226,5 +226,5 @@ menuconfig DRIVERS_UAVCAN_V1 Enable support for UAVCANv1 if DRIVERS_UAVCAN_V1 -source src/drivers/uavcan_v1/Kconfig +source "src/drivers/uavcan_v1/Kconfig" endif #DRIVERS_UAVCAN_V1 diff --git a/src/drivers/uavcan_v1/Kconfig b/src/drivers/uavcan_v1/Kconfig index be8adc7211..7e3616fc5f 100644 --- a/src/drivers/uavcan_v1/Kconfig +++ b/src/drivers/uavcan_v1/Kconfig @@ -8,7 +8,6 @@ choice prompt "UAVCANv1 Mode" - default none config UAVCAN_V1_FMU bool "Server (FMU)"