Added common options for sensor drivers

uavcan_board_identity check for existance
Added kconfig for compiler definitions
This commit is contained in:
Peter van der Perk 2021-08-11 21:07:46 +02:00 committed by Daniel Agar
parent 82888d3320
commit 815617e670
22 changed files with 241 additions and 158 deletions

182
Kconfig
View File

@ -7,112 +7,122 @@ comment "Vendor: $(VENDOR)"
comment "Model: $(MODEL)"
comment "Label: $(LABEL)"
choice
prompt "Platform"
default PLATFORM_NUTTX
config PLATFORM_NUTTX
bool "nuttx"
config PLATFORM_POSIX
bool "posix"
config PLATFORM_QURT
bool "qurt"
endchoice
menu "Toolchain"
choice
prompt "Platform"
default PLATFORM_NUTTX
config PLATFORM_NUTTX
bool "nuttx"
config PLATFORM_POSIX
bool "posix"
config PLATFORM_QURT
bool "qurt"
endchoice
config BOARD_PLATFORM
string
default "nuttx" if PLATFORM_NUTTX
default "posix" if PLATFORM_POSIX
default "qurt" if PLATFORM_QURT
config BOARD_PLATFORM
string
default "nuttx" if PLATFORM_NUTTX
default "posix" if PLATFORM_POSIX
default "qurt" if PLATFORM_QURT
choice
prompt "Toolchain"
default TOOLCHAIN_ARM_NONE_EABI
config TOOLCHAIN_ARM_NONE_EABI
bool "arm-none-eabi"
config TOOLCHAIN_RISV64
bool "riscv64-unknown-elf"
help
cmake toolchain
endchoice
choice
prompt "Toolchain"
default TOOLCHAIN_ARM_NONE_EABI
config TOOLCHAIN_ARM_NONE_EABI
bool "arm-none-eabi"
config TOOLCHAIN_RISV64
bool "riscv64-unknown-elf"
help
cmake toolchain
endchoice
config BOARD_TOOLCHAIN
string
default "arm-none-eabi" if TOOLCHAIN_ARM_NONE_EABI
default "riscv64-unknown-elf" if TOOLCHAIN_RISV64
config BOARD_TOOLCHAIN
string
default "arm-none-eabi" if TOOLCHAIN_ARM_NONE_EABI
default "riscv64-unknown-elf" if TOOLCHAIN_RISV64
choice
prompt "Architecture"
config ARCHITECTURE_CORTEX_M3
bool "cortex-m3"
config ARCHITECTURE_CORTEX_M4
bool "cortex-m4"
config ARCHITECTURE_CORTEX_M7
bool "cortex-m7"
config ARCHITECTURE_CORTEX_A8
bool "cortex-a8"
config ARCHITECTURE_CORTEX_A53
bool "cortex-a53"
help
name of the CPU CMake is building for (used by the toolchain)
endchoice
choice
prompt "Architecture"
config ARCHITECTURE_CORTEX_M3
bool "cortex-m3"
config ARCHITECTURE_CORTEX_M4
bool "cortex-m4"
config ARCHITECTURE_CORTEX_M7
bool "cortex-m7"
config ARCHITECTURE_CORTEX_A8
bool "cortex-a8"
config ARCHITECTURE_CORTEX_A53
bool "cortex-a53"
help
name of the CPU CMake is building for (used by the toolchain)
endchoice
config BOARD_ARCHITECTURE
string
default "cortex-m3" if ARCHITECTURE_CORTEX_M3
default "cortex-m4" if ARCHITECTURE_CORTEX_M4
default "cortex-m7" if ARCHITECTURE_CORTEX_M7
default "cortex-a8" if ARCHITECTURE_CORTEX_A8
default "cortex-a53" if ARCHITECTURE_CORTEX_A53
config BOARD_ARCHITECTURE
string
default "cortex-m3" if ARCHITECTURE_CORTEX_M3
default "cortex-m4" if ARCHITECTURE_CORTEX_M4
default "cortex-m7" if ARCHITECTURE_CORTEX_M7
default "cortex-a8" if ARCHITECTURE_CORTEX_A8
default "cortex-a53" if ARCHITECTURE_CORTEX_A53
config BOARD_ROMFSROOT
string "ROMFSROOT"
default "px4fmu_common"
help
relative path to the ROMFS root directory
config BOARD_ROMFSROOT
string "ROMFSROOT"
default "px4fmu_common"
help
relative path to the ROMFS root directory
config BOARD_BUILD_BOOTLOADER
bool "Enable bootloader"
help
flag to enable building and including the bootloader config
config BOARD_BUILD_BOOTLOADER
bool "Enable bootloader"
help
flag to enable building and including the bootloader config
config BOARD_IO
string "IO board name"
help
name of IO board to be built and included in the ROMFS (requires a valid ROMFSROOT)
config BOARD_IO
string "IO board name"
help
name of IO board to be built and included in the ROMFS (requires a valid ROMFSROOT)
config BOARD_CONSTRAINED_FLASH
bool "Contrained flash"
help
flag to enable constrained flash options (eg limit init script status text)
config BOARD_CONSTRAINED_FLASH
bool "Contrained flash"
help
flag to enable constrained flash options (eg limit init script status text)
if BOARD_CONSTRAINED_FLASH
if BOARD_CONSTRAINED_FLASH
config BOARD_NO_HELP
bool "No help"
help
optional condition flag to disable help text on constrained flash systems
config BOARD_NO_HELP
bool "No help"
help
optional condition flag to disable help text on constrained flash systems
endif #BOARD_CONSTRAINED_FLASH
endif #BOARD_CONSTRAINED_FLASH
config BOARD_CONSTRAINED_MEMORY
bool "Contrained memory"
help
flag to enable constrained memory options (eg limit maximum number of uORB publications)
config BOARD_CONSTRAINED_MEMORY
bool "Contrained memory"
help
flag to enable constrained memory options (eg limit maximum number of uORB publications)
config BOARD_EXTERNAL_METADATA
bool "External metadata"
help
flag to exclude metadata to reduce flash
config BOARD_EXTERNAL_METADATA
bool "External metadata"
help
flag to exclude metadata to reduce flash
config BOARD_LINKER_PREFIX
string "linker prefix"
help
optional to prefix on the Linker script.
config BOARD_COMPILE_DEFINITIONS
string "add custom compile definitions"
help
add custom compile defitions to this specific target
endmenu #Toolchain
config BOARD_TESTING
bool "Testing"
select SYSTEMCMDS_MICROBENCH
select SYSTEMCMDS_TESTS
help
flag to enable automatic inclusion of PX4 testing modules
config BOARD_LINKER_PREFIX
bool "PX4 board linker prefix"
help
optional to prefix on the Linker script.
config BOARD_ETHERNET
bool "Ethernet"

View File

@ -74,33 +74,10 @@ def print_config(op, config, value, new_value):
else:
print(" %s %s -> %s" % (config, value, new_value))
def main():
def main(merge, configa_filename, configb_filename):
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]
merge_style = merge
try:
a = readconfig(open(configa_filename))
@ -138,4 +115,31 @@ def main():
for config in new:
print_config("+", config, None, b[config])
main()
if __name__ == '__main__':
# 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]
main(merge_style, configa_filename, configb_filename)

View File

@ -33,6 +33,7 @@ if [[ $REINSTALL_FORMULAS == "--reinstall" ]]; then
brew tap PX4/px4
brew reinstall px4-dev
brew install ncurses
else
if brew ls --versions px4-dev > /dev/null; then
echo "px4-dev already installed"
@ -40,6 +41,7 @@ else
echo "Installing PX4 general dependencies (homebrew px4-dev)"
brew tap PX4/px4
brew install px4-dev
brew install ncurses
fi
fi

View File

@ -1,3 +0,0 @@
include (${CMAKE_CURRENT_LIST_DIR}/uavcan_board_identity)
add_definitions(-DUSE_S_RGB_LED_DMA)

View File

@ -1,6 +1,7 @@
CONFIG_ARCHITECTURE_CORTEX_M4=y
CONFIG_BOARD_ROMFSROOT="cannode"
CONFIG_BOARD_CONSTRAINED_MEMORY=y
CONFIG_BOARD_COMPILE_DEFINITIONS="-DUSE_S_RGB_LED_DMA"
CONFIG_DRIVERS_BAROMETER_MS5611=y
CONFIG_DRIVERS_BOOTLOADERS=y
CONFIG_DRIVERS_GPS=y

View File

@ -6,7 +6,7 @@ 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_COMMON_BAROMETERS=y
CONFIG_DRIVERS_BAROMETER_MPL3115A2=y
CONFIG_DRIVERS_BATT_SMBUS=y
CONFIG_DRIVERS_CAMERA_CAPTURE=y
@ -22,7 +22,7 @@ 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_COMMON_MAGNETOMETER=y
CONFIG_DRIVERS_OPTICAL_FLOW_PAW3902=y
CONFIG_DRIVERS_OPTICAL_FLOW_PMW3901=y
CONFIG_DRIVERS_OPTICAL_FLOW_PX4FLOW=y
@ -41,7 +41,6 @@ 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

View File

@ -9,5 +9,3 @@ 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

View File

@ -291,6 +291,10 @@ if(EXISTS ${BOARD_DEFCONFIG})
set(PX4_BOARD_LINKER_PREFIX "" CACHE STRING "PX4 board linker prefix" FORCE)
endif()
if(COMPILE_DEFINITIONS)
add_definitions( ${COMPILE_DEFINITIONS})
endif()
include(px4_impl_os)
px4_os_prebuild_targets(OUT prebuild_targets BOARD ${PX4_BOARD})

View File

@ -63,7 +63,6 @@ if(NOT PX4_CONFIG_FILE)
)
set(PX4_CONFIG_FILE "${PX4_SOURCE_DIR}/boards/${filename}" CACHE FILEPATH "path to PX4 CONFIG file" FORCE)
set(PX4_BOARD_DIR "${PX4_SOURCE_DIR}/boards/${vendor}/${model}" CACHE STRING "PX4 board directory" FORCE)
set(PX4_BOARD_CMAKE "${PX4_SOURCE_DIR}/boards/${vendor}/${model}/default.cmake" CACHE FILEPATH "path to PX4 CONFIG file" FORCE)
set(MODEL "${model}" CACHE STRING "PX4 board model" FORCE)
set(VENDOR "${vendor}" CACHE STRING "PX4 board vendor" FORCE)
set(LABEL "${label}" CACHE STRING "PX4 board vendor" FORCE)
@ -76,7 +75,6 @@ if(NOT PX4_CONFIG_FILE)
((${label} STREQUAL "default") AND (${CONFIG} STREQUAL "${board}")) # default label can be omitted
)
set(PX4_CONFIG_FILE "${PX4_SOURCE_DIR}/boards/${filename}" CACHE FILEPATH "path to PX4 CONFIG file" FORCE)
set(PX4_BOARD_CMAKE "${PX4_SOURCE_DIR}/boards/${vendor}/${model}/default.cmake" CACHE FILEPATH "path to PX4 CONFIG file" FORCE)
set(PX4_BOARD_DIR "${PX4_SOURCE_DIR}/boards/${vendor}/${model}" CACHE STRING "PX4 board directory" FORCE)
set(MODEL "${model}" CACHE STRING "PX4 board model" FORCE)
set(VENDOR "${vendor}" CACHE STRING "PX4 board vendor" FORCE)
@ -110,6 +108,6 @@ set(PX4_BOARD_LABEL ${LABEL} CACHE STRING "PX4 board label" FORCE)
set(PX4_CONFIG "${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_${PX4_BOARD_LABEL}" CACHE STRING "PX4 config" FORCE)
if(EXISTS ${PX4_BOARD_CMAKE})
include (${PX4_BOARD_CMAKE})
if(EXISTS "${PX4_BOARD_DIR}/uavcan_board_identity")
include ("${PX4_BOARD_DIR}/uavcan_board_identity")
endif()

View File

@ -1,9 +1,14 @@
menuconfig DRIVERS_BAROMETER
bool "barometer"
default n
---help---
Enable support for barometer
if DRIVERS_BAROMETER
rsource "*/Kconfig"
endif #DRIVERS_BAROMETER
menu "barometer"
menuconfig COMMON_BAROMETERS
bool "Common barometers"
default n
select DRIVERS_BAROMETER_BMP280
select DRIVERS_BAROMETER_BMP388
select DRIVERS_BAROMETER_DPS310
select DRIVERS_BAROMETER_LPC22HB
select DRIVERS_BAROMETER_LPS33HW
select DRIVERS_BAROMETER_MS5611
---help---
Enable default set of barometer drivers
rsource "*/Kconfig"
endmenu #barometer

View File

@ -1,3 +1,30 @@
menu "IMU"
rsource "*/Kconfig"
menuconfig COMMON_IMU
bool "Common IMU's"
default n
select DRIVERS_IMU_ADIS16477
select DRIVERS_IMU_ADIS16497
select DRIVERS_IMU_ANALOG_DEVICES_ADIS16448
select DRIVERS_IMU_ANALOG_DEVICES_ADIS16470
select DRIVERS_IMU_BOSCH_BMI055
select DRIVERS_IMU_BOSCH_BMI088
select DRIVERS_IMU_FXAS21002C
select DRIVERS_IMU_FXOS8701CQ
select DRIVERS_IMU_INVENSENSE_ICM20602
select DRIVERS_IMU_INVENSENSE_ICM20608G
select DRIVERS_IMU_INVENSENSE_ICM20649
select DRIVERS_IMU_INVENSENSE_ICM20689
#select DRIVERS_IMU_INVENSENSE_ICM20948
select DRIVERS_IMU_INVENSENSE_ICM40609D
select DRIVERS_IMU_INVENSENSE_ICM42605
select DRIVERS_IMU_INVENSENSE_ICM42688P
select DRIVERS_IMU_INVENSENSE_MPU6000
select DRIVERS_IMU_INVENSENSE_MPU6500
select DRIVERS_IMU_INVENSENSE_MPU9250
select DRIVERS_IMU_L3GD20
select DRIVERS_IMU_LSM303D
select DRIVERS_IMU_ST
---help---
Enable default set of IMU drivers
rsource "*/Kconfig"
endmenu

View File

@ -1,9 +1,20 @@
menuconfig DRIVERS_MAGNETOMETER
bool "Magnetometer"
default n
---help---
Enable support for all available magnetometer drivers
if DRIVERS_MAGNETOMETER
rsource "*/Kconfig"
endif #DRIVERS_MAGNETOMETER
menu "Magnetometer"
menuconfig COMMON_MAGNETOMETER
bool "Common Magnetometer's"
default n
select DRIVERS_MAGNETOMETER_AKM_AK8963
select DRIVERS_MAGNETOMETER_AKM_AK09916
select DRIVERS_MAGNETOMETER_BOSCH_BMM150
select DRIVERS_MAGNETOMETER_HMC5883
select DRIVERS_MAGNETOMETER_QMC5883L
select DRIVERS_MAGNETOMETER_ISENTEK_IST8308
select DRIVERS_MAGNETOMETER_ISENTEK_IST8310
select DRIVERS_MAGNETOMETER_LIS2MDL
select DRIVERS_MAGNETOMETER_LIS3MDL
select DRIVERS_MAGNETOMETER_LSM303AGR
select DRIVERS_MAGNETOMETER_RM3100
select DRIVERS_MAGNETOMETER_VTRANTECH_VCM1193L
---help---
Enable default set of magnetometer drivers
rsource "*/Kconfig"
endmenu

View File

@ -1,5 +1,3 @@
menuconfig DRIVERS_MAGNETOMETER_AKM
bool "akm"
default n
---help---
Enable support for akm
menu "AKM"
rsource "*/Kconfig"
endmenu

View File

@ -0,0 +1,5 @@
menuconfig DRIVERS_MAGNETOMETER_AKM_AK09916
bool "ak09916"
default n
---help---
Enable support for ak09916

View File

@ -0,0 +1,5 @@
menuconfig DRIVERS_MAGNETOMETER_AKM_AK8963
bool "ak8963"
default n
---help---
Enable support for ak8963

View File

@ -1,5 +1,3 @@
menuconfig DRIVERS_MAGNETOMETER_BOSCH
bool "bosch"
default n
---help---
Enable support for bosch
menu "Bosch"
rsource "*/Kconfig"
endmenu

View File

@ -0,0 +1,5 @@
menuconfig DRIVERS_MAGNETOMETER_BOSCH_BMM150
bool "bmm150"
default n
---help---
Enable support for bosch bmm150

View File

@ -1,5 +1,3 @@
menuconfig DRIVERS_MAGNETOMETER_ISENTEK
bool "isentek"
default n
---help---
Enable support for isentek
menu "Isentek"
rsource "*/Kconfig"
endmenu #Isentek

View File

@ -0,0 +1,5 @@
menuconfig DRIVERS_MAGNETOMETER_ISENTEK_IST8308
bool "IST8308"
default n
---help---
Enable support for isentek IST8308

View File

@ -0,0 +1,5 @@
menuconfig DRIVERS_MAGNETOMETER_ISENTEK_IST8310
bool "IST8310"
default n
---help---
Enable support for isentek IST8310

View File

@ -0,0 +1,3 @@
menu "Vtrantech"
rsource "*/Kconfig"
endmenu #Vtrantech

View File

@ -0,0 +1,5 @@
menuconfig DRIVERS_MAGNETOMETER_VTRANTECH_VCM1193L
bool "VCM1193L"
default n
---help---
Enable support for Vtrantech VCM1193L