123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350 |
- #pragma once
- #define HAL_BOARD_NAME "Linux"
- #define HAL_CPU_CLASS HAL_CPU_CLASS_1000
- #define HAL_MEM_CLASS HAL_MEM_CLASS_1000
- #define HAL_OS_POSIX_IO 1
- #define HAL_OS_SOCKETS 1
- #define HAL_STORAGE_SIZE 16384
- #define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
- // make sensor selection clearer
- #define PROBE_IMU_I2C(driver, bus, addr, args ...) ADD_BACKEND(AP_InertialSensor_ ## driver::probe(*this,GET_I2C_DEVICE(bus, addr),##args))
- #define PROBE_IMU_SPI(driver, devname, args ...) ADD_BACKEND(AP_InertialSensor_ ## driver::probe(*this,hal.spi->get_device(devname),##args))
- #define PROBE_IMU_SPI2(driver, devname1, devname2, args ...) ADD_BACKEND(AP_InertialSensor_ ## driver::probe(*this,hal.spi->get_device(devname1),hal.spi->get_device(devname2),##args))
- #define PROBE_BARO_I2C(driver, bus, addr, args ...) ADD_BACKEND(AP_Baro_ ## driver::probe(*this,std::move(GET_I2C_DEVICE(bus, addr)),##args))
- #define PROBE_BARO_SPI(driver, devname, args ...) ADD_BACKEND(AP_Baro_ ## driver::probe(*this,std::move(hal.spi->get_device(devname)),##args))
- #define PROBE_MAG_I2C(driver, bus, addr, args ...) ADD_BACKEND(DRIVER_ ##driver, AP_Compass_ ## driver::probe(GET_I2C_DEVICE(bus, addr),##args))
- #define PROBE_MAG_SPI(driver, devname, args ...) ADD_BACKEND(DRIVER_ ##driver, AP_Compass_ ## driver::probe(hal.spi->get_device(devname),##args))
- #define PROBE_MAG_IMU(driver, imudev, imu_instance, args ...) ADD_BACKEND(DRIVER_ ##driver, AP_Compass_ ## driver::probe_ ## imudev(imu_instance,##args))
- #define PROBE_MAG_IMU_I2C(driver, imudev, bus, addr, args ...) ADD_BACKEND(DRIVER_ ##driver, AP_Compass_ ## driver::probe_ ## imudev(GET_I2C_DEVICE(bus,addr),##args))
- #if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NONE
- #define HAL_BOARD_LOG_DIRECTORY "logs"
- #define HAL_BOARD_TERRAIN_DIRECTORY "terrain"
- #define HAL_BOARD_STORAGE_DIRECTORY "."
- #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_ERLEBOARD
- #if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXF
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_ROLL_180_YAW_270)
- #else
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_ROLL_180_YAW_90)
- #endif
- #define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
- #define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #define HAL_GPIO_A_LED_PIN 61
- #define HAL_GPIO_B_LED_PIN 48
- #define HAL_GPIO_C_LED_PIN 117
- #define HAL_GPIO_LED_ON LOW
- #define HAL_GPIO_LED_OFF HIGH
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BEBOP
- #define HAL_BOARD_LOG_DIRECTORY "/data/ftp/internal_000/ardupilot/logs"
- #define HAL_BOARD_TERRAIN_DIRECTORY "/data/ftp/internal_000/ardupilot/terrain"
- #define HAL_BOARD_STORAGE_DIRECTORY "/data/ftp/internal_000/ardupilot"
- #define HAL_INS_PROBE_LIST PROBE_IMU_I2C(Invensense, 2, 0x68, ROTATION_YAW_270)
- #define HAL_MAG_PROBE_LIST PROBE_MAG_I2C(AK8963, 1, 0x0d, ROTATION_NONE)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77, AP_Baro_MS56XX::BARO_MS5607)
- #define HAL_HAVE_IMU_HEATER 1
- #define HAL_IMU_TEMP_DEFAULT 55
- #define HAL_UTILS_HEAT HAL_LINUX_HEAT_PWM
- #define HAL_LINUX_HEAT_PWM_NUM 6
- #define HAL_LINUX_HEAT_KP 20000
- #define HAL_LINUX_HEAT_KI 6
- #define HAL_LINUX_HEAT_PERIOD_NS 125000
- #define HAL_LINUX_HEAT_TARGET_TEMP 50
- #define BEBOP_CAMV_PWM 9
- #define BEBOP_CAMV_PWM_FREQ 43333333
- #define HAL_OPTFLOW_ONBOARD_VDEV_PATH "/dev/video0"
- #define HAL_OPTFLOW_ONBOARD_SUBDEV_PATH "/dev/v4l-subdev0"
- #define HAL_OPTFLOW_ONBOARD_SENSOR_WIDTH 320
- #define HAL_OPTFLOW_ONBOARD_SENSOR_HEIGHT 240
- #define HAL_OPTFLOW_ONBOARD_OUTPUT_WIDTH 64
- #define HAL_OPTFLOW_ONBOARD_OUTPUT_HEIGHT 64
- #define HAL_OPTFLOW_ONBOARD_CROP_WIDTH 240
- #define HAL_OPTFLOW_ONBOARD_CROP_HEIGHT 240
- #define HAL_OPTFLOW_ONBOARD_NBUFS 8
- #define HAL_FLOW_PX4_MAX_FLOW_PIXEL 4
- #define HAL_FLOW_PX4_BOTTOM_FLOW_FEATURE_THRESHOLD 30
- #define HAL_FLOW_PX4_BOTTOM_FLOW_VALUE_THRESHOLD 5000
- #define HAL_PARAM_DEFAULTS_PATH "/data/ftp/internal_000/ardupilot/bebop.parm"
- #define HAL_RCOUT_BEBOP_BLDC_I2C_BUS 1
- #define HAL_RCOUT_BEBOP_BLDC_I2C_ADDR 0x08
- /* focal length 2.21mm pixel size 3.6 um, 2x binning in each direction
- * 240x240 crop rescaled to 64x64 */
- #define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (2.21 / (3.6 * 2.0 * 240 / 64))
- #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 0
- #define HAL_BATT_MONITOR_DEFAULT AP_BattMonitor_Params::BattMonitor_TYPE_BEBOP
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_DISCO
- #define HAL_BOARD_LOG_DIRECTORY "/data/ftp/internal_000/ardupilot/logs"
- #define HAL_BOARD_TERRAIN_DIRECTORY "/data/ftp/internal_000/ardupilot/terrain"
- #define HAL_BOARD_STORAGE_DIRECTORY "/data/ftp/internal_000/ardupilot"
- #define HAL_INS_PROBE_LIST PROBE_IMU_I2C(Invensense, 2, 0x68, ROTATION_PITCH_180_YAW_90)
- #define HAL_MAG_PROBE_LIST PROBE_MAG_I2C(AK8963, 1, 0x0d, ROTATION_NONE)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77, AP_Baro_MS56XX::BARO_MS5607)
- #define HAL_UTILS_HEAT HAL_LINUX_HEAT_PWM
- #define HAL_LINUX_HEAT_PWM_NUM 10
- #define HAL_LINUX_HEAT_KP 20000
- #define HAL_LINUX_HEAT_KI 6
- #define HAL_LINUX_HEAT_PERIOD_NS 125000
- #define HAL_LINUX_HEAT_TARGET_TEMP 50
- #define BEBOP_CAMV_PWM 9
- #define BEBOP_CAMV_PWM_FREQ 43333333
- #define HAL_OPTFLOW_ONBOARD_VDEV_PATH "/dev/video0"
- #define HAL_OPTFLOW_ONBOARD_SUBDEV_PATH "/dev/v4l-subdev0"
- #define HAL_OPTFLOW_ONBOARD_SENSOR_WIDTH 320
- #define HAL_OPTFLOW_ONBOARD_SENSOR_HEIGHT 240
- #define HAL_OPTFLOW_ONBOARD_OUTPUT_WIDTH 64
- #define HAL_OPTFLOW_ONBOARD_OUTPUT_HEIGHT 64
- #define HAL_OPTFLOW_ONBOARD_CROP_WIDTH 240
- #define HAL_OPTFLOW_ONBOARD_CROP_HEIGHT 240
- #define HAL_OPTFLOW_ONBOARD_NBUFS 8
- #define HAL_FLOW_PX4_MAX_FLOW_PIXEL 4
- #define HAL_FLOW_PX4_BOTTOM_FLOW_FEATURE_THRESHOLD 30
- #define HAL_FLOW_PX4_BOTTOM_FLOW_VALUE_THRESHOLD 5000
- #define HAL_RCOUT_DISCO_BLDC_I2C_BUS 1
- #define HAL_RCOUT_DISCO_BLDC_I2C_ADDR 0x08
- #define HAL_PARAM_DEFAULTS_PATH "/data/ftp/internal_000/ardupilot/disco.parm"
- /* focal length 2.21mm pixel size 3.6 um, 2x binning in each direction
- * 240x240 crop rescaled to 64x64 */
- #define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (2.21 / (3.6 * 2.0 * 240 / 64))
- #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 0
- // the disco has challenges with its magnetic setup
- #define AP_COMPASS_OFFSETS_MAX_DEFAULT 2200
- #define HAL_BATT_MONITOR_DEFAULT AP_BattMonitor_Params::BattMonitor_TYPE_BEBOP
- #define HAL_GPIO_SCRIPT "/data/ftp/internal_000/ardupilot/gpio.sh"
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO
- #define HAL_GPIO_A_LED_PIN 0
- #define HAL_GPIO_B_LED_PIN 1
- #define HAL_GPIO_C_LED_PIN 2
- #define HAL_GPIO_LED_ON HIGH
- #define HAL_GPIO_LED_OFF LOW
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77)
- #define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO2
- #define HAL_HAVE_SERVO_VOLTAGE 1
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77)
- #define HAL_MAG_PROBE1 PROBE_MAG_SPI(LSM9DS1, "lsm9ds1_m", ROTATION_ROLL_180)
- #define HAL_MAG_PROBE2 PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_MAG_PROBE_LIST HAL_MAG_PROBE1; HAL_MAG_PROBE2
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLEBRAIN2
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_YAW_270)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
- #define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #define HAL_GPIO_A_LED_PIN 24
- #define HAL_GPIO_B_LED_PIN 25
- #define HAL_GPIO_C_LED_PIN 16
- #define HAL_GPIO_LED_ON LOW
- #define HAL_GPIO_LED_OFF HIGH
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ZYNQ
- // Stub the sensors out for now, at least we can build and run
- #define HAL_INS_DEFAULT HAL_INS_HIL
- #define HAL_BARO_DEFAULT HAL_BARO_HIL
- #define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
- // only external compasses
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #define HAL_COMPASS_DEFAULT HAL_COMPASS_NONE
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_OCPOC_ZYNQ
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
- #define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BBBMINI
- #define HAL_GPIO_A_LED_PIN 69
- #define HAL_GPIO_B_LED_PIN 68
- #define HAL_GPIO_C_LED_PIN 45
- #define HAL_GPIO_LED_ON LOW
- #define HAL_GPIO_LED_OFF HIGH
- #define HAL_BUZZER_PIN 11
- #define HAL_INS_PROBE1 PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
- #define HAL_INS_PROBE2 PROBE_IMU_SPI(Invensense, "mpu9250ext", ROTATION_NONE)
- #define HAL_INS_PROBE_LIST HAL_INS_PROBE1; HAL_INS_PROBE2
- #define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
- #define HAL_MAG_PROBE1 PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_MAG_PROBE2 PROBE_MAG_IMU(AK8963, mpu9250, 1, ROTATION_NONE)
- #define HAL_MAG_PROBE_LIST HAL_MAG_PROBE1; HAL_MAG_PROBE2
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 2
- #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 2
- #define HAL_WITH_UAVCAN 1
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIGATOR
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(LSM9DS1, "lsm9ds1_ag", ROTATION_PITCH_180)
- #define HAL_MAG_PROBE_LIST PROBE_MAG_SPI(LSM9DS1, "lsm9ds1_m", ROTATION_NONE)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(BMP280, "bmp280")
- #define HAL_BATT_CURR_PIN 0
- #define HAL_BATT_CURR_SCALE 1
- #define HAL_BATT_VOLT_PIN 1
- #define HAL_BATT_VOLT_SCALE 1
- #define HAL_RGBLED_RED 24
- #define HAL_RGBLED_GREEN 25
- #define HAL_RGBLED_BLUE 26
- #define HAL_RGBLED_NORMAL_POLARITY false
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BLUE
- #define HAL_GPIO_A_LED_PIN 66
- #define HAL_GPIO_B_LED_PIN 67
- #define HAL_GPIO_LED_ON HIGH
- #define HAL_GPIO_LED_OFF LOW
- #define HAL_INS_PROBE_LIST PROBE_IMU_I2C(Invensense, 2, 0x68, ROTATION_NONE)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(BMP280, 2, 0x76)
- #define HAL_MAG_PROBE_LIST PROBE_MAG_IMU_I2C(AK8963, mpu9250, 2, 0x0c, ROTATION_NONE)
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 1
- #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 1
- #define HAL_WITH_UAVCAN 1
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_POCKET
- #define HAL_GPIO_A_LED_PIN 59
- #define HAL_GPIO_B_LED_PIN 58
- #define HAL_GPIO_C_LED_PIN 57
- #define HAL_GPIO_LED_ON HIGH
- #define HAL_GPIO_LED_OFF LOW
- #define HAL_BUZZER_PIN 28
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(BMP280, "bmp280")
- #define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 2
- #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 2
- #define HAL_WITH_UAVCAN 1
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BH
- #define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77)
- #define HAL_INS_PROBE1 PROBE_IMU_I2C(Invensense, 1, 0x69, ROTATION_NONE)
- #define HAL_INS_PROBE2 PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
- #define HAL_INS_PROBE_LIST HAL_INS_PROBE1; HAL_INS_PROBE2
- #define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #define HAL_GPIO_A_LED_PIN 17
- #define HAL_GPIO_B_LED_PIN 18
- #define HAL_GPIO_C_LED_PIN 22
- #define HAL_GPIO_LED_ON LOW
- #define HAL_GPIO_LED_OFF HIGH
- #define HAL_RCOUT_RGBLED_RED 13
- #define HAL_RCOUT_RGBLED_GREEN 14
- #define HAL_RCOUT_RGBLED_BLUE 15
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXFMINI
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_YAW_270)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
- #define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #define HAL_GPIO_A_LED_PIN 24
- #define HAL_GPIO_B_LED_PIN 25
- #define HAL_GPIO_C_LED_PIN 16
- #define HAL_GPIO_LED_ON LOW
- #define HAL_GPIO_LED_OFF HIGH
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_AERO
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(BMI160, "bmi160")
- #define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 2, 0x76)
- #define HAL_MAG_PROBE1 PROBE_MAG_I2C(BMM150, 2, 0x12, ROTATION_NONE)
- #define HAL_MAG_PROBE2 PROBE_MAG_I2C(HMC5843, 4, 0x1e, true, ROTATION_NONE)
- #define HAL_MAG_PROBE3 PROBE_MAG_I2C(IST8310, 4, 0x0e, true, ROTATION_PITCH_180_YAW_90)
- #define HAL_MAG_PROBE_LIST HAL_MAG_PROBE1; HAL_MAG_PROBE2; HAL_MAG_PROBE3
- #define HAL_RCOUTPUT_TAP_DEVICE "/dev/ttyS1"
- #define HAL_WITH_UAVCAN 1
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_DARK
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
- #define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77)
- #define HAL_GPIO_A_LED_PIN 24
- #define HAL_GPIO_B_LED_PIN 25
- #define HAL_GPIO_C_LED_PIN 16
- #define HAL_GPIO_LED_ON LOW
- #define HAL_GPIO_LED_OFF HIGH
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_EDGE
- #define HAL_BOARD_LOG_DIRECTORY "/edge/ardupilot/logs"
- #define HAL_BOARD_TERRAIN_DIRECTORY "/edge/ardupilot/terrain"
- #define HAL_BOARD_STORAGE_DIRECTORY "/edge/ardupilot"
- #define HAL_INS_PROBE1 PROBE_IMU_SPI(Invensense, "mpu60x0", ROTATION_YAW_90)
- #define HAL_INS_PROBE2 PROBE_IMU_SPI(Invensense, "mpu60x0ext", ROTATION_YAW_90)
- #define HAL_INS_PROBE_LIST HAL_INS_PROBE1; HAL_INS_PROBE2
- #define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
- // only external compasses
- #define HAL_PROBE_EXTERNAL_I2C_COMPASSES
- #define HAL_COMPASS_DEFAULT HAL_COMPASS_NONE
- #define HAL_WITH_UAVCAN 1
- #define HAL_IMU_TEMP_DEFAULT 55
- #define HAL_HAVE_IMU_HEATER 1
- #define HAL_UTILS_HEAT HAL_LINUX_HEAT_PWM
- #define HAL_LINUX_HEAT_PWM_NUM 15
- #define HAL_LINUX_HEAT_KP 20000
- #define HAL_LINUX_HEAT_KI 6
- #define HAL_LINUX_HEAT_PERIOD_NS 2040816
- #define HAL_GPS_TYPE_DEFAULT 9
- #define HAL_CAN_DRIVER_DEFAULT 1
- #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_RST_ZYNQ
- #define HAL_INS_PROBE_LIST PROBE_IMU_SPI2(Invensense, "rst_g", "rst_a", ROTATION_ROLL_180_YAW_90, ROTATION_ROLL_180_YAW_90)
- #define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
- #define HAL_MAG_PROBE_LIST PROBE_MAG_SPI(LIS3MDL, lis3mdl, false, ROTATION_ROLL_180_YAW_90)
- #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 0
- #define HAL_HAVE_GETTIME_SETTIME 1
- #else
- #error "no Linux board subtype set"
- #endif
- #ifndef HAL_COMPASS_DEFAULT
- #define HAL_COMPASS_DEFAULT -1
- #endif
- #ifndef HAL_OPTFLOW_PX4FLOW_I2C_ADDRESS
- #define HAL_OPTFLOW_PX4FLOW_I2C_ADDRESS 0x42
- #endif
- #ifndef HAL_OPTFLOW_PX4FLOW_I2C_BUS
- #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 1
- #endif
- #define HAL_HAVE_BOARD_VOLTAGE 1
- #define HAL_HAVE_SAFETY_SWITCH 0
- #ifndef HAL_HAVE_SERVO_VOLTAGE
- #define HAL_HAVE_SERVO_VOLTAGE 0
- #endif
- #ifndef AP_STATEDIR
- #define HAL_BOARD_STATE_DIRECTORY "/var/lib/ardupilot"
- #else
- #define HAL_BOARD_STATE_DIRECTORY AP_STATEDIR
- #endif
- #ifndef HAL_BOARD_LOG_DIRECTORY
- #define HAL_BOARD_LOG_DIRECTORY HAL_BOARD_STATE_DIRECTORY "/logs"
- #endif
- #ifndef HAL_BOARD_TERRAIN_DIRECTORY
- #define HAL_BOARD_TERRAIN_DIRECTORY HAL_BOARD_STATE_DIRECTORY "/terrain"
- #endif
- #ifndef HAL_BOARD_STORAGE_DIRECTORY
- #define HAL_BOARD_STORAGE_DIRECTORY HAL_BOARD_STATE_DIRECTORY
- #endif
- #ifndef HAL_BOARD_CAN_IFACE_NAME
- #define HAL_BOARD_CAN_IFACE_NAME "can0"
- #endif
- // if bus masks are not setup above then use these defaults
- #ifndef HAL_LINUX_I2C_BUS_MASK
- #define HAL_LINUX_I2C_BUS_MASK 0xFFFF
- #endif
- #ifndef HAL_LINUX_I2C_INTERNAL_BUS_MASK
- #define HAL_LINUX_I2C_INTERNAL_BUS_MASK 0xFFFF
- #endif
- #ifndef HAL_LINUX_I2C_EXTERNAL_BUS_MASK
- #define HAL_LINUX_I2C_EXTERNAL_BUS_MASK 0xFFFF
- #endif
- #include <AP_HAL_Linux/Semaphores.h>
- #define HAL_Semaphore Linux::Semaphore
- #define HAL_Semaphore_Recursive Linux::Semaphore_Recursive
|