Subversion Repositories dashGPS

Rev

Blame | Last modification | View Log | Download | RSS feed

ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                    page 1


   1                            .cpu cortex-m3
   2                            .eabi_attribute 20, 1
   3                            .eabi_attribute 21, 1
   4                            .eabi_attribute 23, 3
   5                            .eabi_attribute 24, 1
   6                            .eabi_attribute 25, 1
   7                            .eabi_attribute 26, 1
   8                            .eabi_attribute 30, 1
   9                            .eabi_attribute 34, 1
  10                            .eabi_attribute 18, 4
  11                            .file   "bme280.c"
  12                            .text
  13                    .Ltext0:
  14                            .cfi_sections   .debug_frame
  15                            .section        .text.fill_filter_settings,"ax",%progbits
  16                            .align  1
  17                            .arch armv7-m
  18                            .syntax unified
  19                            .thumb
  20                            .thumb_func
  21                            .fpu softvfp
  23                    fill_filter_settings:
  24                    .LVL0:
  25                    .LFB16:
  26                            .file 1 "../libBME280/src/bme280.c"
   1:../libBME280/src/bme280.c **** /**
   2:../libBME280/src/bme280.c **** * Copyright (c) 2020 Bosch Sensortec GmbH. All rights reserved.
   3:../libBME280/src/bme280.c **** *
   4:../libBME280/src/bme280.c **** * BSD-3-Clause
   5:../libBME280/src/bme280.c **** *
   6:../libBME280/src/bme280.c **** * Redistribution and use in source and binary forms, with or without
   7:../libBME280/src/bme280.c **** * modification, are permitted provided that the following conditions are met:
   8:../libBME280/src/bme280.c **** *
   9:../libBME280/src/bme280.c **** * 1. Redistributions of source code must retain the above copyright
  10:../libBME280/src/bme280.c **** *    notice, this list of conditions and the following disclaimer.
  11:../libBME280/src/bme280.c **** *
  12:../libBME280/src/bme280.c **** * 2. Redistributions in binary form must reproduce the above copyright
  13:../libBME280/src/bme280.c **** *    notice, this list of conditions and the following disclaimer in the
  14:../libBME280/src/bme280.c **** *    documentation and/or other materials provided with the distribution.
  15:../libBME280/src/bme280.c **** *
  16:../libBME280/src/bme280.c **** * 3. Neither the name of the copyright holder nor the names of its
  17:../libBME280/src/bme280.c **** *    contributors may be used to endorse or promote products derived from
  18:../libBME280/src/bme280.c **** *    this software without specific prior written permission.
  19:../libBME280/src/bme280.c **** *
  20:../libBME280/src/bme280.c **** * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21:../libBME280/src/bme280.c **** * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  22:../libBME280/src/bme280.c **** * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  23:../libBME280/src/bme280.c **** * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  24:../libBME280/src/bme280.c **** * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  25:../libBME280/src/bme280.c **** * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  26:../libBME280/src/bme280.c **** * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  27:../libBME280/src/bme280.c **** * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  28:../libBME280/src/bme280.c **** * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  29:../libBME280/src/bme280.c **** * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  30:../libBME280/src/bme280.c **** * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  31:../libBME280/src/bme280.c **** * POSSIBILITY OF SUCH DAMAGE.
  32:../libBME280/src/bme280.c **** *
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 2


  33:../libBME280/src/bme280.c **** * @file       bme280.c
  34:../libBME280/src/bme280.c **** * @date       2020-03-28
  35:../libBME280/src/bme280.c **** * @version    v3.5.0
  36:../libBME280/src/bme280.c **** *
  37:../libBME280/src/bme280.c **** */
  38:../libBME280/src/bme280.c **** 
  39:../libBME280/src/bme280.c **** /*! @file bme280.c
  40:../libBME280/src/bme280.c ****  * @brief Sensor driver for BME280 sensor
  41:../libBME280/src/bme280.c ****  */
  42:../libBME280/src/bme280.c **** #include "libBME280/bme280.h"
  43:../libBME280/src/bme280.c **** 
  44:../libBME280/src/bme280.c **** /**\name Internal macros */
  45:../libBME280/src/bme280.c **** /* To identify osr settings selected by user */
  46:../libBME280/src/bme280.c **** #define OVERSAMPLING_SETTINGS    UINT8_C(0x07)
  47:../libBME280/src/bme280.c **** 
  48:../libBME280/src/bme280.c **** /* To identify filter and standby settings selected by user */
  49:../libBME280/src/bme280.c **** #define FILTER_STANDBY_SETTINGS  UINT8_C(0x18)
  50:../libBME280/src/bme280.c **** 
  51:../libBME280/src/bme280.c **** /*!
  52:../libBME280/src/bme280.c ****  * @brief This internal API puts the device to sleep mode.
  53:../libBME280/src/bme280.c ****  *
  54:../libBME280/src/bme280.c ****  * @param[in] dev : Structure instance of bme280_dev.
  55:../libBME280/src/bme280.c ****  *
  56:../libBME280/src/bme280.c ****  * @return Result of API execution status.
  57:../libBME280/src/bme280.c ****  *
  58:../libBME280/src/bme280.c ****  * @retval   0 -> Success.
  59:../libBME280/src/bme280.c ****  * @retval > 0 -> Warning.
  60:../libBME280/src/bme280.c ****  * @retval < 0 -> Fail.
  61:../libBME280/src/bme280.c ****  *
  62:../libBME280/src/bme280.c ****  */
  63:../libBME280/src/bme280.c **** static int8_t put_device_to_sleep(struct bme280_dev *dev);
  64:../libBME280/src/bme280.c **** 
  65:../libBME280/src/bme280.c **** /*!
  66:../libBME280/src/bme280.c ****  * @brief This internal API writes the power mode in the sensor.
  67:../libBME280/src/bme280.c ****  *
  68:../libBME280/src/bme280.c ****  * @param[in] dev         : Structure instance of bme280_dev.
  69:../libBME280/src/bme280.c ****  * @param[in] sensor_mode : Variable which contains the power mode to be set.
  70:../libBME280/src/bme280.c ****  *
  71:../libBME280/src/bme280.c ****  * @return Result of API execution status.
  72:../libBME280/src/bme280.c ****  *
  73:../libBME280/src/bme280.c ****  * @retval   0 -> Success.
  74:../libBME280/src/bme280.c ****  * @retval > 0 -> Warning.
  75:../libBME280/src/bme280.c ****  * @retval < 0 -> Fail.
  76:../libBME280/src/bme280.c ****  *
  77:../libBME280/src/bme280.c ****  */
  78:../libBME280/src/bme280.c **** static int8_t write_power_mode(uint8_t sensor_mode, struct bme280_dev *dev);
  79:../libBME280/src/bme280.c **** 
  80:../libBME280/src/bme280.c **** /*!
  81:../libBME280/src/bme280.c ****  * @brief This internal API is used to validate the device pointer for
  82:../libBME280/src/bme280.c ****  * null conditions.
  83:../libBME280/src/bme280.c ****  *
  84:../libBME280/src/bme280.c ****  * @param[in] dev : Structure instance of bme280_dev.
  85:../libBME280/src/bme280.c ****  *
  86:../libBME280/src/bme280.c ****  * @return Result of API execution status
  87:../libBME280/src/bme280.c ****  *
  88:../libBME280/src/bme280.c ****  * @retval   0 -> Success.
  89:../libBME280/src/bme280.c ****  * @retval > 0 -> Warning.
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 3


  90:../libBME280/src/bme280.c ****  * @retval < 0 -> Fail.
  91:../libBME280/src/bme280.c ****  *
  92:../libBME280/src/bme280.c ****  */
  93:../libBME280/src/bme280.c **** static int8_t null_ptr_check(const struct bme280_dev *dev);
  94:../libBME280/src/bme280.c **** 
  95:../libBME280/src/bme280.c **** /*!
  96:../libBME280/src/bme280.c ****  * @brief This internal API interleaves the register address between the
  97:../libBME280/src/bme280.c ****  * register data buffer for burst write operation.
  98:../libBME280/src/bme280.c ****  *
  99:../libBME280/src/bme280.c ****  * @param[in] reg_addr   : Contains the register address array.
 100:../libBME280/src/bme280.c ****  * @param[out] temp_buff : Contains the temporary buffer to store the
 101:../libBME280/src/bme280.c ****  * register data and register address.
 102:../libBME280/src/bme280.c ****  * @param[in] reg_data   : Contains the register data to be written in the
 103:../libBME280/src/bme280.c ****  * temporary buffer.
 104:../libBME280/src/bme280.c ****  * @param[in] len        : No of bytes of data to be written for burst write.
 105:../libBME280/src/bme280.c ****  *
 106:../libBME280/src/bme280.c ****  */
 107:../libBME280/src/bme280.c **** static void interleave_reg_addr(const uint8_t *reg_addr, uint8_t *temp_buff, const uint8_t *reg_dat
 108:../libBME280/src/bme280.c **** 
 109:../libBME280/src/bme280.c **** /*!
 110:../libBME280/src/bme280.c ****  * @brief This internal API reads the calibration data from the sensor, parse
 111:../libBME280/src/bme280.c ****  * it and store in the device structure.
 112:../libBME280/src/bme280.c ****  *
 113:../libBME280/src/bme280.c ****  * @param[in] dev : Structure instance of bme280_dev.
 114:../libBME280/src/bme280.c ****  *
 115:../libBME280/src/bme280.c ****  * @return Result of API execution status
 116:../libBME280/src/bme280.c ****  *
 117:../libBME280/src/bme280.c ****  * @retval   0 -> Success.
 118:../libBME280/src/bme280.c ****  * @retval > 0 -> Warning.
 119:../libBME280/src/bme280.c ****  * @retval < 0 -> Fail.
 120:../libBME280/src/bme280.c ****  *
 121:../libBME280/src/bme280.c ****  */
 122:../libBME280/src/bme280.c **** static int8_t get_calib_data(struct bme280_dev *dev);
 123:../libBME280/src/bme280.c **** 
 124:../libBME280/src/bme280.c **** /*!
 125:../libBME280/src/bme280.c ****  *  @brief This internal API is used to parse the temperature and
 126:../libBME280/src/bme280.c ****  *  pressure calibration data and store it in the device structure.
 127:../libBME280/src/bme280.c ****  *
 128:../libBME280/src/bme280.c ****  *  @param[out] dev     : Structure instance of bme280_dev to store the calib data.
 129:../libBME280/src/bme280.c ****  *  @param[in] reg_data : Contains the calibration data to be parsed.
 130:../libBME280/src/bme280.c ****  *
 131:../libBME280/src/bme280.c ****  */
 132:../libBME280/src/bme280.c **** static void parse_temp_press_calib_data(const uint8_t *reg_data, struct bme280_dev *dev);
 133:../libBME280/src/bme280.c **** 
 134:../libBME280/src/bme280.c **** /*!
 135:../libBME280/src/bme280.c ****  *  @brief This internal API is used to parse the humidity calibration data
 136:../libBME280/src/bme280.c ****  *  and store it in device structure.
 137:../libBME280/src/bme280.c ****  *
 138:../libBME280/src/bme280.c ****  *  @param[out] dev     : Structure instance of bme280_dev to store the calib data.
 139:../libBME280/src/bme280.c ****  *  @param[in] reg_data : Contains calibration data to be parsed.
 140:../libBME280/src/bme280.c ****  *
 141:../libBME280/src/bme280.c ****  */
 142:../libBME280/src/bme280.c **** static void parse_humidity_calib_data(const uint8_t *reg_data, struct bme280_dev *dev);
 143:../libBME280/src/bme280.c **** 
 144:../libBME280/src/bme280.c **** #ifdef BME280_FLOAT_ENABLE
 145:../libBME280/src/bme280.c **** 
 146:../libBME280/src/bme280.c **** /*!
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 4


 147:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw pressure data and
 148:../libBME280/src/bme280.c ****  * return the compensated pressure data in double data type.
 149:../libBME280/src/bme280.c ****  *
 150:../libBME280/src/bme280.c ****  * @param[in] uncomp_data : Contains the uncompensated pressure data.
 151:../libBME280/src/bme280.c ****  * @param[in] calib_data  : Pointer to the calibration data structure.
 152:../libBME280/src/bme280.c ****  *
 153:../libBME280/src/bme280.c ****  * @return Compensated pressure data in double.
 154:../libBME280/src/bme280.c ****  *
 155:../libBME280/src/bme280.c ****  */
 156:../libBME280/src/bme280.c **** static double compensate_pressure(const struct bme280_uncomp_data *uncomp_data,
 157:../libBME280/src/bme280.c ****                                   const struct bme280_calib_data *calib_data);
 158:../libBME280/src/bme280.c **** 
 159:../libBME280/src/bme280.c **** /*!
 160:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw humidity data and
 161:../libBME280/src/bme280.c ****  * return the compensated humidity data in double data type.
 162:../libBME280/src/bme280.c ****  *
 163:../libBME280/src/bme280.c ****  * @param[in] uncomp_data : Contains the uncompensated humidity data.
 164:../libBME280/src/bme280.c ****  * @param[in] calib_data  : Pointer to the calibration data structure.
 165:../libBME280/src/bme280.c ****  *
 166:../libBME280/src/bme280.c ****  * @return Compensated humidity data in double.
 167:../libBME280/src/bme280.c ****  *
 168:../libBME280/src/bme280.c ****  */
 169:../libBME280/src/bme280.c **** static double compensate_humidity(const struct bme280_uncomp_data *uncomp_data,
 170:../libBME280/src/bme280.c ****                                   const struct bme280_calib_data *calib_data);
 171:../libBME280/src/bme280.c **** 
 172:../libBME280/src/bme280.c **** /*!
 173:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw temperature data and
 174:../libBME280/src/bme280.c ****  * return the compensated temperature data in double data type.
 175:../libBME280/src/bme280.c ****  *
 176:../libBME280/src/bme280.c ****  * @param[in] uncomp_data : Contains the uncompensated temperature data.
 177:../libBME280/src/bme280.c ****  * @param[in] calib_data  : Pointer to calibration data structure.
 178:../libBME280/src/bme280.c ****  *
 179:../libBME280/src/bme280.c ****  * @return Compensated temperature data in double.
 180:../libBME280/src/bme280.c ****  *
 181:../libBME280/src/bme280.c ****  */
 182:../libBME280/src/bme280.c **** static double compensate_temperature(const struct bme280_uncomp_data *uncomp_data,
 183:../libBME280/src/bme280.c ****                                      struct bme280_calib_data *calib_data);
 184:../libBME280/src/bme280.c **** 
 185:../libBME280/src/bme280.c **** #else
 186:../libBME280/src/bme280.c **** 
 187:../libBME280/src/bme280.c **** /*!
 188:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw temperature data and
 189:../libBME280/src/bme280.c ****  * return the compensated temperature data in integer data type.
 190:../libBME280/src/bme280.c ****  *
 191:../libBME280/src/bme280.c ****  * @param[in] uncomp_data : Contains the uncompensated temperature data.
 192:../libBME280/src/bme280.c ****  * @param[in] calib_data  : Pointer to calibration data structure.
 193:../libBME280/src/bme280.c ****  *
 194:../libBME280/src/bme280.c ****  * @return Compensated temperature data in integer.
 195:../libBME280/src/bme280.c ****  *
 196:../libBME280/src/bme280.c ****  */
 197:../libBME280/src/bme280.c **** static int32_t compensate_temperature(const struct bme280_uncomp_data *uncomp_data,
 198:../libBME280/src/bme280.c ****                                       struct bme280_calib_data *calib_data);
 199:../libBME280/src/bme280.c **** 
 200:../libBME280/src/bme280.c **** /*!
 201:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw pressure data and
 202:../libBME280/src/bme280.c ****  * return the compensated pressure data in integer data type.
 203:../libBME280/src/bme280.c ****  *
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 5


 204:../libBME280/src/bme280.c ****  * @param[in] uncomp_data : Contains the uncompensated pressure data.
 205:../libBME280/src/bme280.c ****  * @param[in] calib_data  : Pointer to the calibration data structure.
 206:../libBME280/src/bme280.c ****  *
 207:../libBME280/src/bme280.c ****  * @return Compensated pressure data in integer.
 208:../libBME280/src/bme280.c ****  *
 209:../libBME280/src/bme280.c ****  */
 210:../libBME280/src/bme280.c **** static uint32_t compensate_pressure(const struct bme280_uncomp_data *uncomp_data,
 211:../libBME280/src/bme280.c ****                                     const struct bme280_calib_data *calib_data);
 212:../libBME280/src/bme280.c **** 
 213:../libBME280/src/bme280.c **** /*!
 214:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw humidity data and
 215:../libBME280/src/bme280.c ****  * return the compensated humidity data in integer data type.
 216:../libBME280/src/bme280.c ****  *
 217:../libBME280/src/bme280.c ****  * @param[in] uncomp_data : Contains the uncompensated humidity data.
 218:../libBME280/src/bme280.c ****  * @param[in] calib_data  : Pointer to the calibration data structure.
 219:../libBME280/src/bme280.c ****  *
 220:../libBME280/src/bme280.c ****  * @return Compensated humidity data in integer.
 221:../libBME280/src/bme280.c ****  *
 222:../libBME280/src/bme280.c ****  */
 223:../libBME280/src/bme280.c **** static uint32_t compensate_humidity(const struct bme280_uncomp_data *uncomp_data,
 224:../libBME280/src/bme280.c ****                                     const struct bme280_calib_data *calib_data);
 225:../libBME280/src/bme280.c **** 
 226:../libBME280/src/bme280.c **** #endif
 227:../libBME280/src/bme280.c **** 
 228:../libBME280/src/bme280.c **** /*!
 229:../libBME280/src/bme280.c ****  * @brief This internal API is used to identify the settings which the user
 230:../libBME280/src/bme280.c ****  * wants to modify in the sensor.
 231:../libBME280/src/bme280.c ****  *
 232:../libBME280/src/bme280.c ****  * @param[in] sub_settings     : Contains the settings subset to identify particular
 233:../libBME280/src/bme280.c ****  * group of settings which the user is interested to change.
 234:../libBME280/src/bme280.c ****  * @param[in] desired_settings : Contains the user specified settings.
 235:../libBME280/src/bme280.c ****  *
 236:../libBME280/src/bme280.c ****  * @return Indicates whether user is interested to modify the settings which
 237:../libBME280/src/bme280.c ****  * are related to sub_settings.
 238:../libBME280/src/bme280.c ****  * @return True -> User wants to modify this group of settings
 239:../libBME280/src/bme280.c ****  * @return False -> User does not want to modify this group of settings
 240:../libBME280/src/bme280.c ****  *
 241:../libBME280/src/bme280.c ****  */
 242:../libBME280/src/bme280.c **** static uint8_t are_settings_changed(uint8_t sub_settings, uint8_t desired_settings);
 243:../libBME280/src/bme280.c **** 
 244:../libBME280/src/bme280.c **** /*!
 245:../libBME280/src/bme280.c ****  * @brief This API sets the humidity over sampling settings of the sensor.
 246:../libBME280/src/bme280.c ****  *
 247:../libBME280/src/bme280.c ****  * @param[in] dev      : Structure instance of bme280_dev.
 248:../libBME280/src/bme280.c ****  * @param[in] settings : Pointer variable which contains the settings to
 249:../libBME280/src/bme280.c ****  * be set in the sensor.
 250:../libBME280/src/bme280.c ****  *
 251:../libBME280/src/bme280.c ****  * @return Result of API execution status
 252:../libBME280/src/bme280.c ****  *
 253:../libBME280/src/bme280.c ****  * @retval   0 -> Success.
 254:../libBME280/src/bme280.c ****  * @retval > 0 -> Warning.
 255:../libBME280/src/bme280.c ****  * @retval < 0 -> Fail.
 256:../libBME280/src/bme280.c ****  *
 257:../libBME280/src/bme280.c ****  */
 258:../libBME280/src/bme280.c **** static int8_t set_osr_humidity_settings(const struct bme280_settings *settings, struct bme280_dev *
 259:../libBME280/src/bme280.c **** 
 260:../libBME280/src/bme280.c **** /*!
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 6


 261:../libBME280/src/bme280.c ****  * @brief This internal API sets the oversampling settings for pressure,
 262:../libBME280/src/bme280.c ****  * temperature and humidity in the sensor.
 263:../libBME280/src/bme280.c ****  *
 264:../libBME280/src/bme280.c ****  * @param[in] desired_settings : Variable used to select the settings which
 265:../libBME280/src/bme280.c ****  * are to be set.
 266:../libBME280/src/bme280.c ****  * @param[in] settings         : Pointer variable which contains the settings to
 267:../libBME280/src/bme280.c ****  * be set in the sensor.
 268:../libBME280/src/bme280.c ****  * @param[in] dev              : Structure instance of bme280_dev.
 269:../libBME280/src/bme280.c ****  *
 270:../libBME280/src/bme280.c ****  * @return Result of API execution status
 271:../libBME280/src/bme280.c ****  *
 272:../libBME280/src/bme280.c ****  * @retval   0 -> Success.
 273:../libBME280/src/bme280.c ****  * @retval > 0 -> Warning.
 274:../libBME280/src/bme280.c ****  * @retval < 0 -> Fail.
 275:../libBME280/src/bme280.c ****  *
 276:../libBME280/src/bme280.c ****  */
 277:../libBME280/src/bme280.c **** static int8_t set_osr_settings(uint8_t desired_settings, const struct bme280_settings *settings,
 278:../libBME280/src/bme280.c ****                                struct bme280_dev *dev);
 279:../libBME280/src/bme280.c **** 
 280:../libBME280/src/bme280.c **** /*!
 281:../libBME280/src/bme280.c ****  * @brief This API sets the pressure and/or temperature oversampling settings
 282:../libBME280/src/bme280.c ****  * in the sensor according to the settings selected by the user.
 283:../libBME280/src/bme280.c ****  *
 284:../libBME280/src/bme280.c ****  * @param[in] dev : Structure instance of bme280_dev.
 285:../libBME280/src/bme280.c ****  * @param[in] desired_settings: variable to select the pressure and/or
 286:../libBME280/src/bme280.c ****  * temperature oversampling settings.
 287:../libBME280/src/bme280.c ****  * @param[in] settings : Pointer variable which contains the settings to
 288:../libBME280/src/bme280.c ****  * be set in the sensor.
 289:../libBME280/src/bme280.c ****  *
 290:../libBME280/src/bme280.c ****  * @return Result of API execution status
 291:../libBME280/src/bme280.c ****  *
 292:../libBME280/src/bme280.c ****  * @retval   0 -> Success.
 293:../libBME280/src/bme280.c ****  * @retval > 0 -> Warning.
 294:../libBME280/src/bme280.c ****  * @retval < 0 -> Fail.
 295:../libBME280/src/bme280.c ****  *
 296:../libBME280/src/bme280.c ****  */
 297:../libBME280/src/bme280.c **** static int8_t set_osr_press_temp_settings(uint8_t desired_settings,
 298:../libBME280/src/bme280.c ****                                           const struct bme280_settings *settings,
 299:../libBME280/src/bme280.c ****                                           struct bme280_dev *dev);
 300:../libBME280/src/bme280.c **** 
 301:../libBME280/src/bme280.c **** /*!
 302:../libBME280/src/bme280.c ****  * @brief This internal API fills the pressure oversampling settings provided by
 303:../libBME280/src/bme280.c ****  * the user in the data buffer so as to write in the sensor.
 304:../libBME280/src/bme280.c ****  *
 305:../libBME280/src/bme280.c ****  * @param[in] settings : Pointer variable which contains the settings to
 306:../libBME280/src/bme280.c ****  * be set in the sensor.
 307:../libBME280/src/bme280.c ****  * @param[out] reg_data : Variable which is filled according to the pressure
 308:../libBME280/src/bme280.c ****  * oversampling data provided by the user.
 309:../libBME280/src/bme280.c ****  *
 310:../libBME280/src/bme280.c ****  */
 311:../libBME280/src/bme280.c **** static void fill_osr_press_settings(uint8_t *reg_data, const struct bme280_settings *settings);
 312:../libBME280/src/bme280.c **** 
 313:../libBME280/src/bme280.c **** /*!
 314:../libBME280/src/bme280.c ****  * @brief This internal API fills the temperature oversampling settings provided
 315:../libBME280/src/bme280.c ****  * by the user in the data buffer so as to write in the sensor.
 316:../libBME280/src/bme280.c ****  *
 317:../libBME280/src/bme280.c ****  * @param[in] settings : Pointer variable which contains the settings to
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 7


 318:../libBME280/src/bme280.c ****  * be set in the sensor.
 319:../libBME280/src/bme280.c ****  * @param[out] reg_data : Variable which is filled according to the temperature
 320:../libBME280/src/bme280.c ****  * oversampling data provided by the user.
 321:../libBME280/src/bme280.c ****  *
 322:../libBME280/src/bme280.c ****  */
 323:../libBME280/src/bme280.c **** static void fill_osr_temp_settings(uint8_t *reg_data, const struct bme280_settings *settings);
 324:../libBME280/src/bme280.c **** 
 325:../libBME280/src/bme280.c **** /*!
 326:../libBME280/src/bme280.c ****  * @brief This internal API sets the filter and/or standby duration settings
 327:../libBME280/src/bme280.c ****  * in the sensor according to the settings selected by the user.
 328:../libBME280/src/bme280.c ****  *
 329:../libBME280/src/bme280.c ****  * @param[in] dev : Structure instance of bme280_dev.
 330:../libBME280/src/bme280.c ****  * @param[in] settings : Pointer variable which contains the settings to
 331:../libBME280/src/bme280.c ****  * be set in the sensor.
 332:../libBME280/src/bme280.c ****  * @param[in] settings : Structure instance of bme280_settings.
 333:../libBME280/src/bme280.c ****  *
 334:../libBME280/src/bme280.c ****  * @return Result of API execution status
 335:../libBME280/src/bme280.c ****  *
 336:../libBME280/src/bme280.c ****  * @retval   0 -> Success.
 337:../libBME280/src/bme280.c ****  * @retval > 0 -> Warning.
 338:../libBME280/src/bme280.c ****  * @retval < 0 -> Fail.
 339:../libBME280/src/bme280.c ****  *
 340:../libBME280/src/bme280.c ****  */
 341:../libBME280/src/bme280.c **** static int8_t set_filter_standby_settings(uint8_t desired_settings,
 342:../libBME280/src/bme280.c ****                                           const struct bme280_settings *settings,
 343:../libBME280/src/bme280.c ****                                           struct bme280_dev *dev);
 344:../libBME280/src/bme280.c **** 
 345:../libBME280/src/bme280.c **** /*!
 346:../libBME280/src/bme280.c ****  * @brief This internal API fills the filter settings provided by the user
 347:../libBME280/src/bme280.c ****  * in the data buffer so as to write in the sensor.
 348:../libBME280/src/bme280.c ****  *
 349:../libBME280/src/bme280.c ****  * @param[in] settings : Pointer variable which contains the settings to
 350:../libBME280/src/bme280.c ****  * be set in the sensor.
 351:../libBME280/src/bme280.c ****  * @param[out] reg_data : Variable which is filled according to the filter
 352:../libBME280/src/bme280.c ****  * settings data provided by the user.
 353:../libBME280/src/bme280.c ****  *
 354:../libBME280/src/bme280.c ****  */
 355:../libBME280/src/bme280.c **** static void fill_filter_settings(uint8_t *reg_data, const struct bme280_settings *settings);
 356:../libBME280/src/bme280.c **** 
 357:../libBME280/src/bme280.c **** /*!
 358:../libBME280/src/bme280.c ****  * @brief This internal API fills the standby duration settings provided by the
 359:../libBME280/src/bme280.c ****  * user in the data buffer so as to write in the sensor.
 360:../libBME280/src/bme280.c ****  *
 361:../libBME280/src/bme280.c ****  * @param[in] settings : Pointer variable which contains the settings to
 362:../libBME280/src/bme280.c ****  * be set in the sensor.
 363:../libBME280/src/bme280.c ****  * @param[out] reg_data : Variable which is filled according to the standby
 364:../libBME280/src/bme280.c ****  * settings data provided by the user.
 365:../libBME280/src/bme280.c ****  *
 366:../libBME280/src/bme280.c ****  */
 367:../libBME280/src/bme280.c **** static void fill_standby_settings(uint8_t *reg_data, const struct bme280_settings *settings);
 368:../libBME280/src/bme280.c **** 
 369:../libBME280/src/bme280.c **** /*!
 370:../libBME280/src/bme280.c ****  * @brief This internal API parse the oversampling(pressure, temperature
 371:../libBME280/src/bme280.c ****  * and humidity), filter and standby duration settings and store in the
 372:../libBME280/src/bme280.c ****  * device structure.
 373:../libBME280/src/bme280.c ****  *
 374:../libBME280/src/bme280.c ****  * @param[in] settings : Pointer variable which contains the settings to
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 8


 375:../libBME280/src/bme280.c ****  * be get in the sensor.
 376:../libBME280/src/bme280.c ****  * @param[in] reg_data : Register data to be parsed.
 377:../libBME280/src/bme280.c ****  *
 378:../libBME280/src/bme280.c ****  */
 379:../libBME280/src/bme280.c **** static void parse_device_settings(const uint8_t *reg_data, struct bme280_settings *settings);
 380:../libBME280/src/bme280.c **** 
 381:../libBME280/src/bme280.c **** /*!
 382:../libBME280/src/bme280.c ****  * @brief This internal API reloads the already existing device settings in the
 383:../libBME280/src/bme280.c ****  * sensor after soft reset.
 384:../libBME280/src/bme280.c ****  *
 385:../libBME280/src/bme280.c ****  * @param[in] dev : Structure instance of bme280_dev.
 386:../libBME280/src/bme280.c ****  * @param[in] settings : Pointer variable which contains the settings to
 387:../libBME280/src/bme280.c ****  * be set in the sensor.
 388:../libBME280/src/bme280.c ****  *
 389:../libBME280/src/bme280.c ****  * @return Result of API execution status
 390:../libBME280/src/bme280.c ****  *
 391:../libBME280/src/bme280.c ****  * @retval   0 -> Success.
 392:../libBME280/src/bme280.c ****  * @retval > 0 -> Warning.
 393:../libBME280/src/bme280.c ****  * @retval < 0 -> Fail.
 394:../libBME280/src/bme280.c ****  *
 395:../libBME280/src/bme280.c ****  */
 396:../libBME280/src/bme280.c **** static int8_t reload_device_settings(const struct bme280_settings *settings, struct bme280_dev *dev
 397:../libBME280/src/bme280.c **** 
 398:../libBME280/src/bme280.c **** /****************** Global Function Definitions *******************************/
 399:../libBME280/src/bme280.c **** 
 400:../libBME280/src/bme280.c **** /*!
 401:../libBME280/src/bme280.c ****  *  @brief This API is the entry point.
 402:../libBME280/src/bme280.c ****  *  It reads the chip-id and calibration data from the sensor.
 403:../libBME280/src/bme280.c ****  */
 404:../libBME280/src/bme280.c **** int8_t bme280_init(struct bme280_dev *dev)
 405:../libBME280/src/bme280.c **** {
 406:../libBME280/src/bme280.c ****     int8_t rslt;
 407:../libBME280/src/bme280.c **** 
 408:../libBME280/src/bme280.c ****     /* chip id read try count */
 409:../libBME280/src/bme280.c ****     uint8_t try_count = 5;
 410:../libBME280/src/bme280.c ****     uint8_t chip_id = 0;
 411:../libBME280/src/bme280.c **** 
 412:../libBME280/src/bme280.c ****     /* Check for null pointer in the device structure*/
 413:../libBME280/src/bme280.c ****     rslt = null_ptr_check(dev);
 414:../libBME280/src/bme280.c **** 
 415:../libBME280/src/bme280.c ****     /* Proceed if null check is fine */
 416:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
 417:../libBME280/src/bme280.c ****     {
 418:../libBME280/src/bme280.c ****         while (try_count)
 419:../libBME280/src/bme280.c ****         {
 420:../libBME280/src/bme280.c ****             /* Read the chip-id of bme280 sensor */
 421:../libBME280/src/bme280.c ****             rslt = bme280_get_regs(BME280_CHIP_ID_ADDR, &chip_id, 1, dev);
 422:../libBME280/src/bme280.c **** 
 423:../libBME280/src/bme280.c ****             /* Check for chip id validity */
 424:../libBME280/src/bme280.c ****             if ((rslt == BME280_OK) && (chip_id == BME280_CHIP_ID))
 425:../libBME280/src/bme280.c ****             {
 426:../libBME280/src/bme280.c ****                 dev->chip_id = chip_id;
 427:../libBME280/src/bme280.c **** 
 428:../libBME280/src/bme280.c ****                 /* Reset the sensor */
 429:../libBME280/src/bme280.c ****                 rslt = bme280_soft_reset(dev);
 430:../libBME280/src/bme280.c **** 
 431:../libBME280/src/bme280.c ****                 if (rslt == BME280_OK)
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 9


 432:../libBME280/src/bme280.c ****                 {
 433:../libBME280/src/bme280.c ****                     /* Read the calibration data */
 434:../libBME280/src/bme280.c ****                     rslt = get_calib_data(dev);
 435:../libBME280/src/bme280.c ****                 }
 436:../libBME280/src/bme280.c **** 
 437:../libBME280/src/bme280.c ****                 break;
 438:../libBME280/src/bme280.c ****             }
 439:../libBME280/src/bme280.c **** 
 440:../libBME280/src/bme280.c ****             /* Wait for 1 ms */
 441:../libBME280/src/bme280.c ****             dev->delay_us(1000, dev->intf_ptr);
 442:../libBME280/src/bme280.c ****             --try_count;
 443:../libBME280/src/bme280.c ****         }
 444:../libBME280/src/bme280.c **** 
 445:../libBME280/src/bme280.c ****         /* Chip id check failed */
 446:../libBME280/src/bme280.c ****         if (!try_count)
 447:../libBME280/src/bme280.c ****         {
 448:../libBME280/src/bme280.c ****             rslt = BME280_E_DEV_NOT_FOUND;
 449:../libBME280/src/bme280.c ****         }
 450:../libBME280/src/bme280.c ****     }
 451:../libBME280/src/bme280.c **** 
 452:../libBME280/src/bme280.c ****     return rslt;
 453:../libBME280/src/bme280.c **** }
 454:../libBME280/src/bme280.c **** 
 455:../libBME280/src/bme280.c **** /*!
 456:../libBME280/src/bme280.c ****  * @brief This API reads the data from the given register address of the sensor.
 457:../libBME280/src/bme280.c ****  */
 458:../libBME280/src/bme280.c **** int8_t bme280_get_regs(uint8_t reg_addr, uint8_t *reg_data, uint16_t len, struct bme280_dev *dev)
 459:../libBME280/src/bme280.c **** {
 460:../libBME280/src/bme280.c ****     int8_t rslt;
 461:../libBME280/src/bme280.c **** 
 462:../libBME280/src/bme280.c ****     /* Check for null pointer in the device structure*/
 463:../libBME280/src/bme280.c ****     rslt = null_ptr_check(dev);
 464:../libBME280/src/bme280.c **** 
 465:../libBME280/src/bme280.c ****     /* Proceed if null check is fine */
 466:../libBME280/src/bme280.c ****     if ((rslt == BME280_OK) && (reg_data != NULL))
 467:../libBME280/src/bme280.c ****     {
 468:../libBME280/src/bme280.c ****         /* If interface selected is SPI */
 469:../libBME280/src/bme280.c ****         if (dev->intf != BME280_I2C_INTF)
 470:../libBME280/src/bme280.c ****         {
 471:../libBME280/src/bme280.c ****             reg_addr = reg_addr | 0x80;
 472:../libBME280/src/bme280.c ****         }
 473:../libBME280/src/bme280.c **** 
 474:../libBME280/src/bme280.c ****         /* Read the data  */
 475:../libBME280/src/bme280.c ****         dev->intf_rslt = dev->read(reg_addr, reg_data, len, dev->intf_ptr);
 476:../libBME280/src/bme280.c **** 
 477:../libBME280/src/bme280.c ****         /* Check for communication error */
 478:../libBME280/src/bme280.c ****         if (dev->intf_rslt != BME280_INTF_RET_SUCCESS)
 479:../libBME280/src/bme280.c ****         {
 480:../libBME280/src/bme280.c ****             rslt = BME280_E_COMM_FAIL;
 481:../libBME280/src/bme280.c ****         }
 482:../libBME280/src/bme280.c ****     }
 483:../libBME280/src/bme280.c ****     else
 484:../libBME280/src/bme280.c ****     {
 485:../libBME280/src/bme280.c ****         rslt = BME280_E_NULL_PTR;
 486:../libBME280/src/bme280.c ****     }
 487:../libBME280/src/bme280.c **** 
 488:../libBME280/src/bme280.c ****     return rslt;
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 10


 489:../libBME280/src/bme280.c **** }
 490:../libBME280/src/bme280.c **** 
 491:../libBME280/src/bme280.c **** /*!
 492:../libBME280/src/bme280.c ****  * @brief This API writes the given data to the register address
 493:../libBME280/src/bme280.c ****  * of the sensor.
 494:../libBME280/src/bme280.c ****  */
 495:../libBME280/src/bme280.c **** int8_t bme280_set_regs(uint8_t *reg_addr, const uint8_t *reg_data, uint8_t len, struct bme280_dev *
 496:../libBME280/src/bme280.c **** {
 497:../libBME280/src/bme280.c ****     int8_t rslt;
 498:../libBME280/src/bme280.c ****     uint8_t temp_buff[20]; /* Typically not to write more than 10 registers */
 499:../libBME280/src/bme280.c **** 
 500:../libBME280/src/bme280.c ****     if (len > 10)
 501:../libBME280/src/bme280.c ****     {
 502:../libBME280/src/bme280.c ****         len = 10;
 503:../libBME280/src/bme280.c ****     }
 504:../libBME280/src/bme280.c **** 
 505:../libBME280/src/bme280.c ****     uint16_t temp_len;
 506:../libBME280/src/bme280.c ****     uint8_t reg_addr_cnt;
 507:../libBME280/src/bme280.c **** 
 508:../libBME280/src/bme280.c ****     /* Check for null pointer in the device structure*/
 509:../libBME280/src/bme280.c ****     rslt = null_ptr_check(dev);
 510:../libBME280/src/bme280.c **** 
 511:../libBME280/src/bme280.c ****     /* Check for arguments validity */
 512:../libBME280/src/bme280.c ****     if ((rslt == BME280_OK) && (reg_addr != NULL) && (reg_data != NULL))
 513:../libBME280/src/bme280.c ****     {
 514:../libBME280/src/bme280.c ****         if (len != 0)
 515:../libBME280/src/bme280.c ****         {
 516:../libBME280/src/bme280.c ****             temp_buff[0] = reg_data[0];
 517:../libBME280/src/bme280.c **** 
 518:../libBME280/src/bme280.c ****             /* If interface selected is SPI */
 519:../libBME280/src/bme280.c ****             if (dev->intf != BME280_I2C_INTF)
 520:../libBME280/src/bme280.c ****             {
 521:../libBME280/src/bme280.c ****                 for (reg_addr_cnt = 0; reg_addr_cnt < len; reg_addr_cnt++)
 522:../libBME280/src/bme280.c ****                 {
 523:../libBME280/src/bme280.c ****                     reg_addr[reg_addr_cnt] = reg_addr[reg_addr_cnt] & 0x7F;
 524:../libBME280/src/bme280.c ****                 }
 525:../libBME280/src/bme280.c ****             }
 526:../libBME280/src/bme280.c **** 
 527:../libBME280/src/bme280.c ****             /* Burst write mode */
 528:../libBME280/src/bme280.c ****             if (len > 1)
 529:../libBME280/src/bme280.c ****             {
 530:../libBME280/src/bme280.c ****                 /* Interleave register address w.r.t data for
 531:../libBME280/src/bme280.c ****                  * burst write
 532:../libBME280/src/bme280.c ****                  */
 533:../libBME280/src/bme280.c ****                 interleave_reg_addr(reg_addr, temp_buff, reg_data, len);
 534:../libBME280/src/bme280.c ****                 temp_len = ((len * 2) - 1);
 535:../libBME280/src/bme280.c ****             }
 536:../libBME280/src/bme280.c ****             else
 537:../libBME280/src/bme280.c ****             {
 538:../libBME280/src/bme280.c ****                 temp_len = len;
 539:../libBME280/src/bme280.c ****             }
 540:../libBME280/src/bme280.c **** 
 541:../libBME280/src/bme280.c ****             dev->intf_rslt = dev->write(reg_addr[0], temp_buff, temp_len, dev->intf_ptr);
 542:../libBME280/src/bme280.c **** 
 543:../libBME280/src/bme280.c ****             /* Check for communication error */
 544:../libBME280/src/bme280.c ****             if (dev->intf_rslt != BME280_INTF_RET_SUCCESS)
 545:../libBME280/src/bme280.c ****             {
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 11


 546:../libBME280/src/bme280.c ****                 rslt = BME280_E_COMM_FAIL;
 547:../libBME280/src/bme280.c ****             }
 548:../libBME280/src/bme280.c ****         }
 549:../libBME280/src/bme280.c ****         else
 550:../libBME280/src/bme280.c ****         {
 551:../libBME280/src/bme280.c ****             rslt = BME280_E_INVALID_LEN;
 552:../libBME280/src/bme280.c ****         }
 553:../libBME280/src/bme280.c ****     }
 554:../libBME280/src/bme280.c ****     else
 555:../libBME280/src/bme280.c ****     {
 556:../libBME280/src/bme280.c ****         rslt = BME280_E_NULL_PTR;
 557:../libBME280/src/bme280.c ****     }
 558:../libBME280/src/bme280.c **** 
 559:../libBME280/src/bme280.c ****     return rslt;
 560:../libBME280/src/bme280.c **** }
 561:../libBME280/src/bme280.c **** 
 562:../libBME280/src/bme280.c **** /*!
 563:../libBME280/src/bme280.c ****  * @brief This API sets the oversampling, filter and standby duration
 564:../libBME280/src/bme280.c ****  * (normal mode) settings in the sensor.
 565:../libBME280/src/bme280.c ****  */
 566:../libBME280/src/bme280.c **** int8_t bme280_set_sensor_settings(uint8_t desired_settings, struct bme280_dev *dev)
 567:../libBME280/src/bme280.c **** {
 568:../libBME280/src/bme280.c ****     int8_t rslt;
 569:../libBME280/src/bme280.c ****     uint8_t sensor_mode;
 570:../libBME280/src/bme280.c **** 
 571:../libBME280/src/bme280.c ****     /* Check for null pointer in the device structure*/
 572:../libBME280/src/bme280.c ****     rslt = null_ptr_check(dev);
 573:../libBME280/src/bme280.c **** 
 574:../libBME280/src/bme280.c ****     /* Proceed if null check is fine */
 575:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
 576:../libBME280/src/bme280.c ****     {
 577:../libBME280/src/bme280.c ****         rslt = bme280_get_sensor_mode(&sensor_mode, dev);
 578:../libBME280/src/bme280.c **** 
 579:../libBME280/src/bme280.c ****         if ((rslt == BME280_OK) && (sensor_mode != BME280_SLEEP_MODE))
 580:../libBME280/src/bme280.c ****         {
 581:../libBME280/src/bme280.c ****             rslt = put_device_to_sleep(dev);
 582:../libBME280/src/bme280.c ****         }
 583:../libBME280/src/bme280.c **** 
 584:../libBME280/src/bme280.c ****         if (rslt == BME280_OK)
 585:../libBME280/src/bme280.c ****         {
 586:../libBME280/src/bme280.c ****             /* Check if user wants to change oversampling
 587:../libBME280/src/bme280.c ****              * settings
 588:../libBME280/src/bme280.c ****              */
 589:../libBME280/src/bme280.c ****             if (are_settings_changed(OVERSAMPLING_SETTINGS, desired_settings))
 590:../libBME280/src/bme280.c ****             {
 591:../libBME280/src/bme280.c ****                 rslt = set_osr_settings(desired_settings, &dev->settings, dev);
 592:../libBME280/src/bme280.c ****             }
 593:../libBME280/src/bme280.c **** 
 594:../libBME280/src/bme280.c ****             /* Check if user wants to change filter and/or
 595:../libBME280/src/bme280.c ****              * standby settings
 596:../libBME280/src/bme280.c ****              */
 597:../libBME280/src/bme280.c ****             if ((rslt == BME280_OK) && are_settings_changed(FILTER_STANDBY_SETTINGS, desired_settin
 598:../libBME280/src/bme280.c ****             {
 599:../libBME280/src/bme280.c ****                 rslt = set_filter_standby_settings(desired_settings, &dev->settings, dev);
 600:../libBME280/src/bme280.c ****             }
 601:../libBME280/src/bme280.c ****         }
 602:../libBME280/src/bme280.c ****     }
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 12


 603:../libBME280/src/bme280.c **** 
 604:../libBME280/src/bme280.c ****     return rslt;
 605:../libBME280/src/bme280.c **** }
 606:../libBME280/src/bme280.c **** 
 607:../libBME280/src/bme280.c **** /*!
 608:../libBME280/src/bme280.c ****  * @brief This API gets the oversampling, filter and standby duration
 609:../libBME280/src/bme280.c ****  * (normal mode) settings from the sensor.
 610:../libBME280/src/bme280.c ****  */
 611:../libBME280/src/bme280.c **** int8_t bme280_get_sensor_settings(struct bme280_dev *dev)
 612:../libBME280/src/bme280.c **** {
 613:../libBME280/src/bme280.c ****     int8_t rslt;
 614:../libBME280/src/bme280.c ****     uint8_t reg_data[4];
 615:../libBME280/src/bme280.c **** 
 616:../libBME280/src/bme280.c ****     /* Check for null pointer in the device structure*/
 617:../libBME280/src/bme280.c ****     rslt = null_ptr_check(dev);
 618:../libBME280/src/bme280.c **** 
 619:../libBME280/src/bme280.c ****     /* Proceed if null check is fine */
 620:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
 621:../libBME280/src/bme280.c ****     {
 622:../libBME280/src/bme280.c ****         rslt = bme280_get_regs(BME280_CTRL_HUM_ADDR, reg_data, 4, dev);
 623:../libBME280/src/bme280.c **** 
 624:../libBME280/src/bme280.c ****         if (rslt == BME280_OK)
 625:../libBME280/src/bme280.c ****         {
 626:../libBME280/src/bme280.c ****             parse_device_settings(reg_data, &dev->settings);
 627:../libBME280/src/bme280.c ****         }
 628:../libBME280/src/bme280.c ****     }
 629:../libBME280/src/bme280.c **** 
 630:../libBME280/src/bme280.c ****     return rslt;
 631:../libBME280/src/bme280.c **** }
 632:../libBME280/src/bme280.c **** 
 633:../libBME280/src/bme280.c **** /*!
 634:../libBME280/src/bme280.c ****  * @brief This API sets the power mode of the sensor.
 635:../libBME280/src/bme280.c ****  */
 636:../libBME280/src/bme280.c **** int8_t bme280_set_sensor_mode(uint8_t sensor_mode, struct bme280_dev *dev)
 637:../libBME280/src/bme280.c **** {
 638:../libBME280/src/bme280.c ****     int8_t rslt;
 639:../libBME280/src/bme280.c ****     uint8_t last_set_mode;
 640:../libBME280/src/bme280.c **** 
 641:../libBME280/src/bme280.c ****     /* Check for null pointer in the device structure*/
 642:../libBME280/src/bme280.c ****     rslt = null_ptr_check(dev);
 643:../libBME280/src/bme280.c **** 
 644:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
 645:../libBME280/src/bme280.c ****     {
 646:../libBME280/src/bme280.c ****         rslt = bme280_get_sensor_mode(&last_set_mode, dev);
 647:../libBME280/src/bme280.c **** 
 648:../libBME280/src/bme280.c ****         /* If the sensor is not in sleep mode put the device to sleep
 649:../libBME280/src/bme280.c ****          * mode
 650:../libBME280/src/bme280.c ****          */
 651:../libBME280/src/bme280.c ****         if ((rslt == BME280_OK) && (last_set_mode != BME280_SLEEP_MODE))
 652:../libBME280/src/bme280.c ****         {
 653:../libBME280/src/bme280.c ****             rslt = put_device_to_sleep(dev);
 654:../libBME280/src/bme280.c ****         }
 655:../libBME280/src/bme280.c **** 
 656:../libBME280/src/bme280.c ****         /* Set the power mode */
 657:../libBME280/src/bme280.c ****         if (rslt == BME280_OK)
 658:../libBME280/src/bme280.c ****         {
 659:../libBME280/src/bme280.c ****             rslt = write_power_mode(sensor_mode, dev);
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 13


 660:../libBME280/src/bme280.c ****         }
 661:../libBME280/src/bme280.c ****     }
 662:../libBME280/src/bme280.c **** 
 663:../libBME280/src/bme280.c ****     return rslt;
 664:../libBME280/src/bme280.c **** }
 665:../libBME280/src/bme280.c **** 
 666:../libBME280/src/bme280.c **** /*!
 667:../libBME280/src/bme280.c ****  * @brief This API gets the power mode of the sensor.
 668:../libBME280/src/bme280.c ****  */
 669:../libBME280/src/bme280.c **** int8_t bme280_get_sensor_mode(uint8_t *sensor_mode, struct bme280_dev *dev)
 670:../libBME280/src/bme280.c **** {
 671:../libBME280/src/bme280.c ****     int8_t rslt;
 672:../libBME280/src/bme280.c **** 
 673:../libBME280/src/bme280.c ****     /* Check for null pointer in the device structure*/
 674:../libBME280/src/bme280.c ****     rslt = null_ptr_check(dev);
 675:../libBME280/src/bme280.c **** 
 676:../libBME280/src/bme280.c ****     if ((rslt == BME280_OK) && (sensor_mode != NULL))
 677:../libBME280/src/bme280.c ****     {
 678:../libBME280/src/bme280.c ****         /* Read the power mode register */
 679:../libBME280/src/bme280.c ****         rslt = bme280_get_regs(BME280_PWR_CTRL_ADDR, sensor_mode, 1, dev);
 680:../libBME280/src/bme280.c **** 
 681:../libBME280/src/bme280.c ****         /* Assign the power mode in the device structure */
 682:../libBME280/src/bme280.c ****         *sensor_mode = BME280_GET_BITS_POS_0(*sensor_mode, BME280_SENSOR_MODE);
 683:../libBME280/src/bme280.c ****     }
 684:../libBME280/src/bme280.c ****     else
 685:../libBME280/src/bme280.c ****     {
 686:../libBME280/src/bme280.c ****         rslt = BME280_E_NULL_PTR;
 687:../libBME280/src/bme280.c ****     }
 688:../libBME280/src/bme280.c **** 
 689:../libBME280/src/bme280.c ****     return rslt;
 690:../libBME280/src/bme280.c **** }
 691:../libBME280/src/bme280.c **** 
 692:../libBME280/src/bme280.c **** /*!
 693:../libBME280/src/bme280.c ****  * @brief This API performs the soft reset of the sensor.
 694:../libBME280/src/bme280.c ****  */
 695:../libBME280/src/bme280.c **** int8_t bme280_soft_reset(struct bme280_dev *dev)
 696:../libBME280/src/bme280.c **** {
 697:../libBME280/src/bme280.c ****     int8_t rslt;
 698:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_RESET_ADDR;
 699:../libBME280/src/bme280.c ****     uint8_t status_reg = 0;
 700:../libBME280/src/bme280.c ****     uint8_t try_run = 5;
 701:../libBME280/src/bme280.c **** 
 702:../libBME280/src/bme280.c ****     /* 0xB6 is the soft reset command */
 703:../libBME280/src/bme280.c ****     uint8_t soft_rst_cmd = BME280_SOFT_RESET_COMMAND;
 704:../libBME280/src/bme280.c **** 
 705:../libBME280/src/bme280.c ****     /* Check for null pointer in the device structure*/
 706:../libBME280/src/bme280.c ****     rslt = null_ptr_check(dev);
 707:../libBME280/src/bme280.c **** 
 708:../libBME280/src/bme280.c ****     /* Proceed if null check is fine */
 709:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
 710:../libBME280/src/bme280.c ****     {
 711:../libBME280/src/bme280.c ****         /* Write the soft reset command in the sensor */
 712:../libBME280/src/bme280.c ****         rslt = bme280_set_regs(&reg_addr, &soft_rst_cmd, 1, dev);
 713:../libBME280/src/bme280.c **** 
 714:../libBME280/src/bme280.c ****         if (rslt == BME280_OK)
 715:../libBME280/src/bme280.c ****         {
 716:../libBME280/src/bme280.c ****             /* If NVM not copied yet, Wait for NVM to copy */
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 14


 717:../libBME280/src/bme280.c ****             do
 718:../libBME280/src/bme280.c ****             {
 719:../libBME280/src/bme280.c ****                 /* As per data sheet - Table 1, startup time is 2 ms. */
 720:../libBME280/src/bme280.c ****                 dev->delay_us(2000, dev->intf_ptr);
 721:../libBME280/src/bme280.c ****                 rslt = bme280_get_regs(BME280_STATUS_REG_ADDR, &status_reg, 1, dev);
 722:../libBME280/src/bme280.c **** 
 723:../libBME280/src/bme280.c ****             } while ((rslt == BME280_OK) && (try_run--) && (status_reg & BME280_STATUS_IM_UPDATE));
 724:../libBME280/src/bme280.c **** 
 725:../libBME280/src/bme280.c ****             if (status_reg & BME280_STATUS_IM_UPDATE)
 726:../libBME280/src/bme280.c ****             {
 727:../libBME280/src/bme280.c ****                 rslt = BME280_E_NVM_COPY_FAILED;
 728:../libBME280/src/bme280.c ****             }
 729:../libBME280/src/bme280.c ****         }
 730:../libBME280/src/bme280.c ****     }
 731:../libBME280/src/bme280.c **** 
 732:../libBME280/src/bme280.c ****     return rslt;
 733:../libBME280/src/bme280.c **** }
 734:../libBME280/src/bme280.c **** 
 735:../libBME280/src/bme280.c **** /*!
 736:../libBME280/src/bme280.c ****  * @brief This API reads the pressure, temperature and humidity data from the
 737:../libBME280/src/bme280.c ****  * sensor, compensates the data and store it in the bme280_data structure
 738:../libBME280/src/bme280.c ****  * instance passed by the user.
 739:../libBME280/src/bme280.c ****  */
 740:../libBME280/src/bme280.c **** int8_t bme280_get_sensor_data(uint8_t sensor_comp, struct bme280_data *comp_data, struct bme280_dev
 741:../libBME280/src/bme280.c **** {
 742:../libBME280/src/bme280.c ****     int8_t rslt;
 743:../libBME280/src/bme280.c **** 
 744:../libBME280/src/bme280.c ****     /* Array to store the pressure, temperature and humidity data read from
 745:../libBME280/src/bme280.c ****      * the sensor
 746:../libBME280/src/bme280.c ****      */
 747:../libBME280/src/bme280.c ****     uint8_t reg_data[BME280_P_T_H_DATA_LEN] = { 0 };
 748:../libBME280/src/bme280.c ****     struct bme280_uncomp_data uncomp_data = { 0 };
 749:../libBME280/src/bme280.c **** 
 750:../libBME280/src/bme280.c ****     /* Check for null pointer in the device structure*/
 751:../libBME280/src/bme280.c ****     rslt = null_ptr_check(dev);
 752:../libBME280/src/bme280.c **** 
 753:../libBME280/src/bme280.c ****     if ((rslt == BME280_OK) && (comp_data != NULL))
 754:../libBME280/src/bme280.c ****     {
 755:../libBME280/src/bme280.c ****         /* Read the pressure and temperature data from the sensor */
 756:../libBME280/src/bme280.c ****         rslt = bme280_get_regs(BME280_DATA_ADDR, reg_data, BME280_P_T_H_DATA_LEN, dev);
 757:../libBME280/src/bme280.c **** 
 758:../libBME280/src/bme280.c ****         if (rslt == BME280_OK)
 759:../libBME280/src/bme280.c ****         {
 760:../libBME280/src/bme280.c ****             /* Parse the read data from the sensor */
 761:../libBME280/src/bme280.c ****             bme280_parse_sensor_data(reg_data, &uncomp_data);
 762:../libBME280/src/bme280.c **** 
 763:../libBME280/src/bme280.c ****             /* Compensate the pressure and/or temperature and/or
 764:../libBME280/src/bme280.c ****              * humidity data from the sensor
 765:../libBME280/src/bme280.c ****              */
 766:../libBME280/src/bme280.c ****             rslt = bme280_compensate_data(sensor_comp, &uncomp_data, comp_data, &dev->calib_data);
 767:../libBME280/src/bme280.c ****         }
 768:../libBME280/src/bme280.c ****     }
 769:../libBME280/src/bme280.c ****     else
 770:../libBME280/src/bme280.c ****     {
 771:../libBME280/src/bme280.c ****         rslt = BME280_E_NULL_PTR;
 772:../libBME280/src/bme280.c ****     }
 773:../libBME280/src/bme280.c **** 
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 15


 774:../libBME280/src/bme280.c ****     return rslt;
 775:../libBME280/src/bme280.c **** }
 776:../libBME280/src/bme280.c **** 
 777:../libBME280/src/bme280.c **** /*!
 778:../libBME280/src/bme280.c ****  *  @brief This API is used to parse the pressure, temperature and
 779:../libBME280/src/bme280.c ****  *  humidity data and store it in the bme280_uncomp_data structure instance.
 780:../libBME280/src/bme280.c ****  */
 781:../libBME280/src/bme280.c **** void bme280_parse_sensor_data(const uint8_t *reg_data, struct bme280_uncomp_data *uncomp_data)
 782:../libBME280/src/bme280.c **** {
 783:../libBME280/src/bme280.c ****     /* Variables to store the sensor data */
 784:../libBME280/src/bme280.c ****     uint32_t data_xlsb;
 785:../libBME280/src/bme280.c ****     uint32_t data_lsb;
 786:../libBME280/src/bme280.c ****     uint32_t data_msb;
 787:../libBME280/src/bme280.c **** 
 788:../libBME280/src/bme280.c ****     /* Store the parsed register values for pressure data */
 789:../libBME280/src/bme280.c ****     data_msb = (uint32_t)reg_data[0] << 12;
 790:../libBME280/src/bme280.c ****     data_lsb = (uint32_t)reg_data[1] << 4;
 791:../libBME280/src/bme280.c ****     data_xlsb = (uint32_t)reg_data[2] >> 4;
 792:../libBME280/src/bme280.c ****     uncomp_data->pressure = data_msb | data_lsb | data_xlsb;
 793:../libBME280/src/bme280.c **** 
 794:../libBME280/src/bme280.c ****     /* Store the parsed register values for temperature data */
 795:../libBME280/src/bme280.c ****     data_msb = (uint32_t)reg_data[3] << 12;
 796:../libBME280/src/bme280.c ****     data_lsb = (uint32_t)reg_data[4] << 4;
 797:../libBME280/src/bme280.c ****     data_xlsb = (uint32_t)reg_data[5] >> 4;
 798:../libBME280/src/bme280.c ****     uncomp_data->temperature = data_msb | data_lsb | data_xlsb;
 799:../libBME280/src/bme280.c **** 
 800:../libBME280/src/bme280.c ****     /* Store the parsed register values for humidity data */
 801:../libBME280/src/bme280.c ****     data_msb = (uint32_t)reg_data[6] << 8;
 802:../libBME280/src/bme280.c ****     data_lsb = (uint32_t)reg_data[7];
 803:../libBME280/src/bme280.c ****     uncomp_data->humidity = data_msb | data_lsb;
 804:../libBME280/src/bme280.c **** }
 805:../libBME280/src/bme280.c **** 
 806:../libBME280/src/bme280.c **** /*!
 807:../libBME280/src/bme280.c ****  * @brief This API is used to compensate the pressure and/or
 808:../libBME280/src/bme280.c ****  * temperature and/or humidity data according to the component selected
 809:../libBME280/src/bme280.c ****  * by the user.
 810:../libBME280/src/bme280.c ****  */
 811:../libBME280/src/bme280.c **** int8_t bme280_compensate_data(uint8_t sensor_comp,
 812:../libBME280/src/bme280.c ****                               const struct bme280_uncomp_data *uncomp_data,
 813:../libBME280/src/bme280.c ****                               struct bme280_data *comp_data,
 814:../libBME280/src/bme280.c ****                               struct bme280_calib_data *calib_data)
 815:../libBME280/src/bme280.c **** {
 816:../libBME280/src/bme280.c ****     int8_t rslt = BME280_OK;
 817:../libBME280/src/bme280.c **** 
 818:../libBME280/src/bme280.c ****     if ((uncomp_data != NULL) && (comp_data != NULL) && (calib_data != NULL))
 819:../libBME280/src/bme280.c ****     {
 820:../libBME280/src/bme280.c ****         /* Initialize to zero */
 821:../libBME280/src/bme280.c ****         comp_data->temperature = 0;
 822:../libBME280/src/bme280.c ****         comp_data->pressure = 0;
 823:../libBME280/src/bme280.c ****         comp_data->humidity = 0;
 824:../libBME280/src/bme280.c **** 
 825:../libBME280/src/bme280.c ****         /* If pressure or temperature component is selected */
 826:../libBME280/src/bme280.c ****         if (sensor_comp & (BME280_PRESS | BME280_TEMP | BME280_HUM))
 827:../libBME280/src/bme280.c ****         {
 828:../libBME280/src/bme280.c ****             /* Compensate the temperature data */
 829:../libBME280/src/bme280.c ****             comp_data->temperature = compensate_temperature(uncomp_data, calib_data);
 830:../libBME280/src/bme280.c ****         }
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 16


 831:../libBME280/src/bme280.c **** 
 832:../libBME280/src/bme280.c ****         if (sensor_comp & BME280_PRESS)
 833:../libBME280/src/bme280.c ****         {
 834:../libBME280/src/bme280.c ****             /* Compensate the pressure data */
 835:../libBME280/src/bme280.c ****             comp_data->pressure = compensate_pressure(uncomp_data, calib_data);
 836:../libBME280/src/bme280.c ****         }
 837:../libBME280/src/bme280.c **** 
 838:../libBME280/src/bme280.c ****         if (sensor_comp & BME280_HUM)
 839:../libBME280/src/bme280.c ****         {
 840:../libBME280/src/bme280.c ****             /* Compensate the humidity data */
 841:../libBME280/src/bme280.c ****             comp_data->humidity = compensate_humidity(uncomp_data, calib_data);
 842:../libBME280/src/bme280.c ****         }
 843:../libBME280/src/bme280.c ****     }
 844:../libBME280/src/bme280.c ****     else
 845:../libBME280/src/bme280.c ****     {
 846:../libBME280/src/bme280.c ****         rslt = BME280_E_NULL_PTR;
 847:../libBME280/src/bme280.c ****     }
 848:../libBME280/src/bme280.c **** 
 849:../libBME280/src/bme280.c ****     return rslt;
 850:../libBME280/src/bme280.c **** }
 851:../libBME280/src/bme280.c **** 
 852:../libBME280/src/bme280.c **** /*!
 853:../libBME280/src/bme280.c ****  * @brief This API is used to calculate the maximum delay in milliseconds required for the
 854:../libBME280/src/bme280.c ****  * temperature/pressure/humidity(which ever at enabled) measurement to complete.
 855:../libBME280/src/bme280.c ****  */
 856:../libBME280/src/bme280.c **** uint32_t bme280_cal_meas_delay(const struct bme280_settings *settings)
 857:../libBME280/src/bme280.c **** {
 858:../libBME280/src/bme280.c ****     uint32_t max_delay;
 859:../libBME280/src/bme280.c ****     uint8_t temp_osr;
 860:../libBME280/src/bme280.c ****     uint8_t pres_osr;
 861:../libBME280/src/bme280.c ****     uint8_t hum_osr;
 862:../libBME280/src/bme280.c **** 
 863:../libBME280/src/bme280.c ****     /*Array to map OSR config register value to actual OSR */
 864:../libBME280/src/bme280.c ****     uint8_t osr_sett_to_act_osr[] = { 0, 1, 2, 4, 8, 16 };
 865:../libBME280/src/bme280.c **** 
 866:../libBME280/src/bme280.c ****     /* Mapping osr settings to the actual osr values e.g. 0b101 -> osr X16  */
 867:../libBME280/src/bme280.c ****     if (settings->osr_t <= 5)
 868:../libBME280/src/bme280.c ****     {
 869:../libBME280/src/bme280.c ****         temp_osr = osr_sett_to_act_osr[settings->osr_t];
 870:../libBME280/src/bme280.c ****     }
 871:../libBME280/src/bme280.c ****     else
 872:../libBME280/src/bme280.c ****     {
 873:../libBME280/src/bme280.c ****         temp_osr = 16;
 874:../libBME280/src/bme280.c ****     }
 875:../libBME280/src/bme280.c **** 
 876:../libBME280/src/bme280.c ****     if (settings->osr_p <= 5)
 877:../libBME280/src/bme280.c ****     {
 878:../libBME280/src/bme280.c ****         pres_osr = osr_sett_to_act_osr[settings->osr_p];
 879:../libBME280/src/bme280.c ****     }
 880:../libBME280/src/bme280.c ****     else
 881:../libBME280/src/bme280.c ****     {
 882:../libBME280/src/bme280.c ****         pres_osr = 16;
 883:../libBME280/src/bme280.c ****     }
 884:../libBME280/src/bme280.c **** 
 885:../libBME280/src/bme280.c ****     if (settings->osr_h <= 5)
 886:../libBME280/src/bme280.c ****     {
 887:../libBME280/src/bme280.c ****         hum_osr = osr_sett_to_act_osr[settings->osr_h];
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 17


 888:../libBME280/src/bme280.c ****     }
 889:../libBME280/src/bme280.c ****     else
 890:../libBME280/src/bme280.c ****     {
 891:../libBME280/src/bme280.c ****         hum_osr = 16;
 892:../libBME280/src/bme280.c ****     }
 893:../libBME280/src/bme280.c **** 
 894:../libBME280/src/bme280.c ****     max_delay =
 895:../libBME280/src/bme280.c ****         (uint32_t)((BME280_MEAS_OFFSET + (BME280_MEAS_DUR * temp_osr) +
 896:../libBME280/src/bme280.c ****                     ((BME280_MEAS_DUR * pres_osr) + BME280_PRES_HUM_MEAS_OFFSET) +
 897:../libBME280/src/bme280.c ****                     ((BME280_MEAS_DUR * hum_osr) + BME280_PRES_HUM_MEAS_OFFSET)) / BME280_MEAS_SCAL
 898:../libBME280/src/bme280.c **** 
 899:../libBME280/src/bme280.c ****     return max_delay;
 900:../libBME280/src/bme280.c **** }
 901:../libBME280/src/bme280.c **** 
 902:../libBME280/src/bme280.c **** /*!
 903:../libBME280/src/bme280.c ****  * @brief This internal API sets the oversampling settings for pressure,
 904:../libBME280/src/bme280.c ****  * temperature and humidity in the sensor.
 905:../libBME280/src/bme280.c ****  */
 906:../libBME280/src/bme280.c **** static int8_t set_osr_settings(uint8_t desired_settings, const struct bme280_settings *settings, st
 907:../libBME280/src/bme280.c **** {
 908:../libBME280/src/bme280.c ****     int8_t rslt = BME280_W_INVALID_OSR_MACRO;
 909:../libBME280/src/bme280.c **** 
 910:../libBME280/src/bme280.c ****     if (desired_settings & BME280_OSR_HUM_SEL)
 911:../libBME280/src/bme280.c ****     {
 912:../libBME280/src/bme280.c ****         rslt = set_osr_humidity_settings(settings, dev);
 913:../libBME280/src/bme280.c ****     }
 914:../libBME280/src/bme280.c **** 
 915:../libBME280/src/bme280.c ****     if (desired_settings & (BME280_OSR_PRESS_SEL | BME280_OSR_TEMP_SEL))
 916:../libBME280/src/bme280.c ****     {
 917:../libBME280/src/bme280.c ****         rslt = set_osr_press_temp_settings(desired_settings, settings, dev);
 918:../libBME280/src/bme280.c ****     }
 919:../libBME280/src/bme280.c **** 
 920:../libBME280/src/bme280.c ****     return rslt;
 921:../libBME280/src/bme280.c **** }
 922:../libBME280/src/bme280.c **** 
 923:../libBME280/src/bme280.c **** /*!
 924:../libBME280/src/bme280.c ****  * @brief This API sets the humidity oversampling settings of the sensor.
 925:../libBME280/src/bme280.c ****  */
 926:../libBME280/src/bme280.c **** static int8_t set_osr_humidity_settings(const struct bme280_settings *settings, struct bme280_dev *
 927:../libBME280/src/bme280.c **** {
 928:../libBME280/src/bme280.c ****     int8_t rslt;
 929:../libBME280/src/bme280.c ****     uint8_t ctrl_hum;
 930:../libBME280/src/bme280.c ****     uint8_t ctrl_meas;
 931:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_CTRL_HUM_ADDR;
 932:../libBME280/src/bme280.c **** 
 933:../libBME280/src/bme280.c ****     ctrl_hum = settings->osr_h & BME280_CTRL_HUM_MSK;
 934:../libBME280/src/bme280.c **** 
 935:../libBME280/src/bme280.c ****     /* Write the humidity control value in the register */
 936:../libBME280/src/bme280.c ****     rslt = bme280_set_regs(&reg_addr, &ctrl_hum, 1, dev);
 937:../libBME280/src/bme280.c **** 
 938:../libBME280/src/bme280.c ****     /* Humidity related changes will be only effective after a
 939:../libBME280/src/bme280.c ****      * write operation to ctrl_meas register
 940:../libBME280/src/bme280.c ****      */
 941:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
 942:../libBME280/src/bme280.c ****     {
 943:../libBME280/src/bme280.c ****         reg_addr = BME280_CTRL_MEAS_ADDR;
 944:../libBME280/src/bme280.c ****         rslt = bme280_get_regs(reg_addr, &ctrl_meas, 1, dev);
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 18


 945:../libBME280/src/bme280.c **** 
 946:../libBME280/src/bme280.c ****         if (rslt == BME280_OK)
 947:../libBME280/src/bme280.c ****         {
 948:../libBME280/src/bme280.c ****             rslt = bme280_set_regs(&reg_addr, &ctrl_meas, 1, dev);
 949:../libBME280/src/bme280.c ****         }
 950:../libBME280/src/bme280.c ****     }
 951:../libBME280/src/bme280.c **** 
 952:../libBME280/src/bme280.c ****     return rslt;
 953:../libBME280/src/bme280.c **** }
 954:../libBME280/src/bme280.c **** 
 955:../libBME280/src/bme280.c **** /*!
 956:../libBME280/src/bme280.c ****  * @brief This API sets the pressure and/or temperature oversampling settings
 957:../libBME280/src/bme280.c ****  * in the sensor according to the settings selected by the user.
 958:../libBME280/src/bme280.c ****  */
 959:../libBME280/src/bme280.c **** static int8_t set_osr_press_temp_settings(uint8_t desired_settings,
 960:../libBME280/src/bme280.c ****                                           const struct bme280_settings *settings,
 961:../libBME280/src/bme280.c ****                                           struct bme280_dev *dev)
 962:../libBME280/src/bme280.c **** {
 963:../libBME280/src/bme280.c ****     int8_t rslt;
 964:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_CTRL_MEAS_ADDR;
 965:../libBME280/src/bme280.c ****     uint8_t reg_data;
 966:../libBME280/src/bme280.c **** 
 967:../libBME280/src/bme280.c ****     rslt = bme280_get_regs(reg_addr, &reg_data, 1, dev);
 968:../libBME280/src/bme280.c **** 
 969:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
 970:../libBME280/src/bme280.c ****     {
 971:../libBME280/src/bme280.c ****         if (desired_settings & BME280_OSR_PRESS_SEL)
 972:../libBME280/src/bme280.c ****         {
 973:../libBME280/src/bme280.c ****             fill_osr_press_settings(&reg_data, settings);
 974:../libBME280/src/bme280.c ****         }
 975:../libBME280/src/bme280.c **** 
 976:../libBME280/src/bme280.c ****         if (desired_settings & BME280_OSR_TEMP_SEL)
 977:../libBME280/src/bme280.c ****         {
 978:../libBME280/src/bme280.c ****             fill_osr_temp_settings(&reg_data, settings);
 979:../libBME280/src/bme280.c ****         }
 980:../libBME280/src/bme280.c **** 
 981:../libBME280/src/bme280.c ****         /* Write the oversampling settings in the register */
 982:../libBME280/src/bme280.c ****         rslt = bme280_set_regs(&reg_addr, &reg_data, 1, dev);
 983:../libBME280/src/bme280.c ****     }
 984:../libBME280/src/bme280.c **** 
 985:../libBME280/src/bme280.c ****     return rslt;
 986:../libBME280/src/bme280.c **** }
 987:../libBME280/src/bme280.c **** 
 988:../libBME280/src/bme280.c **** /*!
 989:../libBME280/src/bme280.c ****  * @brief This internal API sets the filter and/or standby duration settings
 990:../libBME280/src/bme280.c ****  * in the sensor according to the settings selected by the user.
 991:../libBME280/src/bme280.c ****  */
 992:../libBME280/src/bme280.c **** static int8_t set_filter_standby_settings(uint8_t desired_settings,
 993:../libBME280/src/bme280.c ****                                           const struct bme280_settings *settings,
 994:../libBME280/src/bme280.c ****                                           struct bme280_dev *dev)
 995:../libBME280/src/bme280.c **** {
 996:../libBME280/src/bme280.c ****     int8_t rslt;
 997:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_CONFIG_ADDR;
 998:../libBME280/src/bme280.c ****     uint8_t reg_data;
 999:../libBME280/src/bme280.c **** 
1000:../libBME280/src/bme280.c ****     rslt = bme280_get_regs(reg_addr, &reg_data, 1, dev);
1001:../libBME280/src/bme280.c **** 
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 19


1002:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
1003:../libBME280/src/bme280.c ****     {
1004:../libBME280/src/bme280.c ****         if (desired_settings & BME280_FILTER_SEL)
1005:../libBME280/src/bme280.c ****         {
1006:../libBME280/src/bme280.c ****             fill_filter_settings(&reg_data, settings);
1007:../libBME280/src/bme280.c ****         }
1008:../libBME280/src/bme280.c **** 
1009:../libBME280/src/bme280.c ****         if (desired_settings & BME280_STANDBY_SEL)
1010:../libBME280/src/bme280.c ****         {
1011:../libBME280/src/bme280.c ****             fill_standby_settings(&reg_data, settings);
1012:../libBME280/src/bme280.c ****         }
1013:../libBME280/src/bme280.c **** 
1014:../libBME280/src/bme280.c ****         /* Write the oversampling settings in the register */
1015:../libBME280/src/bme280.c ****         rslt = bme280_set_regs(&reg_addr, &reg_data, 1, dev);
1016:../libBME280/src/bme280.c ****     }
1017:../libBME280/src/bme280.c **** 
1018:../libBME280/src/bme280.c ****     return rslt;
1019:../libBME280/src/bme280.c **** }
1020:../libBME280/src/bme280.c **** 
1021:../libBME280/src/bme280.c **** /*!
1022:../libBME280/src/bme280.c ****  * @brief This internal API fills the filter settings provided by the user
1023:../libBME280/src/bme280.c ****  * in the data buffer so as to write in the sensor.
1024:../libBME280/src/bme280.c ****  */
1025:../libBME280/src/bme280.c **** static void fill_filter_settings(uint8_t *reg_data, const struct bme280_settings *settings)
1026:../libBME280/src/bme280.c **** {
  27                            .loc 1 1026 1 view -0
  28                            .cfi_startproc
  29                            @ args = 0, pretend = 0, frame = 0
  30                            @ frame_needed = 0, uses_anonymous_args = 0
  31                            @ link register save eliminated.
1027:../libBME280/src/bme280.c ****     *reg_data = BME280_SET_BITS(*reg_data, BME280_FILTER, settings->filter);
  32                            .loc 1 1027 5 view .LVU1
  33                            .loc 1 1027 17 is_stmt 0 view .LVU2
  34 0000 90F90030              ldrsb   r3, [r0]
  35 0004 23F01C03              bic     r3, r3, #28
  36 0008 CA78                  ldrb    r2, [r1, #3]    @ zero_extendqisi2
  37 000a 9200                  lsls    r2, r2, #2
  38 000c 02F01C02              and     r2, r2, #28
  39 0010 1343                  orrs    r3, r3, r2
  40                            .loc 1 1027 15 view .LVU3
  41 0012 0370                  strb    r3, [r0]
1028:../libBME280/src/bme280.c **** }
  42                            .loc 1 1028 1 view .LVU4
  43 0014 7047                  bx      lr
  44                            .cfi_endproc
  45                    .LFE16:
  47                            .section        .text.fill_standby_settings,"ax",%progbits
  48                            .align  1
  49                            .syntax unified
  50                            .thumb
  51                            .thumb_func
  52                            .fpu softvfp
  54                    fill_standby_settings:
  55                    .LVL1:
  56                    .LFB17:
1029:../libBME280/src/bme280.c **** 
1030:../libBME280/src/bme280.c **** /*!
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 20


1031:../libBME280/src/bme280.c ****  * @brief This internal API fills the standby duration settings provided by
1032:../libBME280/src/bme280.c ****  * the user in the data buffer so as to write in the sensor.
1033:../libBME280/src/bme280.c ****  */
1034:../libBME280/src/bme280.c **** static void fill_standby_settings(uint8_t *reg_data, const struct bme280_settings *settings)
1035:../libBME280/src/bme280.c **** {
  57                            .loc 1 1035 1 is_stmt 1 view -0
  58                            .cfi_startproc
  59                            @ args = 0, pretend = 0, frame = 0
  60                            @ frame_needed = 0, uses_anonymous_args = 0
  61                            @ link register save eliminated.
1036:../libBME280/src/bme280.c ****     *reg_data = BME280_SET_BITS(*reg_data, BME280_STANDBY, settings->standby_time);
  62                            .loc 1 1036 5 view .LVU6
  63                            .loc 1 1036 17 is_stmt 0 view .LVU7
  64 0000 90F90030              ldrsb   r3, [r0]
  65 0004 03F01F03              and     r3, r3, #31
  66 0008 0A79                  ldrb    r2, [r1, #4]    @ zero_extendqisi2
  67 000a 43EA4213              orr     r3, r3, r2, lsl #5
  68                            .loc 1 1036 15 view .LVU8
  69 000e 0370                  strb    r3, [r0]
1037:../libBME280/src/bme280.c **** }
  70                            .loc 1 1037 1 view .LVU9
  71 0010 7047                  bx      lr
  72                            .cfi_endproc
  73                    .LFE17:
  75                            .section        .text.fill_osr_press_settings,"ax",%progbits
  76                            .align  1
  77                            .syntax unified
  78                            .thumb
  79                            .thumb_func
  80                            .fpu softvfp
  82                    fill_osr_press_settings:
  83                    .LVL2:
  84                    .LFB18:
1038:../libBME280/src/bme280.c **** 
1039:../libBME280/src/bme280.c **** /*!
1040:../libBME280/src/bme280.c ****  * @brief This internal API fills the pressure oversampling settings provided by
1041:../libBME280/src/bme280.c ****  * the user in the data buffer so as to write in the sensor.
1042:../libBME280/src/bme280.c ****  */
1043:../libBME280/src/bme280.c **** static void fill_osr_press_settings(uint8_t *reg_data, const struct bme280_settings *settings)
1044:../libBME280/src/bme280.c **** {
  85                            .loc 1 1044 1 is_stmt 1 view -0
  86                            .cfi_startproc
  87                            @ args = 0, pretend = 0, frame = 0
  88                            @ frame_needed = 0, uses_anonymous_args = 0
  89                            @ link register save eliminated.
1045:../libBME280/src/bme280.c ****     *reg_data = BME280_SET_BITS(*reg_data, BME280_CTRL_PRESS, settings->osr_p);
  90                            .loc 1 1045 5 view .LVU11
  91                            .loc 1 1045 17 is_stmt 0 view .LVU12
  92 0000 90F90030              ldrsb   r3, [r0]
  93 0004 23F01C03              bic     r3, r3, #28
  94 0008 0A78                  ldrb    r2, [r1]        @ zero_extendqisi2
  95 000a 9200                  lsls    r2, r2, #2
  96 000c 02F01C02              and     r2, r2, #28
  97 0010 1343                  orrs    r3, r3, r2
  98                            .loc 1 1045 15 view .LVU13
  99 0012 0370                  strb    r3, [r0]
1046:../libBME280/src/bme280.c **** }
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 21


 100                            .loc 1 1046 1 view .LVU14
 101 0014 7047                  bx      lr
 102                            .cfi_endproc
 103                    .LFE18:
 105                            .section        .text.fill_osr_temp_settings,"ax",%progbits
 106                            .align  1
 107                            .syntax unified
 108                            .thumb
 109                            .thumb_func
 110                            .fpu softvfp
 112                    fill_osr_temp_settings:
 113                    .LVL3:
 114                    .LFB19:
1047:../libBME280/src/bme280.c **** 
1048:../libBME280/src/bme280.c **** /*!
1049:../libBME280/src/bme280.c ****  * @brief This internal API fills the temperature oversampling settings
1050:../libBME280/src/bme280.c ****  * provided by the user in the data buffer so as to write in the sensor.
1051:../libBME280/src/bme280.c ****  */
1052:../libBME280/src/bme280.c **** static void fill_osr_temp_settings(uint8_t *reg_data, const struct bme280_settings *settings)
1053:../libBME280/src/bme280.c **** {
 115                            .loc 1 1053 1 is_stmt 1 view -0
 116                            .cfi_startproc
 117                            @ args = 0, pretend = 0, frame = 0
 118                            @ frame_needed = 0, uses_anonymous_args = 0
 119                            @ link register save eliminated.
1054:../libBME280/src/bme280.c ****     *reg_data = BME280_SET_BITS(*reg_data, BME280_CTRL_TEMP, settings->osr_t);
 120                            .loc 1 1054 5 view .LVU16
 121                            .loc 1 1054 17 is_stmt 0 view .LVU17
 122 0000 90F90030              ldrsb   r3, [r0]
 123 0004 03F01F03              and     r3, r3, #31
 124 0008 4A78                  ldrb    r2, [r1, #1]    @ zero_extendqisi2
 125 000a 43EA4213              orr     r3, r3, r2, lsl #5
 126                            .loc 1 1054 15 view .LVU18
 127 000e 0370                  strb    r3, [r0]
1055:../libBME280/src/bme280.c **** }
 128                            .loc 1 1055 1 view .LVU19
 129 0010 7047                  bx      lr
 130                            .cfi_endproc
 131                    .LFE19:
 133                            .section        .text.parse_device_settings,"ax",%progbits
 134                            .align  1
 135                            .syntax unified
 136                            .thumb
 137                            .thumb_func
 138                            .fpu softvfp
 140                    parse_device_settings:
 141                    .LVL4:
 142                    .LFB20:
1056:../libBME280/src/bme280.c **** 
1057:../libBME280/src/bme280.c **** /*!
1058:../libBME280/src/bme280.c ****  * @brief This internal API parse the oversampling(pressure, temperature
1059:../libBME280/src/bme280.c ****  * and humidity), filter and standby duration settings and store in the
1060:../libBME280/src/bme280.c ****  * device structure.
1061:../libBME280/src/bme280.c ****  */
1062:../libBME280/src/bme280.c **** static void parse_device_settings(const uint8_t *reg_data, struct bme280_settings *settings)
1063:../libBME280/src/bme280.c **** {
 143                            .loc 1 1063 1 is_stmt 1 view -0
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 22


 144                            .cfi_startproc
 145                            @ args = 0, pretend = 0, frame = 0
 146                            @ frame_needed = 0, uses_anonymous_args = 0
 147                            @ link register save eliminated.
1064:../libBME280/src/bme280.c ****     settings->osr_h = BME280_GET_BITS_POS_0(reg_data[0], BME280_CTRL_HUM);
 148                            .loc 1 1064 5 view .LVU21
 149                            .loc 1 1064 23 is_stmt 0 view .LVU22
 150 0000 0378                  ldrb    r3, [r0]        @ zero_extendqisi2
 151 0002 03F00703              and     r3, r3, #7
 152                            .loc 1 1064 21 view .LVU23
 153 0006 8B70                  strb    r3, [r1, #2]
1065:../libBME280/src/bme280.c ****     settings->osr_p = BME280_GET_BITS(reg_data[2], BME280_CTRL_PRESS);
 154                            .loc 1 1065 5 is_stmt 1 view .LVU24
 155                            .loc 1 1065 23 is_stmt 0 view .LVU25
 156 0008 8378                  ldrb    r3, [r0, #2]    @ zero_extendqisi2
 157 000a C3F38203              ubfx    r3, r3, #2, #3
 158                            .loc 1 1065 21 view .LVU26
 159 000e 0B70                  strb    r3, [r1]
1066:../libBME280/src/bme280.c ****     settings->osr_t = BME280_GET_BITS(reg_data[2], BME280_CTRL_TEMP);
 160                            .loc 1 1066 5 is_stmt 1 view .LVU27
 161                            .loc 1 1066 23 is_stmt 0 view .LVU28
 162 0010 8378                  ldrb    r3, [r0, #2]    @ zero_extendqisi2
 163 0012 5B09                  lsrs    r3, r3, #5
 164                            .loc 1 1066 21 view .LVU29
 165 0014 4B70                  strb    r3, [r1, #1]
1067:../libBME280/src/bme280.c ****     settings->filter = BME280_GET_BITS(reg_data[3], BME280_FILTER);
 166                            .loc 1 1067 5 is_stmt 1 view .LVU30
 167                            .loc 1 1067 24 is_stmt 0 view .LVU31
 168 0016 C378                  ldrb    r3, [r0, #3]    @ zero_extendqisi2
 169 0018 C3F38203              ubfx    r3, r3, #2, #3
 170                            .loc 1 1067 22 view .LVU32
 171 001c CB70                  strb    r3, [r1, #3]
1068:../libBME280/src/bme280.c ****     settings->standby_time = BME280_GET_BITS(reg_data[3], BME280_STANDBY);
 172                            .loc 1 1068 5 is_stmt 1 view .LVU33
 173                            .loc 1 1068 30 is_stmt 0 view .LVU34
 174 001e C378                  ldrb    r3, [r0, #3]    @ zero_extendqisi2
 175 0020 5B09                  lsrs    r3, r3, #5
 176                            .loc 1 1068 28 view .LVU35
 177 0022 0B71                  strb    r3, [r1, #4]
1069:../libBME280/src/bme280.c **** }
 178                            .loc 1 1069 1 view .LVU36
 179 0024 7047                  bx      lr
 180                            .cfi_endproc
 181                    .LFE20:
 183                            .global __aeabi_ui2d
 184                            .global __aeabi_dmul
 185                            .global __aeabi_dsub
 186                            .global __aeabi_i2d
 187                            .global __aeabi_dadd
 188                            .global __aeabi_d2iz
 189                            .global __aeabi_ddiv
 190                            .global __aeabi_dcmplt
 191                            .global __aeabi_dcmpgt
 192                            .section        .text.compensate_temperature,"ax",%progbits
 193                            .align  1
 194                            .syntax unified
 195                            .thumb
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 23


 196                            .thumb_func
 197                            .fpu softvfp
 199                    compensate_temperature:
 200                    .LVL5:
 201                    .LFB24:
1070:../libBME280/src/bme280.c **** 
1071:../libBME280/src/bme280.c **** /*!
1072:../libBME280/src/bme280.c ****  * @brief This internal API writes the power mode in the sensor.
1073:../libBME280/src/bme280.c ****  */
1074:../libBME280/src/bme280.c **** static int8_t write_power_mode(uint8_t sensor_mode, struct bme280_dev *dev)
1075:../libBME280/src/bme280.c **** {
1076:../libBME280/src/bme280.c ****     int8_t rslt;
1077:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_PWR_CTRL_ADDR;
1078:../libBME280/src/bme280.c **** 
1079:../libBME280/src/bme280.c ****     /* Variable to store the value read from power mode register */
1080:../libBME280/src/bme280.c ****     uint8_t sensor_mode_reg_val;
1081:../libBME280/src/bme280.c **** 
1082:../libBME280/src/bme280.c ****     /* Read the power mode register */
1083:../libBME280/src/bme280.c ****     rslt = bme280_get_regs(reg_addr, &sensor_mode_reg_val, 1, dev);
1084:../libBME280/src/bme280.c **** 
1085:../libBME280/src/bme280.c ****     /* Set the power mode */
1086:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
1087:../libBME280/src/bme280.c ****     {
1088:../libBME280/src/bme280.c ****         sensor_mode_reg_val = BME280_SET_BITS_POS_0(sensor_mode_reg_val, BME280_SENSOR_MODE, sensor
1089:../libBME280/src/bme280.c **** 
1090:../libBME280/src/bme280.c ****         /* Write the power mode in the register */
1091:../libBME280/src/bme280.c ****         rslt = bme280_set_regs(&reg_addr, &sensor_mode_reg_val, 1, dev);
1092:../libBME280/src/bme280.c ****     }
1093:../libBME280/src/bme280.c **** 
1094:../libBME280/src/bme280.c ****     return rslt;
1095:../libBME280/src/bme280.c **** }
1096:../libBME280/src/bme280.c **** 
1097:../libBME280/src/bme280.c **** /*!
1098:../libBME280/src/bme280.c ****  * @brief This internal API puts the device to sleep mode.
1099:../libBME280/src/bme280.c ****  */
1100:../libBME280/src/bme280.c **** static int8_t put_device_to_sleep(struct bme280_dev *dev)
1101:../libBME280/src/bme280.c **** {
1102:../libBME280/src/bme280.c ****     int8_t rslt;
1103:../libBME280/src/bme280.c ****     uint8_t reg_data[4];
1104:../libBME280/src/bme280.c ****     struct bme280_settings settings;
1105:../libBME280/src/bme280.c **** 
1106:../libBME280/src/bme280.c ****     rslt = bme280_get_regs(BME280_CTRL_HUM_ADDR, reg_data, 4, dev);
1107:../libBME280/src/bme280.c **** 
1108:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
1109:../libBME280/src/bme280.c ****     {
1110:../libBME280/src/bme280.c ****         parse_device_settings(reg_data, &settings);
1111:../libBME280/src/bme280.c ****         rslt = bme280_soft_reset(dev);
1112:../libBME280/src/bme280.c **** 
1113:../libBME280/src/bme280.c ****         if (rslt == BME280_OK)
1114:../libBME280/src/bme280.c ****         {
1115:../libBME280/src/bme280.c ****             rslt = reload_device_settings(&settings, dev);
1116:../libBME280/src/bme280.c ****         }
1117:../libBME280/src/bme280.c ****     }
1118:../libBME280/src/bme280.c **** 
1119:../libBME280/src/bme280.c ****     return rslt;
1120:../libBME280/src/bme280.c **** }
1121:../libBME280/src/bme280.c **** 
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 24


1122:../libBME280/src/bme280.c **** /*!
1123:../libBME280/src/bme280.c ****  * @brief This internal API reloads the already existing device settings in
1124:../libBME280/src/bme280.c ****  * the sensor after soft reset.
1125:../libBME280/src/bme280.c ****  */
1126:../libBME280/src/bme280.c **** static int8_t reload_device_settings(const struct bme280_settings *settings, struct bme280_dev *dev
1127:../libBME280/src/bme280.c **** {
1128:../libBME280/src/bme280.c ****     int8_t rslt;
1129:../libBME280/src/bme280.c **** 
1130:../libBME280/src/bme280.c ****     rslt = set_osr_settings(BME280_ALL_SETTINGS_SEL, settings, dev);
1131:../libBME280/src/bme280.c **** 
1132:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
1133:../libBME280/src/bme280.c ****     {
1134:../libBME280/src/bme280.c ****         rslt = set_filter_standby_settings(BME280_ALL_SETTINGS_SEL, settings, dev);
1135:../libBME280/src/bme280.c ****     }
1136:../libBME280/src/bme280.c **** 
1137:../libBME280/src/bme280.c ****     return rslt;
1138:../libBME280/src/bme280.c **** }
1139:../libBME280/src/bme280.c **** 
1140:../libBME280/src/bme280.c **** #ifdef BME280_FLOAT_ENABLE
1141:../libBME280/src/bme280.c **** 
1142:../libBME280/src/bme280.c **** /*!
1143:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw temperature data and
1144:../libBME280/src/bme280.c ****  * return the compensated temperature data in double data type.
1145:../libBME280/src/bme280.c ****  */
1146:../libBME280/src/bme280.c **** static double compensate_temperature(const struct bme280_uncomp_data *uncomp_data, struct bme280_ca
1147:../libBME280/src/bme280.c **** {
 202                            .loc 1 1147 1 is_stmt 1 view -0
 203                            .cfi_startproc
 204                            @ args = 0, pretend = 0, frame = 0
 205                            @ frame_needed = 0, uses_anonymous_args = 0
 206                            .loc 1 1147 1 is_stmt 0 view .LVU38
 207 0000 2DE9F84F              push    {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 208                    .LCFI0:
 209                            .cfi_def_cfa_offset 40
 210                            .cfi_offset 3, -40
 211                            .cfi_offset 4, -36
 212                            .cfi_offset 5, -32
 213                            .cfi_offset 6, -28
 214                            .cfi_offset 7, -24
 215                            .cfi_offset 8, -20
 216                            .cfi_offset 9, -16
 217                            .cfi_offset 10, -12
 218                            .cfi_offset 11, -8
 219                            .cfi_offset 14, -4
 220 0004 0C46                  mov     r4, r1
1148:../libBME280/src/bme280.c ****     double var1;
 221                            .loc 1 1148 5 is_stmt 1 view .LVU39
1149:../libBME280/src/bme280.c ****     double var2;
 222                            .loc 1 1149 5 view .LVU40
1150:../libBME280/src/bme280.c ****     double temperature;
 223                            .loc 1 1150 5 view .LVU41
1151:../libBME280/src/bme280.c ****     double temperature_min = -40;
 224                            .loc 1 1151 5 view .LVU42
 225                    .LVL6:
1152:../libBME280/src/bme280.c ****     double temperature_max = 85;
 226                            .loc 1 1152 5 view .LVU43
1153:../libBME280/src/bme280.c **** 
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 25


1154:../libBME280/src/bme280.c ****     var1 = ((double)uncomp_data->temperature) / 16384.0 - ((double)calib_data->dig_t1) / 1024.0;
 227                            .loc 1 1154 5 view .LVU44
 228                            .loc 1 1154 13 is_stmt 0 view .LVU45
 229 0006 4068                  ldr     r0, [r0, #4]
 230                    .LVL7:
 231                            .loc 1 1154 13 view .LVU46
 232 0008 FFF7FEFF              bl      __aeabi_ui2d
 233                    .LVL8:
 234                            .loc 1 1154 13 view .LVU47
 235 000c 8046                  mov     r8, r0
 236 000e 8946                  mov     r9, r1
 237                            .loc 1 1154 47 view .LVU48
 238 0010 0022                  movs    r2, #0
 239 0012 364B                  ldr     r3, .L11
 240 0014 FFF7FEFF              bl      __aeabi_dmul
 241                    .LVL9:
 242 0018 0646                  mov     r6, r0
 243 001a 0F46                  mov     r7, r1
 244                            .loc 1 1154 60 view .LVU49
 245 001c 2088                  ldrh    r0, [r4]
 246 001e FFF7FEFF              bl      __aeabi_ui2d
 247                    .LVL10:
 248 0022 8246                  mov     r10, r0
 249 0024 8B46                  mov     fp, r1
 250                            .loc 1 1154 88 view .LVU50
 251 0026 0022                  movs    r2, #0
 252 0028 314B                  ldr     r3, .L11+4
 253 002a FFF7FEFF              bl      __aeabi_dmul
 254                    .LVL11:
 255                            .loc 1 1154 10 view .LVU51
 256 002e 0246                  mov     r2, r0
 257 0030 0B46                  mov     r3, r1
 258 0032 3046                  mov     r0, r6
 259 0034 3946                  mov     r1, r7
 260 0036 FFF7FEFF              bl      __aeabi_dsub
 261                    .LVL12:
 262 003a 0646                  mov     r6, r0
 263 003c 0F46                  mov     r7, r1
 264                    .LVL13:
1155:../libBME280/src/bme280.c ****     var1 = var1 * ((double)calib_data->dig_t2);
 265                            .loc 1 1155 5 is_stmt 1 view .LVU52
 266                            .loc 1 1155 20 is_stmt 0 view .LVU53
 267 003e B4F90200              ldrsh   r0, [r4, #2]
 268 0042 FFF7FEFF              bl      __aeabi_i2d
 269                    .LVL14:
 270                            .loc 1 1155 10 view .LVU54
 271 0046 3246                  mov     r2, r6
 272 0048 3B46                  mov     r3, r7
 273 004a FFF7FEFF              bl      __aeabi_dmul
 274                    .LVL15:
 275 004e 0646                  mov     r6, r0
 276                    .LVL16:
 277                            .loc 1 1155 10 view .LVU55
 278 0050 0F46                  mov     r7, r1
 279                    .LVL17:
1156:../libBME280/src/bme280.c ****     var2 = (((double)uncomp_data->temperature) / 131072.0 - ((double)calib_data->dig_t1) / 8192.0);
 280                            .loc 1 1156 5 is_stmt 1 view .LVU56
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 26


 281                            .loc 1 1156 48 is_stmt 0 view .LVU57
 282 0052 0022                  movs    r2, #0
 283 0054 274B                  ldr     r3, .L11+8
 284 0056 4046                  mov     r0, r8
 285 0058 4946                  mov     r1, r9
 286 005a FFF7FEFF              bl      __aeabi_dmul
 287                    .LVL18:
 288 005e 8046                  mov     r8, r0
 289 0060 8946                  mov     r9, r1
 290                            .loc 1 1156 90 view .LVU58
 291 0062 0022                  movs    r2, #0
 292 0064 244B                  ldr     r3, .L11+12
 293 0066 5046                  mov     r0, r10
 294 0068 5946                  mov     r1, fp
 295 006a FFF7FEFF              bl      __aeabi_dmul
 296                    .LVL19:
 297                            .loc 1 1156 10 view .LVU59
 298 006e 0246                  mov     r2, r0
 299 0070 0B46                  mov     r3, r1
 300 0072 4046                  mov     r0, r8
 301 0074 4946                  mov     r1, r9
 302 0076 FFF7FEFF              bl      __aeabi_dsub
 303                    .LVL20:
1157:../libBME280/src/bme280.c ****     var2 = (var2 * var2) * ((double)calib_data->dig_t3);
 304                            .loc 1 1157 5 is_stmt 1 view .LVU60
 305                            .loc 1 1157 18 is_stmt 0 view .LVU61
 306 007a 0246                  mov     r2, r0
 307 007c 0B46                  mov     r3, r1
 308 007e FFF7FEFF              bl      __aeabi_dmul
 309                    .LVL21:
 310                            .loc 1 1157 18 view .LVU62
 311 0082 8046                  mov     r8, r0
 312 0084 8946                  mov     r9, r1
 313                            .loc 1 1157 29 view .LVU63
 314 0086 B4F90400              ldrsh   r0, [r4, #4]
 315 008a FFF7FEFF              bl      __aeabi_i2d
 316                    .LVL22:
 317                            .loc 1 1157 10 view .LVU64
 318 008e 0246                  mov     r2, r0
 319 0090 0B46                  mov     r3, r1
 320 0092 4046                  mov     r0, r8
 321 0094 4946                  mov     r1, r9
 322 0096 FFF7FEFF              bl      __aeabi_dmul
 323                    .LVL23:
1158:../libBME280/src/bme280.c ****     calib_data->t_fine = (int32_t)(var1 + var2);
 324                            .loc 1 1158 5 is_stmt 1 view .LVU65
 325                            .loc 1 1158 41 is_stmt 0 view .LVU66
 326 009a 0246                  mov     r2, r0
 327 009c 0B46                  mov     r3, r1
 328 009e 3046                  mov     r0, r6
 329                    .LVL24:
 330                            .loc 1 1158 41 view .LVU67
 331 00a0 3946                  mov     r1, r7
 332 00a2 FFF7FEFF              bl      __aeabi_dadd
 333                    .LVL25:
 334 00a6 0646                  mov     r6, r0
 335                    .LVL26:
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 27


 336                            .loc 1 1158 41 view .LVU68
 337 00a8 0F46                  mov     r7, r1
 338                            .loc 1 1158 26 view .LVU69
 339 00aa FFF7FEFF              bl      __aeabi_d2iz
 340                    .LVL27:
 341                            .loc 1 1158 24 view .LVU70
 342 00ae 6062                  str     r0, [r4, #36]
1159:../libBME280/src/bme280.c ****     temperature = (var1 + var2) / 5120.0;
 343                            .loc 1 1159 5 is_stmt 1 view .LVU71
 344                            .loc 1 1159 17 is_stmt 0 view .LVU72
 345 00b0 0022                  movs    r2, #0
 346 00b2 124B                  ldr     r3, .L11+16
 347 00b4 3046                  mov     r0, r6
 348 00b6 3946                  mov     r1, r7
 349 00b8 FFF7FEFF              bl      __aeabi_ddiv
 350                    .LVL28:
 351 00bc 0446                  mov     r4, r0
 352                    .LVL29:
 353                            .loc 1 1159 17 view .LVU73
 354 00be 0D46                  mov     r5, r1
 355                    .LVL30:
1160:../libBME280/src/bme280.c **** 
1161:../libBME280/src/bme280.c ****     if (temperature < temperature_min)
 356                            .loc 1 1161 5 is_stmt 1 view .LVU74
 357                            .loc 1 1161 8 is_stmt 0 view .LVU75
 358 00c0 0022                  movs    r2, #0
 359 00c2 0F4B                  ldr     r3, .L11+20
 360 00c4 FFF7FEFF              bl      __aeabi_dcmplt
 361                    .LVL31:
 362 00c8 48B9                  cbnz    r0, .L8
1162:../libBME280/src/bme280.c ****     {
1163:../libBME280/src/bme280.c ****         temperature = temperature_min;
1164:../libBME280/src/bme280.c ****     }
1165:../libBME280/src/bme280.c ****     else if (temperature > temperature_max)
 363                            .loc 1 1165 10 is_stmt 1 view .LVU76
 364                            .loc 1 1165 13 is_stmt 0 view .LVU77
 365 00ca 0022                  movs    r2, #0
 366 00cc 0D4B                  ldr     r3, .L11+24
 367 00ce 2046                  mov     r0, r4
 368 00d0 2946                  mov     r1, r5
 369 00d2 FFF7FEFF              bl      __aeabi_dcmpgt
 370                    .LVL32:
 371 00d6 20B1                  cbz     r0, .L6
1166:../libBME280/src/bme280.c ****     {
1167:../libBME280/src/bme280.c ****         temperature = temperature_max;
 372                            .loc 1 1167 21 view .LVU78
 373 00d8 0024                  movs    r4, #0
 374                    .LVL33:
 375                            .loc 1 1167 21 view .LVU79
 376 00da 0A4D                  ldr     r5, .L11+24
 377                    .LVL34:
1168:../libBME280/src/bme280.c ****     }
1169:../libBME280/src/bme280.c **** 
1170:../libBME280/src/bme280.c ****     return temperature;
 378                            .loc 1 1170 5 is_stmt 1 view .LVU80
 379                            .loc 1 1170 12 is_stmt 0 view .LVU81
 380 00dc 01E0                  b       .L6
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 28


 381                    .LVL35:
 382                    .L8:
1163:../libBME280/src/bme280.c ****     }
 383                            .loc 1 1163 21 view .LVU82
 384 00de 0024                  movs    r4, #0
 385                    .LVL36:
1163:../libBME280/src/bme280.c ****     }
 386                            .loc 1 1163 21 view .LVU83
 387 00e0 074D                  ldr     r5, .L11+20
 388                    .L6:
1171:../libBME280/src/bme280.c **** }
 389                            .loc 1 1171 1 view .LVU84
 390 00e2 2046                  mov     r0, r4
 391 00e4 2946                  mov     r1, r5
 392 00e6 BDE8F88F              pop     {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
 393                    .L12:
 394 00ea 00BF                  .align  2
 395                    .L11:
 396 00ec 0000103F              .word   1058013184
 397 00f0 0000503F              .word   1062207488
 398 00f4 0000E03E              .word   1054867456
 399 00f8 0000203F              .word   1059061760
 400 00fc 0000B440              .word   1085538304
 401 0100 000044C0              .word   -1069285376
 402 0104 00405540              .word   1079328768
 403                            .cfi_endproc
 404                    .LFE24:
 406                            .section        .text.compensate_pressure,"ax",%progbits
 407                            .align  1
 408                            .syntax unified
 409                            .thumb
 410                            .thumb_func
 411                            .fpu softvfp
 413                    compensate_pressure:
 414                    .LVL37:
 415                    .LFB25:
1172:../libBME280/src/bme280.c **** 
1173:../libBME280/src/bme280.c **** /*!
1174:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw pressure data and
1175:../libBME280/src/bme280.c ****  * return the compensated pressure data in double data type.
1176:../libBME280/src/bme280.c ****  */
1177:../libBME280/src/bme280.c **** static double compensate_pressure(const struct bme280_uncomp_data *uncomp_data,
1178:../libBME280/src/bme280.c ****                                   const struct bme280_calib_data *calib_data)
1179:../libBME280/src/bme280.c **** {
 416                            .loc 1 1179 1 is_stmt 1 view -0
 417                            .cfi_startproc
 418                            @ args = 0, pretend = 0, frame = 0
 419                            @ frame_needed = 0, uses_anonymous_args = 0
 420                            .loc 1 1179 1 is_stmt 0 view .LVU86
 421 0000 2DE9F84F              push    {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
 422                    .LCFI1:
 423                            .cfi_def_cfa_offset 40
 424                            .cfi_offset 3, -40
 425                            .cfi_offset 4, -36
 426                            .cfi_offset 5, -32
 427                            .cfi_offset 6, -28
 428                            .cfi_offset 7, -24
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 29


 429                            .cfi_offset 8, -20
 430                            .cfi_offset 9, -16
 431                            .cfi_offset 10, -12
 432                            .cfi_offset 11, -8
 433                            .cfi_offset 14, -4
 434 0004 0546                  mov     r5, r0
 435 0006 0C46                  mov     r4, r1
1180:../libBME280/src/bme280.c ****     double var1;
 436                            .loc 1 1180 5 is_stmt 1 view .LVU87
1181:../libBME280/src/bme280.c ****     double var2;
 437                            .loc 1 1181 5 view .LVU88
1182:../libBME280/src/bme280.c ****     double var3;
 438                            .loc 1 1182 5 view .LVU89
1183:../libBME280/src/bme280.c ****     double pressure;
 439                            .loc 1 1183 5 view .LVU90
1184:../libBME280/src/bme280.c ****     double pressure_min = 30000.0;
 440                            .loc 1 1184 5 view .LVU91
 441                    .LVL38:
1185:../libBME280/src/bme280.c ****     double pressure_max = 110000.0;
 442                            .loc 1 1185 5 view .LVU92
1186:../libBME280/src/bme280.c **** 
1187:../libBME280/src/bme280.c ****     var1 = ((double)calib_data->t_fine / 2.0) - 64000.0;
 443                            .loc 1 1187 5 view .LVU93
 444                            .loc 1 1187 13 is_stmt 0 view .LVU94
 445 0008 486A                  ldr     r0, [r1, #36]
 446                    .LVL39:
 447                            .loc 1 1187 13 view .LVU95
 448 000a FFF7FEFF              bl      __aeabi_i2d
 449                    .LVL40:
 450                            .loc 1 1187 40 view .LVU96
 451 000e 0022                  movs    r2, #0
 452 0010 874B                  ldr     r3, .L22+24
 453 0012 FFF7FEFF              bl      __aeabi_dmul
 454                    .LVL41:
 455                            .loc 1 1187 10 view .LVU97
 456 0016 0022                  movs    r2, #0
 457 0018 864B                  ldr     r3, .L22+28
 458 001a FFF7FEFF              bl      __aeabi_dsub
 459                    .LVL42:
 460 001e 0646                  mov     r6, r0
 461 0020 0F46                  mov     r7, r1
 462                    .LVL43:
1188:../libBME280/src/bme280.c ****     var2 = var1 * var1 * ((double)calib_data->dig_p6) / 32768.0;
 463                            .loc 1 1188 5 is_stmt 1 view .LVU98
 464                            .loc 1 1188 17 is_stmt 0 view .LVU99
 465 0022 0246                  mov     r2, r0
 466 0024 0B46                  mov     r3, r1
 467 0026 FFF7FEFF              bl      __aeabi_dmul
 468                    .LVL44:
 469 002a 8046                  mov     r8, r0
 470 002c 8946                  mov     r9, r1
 471                            .loc 1 1188 27 view .LVU100
 472 002e B4F91000              ldrsh   r0, [r4, #16]
 473 0032 FFF7FEFF              bl      __aeabi_i2d
 474                    .LVL45:
 475                            .loc 1 1188 24 view .LVU101
 476 0036 0246                  mov     r2, r0
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 30


 477 0038 0B46                  mov     r3, r1
 478 003a 4046                  mov     r0, r8
 479 003c 4946                  mov     r1, r9
 480 003e FFF7FEFF              bl      __aeabi_dmul
 481                    .LVL46:
 482                            .loc 1 1188 10 view .LVU102
 483 0042 0022                  movs    r2, #0
 484 0044 4FF07C53              mov     r3, #1056964608
 485 0048 FFF7FEFF              bl      __aeabi_dmul
 486                    .LVL47:
 487 004c 8046                  mov     r8, r0
 488 004e 8946                  mov     r9, r1
 489                    .LVL48:
1189:../libBME280/src/bme280.c ****     var2 = var2 + var1 * ((double)calib_data->dig_p5) * 2.0;
 490                            .loc 1 1189 5 is_stmt 1 view .LVU103
 491                            .loc 1 1189 27 is_stmt 0 view .LVU104
 492 0050 B4F90E00              ldrsh   r0, [r4, #14]
 493 0054 FFF7FEFF              bl      __aeabi_i2d
 494                    .LVL49:
 495                            .loc 1 1189 24 view .LVU105
 496 0058 3246                  mov     r2, r6
 497 005a 3B46                  mov     r3, r7
 498 005c FFF7FEFF              bl      __aeabi_dmul
 499                    .LVL50:
 500                            .loc 1 1189 55 view .LVU106
 501 0060 0246                  mov     r2, r0
 502 0062 0B46                  mov     r3, r1
 503 0064 FFF7FEFF              bl      __aeabi_dadd
 504                    .LVL51:
 505                            .loc 1 1189 10 view .LVU107
 506 0068 4246                  mov     r2, r8
 507 006a 4B46                  mov     r3, r9
 508 006c FFF7FEFF              bl      __aeabi_dadd
 509                    .LVL52:
1190:../libBME280/src/bme280.c ****     var2 = (var2 / 4.0) + (((double)calib_data->dig_p4) * 65536.0);
 510                            .loc 1 1190 5 is_stmt 1 view .LVU108
 511                            .loc 1 1190 18 is_stmt 0 view .LVU109
 512 0070 0022                  movs    r2, #0
 513 0072 714B                  ldr     r3, .L22+32
 514 0074 FFF7FEFF              bl      __aeabi_dmul
 515                    .LVL53:
 516                            .loc 1 1190 18 view .LVU110
 517 0078 8046                  mov     r8, r0
 518 007a 8946                  mov     r9, r1
 519                            .loc 1 1190 29 view .LVU111
 520 007c B4F90C00              ldrsh   r0, [r4, #12]
 521 0080 FFF7FEFF              bl      __aeabi_i2d
 522                    .LVL54:
 523                            .loc 1 1190 57 view .LVU112
 524 0084 0022                  movs    r2, #0
 525 0086 6D4B                  ldr     r3, .L22+36
 526 0088 FFF7FEFF              bl      __aeabi_dmul
 527                    .LVL55:
 528                            .loc 1 1190 10 view .LVU113
 529 008c 0246                  mov     r2, r0
 530 008e 0B46                  mov     r3, r1
 531 0090 4046                  mov     r0, r8
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 31


 532 0092 4946                  mov     r1, r9
 533 0094 FFF7FEFF              bl      __aeabi_dadd
 534                    .LVL56:
 535 0098 8046                  mov     r8, r0
 536 009a 8946                  mov     r9, r1
 537                    .LVL57:
1191:../libBME280/src/bme280.c ****     var3 = ((double)calib_data->dig_p3) * var1 * var1 / 524288.0;
 538                            .loc 1 1191 5 is_stmt 1 view .LVU114
 539                            .loc 1 1191 13 is_stmt 0 view .LVU115
 540 009c B4F90A00              ldrsh   r0, [r4, #10]
 541 00a0 FFF7FEFF              bl      __aeabi_i2d
 542                    .LVL58:
 543                            .loc 1 1191 41 view .LVU116
 544 00a4 3246                  mov     r2, r6
 545 00a6 3B46                  mov     r3, r7
 546 00a8 FFF7FEFF              bl      __aeabi_dmul
 547                    .LVL59:
 548                            .loc 1 1191 48 view .LVU117
 549 00ac 3246                  mov     r2, r6
 550 00ae 3B46                  mov     r3, r7
 551 00b0 FFF7FEFF              bl      __aeabi_dmul
 552                    .LVL60:
 553                            .loc 1 1191 10 view .LVU118
 554 00b4 0022                  movs    r2, #0
 555 00b6 4FF07B53              mov     r3, #1052770304
 556 00ba FFF7FEFF              bl      __aeabi_dmul
 557                    .LVL61:
 558 00be 8246                  mov     r10, r0
 559 00c0 8B46                  mov     fp, r1
 560                    .LVL62:
1192:../libBME280/src/bme280.c ****     var1 = (var3 + ((double)calib_data->dig_p2) * var1) / 524288.0;
 561                            .loc 1 1192 5 is_stmt 1 view .LVU119
 562                            .loc 1 1192 21 is_stmt 0 view .LVU120
 563 00c2 B4F90800              ldrsh   r0, [r4, #8]
 564 00c6 FFF7FEFF              bl      __aeabi_i2d
 565                    .LVL63:
 566                            .loc 1 1192 49 view .LVU121
 567 00ca 3246                  mov     r2, r6
 568 00cc 3B46                  mov     r3, r7
 569 00ce FFF7FEFF              bl      __aeabi_dmul
 570                    .LVL64:
 571                            .loc 1 1192 18 view .LVU122
 572 00d2 5246                  mov     r2, r10
 573 00d4 5B46                  mov     r3, fp
 574 00d6 FFF7FEFF              bl      __aeabi_dadd
 575                    .LVL65:
 576                            .loc 1 1192 10 view .LVU123
 577 00da 0022                  movs    r2, #0
 578 00dc 4FF07B53              mov     r3, #1052770304
 579 00e0 FFF7FEFF              bl      __aeabi_dmul
 580                    .LVL66:
1193:../libBME280/src/bme280.c ****     var1 = (1.0 + var1 / 32768.0) * ((double)calib_data->dig_p1);
 581                            .loc 1 1193 5 is_stmt 1 view .LVU124
 582                            .loc 1 1193 24 is_stmt 0 view .LVU125
 583 00e4 0022                  movs    r2, #0
 584 00e6 4FF07C53              mov     r3, #1056964608
 585 00ea FFF7FEFF              bl      __aeabi_dmul
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 32


 586                    .LVL67:
 587                            .loc 1 1193 17 view .LVU126
 588 00ee 0022                  movs    r2, #0
 589 00f0 534B                  ldr     r3, .L22+40
 590 00f2 FFF7FEFF              bl      __aeabi_dadd
 591                    .LVL68:
 592 00f6 0646                  mov     r6, r0
 593 00f8 0F46                  mov     r7, r1
 594                            .loc 1 1193 38 view .LVU127
 595 00fa E088                  ldrh    r0, [r4, #6]
 596 00fc FFF7FEFF              bl      __aeabi_ui2d
 597                    .LVL69:
 598                            .loc 1 1193 10 view .LVU128
 599 0100 0246                  mov     r2, r0
 600 0102 0B46                  mov     r3, r1
 601 0104 3046                  mov     r0, r6
 602 0106 3946                  mov     r1, r7
 603 0108 FFF7FEFF              bl      __aeabi_dmul
 604                    .LVL70:
 605 010c 8246                  mov     r10, r0
 606                    .LVL71:
 607                            .loc 1 1193 10 view .LVU129
 608 010e 8B46                  mov     fp, r1
 609                    .LVL72:
1194:../libBME280/src/bme280.c **** 
1195:../libBME280/src/bme280.c ****     /* avoid exception caused by division by zero */
1196:../libBME280/src/bme280.c ****     if (var1 > (0.0))
 610                            .loc 1 1196 5 is_stmt 1 view .LVU130
 611                            .loc 1 1196 8 is_stmt 0 view .LVU131
 612 0110 0022                  movs    r2, #0
 613 0112 0023                  movs    r3, #0
 614 0114 FFF7FEFF              bl      __aeabi_dcmpgt
 615                    .LVL73:
 616 0118 0028                  cmp     r0, #0
 617 011a 6FD0                  beq     .L20
1197:../libBME280/src/bme280.c ****     {
1198:../libBME280/src/bme280.c ****         pressure = 1048576.0 - (double) uncomp_data->pressure;
 618                            .loc 1 1198 9 is_stmt 1 view .LVU132
 619                            .loc 1 1198 32 is_stmt 0 view .LVU133
 620 011c 2868                  ldr     r0, [r5]
 621 011e FFF7FEFF              bl      __aeabi_ui2d
 622                    .LVL74:
 623                            .loc 1 1198 18 view .LVU134
 624 0122 0246                  mov     r2, r0
 625 0124 0B46                  mov     r3, r1
 626 0126 0020                  movs    r0, #0
 627 0128 4649                  ldr     r1, .L22+44
 628 012a FFF7FEFF              bl      __aeabi_dsub
 629                    .LVL75:
 630 012e 0646                  mov     r6, r0
 631 0130 0F46                  mov     r7, r1
 632                    .LVL76:
1199:../libBME280/src/bme280.c ****         pressure = (pressure - (var2 / 4096.0)) * 6250.0 / var1;
 633                            .loc 1 1199 9 is_stmt 1 view .LVU135
 634                            .loc 1 1199 38 is_stmt 0 view .LVU136
 635 0132 0022                  movs    r2, #0
 636 0134 444B                  ldr     r3, .L22+48
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 33


 637 0136 4046                  mov     r0, r8
 638 0138 4946                  mov     r1, r9
 639 013a FFF7FEFF              bl      __aeabi_dmul
 640                    .LVL77:
 641                            .loc 1 1199 30 view .LVU137
 642 013e 0246                  mov     r2, r0
 643 0140 0B46                  mov     r3, r1
 644 0142 3046                  mov     r0, r6
 645 0144 3946                  mov     r1, r7
 646 0146 FFF7FEFF              bl      __aeabi_dsub
 647                    .LVL78:
 648                            .loc 1 1199 49 view .LVU138
 649 014a 33A3                  adr     r3, .L22
 650 014c D3E90023              ldrd    r2, [r3]
 651 0150 FFF7FEFF              bl      __aeabi_dmul
 652                    .LVL79:
 653                            .loc 1 1199 18 view .LVU139
 654 0154 5246                  mov     r2, r10
 655 0156 5B46                  mov     r3, fp
 656 0158 FFF7FEFF              bl      __aeabi_ddiv
 657                    .LVL80:
 658 015c 0646                  mov     r6, r0
 659                    .LVL81:
 660                            .loc 1 1199 18 view .LVU140
 661 015e 0F46                  mov     r7, r1
 662                    .LVL82:
1200:../libBME280/src/bme280.c ****         var1 = ((double)calib_data->dig_p9) * pressure * pressure / 2147483648.0;
 663                            .loc 1 1200 9 is_stmt 1 view .LVU141
 664                            .loc 1 1200 17 is_stmt 0 view .LVU142
 665 0160 B4F91600              ldrsh   r0, [r4, #22]
 666 0164 FFF7FEFF              bl      __aeabi_i2d
 667                    .LVL83:
 668                            .loc 1 1200 45 view .LVU143
 669 0168 3246                  mov     r2, r6
 670 016a 3B46                  mov     r3, r7
 671 016c FFF7FEFF              bl      __aeabi_dmul
 672                    .LVL84:
 673                            .loc 1 1200 56 view .LVU144
 674 0170 3246                  mov     r2, r6
 675 0172 3B46                  mov     r3, r7
 676 0174 FFF7FEFF              bl      __aeabi_dmul
 677                    .LVL85:
 678                            .loc 1 1200 14 view .LVU145
 679 0178 0022                  movs    r2, #0
 680 017a 4FF07853              mov     r3, #1040187392
 681 017e FFF7FEFF              bl      __aeabi_dmul
 682                    .LVL86:
 683 0182 8046                  mov     r8, r0
 684                    .LVL87:
 685                            .loc 1 1200 14 view .LVU146
 686 0184 8946                  mov     r9, r1
 687                    .LVL88:
1201:../libBME280/src/bme280.c ****         var2 = pressure * ((double)calib_data->dig_p8) / 32768.0;
 688                            .loc 1 1201 9 is_stmt 1 view .LVU147
 689                            .loc 1 1201 28 is_stmt 0 view .LVU148
 690 0186 B4F91400              ldrsh   r0, [r4, #20]
 691 018a FFF7FEFF              bl      __aeabi_i2d
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 34


 692                    .LVL89:
 693                            .loc 1 1201 25 view .LVU149
 694 018e 3246                  mov     r2, r6
 695 0190 3B46                  mov     r3, r7
 696 0192 FFF7FEFF              bl      __aeabi_dmul
 697                    .LVL90:
 698                            .loc 1 1201 14 view .LVU150
 699 0196 0022                  movs    r2, #0
 700 0198 4FF07C53              mov     r3, #1056964608
 701 019c FFF7FEFF              bl      __aeabi_dmul
 702                    .LVL91:
1202:../libBME280/src/bme280.c ****         pressure = pressure + (var1 + var2 + ((double)calib_data->dig_p7)) / 16.0;
 703                            .loc 1 1202 9 is_stmt 1 view .LVU151
 704                            .loc 1 1202 37 is_stmt 0 view .LVU152
 705 01a0 0246                  mov     r2, r0
 706 01a2 0B46                  mov     r3, r1
 707 01a4 4046                  mov     r0, r8
 708                    .LVL92:
 709                            .loc 1 1202 37 view .LVU153
 710 01a6 4946                  mov     r1, r9
 711 01a8 FFF7FEFF              bl      __aeabi_dadd
 712                    .LVL93:
 713 01ac 8046                  mov     r8, r0
 714                    .LVL94:
 715                            .loc 1 1202 37 view .LVU154
 716 01ae 8946                  mov     r9, r1
 717                            .loc 1 1202 47 view .LVU155
 718 01b0 B4F91200              ldrsh   r0, [r4, #18]
 719 01b4 FFF7FEFF              bl      __aeabi_i2d
 720                    .LVL95:
 721                            .loc 1 1202 44 view .LVU156
 722 01b8 0246                  mov     r2, r0
 723 01ba 0B46                  mov     r3, r1
 724 01bc 4046                  mov     r0, r8
 725 01be 4946                  mov     r1, r9
 726 01c0 FFF7FEFF              bl      __aeabi_dadd
 727                    .LVL96:
 728                            .loc 1 1202 76 view .LVU157
 729 01c4 0022                  movs    r2, #0
 730 01c6 214B                  ldr     r3, .L22+52
 731 01c8 FFF7FEFF              bl      __aeabi_dmul
 732                    .LVL97:
 733                            .loc 1 1202 18 view .LVU158
 734 01cc 3246                  mov     r2, r6
 735 01ce 3B46                  mov     r3, r7
 736 01d0 FFF7FEFF              bl      __aeabi_dadd
 737                    .LVL98:
 738 01d4 0446                  mov     r4, r0
 739                    .LVL99:
 740                            .loc 1 1202 18 view .LVU159
 741 01d6 0D46                  mov     r5, r1
 742                    .LVL100:
1203:../libBME280/src/bme280.c **** 
1204:../libBME280/src/bme280.c ****         if (pressure < pressure_min)
 743                            .loc 1 1204 9 is_stmt 1 view .LVU160
 744                            .loc 1 1204 12 is_stmt 0 view .LVU161
 745 01d8 11A3                  adr     r3, .L22+8
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 35


 746 01da D3E90023              ldrd    r2, [r3]
 747 01de FFF7FEFF              bl      __aeabi_dcmplt
 748                    .LVL101:
 749 01e2 90B9                  cbnz    r0, .L17
1205:../libBME280/src/bme280.c ****         {
1206:../libBME280/src/bme280.c ****             pressure = pressure_min;
1207:../libBME280/src/bme280.c ****         }
1208:../libBME280/src/bme280.c ****         else if (pressure > pressure_max)
 750                            .loc 1 1208 14 is_stmt 1 view .LVU162
 751                            .loc 1 1208 17 is_stmt 0 view .LVU163
 752 01e4 10A3                  adr     r3, .L22+16
 753 01e6 D3E90023              ldrd    r2, [r3]
 754 01ea 2046                  mov     r0, r4
 755 01ec 2946                  mov     r1, r5
 756 01ee FFF7FEFF              bl      __aeabi_dcmpgt
 757                    .LVL102:
 758 01f2 30B1                  cbz     r0, .L13
1209:../libBME280/src/bme280.c ****         {
1210:../libBME280/src/bme280.c ****             pressure = pressure_max;
 759                            .loc 1 1210 22 view .LVU164
 760 01f4 0CA5                  adr     r5, .L22+16
 761 01f6 D5E90045              ldrd    r4, [r5]
 762                    .LVL103:
1211:../libBME280/src/bme280.c ****         }
1212:../libBME280/src/bme280.c ****     }
1213:../libBME280/src/bme280.c ****     else /* Invalid case */
1214:../libBME280/src/bme280.c ****     {
1215:../libBME280/src/bme280.c ****         pressure = pressure_min;
1216:../libBME280/src/bme280.c ****     }
1217:../libBME280/src/bme280.c **** 
1218:../libBME280/src/bme280.c ****     return pressure;
 763                            .loc 1 1218 5 is_stmt 1 view .LVU165
 764                            .loc 1 1218 12 is_stmt 0 view .LVU166
 765 01fa 02E0                  b       .L13
 766                    .LVL104:
 767                    .L20:
1215:../libBME280/src/bme280.c ****     }
 768                            .loc 1 1215 18 view .LVU167
 769 01fc 08A5                  adr     r5, .L22+8
 770 01fe D5E90045              ldrd    r4, [r5]
 771                    .LVL105:
 772                    .L13:
1219:../libBME280/src/bme280.c **** }
 773                            .loc 1 1219 1 view .LVU168
 774 0202 2046                  mov     r0, r4
 775 0204 2946                  mov     r1, r5
 776 0206 BDE8F88F              pop     {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
 777                    .LVL106:
 778                    .L17:
1206:../libBME280/src/bme280.c ****         }
 779                            .loc 1 1206 22 view .LVU169
 780 020a 05A5                  adr     r5, .L22+8
 781 020c D5E90045              ldrd    r4, [r5]
 782                    .LVL107:
1206:../libBME280/src/bme280.c ****         }
 783                            .loc 1 1206 22 view .LVU170
 784 0210 F7E7                  b       .L13
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 36


 785                    .L23:
 786 0212 00BFAFF3              .align  3
 786      0080
 787                    .L22:
 788 0218 00000000              .word   0
 789 021c 006AB840              .word   1085827584
 790 0220 00000000              .word   0
 791 0224 004CDD40              .word   1088244736
 792 0228 00000000              .word   0
 793 022c 00DBFA40              .word   1090181888
 794 0230 0000E03F              .word   1071644672
 795 0234 0040EF40              .word   1089421312
 796 0238 0000D03F              .word   1070596096
 797 023c 0000F040              .word   1089470464
 798 0240 0000F03F              .word   1072693248
 799 0244 00003041              .word   1093664768
 800 0248 0000303F              .word   1060110336
 801 024c 0000B03F              .word   1068498944
 802                            .cfi_endproc
 803                    .LFE25:
 805                            .section        .text.compensate_humidity,"ax",%progbits
 806                            .align  1
 807                            .syntax unified
 808                            .thumb
 809                            .thumb_func
 810                            .fpu softvfp
 812                    compensate_humidity:
 813                    .LVL108:
 814                    .LFB26:
1220:../libBME280/src/bme280.c **** 
1221:../libBME280/src/bme280.c **** /*!
1222:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw humidity data and
1223:../libBME280/src/bme280.c ****  * return the compensated humidity data in double data type.
1224:../libBME280/src/bme280.c ****  */
1225:../libBME280/src/bme280.c **** static double compensate_humidity(const struct bme280_uncomp_data *uncomp_data,
1226:../libBME280/src/bme280.c ****                                   const struct bme280_calib_data *calib_data)
1227:../libBME280/src/bme280.c **** {
 815                            .loc 1 1227 1 is_stmt 1 view -0
 816                            .cfi_startproc
 817                            @ args = 0, pretend = 0, frame = 16
 818                            @ frame_needed = 0, uses_anonymous_args = 0
 819                            .loc 1 1227 1 is_stmt 0 view .LVU172
 820 0000 2DE9F047              push    {r4, r5, r6, r7, r8, r9, r10, lr}
 821                    .LCFI2:
 822                            .cfi_def_cfa_offset 32
 823                            .cfi_offset 4, -32
 824                            .cfi_offset 5, -28
 825                            .cfi_offset 6, -24
 826                            .cfi_offset 7, -20
 827                            .cfi_offset 8, -16
 828                            .cfi_offset 9, -12
 829                            .cfi_offset 10, -8
 830                            .cfi_offset 14, -4
 831 0004 84B0                  sub     sp, sp, #16
 832                    .LCFI3:
 833                            .cfi_def_cfa_offset 48
 834 0006 8046                  mov     r8, r0
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 37


 835 0008 8A46                  mov     r10, r1
1228:../libBME280/src/bme280.c ****     double humidity;
 836                            .loc 1 1228 5 is_stmt 1 view .LVU173
1229:../libBME280/src/bme280.c ****     double humidity_min = 0.0;
 837                            .loc 1 1229 5 view .LVU174
 838                    .LVL109:
1230:../libBME280/src/bme280.c ****     double humidity_max = 100.0;
 839                            .loc 1 1230 5 view .LVU175
1231:../libBME280/src/bme280.c ****     double var1;
 840                            .loc 1 1231 5 view .LVU176
1232:../libBME280/src/bme280.c ****     double var2;
 841                            .loc 1 1232 5 view .LVU177
1233:../libBME280/src/bme280.c ****     double var3;
 842                            .loc 1 1233 5 view .LVU178
1234:../libBME280/src/bme280.c ****     double var4;
 843                            .loc 1 1234 5 view .LVU179
1235:../libBME280/src/bme280.c ****     double var5;
 844                            .loc 1 1235 5 view .LVU180
1236:../libBME280/src/bme280.c ****     double var6;
 845                            .loc 1 1236 5 view .LVU181
1237:../libBME280/src/bme280.c **** 
1238:../libBME280/src/bme280.c ****     var1 = ((double)calib_data->t_fine) - 76800.0;
 846                            .loc 1 1238 5 view .LVU182
 847                            .loc 1 1238 13 is_stmt 0 view .LVU183
 848 000a 486A                  ldr     r0, [r1, #36]
 849                    .LVL110:
 850                            .loc 1 1238 13 view .LVU184
 851 000c FFF7FEFF              bl      __aeabi_i2d
 852                    .LVL111:
 853                            .loc 1 1238 10 view .LVU185
 854 0010 0022                  movs    r2, #0
 855 0012 524B                  ldr     r3, .L29
 856 0014 FFF7FEFF              bl      __aeabi_dsub
 857                    .LVL112:
 858 0018 0646                  mov     r6, r0
 859 001a 0F46                  mov     r7, r1
 860                    .LVL113:
1239:../libBME280/src/bme280.c ****     var2 = (((double)calib_data->dig_h4) * 64.0 + (((double)calib_data->dig_h5) / 16384.0) * var1);
 861                            .loc 1 1239 5 is_stmt 1 view .LVU186
 862                            .loc 1 1239 14 is_stmt 0 view .LVU187
 863 001c BAF91E00              ldrsh   r0, [r10, #30]
 864 0020 FFF7FEFF              bl      __aeabi_i2d
 865                    .LVL114:
 866                            .loc 1 1239 42 view .LVU188
 867 0024 0022                  movs    r2, #0
 868 0026 4E4B                  ldr     r3, .L29+4
 869 0028 FFF7FEFF              bl      __aeabi_dmul
 870                    .LVL115:
 871 002c 0446                  mov     r4, r0
 872 002e 0D46                  mov     r5, r1
 873                            .loc 1 1239 53 view .LVU189
 874 0030 BAF92000              ldrsh   r0, [r10, #32]
 875 0034 FFF7FEFF              bl      __aeabi_i2d
 876                    .LVL116:
 877                            .loc 1 1239 81 view .LVU190
 878 0038 0022                  movs    r2, #0
 879 003a 4A4B                  ldr     r3, .L29+8
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 38


 880 003c FFF7FEFF              bl      __aeabi_dmul
 881                    .LVL117:
 882                            .loc 1 1239 92 view .LVU191
 883 0040 3246                  mov     r2, r6
 884 0042 3B46                  mov     r3, r7
 885 0044 FFF7FEFF              bl      __aeabi_dmul
 886                    .LVL118:
 887                            .loc 1 1239 10 view .LVU192
 888 0048 0246                  mov     r2, r0
 889 004a 0B46                  mov     r3, r1
 890 004c 2046                  mov     r0, r4
 891 004e 2946                  mov     r1, r5
 892 0050 FFF7FEFF              bl      __aeabi_dadd
 893                    .LVL119:
 894 0054 0446                  mov     r4, r0
 895 0056 0D46                  mov     r5, r1
 896                    .LVL120:
1240:../libBME280/src/bme280.c ****     var3 = uncomp_data->humidity - var2;
 897                            .loc 1 1240 5 is_stmt 1 view .LVU193
 898                            .loc 1 1240 34 is_stmt 0 view .LVU194
 899 0058 D8F80800              ldr     r0, [r8, #8]
 900 005c FFF7FEFF              bl      __aeabi_ui2d
 901                    .LVL121:
 902                            .loc 1 1240 10 view .LVU195
 903 0060 2246                  mov     r2, r4
 904 0062 2B46                  mov     r3, r5
 905 0064 FFF7FEFF              bl      __aeabi_dsub
 906                    .LVL122:
 907 0068 CDE90001              strd    r0, [sp]
 908                    .LVL123:
1241:../libBME280/src/bme280.c ****     var4 = ((double)calib_data->dig_h2) / 65536.0;
 909                            .loc 1 1241 5 is_stmt 1 view .LVU196
 910                            .loc 1 1241 13 is_stmt 0 view .LVU197
 911 006c BAF91A00              ldrsh   r0, [r10, #26]
 912                    .LVL124:
 913                            .loc 1 1241 13 view .LVU198
 914 0070 FFF7FEFF              bl      __aeabi_i2d
 915                    .LVL125:
 916                            .loc 1 1241 10 view .LVU199
 917 0074 0022                  movs    r2, #0
 918 0076 3C4B                  ldr     r3, .L29+12
 919 0078 FFF7FEFF              bl      __aeabi_dmul
 920                    .LVL126:
 921 007c CDE90201              strd    r0, [sp, #8]
 922                    .LVL127:
1242:../libBME280/src/bme280.c ****     var5 = (1.0 + (((double)calib_data->dig_h3) / 67108864.0) * var1);
 923                            .loc 1 1242 5 is_stmt 1 view .LVU200
 924                            .loc 1 1242 21 is_stmt 0 view .LVU201
 925 0080 9AF81C00              ldrb    r0, [r10, #28]  @ zero_extendqisi2
 926                    .LVL128:
 927                            .loc 1 1242 21 view .LVU202
 928 0084 FFF7FEFF              bl      __aeabi_ui2d
 929                    .LVL129:
 930                            .loc 1 1242 49 view .LVU203
 931 0088 0022                  movs    r2, #0
 932 008a 384B                  ldr     r3, .L29+16
 933 008c FFF7FEFF              bl      __aeabi_dmul
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 39


 934                    .LVL130:
 935                            .loc 1 1242 63 view .LVU204
 936 0090 3246                  mov     r2, r6
 937 0092 3B46                  mov     r3, r7
 938 0094 FFF7FEFF              bl      __aeabi_dmul
 939                    .LVL131:
 940                            .loc 1 1242 10 view .LVU205
 941 0098 0022                  movs    r2, #0
 942 009a 354B                  ldr     r3, .L29+20
 943 009c FFF7FEFF              bl      __aeabi_dadd
 944                    .LVL132:
 945 00a0 0446                  mov     r4, r0
 946                    .LVL133:
 947                            .loc 1 1242 10 view .LVU206
 948 00a2 0D46                  mov     r5, r1
 949                    .LVL134:
1243:../libBME280/src/bme280.c ****     var6 = 1.0 + (((double)calib_data->dig_h6) / 67108864.0) * var1 * var5;
 950                            .loc 1 1243 5 is_stmt 1 view .LVU207
 951                            .loc 1 1243 20 is_stmt 0 view .LVU208
 952 00a4 9AF92200              ldrsb   r0, [r10, #34]
 953 00a8 FFF7FEFF              bl      __aeabi_i2d
 954                    .LVL135:
 955                            .loc 1 1243 48 view .LVU209
 956 00ac 0022                  movs    r2, #0
 957 00ae 2F4B                  ldr     r3, .L29+16
 958 00b0 FFF7FEFF              bl      __aeabi_dmul
 959                    .LVL136:
 960                            .loc 1 1243 62 view .LVU210
 961 00b4 3246                  mov     r2, r6
 962 00b6 3B46                  mov     r3, r7
 963 00b8 FFF7FEFF              bl      __aeabi_dmul
 964                    .LVL137:
 965                            .loc 1 1243 69 view .LVU211
 966 00bc 2246                  mov     r2, r4
 967 00be 2B46                  mov     r3, r5
 968 00c0 FFF7FEFF              bl      __aeabi_dmul
 969                    .LVL138:
 970                            .loc 1 1243 10 view .LVU212
 971 00c4 0022                  movs    r2, #0
 972 00c6 2A4B                  ldr     r3, .L29+20
 973 00c8 FFF7FEFF              bl      __aeabi_dadd
 974                    .LVL139:
 975 00cc 8046                  mov     r8, r0
 976                    .LVL140:
 977                            .loc 1 1243 10 view .LVU213
 978 00ce 8946                  mov     r9, r1
 979                    .LVL141:
1244:../libBME280/src/bme280.c ****     var6 = var3 * var4 * (var5 * var6);
 980                            .loc 1 1244 5 is_stmt 1 view .LVU214
 981                            .loc 1 1244 17 is_stmt 0 view .LVU215
 982 00d0 DDE90223              ldrd    r2, [sp, #8]
 983 00d4 DDE90001              ldrd    r0, [sp]
 984 00d8 FFF7FEFF              bl      __aeabi_dmul
 985                    .LVL142:
 986 00dc 0646                  mov     r6, r0
 987                    .LVL143:
 988                            .loc 1 1244 17 view .LVU216
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 40


 989 00de 0F46                  mov     r7, r1
 990                            .loc 1 1244 32 view .LVU217
 991 00e0 4246                  mov     r2, r8
 992 00e2 4B46                  mov     r3, r9
 993 00e4 2046                  mov     r0, r4
 994 00e6 2946                  mov     r1, r5
 995 00e8 FFF7FEFF              bl      __aeabi_dmul
 996                    .LVL144:
 997                            .loc 1 1244 10 view .LVU218
 998 00ec 0246                  mov     r2, r0
 999 00ee 0B46                  mov     r3, r1
 1000 00f0 3046                 mov     r0, r6
 1001 00f2 3946                 mov     r1, r7
 1002 00f4 FFF7FEFF             bl      __aeabi_dmul
 1003                   .LVL145:
 1004 00f8 0446                 mov     r4, r0
 1005                   .LVL146:
 1006                           .loc 1 1244 10 view .LVU219
 1007 00fa 0D46                 mov     r5, r1
 1008                   .LVL147:
1245:../libBME280/src/bme280.c ****     humidity = var6 * (1.0 - ((double)calib_data->dig_h1) * var6 / 524288.0);
 1009                           .loc 1 1245 5 is_stmt 1 view .LVU220
 1010                           .loc 1 1245 31 is_stmt 0 view .LVU221
 1011 00fc 9AF81800             ldrb    r0, [r10, #24]  @ zero_extendqisi2
 1012 0100 FFF7FEFF             bl      __aeabi_ui2d
 1013                   .LVL148:
 1014                           .loc 1 1245 59 view .LVU222
 1015 0104 2246                 mov     r2, r4
 1016 0106 2B46                 mov     r3, r5
 1017 0108 FFF7FEFF             bl      __aeabi_dmul
 1018                   .LVL149:
 1019                           .loc 1 1245 66 view .LVU223
 1020 010c 0022                 movs    r2, #0
 1021 010e 4FF07B53             mov     r3, #1052770304
 1022 0112 FFF7FEFF             bl      __aeabi_dmul
 1023                   .LVL150:
 1024                           .loc 1 1245 28 view .LVU224
 1025 0116 0246                 mov     r2, r0
 1026 0118 0B46                 mov     r3, r1
 1027 011a 0020                 movs    r0, #0
 1028 011c 1449                 ldr     r1, .L29+20
 1029 011e FFF7FEFF             bl      __aeabi_dsub
 1030                   .LVL151:
 1031                           .loc 1 1245 14 view .LVU225
 1032 0122 2246                 mov     r2, r4
 1033 0124 2B46                 mov     r3, r5
 1034 0126 FFF7FEFF             bl      __aeabi_dmul
 1035                   .LVL152:
 1036 012a 0446                 mov     r4, r0
 1037                   .LVL153:
 1038                           .loc 1 1245 14 view .LVU226
 1039 012c 0D46                 mov     r5, r1
 1040                   .LVL154:
1246:../libBME280/src/bme280.c **** 
1247:../libBME280/src/bme280.c ****     if (humidity > humidity_max)
 1041                           .loc 1 1247 5 is_stmt 1 view .LVU227
 1042                           .loc 1 1247 8 is_stmt 0 view .LVU228
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 41


 1043 012e 0022                 movs    r2, #0
 1044 0130 104B                 ldr     r3, .L29+24
 1045 0132 FFF7FEFF             bl      __aeabi_dcmpgt
 1046                   .LVL155:
 1047 0136 48B9                 cbnz    r0, .L26
1248:../libBME280/src/bme280.c ****     {
1249:../libBME280/src/bme280.c ****         humidity = humidity_max;
1250:../libBME280/src/bme280.c ****     }
1251:../libBME280/src/bme280.c ****     else if (humidity < humidity_min)
 1048                           .loc 1 1251 10 is_stmt 1 view .LVU229
 1049                           .loc 1 1251 13 is_stmt 0 view .LVU230
 1050 0138 0022                 movs    r2, #0
 1051 013a 0023                 movs    r3, #0
 1052 013c 2046                 mov     r0, r4
 1053 013e 2946                 mov     r1, r5
 1054 0140 FFF7FEFF             bl      __aeabi_dcmplt
 1055                   .LVL156:
 1056 0144 20B1                 cbz     r0, .L24
1252:../libBME280/src/bme280.c ****     {
1253:../libBME280/src/bme280.c ****         humidity = humidity_min;
 1057                           .loc 1 1253 18 view .LVU231
 1058 0146 0024                 movs    r4, #0
 1059                   .LVL157:
 1060                           .loc 1 1253 18 view .LVU232
 1061 0148 0025                 movs    r5, #0
 1062                   .LVL158:
1254:../libBME280/src/bme280.c ****     }
1255:../libBME280/src/bme280.c **** 
1256:../libBME280/src/bme280.c ****     return humidity;
 1063                           .loc 1 1256 5 is_stmt 1 view .LVU233
 1064                           .loc 1 1256 12 is_stmt 0 view .LVU234
 1065 014a 01E0                 b       .L24
 1066                   .LVL159:
 1067                   .L26:
1249:../libBME280/src/bme280.c ****     }
 1068                           .loc 1 1249 18 view .LVU235
 1069 014c 0024                 movs    r4, #0
 1070                   .LVL160:
1249:../libBME280/src/bme280.c ****     }
 1071                           .loc 1 1249 18 view .LVU236
 1072 014e 094D                 ldr     r5, .L29+24
 1073                   .L24:
1257:../libBME280/src/bme280.c **** }
 1074                           .loc 1 1257 1 view .LVU237
 1075 0150 2046                 mov     r0, r4
 1076 0152 2946                 mov     r1, r5
 1077 0154 04B0                 add     sp, sp, #16
 1078                   .LCFI4:
 1079                           .cfi_def_cfa_offset 32
 1080                   .LVL161:
 1081                           .loc 1 1257 1 view .LVU238
 1082                           @ sp needed
 1083 0156 BDE8F087             pop     {r4, r5, r6, r7, r8, r9, r10, pc}
 1084                   .LVL162:
 1085                   .L30:
 1086                           .loc 1 1257 1 view .LVU239
 1087 015a 00BF                 .align  2
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 42


 1088                   .L29:
 1089 015c 00C0F240             .word   1089650688
 1090 0160 00005040             .word   1078984704
 1091 0164 0000103F             .word   1058013184
 1092 0168 0000F03E             .word   1055916032
 1093 016c 0000503E             .word   1045430272
 1094 0170 0000F03F             .word   1072693248
 1095 0174 00005940             .word   1079574528
 1096                           .cfi_endproc
 1097                   .LFE26:
 1099                           .section        .text.interleave_reg_addr,"ax",%progbits
 1100                           .align  1
 1101                           .syntax unified
 1102                           .thumb
 1103                           .thumb_func
 1104                           .fpu softvfp
 1106                   interleave_reg_addr:
 1107                   .LVL163:
 1108                   .LFB28:
1258:../libBME280/src/bme280.c **** 
1259:../libBME280/src/bme280.c **** #else
1260:../libBME280/src/bme280.c **** 
1261:../libBME280/src/bme280.c **** /*!
1262:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw temperature data and
1263:../libBME280/src/bme280.c ****  * return the compensated temperature data in integer data type.
1264:../libBME280/src/bme280.c ****  */
1265:../libBME280/src/bme280.c **** static int32_t compensate_temperature(const struct bme280_uncomp_data *uncomp_data,
1266:../libBME280/src/bme280.c ****                                       struct bme280_calib_data *calib_data)
1267:../libBME280/src/bme280.c **** {
1268:../libBME280/src/bme280.c ****     int32_t var1;
1269:../libBME280/src/bme280.c ****     int32_t var2;
1270:../libBME280/src/bme280.c ****     int32_t temperature;
1271:../libBME280/src/bme280.c ****     int32_t temperature_min = -4000;
1272:../libBME280/src/bme280.c ****     int32_t temperature_max = 8500;
1273:../libBME280/src/bme280.c **** 
1274:../libBME280/src/bme280.c ****     var1 = (int32_t)((uncomp_data->temperature / 8) - ((int32_t)calib_data->dig_t1 * 2));
1275:../libBME280/src/bme280.c ****     var1 = (var1 * ((int32_t)calib_data->dig_t2)) / 2048;
1276:../libBME280/src/bme280.c ****     var2 = (int32_t)((uncomp_data->temperature / 16) - ((int32_t)calib_data->dig_t1));
1277:../libBME280/src/bme280.c ****     var2 = (((var2 * var2) / 4096) * ((int32_t)calib_data->dig_t3)) / 16384;
1278:../libBME280/src/bme280.c ****     calib_data->t_fine = var1 + var2;
1279:../libBME280/src/bme280.c ****     temperature = (calib_data->t_fine * 5 + 128) / 256;
1280:../libBME280/src/bme280.c **** 
1281:../libBME280/src/bme280.c ****     if (temperature < temperature_min)
1282:../libBME280/src/bme280.c ****     {
1283:../libBME280/src/bme280.c ****         temperature = temperature_min;
1284:../libBME280/src/bme280.c ****     }
1285:../libBME280/src/bme280.c ****     else if (temperature > temperature_max)
1286:../libBME280/src/bme280.c ****     {
1287:../libBME280/src/bme280.c ****         temperature = temperature_max;
1288:../libBME280/src/bme280.c ****     }
1289:../libBME280/src/bme280.c **** 
1290:../libBME280/src/bme280.c ****     return temperature;
1291:../libBME280/src/bme280.c **** }
1292:../libBME280/src/bme280.c **** #ifndef BME280_32BIT_ENABLE /* 64 bit compensation for pressure data */
1293:../libBME280/src/bme280.c **** 
1294:../libBME280/src/bme280.c **** /*!
1295:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw pressure data and
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 43


1296:../libBME280/src/bme280.c ****  * return the compensated pressure data in integer data type with higher
1297:../libBME280/src/bme280.c ****  * accuracy.
1298:../libBME280/src/bme280.c ****  */
1299:../libBME280/src/bme280.c **** static uint32_t compensate_pressure(const struct bme280_uncomp_data *uncomp_data,
1300:../libBME280/src/bme280.c ****                                     const struct bme280_calib_data *calib_data)
1301:../libBME280/src/bme280.c **** {
1302:../libBME280/src/bme280.c ****     int64_t var1;
1303:../libBME280/src/bme280.c ****     int64_t var2;
1304:../libBME280/src/bme280.c ****     int64_t var3;
1305:../libBME280/src/bme280.c ****     int64_t var4;
1306:../libBME280/src/bme280.c ****     uint32_t pressure;
1307:../libBME280/src/bme280.c ****     uint32_t pressure_min = 3000000;
1308:../libBME280/src/bme280.c ****     uint32_t pressure_max = 11000000;
1309:../libBME280/src/bme280.c **** 
1310:../libBME280/src/bme280.c ****     var1 = ((int64_t)calib_data->t_fine) - 128000;
1311:../libBME280/src/bme280.c ****     var2 = var1 * var1 * (int64_t)calib_data->dig_p6;
1312:../libBME280/src/bme280.c ****     var2 = var2 + ((var1 * (int64_t)calib_data->dig_p5) * 131072);
1313:../libBME280/src/bme280.c ****     var2 = var2 + (((int64_t)calib_data->dig_p4) * 34359738368);
1314:../libBME280/src/bme280.c ****     var1 = ((var1 * var1 * (int64_t)calib_data->dig_p3) / 256) + ((var1 * ((int64_t)calib_data->dig
1315:../libBME280/src/bme280.c ****     var3 = ((int64_t)1) * 140737488355328;
1316:../libBME280/src/bme280.c ****     var1 = (var3 + var1) * ((int64_t)calib_data->dig_p1) / 8589934592;
1317:../libBME280/src/bme280.c **** 
1318:../libBME280/src/bme280.c ****     /* To avoid divide by zero exception */
1319:../libBME280/src/bme280.c ****     if (var1 != 0)
1320:../libBME280/src/bme280.c ****     {
1321:../libBME280/src/bme280.c ****         var4 = 1048576 - uncomp_data->pressure;
1322:../libBME280/src/bme280.c ****         var4 = (((var4 * INT64_C(2147483648)) - var2) * 3125) / var1;
1323:../libBME280/src/bme280.c ****         var1 = (((int64_t)calib_data->dig_p9) * (var4 / 8192) * (var4 / 8192)) / 33554432;
1324:../libBME280/src/bme280.c ****         var2 = (((int64_t)calib_data->dig_p8) * var4) / 524288;
1325:../libBME280/src/bme280.c ****         var4 = ((var4 + var1 + var2) / 256) + (((int64_t)calib_data->dig_p7) * 16);
1326:../libBME280/src/bme280.c ****         pressure = (uint32_t)(((var4 / 2) * 100) / 128);
1327:../libBME280/src/bme280.c **** 
1328:../libBME280/src/bme280.c ****         if (pressure < pressure_min)
1329:../libBME280/src/bme280.c ****         {
1330:../libBME280/src/bme280.c ****             pressure = pressure_min;
1331:../libBME280/src/bme280.c ****         }
1332:../libBME280/src/bme280.c ****         else if (pressure > pressure_max)
1333:../libBME280/src/bme280.c ****         {
1334:../libBME280/src/bme280.c ****             pressure = pressure_max;
1335:../libBME280/src/bme280.c ****         }
1336:../libBME280/src/bme280.c ****     }
1337:../libBME280/src/bme280.c ****     else
1338:../libBME280/src/bme280.c ****     {
1339:../libBME280/src/bme280.c ****         pressure = pressure_min;
1340:../libBME280/src/bme280.c ****     }
1341:../libBME280/src/bme280.c **** 
1342:../libBME280/src/bme280.c ****     return pressure;
1343:../libBME280/src/bme280.c **** }
1344:../libBME280/src/bme280.c **** #else /* 32 bit compensation for pressure data */
1345:../libBME280/src/bme280.c **** 
1346:../libBME280/src/bme280.c **** /*!
1347:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw pressure data and
1348:../libBME280/src/bme280.c ****  * return the compensated pressure data in integer data type.
1349:../libBME280/src/bme280.c ****  */
1350:../libBME280/src/bme280.c **** static uint32_t compensate_pressure(const struct bme280_uncomp_data *uncomp_data,
1351:../libBME280/src/bme280.c ****                                     const struct bme280_calib_data *calib_data)
1352:../libBME280/src/bme280.c **** {
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 44


1353:../libBME280/src/bme280.c ****     int32_t var1;
1354:../libBME280/src/bme280.c ****     int32_t var2;
1355:../libBME280/src/bme280.c ****     int32_t var3;
1356:../libBME280/src/bme280.c ****     int32_t var4;
1357:../libBME280/src/bme280.c ****     uint32_t var5;
1358:../libBME280/src/bme280.c ****     uint32_t pressure;
1359:../libBME280/src/bme280.c ****     uint32_t pressure_min = 30000;
1360:../libBME280/src/bme280.c ****     uint32_t pressure_max = 110000;
1361:../libBME280/src/bme280.c **** 
1362:../libBME280/src/bme280.c ****     var1 = (((int32_t)calib_data->t_fine) / 2) - (int32_t)64000;
1363:../libBME280/src/bme280.c ****     var2 = (((var1 / 4) * (var1 / 4)) / 2048) * ((int32_t)calib_data->dig_p6);
1364:../libBME280/src/bme280.c ****     var2 = var2 + ((var1 * ((int32_t)calib_data->dig_p5)) * 2);
1365:../libBME280/src/bme280.c ****     var2 = (var2 / 4) + (((int32_t)calib_data->dig_p4) * 65536);
1366:../libBME280/src/bme280.c ****     var3 = (calib_data->dig_p3 * (((var1 / 4) * (var1 / 4)) / 8192)) / 8;
1367:../libBME280/src/bme280.c ****     var4 = (((int32_t)calib_data->dig_p2) * var1) / 2;
1368:../libBME280/src/bme280.c ****     var1 = (var3 + var4) / 262144;
1369:../libBME280/src/bme280.c ****     var1 = (((32768 + var1)) * ((int32_t)calib_data->dig_p1)) / 32768;
1370:../libBME280/src/bme280.c **** 
1371:../libBME280/src/bme280.c ****     /* avoid exception caused by division by zero */
1372:../libBME280/src/bme280.c ****     if (var1)
1373:../libBME280/src/bme280.c ****     {
1374:../libBME280/src/bme280.c ****         var5 = (uint32_t)((uint32_t)1048576) - uncomp_data->pressure;
1375:../libBME280/src/bme280.c ****         pressure = ((uint32_t)(var5 - (uint32_t)(var2 / 4096))) * 3125;
1376:../libBME280/src/bme280.c **** 
1377:../libBME280/src/bme280.c ****         if (pressure < 0x80000000)
1378:../libBME280/src/bme280.c ****         {
1379:../libBME280/src/bme280.c ****             pressure = (pressure << 1) / ((uint32_t)var1);
1380:../libBME280/src/bme280.c ****         }
1381:../libBME280/src/bme280.c ****         else
1382:../libBME280/src/bme280.c ****         {
1383:../libBME280/src/bme280.c ****             pressure = (pressure / (uint32_t)var1) * 2;
1384:../libBME280/src/bme280.c ****         }
1385:../libBME280/src/bme280.c **** 
1386:../libBME280/src/bme280.c ****         var1 = (((int32_t)calib_data->dig_p9) * ((int32_t)(((pressure / 8) * (pressure / 8)) / 8192
1387:../libBME280/src/bme280.c ****         var2 = (((int32_t)(pressure / 4)) * ((int32_t)calib_data->dig_p8)) / 8192;
1388:../libBME280/src/bme280.c ****         pressure = (uint32_t)((int32_t)pressure + ((var1 + var2 + calib_data->dig_p7) / 16));
1389:../libBME280/src/bme280.c **** 
1390:../libBME280/src/bme280.c ****         if (pressure < pressure_min)
1391:../libBME280/src/bme280.c ****         {
1392:../libBME280/src/bme280.c ****             pressure = pressure_min;
1393:../libBME280/src/bme280.c ****         }
1394:../libBME280/src/bme280.c ****         else if (pressure > pressure_max)
1395:../libBME280/src/bme280.c ****         {
1396:../libBME280/src/bme280.c ****             pressure = pressure_max;
1397:../libBME280/src/bme280.c ****         }
1398:../libBME280/src/bme280.c ****     }
1399:../libBME280/src/bme280.c ****     else
1400:../libBME280/src/bme280.c ****     {
1401:../libBME280/src/bme280.c ****         pressure = pressure_min;
1402:../libBME280/src/bme280.c ****     }
1403:../libBME280/src/bme280.c **** 
1404:../libBME280/src/bme280.c ****     return pressure;
1405:../libBME280/src/bme280.c **** }
1406:../libBME280/src/bme280.c **** #endif
1407:../libBME280/src/bme280.c **** 
1408:../libBME280/src/bme280.c **** /*!
1409:../libBME280/src/bme280.c ****  * @brief This internal API is used to compensate the raw humidity data and
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 45


1410:../libBME280/src/bme280.c ****  * return the compensated humidity data in integer data type.
1411:../libBME280/src/bme280.c ****  */
1412:../libBME280/src/bme280.c **** static uint32_t compensate_humidity(const struct bme280_uncomp_data *uncomp_data,
1413:../libBME280/src/bme280.c ****                                     const struct bme280_calib_data *calib_data)
1414:../libBME280/src/bme280.c **** {
1415:../libBME280/src/bme280.c ****     int32_t var1;
1416:../libBME280/src/bme280.c ****     int32_t var2;
1417:../libBME280/src/bme280.c ****     int32_t var3;
1418:../libBME280/src/bme280.c ****     int32_t var4;
1419:../libBME280/src/bme280.c ****     int32_t var5;
1420:../libBME280/src/bme280.c ****     uint32_t humidity;
1421:../libBME280/src/bme280.c ****     uint32_t humidity_max = 102400;
1422:../libBME280/src/bme280.c **** 
1423:../libBME280/src/bme280.c ****     var1 = calib_data->t_fine - ((int32_t)76800);
1424:../libBME280/src/bme280.c ****     var2 = (int32_t)(uncomp_data->humidity * 16384);
1425:../libBME280/src/bme280.c ****     var3 = (int32_t)(((int32_t)calib_data->dig_h4) * 1048576);
1426:../libBME280/src/bme280.c ****     var4 = ((int32_t)calib_data->dig_h5) * var1;
1427:../libBME280/src/bme280.c ****     var5 = (((var2 - var3) - var4) + (int32_t)16384) / 32768;
1428:../libBME280/src/bme280.c ****     var2 = (var1 * ((int32_t)calib_data->dig_h6)) / 1024;
1429:../libBME280/src/bme280.c ****     var3 = (var1 * ((int32_t)calib_data->dig_h3)) / 2048;
1430:../libBME280/src/bme280.c ****     var4 = ((var2 * (var3 + (int32_t)32768)) / 1024) + (int32_t)2097152;
1431:../libBME280/src/bme280.c ****     var2 = ((var4 * ((int32_t)calib_data->dig_h2)) + 8192) / 16384;
1432:../libBME280/src/bme280.c ****     var3 = var5 * var2;
1433:../libBME280/src/bme280.c ****     var4 = ((var3 / 32768) * (var3 / 32768)) / 128;
1434:../libBME280/src/bme280.c ****     var5 = var3 - ((var4 * ((int32_t)calib_data->dig_h1)) / 16);
1435:../libBME280/src/bme280.c ****     var5 = (var5 < 0 ? 0 : var5);
1436:../libBME280/src/bme280.c ****     var5 = (var5 > 419430400 ? 419430400 : var5);
1437:../libBME280/src/bme280.c ****     humidity = (uint32_t)(var5 / 4096);
1438:../libBME280/src/bme280.c **** 
1439:../libBME280/src/bme280.c ****     if (humidity > humidity_max)
1440:../libBME280/src/bme280.c ****     {
1441:../libBME280/src/bme280.c ****         humidity = humidity_max;
1442:../libBME280/src/bme280.c ****     }
1443:../libBME280/src/bme280.c **** 
1444:../libBME280/src/bme280.c ****     return humidity;
1445:../libBME280/src/bme280.c **** }
1446:../libBME280/src/bme280.c **** #endif
1447:../libBME280/src/bme280.c **** 
1448:../libBME280/src/bme280.c **** /*!
1449:../libBME280/src/bme280.c ****  * @brief This internal API reads the calibration data from the sensor, parse
1450:../libBME280/src/bme280.c ****  * it and store in the device structure.
1451:../libBME280/src/bme280.c ****  */
1452:../libBME280/src/bme280.c **** static int8_t get_calib_data(struct bme280_dev *dev)
1453:../libBME280/src/bme280.c **** {
1454:../libBME280/src/bme280.c ****     int8_t rslt;
1455:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_TEMP_PRESS_CALIB_DATA_ADDR;
1456:../libBME280/src/bme280.c **** 
1457:../libBME280/src/bme280.c ****     /* Array to store calibration data */
1458:../libBME280/src/bme280.c ****     uint8_t calib_data[BME280_TEMP_PRESS_CALIB_DATA_LEN] = { 0 };
1459:../libBME280/src/bme280.c **** 
1460:../libBME280/src/bme280.c ****     /* Read the calibration data from the sensor */
1461:../libBME280/src/bme280.c ****     rslt = bme280_get_regs(reg_addr, calib_data, BME280_TEMP_PRESS_CALIB_DATA_LEN, dev);
1462:../libBME280/src/bme280.c **** 
1463:../libBME280/src/bme280.c ****     if (rslt == BME280_OK)
1464:../libBME280/src/bme280.c ****     {
1465:../libBME280/src/bme280.c ****         /* Parse temperature and pressure calibration data and store
1466:../libBME280/src/bme280.c ****          * it in device structure
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 46


1467:../libBME280/src/bme280.c ****          */
1468:../libBME280/src/bme280.c ****         parse_temp_press_calib_data(calib_data, dev);
1469:../libBME280/src/bme280.c ****         reg_addr = BME280_HUMIDITY_CALIB_DATA_ADDR;
1470:../libBME280/src/bme280.c **** 
1471:../libBME280/src/bme280.c ****         /* Read the humidity calibration data from the sensor */
1472:../libBME280/src/bme280.c ****         rslt = bme280_get_regs(reg_addr, calib_data, BME280_HUMIDITY_CALIB_DATA_LEN, dev);
1473:../libBME280/src/bme280.c **** 
1474:../libBME280/src/bme280.c ****         if (rslt == BME280_OK)
1475:../libBME280/src/bme280.c ****         {
1476:../libBME280/src/bme280.c ****             /* Parse humidity calibration data and store it in
1477:../libBME280/src/bme280.c ****              * device structure
1478:../libBME280/src/bme280.c ****              */
1479:../libBME280/src/bme280.c ****             parse_humidity_calib_data(calib_data, dev);
1480:../libBME280/src/bme280.c ****         }
1481:../libBME280/src/bme280.c ****     }
1482:../libBME280/src/bme280.c **** 
1483:../libBME280/src/bme280.c ****     return rslt;
1484:../libBME280/src/bme280.c **** }
1485:../libBME280/src/bme280.c **** 
1486:../libBME280/src/bme280.c **** /*!
1487:../libBME280/src/bme280.c ****  * @brief This internal API interleaves the register address between the
1488:../libBME280/src/bme280.c ****  * register data buffer for burst write operation.
1489:../libBME280/src/bme280.c ****  */
1490:../libBME280/src/bme280.c **** static void interleave_reg_addr(const uint8_t *reg_addr, uint8_t *temp_buff, const uint8_t *reg_dat
1491:../libBME280/src/bme280.c **** {
 1109                           .loc 1 1491 1 is_stmt 1 view -0
 1110                           .cfi_startproc
 1111                           @ args = 0, pretend = 0, frame = 0
 1112                           @ frame_needed = 0, uses_anonymous_args = 0
 1113                           @ link register save eliminated.
 1114                           .loc 1 1491 1 is_stmt 0 view .LVU241
 1115 0000 70B4                 push    {r4, r5, r6}
 1116                   .LCFI5:
 1117                           .cfi_def_cfa_offset 12
 1118                           .cfi_offset 4, -12
 1119                           .cfi_offset 5, -8
 1120                           .cfi_offset 6, -4
1492:../libBME280/src/bme280.c ****     uint8_t index;
 1121                           .loc 1 1492 5 is_stmt 1 view .LVU242
1493:../libBME280/src/bme280.c **** 
1494:../libBME280/src/bme280.c ****     for (index = 1; index < len; index++)
 1122                           .loc 1 1494 5 view .LVU243
 1123                   .LVL164:
 1124                           .loc 1 1494 16 is_stmt 0 view .LVU244
 1125 0002 0124                 movs    r4, #1
 1126                   .LVL165:
 1127                   .L32:
 1128                           .loc 1 1494 5 discriminator 1 view .LVU245
 1129 0004 9C42                 cmp     r4, r3
 1130 0006 09D2                 bcs     .L35
1495:../libBME280/src/bme280.c ****     {
1496:../libBME280/src/bme280.c ****         temp_buff[(index * 2) - 1] = reg_addr[index];
 1131                           .loc 1 1496 9 is_stmt 1 discriminator 3 view .LVU246
 1132                           .loc 1 1496 26 is_stmt 0 discriminator 3 view .LVU247
 1133 0008 6500                 lsls    r5, r4, #1
 1134                           .loc 1 1496 18 discriminator 3 view .LVU248
 1135 000a 013D                 subs    r5, r5, #1
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 47


 1136                           .loc 1 1496 46 discriminator 3 view .LVU249
 1137 000c 065D                 ldrb    r6, [r0, r4]    @ zero_extendqisi2
 1138                           .loc 1 1496 36 discriminator 3 view .LVU250
 1139 000e 4E55                 strb    r6, [r1, r5]
1497:../libBME280/src/bme280.c ****         temp_buff[index * 2] = reg_data[index];
 1140                           .loc 1 1497 9 is_stmt 1 discriminator 3 view .LVU251
 1141                           .loc 1 1497 40 is_stmt 0 discriminator 3 view .LVU252
 1142 0010 155D                 ldrb    r5, [r2, r4]    @ zero_extendqisi2
 1143                           .loc 1 1497 30 discriminator 3 view .LVU253
 1144 0012 01F81450             strb    r5, [r1, r4, lsl #1]
1494:../libBME280/src/bme280.c ****     {
 1145                           .loc 1 1494 39 discriminator 3 view .LVU254
 1146 0016 0134                 adds    r4, r4, #1
 1147                   .LVL166:
1494:../libBME280/src/bme280.c ****     {
 1148                           .loc 1 1494 39 discriminator 3 view .LVU255
 1149 0018 E4B2                 uxtb    r4, r4
 1150                   .LVL167:
1494:../libBME280/src/bme280.c ****     {
 1151                           .loc 1 1494 39 discriminator 3 view .LVU256
 1152 001a F3E7                 b       .L32
 1153                   .L35:
1498:../libBME280/src/bme280.c ****     }
1499:../libBME280/src/bme280.c **** }
 1154                           .loc 1 1499 1 view .LVU257
 1155 001c 70BC                 pop     {r4, r5, r6}
 1156                   .LCFI6:
 1157                           .cfi_restore 6
 1158                           .cfi_restore 5
 1159                           .cfi_restore 4
 1160                           .cfi_def_cfa_offset 0
 1161                   .LVL168:
 1162                           .loc 1 1499 1 view .LVU258
 1163 001e 7047                 bx      lr
 1164                           .cfi_endproc
 1165                   .LFE28:
 1167                           .section        .text.parse_temp_press_calib_data,"ax",%progbits
 1168                           .align  1
 1169                           .syntax unified
 1170                           .thumb
 1171                           .thumb_func
 1172                           .fpu softvfp
 1174                   parse_temp_press_calib_data:
 1175                   .LVL169:
 1176                   .LFB29:
1500:../libBME280/src/bme280.c **** 
1501:../libBME280/src/bme280.c **** /*!
1502:../libBME280/src/bme280.c ****  *  @brief This internal API is used to parse the temperature and
1503:../libBME280/src/bme280.c ****  *  pressure calibration data and store it in device structure.
1504:../libBME280/src/bme280.c ****  */
1505:../libBME280/src/bme280.c **** static void parse_temp_press_calib_data(const uint8_t *reg_data, struct bme280_dev *dev)
1506:../libBME280/src/bme280.c **** {
 1177                           .loc 1 1506 1 is_stmt 1 view -0
 1178                           .cfi_startproc
 1179                           @ args = 0, pretend = 0, frame = 0
 1180                           @ frame_needed = 0, uses_anonymous_args = 0
 1181                           @ link register save eliminated.
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 48


1507:../libBME280/src/bme280.c ****     struct bme280_calib_data *calib_data = &dev->calib_data;
 1182                           .loc 1 1507 5 view .LVU260
1508:../libBME280/src/bme280.c **** 
1509:../libBME280/src/bme280.c ****     calib_data->dig_t1 = BME280_CONCAT_BYTES(reg_data[1], reg_data[0]);
 1183                           .loc 1 1509 5 view .LVU261
 1184                           .loc 1 1509 26 is_stmt 0 view .LVU262
 1185 0000 4278                 ldrb    r2, [r0, #1]    @ zero_extendqisi2
 1186 0002 0378                 ldrb    r3, [r0]        @ zero_extendqisi2
 1187 0004 43EA0223             orr     r3, r3, r2, lsl #8
 1188                           .loc 1 1509 24 view .LVU263
 1189 0008 0B83                 strh    r3, [r1, #24]   @ movhi
1510:../libBME280/src/bme280.c ****     calib_data->dig_t2 = (int16_t)BME280_CONCAT_BYTES(reg_data[3], reg_data[2]);
 1190                           .loc 1 1510 5 is_stmt 1 view .LVU264
 1191                           .loc 1 1510 35 is_stmt 0 view .LVU265
 1192 000a C278                 ldrb    r2, [r0, #3]    @ zero_extendqisi2
 1193 000c 8378                 ldrb    r3, [r0, #2]    @ zero_extendqisi2
 1194                           .loc 1 1510 26 view .LVU266
 1195 000e 43EA0223             orr     r3, r3, r2, lsl #8
 1196                           .loc 1 1510 24 view .LVU267
 1197 0012 4B83                 strh    r3, [r1, #26]   @ movhi
1511:../libBME280/src/bme280.c ****     calib_data->dig_t3 = (int16_t)BME280_CONCAT_BYTES(reg_data[5], reg_data[4]);
 1198                           .loc 1 1511 5 is_stmt 1 view .LVU268
 1199                           .loc 1 1511 35 is_stmt 0 view .LVU269
 1200 0014 4279                 ldrb    r2, [r0, #5]    @ zero_extendqisi2
 1201 0016 0379                 ldrb    r3, [r0, #4]    @ zero_extendqisi2
 1202                           .loc 1 1511 26 view .LVU270
 1203 0018 43EA0223             orr     r3, r3, r2, lsl #8
 1204                           .loc 1 1511 24 view .LVU271
 1205 001c 8B83                 strh    r3, [r1, #28]   @ movhi
1512:../libBME280/src/bme280.c ****     calib_data->dig_p1 = BME280_CONCAT_BYTES(reg_data[7], reg_data[6]);
 1206                           .loc 1 1512 5 is_stmt 1 view .LVU272
 1207                           .loc 1 1512 26 is_stmt 0 view .LVU273
 1208 001e C279                 ldrb    r2, [r0, #7]    @ zero_extendqisi2
 1209 0020 8379                 ldrb    r3, [r0, #6]    @ zero_extendqisi2
 1210 0022 43EA0223             orr     r3, r3, r2, lsl #8
 1211                           .loc 1 1512 24 view .LVU274
 1212 0026 CB83                 strh    r3, [r1, #30]   @ movhi
1513:../libBME280/src/bme280.c ****     calib_data->dig_p2 = (int16_t)BME280_CONCAT_BYTES(reg_data[9], reg_data[8]);
 1213                           .loc 1 1513 5 is_stmt 1 view .LVU275
 1214                           .loc 1 1513 35 is_stmt 0 view .LVU276
 1215 0028 427A                 ldrb    r2, [r0, #9]    @ zero_extendqisi2
 1216 002a 037A                 ldrb    r3, [r0, #8]    @ zero_extendqisi2
 1217                           .loc 1 1513 26 view .LVU277
 1218 002c 43EA0223             orr     r3, r3, r2, lsl #8
 1219                           .loc 1 1513 24 view .LVU278
 1220 0030 0B84                 strh    r3, [r1, #32]   @ movhi
1514:../libBME280/src/bme280.c ****     calib_data->dig_p3 = (int16_t)BME280_CONCAT_BYTES(reg_data[11], reg_data[10]);
 1221                           .loc 1 1514 5 is_stmt 1 view .LVU279
 1222                           .loc 1 1514 35 is_stmt 0 view .LVU280
 1223 0032 C27A                 ldrb    r2, [r0, #11]   @ zero_extendqisi2
 1224 0034 837A                 ldrb    r3, [r0, #10]   @ zero_extendqisi2
 1225                           .loc 1 1514 26 view .LVU281
 1226 0036 43EA0223             orr     r3, r3, r2, lsl #8
 1227                           .loc 1 1514 24 view .LVU282
 1228 003a 4B84                 strh    r3, [r1, #34]   @ movhi
1515:../libBME280/src/bme280.c ****     calib_data->dig_p4 = (int16_t)BME280_CONCAT_BYTES(reg_data[13], reg_data[12]);
 1229                           .loc 1 1515 5 is_stmt 1 view .LVU283
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 49


 1230                           .loc 1 1515 35 is_stmt 0 view .LVU284
 1231 003c 427B                 ldrb    r2, [r0, #13]   @ zero_extendqisi2
 1232 003e 037B                 ldrb    r3, [r0, #12]   @ zero_extendqisi2
 1233                           .loc 1 1515 26 view .LVU285
 1234 0040 43EA0223             orr     r3, r3, r2, lsl #8
 1235                           .loc 1 1515 24 view .LVU286
 1236 0044 8B84                 strh    r3, [r1, #36]   @ movhi
1516:../libBME280/src/bme280.c ****     calib_data->dig_p5 = (int16_t)BME280_CONCAT_BYTES(reg_data[15], reg_data[14]);
 1237                           .loc 1 1516 5 is_stmt 1 view .LVU287
 1238                           .loc 1 1516 35 is_stmt 0 view .LVU288
 1239 0046 C27B                 ldrb    r2, [r0, #15]   @ zero_extendqisi2
 1240 0048 837B                 ldrb    r3, [r0, #14]   @ zero_extendqisi2
 1241                           .loc 1 1516 26 view .LVU289
 1242 004a 43EA0223             orr     r3, r3, r2, lsl #8
 1243                           .loc 1 1516 24 view .LVU290
 1244 004e CB84                 strh    r3, [r1, #38]   @ movhi
1517:../libBME280/src/bme280.c ****     calib_data->dig_p6 = (int16_t)BME280_CONCAT_BYTES(reg_data[17], reg_data[16]);
 1245                           .loc 1 1517 5 is_stmt 1 view .LVU291
 1246                           .loc 1 1517 35 is_stmt 0 view .LVU292
 1247 0050 427C                 ldrb    r2, [r0, #17]   @ zero_extendqisi2
 1248 0052 037C                 ldrb    r3, [r0, #16]   @ zero_extendqisi2
 1249                           .loc 1 1517 26 view .LVU293
 1250 0054 43EA0223             orr     r3, r3, r2, lsl #8
 1251                           .loc 1 1517 24 view .LVU294
 1252 0058 0B85                 strh    r3, [r1, #40]   @ movhi
1518:../libBME280/src/bme280.c ****     calib_data->dig_p7 = (int16_t)BME280_CONCAT_BYTES(reg_data[19], reg_data[18]);
 1253                           .loc 1 1518 5 is_stmt 1 view .LVU295
 1254                           .loc 1 1518 35 is_stmt 0 view .LVU296
 1255 005a C27C                 ldrb    r2, [r0, #19]   @ zero_extendqisi2
 1256 005c 837C                 ldrb    r3, [r0, #18]   @ zero_extendqisi2
 1257                           .loc 1 1518 26 view .LVU297
 1258 005e 43EA0223             orr     r3, r3, r2, lsl #8
 1259                           .loc 1 1518 24 view .LVU298
 1260 0062 4B85                 strh    r3, [r1, #42]   @ movhi
1519:../libBME280/src/bme280.c ****     calib_data->dig_p8 = (int16_t)BME280_CONCAT_BYTES(reg_data[21], reg_data[20]);
 1261                           .loc 1 1519 5 is_stmt 1 view .LVU299
 1262                           .loc 1 1519 35 is_stmt 0 view .LVU300
 1263 0064 427D                 ldrb    r2, [r0, #21]   @ zero_extendqisi2
 1264 0066 037D                 ldrb    r3, [r0, #20]   @ zero_extendqisi2
 1265                           .loc 1 1519 26 view .LVU301
 1266 0068 43EA0223             orr     r3, r3, r2, lsl #8
 1267                           .loc 1 1519 24 view .LVU302
 1268 006c 8B85                 strh    r3, [r1, #44]   @ movhi
1520:../libBME280/src/bme280.c ****     calib_data->dig_p9 = (int16_t)BME280_CONCAT_BYTES(reg_data[23], reg_data[22]);
 1269                           .loc 1 1520 5 is_stmt 1 view .LVU303
 1270                           .loc 1 1520 35 is_stmt 0 view .LVU304
 1271 006e C27D                 ldrb    r2, [r0, #23]   @ zero_extendqisi2
 1272 0070 837D                 ldrb    r3, [r0, #22]   @ zero_extendqisi2
 1273                           .loc 1 1520 26 view .LVU305
 1274 0072 43EA0223             orr     r3, r3, r2, lsl #8
 1275                           .loc 1 1520 24 view .LVU306
 1276 0076 CB85                 strh    r3, [r1, #46]   @ movhi
1521:../libBME280/src/bme280.c ****     calib_data->dig_h1 = reg_data[25];
 1277                           .loc 1 1521 5 is_stmt 1 view .LVU307
 1278                           .loc 1 1521 24 is_stmt 0 view .LVU308
 1279 0078 437E                 ldrb    r3, [r0, #25]   @ zero_extendqisi2
 1280 007a 81F83030             strb    r3, [r1, #48]
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 50


1522:../libBME280/src/bme280.c **** }
 1281                           .loc 1 1522 1 view .LVU309
 1282 007e 7047                 bx      lr
 1283                           .cfi_endproc
 1284                   .LFE29:
 1286                           .section        .text.parse_humidity_calib_data,"ax",%progbits
 1287                           .align  1
 1288                           .syntax unified
 1289                           .thumb
 1290                           .thumb_func
 1291                           .fpu softvfp
 1293                   parse_humidity_calib_data:
 1294                   .LVL170:
 1295                   .LFB30:
1523:../libBME280/src/bme280.c **** 
1524:../libBME280/src/bme280.c **** /*!
1525:../libBME280/src/bme280.c ****  *  @brief This internal API is used to parse the humidity calibration data
1526:../libBME280/src/bme280.c ****  *  and store it in device structure.
1527:../libBME280/src/bme280.c ****  */
1528:../libBME280/src/bme280.c **** static void parse_humidity_calib_data(const uint8_t *reg_data, struct bme280_dev *dev)
1529:../libBME280/src/bme280.c **** {
 1296                           .loc 1 1529 1 is_stmt 1 view -0
 1297                           .cfi_startproc
 1298                           @ args = 0, pretend = 0, frame = 0
 1299                           @ frame_needed = 0, uses_anonymous_args = 0
 1300                           @ link register save eliminated.
1530:../libBME280/src/bme280.c ****     struct bme280_calib_data *calib_data = &dev->calib_data;
 1301                           .loc 1 1530 5 view .LVU311
1531:../libBME280/src/bme280.c ****     int16_t dig_h4_lsb;
 1302                           .loc 1 1531 5 view .LVU312
1532:../libBME280/src/bme280.c ****     int16_t dig_h4_msb;
 1303                           .loc 1 1532 5 view .LVU313
1533:../libBME280/src/bme280.c ****     int16_t dig_h5_lsb;
 1304                           .loc 1 1533 5 view .LVU314
1534:../libBME280/src/bme280.c ****     int16_t dig_h5_msb;
 1305                           .loc 1 1534 5 view .LVU315
1535:../libBME280/src/bme280.c **** 
1536:../libBME280/src/bme280.c ****     calib_data->dig_h2 = (int16_t)BME280_CONCAT_BYTES(reg_data[1], reg_data[0]);
 1306                           .loc 1 1536 5 view .LVU316
 1307                           .loc 1 1536 35 is_stmt 0 view .LVU317
 1308 0000 4278                 ldrb    r2, [r0, #1]    @ zero_extendqisi2
 1309 0002 0378                 ldrb    r3, [r0]        @ zero_extendqisi2
 1310                           .loc 1 1536 26 view .LVU318
 1311 0004 43EA0223             orr     r3, r3, r2, lsl #8
 1312                           .loc 1 1536 24 view .LVU319
 1313 0008 4B86                 strh    r3, [r1, #50]   @ movhi
1537:../libBME280/src/bme280.c ****     calib_data->dig_h3 = reg_data[2];
 1314                           .loc 1 1537 5 is_stmt 1 view .LVU320
 1315                           .loc 1 1537 24 is_stmt 0 view .LVU321
 1316 000a 8378                 ldrb    r3, [r0, #2]    @ zero_extendqisi2
 1317 000c 81F83430             strb    r3, [r1, #52]
1538:../libBME280/src/bme280.c ****     dig_h4_msb = (int16_t)(int8_t)reg_data[3] * 16;
 1318                           .loc 1 1538 5 is_stmt 1 view .LVU322
 1319                           .loc 1 1538 27 is_stmt 0 view .LVU323
 1320 0010 90F90330             ldrsb   r3, [r0, #3]
 1321 0014 9BB2                 uxth    r3, r3
 1322                           .loc 1 1538 47 view .LVU324
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 51


 1323 0016 1B01                 lsls    r3, r3, #4
 1324                           .loc 1 1538 16 view .LVU325
 1325 0018 1BB2                 sxth    r3, r3
 1326                   .LVL171:
1539:../libBME280/src/bme280.c ****     dig_h4_lsb = (int16_t)(reg_data[4] & 0x0F);
 1327                           .loc 1 1539 5 is_stmt 1 view .LVU326
 1328                           .loc 1 1539 36 is_stmt 0 view .LVU327
 1329 001a 0279                 ldrb    r2, [r0, #4]    @ zero_extendqisi2
 1330                           .loc 1 1539 16 view .LVU328
 1331 001c 02F00F02             and     r2, r2, #15
 1332                   .LVL172:
1540:../libBME280/src/bme280.c ****     calib_data->dig_h4 = dig_h4_msb | dig_h4_lsb;
 1333                           .loc 1 1540 5 is_stmt 1 view .LVU329
 1334                           .loc 1 1540 24 is_stmt 0 view .LVU330
 1335 0020 1343                 orrs    r3, r3, r2
 1336                   .LVL173:
 1337                           .loc 1 1540 24 view .LVU331
 1338 0022 CB86                 strh    r3, [r1, #54]   @ movhi
 1339                   .LVL174:
1541:../libBME280/src/bme280.c ****     dig_h5_msb = (int16_t)(int8_t)reg_data[5] * 16;
 1340                           .loc 1 1541 5 is_stmt 1 view .LVU332
 1341                           .loc 1 1541 27 is_stmt 0 view .LVU333
 1342 0024 90F90530             ldrsb   r3, [r0, #5]
 1343 0028 9BB2                 uxth    r3, r3
 1344                           .loc 1 1541 47 view .LVU334
 1345 002a 1B01                 lsls    r3, r3, #4
 1346                           .loc 1 1541 16 view .LVU335
 1347 002c 1BB2                 sxth    r3, r3
 1348                   .LVL175:
1542:../libBME280/src/bme280.c ****     dig_h5_lsb = (int16_t)(reg_data[4] >> 4);
 1349                           .loc 1 1542 5 is_stmt 1 view .LVU336
 1350                           .loc 1 1542 36 is_stmt 0 view .LVU337
 1351 002e 0279                 ldrb    r2, [r0, #4]    @ zero_extendqisi2
 1352                   .LVL176:
1543:../libBME280/src/bme280.c ****     calib_data->dig_h5 = dig_h5_msb | dig_h5_lsb;
 1353                           .loc 1 1543 5 is_stmt 1 view .LVU338
 1354                           .loc 1 1543 24 is_stmt 0 view .LVU339
 1355 0030 43EA1213             orr     r3, r3, r2, lsr #4
 1356                   .LVL177:
 1357                           .loc 1 1543 24 view .LVU340
 1358 0034 0B87                 strh    r3, [r1, #56]   @ movhi
 1359                   .LVL178:
1544:../libBME280/src/bme280.c ****     calib_data->dig_h6 = (int8_t)reg_data[6];
 1360                           .loc 1 1544 5 is_stmt 1 view .LVU341
 1361                           .loc 1 1544 26 is_stmt 0 view .LVU342
 1362 0036 90F90630             ldrsb   r3, [r0, #6]
 1363                           .loc 1 1544 24 view .LVU343
 1364 003a 81F83A30             strb    r3, [r1, #58]
1545:../libBME280/src/bme280.c **** }
 1365                           .loc 1 1545 1 view .LVU344
 1366 003e 7047                 bx      lr
 1367                           .cfi_endproc
 1368                   .LFE30:
 1370                           .section        .text.are_settings_changed,"ax",%progbits
 1371                           .align  1
 1372                           .syntax unified
 1373                           .thumb
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 52


 1374                           .thumb_func
 1375                           .fpu softvfp
 1377                   are_settings_changed:
 1378                   .LVL179:
 1379                   .LFB31:
1546:../libBME280/src/bme280.c **** 
1547:../libBME280/src/bme280.c **** /*!
1548:../libBME280/src/bme280.c ****  * @brief This internal API is used to identify the settings which the user
1549:../libBME280/src/bme280.c ****  * wants to modify in the sensor.
1550:../libBME280/src/bme280.c ****  */
1551:../libBME280/src/bme280.c **** static uint8_t are_settings_changed(uint8_t sub_settings, uint8_t desired_settings)
1552:../libBME280/src/bme280.c **** {
 1380                           .loc 1 1552 1 is_stmt 1 view -0
 1381                           .cfi_startproc
 1382                           @ args = 0, pretend = 0, frame = 0
 1383                           @ frame_needed = 0, uses_anonymous_args = 0
 1384                           @ link register save eliminated.
1553:../libBME280/src/bme280.c ****     uint8_t settings_changed = FALSE;
 1385                           .loc 1 1553 5 view .LVU346
1554:../libBME280/src/bme280.c **** 
1555:../libBME280/src/bme280.c ****     if (sub_settings & desired_settings)
 1386                           .loc 1 1555 5 view .LVU347
 1387                           .loc 1 1555 8 is_stmt 0 view .LVU348
 1388 0000 0842                 tst     r0, r1
 1389 0002 01D0                 beq     .L40
1556:../libBME280/src/bme280.c ****     {
1557:../libBME280/src/bme280.c ****         /* User wants to modify this particular settings */
1558:../libBME280/src/bme280.c ****         settings_changed = TRUE;
 1390                           .loc 1 1558 26 view .LVU349
 1391 0004 0120                 movs    r0, #1
 1392                   .LVL180:
 1393                           .loc 1 1558 26 view .LVU350
 1394 0006 7047                 bx      lr
 1395                   .LVL181:
 1396                   .L40:
1559:../libBME280/src/bme280.c ****     }
1560:../libBME280/src/bme280.c ****     else
1561:../libBME280/src/bme280.c ****     {
1562:../libBME280/src/bme280.c ****         /* User don't want to modify this particular settings */
1563:../libBME280/src/bme280.c ****         settings_changed = FALSE;
 1397                           .loc 1 1563 26 view .LVU351
 1398 0008 0020                 movs    r0, #0
 1399                   .LVL182:
1564:../libBME280/src/bme280.c ****     }
1565:../libBME280/src/bme280.c **** 
1566:../libBME280/src/bme280.c ****     return settings_changed;
 1400                           .loc 1 1566 5 is_stmt 1 view .LVU352
1567:../libBME280/src/bme280.c **** }
 1401                           .loc 1 1567 1 is_stmt 0 view .LVU353
 1402 000a 7047                 bx      lr
 1403                           .cfi_endproc
 1404                   .LFE31:
 1406                           .section        .text.null_ptr_check,"ax",%progbits
 1407                           .align  1
 1408                           .syntax unified
 1409                           .thumb
 1410                           .thumb_func
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 53


 1411                           .fpu softvfp
 1413                   null_ptr_check:
 1414                   .LVL183:
 1415                   .LFB32:
1568:../libBME280/src/bme280.c **** 
1569:../libBME280/src/bme280.c **** /*!
1570:../libBME280/src/bme280.c ****  * @brief This internal API is used to validate the device structure pointer for
1571:../libBME280/src/bme280.c ****  * null conditions.
1572:../libBME280/src/bme280.c ****  */
1573:../libBME280/src/bme280.c **** static int8_t null_ptr_check(const struct bme280_dev *dev)
1574:../libBME280/src/bme280.c **** {
 1416                           .loc 1 1574 1 is_stmt 1 view -0
 1417                           .cfi_startproc
 1418                           @ args = 0, pretend = 0, frame = 0
 1419                           @ frame_needed = 0, uses_anonymous_args = 0
 1420                           @ link register save eliminated.
1575:../libBME280/src/bme280.c ****     int8_t rslt;
 1421                           .loc 1 1575 5 view .LVU355
1576:../libBME280/src/bme280.c **** 
1577:../libBME280/src/bme280.c ****     if ((dev == NULL) || (dev->read == NULL) || (dev->write == NULL) || (dev->delay_us == NULL))
 1422                           .loc 1 1577 5 view .LVU356
 1423                           .loc 1 1577 8 is_stmt 0 view .LVU357
 1424 0000 50B1                 cbz     r0, .L43
 1425                           .loc 1 1577 30 discriminator 1 view .LVU358
 1426 0002 C268                 ldr     r2, [r0, #12]
 1427                           .loc 1 1577 23 discriminator 1 view .LVU359
 1428 0004 5AB1                 cbz     r2, .L44
 1429                           .loc 1 1577 53 discriminator 2 view .LVU360
 1430 0006 0269                 ldr     r2, [r0, #16]
 1431                           .loc 1 1577 46 discriminator 2 view .LVU361
 1432 0008 62B1                 cbz     r2, .L45
 1433                           .loc 1 1577 77 discriminator 3 view .LVU362
 1434 000a 4369                 ldr     r3, [r0, #20]
 1435                           .loc 1 1577 70 discriminator 3 view .LVU363
 1436 000c 0BB1                 cbz     r3, .L47
1578:../libBME280/src/bme280.c ****     {
1579:../libBME280/src/bme280.c ****         /* Device structure pointer is not valid */
1580:../libBME280/src/bme280.c ****         rslt = BME280_E_NULL_PTR;
1581:../libBME280/src/bme280.c ****     }
1582:../libBME280/src/bme280.c ****     else
1583:../libBME280/src/bme280.c ****     {
1584:../libBME280/src/bme280.c ****         /* Device structure is fine */
1585:../libBME280/src/bme280.c ****         rslt = BME280_OK;
 1437                           .loc 1 1585 14 view .LVU364
 1438 000e 0020                 movs    r0, #0
 1439                   .LVL184:
1586:../libBME280/src/bme280.c ****     }
1587:../libBME280/src/bme280.c **** 
1588:../libBME280/src/bme280.c ****     return rslt;
 1440                           .loc 1 1588 5 is_stmt 1 view .LVU365
1589:../libBME280/src/bme280.c **** }
 1441                           .loc 1 1589 1 is_stmt 0 view .LVU366
 1442 0010 7047                 bx      lr
 1443                   .LVL185:
 1444                   .L47:
1580:../libBME280/src/bme280.c ****     }
 1445                           .loc 1 1580 14 view .LVU367
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 54


 1446 0012 4FF0FF30             mov     r0, #-1
 1447                   .LVL186:
1580:../libBME280/src/bme280.c ****     }
 1448                           .loc 1 1580 14 view .LVU368
 1449 0016 7047                 bx      lr
 1450                   .LVL187:
 1451                   .L43:
1580:../libBME280/src/bme280.c ****     }
 1452                           .loc 1 1580 14 view .LVU369
 1453 0018 4FF0FF30             mov     r0, #-1
 1454                   .LVL188:
1580:../libBME280/src/bme280.c ****     }
 1455                           .loc 1 1580 14 view .LVU370
 1456 001c 7047                 bx      lr
 1457                   .LVL189:
 1458                   .L44:
1580:../libBME280/src/bme280.c ****     }
 1459                           .loc 1 1580 14 view .LVU371
 1460 001e 4FF0FF30             mov     r0, #-1
 1461                   .LVL190:
1580:../libBME280/src/bme280.c ****     }
 1462                           .loc 1 1580 14 view .LVU372
 1463 0022 7047                 bx      lr
 1464                   .LVL191:
 1465                   .L45:
1580:../libBME280/src/bme280.c ****     }
 1466                           .loc 1 1580 14 view .LVU373
 1467 0024 4FF0FF30             mov     r0, #-1
 1468                   .LVL192:
1580:../libBME280/src/bme280.c ****     }
 1469                           .loc 1 1580 14 view .LVU374
 1470 0028 7047                 bx      lr
 1471                           .cfi_endproc
 1472                   .LFE32:
 1474                           .section        .text.bme280_get_regs,"ax",%progbits
 1475                           .align  1
 1476                           .global bme280_get_regs
 1477                           .syntax unified
 1478                           .thumb
 1479                           .thumb_func
 1480                           .fpu softvfp
 1482                   bme280_get_regs:
 1483                   .LVL193:
 1484                   .LFB1:
 459:../libBME280/src/bme280.c ****     int8_t rslt;
 1485                           .loc 1 459 1 is_stmt 1 view -0
 1486                           .cfi_startproc
 1487                           @ args = 0, pretend = 0, frame = 0
 1488                           @ frame_needed = 0, uses_anonymous_args = 0
 459:../libBME280/src/bme280.c ****     int8_t rslt;
 1489                           .loc 1 459 1 is_stmt 0 view .LVU376
 1490 0000 2DE9F843             push    {r3, r4, r5, r6, r7, r8, r9, lr}
 1491                   .LCFI7:
 1492                           .cfi_def_cfa_offset 32
 1493                           .cfi_offset 3, -32
 1494                           .cfi_offset 4, -28
 1495                           .cfi_offset 5, -24
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 55


 1496                           .cfi_offset 6, -20
 1497                           .cfi_offset 7, -16
 1498                           .cfi_offset 8, -12
 1499                           .cfi_offset 9, -8
 1500                           .cfi_offset 14, -4
 1501 0004 0546                 mov     r5, r0
 1502 0006 0E46                 mov     r6, r1
 1503 0008 9146                 mov     r9, r2
 1504 000a 1C46                 mov     r4, r3
 460:../libBME280/src/bme280.c **** 
 1505                           .loc 1 460 5 is_stmt 1 view .LVU377
 463:../libBME280/src/bme280.c **** 
 1506                           .loc 1 463 5 view .LVU378
 463:../libBME280/src/bme280.c **** 
 1507                           .loc 1 463 12 is_stmt 0 view .LVU379
 1508 000c 1846                 mov     r0, r3
 1509                   .LVL194:
 463:../libBME280/src/bme280.c **** 
 1510                           .loc 1 463 12 view .LVU380
 1511 000e FFF7FEFF             bl      null_ptr_check
 1512                   .LVL195:
 466:../libBME280/src/bme280.c ****     {
 1513                           .loc 1 466 5 is_stmt 1 view .LVU381
 466:../libBME280/src/bme280.c ****     {
 1514                           .loc 1 466 8 is_stmt 0 view .LVU382
 1515 0012 90B9                 cbnz    r0, .L51
 1516 0014 8046                 mov     r8, r0
 466:../libBME280/src/bme280.c ****     {
 1517                           .loc 1 466 29 discriminator 1 view .LVU383
 1518 0016 9EB1                 cbz     r6, .L52
 469:../libBME280/src/bme280.c ****         {
 1519                           .loc 1 469 9 is_stmt 1 view .LVU384
 469:../libBME280/src/bme280.c ****         {
 1520                           .loc 1 469 16 is_stmt 0 view .LVU385
 1521 0018 237A                 ldrb    r3, [r4, #8]    @ zero_extendqisi2
 469:../libBME280/src/bme280.c ****         {
 1522                           .loc 1 469 12 view .LVU386
 1523 001a 012B                 cmp     r3, #1
 1524 001c 01D0                 beq     .L50
 471:../libBME280/src/bme280.c ****         }
 1525                           .loc 1 471 13 is_stmt 1 view .LVU387
 471:../libBME280/src/bme280.c ****         }
 1526                           .loc 1 471 22 is_stmt 0 view .LVU388
 1527 001e 45F08005             orr     r5, r5, #128
 1528                   .LVL196:
 1529                   .L50:
 475:../libBME280/src/bme280.c **** 
 1530                           .loc 1 475 9 is_stmt 1 view .LVU389
 475:../libBME280/src/bme280.c **** 
 1531                           .loc 1 475 29 is_stmt 0 view .LVU390
 1532 0022 E768                 ldr     r7, [r4, #12]
 475:../libBME280/src/bme280.c **** 
 1533                           .loc 1 475 26 view .LVU391
 1534 0024 6368                 ldr     r3, [r4, #4]
 1535 0026 4A46                 mov     r2, r9
 1536 0028 3146                 mov     r1, r6
 1537 002a 2846                 mov     r0, r5
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 56


 1538                   .LVL197:
 475:../libBME280/src/bme280.c **** 
 1539                           .loc 1 475 26 view .LVU392
 1540 002c B847                 blx     r7
 1541                   .LVL198:
 475:../libBME280/src/bme280.c **** 
 1542                           .loc 1 475 24 view .LVU393
 1543 002e 84F84500             strb    r0, [r4, #69]
 478:../libBME280/src/bme280.c ****         {
 1544                           .loc 1 478 9 is_stmt 1 view .LVU394
 478:../libBME280/src/bme280.c ****         {
 1545                           .loc 1 478 12 is_stmt 0 view .LVU395
 1546 0032 40B9                 cbnz    r0, .L55
 1547                   .LVL199:
 1548                   .L49:
 488:../libBME280/src/bme280.c **** }
 1549                           .loc 1 488 5 is_stmt 1 view .LVU396
 489:../libBME280/src/bme280.c **** 
 1550                           .loc 1 489 1 is_stmt 0 view .LVU397
 1551 0034 4046                 mov     r0, r8
 1552 0036 BDE8F883             pop     {r3, r4, r5, r6, r7, r8, r9, pc}
 1553                   .LVL200:
 1554                   .L51:
 485:../libBME280/src/bme280.c ****     }
 1555                           .loc 1 485 14 view .LVU398
 1556 003a 4FF0FF38             mov     r8, #-1
 1557 003e F9E7                 b       .L49
 1558                   .L52:
 1559 0040 4FF0FF38             mov     r8, #-1
 1560 0044 F6E7                 b       .L49
 1561                   .LVL201:
 1562                   .L55:
 480:../libBME280/src/bme280.c ****         }
 1563                           .loc 1 480 18 view .LVU399
 1564 0046 6FF00308             mvn     r8, #3
 1565 004a F3E7                 b       .L49
 1566                           .cfi_endproc
 1567                   .LFE1:
 1569                           .section        .text.get_calib_data,"ax",%progbits
 1570                           .align  1
 1571                           .syntax unified
 1572                           .thumb
 1573                           .thumb_func
 1574                           .fpu softvfp
 1576                   get_calib_data:
 1577                   .LVL202:
 1578                   .LFB27:
1453:../libBME280/src/bme280.c ****     int8_t rslt;
 1579                           .loc 1 1453 1 is_stmt 1 view -0
 1580                           .cfi_startproc
 1581                           @ args = 0, pretend = 0, frame = 32
 1582                           @ frame_needed = 0, uses_anonymous_args = 0
1453:../libBME280/src/bme280.c ****     int8_t rslt;
 1583                           .loc 1 1453 1 is_stmt 0 view .LVU401
 1584 0000 30B5                 push    {r4, r5, lr}
 1585                   .LCFI8:
 1586                           .cfi_def_cfa_offset 12
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 57


 1587                           .cfi_offset 4, -12
 1588                           .cfi_offset 5, -8
 1589                           .cfi_offset 14, -4
 1590 0002 89B0                 sub     sp, sp, #36
 1591                   .LCFI9:
 1592                           .cfi_def_cfa_offset 48
 1593 0004 0446                 mov     r4, r0
1454:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_TEMP_PRESS_CALIB_DATA_ADDR;
 1594                           .loc 1 1454 5 is_stmt 1 view .LVU402
1455:../libBME280/src/bme280.c **** 
 1595                           .loc 1 1455 5 view .LVU403
 1596                   .LVL203:
1458:../libBME280/src/bme280.c **** 
 1597                           .loc 1 1458 5 view .LVU404
1458:../libBME280/src/bme280.c **** 
 1598                           .loc 1 1458 13 is_stmt 0 view .LVU405
 1599 0006 0023                 movs    r3, #0
 1600 0008 0193                 str     r3, [sp, #4]
 1601 000a 0293                 str     r3, [sp, #8]
 1602 000c 0393                 str     r3, [sp, #12]
 1603 000e 0493                 str     r3, [sp, #16]
 1604 0010 0593                 str     r3, [sp, #20]
 1605 0012 0693                 str     r3, [sp, #24]
 1606 0014 ADF81C30             strh    r3, [sp, #28]   @ movhi
1461:../libBME280/src/bme280.c **** 
 1607                           .loc 1 1461 5 is_stmt 1 view .LVU406
1461:../libBME280/src/bme280.c **** 
 1608                           .loc 1 1461 12 is_stmt 0 view .LVU407
 1609 0018 0346                 mov     r3, r0
 1610 001a 1A22                 movs    r2, #26
 1611 001c 01A9                 add     r1, sp, #4
 1612 001e 8820                 movs    r0, #136
 1613                   .LVL204:
1461:../libBME280/src/bme280.c **** 
 1614                           .loc 1 1461 12 view .LVU408
 1615 0020 FFF7FEFF             bl      bme280_get_regs
 1616                   .LVL205:
1463:../libBME280/src/bme280.c ****     {
 1617                           .loc 1 1463 5 is_stmt 1 view .LVU409
1463:../libBME280/src/bme280.c ****     {
 1618                           .loc 1 1463 8 is_stmt 0 view .LVU410
 1619 0024 0546                 mov     r5, r0
 1620 0026 10B1                 cbz     r0, .L59
 1621                   .LVL206:
 1622                   .L57:
1483:../libBME280/src/bme280.c **** }
 1623                           .loc 1 1483 5 is_stmt 1 view .LVU411
1484:../libBME280/src/bme280.c **** 
 1624                           .loc 1 1484 1 is_stmt 0 view .LVU412
 1625 0028 2846                 mov     r0, r5
 1626 002a 09B0                 add     sp, sp, #36
 1627                   .LCFI10:
 1628                           .cfi_remember_state
 1629                           .cfi_def_cfa_offset 12
 1630                           @ sp needed
 1631 002c 30BD                 pop     {r4, r5, pc}
 1632                   .LVL207:
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 58


 1633                   .L59:
 1634                   .LCFI11:
 1635                           .cfi_restore_state
1468:../libBME280/src/bme280.c ****         reg_addr = BME280_HUMIDITY_CALIB_DATA_ADDR;
 1636                           .loc 1 1468 9 is_stmt 1 view .LVU413
 1637 002e 2146                 mov     r1, r4
 1638 0030 01A8                 add     r0, sp, #4
 1639                   .LVL208:
1468:../libBME280/src/bme280.c ****         reg_addr = BME280_HUMIDITY_CALIB_DATA_ADDR;
 1640                           .loc 1 1468 9 is_stmt 0 view .LVU414
 1641 0032 FFF7FEFF             bl      parse_temp_press_calib_data
 1642                   .LVL209:
1469:../libBME280/src/bme280.c **** 
 1643                           .loc 1 1469 9 is_stmt 1 view .LVU415
1472:../libBME280/src/bme280.c **** 
 1644                           .loc 1 1472 9 view .LVU416
1472:../libBME280/src/bme280.c **** 
 1645                           .loc 1 1472 16 is_stmt 0 view .LVU417
 1646 0036 2346                 mov     r3, r4
 1647 0038 0722                 movs    r2, #7
 1648 003a 01A9                 add     r1, sp, #4
 1649 003c E120                 movs    r0, #225
 1650 003e FFF7FEFF             bl      bme280_get_regs
 1651                   .LVL210:
1474:../libBME280/src/bme280.c ****         {
 1652                           .loc 1 1474 9 is_stmt 1 view .LVU418
1474:../libBME280/src/bme280.c ****         {
 1653                           .loc 1 1474 12 is_stmt 0 view .LVU419
 1654 0042 0546                 mov     r5, r0
 1655 0044 0028                 cmp     r0, #0
 1656 0046 EFD1                 bne     .L57
1479:../libBME280/src/bme280.c ****         }
 1657                           .loc 1 1479 13 is_stmt 1 view .LVU420
 1658 0048 2146                 mov     r1, r4
 1659 004a 01A8                 add     r0, sp, #4
 1660                   .LVL211:
1479:../libBME280/src/bme280.c ****         }
 1661                           .loc 1 1479 13 is_stmt 0 view .LVU421
 1662 004c FFF7FEFF             bl      parse_humidity_calib_data
 1663                   .LVL212:
 1664 0050 EAE7                 b       .L57
 1665                           .cfi_endproc
 1666                   .LFE27:
 1668                           .section        .text.bme280_set_regs,"ax",%progbits
 1669                           .align  1
 1670                           .global bme280_set_regs
 1671                           .syntax unified
 1672                           .thumb
 1673                           .thumb_func
 1674                           .fpu softvfp
 1676                   bme280_set_regs:
 1677                   .LVL213:
 1678                   .LFB2:
 496:../libBME280/src/bme280.c ****     int8_t rslt;
 1679                           .loc 1 496 1 is_stmt 1 view -0
 1680                           .cfi_startproc
 1681                           @ args = 0, pretend = 0, frame = 24
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 59


 1682                           @ frame_needed = 0, uses_anonymous_args = 0
 496:../libBME280/src/bme280.c ****     int8_t rslt;
 1683                           .loc 1 496 1 is_stmt 0 view .LVU423
 1684 0000 2DE9F041             push    {r4, r5, r6, r7, r8, lr}
 1685                   .LCFI12:
 1686                           .cfi_def_cfa_offset 24
 1687                           .cfi_offset 4, -24
 1688                           .cfi_offset 5, -20
 1689                           .cfi_offset 6, -16
 1690                           .cfi_offset 7, -12
 1691                           .cfi_offset 8, -8
 1692                           .cfi_offset 14, -4
 1693 0004 86B0                 sub     sp, sp, #24
 1694                   .LCFI13:
 1695                           .cfi_def_cfa_offset 48
 1696 0006 0546                 mov     r5, r0
 1697 0008 0F46                 mov     r7, r1
 1698 000a 1446                 mov     r4, r2
 1699 000c 1E46                 mov     r6, r3
 497:../libBME280/src/bme280.c ****     uint8_t temp_buff[20]; /* Typically not to write more than 10 registers */
 1700                           .loc 1 497 5 is_stmt 1 view .LVU424
 498:../libBME280/src/bme280.c **** 
 1701                           .loc 1 498 5 view .LVU425
 500:../libBME280/src/bme280.c ****     {
 1702                           .loc 1 500 5 view .LVU426
 500:../libBME280/src/bme280.c ****     {
 1703                           .loc 1 500 8 is_stmt 0 view .LVU427
 1704 000e 0A2A                 cmp     r2, #10
 1705 0010 00D9                 bls     .L61
 502:../libBME280/src/bme280.c ****     }
 1706                           .loc 1 502 13 view .LVU428
 1707 0012 0A24                 movs    r4, #10
 1708                   .L61:
 1709                   .LVL214:
 505:../libBME280/src/bme280.c ****     uint8_t reg_addr_cnt;
 1710                           .loc 1 505 5 is_stmt 1 view .LVU429
 506:../libBME280/src/bme280.c **** 
 1711                           .loc 1 506 5 view .LVU430
 509:../libBME280/src/bme280.c **** 
 1712                           .loc 1 509 5 view .LVU431
 509:../libBME280/src/bme280.c **** 
 1713                           .loc 1 509 12 is_stmt 0 view .LVU432
 1714 0014 3046                 mov     r0, r6
 1715                   .LVL215:
 509:../libBME280/src/bme280.c **** 
 1716                           .loc 1 509 12 view .LVU433
 1717 0016 FFF7FEFF             bl      null_ptr_check
 1718                   .LVL216:
 512:../libBME280/src/bme280.c ****     {
 1719                           .loc 1 512 5 is_stmt 1 view .LVU434
 512:../libBME280/src/bme280.c ****     {
 1720                           .loc 1 512 8 is_stmt 0 view .LVU435
 1721 001a 8046                 mov     r8, r0
 1722 001c 58BB                 cbnz    r0, .L69
 512:../libBME280/src/bme280.c ****     {
 1723                           .loc 1 512 29 discriminator 1 view .LVU436
 1724 001e 6DB3                 cbz     r5, .L70
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 60


 512:../libBME280/src/bme280.c ****     {
 1725                           .loc 1 512 51 discriminator 2 view .LVU437
 1726 0020 7FB3                 cbz     r7, .L71
 514:../libBME280/src/bme280.c ****         {
 1727                           .loc 1 514 9 is_stmt 1 view .LVU438
 514:../libBME280/src/bme280.c ****         {
 1728                           .loc 1 514 12 is_stmt 0 view .LVU439
 1729 0022 8CB3                 cbz     r4, .L72
 516:../libBME280/src/bme280.c **** 
 1730                           .loc 1 516 13 is_stmt 1 view .LVU440
 516:../libBME280/src/bme280.c **** 
 1731                           .loc 1 516 36 is_stmt 0 view .LVU441
 1732 0024 3B78                 ldrb    r3, [r7]        @ zero_extendqisi2
 516:../libBME280/src/bme280.c **** 
 1733                           .loc 1 516 26 view .LVU442
 1734 0026 8DF80430             strb    r3, [sp, #4]
 519:../libBME280/src/bme280.c ****             {
 1735                           .loc 1 519 13 is_stmt 1 view .LVU443
 519:../libBME280/src/bme280.c ****             {
 1736                           .loc 1 519 20 is_stmt 0 view .LVU444
 1737 002a 337A                 ldrb    r3, [r6, #8]    @ zero_extendqisi2
 519:../libBME280/src/bme280.c ****             {
 1738                           .loc 1 519 16 view .LVU445
 1739 002c 012B                 cmp     r3, #1
 1740 002e 09D0                 beq     .L64
 521:../libBME280/src/bme280.c ****                 {
 1741                           .loc 1 521 35 view .LVU446
 1742 0030 0023                 movs    r3, #0
 1743                   .L63:
 1744                   .LVL217:
 521:../libBME280/src/bme280.c ****                 {
 1745                           .loc 1 521 17 discriminator 1 view .LVU447
 1746 0032 9C42                 cmp     r4, r3
 1747 0034 06D9                 bls     .L64
 523:../libBME280/src/bme280.c ****                 }
 1748                           .loc 1 523 21 is_stmt 1 discriminator 3 view .LVU448
 523:../libBME280/src/bme280.c ****                 }
 1749                           .loc 1 523 54 is_stmt 0 discriminator 3 view .LVU449
 1750 0036 E95C                 ldrb    r1, [r5, r3]    @ zero_extendqisi2
 523:../libBME280/src/bme280.c ****                 }
 1751                           .loc 1 523 69 discriminator 3 view .LVU450
 1752 0038 01F07F01             and     r1, r1, #127
 523:../libBME280/src/bme280.c ****                 }
 1753                           .loc 1 523 44 discriminator 3 view .LVU451
 1754 003c E954                 strb    r1, [r5, r3]
 521:../libBME280/src/bme280.c ****                 {
 1755                           .loc 1 521 72 discriminator 3 view .LVU452
 1756 003e 0133                 adds    r3, r3, #1
 1757                   .LVL218:
 521:../libBME280/src/bme280.c ****                 {
 1758                           .loc 1 521 72 discriminator 3 view .LVU453
 1759 0040 DBB2                 uxtb    r3, r3
 1760                   .LVL219:
 521:../libBME280/src/bme280.c ****                 {
 1761                           .loc 1 521 72 discriminator 3 view .LVU454
 1762 0042 F6E7                 b       .L63
 1763                   .LVL220:
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 61


 1764                   .L64:
 528:../libBME280/src/bme280.c ****             {
 1765                           .loc 1 528 13 is_stmt 1 view .LVU455
 528:../libBME280/src/bme280.c ****             {
 1766                           .loc 1 528 16 is_stmt 0 view .LVU456
 1767 0044 012C                 cmp     r4, #1
 1768 0046 0CD8                 bhi     .L76
 538:../libBME280/src/bme280.c ****             }
 1769                           .loc 1 538 17 is_stmt 1 view .LVU457
 538:../libBME280/src/bme280.c ****             }
 1770                           .loc 1 538 26 is_stmt 0 view .LVU458
 1771 0048 A2B2                 uxth    r2, r4
 1772                   .LVL221:
 1773                   .L67:
 541:../libBME280/src/bme280.c **** 
 1774                           .loc 1 541 13 is_stmt 1 view .LVU459
 541:../libBME280/src/bme280.c **** 
 1775                           .loc 1 541 33 is_stmt 0 view .LVU460
 1776 004a 3769                 ldr     r7, [r6, #16]
 1777                   .LVL222:
 541:../libBME280/src/bme280.c **** 
 1778                           .loc 1 541 30 view .LVU461
 1779 004c 7368                 ldr     r3, [r6, #4]
 1780 004e 01A9                 add     r1, sp, #4
 1781 0050 2878                 ldrb    r0, [r5]        @ zero_extendqisi2
 1782 0052 B847                 blx     r7
 1783                   .LVL223:
 541:../libBME280/src/bme280.c **** 
 1784                           .loc 1 541 28 view .LVU462
 1785 0054 86F84500             strb    r0, [r6, #69]
 544:../libBME280/src/bme280.c ****             {
 1786                           .loc 1 544 13 is_stmt 1 view .LVU463
 544:../libBME280/src/bme280.c ****             {
 1787                           .loc 1 544 16 is_stmt 0 view .LVU464
 1788 0058 C8B9                 cbnz    r0, .L77
 1789                   .L62:
 1790                   .LVL224:
 559:../libBME280/src/bme280.c **** }
 1791                           .loc 1 559 5 is_stmt 1 view .LVU465
 560:../libBME280/src/bme280.c **** 
 1792                           .loc 1 560 1 is_stmt 0 view .LVU466
 1793 005a 4046                 mov     r0, r8
 1794 005c 06B0                 add     sp, sp, #24
 1795                   .LCFI14:
 1796                           .cfi_remember_state
 1797                           .cfi_def_cfa_offset 24
 1798                           @ sp needed
 1799 005e BDE8F081             pop     {r4, r5, r6, r7, r8, pc}
 1800                   .LVL225:
 1801                   .L76:
 1802                   .LCFI15:
 1803                           .cfi_restore_state
 533:../libBME280/src/bme280.c ****                 temp_len = ((len * 2) - 1);
 1804                           .loc 1 533 17 is_stmt 1 view .LVU467
 1805 0062 2346                 mov     r3, r4
 1806 0064 3A46                 mov     r2, r7
 1807 0066 01A9                 add     r1, sp, #4
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 62


 1808 0068 2846                 mov     r0, r5
 1809                   .LVL226:
 533:../libBME280/src/bme280.c ****                 temp_len = ((len * 2) - 1);
 1810                           .loc 1 533 17 is_stmt 0 view .LVU468
 1811 006a FFF7FEFF             bl      interleave_reg_addr
 1812                   .LVL227:
 534:../libBME280/src/bme280.c ****             }
 1813                           .loc 1 534 17 is_stmt 1 view .LVU469
 534:../libBME280/src/bme280.c ****             }
 1814                           .loc 1 534 39 is_stmt 0 view .LVU470
 1815 006e 6400                 lsls    r4, r4, #1
 1816                   .LVL228:
 534:../libBME280/src/bme280.c ****             }
 1817                           .loc 1 534 26 view .LVU471
 1818 0070 013C                 subs    r4, r4, #1
 1819 0072 A2B2                 uxth    r2, r4
 1820                   .LVL229:
 534:../libBME280/src/bme280.c ****             }
 1821                           .loc 1 534 26 view .LVU472
 1822 0074 E9E7                 b       .L67
 1823                   .LVL230:
 1824                   .L69:
 556:../libBME280/src/bme280.c ****     }
 1825                           .loc 1 556 14 view .LVU473
 1826 0076 4FF0FF38             mov     r8, #-1
 1827 007a EEE7                 b       .L62
 1828                   .L70:
 1829 007c 4FF0FF38             mov     r8, #-1
 1830 0080 EBE7                 b       .L62
 1831                   .L71:
 1832 0082 4FF0FF38             mov     r8, #-1
 1833 0086 E8E7                 b       .L62
 1834                   .L72:
 551:../libBME280/src/bme280.c ****         }
 1835                           .loc 1 551 18 view .LVU474
 1836 0088 6FF00208             mvn     r8, #2
 1837 008c E5E7                 b       .L62
 1838                   .LVL231:
 1839                   .L77:
 546:../libBME280/src/bme280.c ****             }
 1840                           .loc 1 546 22 view .LVU475
 1841 008e 6FF00308             mvn     r8, #3
 1842 0092 E2E7                 b       .L62
 1843                           .cfi_endproc
 1844                   .LFE2:
 1846                           .section        .text.set_osr_humidity_settings,"ax",%progbits
 1847                           .align  1
 1848                           .syntax unified
 1849                           .thumb
 1850                           .thumb_func
 1851                           .fpu softvfp
 1853                   set_osr_humidity_settings:
 1854                   .LVL232:
 1855                   .LFB13:
 927:../libBME280/src/bme280.c ****     int8_t rslt;
 1856                           .loc 1 927 1 is_stmt 1 view -0
 1857                           .cfi_startproc
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 63


 1858                           @ args = 0, pretend = 0, frame = 8
 1859                           @ frame_needed = 0, uses_anonymous_args = 0
 927:../libBME280/src/bme280.c ****     int8_t rslt;
 1860                           .loc 1 927 1 is_stmt 0 view .LVU477
 1861 0000 10B5                 push    {r4, lr}
 1862                   .LCFI16:
 1863                           .cfi_def_cfa_offset 8
 1864                           .cfi_offset 4, -8
 1865                           .cfi_offset 14, -4
 1866 0002 82B0                 sub     sp, sp, #8
 1867                   .LCFI17:
 1868                           .cfi_def_cfa_offset 16
 1869 0004 0C46                 mov     r4, r1
 928:../libBME280/src/bme280.c ****     uint8_t ctrl_hum;
 1870                           .loc 1 928 5 is_stmt 1 view .LVU478
 929:../libBME280/src/bme280.c ****     uint8_t ctrl_meas;
 1871                           .loc 1 929 5 view .LVU479
 930:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_CTRL_HUM_ADDR;
 1872                           .loc 1 930 5 view .LVU480
 931:../libBME280/src/bme280.c **** 
 1873                           .loc 1 931 5 view .LVU481
 931:../libBME280/src/bme280.c **** 
 1874                           .loc 1 931 13 is_stmt 0 view .LVU482
 1875 0006 F223                 movs    r3, #242
 1876 0008 8DF80530             strb    r3, [sp, #5]
 933:../libBME280/src/bme280.c **** 
 1877                           .loc 1 933 5 is_stmt 1 view .LVU483
 933:../libBME280/src/bme280.c **** 
 1878                           .loc 1 933 24 is_stmt 0 view .LVU484
 1879 000c 8378                 ldrb    r3, [r0, #2]    @ zero_extendqisi2
 933:../libBME280/src/bme280.c **** 
 1880                           .loc 1 933 32 view .LVU485
 1881 000e 03F00703             and     r3, r3, #7
 933:../libBME280/src/bme280.c **** 
 1882                           .loc 1 933 14 view .LVU486
 1883 0012 8DF80730             strb    r3, [sp, #7]
 936:../libBME280/src/bme280.c **** 
 1884                           .loc 1 936 5 is_stmt 1 view .LVU487
 936:../libBME280/src/bme280.c **** 
 1885                           .loc 1 936 12 is_stmt 0 view .LVU488
 1886 0016 0B46                 mov     r3, r1
 1887 0018 0122                 movs    r2, #1
 1888 001a 0DF10701             add     r1, sp, #7
 1889                   .LVL233:
 936:../libBME280/src/bme280.c **** 
 1890                           .loc 1 936 12 view .LVU489
 1891 001e 0DF10500             add     r0, sp, #5
 1892                   .LVL234:
 936:../libBME280/src/bme280.c **** 
 1893                           .loc 1 936 12 view .LVU490
 1894 0022 FFF7FEFF             bl      bme280_set_regs
 1895                   .LVL235:
 941:../libBME280/src/bme280.c ****     {
 1896                           .loc 1 941 5 is_stmt 1 view .LVU491
 941:../libBME280/src/bme280.c ****     {
 1897                           .loc 1 941 8 is_stmt 0 view .LVU492
 1898 0026 0346                 mov     r3, r0
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 64


 1899 0028 10B1                 cbz     r0, .L81
 1900                   .LVL236:
 1901                   .L79:
 952:../libBME280/src/bme280.c **** }
 1902                           .loc 1 952 5 is_stmt 1 view .LVU493
 953:../libBME280/src/bme280.c **** 
 1903                           .loc 1 953 1 is_stmt 0 view .LVU494
 1904 002a 1846                 mov     r0, r3
 1905 002c 02B0                 add     sp, sp, #8
 1906                   .LCFI18:
 1907                           .cfi_remember_state
 1908                           .cfi_def_cfa_offset 8
 1909                           @ sp needed
 1910 002e 10BD                 pop     {r4, pc}
 1911                   .LVL237:
 1912                   .L81:
 1913                   .LCFI19:
 1914                           .cfi_restore_state
 943:../libBME280/src/bme280.c ****         rslt = bme280_get_regs(reg_addr, &ctrl_meas, 1, dev);
 1915                           .loc 1 943 9 is_stmt 1 view .LVU495
 943:../libBME280/src/bme280.c ****         rslt = bme280_get_regs(reg_addr, &ctrl_meas, 1, dev);
 1916                           .loc 1 943 18 is_stmt 0 view .LVU496
 1917 0030 F420                 movs    r0, #244
 1918                   .LVL238:
 943:../libBME280/src/bme280.c ****         rslt = bme280_get_regs(reg_addr, &ctrl_meas, 1, dev);
 1919                           .loc 1 943 18 view .LVU497
 1920 0032 8DF80500             strb    r0, [sp, #5]
 944:../libBME280/src/bme280.c **** 
 1921                           .loc 1 944 9 is_stmt 1 view .LVU498
 944:../libBME280/src/bme280.c **** 
 1922                           .loc 1 944 16 is_stmt 0 view .LVU499
 1923 0036 2346                 mov     r3, r4
 1924 0038 0122                 movs    r2, #1
 1925 003a 0DF10601             add     r1, sp, #6
 1926 003e FFF7FEFF             bl      bme280_get_regs
 1927                   .LVL239:
 946:../libBME280/src/bme280.c ****         {
 1928                           .loc 1 946 9 is_stmt 1 view .LVU500
 946:../libBME280/src/bme280.c ****         {
 1929                           .loc 1 946 12 is_stmt 0 view .LVU501
 1930 0042 0346                 mov     r3, r0
 1931 0044 0028                 cmp     r0, #0
 1932 0046 F0D1                 bne     .L79
 948:../libBME280/src/bme280.c ****         }
 1933                           .loc 1 948 13 is_stmt 1 view .LVU502
 948:../libBME280/src/bme280.c ****         }
 1934                           .loc 1 948 20 is_stmt 0 view .LVU503
 1935 0048 2346                 mov     r3, r4
 1936 004a 0122                 movs    r2, #1
 1937 004c 0DF10601             add     r1, sp, #6
 1938 0050 0DF10500             add     r0, sp, #5
 1939                   .LVL240:
 948:../libBME280/src/bme280.c ****         }
 1940                           .loc 1 948 20 view .LVU504
 1941 0054 FFF7FEFF             bl      bme280_set_regs
 1942                   .LVL241:
 1943 0058 0346                 mov     r3, r0
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 65


 1944                   .LVL242:
 948:../libBME280/src/bme280.c ****         }
 1945                           .loc 1 948 20 view .LVU505
 1946 005a E6E7                 b       .L79
 1947                           .cfi_endproc
 1948                   .LFE13:
 1950                           .section        .text.set_osr_press_temp_settings,"ax",%progbits
 1951                           .align  1
 1952                           .syntax unified
 1953                           .thumb
 1954                           .thumb_func
 1955                           .fpu softvfp
 1957                   set_osr_press_temp_settings:
 1958                   .LVL243:
 1959                   .LFB14:
 962:../libBME280/src/bme280.c ****     int8_t rslt;
 1960                           .loc 1 962 1 is_stmt 1 view -0
 1961                           .cfi_startproc
 1962                           @ args = 0, pretend = 0, frame = 8
 1963                           @ frame_needed = 0, uses_anonymous_args = 0
 962:../libBME280/src/bme280.c ****     int8_t rslt;
 1964                           .loc 1 962 1 is_stmt 0 view .LVU507
 1965 0000 70B5                 push    {r4, r5, r6, lr}
 1966                   .LCFI20:
 1967                           .cfi_def_cfa_offset 16
 1968                           .cfi_offset 4, -16
 1969                           .cfi_offset 5, -12
 1970                           .cfi_offset 6, -8
 1971                           .cfi_offset 14, -4
 1972 0002 82B0                 sub     sp, sp, #8
 1973                   .LCFI21:
 1974                           .cfi_def_cfa_offset 24
 1975 0004 0546                 mov     r5, r0
 1976 0006 0E46                 mov     r6, r1
 1977 0008 1446                 mov     r4, r2
 963:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_CTRL_MEAS_ADDR;
 1978                           .loc 1 963 5 is_stmt 1 view .LVU508
 964:../libBME280/src/bme280.c ****     uint8_t reg_data;
 1979                           .loc 1 964 5 view .LVU509
 964:../libBME280/src/bme280.c ****     uint8_t reg_data;
 1980                           .loc 1 964 13 is_stmt 0 view .LVU510
 1981 000a F420                 movs    r0, #244
 1982                   .LVL244:
 964:../libBME280/src/bme280.c ****     uint8_t reg_data;
 1983                           .loc 1 964 13 view .LVU511
 1984 000c 8DF80700             strb    r0, [sp, #7]
 965:../libBME280/src/bme280.c **** 
 1985                           .loc 1 965 5 is_stmt 1 view .LVU512
 967:../libBME280/src/bme280.c **** 
 1986                           .loc 1 967 5 view .LVU513
 967:../libBME280/src/bme280.c **** 
 1987                           .loc 1 967 12 is_stmt 0 view .LVU514
 1988 0010 1346                 mov     r3, r2
 1989 0012 0122                 movs    r2, #1
 1990                   .LVL245:
 967:../libBME280/src/bme280.c **** 
 1991                           .loc 1 967 12 view .LVU515
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 66


 1992 0014 0DF10601             add     r1, sp, #6
 1993                   .LVL246:
 967:../libBME280/src/bme280.c **** 
 1994                           .loc 1 967 12 view .LVU516
 1995 0018 FFF7FEFF             bl      bme280_get_regs
 1996                   .LVL247:
 969:../libBME280/src/bme280.c ****     {
 1997                           .loc 1 969 5 is_stmt 1 view .LVU517
 969:../libBME280/src/bme280.c ****     {
 1998                           .loc 1 969 8 is_stmt 0 view .LVU518
 1999 001c 0346                 mov     r3, r0
 2000 001e 70B9                 cbnz    r0, .L83
 971:../libBME280/src/bme280.c ****         {
 2001                           .loc 1 971 9 is_stmt 1 view .LVU519
 971:../libBME280/src/bme280.c ****         {
 2002                           .loc 1 971 12 is_stmt 0 view .LVU520
 2003 0020 15F0010F             tst     r5, #1
 2004 0024 0ED1                 bne     .L87
 2005                   .LVL248:
 2006                   .L84:
 976:../libBME280/src/bme280.c ****         {
 2007                           .loc 1 976 9 is_stmt 1 view .LVU521
 976:../libBME280/src/bme280.c ****         {
 2008                           .loc 1 976 12 is_stmt 0 view .LVU522
 2009 0026 15F0020F             tst     r5, #2
 2010 002a 11D1                 bne     .L88
 2011                   .L85:
 982:../libBME280/src/bme280.c ****     }
 2012                           .loc 1 982 9 is_stmt 1 view .LVU523
 982:../libBME280/src/bme280.c ****     }
 2013                           .loc 1 982 16 is_stmt 0 view .LVU524
 2014 002c 2346                 mov     r3, r4
 2015 002e 0122                 movs    r2, #1
 2016 0030 0DF10601             add     r1, sp, #6
 2017 0034 0DF10700             add     r0, sp, #7
 2018 0038 FFF7FEFF             bl      bme280_set_regs
 2019                   .LVL249:
 2020 003c 0346                 mov     r3, r0
 2021                   .LVL250:
 2022                   .L83:
 985:../libBME280/src/bme280.c **** }
 2023                           .loc 1 985 5 is_stmt 1 view .LVU525
 986:../libBME280/src/bme280.c **** 
 2024                           .loc 1 986 1 is_stmt 0 view .LVU526
 2025 003e 1846                 mov     r0, r3
 2026 0040 02B0                 add     sp, sp, #8
 2027                   .LCFI22:
 2028                           .cfi_remember_state
 2029                           .cfi_def_cfa_offset 16
 2030                           @ sp needed
 2031 0042 70BD                 pop     {r4, r5, r6, pc}
 2032                   .LVL251:
 2033                   .L87:
 2034                   .LCFI23:
 2035                           .cfi_restore_state
 973:../libBME280/src/bme280.c ****         }
 2036                           .loc 1 973 13 is_stmt 1 view .LVU527
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 67


 2037 0044 3146                 mov     r1, r6
 2038 0046 0DF10600             add     r0, sp, #6
 2039                   .LVL252:
 973:../libBME280/src/bme280.c ****         }
 2040                           .loc 1 973 13 is_stmt 0 view .LVU528
 2041 004a FFF7FEFF             bl      fill_osr_press_settings
 2042                   .LVL253:
 2043 004e EAE7                 b       .L84
 2044                   .L88:
 978:../libBME280/src/bme280.c ****         }
 2045                           .loc 1 978 13 is_stmt 1 view .LVU529
 2046 0050 3146                 mov     r1, r6
 2047 0052 0DF10600             add     r0, sp, #6
 2048 0056 FFF7FEFF             bl      fill_osr_temp_settings
 2049                   .LVL254:
 2050 005a E7E7                 b       .L85
 2051                           .cfi_endproc
 2052                   .LFE14:
 2054                           .section        .text.set_osr_settings,"ax",%progbits
 2055                           .align  1
 2056                           .syntax unified
 2057                           .thumb
 2058                           .thumb_func
 2059                           .fpu softvfp
 2061                   set_osr_settings:
 2062                   .LVL255:
 2063                   .LFB12:
 907:../libBME280/src/bme280.c ****     int8_t rslt = BME280_W_INVALID_OSR_MACRO;
 2064                           .loc 1 907 1 view -0
 2065                           .cfi_startproc
 2066                           @ args = 0, pretend = 0, frame = 0
 2067                           @ frame_needed = 0, uses_anonymous_args = 0
 907:../libBME280/src/bme280.c ****     int8_t rslt = BME280_W_INVALID_OSR_MACRO;
 2068                           .loc 1 907 1 is_stmt 0 view .LVU531
 2069 0000 70B5                 push    {r4, r5, r6, lr}
 2070                   .LCFI24:
 2071                           .cfi_def_cfa_offset 16
 2072                           .cfi_offset 4, -16
 2073                           .cfi_offset 5, -12
 2074                           .cfi_offset 6, -8
 2075                           .cfi_offset 14, -4
 2076 0002 0446                 mov     r4, r0
 2077 0004 0D46                 mov     r5, r1
 2078 0006 1646                 mov     r6, r2
 908:../libBME280/src/bme280.c **** 
 2079                           .loc 1 908 5 is_stmt 1 view .LVU532
 2080                   .LVL256:
 910:../libBME280/src/bme280.c ****     {
 2081                           .loc 1 910 5 view .LVU533
 910:../libBME280/src/bme280.c ****     {
 2082                           .loc 1 910 8 is_stmt 0 view .LVU534
 2083 0008 10F0040F             tst     r0, #4
 2084 000c 04D1                 bne     .L94
 908:../libBME280/src/bme280.c **** 
 2085                           .loc 1 908 12 view .LVU535
 2086 000e 0120                 movs    r0, #1
 2087                   .LVL257:
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 68


 2088                   .L90:
 915:../libBME280/src/bme280.c ****     {
 2089                           .loc 1 915 5 is_stmt 1 view .LVU536
 915:../libBME280/src/bme280.c ****     {
 2090                           .loc 1 915 8 is_stmt 0 view .LVU537
 2091 0010 14F0030F             tst     r4, #3
 2092 0014 05D1                 bne     .L95
 2093                   .L91:
 920:../libBME280/src/bme280.c **** }
 2094                           .loc 1 920 5 is_stmt 1 view .LVU538
 921:../libBME280/src/bme280.c **** 
 2095                           .loc 1 921 1 is_stmt 0 view .LVU539
 2096 0016 70BD                 pop     {r4, r5, r6, pc}
 2097                   .LVL258:
 2098                   .L94:
 912:../libBME280/src/bme280.c ****     }
 2099                           .loc 1 912 9 is_stmt 1 view .LVU540
 912:../libBME280/src/bme280.c ****     }
 2100                           .loc 1 912 16 is_stmt 0 view .LVU541
 2101 0018 1146                 mov     r1, r2
 2102                   .LVL259:
 912:../libBME280/src/bme280.c ****     }
 2103                           .loc 1 912 16 view .LVU542
 2104 001a 2846                 mov     r0, r5
 2105                   .LVL260:
 912:../libBME280/src/bme280.c ****     }
 2106                           .loc 1 912 16 view .LVU543
 2107 001c FFF7FEFF             bl      set_osr_humidity_settings
 2108                   .LVL261:
 912:../libBME280/src/bme280.c ****     }
 2109                           .loc 1 912 16 view .LVU544
 2110 0020 F6E7                 b       .L90
 2111                   .L95:
 917:../libBME280/src/bme280.c ****     }
 2112                           .loc 1 917 9 is_stmt 1 view .LVU545
 917:../libBME280/src/bme280.c ****     }
 2113                           .loc 1 917 16 is_stmt 0 view .LVU546
 2114 0022 3246                 mov     r2, r6
 2115 0024 2946                 mov     r1, r5
 2116 0026 2046                 mov     r0, r4
 2117                   .LVL262:
 917:../libBME280/src/bme280.c ****     }
 2118                           .loc 1 917 16 view .LVU547
 2119 0028 FFF7FEFF             bl      set_osr_press_temp_settings
 2120                   .LVL263:
 917:../libBME280/src/bme280.c ****     }
 2121                           .loc 1 917 16 view .LVU548
 2122 002c F3E7                 b       .L91
 2123                           .cfi_endproc
 2124                   .LFE12:
 2126                           .section        .text.set_filter_standby_settings,"ax",%progbits
 2127                           .align  1
 2128                           .syntax unified
 2129                           .thumb
 2130                           .thumb_func
 2131                           .fpu softvfp
 2133                   set_filter_standby_settings:
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 69


 2134                   .LVL264:
 2135                   .LFB15:
 995:../libBME280/src/bme280.c ****     int8_t rslt;
 2136                           .loc 1 995 1 is_stmt 1 view -0
 2137                           .cfi_startproc
 2138                           @ args = 0, pretend = 0, frame = 8
 2139                           @ frame_needed = 0, uses_anonymous_args = 0
 995:../libBME280/src/bme280.c ****     int8_t rslt;
 2140                           .loc 1 995 1 is_stmt 0 view .LVU550
 2141 0000 70B5                 push    {r4, r5, r6, lr}
 2142                   .LCFI25:
 2143                           .cfi_def_cfa_offset 16
 2144                           .cfi_offset 4, -16
 2145                           .cfi_offset 5, -12
 2146                           .cfi_offset 6, -8
 2147                           .cfi_offset 14, -4
 2148 0002 82B0                 sub     sp, sp, #8
 2149                   .LCFI26:
 2150                           .cfi_def_cfa_offset 24
 2151 0004 0546                 mov     r5, r0
 2152 0006 0E46                 mov     r6, r1
 2153 0008 1446                 mov     r4, r2
 996:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_CONFIG_ADDR;
 2154                           .loc 1 996 5 is_stmt 1 view .LVU551
 997:../libBME280/src/bme280.c ****     uint8_t reg_data;
 2155                           .loc 1 997 5 view .LVU552
 997:../libBME280/src/bme280.c ****     uint8_t reg_data;
 2156                           .loc 1 997 13 is_stmt 0 view .LVU553
 2157 000a F520                 movs    r0, #245
 2158                   .LVL265:
 997:../libBME280/src/bme280.c ****     uint8_t reg_data;
 2159                           .loc 1 997 13 view .LVU554
 2160 000c 8DF80700             strb    r0, [sp, #7]
 998:../libBME280/src/bme280.c **** 
 2161                           .loc 1 998 5 is_stmt 1 view .LVU555
1000:../libBME280/src/bme280.c **** 
 2162                           .loc 1 1000 5 view .LVU556
1000:../libBME280/src/bme280.c **** 
 2163                           .loc 1 1000 12 is_stmt 0 view .LVU557
 2164 0010 1346                 mov     r3, r2
 2165 0012 0122                 movs    r2, #1
 2166                   .LVL266:
1000:../libBME280/src/bme280.c **** 
 2167                           .loc 1 1000 12 view .LVU558
 2168 0014 0DF10601             add     r1, sp, #6
 2169                   .LVL267:
1000:../libBME280/src/bme280.c **** 
 2170                           .loc 1 1000 12 view .LVU559
 2171 0018 FFF7FEFF             bl      bme280_get_regs
 2172                   .LVL268:
1002:../libBME280/src/bme280.c ****     {
 2173                           .loc 1 1002 5 is_stmt 1 view .LVU560
1002:../libBME280/src/bme280.c ****     {
 2174                           .loc 1 1002 8 is_stmt 0 view .LVU561
 2175 001c 0346                 mov     r3, r0
 2176 001e 70B9                 cbnz    r0, .L97
1004:../libBME280/src/bme280.c ****         {
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 70


 2177                           .loc 1 1004 9 is_stmt 1 view .LVU562
1004:../libBME280/src/bme280.c ****         {
 2178                           .loc 1 1004 12 is_stmt 0 view .LVU563
 2179 0020 15F0080F             tst     r5, #8
 2180 0024 0ED1                 bne     .L101
 2181                   .LVL269:
 2182                   .L98:
1009:../libBME280/src/bme280.c ****         {
 2183                           .loc 1 1009 9 is_stmt 1 view .LVU564
1009:../libBME280/src/bme280.c ****         {
 2184                           .loc 1 1009 12 is_stmt 0 view .LVU565
 2185 0026 15F0100F             tst     r5, #16
 2186 002a 11D1                 bne     .L102
 2187                   .L99:
1015:../libBME280/src/bme280.c ****     }
 2188                           .loc 1 1015 9 is_stmt 1 view .LVU566
1015:../libBME280/src/bme280.c ****     }
 2189                           .loc 1 1015 16 is_stmt 0 view .LVU567
 2190 002c 2346                 mov     r3, r4
 2191 002e 0122                 movs    r2, #1
 2192 0030 0DF10601             add     r1, sp, #6
 2193 0034 0DF10700             add     r0, sp, #7
 2194 0038 FFF7FEFF             bl      bme280_set_regs
 2195                   .LVL270:
 2196 003c 0346                 mov     r3, r0
 2197                   .LVL271:
 2198                   .L97:
1018:../libBME280/src/bme280.c **** }
 2199                           .loc 1 1018 5 is_stmt 1 view .LVU568
1019:../libBME280/src/bme280.c **** 
 2200                           .loc 1 1019 1 is_stmt 0 view .LVU569
 2201 003e 1846                 mov     r0, r3
 2202 0040 02B0                 add     sp, sp, #8
 2203                   .LCFI27:
 2204                           .cfi_remember_state
 2205                           .cfi_def_cfa_offset 16
 2206                           @ sp needed
 2207 0042 70BD                 pop     {r4, r5, r6, pc}
 2208                   .LVL272:
 2209                   .L101:
 2210                   .LCFI28:
 2211                           .cfi_restore_state
1006:../libBME280/src/bme280.c ****         }
 2212                           .loc 1 1006 13 is_stmt 1 view .LVU570
 2213 0044 3146                 mov     r1, r6
 2214 0046 0DF10600             add     r0, sp, #6
 2215                   .LVL273:
1006:../libBME280/src/bme280.c ****         }
 2216                           .loc 1 1006 13 is_stmt 0 view .LVU571
 2217 004a FFF7FEFF             bl      fill_filter_settings
 2218                   .LVL274:
 2219 004e EAE7                 b       .L98
 2220                   .L102:
1011:../libBME280/src/bme280.c ****         }
 2221                           .loc 1 1011 13 is_stmt 1 view .LVU572
 2222 0050 3146                 mov     r1, r6
 2223 0052 0DF10600             add     r0, sp, #6
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 71


 2224 0056 FFF7FEFF             bl      fill_standby_settings
 2225                   .LVL275:
 2226 005a E7E7                 b       .L99
 2227                           .cfi_endproc
 2228                   .LFE15:
 2230                           .section        .text.reload_device_settings,"ax",%progbits
 2231                           .align  1
 2232                           .syntax unified
 2233                           .thumb
 2234                           .thumb_func
 2235                           .fpu softvfp
 2237                   reload_device_settings:
 2238                   .LVL276:
 2239                   .LFB23:
1127:../libBME280/src/bme280.c ****     int8_t rslt;
 2240                           .loc 1 1127 1 view -0
 2241                           .cfi_startproc
 2242                           @ args = 0, pretend = 0, frame = 0
 2243                           @ frame_needed = 0, uses_anonymous_args = 0
1127:../libBME280/src/bme280.c ****     int8_t rslt;
 2244                           .loc 1 1127 1 is_stmt 0 view .LVU574
 2245 0000 38B5                 push    {r3, r4, r5, lr}
 2246                   .LCFI29:
 2247                           .cfi_def_cfa_offset 16
 2248                           .cfi_offset 3, -16
 2249                           .cfi_offset 4, -12
 2250                           .cfi_offset 5, -8
 2251                           .cfi_offset 14, -4
 2252 0002 0446                 mov     r4, r0
 2253 0004 0D46                 mov     r5, r1
1128:../libBME280/src/bme280.c **** 
 2254                           .loc 1 1128 5 is_stmt 1 view .LVU575
1130:../libBME280/src/bme280.c **** 
 2255                           .loc 1 1130 5 view .LVU576
1130:../libBME280/src/bme280.c **** 
 2256                           .loc 1 1130 12 is_stmt 0 view .LVU577
 2257 0006 0A46                 mov     r2, r1
 2258 0008 0146                 mov     r1, r0
 2259                   .LVL277:
1130:../libBME280/src/bme280.c **** 
 2260                           .loc 1 1130 12 view .LVU578
 2261 000a 1F20                 movs    r0, #31
 2262                   .LVL278:
1130:../libBME280/src/bme280.c **** 
 2263                           .loc 1 1130 12 view .LVU579
 2264 000c FFF7FEFF             bl      set_osr_settings
 2265                   .LVL279:
1132:../libBME280/src/bme280.c ****     {
 2266                           .loc 1 1132 5 is_stmt 1 view .LVU580
1132:../libBME280/src/bme280.c ****     {
 2267                           .loc 1 1132 8 is_stmt 0 view .LVU581
 2268 0010 0346                 mov     r3, r0
 2269 0012 08B1                 cbz     r0, .L106
 2270                   .LVL280:
 2271                   .L104:
1137:../libBME280/src/bme280.c **** }
 2272                           .loc 1 1137 5 is_stmt 1 view .LVU582
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 72


1138:../libBME280/src/bme280.c **** 
 2273                           .loc 1 1138 1 is_stmt 0 view .LVU583
 2274 0014 1846                 mov     r0, r3
 2275 0016 38BD                 pop     {r3, r4, r5, pc}
 2276                   .LVL281:
 2277                   .L106:
1134:../libBME280/src/bme280.c ****     }
 2278                           .loc 1 1134 9 is_stmt 1 view .LVU584
1134:../libBME280/src/bme280.c ****     }
 2279                           .loc 1 1134 16 is_stmt 0 view .LVU585
 2280 0018 2A46                 mov     r2, r5
 2281 001a 2146                 mov     r1, r4
 2282 001c 1F20                 movs    r0, #31
 2283                   .LVL282:
1134:../libBME280/src/bme280.c ****     }
 2284                           .loc 1 1134 16 view .LVU586
 2285 001e FFF7FEFF             bl      set_filter_standby_settings
 2286                   .LVL283:
 2287 0022 0346                 mov     r3, r0
 2288                   .LVL284:
1134:../libBME280/src/bme280.c ****     }
 2289                           .loc 1 1134 16 view .LVU587
 2290 0024 F6E7                 b       .L104
 2291                           .cfi_endproc
 2292                   .LFE23:
 2294                           .section        .text.write_power_mode,"ax",%progbits
 2295                           .align  1
 2296                           .syntax unified
 2297                           .thumb
 2298                           .thumb_func
 2299                           .fpu softvfp
 2301                   write_power_mode:
 2302                   .LVL285:
 2303                   .LFB21:
1075:../libBME280/src/bme280.c ****     int8_t rslt;
 2304                           .loc 1 1075 1 is_stmt 1 view -0
 2305                           .cfi_startproc
 2306                           @ args = 0, pretend = 0, frame = 8
 2307                           @ frame_needed = 0, uses_anonymous_args = 0
1075:../libBME280/src/bme280.c ****     int8_t rslt;
 2308                           .loc 1 1075 1 is_stmt 0 view .LVU589
 2309 0000 30B5                 push    {r4, r5, lr}
 2310                   .LCFI30:
 2311                           .cfi_def_cfa_offset 12
 2312                           .cfi_offset 4, -12
 2313                           .cfi_offset 5, -8
 2314                           .cfi_offset 14, -4
 2315 0002 83B0                 sub     sp, sp, #12
 2316                   .LCFI31:
 2317                           .cfi_def_cfa_offset 24
 2318 0004 0546                 mov     r5, r0
 2319 0006 0C46                 mov     r4, r1
1076:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_PWR_CTRL_ADDR;
 2320                           .loc 1 1076 5 is_stmt 1 view .LVU590
1077:../libBME280/src/bme280.c **** 
 2321                           .loc 1 1077 5 view .LVU591
1077:../libBME280/src/bme280.c **** 
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 73


 2322                           .loc 1 1077 13 is_stmt 0 view .LVU592
 2323 0008 F420                 movs    r0, #244
 2324                   .LVL286:
1077:../libBME280/src/bme280.c **** 
 2325                           .loc 1 1077 13 view .LVU593
 2326 000a 8DF80700             strb    r0, [sp, #7]
1080:../libBME280/src/bme280.c **** 
 2327                           .loc 1 1080 5 is_stmt 1 view .LVU594
1083:../libBME280/src/bme280.c **** 
 2328                           .loc 1 1083 5 view .LVU595
1083:../libBME280/src/bme280.c **** 
 2329                           .loc 1 1083 12 is_stmt 0 view .LVU596
 2330 000e 0B46                 mov     r3, r1
 2331 0010 0122                 movs    r2, #1
 2332 0012 0DF10601             add     r1, sp, #6
 2333                   .LVL287:
1083:../libBME280/src/bme280.c **** 
 2334                           .loc 1 1083 12 view .LVU597
 2335 0016 FFF7FEFF             bl      bme280_get_regs
 2336                   .LVL288:
1086:../libBME280/src/bme280.c ****     {
 2337                           .loc 1 1086 5 is_stmt 1 view .LVU598
1086:../libBME280/src/bme280.c ****     {
 2338                           .loc 1 1086 8 is_stmt 0 view .LVU599
 2339 001a 0346                 mov     r3, r0
 2340 001c 10B1                 cbz     r0, .L110
 2341                   .LVL289:
 2342                   .L108:
1094:../libBME280/src/bme280.c **** }
 2343                           .loc 1 1094 5 is_stmt 1 view .LVU600
1095:../libBME280/src/bme280.c **** 
 2344                           .loc 1 1095 1 is_stmt 0 view .LVU601
 2345 001e 1846                 mov     r0, r3
 2346 0020 03B0                 add     sp, sp, #12
 2347                   .LCFI32:
 2348                           .cfi_remember_state
 2349                           .cfi_def_cfa_offset 12
 2350                           @ sp needed
 2351 0022 30BD                 pop     {r4, r5, pc}
 2352                   .LVL290:
 2353                   .L110:
 2354                   .LCFI33:
 2355                           .cfi_restore_state
1088:../libBME280/src/bme280.c **** 
 2356                           .loc 1 1088 9 is_stmt 1 view .LVU602
1088:../libBME280/src/bme280.c **** 
 2357                           .loc 1 1088 31 is_stmt 0 view .LVU603
 2358 0024 9DF80600             ldrb    r0, [sp, #6]    @ zero_extendqisi2
 2359                   .LVL291:
1088:../libBME280/src/bme280.c **** 
 2360                           .loc 1 1088 31 view .LVU604
 2361 0028 20F00300             bic     r0, r0, #3
 2362 002c 40B2                 sxtb    r0, r0
 2363 002e 05F00305             and     r5, r5, #3
 2364 0032 2843                 orrs    r0, r0, r5
1088:../libBME280/src/bme280.c **** 
 2365                           .loc 1 1088 29 view .LVU605
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 74


 2366 0034 8DF80600             strb    r0, [sp, #6]
1091:../libBME280/src/bme280.c ****     }
 2367                           .loc 1 1091 9 is_stmt 1 view .LVU606
1091:../libBME280/src/bme280.c ****     }
 2368                           .loc 1 1091 16 is_stmt 0 view .LVU607
 2369 0038 2346                 mov     r3, r4
 2370 003a 0122                 movs    r2, #1
 2371 003c 0DF10601             add     r1, sp, #6
 2372 0040 0DF10700             add     r0, sp, #7
 2373 0044 FFF7FEFF             bl      bme280_set_regs
 2374                   .LVL292:
 2375 0048 0346                 mov     r3, r0
 2376                   .LVL293:
1091:../libBME280/src/bme280.c ****     }
 2377                           .loc 1 1091 16 view .LVU608
 2378 004a E8E7                 b       .L108
 2379                           .cfi_endproc
 2380                   .LFE21:
 2382                           .section        .text.bme280_get_sensor_settings,"ax",%progbits
 2383                           .align  1
 2384                           .global bme280_get_sensor_settings
 2385                           .syntax unified
 2386                           .thumb
 2387                           .thumb_func
 2388                           .fpu softvfp
 2390                   bme280_get_sensor_settings:
 2391                   .LVL294:
 2392                   .LFB4:
 612:../libBME280/src/bme280.c ****     int8_t rslt;
 2393                           .loc 1 612 1 is_stmt 1 view -0
 2394                           .cfi_startproc
 2395                           @ args = 0, pretend = 0, frame = 8
 2396                           @ frame_needed = 0, uses_anonymous_args = 0
 612:../libBME280/src/bme280.c ****     int8_t rslt;
 2397                           .loc 1 612 1 is_stmt 0 view .LVU610
 2398 0000 30B5                 push    {r4, r5, lr}
 2399                   .LCFI34:
 2400                           .cfi_def_cfa_offset 12
 2401                           .cfi_offset 4, -12
 2402                           .cfi_offset 5, -8
 2403                           .cfi_offset 14, -4
 2404 0002 83B0                 sub     sp, sp, #12
 2405                   .LCFI35:
 2406                           .cfi_def_cfa_offset 24
 2407 0004 0546                 mov     r5, r0
 613:../libBME280/src/bme280.c ****     uint8_t reg_data[4];
 2408                           .loc 1 613 5 is_stmt 1 view .LVU611
 614:../libBME280/src/bme280.c **** 
 2409                           .loc 1 614 5 view .LVU612
 617:../libBME280/src/bme280.c **** 
 2410                           .loc 1 617 5 view .LVU613
 617:../libBME280/src/bme280.c **** 
 2411                           .loc 1 617 12 is_stmt 0 view .LVU614
 2412 0006 FFF7FEFF             bl      null_ptr_check
 2413                   .LVL295:
 620:../libBME280/src/bme280.c ****     {
 2414                           .loc 1 620 5 is_stmt 1 view .LVU615
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 75


 620:../libBME280/src/bme280.c ****     {
 2415                           .loc 1 620 8 is_stmt 0 view .LVU616
 2416 000a 0446                 mov     r4, r0
 2417 000c 10B1                 cbz     r0, .L114
 2418                   .LVL296:
 2419                   .L112:
 630:../libBME280/src/bme280.c **** }
 2420                           .loc 1 630 5 is_stmt 1 view .LVU617
 631:../libBME280/src/bme280.c **** 
 2421                           .loc 1 631 1 is_stmt 0 view .LVU618
 2422 000e 2046                 mov     r0, r4
 2423 0010 03B0                 add     sp, sp, #12
 2424                   .LCFI36:
 2425                           .cfi_remember_state
 2426                           .cfi_def_cfa_offset 12
 2427                           @ sp needed
 2428 0012 30BD                 pop     {r4, r5, pc}
 2429                   .LVL297:
 2430                   .L114:
 2431                   .LCFI37:
 2432                           .cfi_restore_state
 622:../libBME280/src/bme280.c **** 
 2433                           .loc 1 622 9 is_stmt 1 view .LVU619
 622:../libBME280/src/bme280.c **** 
 2434                           .loc 1 622 16 is_stmt 0 view .LVU620
 2435 0014 2B46                 mov     r3, r5
 2436 0016 0422                 movs    r2, #4
 2437 0018 0DEB0201             add     r1, sp, r2
 2438 001c F220                 movs    r0, #242
 2439                   .LVL298:
 622:../libBME280/src/bme280.c **** 
 2440                           .loc 1 622 16 view .LVU621
 2441 001e FFF7FEFF             bl      bme280_get_regs
 2442                   .LVL299:
 624:../libBME280/src/bme280.c ****         {
 2443                           .loc 1 624 9 is_stmt 1 view .LVU622
 624:../libBME280/src/bme280.c ****         {
 2444                           .loc 1 624 12 is_stmt 0 view .LVU623
 2445 0022 0446                 mov     r4, r0
 2446 0024 0028                 cmp     r0, #0
 2447 0026 F2D1                 bne     .L112
 626:../libBME280/src/bme280.c ****         }
 2448                           .loc 1 626 13 is_stmt 1 view .LVU624
 2449 0028 05F14001             add     r1, r5, #64
 2450 002c 01A8                 add     r0, sp, #4
 2451                   .LVL300:
 626:../libBME280/src/bme280.c ****         }
 2452                           .loc 1 626 13 is_stmt 0 view .LVU625
 2453 002e FFF7FEFF             bl      parse_device_settings
 2454                   .LVL301:
 2455 0032 ECE7                 b       .L112
 2456                           .cfi_endproc
 2457                   .LFE4:
 2459                           .section        .text.bme280_get_sensor_mode,"ax",%progbits
 2460                           .align  1
 2461                           .global bme280_get_sensor_mode
 2462                           .syntax unified
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 76


 2463                           .thumb
 2464                           .thumb_func
 2465                           .fpu softvfp
 2467                   bme280_get_sensor_mode:
 2468                   .LVL302:
 2469                   .LFB6:
 670:../libBME280/src/bme280.c ****     int8_t rslt;
 2470                           .loc 1 670 1 is_stmt 1 view -0
 2471                           .cfi_startproc
 2472                           @ args = 0, pretend = 0, frame = 0
 2473                           @ frame_needed = 0, uses_anonymous_args = 0
 670:../libBME280/src/bme280.c ****     int8_t rslt;
 2474                           .loc 1 670 1 is_stmt 0 view .LVU627
 2475 0000 38B5                 push    {r3, r4, r5, lr}
 2476                   .LCFI38:
 2477                           .cfi_def_cfa_offset 16
 2478                           .cfi_offset 3, -16
 2479                           .cfi_offset 4, -12
 2480                           .cfi_offset 5, -8
 2481                           .cfi_offset 14, -4
 2482 0002 0446                 mov     r4, r0
 2483 0004 0D46                 mov     r5, r1
 671:../libBME280/src/bme280.c **** 
 2484                           .loc 1 671 5 is_stmt 1 view .LVU628
 674:../libBME280/src/bme280.c **** 
 2485                           .loc 1 674 5 view .LVU629
 674:../libBME280/src/bme280.c **** 
 2486                           .loc 1 674 12 is_stmt 0 view .LVU630
 2487 0006 0846                 mov     r0, r1
 2488                   .LVL303:
 674:../libBME280/src/bme280.c **** 
 2489                           .loc 1 674 12 view .LVU631
 2490 0008 FFF7FEFF             bl      null_ptr_check
 2491                   .LVL304:
 676:../libBME280/src/bme280.c ****     {
 2492                           .loc 1 676 5 is_stmt 1 view .LVU632
 676:../libBME280/src/bme280.c ****     {
 2493                           .loc 1 676 8 is_stmt 0 view .LVU633
 2494 000c 58B9                 cbnz    r0, .L117
 676:../libBME280/src/bme280.c ****     {
 2495                           .loc 1 676 29 discriminator 1 view .LVU634
 2496 000e 6CB1                 cbz     r4, .L118
 679:../libBME280/src/bme280.c **** 
 2497                           .loc 1 679 9 is_stmt 1 view .LVU635
 679:../libBME280/src/bme280.c **** 
 2498                           .loc 1 679 16 is_stmt 0 view .LVU636
 2499 0010 2B46                 mov     r3, r5
 2500 0012 0122                 movs    r2, #1
 2501 0014 2146                 mov     r1, r4
 2502 0016 F420                 movs    r0, #244
 2503                   .LVL305:
 679:../libBME280/src/bme280.c **** 
 2504                           .loc 1 679 16 view .LVU637
 2505 0018 FFF7FEFF             bl      bme280_get_regs
 2506                   .LVL306:
 682:../libBME280/src/bme280.c ****     }
 2507                           .loc 1 682 9 is_stmt 1 view .LVU638
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 77


 682:../libBME280/src/bme280.c ****     }
 2508                           .loc 1 682 24 is_stmt 0 view .LVU639
 2509 001c 2378                 ldrb    r3, [r4]        @ zero_extendqisi2
 2510 001e 03F00303             and     r3, r3, #3
 682:../libBME280/src/bme280.c ****     }
 2511                           .loc 1 682 22 view .LVU640
 2512 0022 2370                 strb    r3, [r4]
 2513                   .LVL307:
 2514                   .L116:
 689:../libBME280/src/bme280.c **** }
 2515                           .loc 1 689 5 is_stmt 1 view .LVU641
 690:../libBME280/src/bme280.c **** 
 2516                           .loc 1 690 1 is_stmt 0 view .LVU642
 2517 0024 38BD                 pop     {r3, r4, r5, pc}
 2518                   .LVL308:
 2519                   .L117:
 686:../libBME280/src/bme280.c ****     }
 2520                           .loc 1 686 14 view .LVU643
 2521 0026 4FF0FF30             mov     r0, #-1
 2522                   .LVL309:
 686:../libBME280/src/bme280.c ****     }
 2523                           .loc 1 686 14 view .LVU644
 2524 002a FBE7                 b       .L116
 2525                   .LVL310:
 2526                   .L118:
 686:../libBME280/src/bme280.c ****     }
 2527                           .loc 1 686 14 view .LVU645
 2528 002c 4FF0FF30             mov     r0, #-1
 2529                   .LVL311:
 686:../libBME280/src/bme280.c ****     }
 2530                           .loc 1 686 14 view .LVU646
 2531 0030 F8E7                 b       .L116
 2532                           .cfi_endproc
 2533                   .LFE6:
 2535                           .section        .text.bme280_soft_reset,"ax",%progbits
 2536                           .align  1
 2537                           .global bme280_soft_reset
 2538                           .syntax unified
 2539                           .thumb
 2540                           .thumb_func
 2541                           .fpu softvfp
 2543                   bme280_soft_reset:
 2544                   .LVL312:
 2545                   .LFB7:
 696:../libBME280/src/bme280.c ****     int8_t rslt;
 2546                           .loc 1 696 1 is_stmt 1 view -0
 2547                           .cfi_startproc
 2548                           @ args = 0, pretend = 0, frame = 8
 2549                           @ frame_needed = 0, uses_anonymous_args = 0
 696:../libBME280/src/bme280.c ****     int8_t rslt;
 2550                           .loc 1 696 1 is_stmt 0 view .LVU648
 2551 0000 30B5                 push    {r4, r5, lr}
 2552                   .LCFI39:
 2553                           .cfi_def_cfa_offset 12
 2554                           .cfi_offset 4, -12
 2555                           .cfi_offset 5, -8
 2556                           .cfi_offset 14, -4
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 78


 2557 0002 83B0                 sub     sp, sp, #12
 2558                   .LCFI40:
 2559                           .cfi_def_cfa_offset 24
 2560 0004 0446                 mov     r4, r0
 697:../libBME280/src/bme280.c ****     uint8_t reg_addr = BME280_RESET_ADDR;
 2561                           .loc 1 697 5 is_stmt 1 view .LVU649
 698:../libBME280/src/bme280.c ****     uint8_t status_reg = 0;
 2562                           .loc 1 698 5 view .LVU650
 698:../libBME280/src/bme280.c ****     uint8_t status_reg = 0;
 2563                           .loc 1 698 13 is_stmt 0 view .LVU651
 2564 0006 E023                 movs    r3, #224
 2565 0008 8DF80730             strb    r3, [sp, #7]
 699:../libBME280/src/bme280.c ****     uint8_t try_run = 5;
 2566                           .loc 1 699 5 is_stmt 1 view .LVU652
 699:../libBME280/src/bme280.c ****     uint8_t try_run = 5;
 2567                           .loc 1 699 13 is_stmt 0 view .LVU653
 2568 000c 0023                 movs    r3, #0
 2569 000e 8DF80630             strb    r3, [sp, #6]
 700:../libBME280/src/bme280.c **** 
 2570                           .loc 1 700 5 is_stmt 1 view .LVU654
 2571                   .LVL313:
 703:../libBME280/src/bme280.c **** 
 2572                           .loc 1 703 5 view .LVU655
 703:../libBME280/src/bme280.c **** 
 2573                           .loc 1 703 13 is_stmt 0 view .LVU656
 2574 0012 B623                 movs    r3, #182
 2575 0014 8DF80530             strb    r3, [sp, #5]
 706:../libBME280/src/bme280.c **** 
 2576                           .loc 1 706 5 is_stmt 1 view .LVU657
 706:../libBME280/src/bme280.c **** 
 2577                           .loc 1 706 12 is_stmt 0 view .LVU658
 2578 0018 FFF7FEFF             bl      null_ptr_check
 2579                   .LVL314:
 709:../libBME280/src/bme280.c ****     {
 2580                           .loc 1 709 5 is_stmt 1 view .LVU659
 709:../libBME280/src/bme280.c ****     {
 2581                           .loc 1 709 8 is_stmt 0 view .LVU660
 2582 001c 0346                 mov     r3, r0
 2583 001e 10B1                 cbz     r0, .L127
 2584                   .LVL315:
 2585                   .L121:
 732:../libBME280/src/bme280.c **** }
 2586                           .loc 1 732 5 is_stmt 1 view .LVU661
 733:../libBME280/src/bme280.c **** 
 2587                           .loc 1 733 1 is_stmt 0 view .LVU662
 2588 0020 1846                 mov     r0, r3
 2589 0022 03B0                 add     sp, sp, #12
 2590                   .LCFI41:
 2591                           .cfi_remember_state
 2592                           .cfi_def_cfa_offset 12
 2593                           @ sp needed
 2594 0024 30BD                 pop     {r4, r5, pc}
 2595                   .LVL316:
 2596                   .L127:
 2597                   .LCFI42:
 2598                           .cfi_restore_state
 712:../libBME280/src/bme280.c **** 
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 79


 2599                           .loc 1 712 9 is_stmt 1 view .LVU663
 712:../libBME280/src/bme280.c **** 
 2600                           .loc 1 712 16 is_stmt 0 view .LVU664
 2601 0026 2346                 mov     r3, r4
 2602 0028 0122                 movs    r2, #1
 2603 002a 0DF10501             add     r1, sp, #5
 2604 002e 0DF10700             add     r0, sp, #7
 2605                   .LVL317:
 712:../libBME280/src/bme280.c **** 
 2606                           .loc 1 712 16 view .LVU665
 2607 0032 FFF7FEFF             bl      bme280_set_regs
 2608                   .LVL318:
 714:../libBME280/src/bme280.c ****         {
 2609                           .loc 1 714 9 is_stmt 1 view .LVU666
 714:../libBME280/src/bme280.c ****         {
 2610                           .loc 1 714 12 is_stmt 0 view .LVU667
 2611 0036 0346                 mov     r3, r0
 2612 0038 0028                 cmp     r0, #0
 2613 003a F1D1                 bne     .L121
 700:../libBME280/src/bme280.c **** 
 2614                           .loc 1 700 13 view .LVU668
 2615 003c 0525                 movs    r5, #5
 2616 003e 00E0                 b       .L123
 2617                   .LVL319:
 2618                   .L124:
 723:../libBME280/src/bme280.c **** 
 2619                           .loc 1 723 53 view .LVU669
 2620 0040 1546                 mov     r5, r2
 2621                   .LVL320:
 2622                   .L123:
 717:../libBME280/src/bme280.c ****             {
 2623                           .loc 1 717 13 is_stmt 1 discriminator 3 view .LVU670
 720:../libBME280/src/bme280.c ****                 rslt = bme280_get_regs(BME280_STATUS_REG_ADDR, &status_reg, 1, dev);
 2624                           .loc 1 720 17 discriminator 3 view .LVU671
 720:../libBME280/src/bme280.c ****                 rslt = bme280_get_regs(BME280_STATUS_REG_ADDR, &status_reg, 1, dev);
 2625                           .loc 1 720 20 is_stmt 0 discriminator 3 view .LVU672
 2626 0042 6369                 ldr     r3, [r4, #20]
 720:../libBME280/src/bme280.c ****                 rslt = bme280_get_regs(BME280_STATUS_REG_ADDR, &status_reg, 1, dev);
 2627                           .loc 1 720 17 discriminator 3 view .LVU673
 2628 0044 6168                 ldr     r1, [r4, #4]
 2629 0046 4FF4FA60             mov     r0, #2000
 2630                   .LVL321:
 720:../libBME280/src/bme280.c ****                 rslt = bme280_get_regs(BME280_STATUS_REG_ADDR, &status_reg, 1, dev);
 2631                           .loc 1 720 17 discriminator 3 view .LVU674
 2632 004a 9847                 blx     r3
 2633                   .LVL322:
 721:../libBME280/src/bme280.c **** 
 2634                           .loc 1 721 17 is_stmt 1 discriminator 3 view .LVU675
 721:../libBME280/src/bme280.c **** 
 2635                           .loc 1 721 24 is_stmt 0 discriminator 3 view .LVU676
 2636 004c 2346                 mov     r3, r4
 2637 004e 0122                 movs    r2, #1
 2638 0050 0DF10601             add     r1, sp, #6
 2639 0054 F320                 movs    r0, #243
 2640 0056 FFF7FEFF             bl      bme280_get_regs
 2641                   .LVL323:
 723:../libBME280/src/bme280.c **** 
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 80


 2642                           .loc 1 723 13 discriminator 3 view .LVU677
 2643 005a 0346                 mov     r3, r0
 2644 005c 38B9                 cbnz    r0, .L122
 723:../libBME280/src/bme280.c **** 
 2645                           .loc 1 723 53 discriminator 1 view .LVU678
 2646 005e 6A1E                 subs    r2, r5, #1
 2647 0060 D2B2                 uxtb    r2, r2
 2648                   .LVL324:
 723:../libBME280/src/bme280.c **** 
 2649                           .loc 1 723 42 discriminator 1 view .LVU679
 2650 0062 25B1                 cbz     r5, .L122
 723:../libBME280/src/bme280.c **** 
 2651                           .loc 1 723 72 discriminator 2 view .LVU680
 2652 0064 9DF80610             ldrb    r1, [sp, #6]    @ zero_extendqisi2
 723:../libBME280/src/bme280.c **** 
 2653                           .loc 1 723 57 discriminator 2 view .LVU681
 2654 0068 11F0010F             tst     r1, #1
 2655 006c E8D1                 bne     .L124
 2656                   .LVL325:
 2657                   .L122:
 725:../libBME280/src/bme280.c ****             {
 2658                           .loc 1 725 13 is_stmt 1 view .LVU682
 725:../libBME280/src/bme280.c ****             {
 2659                           .loc 1 725 28 is_stmt 0 view .LVU683
 2660 006e 9DF80620             ldrb    r2, [sp, #6]    @ zero_extendqisi2
 725:../libBME280/src/bme280.c ****             {
 2661                           .loc 1 725 16 view .LVU684
 2662 0072 12F0010F             tst     r2, #1
 2663 0076 D3D0                 beq     .L121
 727:../libBME280/src/bme280.c ****             }
 2664                           .loc 1 727 22 view .LVU685
 2665 0078 6FF00503             mvn     r3, #5
 2666 007c D0E7                 b       .L121
 2667                           .cfi_endproc
 2668                   .LFE7:
 2670                           .section        .text.bme280_init,"ax",%progbits
 2671                           .align  1
 2672                           .global bme280_init
 2673                           .syntax unified
 2674                           .thumb
 2675                           .thumb_func
 2676                           .fpu softvfp
 2678                   bme280_init:
 2679                   .LVL326:
 2680                   .LFB0:
 405:../libBME280/src/bme280.c ****     int8_t rslt;
 2681                           .loc 1 405 1 is_stmt 1 view -0
 2682                           .cfi_startproc
 2683                           @ args = 0, pretend = 0, frame = 8
 2684                           @ frame_needed = 0, uses_anonymous_args = 0
 405:../libBME280/src/bme280.c ****     int8_t rslt;
 2685                           .loc 1 405 1 is_stmt 0 view .LVU687
 2686 0000 70B5                 push    {r4, r5, r6, lr}
 2687                   .LCFI43:
 2688                           .cfi_def_cfa_offset 16
 2689                           .cfi_offset 4, -16
 2690                           .cfi_offset 5, -12
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 81


 2691                           .cfi_offset 6, -8
 2692                           .cfi_offset 14, -4
 2693 0002 82B0                 sub     sp, sp, #8
 2694                   .LCFI44:
 2695                           .cfi_def_cfa_offset 24
 2696 0004 0546                 mov     r5, r0
 406:../libBME280/src/bme280.c **** 
 2697                           .loc 1 406 5 is_stmt 1 view .LVU688
 409:../libBME280/src/bme280.c ****     uint8_t chip_id = 0;
 2698                           .loc 1 409 5 view .LVU689
 2699                   .LVL327:
 410:../libBME280/src/bme280.c **** 
 2700                           .loc 1 410 5 view .LVU690
 410:../libBME280/src/bme280.c **** 
 2701                           .loc 1 410 13 is_stmt 0 view .LVU691
 2702 0006 0023                 movs    r3, #0
 2703 0008 8DF80730             strb    r3, [sp, #7]
 413:../libBME280/src/bme280.c **** 
 2704                           .loc 1 413 5 is_stmt 1 view .LVU692
 413:../libBME280/src/bme280.c **** 
 2705                           .loc 1 413 12 is_stmt 0 view .LVU693
 2706 000c FFF7FEFF             bl      null_ptr_check
 2707                   .LVL328:
 416:../libBME280/src/bme280.c ****     {
 2708                           .loc 1 416 5 is_stmt 1 view .LVU694
 416:../libBME280/src/bme280.c ****     {
 2709                           .loc 1 416 8 is_stmt 0 view .LVU695
 2710 0010 0646                 mov     r6, r0
 2711 0012 48B3                 cbz     r0, .L134
 2712                   .LVL329:
 2713                   .L130:
 452:../libBME280/src/bme280.c **** }
 2714                           .loc 1 452 5 is_stmt 1 view .LVU696
 453:../libBME280/src/bme280.c **** 
 2715                           .loc 1 453 1 is_stmt 0 view .LVU697
 2716 0014 3046                 mov     r0, r6
 2717 0016 02B0                 add     sp, sp, #8
 2718                   .LCFI45:
 2719                           .cfi_remember_state
 2720                           .cfi_def_cfa_offset 16
 2721                           @ sp needed
 2722 0018 70BD                 pop     {r4, r5, r6, pc}
 2723                   .LVL330:
 2724                   .L137:
 2725                   .LCFI46:
 2726                           .cfi_restore_state
 434:../libBME280/src/bme280.c ****                 }
 2727                           .loc 1 434 21 is_stmt 1 view .LVU698
 434:../libBME280/src/bme280.c ****                 }
 2728                           .loc 1 434 28 is_stmt 0 view .LVU699
 2729 001a 2846                 mov     r0, r5
 2730                   .LVL331:
 434:../libBME280/src/bme280.c ****                 }
 2731                           .loc 1 434 28 view .LVU700
 2732 001c FFF7FEFF             bl      get_calib_data
 2733                   .LVL332:
 2734 0020 0646                 mov     r6, r0
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 82


 2735                   .LVL333:
 434:../libBME280/src/bme280.c ****                 }
 2736                           .loc 1 434 28 view .LVU701
 2737 0022 1CE0                 b       .L132
 2738                   .LVL334:
 2739                   .L131:
 441:../libBME280/src/bme280.c ****             --try_count;
 2740                           .loc 1 441 13 is_stmt 1 view .LVU702
 441:../libBME280/src/bme280.c ****             --try_count;
 2741                           .loc 1 441 16 is_stmt 0 view .LVU703
 2742 0024 6B69                 ldr     r3, [r5, #20]
 441:../libBME280/src/bme280.c ****             --try_count;
 2743                           .loc 1 441 13 view .LVU704
 2744 0026 6968                 ldr     r1, [r5, #4]
 2745 0028 4FF47A70             mov     r0, #1000
 2746                   .LVL335:
 441:../libBME280/src/bme280.c ****             --try_count;
 2747                           .loc 1 441 13 view .LVU705
 2748 002c 9847                 blx     r3
 2749                   .LVL336:
 442:../libBME280/src/bme280.c ****         }
 2750                           .loc 1 442 13 is_stmt 1 view .LVU706
 2751 002e 013C                 subs    r4, r4, #1
 2752                   .LVL337:
 442:../libBME280/src/bme280.c ****         }
 2753                           .loc 1 442 13 is_stmt 0 view .LVU707
 2754 0030 E4B2                 uxtb    r4, r4
 2755                   .LVL338:
 2756                   .L129:
 418:../libBME280/src/bme280.c ****         {
 2757                           .loc 1 418 15 view .LVU708
 2758 0032 A4B1                 cbz     r4, .L132
 421:../libBME280/src/bme280.c **** 
 2759                           .loc 1 421 13 is_stmt 1 view .LVU709
 421:../libBME280/src/bme280.c **** 
 2760                           .loc 1 421 20 is_stmt 0 view .LVU710
 2761 0034 2B46                 mov     r3, r5
 2762 0036 0122                 movs    r2, #1
 2763 0038 0DF10701             add     r1, sp, #7
 2764 003c D020                 movs    r0, #208
 2765 003e FFF7FEFF             bl      bme280_get_regs
 2766                   .LVL339:
 424:../libBME280/src/bme280.c ****             {
 2767                           .loc 1 424 13 is_stmt 1 view .LVU711
 424:../libBME280/src/bme280.c ****             {
 2768                           .loc 1 424 16 is_stmt 0 view .LVU712
 2769 0042 0646                 mov     r6, r0
 2770 0044 0028                 cmp     r0, #0
 2771 0046 EDD1                 bne     .L131
 424:../libBME280/src/bme280.c ****             {
 2772                           .loc 1 424 49 discriminator 1 view .LVU713
 2773 0048 9DF80730             ldrb    r3, [sp, #7]    @ zero_extendqisi2
 424:../libBME280/src/bme280.c ****             {
 2774                           .loc 1 424 37 discriminator 1 view .LVU714
 2775 004c 602B                 cmp     r3, #96
 2776 004e E9D1                 bne     .L131
 426:../libBME280/src/bme280.c **** 
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 83


 2777                           .loc 1 426 17 is_stmt 1 view .LVU715
 426:../libBME280/src/bme280.c **** 
 2778                           .loc 1 426 30 is_stmt 0 view .LVU716
 2779 0050 2B70                 strb    r3, [r5]
 429:../libBME280/src/bme280.c **** 
 2780                           .loc 1 429 17 is_stmt 1 view .LVU717
 429:../libBME280/src/bme280.c **** 
 2781                           .loc 1 429 24 is_stmt 0 view .LVU718
 2782 0052 2846                 mov     r0, r5
 2783                   .LVL340:
 429:../libBME280/src/bme280.c **** 
 2784                           .loc 1 429 24 view .LVU719
 2785 0054 FFF7FEFF             bl      bme280_soft_reset
 2786                   .LVL341:
 431:../libBME280/src/bme280.c ****                 {
 2787                           .loc 1 431 17 is_stmt 1 view .LVU720
 431:../libBME280/src/bme280.c ****                 {
 2788                           .loc 1 431 20 is_stmt 0 view .LVU721
 2789 0058 0646                 mov     r6, r0
 2790 005a 0028                 cmp     r0, #0
 2791 005c DDD0                 beq     .L137
 2792                   .LVL342:
 2793                   .L132:
 446:../libBME280/src/bme280.c ****         {
 2794                           .loc 1 446 9 is_stmt 1 view .LVU722
 446:../libBME280/src/bme280.c ****         {
 2795                           .loc 1 446 12 is_stmt 0 view .LVU723
 2796 005e 002C                 cmp     r4, #0
 2797 0060 D8D1                 bne     .L130
 448:../libBME280/src/bme280.c ****         }
 2798                           .loc 1 448 18 view .LVU724
 2799 0062 6FF00106             mvn     r6, #1
 2800                   .LVL343:
 448:../libBME280/src/bme280.c ****         }
 2801                           .loc 1 448 18 view .LVU725
 2802 0066 D5E7                 b       .L130
 2803                   .LVL344:
 2804                   .L134:
 409:../libBME280/src/bme280.c ****     uint8_t chip_id = 0;
 2805                           .loc 1 409 13 view .LVU726
 2806 0068 0524                 movs    r4, #5
 2807 006a E2E7                 b       .L129
 2808                           .cfi_endproc
 2809                   .LFE0:
 2811                           .section        .text.put_device_to_sleep,"ax",%progbits
 2812                           .align  1
 2813                           .syntax unified
 2814                           .thumb
 2815                           .thumb_func
 2816                           .fpu softvfp
 2818                   put_device_to_sleep:
 2819                   .LVL345:
 2820                   .LFB22:
1101:../libBME280/src/bme280.c ****     int8_t rslt;
 2821                           .loc 1 1101 1 is_stmt 1 view -0
 2822                           .cfi_startproc
 2823                           @ args = 0, pretend = 0, frame = 16
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 84


 2824                           @ frame_needed = 0, uses_anonymous_args = 0
1101:../libBME280/src/bme280.c ****     int8_t rslt;
 2825                           .loc 1 1101 1 is_stmt 0 view .LVU728
 2826 0000 10B5                 push    {r4, lr}
 2827                   .LCFI47:
 2828                           .cfi_def_cfa_offset 8
 2829                           .cfi_offset 4, -8
 2830                           .cfi_offset 14, -4
 2831 0002 84B0                 sub     sp, sp, #16
 2832                   .LCFI48:
 2833                           .cfi_def_cfa_offset 24
 2834 0004 0446                 mov     r4, r0
1102:../libBME280/src/bme280.c ****     uint8_t reg_data[4];
 2835                           .loc 1 1102 5 is_stmt 1 view .LVU729
1103:../libBME280/src/bme280.c ****     struct bme280_settings settings;
 2836                           .loc 1 1103 5 view .LVU730
1104:../libBME280/src/bme280.c **** 
 2837                           .loc 1 1104 5 view .LVU731
1106:../libBME280/src/bme280.c **** 
 2838                           .loc 1 1106 5 view .LVU732
1106:../libBME280/src/bme280.c **** 
 2839                           .loc 1 1106 12 is_stmt 0 view .LVU733
 2840 0006 0346                 mov     r3, r0
 2841 0008 0422                 movs    r2, #4
 2842 000a 03A9                 add     r1, sp, #12
 2843 000c F220                 movs    r0, #242
 2844                   .LVL346:
1106:../libBME280/src/bme280.c **** 
 2845                           .loc 1 1106 12 view .LVU734
 2846 000e FFF7FEFF             bl      bme280_get_regs
 2847                   .LVL347:
1108:../libBME280/src/bme280.c ****     {
 2848                           .loc 1 1108 5 is_stmt 1 view .LVU735
1108:../libBME280/src/bme280.c ****     {
 2849                           .loc 1 1108 8 is_stmt 0 view .LVU736
 2850 0012 0346                 mov     r3, r0
 2851 0014 10B1                 cbz     r0, .L141
 2852                   .LVL348:
 2853                   .L139:
1119:../libBME280/src/bme280.c **** }
 2854                           .loc 1 1119 5 is_stmt 1 view .LVU737
1120:../libBME280/src/bme280.c **** 
 2855                           .loc 1 1120 1 is_stmt 0 view .LVU738
 2856 0016 1846                 mov     r0, r3
 2857 0018 04B0                 add     sp, sp, #16
 2858                   .LCFI49:
 2859                           .cfi_remember_state
 2860                           .cfi_def_cfa_offset 8
 2861                           @ sp needed
 2862 001a 10BD                 pop     {r4, pc}
 2863                   .LVL349:
 2864                   .L141:
 2865                   .LCFI50:
 2866                           .cfi_restore_state
1110:../libBME280/src/bme280.c ****         rslt = bme280_soft_reset(dev);
 2867                           .loc 1 1110 9 is_stmt 1 view .LVU739
 2868 001c 01A9                 add     r1, sp, #4
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 85


 2869 001e 03A8                 add     r0, sp, #12
 2870                   .LVL350:
1110:../libBME280/src/bme280.c ****         rslt = bme280_soft_reset(dev);
 2871                           .loc 1 1110 9 is_stmt 0 view .LVU740
 2872 0020 FFF7FEFF             bl      parse_device_settings
 2873                   .LVL351:
1111:../libBME280/src/bme280.c **** 
 2874                           .loc 1 1111 9 is_stmt 1 view .LVU741
1111:../libBME280/src/bme280.c **** 
 2875                           .loc 1 1111 16 is_stmt 0 view .LVU742
 2876 0024 2046                 mov     r0, r4
 2877 0026 FFF7FEFF             bl      bme280_soft_reset
 2878                   .LVL352:
1113:../libBME280/src/bme280.c ****         {
 2879                           .loc 1 1113 9 is_stmt 1 view .LVU743
1113:../libBME280/src/bme280.c ****         {
 2880                           .loc 1 1113 12 is_stmt 0 view .LVU744
 2881 002a 0346                 mov     r3, r0
 2882 002c 0028                 cmp     r0, #0
 2883 002e F2D1                 bne     .L139
1115:../libBME280/src/bme280.c ****         }
 2884                           .loc 1 1115 13 is_stmt 1 view .LVU745
1115:../libBME280/src/bme280.c ****         }
 2885                           .loc 1 1115 20 is_stmt 0 view .LVU746
 2886 0030 2146                 mov     r1, r4
 2887 0032 01A8                 add     r0, sp, #4
 2888                   .LVL353:
1115:../libBME280/src/bme280.c ****         }
 2889                           .loc 1 1115 20 view .LVU747
 2890 0034 FFF7FEFF             bl      reload_device_settings
 2891                   .LVL354:
 2892 0038 0346                 mov     r3, r0
 2893                   .LVL355:
1115:../libBME280/src/bme280.c ****         }
 2894                           .loc 1 1115 20 view .LVU748
 2895 003a ECE7                 b       .L139
 2896                           .cfi_endproc
 2897                   .LFE22:
 2899                           .section        .text.bme280_set_sensor_settings,"ax",%progbits
 2900                           .align  1
 2901                           .global bme280_set_sensor_settings
 2902                           .syntax unified
 2903                           .thumb
 2904                           .thumb_func
 2905                           .fpu softvfp
 2907                   bme280_set_sensor_settings:
 2908                   .LVL356:
 2909                   .LFB3:
 567:../libBME280/src/bme280.c ****     int8_t rslt;
 2910                           .loc 1 567 1 is_stmt 1 view -0
 2911                           .cfi_startproc
 2912                           @ args = 0, pretend = 0, frame = 8
 2913                           @ frame_needed = 0, uses_anonymous_args = 0
 567:../libBME280/src/bme280.c ****     int8_t rslt;
 2914                           .loc 1 567 1 is_stmt 0 view .LVU750
 2915 0000 70B5                 push    {r4, r5, r6, lr}
 2916                   .LCFI51:
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 86


 2917                           .cfi_def_cfa_offset 16
 2918                           .cfi_offset 4, -16
 2919                           .cfi_offset 5, -12
 2920                           .cfi_offset 6, -8
 2921                           .cfi_offset 14, -4
 2922 0002 82B0                 sub     sp, sp, #8
 2923                   .LCFI52:
 2924                           .cfi_def_cfa_offset 24
 2925 0004 0646                 mov     r6, r0
 2926 0006 0D46                 mov     r5, r1
 568:../libBME280/src/bme280.c ****     uint8_t sensor_mode;
 2927                           .loc 1 568 5 is_stmt 1 view .LVU751
 569:../libBME280/src/bme280.c **** 
 2928                           .loc 1 569 5 view .LVU752
 572:../libBME280/src/bme280.c **** 
 2929                           .loc 1 572 5 view .LVU753
 572:../libBME280/src/bme280.c **** 
 2930                           .loc 1 572 12 is_stmt 0 view .LVU754
 2931 0008 0846                 mov     r0, r1
 2932                   .LVL357:
 572:../libBME280/src/bme280.c **** 
 2933                           .loc 1 572 12 view .LVU755
 2934 000a FFF7FEFF             bl      null_ptr_check
 2935                   .LVL358:
 575:../libBME280/src/bme280.c ****     {
 2936                           .loc 1 575 5 is_stmt 1 view .LVU756
 575:../libBME280/src/bme280.c ****     {
 2937                           .loc 1 575 8 is_stmt 0 view .LVU757
 2938 000e 0446                 mov     r4, r0
 2939 0010 10B1                 cbz     r0, .L147
 2940                   .LVL359:
 2941                   .L143:
 604:../libBME280/src/bme280.c **** }
 2942                           .loc 1 604 5 is_stmt 1 view .LVU758
 605:../libBME280/src/bme280.c **** 
 2943                           .loc 1 605 1 is_stmt 0 view .LVU759
 2944 0012 2046                 mov     r0, r4
 2945 0014 02B0                 add     sp, sp, #8
 2946                   .LCFI53:
 2947                           .cfi_remember_state
 2948                           .cfi_def_cfa_offset 16
 2949                           @ sp needed
 2950 0016 70BD                 pop     {r4, r5, r6, pc}
 2951                   .LVL360:
 2952                   .L147:
 2953                   .LCFI54:
 2954                           .cfi_restore_state
 577:../libBME280/src/bme280.c **** 
 2955                           .loc 1 577 9 is_stmt 1 view .LVU760
 577:../libBME280/src/bme280.c **** 
 2956                           .loc 1 577 16 is_stmt 0 view .LVU761
 2957 0018 2946                 mov     r1, r5
 2958 001a 0DF10700             add     r0, sp, #7
 2959                   .LVL361:
 577:../libBME280/src/bme280.c **** 
 2960                           .loc 1 577 16 view .LVU762
 2961 001e FFF7FEFF             bl      bme280_get_sensor_mode
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 87


 2962                   .LVL362:
 579:../libBME280/src/bme280.c ****         {
 2963                           .loc 1 579 9 is_stmt 1 view .LVU763
 579:../libBME280/src/bme280.c ****         {
 2964                           .loc 1 579 12 is_stmt 0 view .LVU764
 2965 0022 0446                 mov     r4, r0
 2966 0024 10B9                 cbnz    r0, .L144
 579:../libBME280/src/bme280.c ****         {
 2967                           .loc 1 579 49 discriminator 1 view .LVU765
 2968 0026 9DF80730             ldrb    r3, [sp, #7]    @ zero_extendqisi2
 579:../libBME280/src/bme280.c ****         {
 2969                           .loc 1 579 33 discriminator 1 view .LVU766
 2970 002a B3B9                 cbnz    r3, .L148
 2971                   .LVL363:
 2972                   .L144:
 584:../libBME280/src/bme280.c ****         {
 2973                           .loc 1 584 9 is_stmt 1 view .LVU767
 584:../libBME280/src/bme280.c ****         {
 2974                           .loc 1 584 12 is_stmt 0 view .LVU768
 2975 002c 002C                 cmp     r4, #0
 2976 002e F0D1                 bne     .L143
 589:../libBME280/src/bme280.c ****             {
 2977                           .loc 1 589 13 is_stmt 1 view .LVU769
 589:../libBME280/src/bme280.c ****             {
 2978                           .loc 1 589 17 is_stmt 0 view .LVU770
 2979 0030 3146                 mov     r1, r6
 2980 0032 0720                 movs    r0, #7
 2981 0034 FFF7FEFF             bl      are_settings_changed
 2982                   .LVL364:
 589:../libBME280/src/bme280.c ****             {
 2983                           .loc 1 589 16 view .LVU771
 2984 0038 A0B9                 cbnz    r0, .L149
 2985                   .L145:
 597:../libBME280/src/bme280.c ****             {
 2986                           .loc 1 597 13 is_stmt 1 view .LVU772
 597:../libBME280/src/bme280.c ****             {
 2987                           .loc 1 597 16 is_stmt 0 view .LVU773
 2988 003a 002C                 cmp     r4, #0
 2989 003c E9D1                 bne     .L143
 597:../libBME280/src/bme280.c ****             {
 2990                           .loc 1 597 40 discriminator 1 view .LVU774
 2991 003e 3146                 mov     r1, r6
 2992 0040 1820                 movs    r0, #24
 2993 0042 FFF7FEFF             bl      are_settings_changed
 2994                   .LVL365:
 597:../libBME280/src/bme280.c ****             {
 2995                           .loc 1 597 37 discriminator 1 view .LVU775
 2996 0046 0028                 cmp     r0, #0
 2997 0048 E3D0                 beq     .L143
 599:../libBME280/src/bme280.c ****             }
 2998                           .loc 1 599 17 is_stmt 1 view .LVU776
 599:../libBME280/src/bme280.c ****             }
 2999                           .loc 1 599 24 is_stmt 0 view .LVU777
 3000 004a 2A46                 mov     r2, r5
 3001 004c 05F14001             add     r1, r5, #64
 3002 0050 3046                 mov     r0, r6
 3003 0052 FFF7FEFF             bl      set_filter_standby_settings
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 88


 3004                   .LVL366:
 3005 0056 0446                 mov     r4, r0
 3006                   .LVL367:
 599:../libBME280/src/bme280.c ****             }
 3007                           .loc 1 599 24 view .LVU778
 3008 0058 DBE7                 b       .L143
 3009                   .LVL368:
 3010                   .L148:
 581:../libBME280/src/bme280.c ****         }
 3011                           .loc 1 581 13 is_stmt 1 view .LVU779
 581:../libBME280/src/bme280.c ****         }
 3012                           .loc 1 581 20 is_stmt 0 view .LVU780
 3013 005a 2846                 mov     r0, r5
 3014                   .LVL369:
 581:../libBME280/src/bme280.c ****         }
 3015                           .loc 1 581 20 view .LVU781
 3016 005c FFF7FEFF             bl      put_device_to_sleep
 3017                   .LVL370:
 3018 0060 0446                 mov     r4, r0
 3019                   .LVL371:
 581:../libBME280/src/bme280.c ****         }
 3020                           .loc 1 581 20 view .LVU782
 3021 0062 E3E7                 b       .L144
 3022                   .L149:
 591:../libBME280/src/bme280.c ****             }
 3023                           .loc 1 591 17 is_stmt 1 view .LVU783
 591:../libBME280/src/bme280.c ****             }
 3024                           .loc 1 591 24 is_stmt 0 view .LVU784
 3025 0064 2A46                 mov     r2, r5
 3026 0066 05F14001             add     r1, r5, #64
 3027 006a 3046                 mov     r0, r6
 3028 006c FFF7FEFF             bl      set_osr_settings
 3029                   .LVL372:
 3030 0070 0446                 mov     r4, r0
 3031                   .LVL373:
 591:../libBME280/src/bme280.c ****             }
 3032                           .loc 1 591 24 view .LVU785
 3033 0072 E2E7                 b       .L145
 3034                           .cfi_endproc
 3035                   .LFE3:
 3037                           .section        .text.bme280_set_sensor_mode,"ax",%progbits
 3038                           .align  1
 3039                           .global bme280_set_sensor_mode
 3040                           .syntax unified
 3041                           .thumb
 3042                           .thumb_func
 3043                           .fpu softvfp
 3045                   bme280_set_sensor_mode:
 3046                   .LVL374:
 3047                   .LFB5:
 637:../libBME280/src/bme280.c ****     int8_t rslt;
 3048                           .loc 1 637 1 is_stmt 1 view -0
 3049                           .cfi_startproc
 3050                           @ args = 0, pretend = 0, frame = 8
 3051                           @ frame_needed = 0, uses_anonymous_args = 0
 637:../libBME280/src/bme280.c ****     int8_t rslt;
 3052                           .loc 1 637 1 is_stmt 0 view .LVU787
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 89


 3053 0000 30B5                 push    {r4, r5, lr}
 3054                   .LCFI55:
 3055                           .cfi_def_cfa_offset 12
 3056                           .cfi_offset 4, -12
 3057                           .cfi_offset 5, -8
 3058                           .cfi_offset 14, -4
 3059 0002 83B0                 sub     sp, sp, #12
 3060                   .LCFI56:
 3061                           .cfi_def_cfa_offset 24
 3062 0004 0546                 mov     r5, r0
 3063 0006 0C46                 mov     r4, r1
 638:../libBME280/src/bme280.c ****     uint8_t last_set_mode;
 3064                           .loc 1 638 5 is_stmt 1 view .LVU788
 639:../libBME280/src/bme280.c **** 
 3065                           .loc 1 639 5 view .LVU789
 642:../libBME280/src/bme280.c **** 
 3066                           .loc 1 642 5 view .LVU790
 642:../libBME280/src/bme280.c **** 
 3067                           .loc 1 642 12 is_stmt 0 view .LVU791
 3068 0008 0846                 mov     r0, r1
 3069                   .LVL375:
 642:../libBME280/src/bme280.c **** 
 3070                           .loc 1 642 12 view .LVU792
 3071 000a FFF7FEFF             bl      null_ptr_check
 3072                   .LVL376:
 644:../libBME280/src/bme280.c ****     {
 3073                           .loc 1 644 5 is_stmt 1 view .LVU793
 644:../libBME280/src/bme280.c ****     {
 3074                           .loc 1 644 8 is_stmt 0 view .LVU794
 3075 000e 0346                 mov     r3, r0
 3076 0010 10B1                 cbz     r0, .L154
 3077                   .LVL377:
 3078                   .L151:
 663:../libBME280/src/bme280.c **** }
 3079                           .loc 1 663 5 is_stmt 1 view .LVU795
 664:../libBME280/src/bme280.c **** 
 3080                           .loc 1 664 1 is_stmt 0 view .LVU796
 3081 0012 1846                 mov     r0, r3
 3082 0014 03B0                 add     sp, sp, #12
 3083                   .LCFI57:
 3084                           .cfi_remember_state
 3085                           .cfi_def_cfa_offset 12
 3086                           @ sp needed
 3087 0016 30BD                 pop     {r4, r5, pc}
 3088                   .LVL378:
 3089                   .L154:
 3090                   .LCFI58:
 3091                           .cfi_restore_state
 646:../libBME280/src/bme280.c **** 
 3092                           .loc 1 646 9 is_stmt 1 view .LVU797
 646:../libBME280/src/bme280.c **** 
 3093                           .loc 1 646 16 is_stmt 0 view .LVU798
 3094 0018 2146                 mov     r1, r4
 3095 001a 0DF10700             add     r0, sp, #7
 3096                   .LVL379:
 646:../libBME280/src/bme280.c **** 
 3097                           .loc 1 646 16 view .LVU799
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 90


 3098 001e FFF7FEFF             bl      bme280_get_sensor_mode
 3099                   .LVL380:
 651:../libBME280/src/bme280.c ****         {
 3100                           .loc 1 651 9 is_stmt 1 view .LVU800
 651:../libBME280/src/bme280.c ****         {
 3101                           .loc 1 651 12 is_stmt 0 view .LVU801
 3102 0022 0346                 mov     r3, r0
 3103 0024 10B9                 cbnz    r0, .L152
 651:../libBME280/src/bme280.c ****         {
 3104                           .loc 1 651 51 discriminator 1 view .LVU802
 3105 0026 9DF80720             ldrb    r2, [sp, #7]    @ zero_extendqisi2
 651:../libBME280/src/bme280.c ****         {
 3106                           .loc 1 651 33 discriminator 1 view .LVU803
 3107 002a 3AB9                 cbnz    r2, .L155
 3108                   .LVL381:
 3109                   .L152:
 657:../libBME280/src/bme280.c ****         {
 3110                           .loc 1 657 9 is_stmt 1 view .LVU804
 657:../libBME280/src/bme280.c ****         {
 3111                           .loc 1 657 12 is_stmt 0 view .LVU805
 3112 002c 002B                 cmp     r3, #0
 3113 002e F0D1                 bne     .L151
 659:../libBME280/src/bme280.c ****         }
 3114                           .loc 1 659 13 is_stmt 1 view .LVU806
 659:../libBME280/src/bme280.c ****         }
 3115                           .loc 1 659 20 is_stmt 0 view .LVU807
 3116 0030 2146                 mov     r1, r4
 3117 0032 2846                 mov     r0, r5
 3118 0034 FFF7FEFF             bl      write_power_mode
 3119                   .LVL382:
 659:../libBME280/src/bme280.c ****         }
 3120                           .loc 1 659 20 view .LVU808
 3121 0038 0346                 mov     r3, r0
 3122                   .LVL383:
 659:../libBME280/src/bme280.c ****         }
 3123                           .loc 1 659 20 view .LVU809
 3124 003a EAE7                 b       .L151
 3125                   .LVL384:
 3126                   .L155:
 653:../libBME280/src/bme280.c ****         }
 3127                           .loc 1 653 13 is_stmt 1 view .LVU810
 653:../libBME280/src/bme280.c ****         }
 3128                           .loc 1 653 20 is_stmt 0 view .LVU811
 3129 003c 2046                 mov     r0, r4
 3130                   .LVL385:
 653:../libBME280/src/bme280.c ****         }
 3131                           .loc 1 653 20 view .LVU812
 3132 003e FFF7FEFF             bl      put_device_to_sleep
 3133                   .LVL386:
 3134 0042 0346                 mov     r3, r0
 3135                   .LVL387:
 653:../libBME280/src/bme280.c ****         }
 3136                           .loc 1 653 20 view .LVU813
 3137 0044 F2E7                 b       .L152
 3138                           .cfi_endproc
 3139                   .LFE5:
 3141                           .section        .text.bme280_parse_sensor_data,"ax",%progbits
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 91


 3142                           .align  1
 3143                           .global bme280_parse_sensor_data
 3144                           .syntax unified
 3145                           .thumb
 3146                           .thumb_func
 3147                           .fpu softvfp
 3149                   bme280_parse_sensor_data:
 3150                   .LVL388:
 3151                   .LFB9:
 782:../libBME280/src/bme280.c ****     /* Variables to store the sensor data */
 3152                           .loc 1 782 1 is_stmt 1 view -0
 3153                           .cfi_startproc
 3154                           @ args = 0, pretend = 0, frame = 0
 3155                           @ frame_needed = 0, uses_anonymous_args = 0
 3156                           @ link register save eliminated.
 782:../libBME280/src/bme280.c ****     /* Variables to store the sensor data */
 3157                           .loc 1 782 1 is_stmt 0 view .LVU815
 3158 0000 10B4                 push    {r4}
 3159                   .LCFI59:
 3160                           .cfi_def_cfa_offset 4
 3161                           .cfi_offset 4, -4
 784:../libBME280/src/bme280.c ****     uint32_t data_lsb;
 3162                           .loc 1 784 5 is_stmt 1 view .LVU816
 785:../libBME280/src/bme280.c ****     uint32_t data_msb;
 3163                           .loc 1 785 5 view .LVU817
 786:../libBME280/src/bme280.c **** 
 3164                           .loc 1 786 5 view .LVU818
 789:../libBME280/src/bme280.c ****     data_lsb = (uint32_t)reg_data[1] << 4;
 3165                           .loc 1 789 5 view .LVU819
 789:../libBME280/src/bme280.c ****     data_lsb = (uint32_t)reg_data[1] << 4;
 3166                           .loc 1 789 34 is_stmt 0 view .LVU820
 3167 0002 0478                 ldrb    r4, [r0]        @ zero_extendqisi2
 3168                   .LVL389:
 790:../libBME280/src/bme280.c ****     data_xlsb = (uint32_t)reg_data[2] >> 4;
 3169                           .loc 1 790 5 is_stmt 1 view .LVU821
 790:../libBME280/src/bme280.c ****     data_xlsb = (uint32_t)reg_data[2] >> 4;
 3170                           .loc 1 790 34 is_stmt 0 view .LVU822
 3171 0004 4378                 ldrb    r3, [r0, #1]    @ zero_extendqisi2
 790:../libBME280/src/bme280.c ****     data_xlsb = (uint32_t)reg_data[2] >> 4;
 3172                           .loc 1 790 14 view .LVU823
 3173 0006 1B01                 lsls    r3, r3, #4
 3174                   .LVL390:
 791:../libBME280/src/bme280.c ****     uncomp_data->pressure = data_msb | data_lsb | data_xlsb;
 3175                           .loc 1 791 5 is_stmt 1 view .LVU824
 791:../libBME280/src/bme280.c ****     uncomp_data->pressure = data_msb | data_lsb | data_xlsb;
 3176                           .loc 1 791 35 is_stmt 0 view .LVU825
 3177 0008 8278                 ldrb    r2, [r0, #2]    @ zero_extendqisi2
 3178                   .LVL391:
 792:../libBME280/src/bme280.c **** 
 3179                           .loc 1 792 5 is_stmt 1 view .LVU826
 792:../libBME280/src/bme280.c **** 
 3180                           .loc 1 792 38 is_stmt 0 view .LVU827
 3181 000a 43EA0433             orr     r3, r3, r4, lsl #12
 3182                   .LVL392:
 792:../libBME280/src/bme280.c **** 
 3183                           .loc 1 792 49 view .LVU828
 3184 000e 43EA1213             orr     r3, r3, r2, lsr #4
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 92


 792:../libBME280/src/bme280.c **** 
 3185                           .loc 1 792 27 view .LVU829
 3186 0012 0B60                 str     r3, [r1]
 3187                   .LVL393:
 795:../libBME280/src/bme280.c ****     data_lsb = (uint32_t)reg_data[4] << 4;
 3188                           .loc 1 795 5 is_stmt 1 view .LVU830
 795:../libBME280/src/bme280.c ****     data_lsb = (uint32_t)reg_data[4] << 4;
 3189                           .loc 1 795 34 is_stmt 0 view .LVU831
 3190 0014 C478                 ldrb    r4, [r0, #3]    @ zero_extendqisi2
 3191                   .LVL394:
 796:../libBME280/src/bme280.c ****     data_xlsb = (uint32_t)reg_data[5] >> 4;
 3192                           .loc 1 796 5 is_stmt 1 view .LVU832
 796:../libBME280/src/bme280.c ****     data_xlsb = (uint32_t)reg_data[5] >> 4;
 3193                           .loc 1 796 34 is_stmt 0 view .LVU833
 3194 0016 0379                 ldrb    r3, [r0, #4]    @ zero_extendqisi2
 796:../libBME280/src/bme280.c ****     data_xlsb = (uint32_t)reg_data[5] >> 4;
 3195                           .loc 1 796 14 view .LVU834
 3196 0018 1B01                 lsls    r3, r3, #4
 3197                   .LVL395:
 797:../libBME280/src/bme280.c ****     uncomp_data->temperature = data_msb | data_lsb | data_xlsb;
 3198                           .loc 1 797 5 is_stmt 1 view .LVU835
 797:../libBME280/src/bme280.c ****     uncomp_data->temperature = data_msb | data_lsb | data_xlsb;
 3199                           .loc 1 797 35 is_stmt 0 view .LVU836
 3200 001a 4279                 ldrb    r2, [r0, #5]    @ zero_extendqisi2
 3201                   .LVL396:
 798:../libBME280/src/bme280.c **** 
 3202                           .loc 1 798 5 is_stmt 1 view .LVU837
 798:../libBME280/src/bme280.c **** 
 3203                           .loc 1 798 41 is_stmt 0 view .LVU838
 3204 001c 43EA0433             orr     r3, r3, r4, lsl #12
 3205                   .LVL397:
 798:../libBME280/src/bme280.c **** 
 3206                           .loc 1 798 52 view .LVU839
 3207 0020 43EA1213             orr     r3, r3, r2, lsr #4
 798:../libBME280/src/bme280.c **** 
 3208                           .loc 1 798 30 view .LVU840
 3209 0024 4B60                 str     r3, [r1, #4]
 3210                   .LVL398:
 801:../libBME280/src/bme280.c ****     data_lsb = (uint32_t)reg_data[7];
 3211                           .loc 1 801 5 is_stmt 1 view .LVU841
 801:../libBME280/src/bme280.c ****     data_lsb = (uint32_t)reg_data[7];
 3212                           .loc 1 801 34 is_stmt 0 view .LVU842
 3213 0026 8279                 ldrb    r2, [r0, #6]    @ zero_extendqisi2
 3214                   .LVL399:
 802:../libBME280/src/bme280.c ****     uncomp_data->humidity = data_msb | data_lsb;
 3215                           .loc 1 802 5 is_stmt 1 view .LVU843
 802:../libBME280/src/bme280.c ****     uncomp_data->humidity = data_msb | data_lsb;
 3216                           .loc 1 802 34 is_stmt 0 view .LVU844
 3217 0028 C379                 ldrb    r3, [r0, #7]    @ zero_extendqisi2
 3218                   .LVL400:
 803:../libBME280/src/bme280.c **** }
 3219                           .loc 1 803 5 is_stmt 1 view .LVU845
 803:../libBME280/src/bme280.c **** }
 3220                           .loc 1 803 38 is_stmt 0 view .LVU846
 3221 002a 43EA0223             orr     r3, r3, r2, lsl #8
 3222                   .LVL401:
 803:../libBME280/src/bme280.c **** }
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 93


 3223                           .loc 1 803 27 view .LVU847
 3224 002e 8B60                 str     r3, [r1, #8]
 3225                   .LVL402:
 804:../libBME280/src/bme280.c **** 
 3226                           .loc 1 804 1 view .LVU848
 3227 0030 10BC                 pop     {r4}
 3228                   .LCFI60:
 3229                           .cfi_restore 4
 3230                           .cfi_def_cfa_offset 0
 3231 0032 7047                 bx      lr
 3232                           .cfi_endproc
 3233                   .LFE9:
 3235                           .section        .text.bme280_compensate_data,"ax",%progbits
 3236                           .align  1
 3237                           .global bme280_compensate_data
 3238                           .syntax unified
 3239                           .thumb
 3240                           .thumb_func
 3241                           .fpu softvfp
 3243                   bme280_compensate_data:
 3244                   .LVL403:
 3245                   .LFB10:
 815:../libBME280/src/bme280.c ****     int8_t rslt = BME280_OK;
 3246                           .loc 1 815 1 is_stmt 1 view -0
 3247                           .cfi_startproc
 3248                           @ args = 0, pretend = 0, frame = 0
 3249                           @ frame_needed = 0, uses_anonymous_args = 0
 816:../libBME280/src/bme280.c **** 
 3250                           .loc 1 816 5 view .LVU850
 818:../libBME280/src/bme280.c ****     {
 3251                           .loc 1 818 5 view .LVU851
 818:../libBME280/src/bme280.c ****     {
 3252                           .loc 1 818 8 is_stmt 0 view .LVU852
 3253 0000 61B3                 cbz     r1, .L162
 815:../libBME280/src/bme280.c ****     int8_t rslt = BME280_OK;
 3254                           .loc 1 815 1 discriminator 1 view .LVU853
 3255 0002 F8B5                 push    {r3, r4, r5, r6, r7, lr}
 3256                   .LCFI61:
 3257                           .cfi_def_cfa_offset 24
 3258                           .cfi_offset 3, -24
 3259                           .cfi_offset 4, -20
 3260                           .cfi_offset 5, -16
 3261                           .cfi_offset 6, -12
 3262                           .cfi_offset 7, -8
 3263                           .cfi_offset 14, -4
 3264 0004 0F46                 mov     r7, r1
 818:../libBME280/src/bme280.c ****     {
 3265                           .loc 1 818 31 discriminator 1 view .LVU854
 3266 0006 62B3                 cbz     r2, .L163
 818:../libBME280/src/bme280.c ****     {
 3267                           .loc 1 818 54 discriminator 2 view .LVU855
 3268 0008 73B3                 cbz     r3, .L164
 3269 000a 1E46                 mov     r6, r3
 3270 000c 1446                 mov     r4, r2
 3271 000e 0546                 mov     r5, r0
 821:../libBME280/src/bme280.c ****         comp_data->pressure = 0;
 3272                           .loc 1 821 9 is_stmt 1 view .LVU856
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 94


 821:../libBME280/src/bme280.c ****         comp_data->pressure = 0;
 3273                           .loc 1 821 32 is_stmt 0 view .LVU857
 3274 0010 0022                 movs    r2, #0
 3275                   .LVL404:
 821:../libBME280/src/bme280.c ****         comp_data->pressure = 0;
 3276                           .loc 1 821 32 view .LVU858
 3277 0012 0023                 movs    r3, #0
 3278                   .LVL405:
 821:../libBME280/src/bme280.c ****         comp_data->pressure = 0;
 3279                           .loc 1 821 32 view .LVU859
 3280 0014 C4E90223             strd    r2, [r4, #8]
 822:../libBME280/src/bme280.c ****         comp_data->humidity = 0;
 3281                           .loc 1 822 9 is_stmt 1 view .LVU860
 822:../libBME280/src/bme280.c ****         comp_data->humidity = 0;
 3282                           .loc 1 822 29 is_stmt 0 view .LVU861
 3283 0018 C4E90023             strd    r2, [r4]
 823:../libBME280/src/bme280.c **** 
 3284                           .loc 1 823 9 is_stmt 1 view .LVU862
 823:../libBME280/src/bme280.c **** 
 3285                           .loc 1 823 29 is_stmt 0 view .LVU863
 3286 001c C4E90423             strd    r2, [r4, #16]
 826:../libBME280/src/bme280.c ****         {
 3287                           .loc 1 826 9 is_stmt 1 view .LVU864
 826:../libBME280/src/bme280.c ****         {
 3288                           .loc 1 826 12 is_stmt 0 view .LVU865
 3289 0020 10F0070F             tst     r0, #7
 3290 0024 13D1                 bne     .L170
 3291                   .LVL406:
 3292                   .L160:
 832:../libBME280/src/bme280.c ****         {
 3293                           .loc 1 832 9 is_stmt 1 view .LVU866
 832:../libBME280/src/bme280.c ****         {
 3294                           .loc 1 832 12 is_stmt 0 view .LVU867
 3295 0026 15F0010F             tst     r5, #1
 3296 002a 05D0                 beq     .L161
 835:../libBME280/src/bme280.c ****         }
 3297                           .loc 1 835 13 is_stmt 1 view .LVU868
 835:../libBME280/src/bme280.c ****         }
 3298                           .loc 1 835 35 is_stmt 0 view .LVU869
 3299 002c 3146                 mov     r1, r6
 3300 002e 3846                 mov     r0, r7
 3301 0030 FFF7FEFF             bl      compensate_pressure
 3302                   .LVL407:
 835:../libBME280/src/bme280.c ****         }
 3303                           .loc 1 835 33 view .LVU870
 3304 0034 C4E90001             strd    r0, [r4]
 3305                   .L161:
 838:../libBME280/src/bme280.c ****         {
 3306                           .loc 1 838 9 is_stmt 1 view .LVU871
 838:../libBME280/src/bme280.c ****         {
 3307                           .loc 1 838 12 is_stmt 0 view .LVU872
 3308 0038 15F0040F             tst     r5, #4
 3309 003c 17D0                 beq     .L165
 841:../libBME280/src/bme280.c ****         }
 3310                           .loc 1 841 13 is_stmt 1 view .LVU873
 841:../libBME280/src/bme280.c ****         }
 3311                           .loc 1 841 35 is_stmt 0 view .LVU874
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 95


 3312 003e 3146                 mov     r1, r6
 3313 0040 3846                 mov     r0, r7
 3314 0042 FFF7FEFF             bl      compensate_humidity
 3315                   .LVL408:
 841:../libBME280/src/bme280.c ****         }
 3316                           .loc 1 841 33 view .LVU875
 3317 0046 C4E90401             strd    r0, [r4, #16]
 816:../libBME280/src/bme280.c **** 
 3318                           .loc 1 816 12 view .LVU876
 3319 004a 0020                 movs    r0, #0
 3320                   .LVL409:
 3321                   .L159:
 849:../libBME280/src/bme280.c **** }
 3322                           .loc 1 849 5 is_stmt 1 view .LVU877
 850:../libBME280/src/bme280.c **** 
 3323                           .loc 1 850 1 is_stmt 0 view .LVU878
 3324 004c F8BD                 pop     {r3, r4, r5, r6, r7, pc}
 3325                   .LVL410:
 3326                   .L170:
 829:../libBME280/src/bme280.c ****         }
 3327                           .loc 1 829 13 is_stmt 1 view .LVU879
 829:../libBME280/src/bme280.c ****         }
 3328                           .loc 1 829 38 is_stmt 0 view .LVU880
 3329 004e 3146                 mov     r1, r6
 3330                   .LVL411:
 829:../libBME280/src/bme280.c ****         }
 3331                           .loc 1 829 38 view .LVU881
 3332 0050 3846                 mov     r0, r7
 3333                   .LVL412:
 829:../libBME280/src/bme280.c ****         }
 3334                           .loc 1 829 38 view .LVU882
 3335 0052 FFF7FEFF             bl      compensate_temperature
 3336                   .LVL413:
 829:../libBME280/src/bme280.c ****         }
 3337                           .loc 1 829 36 view .LVU883
 3338 0056 C4E90201             strd    r0, [r4, #8]
 3339 005a E4E7                 b       .L160
 3340                   .LVL414:
 3341                   .L162:
 3342                   .LCFI62:
 3343                           .cfi_def_cfa_offset 0
 3344                           .cfi_restore 3
 3345                           .cfi_restore 4
 3346                           .cfi_restore 5
 3347                           .cfi_restore 6
 3348                           .cfi_restore 7
 3349                           .cfi_restore 14
 846:../libBME280/src/bme280.c ****     }
 3350                           .loc 1 846 14 view .LVU884
 3351 005c 4FF0FF30             mov     r0, #-1
 3352                   .LVL415:
 849:../libBME280/src/bme280.c **** }
 3353                           .loc 1 849 5 is_stmt 1 view .LVU885
 850:../libBME280/src/bme280.c **** 
 3354                           .loc 1 850 1 is_stmt 0 view .LVU886
 3355 0060 7047                 bx      lr
 3356                   .LVL416:
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 96


 3357                   .L163:
 3358                   .LCFI63:
 3359                           .cfi_def_cfa_offset 24
 3360                           .cfi_offset 3, -24
 3361                           .cfi_offset 4, -20
 3362                           .cfi_offset 5, -16
 3363                           .cfi_offset 6, -12
 3364                           .cfi_offset 7, -8
 3365                           .cfi_offset 14, -4
 846:../libBME280/src/bme280.c ****     }
 3366                           .loc 1 846 14 view .LVU887
 3367 0062 4FF0FF30             mov     r0, #-1
 3368                   .LVL417:
 846:../libBME280/src/bme280.c ****     }
 3369                           .loc 1 846 14 view .LVU888
 3370 0066 F1E7                 b       .L159
 3371                   .LVL418:
 3372                   .L164:
 846:../libBME280/src/bme280.c ****     }
 3373                           .loc 1 846 14 view .LVU889
 3374 0068 4FF0FF30             mov     r0, #-1
 3375                   .LVL419:
 846:../libBME280/src/bme280.c ****     }
 3376                           .loc 1 846 14 view .LVU890
 3377 006c EEE7                 b       .L159
 3378                   .LVL420:
 3379                   .L165:
 816:../libBME280/src/bme280.c **** 
 3380                           .loc 1 816 12 view .LVU891
 3381 006e 0020                 movs    r0, #0
 3382 0070 ECE7                 b       .L159
 3383                           .cfi_endproc
 3384                   .LFE10:
 3386                           .section        .text.bme280_get_sensor_data,"ax",%progbits
 3387                           .align  1
 3388                           .global bme280_get_sensor_data
 3389                           .syntax unified
 3390                           .thumb
 3391                           .thumb_func
 3392                           .fpu softvfp
 3394                   bme280_get_sensor_data:
 3395                   .LVL421:
 3396                   .LFB8:
 741:../libBME280/src/bme280.c ****     int8_t rslt;
 3397                           .loc 1 741 1 is_stmt 1 view -0
 3398                           .cfi_startproc
 3399                           @ args = 0, pretend = 0, frame = 24
 3400                           @ frame_needed = 0, uses_anonymous_args = 0
 741:../libBME280/src/bme280.c ****     int8_t rslt;
 3401                           .loc 1 741 1 is_stmt 0 view .LVU893
 3402 0000 70B5                 push    {r4, r5, r6, lr}
 3403                   .LCFI64:
 3404                           .cfi_def_cfa_offset 16
 3405                           .cfi_offset 4, -16
 3406                           .cfi_offset 5, -12
 3407                           .cfi_offset 6, -8
 3408                           .cfi_offset 14, -4
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 97


 3409 0002 86B0                 sub     sp, sp, #24
 3410                   .LCFI65:
 3411                           .cfi_def_cfa_offset 40
 3412 0004 0646                 mov     r6, r0
 3413 0006 0D46                 mov     r5, r1
 3414 0008 1446                 mov     r4, r2
 742:../libBME280/src/bme280.c **** 
 3415                           .loc 1 742 5 is_stmt 1 view .LVU894
 747:../libBME280/src/bme280.c ****     struct bme280_uncomp_data uncomp_data = { 0 };
 3416                           .loc 1 747 5 view .LVU895
 747:../libBME280/src/bme280.c ****     struct bme280_uncomp_data uncomp_data = { 0 };
 3417                           .loc 1 747 13 is_stmt 0 view .LVU896
 3418 000a 0023                 movs    r3, #0
 3419 000c 0493                 str     r3, [sp, #16]
 3420 000e 0593                 str     r3, [sp, #20]
 748:../libBME280/src/bme280.c **** 
 3421                           .loc 1 748 5 is_stmt 1 view .LVU897
 748:../libBME280/src/bme280.c **** 
 3422                           .loc 1 748 31 is_stmt 0 view .LVU898
 3423 0010 0193                 str     r3, [sp, #4]
 3424 0012 0293                 str     r3, [sp, #8]
 3425 0014 0393                 str     r3, [sp, #12]
 751:../libBME280/src/bme280.c **** 
 3426                           .loc 1 751 5 is_stmt 1 view .LVU899
 751:../libBME280/src/bme280.c **** 
 3427                           .loc 1 751 12 is_stmt 0 view .LVU900
 3428 0016 1046                 mov     r0, r2
 3429                   .LVL422:
 751:../libBME280/src/bme280.c **** 
 3430                           .loc 1 751 12 view .LVU901
 3431 0018 FFF7FEFF             bl      null_ptr_check
 3432                   .LVL423:
 753:../libBME280/src/bme280.c ****     {
 3433                           .loc 1 753 5 is_stmt 1 view .LVU902
 753:../libBME280/src/bme280.c ****     {
 3434                           .loc 1 753 8 is_stmt 0 view .LVU903
 3435 001c C0B9                 cbnz    r0, .L173
 753:../libBME280/src/bme280.c ****     {
 3436                           .loc 1 753 29 discriminator 1 view .LVU904
 3437 001e D5B1                 cbz     r5, .L174
 756:../libBME280/src/bme280.c **** 
 3438                           .loc 1 756 9 is_stmt 1 view .LVU905
 756:../libBME280/src/bme280.c **** 
 3439                           .loc 1 756 16 is_stmt 0 view .LVU906
 3440 0020 2346                 mov     r3, r4
 3441 0022 0822                 movs    r2, #8
 3442 0024 04A9                 add     r1, sp, #16
 3443 0026 F720                 movs    r0, #247
 3444                   .LVL424:
 756:../libBME280/src/bme280.c **** 
 3445                           .loc 1 756 16 view .LVU907
 3446 0028 FFF7FEFF             bl      bme280_get_regs
 3447                   .LVL425:
 758:../libBME280/src/bme280.c ****         {
 3448                           .loc 1 758 9 is_stmt 1 view .LVU908
 758:../libBME280/src/bme280.c ****         {
 3449                           .loc 1 758 12 is_stmt 0 view .LVU909
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 98


 3450 002c 0346                 mov     r3, r0
 3451 002e 10B1                 cbz     r0, .L176
 3452                   .LVL426:
 3453                   .L172:
 774:../libBME280/src/bme280.c **** }
 3454                           .loc 1 774 5 is_stmt 1 view .LVU910
 775:../libBME280/src/bme280.c **** 
 3455                           .loc 1 775 1 is_stmt 0 view .LVU911
 3456 0030 1846                 mov     r0, r3
 3457 0032 06B0                 add     sp, sp, #24
 3458                   .LCFI66:
 3459                           .cfi_remember_state
 3460                           .cfi_def_cfa_offset 16
 3461                           @ sp needed
 3462 0034 70BD                 pop     {r4, r5, r6, pc}
 3463                   .LVL427:
 3464                   .L176:
 3465                   .LCFI67:
 3466                           .cfi_restore_state
 761:../libBME280/src/bme280.c **** 
 3467                           .loc 1 761 13 is_stmt 1 view .LVU912
 3468 0036 01A9                 add     r1, sp, #4
 3469 0038 04A8                 add     r0, sp, #16
 3470                   .LVL428:
 761:../libBME280/src/bme280.c **** 
 3471                           .loc 1 761 13 is_stmt 0 view .LVU913
 3472 003a FFF7FEFF             bl      bme280_parse_sensor_data
 3473                   .LVL429:
 766:../libBME280/src/bme280.c ****         }
 3474                           .loc 1 766 13 is_stmt 1 view .LVU914
 766:../libBME280/src/bme280.c ****         }
 3475                           .loc 1 766 20 is_stmt 0 view .LVU915
 3476 003e 04F11803             add     r3, r4, #24
 3477 0042 2A46                 mov     r2, r5
 3478 0044 01A9                 add     r1, sp, #4
 3479 0046 3046                 mov     r0, r6
 3480 0048 FFF7FEFF             bl      bme280_compensate_data
 3481                   .LVL430:
 3482 004c 0346                 mov     r3, r0
 3483                   .LVL431:
 766:../libBME280/src/bme280.c ****         }
 3484                           .loc 1 766 20 view .LVU916
 3485 004e EFE7                 b       .L172
 3486                   .LVL432:
 3487                   .L173:
 771:../libBME280/src/bme280.c ****     }
 3488                           .loc 1 771 14 view .LVU917
 3489 0050 4FF0FF33             mov     r3, #-1
 3490 0054 ECE7                 b       .L172
 3491                   .L174:
 3492 0056 4FF0FF33             mov     r3, #-1
 3493 005a E9E7                 b       .L172
 3494                           .cfi_endproc
 3495                   .LFE8:
 3497                           .section        .text.bme280_cal_meas_delay,"ax",%progbits
 3498                           .align  1
 3499                           .global bme280_cal_meas_delay
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 99


 3500                           .syntax unified
 3501                           .thumb
 3502                           .thumb_func
 3503                           .fpu softvfp
 3505                   bme280_cal_meas_delay:
 3506                   .LVL433:
 3507                   .LFB11:
 857:../libBME280/src/bme280.c ****     uint32_t max_delay;
 3508                           .loc 1 857 1 is_stmt 1 view -0
 3509                           .cfi_startproc
 3510                           @ args = 0, pretend = 0, frame = 8
 3511                           @ frame_needed = 0, uses_anonymous_args = 0
 3512                           @ link register save eliminated.
 857:../libBME280/src/bme280.c ****     uint32_t max_delay;
 3513                           .loc 1 857 1 is_stmt 0 view .LVU919
 3514 0000 82B0                 sub     sp, sp, #8
 3515                   .LCFI68:
 3516                           .cfi_def_cfa_offset 8
 3517 0002 0246                 mov     r2, r0
 858:../libBME280/src/bme280.c ****     uint8_t temp_osr;
 3518                           .loc 1 858 5 is_stmt 1 view .LVU920
 859:../libBME280/src/bme280.c ****     uint8_t pres_osr;
 3519                           .loc 1 859 5 view .LVU921
 860:../libBME280/src/bme280.c ****     uint8_t hum_osr;
 3520                           .loc 1 860 5 view .LVU922
 861:../libBME280/src/bme280.c **** 
 3521                           .loc 1 861 5 view .LVU923
 864:../libBME280/src/bme280.c **** 
 3522                           .loc 1 864 5 view .LVU924
 864:../libBME280/src/bme280.c **** 
 3523                           .loc 1 864 13 is_stmt 0 view .LVU925
 3524 0004 1C4B                 ldr     r3, .L185
 3525 0006 93E80300             ldm     r3, {r0, r1}
 3526                   .LVL434:
 864:../libBME280/src/bme280.c **** 
 3527                           .loc 1 864 13 view .LVU926
 3528 000a 0090                 str     r0, [sp]
 3529 000c ADF80410             strh    r1, [sp, #4]    @ movhi
 867:../libBME280/src/bme280.c ****     {
 3530                           .loc 1 867 5 is_stmt 1 view .LVU927
 867:../libBME280/src/bme280.c ****     {
 3531                           .loc 1 867 17 is_stmt 0 view .LVU928
 3532 0010 5378                 ldrb    r3, [r2, #1]    @ zero_extendqisi2
 867:../libBME280/src/bme280.c ****     {
 3533                           .loc 1 867 8 view .LVU929
 3534 0012 052B                 cmp     r3, #5
 3535 0014 04D8                 bhi     .L181
 869:../libBME280/src/bme280.c ****     }
 3536                           .loc 1 869 9 is_stmt 1 view .LVU930
 869:../libBME280/src/bme280.c ****     }
 3537                           .loc 1 869 18 is_stmt 0 view .LVU931
 3538 0016 02A9                 add     r1, sp, #8
 3539 0018 0B44                 add     r3, r3, r1
 3540 001a 13F8083C             ldrb    r3, [r3, #-8]   @ zero_extendqisi2
 3541                   .LVL435:
 869:../libBME280/src/bme280.c ****     }
 3542                           .loc 1 869 18 view .LVU932
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 100


 3543 001e 00E0                 b       .L178
 3544                   .LVL436:
 3545                   .L181:
 873:../libBME280/src/bme280.c ****     }
 3546                           .loc 1 873 18 view .LVU933
 3547 0020 1023                 movs    r3, #16
 3548                   .L178:
 3549                   .LVL437:
 876:../libBME280/src/bme280.c ****     {
 3550                           .loc 1 876 5 is_stmt 1 view .LVU934
 876:../libBME280/src/bme280.c ****     {
 3551                           .loc 1 876 17 is_stmt 0 view .LVU935
 3552 0022 1178                 ldrb    r1, [r2]        @ zero_extendqisi2
 876:../libBME280/src/bme280.c ****     {
 3553                           .loc 1 876 8 view .LVU936
 3554 0024 0529                 cmp     r1, #5
 3555 0026 04D8                 bhi     .L182
 878:../libBME280/src/bme280.c ****     }
 3556                           .loc 1 878 9 is_stmt 1 view .LVU937
 878:../libBME280/src/bme280.c ****     }
 3557                           .loc 1 878 18 is_stmt 0 view .LVU938
 3558 0028 02A8                 add     r0, sp, #8
 3559 002a 0144                 add     r1, r1, r0
 3560 002c 11F8081C             ldrb    r1, [r1, #-8]   @ zero_extendqisi2
 3561                   .LVL438:
 878:../libBME280/src/bme280.c ****     }
 3562                           .loc 1 878 18 view .LVU939
 3563 0030 00E0                 b       .L179
 3564                   .LVL439:
 3565                   .L182:
 882:../libBME280/src/bme280.c ****     }
 3566                           .loc 1 882 18 view .LVU940
 3567 0032 1021                 movs    r1, #16
 3568                   .L179:
 3569                   .LVL440:
 885:../libBME280/src/bme280.c ****     {
 3570                           .loc 1 885 5 is_stmt 1 view .LVU941
 885:../libBME280/src/bme280.c ****     {
 3571                           .loc 1 885 17 is_stmt 0 view .LVU942
 3572 0034 9278                 ldrb    r2, [r2, #2]    @ zero_extendqisi2
 3573                   .LVL441:
 885:../libBME280/src/bme280.c ****     {
 3574                           .loc 1 885 8 view .LVU943
 3575 0036 052A                 cmp     r2, #5
 3576 0038 04D8                 bhi     .L183
 887:../libBME280/src/bme280.c ****     }
 3577                           .loc 1 887 9 is_stmt 1 view .LVU944
 887:../libBME280/src/bme280.c ****     }
 3578                           .loc 1 887 17 is_stmt 0 view .LVU945
 3579 003a 02A8                 add     r0, sp, #8
 3580 003c 0244                 add     r2, r2, r0
 3581 003e 12F8080C             ldrb    r0, [r2, #-8]   @ zero_extendqisi2
 3582                   .LVL442:
 887:../libBME280/src/bme280.c ****     }
 3583                           .loc 1 887 17 view .LVU946
 3584 0042 00E0                 b       .L180
 3585                   .LVL443:
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 101


 3586                   .L183:
 891:../libBME280/src/bme280.c ****     }
 3587                           .loc 1 891 17 view .LVU947
 3588 0044 1020                 movs    r0, #16
 3589                   .L180:
 3590                   .LVL444:
 894:../libBME280/src/bme280.c ****         (uint32_t)((BME280_MEAS_OFFSET + (BME280_MEAS_DUR * temp_osr) +
 3591                           .loc 1 894 5 is_stmt 1 view .LVU948
 895:../libBME280/src/bme280.c ****                     ((BME280_MEAS_DUR * pres_osr) + BME280_PRES_HUM_MEAS_OFFSET) +
 3592                           .loc 1 895 59 is_stmt 0 view .LVU949
 3593 0046 40F6FC02             movw    r2, #2300
 3594 004a 02FB03F3             mul     r3, r2, r3
 3595                   .LVL445:
 895:../libBME280/src/bme280.c ****                     ((BME280_MEAS_DUR * pres_osr) + BME280_PRES_HUM_MEAS_OFFSET) +
 3596                           .loc 1 895 40 view .LVU950
 3597 004e 03F2E243             addw    r3, r3, #1250
 896:../libBME280/src/bme280.c ****                     ((BME280_MEAS_DUR * hum_osr) + BME280_PRES_HUM_MEAS_OFFSET)) / BME280_MEAS_SCAL
 3598                           .loc 1 896 39 view .LVU951
 3599 0052 02FB01F1             mul     r1, r2, r1
 3600                   .LVL446:
 896:../libBME280/src/bme280.c ****                     ((BME280_MEAS_DUR * hum_osr) + BME280_PRES_HUM_MEAS_OFFSET)) / BME280_MEAS_SCAL
 3601                           .loc 1 896 51 view .LVU952
 3602 0056 01F23F21             addw    r1, r1, #575
 895:../libBME280/src/bme280.c ****                     ((BME280_MEAS_DUR * pres_osr) + BME280_PRES_HUM_MEAS_OFFSET) +
 3603                           .loc 1 895 71 view .LVU953
 3604 005a 0B44                 add     r3, r3, r1
 897:../libBME280/src/bme280.c **** 
 3605                           .loc 1 897 39 view .LVU954
 3606 005c 02FB00F2             mul     r2, r2, r0
 897:../libBME280/src/bme280.c **** 
 3607                           .loc 1 897 50 view .LVU955
 3608 0060 02F23F20             addw    r0, r2, #575
 3609                   .LVL447:
 896:../libBME280/src/bme280.c ****                     ((BME280_MEAS_DUR * hum_osr) + BME280_PRES_HUM_MEAS_OFFSET)) / BME280_MEAS_SCAL
 3610                           .loc 1 896 82 view .LVU956
 3611 0064 0344                 add     r3, r3, r0
 897:../libBME280/src/bme280.c **** 
 3612                           .loc 1 897 82 view .LVU957
 3613 0066 0548                 ldr     r0, .L185+4
 3614 0068 80FB0320             smull   r2, r0, r0, r3
 3615 006c DB17                 asrs    r3, r3, #31
 3616                   .LVL448:
 899:../libBME280/src/bme280.c **** }
 3617                           .loc 1 899 5 is_stmt 1 view .LVU958
 900:../libBME280/src/bme280.c **** 
 3618                           .loc 1 900 1 is_stmt 0 view .LVU959
 3619 006e C3EBA010             rsb     r0, r3, r0, asr #6
 3620                   .LVL449:
 900:../libBME280/src/bme280.c **** 
 3621                           .loc 1 900 1 view .LVU960
 3622 0072 02B0                 add     sp, sp, #8
 3623                   .LCFI69:
 3624                           .cfi_def_cfa_offset 0
 3625                           @ sp needed
 3626 0074 7047                 bx      lr
 3627                   .L186:
 3628 0076 00BF                 .align  2
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 102


 3629                   .L185:
 3630 0078 00000000             .word   .LANCHOR0
 3631 007c D34D6210             .word   274877907
 3632                           .cfi_endproc
 3633                   .LFE11:
 3635                           .section        .rodata
 3636                           .align  2
 3637                           .set    .LANCHOR0,. + 0
 3638                   .LC0:
 3639 0000 00                   .byte   0
 3640 0001 01                   .byte   1
 3641 0002 02                   .byte   2
 3642 0003 04                   .byte   4
 3643 0004 08                   .byte   8
 3644 0005 10                   .byte   16
 3645                           .text
 3646                   .Letext0:
 3647                           .file 2 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 3648                           .file 3 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 3649                           .file 4 "../libBME280/inc/libBME280/bme280_defs.h"
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 103


DEFINED SYMBOLS
                            *ABS*:0000000000000000 bme280.c
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:16     .text.fill_filter_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:23     .text.fill_filter_settings:0000000000000000 fill_filter_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:48     .text.fill_standby_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:54     .text.fill_standby_settings:0000000000000000 fill_standby_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:76     .text.fill_osr_press_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:82     .text.fill_osr_press_settings:0000000000000000 fill_osr_press_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:106    .text.fill_osr_temp_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:112    .text.fill_osr_temp_settings:0000000000000000 fill_osr_temp_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:134    .text.parse_device_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:140    .text.parse_device_settings:0000000000000000 parse_device_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:193    .text.compensate_temperature:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:199    .text.compensate_temperature:0000000000000000 compensate_temperature
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:396    .text.compensate_temperature:00000000000000ec $d
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:407    .text.compensate_pressure:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:413    .text.compensate_pressure:0000000000000000 compensate_pressure
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:788    .text.compensate_pressure:0000000000000218 $d
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:806    .text.compensate_humidity:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:812    .text.compensate_humidity:0000000000000000 compensate_humidity
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1089   .text.compensate_humidity:000000000000015c $d
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1100   .text.interleave_reg_addr:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1106   .text.interleave_reg_addr:0000000000000000 interleave_reg_addr
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1168   .text.parse_temp_press_calib_data:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1174   .text.parse_temp_press_calib_data:0000000000000000 parse_temp_press_calib_data
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1287   .text.parse_humidity_calib_data:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1293   .text.parse_humidity_calib_data:0000000000000000 parse_humidity_calib_data
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1371   .text.are_settings_changed:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1377   .text.are_settings_changed:0000000000000000 are_settings_changed
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1407   .text.null_ptr_check:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1413   .text.null_ptr_check:0000000000000000 null_ptr_check
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1475   .text.bme280_get_regs:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1482   .text.bme280_get_regs:0000000000000000 bme280_get_regs
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1570   .text.get_calib_data:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1576   .text.get_calib_data:0000000000000000 get_calib_data
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1669   .text.bme280_set_regs:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1676   .text.bme280_set_regs:0000000000000000 bme280_set_regs
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1847   .text.set_osr_humidity_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1853   .text.set_osr_humidity_settings:0000000000000000 set_osr_humidity_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1951   .text.set_osr_press_temp_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:1957   .text.set_osr_press_temp_settings:0000000000000000 set_osr_press_temp_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2055   .text.set_osr_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2061   .text.set_osr_settings:0000000000000000 set_osr_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2127   .text.set_filter_standby_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2133   .text.set_filter_standby_settings:0000000000000000 set_filter_standby_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2231   .text.reload_device_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2237   .text.reload_device_settings:0000000000000000 reload_device_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2295   .text.write_power_mode:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2301   .text.write_power_mode:0000000000000000 write_power_mode
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2383   .text.bme280_get_sensor_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2390   .text.bme280_get_sensor_settings:0000000000000000 bme280_get_sensor_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2460   .text.bme280_get_sensor_mode:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2467   .text.bme280_get_sensor_mode:0000000000000000 bme280_get_sensor_mode
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2536   .text.bme280_soft_reset:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2543   .text.bme280_soft_reset:0000000000000000 bme280_soft_reset
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2671   .text.bme280_init:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2678   .text.bme280_init:0000000000000000 bme280_init
ARM GAS  C:\Users\mike\AppData\Local\Temp\cci3lQTU.s                   page 104


C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2812   .text.put_device_to_sleep:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2818   .text.put_device_to_sleep:0000000000000000 put_device_to_sleep
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2900   .text.bme280_set_sensor_settings:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:2907   .text.bme280_set_sensor_settings:0000000000000000 bme280_set_sensor_settings
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3038   .text.bme280_set_sensor_mode:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3045   .text.bme280_set_sensor_mode:0000000000000000 bme280_set_sensor_mode
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3142   .text.bme280_parse_sensor_data:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3149   .text.bme280_parse_sensor_data:0000000000000000 bme280_parse_sensor_data
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3236   .text.bme280_compensate_data:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3243   .text.bme280_compensate_data:0000000000000000 bme280_compensate_data
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3387   .text.bme280_get_sensor_data:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3394   .text.bme280_get_sensor_data:0000000000000000 bme280_get_sensor_data
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3498   .text.bme280_cal_meas_delay:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3505   .text.bme280_cal_meas_delay:0000000000000000 bme280_cal_meas_delay
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3630   .text.bme280_cal_meas_delay:0000000000000078 $d
C:\Users\mike\AppData\Local\Temp\cci3lQTU.s:3636   .rodata:0000000000000000 $d

UNDEFINED SYMBOLS
__aeabi_ui2d
__aeabi_dmul
__aeabi_dsub
__aeabi_i2d
__aeabi_dadd
__aeabi_d2iz
__aeabi_ddiv
__aeabi_dcmplt
__aeabi_dcmpgt