2012-12-11 19:19:52 -04:00
|
|
|
|
|
|
|
#ifndef __AP_HAL_BOARDS_H__
|
|
|
|
#define __AP_HAL_BOARDS_H__
|
|
|
|
|
|
|
|
/**
|
|
|
|
* C preprocesor enumeration of the boards supported by the AP_HAL.
|
|
|
|
* This list exists so HAL_BOARD == HAL_BOARD_xxx preprocessor blocks
|
|
|
|
* can be used to exclude HAL boards from the build when appropriate.
|
|
|
|
* Its not an elegant solution but we cant get too fancy if we want to
|
|
|
|
* work with the Arduino mk and IDE builds without too much modification.
|
|
|
|
*/
|
2014-07-23 09:23:26 -03:00
|
|
|
|
2012-12-11 19:19:52 -04:00
|
|
|
#define HAL_BOARD_APM1 1
|
|
|
|
#define HAL_BOARD_APM2 2
|
|
|
|
#define HAL_BOARD_AVR_SITL 3
|
2013-09-26 09:37:19 -03:00
|
|
|
#define HAL_BOARD_SMACCM 4 // unused
|
2013-09-22 03:02:42 -03:00
|
|
|
#define HAL_BOARD_PX4 5
|
2013-09-23 00:16:19 -03:00
|
|
|
#define HAL_BOARD_FLYMAPLE 6
|
2013-09-22 03:03:28 -03:00
|
|
|
#define HAL_BOARD_LINUX 7
|
2014-03-31 14:29:33 -03:00
|
|
|
#define HAL_BOARD_VRBRAIN 8
|
2012-12-14 21:18:55 -04:00
|
|
|
#define HAL_BOARD_EMPTY 99
|
2012-12-11 19:19:52 -04:00
|
|
|
|
2014-08-13 01:42:52 -03:00
|
|
|
// default board subtype is -1
|
|
|
|
#define HAL_BOARD_SUBTYPE_NONE -1
|
2013-12-30 18:24:43 -04:00
|
|
|
|
2014-07-06 23:02:50 -03:00
|
|
|
/**
|
2014-08-13 01:42:52 -03:00
|
|
|
HAL Linux sub-types, starting at 1000
|
2014-07-06 23:02:50 -03:00
|
|
|
*/
|
2014-08-13 01:42:52 -03:00
|
|
|
#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
|
2014-07-06 23:02:50 -03:00
|
|
|
|
|
|
|
// InertialSensor driver types
|
|
|
|
#define HAL_INS_OILPAN 1
|
|
|
|
#define HAL_INS_MPU6000 2
|
|
|
|
#define HAL_INS_HIL 3
|
|
|
|
#define HAL_INS_PX4 4
|
|
|
|
#define HAL_INS_FLYMAPLE 5
|
|
|
|
#define HAL_INS_L3G4200D 6
|
|
|
|
#define HAL_INS_VRBRAIN 7
|
|
|
|
#define HAL_INS_MPU9250 8
|
2014-07-17 07:09:12 -03:00
|
|
|
#define HAL_INS_L3GD20 9
|
2014-07-06 23:02:50 -03:00
|
|
|
|
|
|
|
// barometer driver types
|
|
|
|
#define HAL_BARO_BMP085 1
|
|
|
|
#define HAL_BARO_MS5611 2
|
|
|
|
#define HAL_BARO_MS5611_SPI 3
|
|
|
|
#define HAL_BARO_PX4 4
|
|
|
|
#define HAL_BARO_HIL 5
|
|
|
|
#define HAL_BARO_VRBRAIN 6
|
|
|
|
|
|
|
|
// compass driver types
|
|
|
|
#define HAL_COMPASS_HMC5843 1
|
|
|
|
#define HAL_COMPASS_PX4 2
|
|
|
|
#define HAL_COMPASS_HIL 3
|
|
|
|
#define HAL_COMPASS_VRBRAIN 4
|
|
|
|
|
2013-12-30 18:24:43 -04:00
|
|
|
/**
|
|
|
|
CPU classes, used to select if CPU intensive algorithms should be used
|
|
|
|
|
2014-07-23 09:23:26 -03:00
|
|
|
Note that these are only approximate, not exact CPU speeds.
|
2013-12-30 18:24:43 -04:00
|
|
|
*/
|
|
|
|
#define HAL_CPU_CLASS_16 1 // 16Mhz, AVR2560 or similar
|
|
|
|
#define HAL_CPU_CLASS_75 2 // 75Mhz, Flymaple or similar
|
|
|
|
#define HAL_CPU_CLASS_150 3 // 150Mhz, PX4 or similar, assumes
|
|
|
|
// hardware floating point. Assumes tens
|
|
|
|
// of kilobytes of memory available
|
|
|
|
#define HAL_CPU_CLASS_1000 4 // GigaHz class, SITL, BeagleBone etc,
|
|
|
|
// assumes megabytes of memory available
|
|
|
|
|
|
|
|
/**
|
|
|
|
operating system features:
|
|
|
|
|
|
|
|
HAL implementations may define the following extra feature defines
|
|
|
|
to 1 if available
|
|
|
|
|
|
|
|
HAL_OS_POSIX_IO : has posix-like filesystem IO
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
2012-12-18 05:04:20 -04:00
|
|
|
/*
|
|
|
|
define AP_HAL_BOARD_DRIVER to the right hal type for this
|
|
|
|
board. This prevents us having a mess of ifdefs in every example
|
|
|
|
sketch
|
|
|
|
*/
|
|
|
|
|
|
|
|
#if CONFIG_HAL_BOARD == HAL_BOARD_APM1
|
|
|
|
#define AP_HAL_BOARD_DRIVER AP_HAL_AVR_APM1
|
2013-02-22 19:32:53 -04:00
|
|
|
#define HAL_BOARD_NAME "APM 1"
|
2013-12-30 18:24:43 -04:00
|
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_16
|
2014-03-12 03:12:24 -03:00
|
|
|
#define HAL_STORAGE_SIZE 4096
|
|
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_INS_DEFAULT HAL_INS_OILPAN
|
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_BMP085
|
|
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HMC5843
|
2014-08-13 01:42:52 -03:00
|
|
|
#ifndef CONFIG_HAL_BOARD_SUBTYPE
|
|
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_AVR_APM1
|
|
|
|
#endif
|
2013-12-30 18:24:43 -04:00
|
|
|
|
2012-12-18 05:04:20 -04:00
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_APM2
|
|
|
|
#define AP_HAL_BOARD_DRIVER AP_HAL_AVR_APM2
|
2013-02-22 19:32:53 -04:00
|
|
|
#define HAL_BOARD_NAME "APM 2"
|
2013-12-30 18:24:43 -04:00
|
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_16
|
2014-03-12 03:12:24 -03:00
|
|
|
#define HAL_STORAGE_SIZE 4096
|
|
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU6000
|
|
|
|
#ifdef APM2_BETA_HARDWARE
|
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_BMP085
|
|
|
|
#else
|
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
|
|
|
|
#endif
|
|
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HMC5843
|
2014-08-13 01:42:52 -03:00
|
|
|
#ifndef CONFIG_HAL_BOARD_SUBTYPE
|
|
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_AVR_APM2
|
|
|
|
#endif
|
2013-12-30 18:24:43 -04:00
|
|
|
|
2012-12-18 05:04:20 -04:00
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_AVR_SITL
|
|
|
|
#define AP_HAL_BOARD_DRIVER AP_HAL_AVR_SITL
|
2013-02-22 19:32:53 -04:00
|
|
|
#define HAL_BOARD_NAME "SITL"
|
2013-12-30 18:24:43 -04:00
|
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_1000
|
|
|
|
#define HAL_OS_POSIX_IO 1
|
2014-08-13 01:42:52 -03:00
|
|
|
#define HAL_STORAGE_SIZE 16384
|
2014-03-12 03:12:24 -03:00
|
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_BOARD_LOG_DIRECTORY "logs"
|
2014-07-21 22:28:36 -03:00
|
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "terrain"
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_INS_DEFAULT HAL_INS_HIL
|
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_HIL
|
|
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
|
2013-12-30 18:24:43 -04:00
|
|
|
|
2013-09-23 00:16:19 -03:00
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_FLYMAPLE
|
|
|
|
#define AP_HAL_BOARD_DRIVER AP_HAL_FLYMAPLE
|
|
|
|
#define HAL_BOARD_NAME "FLYMAPLE"
|
2013-12-30 18:24:43 -04:00
|
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_75
|
2014-03-12 03:12:24 -03:00
|
|
|
#define HAL_STORAGE_SIZE 4096
|
|
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_INS_DEFAULT HAL_INS_FLYMAPLE
|
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_BMP085
|
|
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HMC5843
|
|
|
|
#define HAL_SERIAL0_BAUD_DEFAULT 115200
|
2014-08-13 05:27:13 -03:00
|
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_NONE
|
2013-12-30 18:24:43 -04:00
|
|
|
|
2012-12-30 04:57:57 -04:00
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_PX4
|
|
|
|
#define AP_HAL_BOARD_DRIVER AP_HAL_PX4
|
2013-02-22 19:32:53 -04:00
|
|
|
#define HAL_BOARD_NAME "PX4"
|
2013-12-30 18:24:43 -04:00
|
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_150
|
|
|
|
#define HAL_OS_POSIX_IO 1
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_BOARD_LOG_DIRECTORY "/fs/microsd/APM/LOGS"
|
2014-07-21 22:28:36 -03:00
|
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/fs/microsd/APM/TERRAIN"
|
2014-07-06 23:02:50 -03:00
|
|
|
#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
|
2014-08-13 01:42:52 -03:00
|
|
|
#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
|
2013-12-30 18:24:43 -04:00
|
|
|
|
2013-09-22 03:03:28 -03:00
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_LINUX
|
|
|
|
#define AP_HAL_BOARD_DRIVER AP_HAL_Linux
|
|
|
|
#define HAL_BOARD_NAME "Linux"
|
2013-12-30 18:24:43 -04:00
|
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_1000
|
|
|
|
#define HAL_OS_POSIX_IO 1
|
2014-03-12 03:12:24 -03:00
|
|
|
#define HAL_STORAGE_SIZE 4096
|
|
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
2014-07-06 23:02:50 -03:00
|
|
|
#if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NONE
|
|
|
|
#define HAL_BOARD_LOG_DIRECTORY "logs"
|
2014-07-21 22:28:36 -03:00
|
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "terrain"
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_INS_DEFAULT HAL_INS_HIL
|
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_HIL
|
|
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
|
|
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXF || CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLE
|
|
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
2014-07-21 22:28:36 -03:00
|
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
2014-08-18 00:03:11 -03:00
|
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU9250
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
|
|
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HMC5843
|
2014-07-23 09:23:26 -03:00
|
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO
|
|
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU9250
|
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611
|
|
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
|
2014-08-13 01:42:52 -03:00
|
|
|
#else
|
|
|
|
#error "no Linux board subtype set"
|
2014-07-06 23:02:50 -03:00
|
|
|
#endif
|
2014-07-13 19:52:27 -03:00
|
|
|
|
2012-12-23 16:30:50 -04:00
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_EMPTY
|
|
|
|
#define AP_HAL_BOARD_DRIVER AP_HAL_Empty
|
2013-02-22 19:32:53 -04:00
|
|
|
#define HAL_BOARD_NAME "EMPTY"
|
2013-12-30 18:24:43 -04:00
|
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_16
|
2014-03-12 03:12:24 -03:00
|
|
|
#define HAL_STORAGE_SIZE 4096
|
|
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_INS_DEFAULT HAL_INS_HIL
|
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_HIL
|
|
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
|
2014-08-13 01:42:52 -03:00
|
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_NONE
|
2013-12-30 18:24:43 -04:00
|
|
|
|
2014-03-31 14:29:33 -03:00
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN
|
|
|
|
#define AP_HAL_BOARD_DRIVER AP_HAL_VRBRAIN
|
|
|
|
#define HAL_BOARD_NAME "VRBRAIN"
|
|
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_150
|
|
|
|
#define HAL_OS_POSIX_IO 1
|
2014-08-22 13:36:11 -03:00
|
|
|
#define HAL_STORAGE_SIZE 8192
|
2014-03-31 14:29:33 -03:00
|
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_BOARD_LOG_DIRECTORY "/fs/microsd/APM/LOGS"
|
2014-08-22 13:36:11 -03:00
|
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/fs/microsd/APM/TERRAIN"
|
2014-07-14 10:43:54 -03:00
|
|
|
#define HAL_INS_DEFAULT HAL_INS_VRBRAIN
|
|
|
|
#define HAL_BARO_DEFAULT HAL_BARO_VRBRAIN
|
|
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_VRBRAIN
|
2014-07-06 23:02:50 -03:00
|
|
|
#define HAL_SERIAL0_BAUD_DEFAULT 115200
|
2014-08-14 03:54:00 -03:00
|
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_NONE
|
2014-03-31 14:29:33 -03:00
|
|
|
|
2012-12-18 05:04:20 -04:00
|
|
|
#else
|
|
|
|
#error "Unknown CONFIG_HAL_BOARD type"
|
|
|
|
#endif
|
|
|
|
|
2014-08-13 01:42:52 -03:00
|
|
|
#ifndef CONFIG_HAL_BOARD_SUBTYPE
|
|
|
|
#error "No CONFIG_HAL_BOARD_SUBTYPE set"
|
|
|
|
#endif
|
|
|
|
|
2013-12-30 18:24:43 -04:00
|
|
|
|
2012-12-11 19:19:52 -04:00
|
|
|
#endif // __AP_HAL_BOARDS_H__
|