1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-26 09:45:37 +03:00

Protect mag and baro against NULL instance

This commit is contained in:
jflyper 2018-11-23 15:55:03 +09:00
parent 2a748e73d0
commit 9c45eee0e6
2 changed files with 27 additions and 13 deletions

View file

@ -157,21 +157,28 @@ bool baroDetect(baroDev_t *dev, baroSensor_e baroHardwareToUse)
#endif
switch (barometerConfig()->baro_bustype) {
case BUSTYPE_I2C:
#ifdef USE_I2C
case BUSTYPE_I2C:
dev->busdev.bustype = BUSTYPE_I2C;
dev->busdev.busdev_u.i2c.device = I2C_CFG_TO_DEV(barometerConfig()->baro_i2c_device);
dev->busdev.busdev_u.i2c.address = barometerConfig()->baro_i2c_address;
#endif
break;
#endif
case BUSTYPE_SPI:
#ifdef USE_SPI
dev->busdev.bustype = BUSTYPE_SPI;
spiBusSetInstance(&dev->busdev, spiInstanceByDevice(SPI_CFG_TO_DEV(barometerConfig()->baro_spi_device)));
dev->busdev.busdev_u.spi.csnPin = IOGetByTag(barometerConfig()->baro_spi_csn);
#endif
case BUSTYPE_SPI:
{
SPI_TypeDef *instance = spiInstanceByDevice(SPI_CFG_TO_DEV(barometerConfig()->baro_spi_device));
if (!instance) {
return false;
}
dev->busdev.bustype = BUSTYPE_SPI;
spiBusSetInstance(&dev->busdev, instance);
dev->busdev.busdev_u.spi.csnPin = IOGetByTag(barometerConfig()->baro_spi_csn);
}
break;
#endif
default:
return false;