From f748e07ecf2dd4d6f3eb96c10fd40c76467203b8 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 13 Aug 2014 14:42:52 +1000 Subject: [PATCH] AP_HAL: ensure we have subtypes for all boards --- libraries/AP_HAL/AP_HAL_Boards.h | 48 ++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/libraries/AP_HAL/AP_HAL_Boards.h b/libraries/AP_HAL/AP_HAL_Boards.h index f3c0bd9aef..f80ad010f0 100644 --- a/libraries/AP_HAL/AP_HAL_Boards.h +++ b/libraries/AP_HAL/AP_HAL_Boards.h @@ -20,14 +20,28 @@ #define HAL_BOARD_VRBRAIN 8 #define HAL_BOARD_EMPTY 99 +// default board subtype is -1 +#define HAL_BOARD_SUBTYPE_NONE -1 /** - HAL Linux sub-types + HAL Linux sub-types, starting at 1000 */ -#define HAL_BOARD_SUBTYPE_LINUX_NONE 0 -#define HAL_BOARD_SUBTYPE_LINUX_ERLE 1 -#define HAL_BOARD_SUBTYPE_LINUX_PXF 2 -#define HAL_BOARD_SUBTYPE_LINUX_NAVIO 3 +#define HAL_BOARD_SUBTYPE_LINUX_NONE 1000 +#define HAL_BOARD_SUBTYPE_LINUX_ERLE 1001 +#define HAL_BOARD_SUBTYPE_LINUX_PXF 1002 +#define HAL_BOARD_SUBTYPE_LINUX_NAVIO 1003 + +/** + HAL PX4 sub-types, starting at 2000 + */ +#define HAL_BOARD_SUBTYPE_PX4_V1 2000 +#define HAL_BOARD_SUBTYPE_PX4_V2 2001 + +/** + HAL AVR sub-types, starting at 3000 + */ +#define HAL_BOARD_SUBTYPE_AVR_APM1 3000 +#define HAL_BOARD_SUBTYPE_AVR_APM2 3001 // InertialSensor driver types #define HAL_INS_OILPAN 1 @@ -92,6 +106,9 @@ #define HAL_INS_DEFAULT HAL_INS_OILPAN #define HAL_BARO_DEFAULT HAL_BARO_BMP085 #define HAL_COMPASS_DEFAULT HAL_COMPASS_HMC5843 +#ifndef CONFIG_HAL_BOARD_SUBTYPE +#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_AVR_APM1 +#endif #elif CONFIG_HAL_BOARD == HAL_BOARD_APM2 #define AP_HAL_BOARD_DRIVER AP_HAL_AVR_APM2 @@ -106,13 +123,16 @@ #define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI #endif #define HAL_COMPASS_DEFAULT HAL_COMPASS_HMC5843 +#ifndef CONFIG_HAL_BOARD_SUBTYPE +#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_AVR_APM2 +#endif #elif CONFIG_HAL_BOARD == HAL_BOARD_AVR_SITL #define AP_HAL_BOARD_DRIVER AP_HAL_AVR_SITL #define HAL_BOARD_NAME "SITL" #define HAL_CPU_CLASS HAL_CPU_CLASS_1000 #define HAL_OS_POSIX_IO 1 -#define HAL_STORAGE_SIZE 4096 +#define HAL_STORAGE_SIZE 16384 #define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE #define HAL_BOARD_LOG_DIRECTORY "logs" #define HAL_BOARD_TERRAIN_DIRECTORY "terrain" @@ -136,14 +156,19 @@ #define HAL_BOARD_NAME "PX4" #define HAL_CPU_CLASS HAL_CPU_CLASS_150 #define HAL_OS_POSIX_IO 1 -#define HAL_STORAGE_SIZE 4096 -#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE #define HAL_BOARD_LOG_DIRECTORY "/fs/microsd/APM/LOGS" #define HAL_BOARD_TERRAIN_DIRECTORY "/fs/microsd/APM/TERRAIN" #define HAL_INS_DEFAULT HAL_INS_PX4 #define HAL_BARO_DEFAULT HAL_BARO_PX4 #define HAL_COMPASS_DEFAULT HAL_COMPASS_PX4 #define HAL_SERIAL0_BAUD_DEFAULT 115200 +#ifdef CONFIG_ARCH_BOARD_PX4FMU_V1 +#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_PX4_V1 +#define HAL_STORAGE_SIZE 8192 +#else +#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_PX4_V2 +#define HAL_STORAGE_SIZE 16384 +#endif #elif CONFIG_HAL_BOARD == HAL_BOARD_LINUX #define AP_HAL_BOARD_DRIVER AP_HAL_Linux @@ -169,6 +194,8 @@ #define HAL_INS_DEFAULT HAL_INS_MPU9250 #define HAL_BARO_DEFAULT HAL_BARO_MS5611 #define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL +#else +#error "no Linux board subtype set" #endif #elif CONFIG_HAL_BOARD == HAL_BOARD_EMPTY @@ -180,6 +207,7 @@ #define HAL_INS_DEFAULT HAL_INS_HIL #define HAL_BARO_DEFAULT HAL_BARO_HIL #define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL +#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_NONE #elif CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN #define AP_HAL_BOARD_DRIVER AP_HAL_VRBRAIN @@ -198,5 +226,9 @@ #error "Unknown CONFIG_HAL_BOARD type" #endif +#ifndef CONFIG_HAL_BOARD_SUBTYPE +#error "No CONFIG_HAL_BOARD_SUBTYPE set" +#endif + #endif // __AP_HAL_BOARDS_H__