diff --git a/Tools/kconfig/diffconfig.py b/Tools/kconfig/diffconfig.py new file mode 100755 index 0000000000..28ffefe740 --- /dev/null +++ b/Tools/kconfig/diffconfig.py @@ -0,0 +1,139 @@ +#!/usr/bin/env python3 +# +# SPDX-License-Identifier: Apache-2.0 +# +# diffconfig - a tool to compare .config files. +# +# originally written in 2006 by Matt Mackall +# (at least, this was in his bloatwatch source code) +# last worked on 2008 by Tim Bird +# +# Source https://github.com/zephyrproject-rtos/zephyr/blob/zephyr-v2.3.0/scripts/kconfig/diffconfig +# +# Modified to include negated values during merge_style + +import sys, os + +def usage(): + print("""Usage: diffconfig [-h] [-m] [ ] + +Diffconfig is a simple utility for comparing two .config files. +Using standard diff to compare .config files often includes extraneous and +distracting information. This utility produces sorted output with only the +changes in configuration values between the two files. + +Added and removed items are shown with a leading plus or minus, respectively. +Changed items show the old and new values on a single line. + +If -m is specified, then output will be in "merge" style, which has the +changed and new values in kernel config option format. + +If no config files are specified, .config and .config.old are used. + +Example usage: + $ diffconfig .config config-with-some-changes +-EXT2_FS_XATTR n +-EXT2_FS_XIP n + CRAMFS n -> y + EXT2_FS y -> n + LOG_BUF_SHIFT 14 -> 16 + PRINTK_TIME n -> y +""") + sys.exit(0) + +# returns a dictionary of name/value pairs for config items in the file +def readconfig(config_file): + d = {} + for line in config_file: + line = line[:-1] + if line[:7] == "CONFIG_": + name, val = line[7:].split("=", 1) + d[name] = val + if line[-11:] == " is not set": + d[line[9:-11]] = "n" + return d + +def print_config(op, config, value, new_value): + global merge_style + + if merge_style: + if op=="-" and value=="y": + print("CONFIG_%s=n" % (config)) + elif new_value: + if new_value=="n": + print("# CONFIG_%s is not set" % config) + else: + print("CONFIG_%s=%s" % (config, new_value)) + else: + if op=="-": + print("-%s %s" % (config, value)) + elif op=="+": + print("+%s %s" % (config, new_value)) + else: + print(" %s %s -> %s" % (config, value, new_value)) + +def main(): + global merge_style + + # parse command line args + if ("-h" in sys.argv or "--help" in sys.argv): + usage() + + merge_style = 0 + if "-m" in sys.argv: + merge_style = 1 + sys.argv.remove("-m") + + argc = len(sys.argv) + if not (argc==1 or argc == 3): + print("Error: incorrect number of arguments or unrecognized option") + usage() + + if argc == 1: + # if no filenames given, assume .config and .config.old + build_dir="" + if "KBUILD_OUTPUT" in os.environ: + build_dir = os.environ["KBUILD_OUTPUT"]+"/" + configa_filename = build_dir + ".config.old" + configb_filename = build_dir + ".config" + else: + configa_filename = sys.argv[1] + configb_filename = sys.argv[2] + + try: + a = readconfig(open(configa_filename)) + b = readconfig(open(configb_filename)) + except (IOError): + e = sys.exc_info()[1] + print("I/O error[%s]: %s\n" % (e.args[0],e.args[1])) + usage() + + # print items in a but not b (accumulate, sort and print) + old = [] + for config in a: + if config not in b: + old.append(config) + old.sort() + for config in old: + print_config("-", config, a[config], None) + del a[config] + + # print items that changed (accumulate, sort, and print) + changed = [] + for config in a: + if a[config] != b[config]: + changed.append(config) + else: + del b[config] + changed.sort() + for config in changed: + print_config("->", config, a[config], b[config]) + del b[config] + + # now print items in b but not in a + # (items from b that were in a were removed above) + new = sorted(b.keys()) + for config in new: + print_config("+", config, None, b[config]) + +main() diff --git a/Tools/kconfig/merge_config.py b/Tools/kconfig/merge_config.py new file mode 100755 index 0000000000..777fe2c4da --- /dev/null +++ b/Tools/kconfig/merge_config.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 + +# This script functions similarly to scripts/kconfig/merge_config.sh from the +# kernel tree, merging multiple configurations fragments to produce a complete +# .config, with unspecified values filled in as for alldefconfig. +# +# The generated .config respects symbol dependencies, and a warning is printed +# if any symbol gets a different value from the assigned value. +# +# For a real-world merging example based on this script, see +# https://github.com/zephyrproject-rtos/zephyr/blob/master/scripts/kconfig/kconfig.py. +# +# Here's a demo: +# +# Kconfig contents: +# +# config FOO +# bool "FOO" +# +# config BAR +# bool "BAR" +# +# config BAZ +# string "BAZ" +# +# config QAZ +# bool "QAZ" if n +# +# +# conf1 contents: +# +# CONFIG_FOO=y +# +# +# conf2 contents: +# +# CONFIG_BAR=y +# +# +# conf3 contents: +# +# # Assigned twice (would generate warning if 'warn_assign_override' was +# # True) +# # CONFIG_FOO is not set +# +# # Ops... this symbol doesn't exist +# CONFIG_OPS=y +# +# CONFIG_BAZ="baz string" +# +# +# conf4 contents: +# +# CONFIG_QAZ=y +# +# +# Running: +# +# $ python(3) merge_config.py Kconfig merged conf1 conf2 conf3 conf4 +# Merged configuration 'conf1' +# Merged configuration 'conf2' +# conf3:5: warning: attempt to assign the value 'y' to the undefined symbol OPS +# Merged configuration 'conf3' +# Merged configuration 'conf4' +# Configuration saved to 'merged' +# warning: QAZ (defined at Kconfig:10) was assigned the value 'y' but got the value 'n' -- check dependencies +# $ cat merged +# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) +# # CONFIG_FOO is not set +# CONFIG_BAR=y +# CONFIG_BAZ="baz string" + +from __future__ import print_function +import sys + +from kconfiglib import Kconfig, BOOL, TRISTATE, TRI_TO_STR + + +if len(sys.argv) < 4: + sys.exit("usage: merge_config.py Kconfig merged_config config1 [config2 ...]") + +kconf = Kconfig(sys.argv[1], suppress_traceback=True) + +# Enable warnings for assignments to undefined symbols +kconf.warn_assign_undef = True + +# (This script uses alldefconfig as the base. Other starting states could be +# set up here as well. The approach in examples/allnoconfig_simpler.py could +# provide an allnoconfig starting state for example.) + +# Disable warnings generated for multiple assignments to the same symbol within +# a (set of) configuration files. Assigning a symbol multiple times might be +# done intentionally when merging configuration files. +kconf.warn_assign_override = False +kconf.warn_assign_redun = False + +# Create a merged configuration by loading the fragments with replace=False. +# load_config() and write_config() returns a message to print. +for config in sys.argv[3:]: + print(kconf.load_config(config, replace=False)) + +# Write the merged configuration +print(kconf.write_config(sys.argv[2])) + +# Print warnings for symbols whose actual value doesn't match the assigned +# value +for sym in kconf.defined_syms: + # Was the symbol assigned to? + if sym.user_value is not None: + # Tristate values are represented as 0, 1, 2. Having them as + # "n", "m", "y" is more convenient here, so convert. + if sym.type in (BOOL, TRISTATE): + user_value = TRI_TO_STR[sym.user_value] + else: + user_value = sym.user_value + + if user_value != sym.str_value: + print("warning: {} was assigned the value '{}' but got the " + "value '{}' -- check dependencies".format( + sym.name_and_loc, user_value, sym.str_value), + file=sys.stderr) diff --git a/boards/nxp/fmuk66-v3/rtps.px4board b/boards/nxp/fmuk66-v3/rtps.px4board index 2f229d18c5..81e62c7825 100644 --- a/boards/nxp/fmuk66-v3/rtps.px4board +++ b/boards/nxp/fmuk66-v3/rtps.px4board @@ -1,103 +1 @@ -CONFIG_ARCHITECTURE_CORTEX_M4=y -CONFIG_BOARD_BUILD_BOOTLOADER=y -CONFIG_BOARD_CONSTRAINED_MEMORY=y -CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS3" -CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS4" -CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS1" -CONFIG_DRIVERS_ADC_ADS1115=y -CONFIG_DRIVERS_ADC_BOARD_ADC=y -CONFIG_DRIVERS_BAROMETER=y -CONFIG_DRIVERS_BAROMETER_MPL3115A2=y -CONFIG_DRIVERS_BATT_SMBUS=y -CONFIG_DRIVERS_CAMERA_CAPTURE=y -CONFIG_DRIVERS_CAMERA_TRIGGER=y -CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE=y -CONFIG_DRIVERS_DISTANCE_SENSOR=y -CONFIG_DRIVERS_DISTANCE_SENSOR_SRF05=y -CONFIG_DRIVERS_GPS=y -CONFIG_DRIVERS_IMU_FXAS21002C=y -CONFIG_DRIVERS_IMU_FXOS8701CQ=y -CONFIG_DRIVERS_IMU_INVENSENSE_ICM20948=y -CONFIG_DRIVERS_IRLOCK=y -CONFIG_DRIVERS_LIGHTS_RGBLED=y -CONFIG_DRIVERS_LIGHTS_RGBLED_NCP5623C=y -CONFIG_DRIVERS_LIGHTS_RGBLED_PWM=y -CONFIG_DRIVERS_MAGNETOMETER=y -CONFIG_DRIVERS_OPTICAL_FLOW_PAW3902=y -CONFIG_DRIVERS_OPTICAL_FLOW_PMW3901=y -CONFIG_DRIVERS_OPTICAL_FLOW_PX4FLOW=y -CONFIG_DRIVERS_OPTICAL_FLOW_THONEFLOW=y -CONFIG_DRIVERS_OSD=y -CONFIG_DRIVERS_PCA9685=y -CONFIG_DRIVERS_PCA9685_PWM_OUT=y -CONFIG_DRIVERS_POWER_MONITOR_INA226=y -CONFIG_DRIVERS_PWM_OUT=y -CONFIG_DRIVERS_PWM_OUT_SIM=y -CONFIG_DRIVERS_RC_INPUT=y -CONFIG_DRIVERS_ROBOCLAW=y -CONFIG_DRIVERS_RPM=y -CONFIG_DRIVERS_SAFETY_BUTTON=y -CONFIG_DRIVERS_SMART_BATTERY_BATMON=y -CONFIG_DRIVERS_TELEMETRY=y -CONFIG_DRIVERS_TONE_ALARM=y -CONFIG_DRIVERS_UAVCAN=y -CONFIG_BOARD_UAVCAN_INTERFACES=2 -CONFIG_MODULES_AIRSPEED_SELECTOR=y -CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q=y -CONFIG_MODULES_BATTERY_STATUS=y -CONFIG_MODULES_CAMERA_FEEDBACK=y -CONFIG_MODULES_COMMANDER=y -CONFIG_MODULES_DATAMAN=y -CONFIG_MODULES_EKF2=y -CONFIG_MODULES_ESC_BATTERY=y -CONFIG_MODULES_EVENTS=y -CONFIG_MODULES_FLIGHT_MODE_MANAGER=y -CONFIG_MODULES_FW_ATT_CONTROL=y -CONFIG_MODULES_FW_POS_CONTROL_L1=y -CONFIG_MODULES_GYRO_CALIBRATION=y -CONFIG_MODULES_GYRO_FFT=y -CONFIG_MODULES_LAND_DETECTOR=y -CONFIG_MODULES_LANDING_TARGET_ESTIMATOR=y -CONFIG_MODULES_LOAD_MON=y -CONFIG_MODULES_LOCAL_POSITION_ESTIMATOR=y -CONFIG_MODULES_LOGGER=y -CONFIG_MODULES_MAVLINK=y -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=y -CONFIG_MODULES_NAVIGATOR=y -CONFIG_MODULES_RC_UPDATE=y -CONFIG_MODULES_ROVER_POS_CONTROL=y -CONFIG_MODULES_SENSORS=y -CONFIG_MODULES_SIH=y -CONFIG_MODULES_TEMPERATURE_COMPENSATION=y -CONFIG_MODULES_VMOUNT=y -CONFIG_MODULES_VTOL_ATT_CONTROL=y -CONFIG_SYSTEMCMDS_DUMPFILE=y -CONFIG_SYSTEMCMDS_ESC_CALIB=y -CONFIG_SYSTEMCMDS_I2CDETECT=y -CONFIG_SYSTEMCMDS_LED_CONTROL=y -CONFIG_SYSTEMCMDS_MFT=y -CONFIG_SYSTEMCMDS_MIXER=y -CONFIG_SYSTEMCMDS_MOTOR_RAMP=y -CONFIG_SYSTEMCMDS_MOTOR_TEST=y -CONFIG_SYSTEMCMDS_MTD=y -CONFIG_SYSTEMCMDS_NSHTERM=y -CONFIG_SYSTEMCMDS_PARAM=y -CONFIG_SYSTEMCMDS_PERF=y -CONFIG_SYSTEMCMDS_PWM=y -CONFIG_SYSTEMCMDS_REBOOT=y -CONFIG_SYSTEMCMDS_REFLECT=y -CONFIG_SYSTEMCMDS_SD_BENCH=y -CONFIG_SYSTEMCMDS_SERIAL_TEST=y -CONFIG_SYSTEMCMDS_SYSTEM_TIME=y -CONFIG_SYSTEMCMDS_TOP=y -CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y -CONFIG_SYSTEMCMDS_TUNE_CONTROL=y -CONFIG_SYSTEMCMDS_UORB=y -CONFIG_SYSTEMCMDS_USB_CONNECTED=y -CONFIG_SYSTEMCMDS_VER=y -CONFIG_SYSTEMCMDS_WORK_QUEUE=y -CONFIG_EXAMPLES_FAKE_GPS=y diff --git a/boards/nxp/fmuk66-v3/socketcan.px4board b/boards/nxp/fmuk66-v3/socketcan.px4board index b3efd82e53..ff4df8af58 100644 --- a/boards/nxp/fmuk66-v3/socketcan.px4board +++ b/boards/nxp/fmuk66-v3/socketcan.px4board @@ -1,101 +1,2 @@ -CONFIG_ARCHITECTURE_CORTEX_M4=y -CONFIG_BOARD_BUILD_BOOTLOADER=y -CONFIG_BOARD_CONSTRAINED_MEMORY=y -CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS3" -CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS4" -CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS1" -CONFIG_DRIVERS_ADC_ADS1115=y -CONFIG_DRIVERS_ADC_BOARD_ADC=y -CONFIG_DRIVERS_BAROMETER=y -CONFIG_DRIVERS_BAROMETER_MPL3115A2=y -CONFIG_DRIVERS_BATT_SMBUS=y -CONFIG_DRIVERS_CAMERA_CAPTURE=y -CONFIG_DRIVERS_CAMERA_TRIGGER=y -CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE=y -CONFIG_DRIVERS_DISTANCE_SENSOR=y -CONFIG_DRIVERS_DISTANCE_SENSOR_SRF05=y -CONFIG_DRIVERS_GPS=y -CONFIG_DRIVERS_IMU_FXAS21002C=y -CONFIG_DRIVERS_IMU_FXOS8701CQ=y -CONFIG_DRIVERS_IMU_INVENSENSE_ICM20948=y -CONFIG_DRIVERS_IRLOCK=y -CONFIG_DRIVERS_LIGHTS_RGBLED=y -CONFIG_DRIVERS_LIGHTS_RGBLED_NCP5623C=y -CONFIG_DRIVERS_LIGHTS_RGBLED_PWM=y -CONFIG_DRIVERS_MAGNETOMETER=y -CONFIG_DRIVERS_OPTICAL_FLOW_PAW3902=y -CONFIG_DRIVERS_OPTICAL_FLOW_PMW3901=y -CONFIG_DRIVERS_OPTICAL_FLOW_PX4FLOW=y -CONFIG_DRIVERS_OPTICAL_FLOW_THONEFLOW=y -CONFIG_DRIVERS_OSD=y -CONFIG_DRIVERS_PCA9685=y -CONFIG_DRIVERS_PCA9685_PWM_OUT=y -CONFIG_DRIVERS_POWER_MONITOR_INA226=y -CONFIG_DRIVERS_PWM_OUT=y -CONFIG_DRIVERS_PWM_OUT_SIM=y -CONFIG_DRIVERS_RC_INPUT=y -CONFIG_DRIVERS_ROBOCLAW=y -CONFIG_DRIVERS_RPM=y -CONFIG_DRIVERS_SAFETY_BUTTON=y -CONFIG_DRIVERS_SMART_BATTERY_BATMON=y -CONFIG_DRIVERS_TELEMETRY=y -CONFIG_DRIVERS_TONE_ALARM=y +CONFIG_DRIVERS_UAVCAN=n CONFIG_DRIVERS_UAVCAN_V1=y -CONFIG_MODULES_AIRSPEED_SELECTOR=y -CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q=y -CONFIG_MODULES_BATTERY_STATUS=y -CONFIG_MODULES_CAMERA_FEEDBACK=y -CONFIG_MODULES_COMMANDER=y -CONFIG_MODULES_DATAMAN=y -CONFIG_MODULES_EKF2=y -CONFIG_MODULES_ESC_BATTERY=y -CONFIG_MODULES_EVENTS=y -CONFIG_MODULES_FLIGHT_MODE_MANAGER=y -CONFIG_MODULES_FW_ATT_CONTROL=y -CONFIG_MODULES_FW_POS_CONTROL_L1=y -CONFIG_MODULES_GYRO_CALIBRATION=y -CONFIG_MODULES_GYRO_FFT=y -CONFIG_MODULES_LAND_DETECTOR=y -CONFIG_MODULES_LANDING_TARGET_ESTIMATOR=y -CONFIG_MODULES_LOAD_MON=y -CONFIG_MODULES_LOCAL_POSITION_ESTIMATOR=y -CONFIG_MODULES_LOGGER=y -CONFIG_MODULES_MAVLINK=y -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_NAVIGATOR=y -CONFIG_MODULES_RC_UPDATE=y -CONFIG_MODULES_ROVER_POS_CONTROL=y -CONFIG_MODULES_SENSORS=y -CONFIG_MODULES_SIH=y -CONFIG_MODULES_TEMPERATURE_COMPENSATION=y -CONFIG_MODULES_VMOUNT=y -CONFIG_MODULES_VTOL_ATT_CONTROL=y -CONFIG_SYSTEMCMDS_DUMPFILE=y -CONFIG_SYSTEMCMDS_ESC_CALIB=y -CONFIG_SYSTEMCMDS_I2CDETECT=y -CONFIG_SYSTEMCMDS_LED_CONTROL=y -CONFIG_SYSTEMCMDS_MFT=y -CONFIG_SYSTEMCMDS_MIXER=y -CONFIG_SYSTEMCMDS_MOTOR_RAMP=y -CONFIG_SYSTEMCMDS_MOTOR_TEST=y -CONFIG_SYSTEMCMDS_MTD=y -CONFIG_SYSTEMCMDS_NSHTERM=y -CONFIG_SYSTEMCMDS_PARAM=y -CONFIG_SYSTEMCMDS_PERF=y -CONFIG_SYSTEMCMDS_PWM=y -CONFIG_SYSTEMCMDS_REBOOT=y -CONFIG_SYSTEMCMDS_REFLECT=y -CONFIG_SYSTEMCMDS_SD_BENCH=y -CONFIG_SYSTEMCMDS_SERIAL_TEST=y -CONFIG_SYSTEMCMDS_SYSTEM_TIME=y -CONFIG_SYSTEMCMDS_TOP=y -CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y -CONFIG_SYSTEMCMDS_TUNE_CONTROL=y -CONFIG_SYSTEMCMDS_UORB=y -CONFIG_SYSTEMCMDS_USB_CONNECTED=y -CONFIG_SYSTEMCMDS_VER=y -CONFIG_SYSTEMCMDS_WORK_QUEUE=y -CONFIG_EXAMPLES_FAKE_GPS=y diff --git a/boards/nxp/fmuk66-v3/test.px4board b/boards/nxp/fmuk66-v3/test.px4board index 7b0138c365..3cf3855db8 100644 --- a/boards/nxp/fmuk66-v3/test.px4board +++ b/boards/nxp/fmuk66-v3/test.px4board @@ -1,108 +1,4 @@ -CONFIG_ARCHITECTURE_CORTEX_M4=y -CONFIG_BOARD_BUILD_BOOTLOADER=y -CONFIG_BOARD_CONSTRAINED_MEMORY=y CONFIG_BOARD_TESTING=y -CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS3" -CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS4" -CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS1" -CONFIG_DRIVERS_ADC_ADS1115=y -CONFIG_DRIVERS_ADC_BOARD_ADC=y -CONFIG_DRIVERS_BAROMETER=y -CONFIG_DRIVERS_BAROMETER_MPL3115A2=y -CONFIG_DRIVERS_BATT_SMBUS=y -CONFIG_DRIVERS_CAMERA_CAPTURE=y -CONFIG_DRIVERS_CAMERA_TRIGGER=y -CONFIG_DRIVERS_DIFFERENTIAL_PRESSURE=y -CONFIG_DRIVERS_DISTANCE_SENSOR=y -CONFIG_DRIVERS_DISTANCE_SENSOR_SRF05=y -CONFIG_DRIVERS_GPS=y -CONFIG_DRIVERS_IMU_FXAS21002C=y -CONFIG_DRIVERS_IMU_FXOS8701CQ=y -CONFIG_DRIVERS_IMU_INVENSENSE_ICM20948=y -CONFIG_DRIVERS_IRLOCK=y -CONFIG_DRIVERS_LIGHTS_RGBLED=y -CONFIG_DRIVERS_LIGHTS_RGBLED_NCP5623C=y -CONFIG_DRIVERS_LIGHTS_RGBLED_PWM=y -CONFIG_DRIVERS_MAGNETOMETER=y -CONFIG_DRIVERS_OPTICAL_FLOW_PAW3902=y -CONFIG_DRIVERS_OPTICAL_FLOW_PMW3901=y -CONFIG_DRIVERS_OPTICAL_FLOW_PX4FLOW=y -CONFIG_DRIVERS_OPTICAL_FLOW_THONEFLOW=y -CONFIG_DRIVERS_OSD=y -CONFIG_DRIVERS_PCA9685=y -CONFIG_DRIVERS_PCA9685_PWM_OUT=y -CONFIG_DRIVERS_POWER_MONITOR_INA226=y -CONFIG_DRIVERS_PWM_OUT=y -CONFIG_DRIVERS_PWM_OUT_SIM=y -CONFIG_DRIVERS_RC_INPUT=y -CONFIG_DRIVERS_ROBOCLAW=y -CONFIG_DRIVERS_RPM=y -CONFIG_DRIVERS_SAFETY_BUTTON=y -CONFIG_DRIVERS_SMART_BATTERY_BATMON=y -CONFIG_DRIVERS_TELEMETRY=y -CONFIG_DRIVERS_TONE_ALARM=y -CONFIG_DRIVERS_UAVCAN=y -CONFIG_BOARD_UAVCAN_INTERFACES=2 -CONFIG_MODULES_AIRSPEED_SELECTOR=y -CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q=y -CONFIG_MODULES_BATTERY_STATUS=y -CONFIG_MODULES_CAMERA_FEEDBACK=y -CONFIG_MODULES_COMMANDER=y -CONFIG_MODULES_DATAMAN=y -CONFIG_MODULES_EKF2=y -CONFIG_MODULES_ESC_BATTERY=y -CONFIG_MODULES_EVENTS=y -CONFIG_MODULES_FLIGHT_MODE_MANAGER=y -CONFIG_MODULES_FW_ATT_CONTROL=y -CONFIG_MODULES_FW_POS_CONTROL_L1=y -CONFIG_MODULES_GYRO_CALIBRATION=y -CONFIG_MODULES_GYRO_FFT=y -CONFIG_MODULES_LAND_DETECTOR=y -CONFIG_MODULES_LANDING_TARGET_ESTIMATOR=y -CONFIG_MODULES_LOAD_MON=y -CONFIG_MODULES_LOCAL_POSITION_ESTIMATOR=y -CONFIG_MODULES_LOGGER=y -CONFIG_MODULES_MAVLINK=y -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_NAVIGATOR=y -CONFIG_MODULES_RC_UPDATE=y -CONFIG_MODULES_ROVER_POS_CONTROL=y -CONFIG_MODULES_SENSORS=y -CONFIG_MODULES_SIH=y -CONFIG_MODULES_TEMPERATURE_COMPENSATION=y -CONFIG_MODULES_VMOUNT=y -CONFIG_MODULES_VTOL_ATT_CONTROL=y -CONFIG_SYSTEMCMDS_DUMPFILE=y -CONFIG_SYSTEMCMDS_ESC_CALIB=y -CONFIG_SYSTEMCMDS_I2CDETECT=y -CONFIG_SYSTEMCMDS_LED_CONTROL=y -CONFIG_SYSTEMCMDS_MFT=y -CONFIG_SYSTEMCMDS_MICROBENCH=y -CONFIG_SYSTEMCMDS_MIXER=y -CONFIG_SYSTEMCMDS_MOTOR_RAMP=y -CONFIG_SYSTEMCMDS_MOTOR_TEST=y -CONFIG_SYSTEMCMDS_MTD=y -CONFIG_SYSTEMCMDS_NSHTERM=y -CONFIG_SYSTEMCMDS_PARAM=y -CONFIG_SYSTEMCMDS_PERF=y -CONFIG_SYSTEMCMDS_PWM=y -CONFIG_SYSTEMCMDS_REBOOT=y -CONFIG_SYSTEMCMDS_REFLECT=y -CONFIG_SYSTEMCMDS_SD_BENCH=y -CONFIG_SYSTEMCMDS_SERIAL_TEST=y -CONFIG_SYSTEMCMDS_SYSTEM_TIME=y -CONFIG_SYSTEMCMDS_TESTS=y -CONFIG_SYSTEMCMDS_TOP=y -CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y -CONFIG_SYSTEMCMDS_TUNE_CONTROL=y -CONFIG_SYSTEMCMDS_UORB=y -CONFIG_SYSTEMCMDS_USB_CONNECTED=y -CONFIG_SYSTEMCMDS_VER=y -CONFIG_SYSTEMCMDS_WORK_QUEUE=y -CONFIG_EXAMPLES_FAKE_GPS=y CONFIG_EXAMPLES_FAKE_IMU=y CONFIG_EXAMPLES_FAKE_MAGNETOMETER=y CONFIG_EXAMPLES_FIXEDWING_CONTROL=y @@ -113,3 +9,5 @@ CONFIG_EXAMPLES_PX4_SIMPLE_APP=y CONFIG_EXAMPLES_ROVER_STEERING_CONTROL=y CONFIG_EXAMPLES_UUV_EXAMPLE_APP=y CONFIG_EXAMPLES_WORK_ITEM=y +CONFIG_SYSTEMCMDS_MICROBENCH=y +CONFIG_SYSTEMCMDS_TESTS=y diff --git a/cmake/kconfig.cmake b/cmake/kconfig.cmake index 859645471c..928e6308a0 100644 --- a/cmake/kconfig.cmake +++ b/cmake/kconfig.cmake @@ -30,11 +30,19 @@ if(EXISTS ${BOARD_DEFCONFIG}) # Depend on BOARD_DEFCONFIG so that we reconfigure on config change set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${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) + if(NOT ${LABEL} MATCHES "default") + # Generate boardconfig from default.px4board and {label}.px4board + execute_process(COMMAND ${CMAKE_COMMAND} -E env ${COMMON_KCONFIG_ENV_SETTINGS} + ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/kconfig/merge_config.py Kconfig ${BOARD_CONFIG} ${PX4_BOARD_DIR}/default.px4board ${BOARD_DEFCONFIG} + WORKING_DIRECTORY ${PX4_SOURCE_DIR} + OUTPUT_VARIABLE DUMMY_RESULTS) + else() + # 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) + endif() # parse board config options for cmake @@ -294,26 +302,53 @@ if(EXISTS ${BOARD_DEFCONFIG}) endif() -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} - COMMAND ${CMAKE_COMMAND} -E rm ${PX4_BINARY_DIR}/NuttX/apps_copy.stamp - WORKING_DIRECTORY ${PX4_SOURCE_DIR} - USES_TERMINAL - COMMAND_EXPAND_LISTS -) -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} - COMMAND ${CMAKE_COMMAND} -E rm ${PX4_BINARY_DIR}/NuttX/apps_copy.stamp - WORKING_DIRECTORY ${PX4_SOURCE_DIR} - USES_TERMINAL - COMMAND_EXPAND_LISTS -) +if(NOT ${LABEL} MATCHES "default") + 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 env ${COMMON_KCONFIG_ENV_SETTINGS} ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/kconfig/diffconfig.py -m ${PX4_BOARD_DIR}/default.px4board defconfig > ${BOARD_DEFCONFIG} + COMMAND ${CMAKE_COMMAND} -E rm ${PX4_BINARY_DIR}/NuttX/apps_copy.stamp + WORKING_DIRECTORY ${PX4_SOURCE_DIR} + USES_TERMINAL + COMMAND_EXPAND_LISTS + ) + + 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 env ${COMMON_KCONFIG_ENV_SETTINGS} ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/kconfig/diffconfig.py -m ${PX4_BOARD_DIR}/default.px4board defconfig > ${BOARD_DEFCONFIG} + COMMAND ${CMAKE_COMMAND} -E rm ${PX4_BINARY_DIR}/NuttX/apps_copy.stamp + WORKING_DIRECTORY ${PX4_SOURCE_DIR} + USES_TERMINAL + COMMAND_EXPAND_LISTS + ) +else() + 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} + COMMAND ${CMAKE_COMMAND} -E rm ${PX4_BINARY_DIR}/NuttX/apps_copy.stamp + WORKING_DIRECTORY ${PX4_SOURCE_DIR} + USES_TERMINAL + COMMAND_EXPAND_LISTS + ) + + 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} + COMMAND ${CMAKE_COMMAND} -E rm ${PX4_BINARY_DIR}/NuttX/apps_copy.stamp + WORKING_DIRECTORY ${PX4_SOURCE_DIR} + USES_TERMINAL + COMMAND_EXPAND_LISTS + ) +endif() diff --git a/src/drivers/uavcan/Kconfig b/src/drivers/uavcan/Kconfig index c9f5c2f49a..91e708111c 100644 --- a/src/drivers/uavcan/Kconfig +++ b/src/drivers/uavcan/Kconfig @@ -21,5 +21,6 @@ if DRIVERS_UAVCAN menuconfig BOARD_UAVCAN_TIMER_OVERRIDE depends on DRIVERS_UAVCAN int "UAVCAN timer override" + default 0 endif #DRIVERS_UAVCAN