ARM GAS  /tmp/ccv8HLGI.s 			page 1


   1              		.cpu cortex-m4
   2              		.arch armv7e-m
   3              		.fpu fpv4-sp-d16
   4              		.eabi_attribute 27, 1
   5              		.eabi_attribute 28, 1
   6              		.eabi_attribute 20, 1
   7              		.eabi_attribute 21, 1
   8              		.eabi_attribute 23, 3
   9              		.eabi_attribute 24, 1
  10              		.eabi_attribute 25, 1
  11              		.eabi_attribute 26, 1
  12              		.eabi_attribute 30, 1
  13              		.eabi_attribute 34, 1
  14              		.eabi_attribute 18, 4
  15              		.file	"ADBMS_Abstraction.c"
  16              		.text
  17              	.Ltext0:
  18              		.cfi_sections	.debug_frame
  19              		.file 1 "Core/Src/ADBMS_Abstraction.c"
  20              		.section	.text.amsWakeUp,"ax",%progbits
  21              		.align	1
  22              		.global	amsWakeUp
  23              		.syntax unified
  24              		.thumb
  25              		.thumb_func
  27              	amsWakeUp:
  28              	.LFB125:
   1:Core/Src/ADBMS_Abstraction.c **** /*
   2:Core/Src/ADBMS_Abstraction.c ****  * ADBMS_Abstraction.c
   3:Core/Src/ADBMS_Abstraction.c ****  *
   4:Core/Src/ADBMS_Abstraction.c ****  *  Created on: 14.07.2022
   5:Core/Src/ADBMS_Abstraction.c ****  *      Author: max
   6:Core/Src/ADBMS_Abstraction.c ****  */
   7:Core/Src/ADBMS_Abstraction.c **** 
   8:Core/Src/ADBMS_Abstraction.c **** #include "ADBMS_Abstraction.h"
   9:Core/Src/ADBMS_Abstraction.c **** #include "ADBMS_CMD_MAKROS.h"
  10:Core/Src/ADBMS_Abstraction.c **** #include "ADBMS_LL_Driver.h"
  11:Core/Src/ADBMS_Abstraction.c **** #include <stddef.h>
  12:Core/Src/ADBMS_Abstraction.c **** 
  13:Core/Src/ADBMS_Abstraction.c **** uint8 numberofcells;
  14:Core/Src/ADBMS_Abstraction.c **** uint8 numberofauxchannels;
  15:Core/Src/ADBMS_Abstraction.c **** 
  16:Core/Src/ADBMS_Abstraction.c **** #define CHECK_RETURN(x)                                                        \
  17:Core/Src/ADBMS_Abstraction.c ****   {                                                                            \
  18:Core/Src/ADBMS_Abstraction.c ****     uint8 status = x;                                                          \
  19:Core/Src/ADBMS_Abstraction.c ****     if (status != 0)                                                           \
  20:Core/Src/ADBMS_Abstraction.c ****       return status;                                                           \
  21:Core/Src/ADBMS_Abstraction.c ****   }
  22:Core/Src/ADBMS_Abstraction.c **** 
  23:Core/Src/ADBMS_Abstraction.c **** uint8 amsReset() {
  24:Core/Src/ADBMS_Abstraction.c ****   amsWakeUp();
  25:Core/Src/ADBMS_Abstraction.c ****   readCMD(SRST, NULL, 0);
  26:Core/Src/ADBMS_Abstraction.c ****   mcuDelay(10);
  27:Core/Src/ADBMS_Abstraction.c ****   amsWakeUp();
  28:Core/Src/ADBMS_Abstraction.c ****   amsStopBalancing();
  29:Core/Src/ADBMS_Abstraction.c ****   amsConfigOverUnderVoltage(DEFAULT_OV, DEFAULT_UV);
  30:Core/Src/ADBMS_Abstraction.c **** 
ARM GAS  /tmp/ccv8HLGI.s 			page 2


  31:Core/Src/ADBMS_Abstraction.c ****   uint8 buffer[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
  32:Core/Src/ADBMS_Abstraction.c **** 
  33:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(CLRFLAG, buffer, 6)); //clear flags,
  34:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(CLOVUV, buffer, 6));  //OVUV flags
  35:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADCV | ADCV_CONT | ADCV_RD, NULL, 0)); //start continuous cell voltage meas
  36:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADAX | ADAX_CONV_ALL, NULL, 0)); //start aux measurement
  37:Core/Src/ADBMS_Abstraction.c **** 
  38:Core/Src/ADBMS_Abstraction.c ****   return 0;
  39:Core/Src/ADBMS_Abstraction.c **** }
  40:Core/Src/ADBMS_Abstraction.c **** 
  41:Core/Src/ADBMS_Abstraction.c **** uint8 initAMS(SPI_HandleTypeDef* hspi, uint8 numofcells, uint8 numofaux) {
  42:Core/Src/ADBMS_Abstraction.c ****   adbmsDriverInit(hspi);
  43:Core/Src/ADBMS_Abstraction.c ****   numberofcells = numofcells;
  44:Core/Src/ADBMS_Abstraction.c ****   numberofauxchannels = numofaux;
  45:Core/Src/ADBMS_Abstraction.c **** 
  46:Core/Src/ADBMS_Abstraction.c ****   return amsReset();
  47:Core/Src/ADBMS_Abstraction.c **** }
  48:Core/Src/ADBMS_Abstraction.c **** 
  49:Core/Src/ADBMS_Abstraction.c **** uint8 amsWakeUp() {
  29              		.loc 1 49 19 view -0
  30              		.cfi_startproc
  31              		@ args = 0, pretend = 0, frame = 8
  32              		@ frame_needed = 0, uses_anonymous_args = 0
  33 0000 00B5     		push	{lr}
  34              		.cfi_def_cfa_offset 4
  35              		.cfi_offset 14, -4
  36 0002 83B0     		sub	sp, sp, #12
  37              		.cfi_def_cfa_offset 16
  50:Core/Src/ADBMS_Abstraction.c ****   uint8 buf[6];
  38              		.loc 1 50 3 view .LVU1
  51:Core/Src/ADBMS_Abstraction.c ****   return readCMD(RDCFGA, buf, 6);
  39              		.loc 1 51 3 view .LVU2
  40              		.loc 1 51 10 is_stmt 0 view .LVU3
  41 0004 0622     		movs	r2, #6
  42 0006 6946     		mov	r1, sp
  43 0008 0220     		movs	r0, #2
  44 000a FFF7FEFF 		bl	readCMD
  45              	.LVL0:
  52:Core/Src/ADBMS_Abstraction.c **** }
  46              		.loc 1 52 1 view .LVU4
  47 000e 03B0     		add	sp, sp, #12
  48              		.cfi_def_cfa_offset 4
  49              		@ sp needed
  50 0010 5DF804FB 		ldr	pc, [sp], #4
  51              		.cfi_endproc
  52              	.LFE125:
  54              		.section	.text.amsConfigCellMeasurement,"ax",%progbits
  55              		.align	1
  56              		.global	amsConfigCellMeasurement
  57              		.syntax unified
  58              		.thumb
  59              		.thumb_func
  61              	amsConfigCellMeasurement:
  62              	.LVL1:
  63              	.LFB127:
  53:Core/Src/ADBMS_Abstraction.c **** 
  54:Core/Src/ADBMS_Abstraction.c **** uint8 amsCellMeasurement(Cell_Module* module) {
ARM GAS  /tmp/ccv8HLGI.s 			page 3


  55:Core/Src/ADBMS_Abstraction.c ****   #warning check conversion counter to ensure that continous conversion has not been stopped
  56:Core/Src/ADBMS_Abstraction.c ****   #warning check for OW conditions: ADSV | ADSV_OW_0 / ADSV_OW_1
  57:Core/Src/ADBMS_Abstraction.c ****   return amsReadCellVoltages(module);
  58:Core/Src/ADBMS_Abstraction.c **** }
  59:Core/Src/ADBMS_Abstraction.c **** 
  60:Core/Src/ADBMS_Abstraction.c **** uint8 amsConfigCellMeasurement(uint8 numberofChannels) {
  64              		.loc 1 60 56 is_stmt 1 view -0
  65              		.cfi_startproc
  66              		@ args = 0, pretend = 0, frame = 0
  67              		@ frame_needed = 0, uses_anonymous_args = 0
  68              		@ link register save eliminated.
  61:Core/Src/ADBMS_Abstraction.c ****   numberofcells = numberofChannels;
  69              		.loc 1 61 3 view .LVU6
  70              		.loc 1 61 17 is_stmt 0 view .LVU7
  71 0000 014B     		ldr	r3, .L4
  72 0002 1870     		strb	r0, [r3]
  62:Core/Src/ADBMS_Abstraction.c ****   return 0;
  73              		.loc 1 62 3 is_stmt 1 view .LVU8
  63:Core/Src/ADBMS_Abstraction.c **** }
  74              		.loc 1 63 1 is_stmt 0 view .LVU9
  75 0004 0020     		movs	r0, #0
  76              	.LVL2:
  77              		.loc 1 63 1 view .LVU10
  78 0006 7047     		bx	lr
  79              	.L5:
  80              		.align	2
  81              	.L4:
  82 0008 00000000 		.word	numberofcells
  83              		.cfi_endproc
  84              	.LFE127:
  86              		.global	__aeabi_i2d
  87              		.global	__aeabi_dmul
  88              		.global	__aeabi_dadd
  89              		.global	__aeabi_d2iz
  90              		.global	__aeabi_d2uiz
  91              		.section	.text.amsAuxAndStatusMeasurement,"ax",%progbits
  92              		.align	1
  93              		.global	amsAuxAndStatusMeasurement
  94              		.syntax unified
  95              		.thumb
  96              		.thumb_func
  98              	amsAuxAndStatusMeasurement:
  99              	.LVL3:
 100              	.LFB128:
  64:Core/Src/ADBMS_Abstraction.c **** 
  65:Core/Src/ADBMS_Abstraction.c **** uint8 amsAuxAndStatusMeasurement(Cell_Module* module) {
 101              		.loc 1 65 55 is_stmt 1 view -0
 102              		.cfi_startproc
 103              		@ args = 0, pretend = 0, frame = 16
 104              		@ frame_needed = 0, uses_anonymous_args = 0
 105              		.loc 1 65 55 is_stmt 0 view .LVU12
 106 0000 10B5     		push	{r4, lr}
 107              		.cfi_def_cfa_offset 8
 108              		.cfi_offset 4, -8
 109              		.cfi_offset 14, -4
 110 0002 84B0     		sub	sp, sp, #16
 111              		.cfi_def_cfa_offset 24
ARM GAS  /tmp/ccv8HLGI.s 			page 4


 112 0004 0446     		mov	r4, r0
  66:Core/Src/ADBMS_Abstraction.c ****   uint8 rxbuf[AUX_GROUP_A_SIZE] = {};
 113              		.loc 1 66 3 is_stmt 1 view .LVU13
 114              		.loc 1 66 9 is_stmt 0 view .LVU14
 115 0006 0023     		movs	r3, #0
 116 0008 0293     		str	r3, [sp, #8]
 117 000a ADF80C30 		strh	r3, [sp, #12]	@ movhi
 118              	.LBB2:
  67:Core/Src/ADBMS_Abstraction.c **** 
  68:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDSTATC, rxbuf, STATUS_GROUP_C_SIZE));
 119              		.loc 1 68 3 is_stmt 1 view .LVU15
 120 000e 0622     		movs	r2, #6
 121 0010 02A9     		add	r1, sp, #8
 122 0012 3220     		movs	r0, #50
 123              	.LVL4:
 124              		.loc 1 68 3 is_stmt 0 view .LVU16
 125 0014 FFF7FEFF 		bl	readCMD
 126              	.LVL5:
 127              		.loc 1 68 3 is_stmt 1 discriminator 1 view .LVU17
 128 0018 08B1     		cbz	r0, .L9
 129              	.L7:
 130              	.LBE2:
  69:Core/Src/ADBMS_Abstraction.c **** 
  70:Core/Src/ADBMS_Abstraction.c ****   module->status.CS_FLT = rxbuf[0] | (rxbuf[1] << 8);
  71:Core/Src/ADBMS_Abstraction.c ****   module->status.CCTS   = rxbuf[2] | (rxbuf[3] << 8);
  72:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_OV  = (rxbuf[4] >> 7) & 0x01;
  73:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_UV  = (rxbuf[4] >> 6) & 0x01;
  74:Core/Src/ADBMS_Abstraction.c ****   module->status.VD_OV  = (rxbuf[4] >> 5) & 0x01;
  75:Core/Src/ADBMS_Abstraction.c ****   module->status.VD_UV  = (rxbuf[4] >> 4) & 0x01;
  76:Core/Src/ADBMS_Abstraction.c ****   module->status.CED    = (rxbuf[4] >> 3) & 0x01;
  77:Core/Src/ADBMS_Abstraction.c ****   module->status.CMED   = (rxbuf[4] >> 2) & 0x01;
  78:Core/Src/ADBMS_Abstraction.c ****   module->status.SED    = (rxbuf[4] >> 1) & 0x01;
  79:Core/Src/ADBMS_Abstraction.c ****   module->status.SMED   = (rxbuf[4] >> 0) & 0x01;
  80:Core/Src/ADBMS_Abstraction.c ****   module->status.VDEL   = (rxbuf[5] >> 7) & 0x01;
  81:Core/Src/ADBMS_Abstraction.c ****   module->status.VDE    = (rxbuf[5] >> 6) & 0x01;
  82:Core/Src/ADBMS_Abstraction.c ****   module->status.COMPARE= (rxbuf[5] >> 5) & 0x01;
  83:Core/Src/ADBMS_Abstraction.c ****   module->status.SPIFLT = (rxbuf[5] >> 4) & 0x01;
  84:Core/Src/ADBMS_Abstraction.c ****   module->status.SLEEP  = (rxbuf[5] >> 3) & 0x01;
  85:Core/Src/ADBMS_Abstraction.c ****   module->status.THSD   = (rxbuf[5] >> 2) & 0x01;
  86:Core/Src/ADBMS_Abstraction.c ****   module->status.TMODCHK= (rxbuf[5] >> 1) & 0x01;
  87:Core/Src/ADBMS_Abstraction.c ****   module->status.OSCCHK = (rxbuf[5] >> 0) & 0x01;
  88:Core/Src/ADBMS_Abstraction.c **** 
  89:Core/Src/ADBMS_Abstraction.c ****   if (pollCMD(PLAUX) == 0x0) { //TODO: check for SPI fault
  90:Core/Src/ADBMS_Abstraction.c ****     return 0; // aux ADC data not ready
  91:Core/Src/ADBMS_Abstraction.c ****   }
  92:Core/Src/ADBMS_Abstraction.c **** 
  93:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDAUXA, rxbuf, AUX_GROUP_A_SIZE));
  94:Core/Src/ADBMS_Abstraction.c **** 
  95:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[0] = mV_from_ADBMS6830(rxbuf[0] | (rxbuf[1] << 8));
  96:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[1] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
  97:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[2] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
  98:Core/Src/ADBMS_Abstraction.c **** 
  99:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDAUXB, rxbuf, AUX_GROUP_A_SIZE));
 100:Core/Src/ADBMS_Abstraction.c **** 
 101:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[3] = mV_from_ADBMS6830(rxbuf[0] | (rxbuf[1] << 8));
 102:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[4] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 103:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[5] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
ARM GAS  /tmp/ccv8HLGI.s 			page 5


 104:Core/Src/ADBMS_Abstraction.c **** 
 105:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDAUXC, rxbuf, AUX_GROUP_A_SIZE));
 106:Core/Src/ADBMS_Abstraction.c **** 
 107:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[6] = mV_from_ADBMS6830(rxbuf[0] | (rxbuf[1] << 8));
 108:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[7] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 109:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[8] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
 110:Core/Src/ADBMS_Abstraction.c **** 
 111:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDAUXD, rxbuf, AUX_GROUP_A_SIZE));
 112:Core/Src/ADBMS_Abstraction.c **** 
 113:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[9] = mV_from_ADBMS6830(rxbuf[0] | (rxbuf[1] << 8));
 114:Core/Src/ADBMS_Abstraction.c **** 
 115:Core/Src/ADBMS_Abstraction.c ****   uint8 rxbuffer[STATUS_GROUP_A_SIZE];
 116:Core/Src/ADBMS_Abstraction.c **** 
 117:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDSTATA, rxbuffer, STATUS_GROUP_A_SIZE));
 118:Core/Src/ADBMS_Abstraction.c **** 
 119:Core/Src/ADBMS_Abstraction.c ****   module->internalDieTemp = rxbuffer[2] | (rxbuffer[3] << 8);
 120:Core/Src/ADBMS_Abstraction.c **** 
 121:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDSTATB, rxbuffer, STATUS_GROUP_B_SIZE));
 122:Core/Src/ADBMS_Abstraction.c ****   module->digitalSupplyVoltage = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 123:Core/Src/ADBMS_Abstraction.c ****   module->analogSupplyVoltage  = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 124:Core/Src/ADBMS_Abstraction.c ****   module->refVoltage           = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 125:Core/Src/ADBMS_Abstraction.c **** 
 126:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADAX | ADAX_CONV_ALL, NULL, 0)); //start aux measurement for next cycle
 127:Core/Src/ADBMS_Abstraction.c **** 
 128:Core/Src/ADBMS_Abstraction.c ****   return 0;
 129:Core/Src/ADBMS_Abstraction.c **** }
 131              		.loc 1 129 1 is_stmt 0 view .LVU18
 132 001a 04B0     		add	sp, sp, #16
 133              		.cfi_remember_state
 134              		.cfi_def_cfa_offset 8
 135              		@ sp needed
 136 001c 10BD     		pop	{r4, pc}
 137              	.LVL6:
 138              	.L9:
 139              		.cfi_restore_state
  68:Core/Src/ADBMS_Abstraction.c **** 
 140              		.loc 1 68 61 is_stmt 1 discriminator 2 view .LVU19
  70:Core/Src/ADBMS_Abstraction.c ****   module->status.CCTS   = rxbuf[2] | (rxbuf[3] << 8);
 141              		.loc 1 70 3 view .LVU20
  70:Core/Src/ADBMS_Abstraction.c ****   module->status.CCTS   = rxbuf[2] | (rxbuf[3] << 8);
 142              		.loc 1 70 32 is_stmt 0 view .LVU21
 143 001e 9DF80830 		ldrb	r3, [sp, #8]	@ zero_extendqisi2
  70:Core/Src/ADBMS_Abstraction.c ****   module->status.CCTS   = rxbuf[2] | (rxbuf[3] << 8);
 144              		.loc 1 70 44 view .LVU22
 145 0022 9DF80920 		ldrb	r2, [sp, #9]	@ zero_extendqisi2
  70:Core/Src/ADBMS_Abstraction.c ****   module->status.CCTS   = rxbuf[2] | (rxbuf[3] << 8);
 146              		.loc 1 70 36 view .LVU23
 147 0026 43EA0223 		orr	r3, r3, r2, lsl #8
  70:Core/Src/ADBMS_Abstraction.c ****   module->status.CCTS   = rxbuf[2] | (rxbuf[3] << 8);
 148              		.loc 1 70 25 view .LVU24
 149 002a A386     		strh	r3, [r4, #52]	@ movhi
  71:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_OV  = (rxbuf[4] >> 7) & 0x01;
 150              		.loc 1 71 3 is_stmt 1 view .LVU25
  71:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_OV  = (rxbuf[4] >> 7) & 0x01;
 151              		.loc 1 71 32 is_stmt 0 view .LVU26
 152 002c 9DF80A30 		ldrb	r3, [sp, #10]	@ zero_extendqisi2
  71:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_OV  = (rxbuf[4] >> 7) & 0x01;
ARM GAS  /tmp/ccv8HLGI.s 			page 6


 153              		.loc 1 71 44 view .LVU27
 154 0030 9DF80B20 		ldrb	r2, [sp, #11]	@ zero_extendqisi2
  71:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_OV  = (rxbuf[4] >> 7) & 0x01;
 155              		.loc 1 71 36 view .LVU28
 156 0034 43EA0223 		orr	r3, r3, r2, lsl #8
  71:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_OV  = (rxbuf[4] >> 7) & 0x01;
 157              		.loc 1 71 25 view .LVU29
 158 0038 E28E     		ldrh	r2, [r4, #54]
 159 003a 63F3CF02 		bfi	r2, r3, #3, #13
 160 003e E286     		strh	r2, [r4, #54]	@ movhi
  72:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_UV  = (rxbuf[4] >> 6) & 0x01;
 161              		.loc 1 72 3 is_stmt 1 view .LVU30
  72:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_UV  = (rxbuf[4] >> 6) & 0x01;
 162              		.loc 1 72 33 is_stmt 0 view .LVU31
 163 0040 9DF80C30 		ldrb	r3, [sp, #12]	@ zero_extendqisi2
  72:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_UV  = (rxbuf[4] >> 6) & 0x01;
 164              		.loc 1 72 43 view .LVU32
 165 0044 D909     		lsrs	r1, r3, #7
  72:Core/Src/ADBMS_Abstraction.c ****   module->status.VA_UV  = (rxbuf[4] >> 6) & 0x01;
 166              		.loc 1 72 25 view .LVU33
 167 0046 94F83820 		ldrb	r2, [r4, #56]	@ zero_extendqisi2
 168 004a 61F30002 		bfi	r2, r1, #0, #1
 169 004e 84F83820 		strb	r2, [r4, #56]
  73:Core/Src/ADBMS_Abstraction.c ****   module->status.VD_OV  = (rxbuf[4] >> 5) & 0x01;
 170              		.loc 1 73 3 is_stmt 1 view .LVU34
  73:Core/Src/ADBMS_Abstraction.c ****   module->status.VD_OV  = (rxbuf[4] >> 5) & 0x01;
 171              		.loc 1 73 43 is_stmt 0 view .LVU35
 172 0052 C3F38011 		ubfx	r1, r3, #6, #1
  73:Core/Src/ADBMS_Abstraction.c ****   module->status.VD_OV  = (rxbuf[4] >> 5) & 0x01;
 173              		.loc 1 73 25 view .LVU36
 174 0056 D2B2     		uxtb	r2, r2
 175 0058 61F34102 		bfi	r2, r1, #1, #1
 176 005c 84F83820 		strb	r2, [r4, #56]
  74:Core/Src/ADBMS_Abstraction.c ****   module->status.VD_UV  = (rxbuf[4] >> 4) & 0x01;
 177              		.loc 1 74 3 is_stmt 1 view .LVU37
  74:Core/Src/ADBMS_Abstraction.c ****   module->status.VD_UV  = (rxbuf[4] >> 4) & 0x01;
 178              		.loc 1 74 43 is_stmt 0 view .LVU38
 179 0060 C3F34011 		ubfx	r1, r3, #5, #1
  74:Core/Src/ADBMS_Abstraction.c ****   module->status.VD_UV  = (rxbuf[4] >> 4) & 0x01;
 180              		.loc 1 74 25 view .LVU39
 181 0064 D2B2     		uxtb	r2, r2
 182 0066 61F38202 		bfi	r2, r1, #2, #1
 183 006a 84F83820 		strb	r2, [r4, #56]
  75:Core/Src/ADBMS_Abstraction.c ****   module->status.CED    = (rxbuf[4] >> 3) & 0x01;
 184              		.loc 1 75 3 is_stmt 1 view .LVU40
  75:Core/Src/ADBMS_Abstraction.c ****   module->status.CED    = (rxbuf[4] >> 3) & 0x01;
 185              		.loc 1 75 43 is_stmt 0 view .LVU41
 186 006e C3F30011 		ubfx	r1, r3, #4, #1
  75:Core/Src/ADBMS_Abstraction.c ****   module->status.CED    = (rxbuf[4] >> 3) & 0x01;
 187              		.loc 1 75 25 view .LVU42
 188 0072 D2B2     		uxtb	r2, r2
 189 0074 61F3C302 		bfi	r2, r1, #3, #1
 190 0078 84F83820 		strb	r2, [r4, #56]
  76:Core/Src/ADBMS_Abstraction.c ****   module->status.CMED   = (rxbuf[4] >> 2) & 0x01;
 191              		.loc 1 76 3 is_stmt 1 view .LVU43
  76:Core/Src/ADBMS_Abstraction.c ****   module->status.CMED   = (rxbuf[4] >> 2) & 0x01;
 192              		.loc 1 76 43 is_stmt 0 view .LVU44
ARM GAS  /tmp/ccv8HLGI.s 			page 7


 193 007c C3F3C001 		ubfx	r1, r3, #3, #1
  76:Core/Src/ADBMS_Abstraction.c ****   module->status.CMED   = (rxbuf[4] >> 2) & 0x01;
 194              		.loc 1 76 25 view .LVU45
 195 0080 D2B2     		uxtb	r2, r2
 196 0082 61F30412 		bfi	r2, r1, #4, #1
 197 0086 84F83820 		strb	r2, [r4, #56]
  77:Core/Src/ADBMS_Abstraction.c ****   module->status.SED    = (rxbuf[4] >> 1) & 0x01;
 198              		.loc 1 77 3 is_stmt 1 view .LVU46
  77:Core/Src/ADBMS_Abstraction.c ****   module->status.SED    = (rxbuf[4] >> 1) & 0x01;
 199              		.loc 1 77 43 is_stmt 0 view .LVU47
 200 008a C3F38001 		ubfx	r1, r3, #2, #1
  77:Core/Src/ADBMS_Abstraction.c ****   module->status.SED    = (rxbuf[4] >> 1) & 0x01;
 201              		.loc 1 77 25 view .LVU48
 202 008e D2B2     		uxtb	r2, r2
 203 0090 61F34512 		bfi	r2, r1, #5, #1
 204 0094 84F83820 		strb	r2, [r4, #56]
  78:Core/Src/ADBMS_Abstraction.c ****   module->status.SMED   = (rxbuf[4] >> 0) & 0x01;
 205              		.loc 1 78 3 is_stmt 1 view .LVU49
  78:Core/Src/ADBMS_Abstraction.c ****   module->status.SMED   = (rxbuf[4] >> 0) & 0x01;
 206              		.loc 1 78 43 is_stmt 0 view .LVU50
 207 0098 C3F34001 		ubfx	r1, r3, #1, #1
  78:Core/Src/ADBMS_Abstraction.c ****   module->status.SMED   = (rxbuf[4] >> 0) & 0x01;
 208              		.loc 1 78 25 view .LVU51
 209 009c D2B2     		uxtb	r2, r2
 210 009e 61F38612 		bfi	r2, r1, #6, #1
 211 00a2 84F83820 		strb	r2, [r4, #56]
  79:Core/Src/ADBMS_Abstraction.c ****   module->status.VDEL   = (rxbuf[5] >> 7) & 0x01;
 212              		.loc 1 79 3 is_stmt 1 view .LVU52
  79:Core/Src/ADBMS_Abstraction.c ****   module->status.VDEL   = (rxbuf[5] >> 7) & 0x01;
 213              		.loc 1 79 25 is_stmt 0 view .LVU53
 214 00a6 D2B2     		uxtb	r2, r2
 215 00a8 63F3C712 		bfi	r2, r3, #7, #1
 216 00ac 84F83820 		strb	r2, [r4, #56]
  80:Core/Src/ADBMS_Abstraction.c ****   module->status.VDE    = (rxbuf[5] >> 6) & 0x01;
 217              		.loc 1 80 3 is_stmt 1 view .LVU54
  80:Core/Src/ADBMS_Abstraction.c ****   module->status.VDE    = (rxbuf[5] >> 6) & 0x01;
 218              		.loc 1 80 33 is_stmt 0 view .LVU55
 219 00b0 9DF80D30 		ldrb	r3, [sp, #13]	@ zero_extendqisi2
  80:Core/Src/ADBMS_Abstraction.c ****   module->status.VDE    = (rxbuf[5] >> 6) & 0x01;
 220              		.loc 1 80 43 view .LVU56
 221 00b4 D909     		lsrs	r1, r3, #7
  80:Core/Src/ADBMS_Abstraction.c ****   module->status.VDE    = (rxbuf[5] >> 6) & 0x01;
 222              		.loc 1 80 25 view .LVU57
 223 00b6 94F83920 		ldrb	r2, [r4, #57]	@ zero_extendqisi2
 224 00ba 61F30002 		bfi	r2, r1, #0, #1
 225 00be 84F83920 		strb	r2, [r4, #57]
  81:Core/Src/ADBMS_Abstraction.c ****   module->status.COMPARE= (rxbuf[5] >> 5) & 0x01;
 226              		.loc 1 81 3 is_stmt 1 view .LVU58
  81:Core/Src/ADBMS_Abstraction.c ****   module->status.COMPARE= (rxbuf[5] >> 5) & 0x01;
 227              		.loc 1 81 43 is_stmt 0 view .LVU59
 228 00c2 C3F38011 		ubfx	r1, r3, #6, #1
  81:Core/Src/ADBMS_Abstraction.c ****   module->status.COMPARE= (rxbuf[5] >> 5) & 0x01;
 229              		.loc 1 81 25 view .LVU60
 230 00c6 D2B2     		uxtb	r2, r2
 231 00c8 61F34102 		bfi	r2, r1, #1, #1
 232 00cc 84F83920 		strb	r2, [r4, #57]
  82:Core/Src/ADBMS_Abstraction.c ****   module->status.SPIFLT = (rxbuf[5] >> 4) & 0x01;
ARM GAS  /tmp/ccv8HLGI.s 			page 8


 233              		.loc 1 82 3 is_stmt 1 view .LVU61
  82:Core/Src/ADBMS_Abstraction.c ****   module->status.SPIFLT = (rxbuf[5] >> 4) & 0x01;
 234              		.loc 1 82 43 is_stmt 0 view .LVU62
 235 00d0 C3F34011 		ubfx	r1, r3, #5, #1
  82:Core/Src/ADBMS_Abstraction.c ****   module->status.SPIFLT = (rxbuf[5] >> 4) & 0x01;
 236              		.loc 1 82 25 view .LVU63
 237 00d4 D2B2     		uxtb	r2, r2
 238 00d6 61F38202 		bfi	r2, r1, #2, #1
 239 00da 84F83920 		strb	r2, [r4, #57]
  83:Core/Src/ADBMS_Abstraction.c ****   module->status.SLEEP  = (rxbuf[5] >> 3) & 0x01;
 240              		.loc 1 83 3 is_stmt 1 view .LVU64
  83:Core/Src/ADBMS_Abstraction.c ****   module->status.SLEEP  = (rxbuf[5] >> 3) & 0x01;
 241              		.loc 1 83 43 is_stmt 0 view .LVU65
 242 00de C3F30011 		ubfx	r1, r3, #4, #1
  83:Core/Src/ADBMS_Abstraction.c ****   module->status.SLEEP  = (rxbuf[5] >> 3) & 0x01;
 243              		.loc 1 83 25 view .LVU66
 244 00e2 D2B2     		uxtb	r2, r2
 245 00e4 61F3C302 		bfi	r2, r1, #3, #1
 246 00e8 84F83920 		strb	r2, [r4, #57]
  84:Core/Src/ADBMS_Abstraction.c ****   module->status.THSD   = (rxbuf[5] >> 2) & 0x01;
 247              		.loc 1 84 3 is_stmt 1 view .LVU67
  84:Core/Src/ADBMS_Abstraction.c ****   module->status.THSD   = (rxbuf[5] >> 2) & 0x01;
 248              		.loc 1 84 43 is_stmt 0 view .LVU68
 249 00ec C3F3C001 		ubfx	r1, r3, #3, #1
  84:Core/Src/ADBMS_Abstraction.c ****   module->status.THSD   = (rxbuf[5] >> 2) & 0x01;
 250              		.loc 1 84 25 view .LVU69
 251 00f0 D2B2     		uxtb	r2, r2
 252 00f2 61F30412 		bfi	r2, r1, #4, #1
 253 00f6 84F83920 		strb	r2, [r4, #57]
  85:Core/Src/ADBMS_Abstraction.c ****   module->status.TMODCHK= (rxbuf[5] >> 1) & 0x01;
 254              		.loc 1 85 3 is_stmt 1 view .LVU70
  85:Core/Src/ADBMS_Abstraction.c ****   module->status.TMODCHK= (rxbuf[5] >> 1) & 0x01;
 255              		.loc 1 85 43 is_stmt 0 view .LVU71
 256 00fa C3F38001 		ubfx	r1, r3, #2, #1
  85:Core/Src/ADBMS_Abstraction.c ****   module->status.TMODCHK= (rxbuf[5] >> 1) & 0x01;
 257              		.loc 1 85 25 view .LVU72
 258 00fe D2B2     		uxtb	r2, r2
 259 0100 61F34512 		bfi	r2, r1, #5, #1
 260 0104 84F83920 		strb	r2, [r4, #57]
  86:Core/Src/ADBMS_Abstraction.c ****   module->status.OSCCHK = (rxbuf[5] >> 0) & 0x01;
 261              		.loc 1 86 3 is_stmt 1 view .LVU73
  86:Core/Src/ADBMS_Abstraction.c ****   module->status.OSCCHK = (rxbuf[5] >> 0) & 0x01;
 262              		.loc 1 86 43 is_stmt 0 view .LVU74
 263 0108 C3F34001 		ubfx	r1, r3, #1, #1
  86:Core/Src/ADBMS_Abstraction.c ****   module->status.OSCCHK = (rxbuf[5] >> 0) & 0x01;
 264              		.loc 1 86 25 view .LVU75
 265 010c D2B2     		uxtb	r2, r2
 266 010e 61F38612 		bfi	r2, r1, #6, #1
 267 0112 84F83920 		strb	r2, [r4, #57]
  87:Core/Src/ADBMS_Abstraction.c **** 
 268              		.loc 1 87 3 is_stmt 1 view .LVU76
  87:Core/Src/ADBMS_Abstraction.c **** 
 269              		.loc 1 87 25 is_stmt 0 view .LVU77
 270 0116 D2B2     		uxtb	r2, r2
 271 0118 63F3C712 		bfi	r2, r3, #7, #1
 272 011c 84F83920 		strb	r2, [r4, #57]
  89:Core/Src/ADBMS_Abstraction.c ****     return 0; // aux ADC data not ready
ARM GAS  /tmp/ccv8HLGI.s 			page 9


 273              		.loc 1 89 3 is_stmt 1 view .LVU78
  89:Core/Src/ADBMS_Abstraction.c ****     return 0; // aux ADC data not ready
 274              		.loc 1 89 7 is_stmt 0 view .LVU79
 275 0120 40F21E70 		movw	r0, #1822
 276 0124 FFF7FEFF 		bl	pollCMD
 277              	.LVL7:
  89:Core/Src/ADBMS_Abstraction.c ****     return 0; // aux ADC data not ready
 278              		.loc 1 89 6 discriminator 1 view .LVU80
 279 0128 0028     		cmp	r0, #0
 280 012a 3FF476AF 		beq	.L7
 281              	.LBB3:
  93:Core/Src/ADBMS_Abstraction.c **** 
 282              		.loc 1 93 3 is_stmt 1 view .LVU81
 283 012e 0622     		movs	r2, #6
 284 0130 02A9     		add	r1, sp, #8
 285 0132 1920     		movs	r0, #25
 286 0134 FFF7FEFF 		bl	readCMD
 287              	.LVL8:
  93:Core/Src/ADBMS_Abstraction.c **** 
 288              		.loc 1 93 3 discriminator 1 view .LVU82
 289 0138 0028     		cmp	r0, #0
 290 013a 7FF46EAF 		bne	.L7
 291              	.LBE3:
  93:Core/Src/ADBMS_Abstraction.c **** 
 292              		.loc 1 93 57 discriminator 2 view .LVU83
  95:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[1] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 293              		.loc 1 95 3 view .LVU84
  95:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[1] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 294              		.loc 1 95 28 is_stmt 0 view .LVU85
 295 013e 9DF80800 		ldrb	r0, [sp, #8]	@ zero_extendqisi2
 296              	.LVL9:
  95:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[1] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 297              		.loc 1 95 28 view .LVU86
 298 0142 9DF80930 		ldrb	r3, [sp, #9]	@ zero_extendqisi2
 299 0146 40EA0320 		orr	r0, r0, r3, lsl #8
 300 014a 00B2     		sxth	r0, r0
 301 014c FFF7FEFF 		bl	__aeabi_i2d
 302              	.LVL10:
 303 0150 A5A3     		adr	r3, .L10
 304 0152 D3E90023 		ldrd	r2, [r3]
 305 0156 FFF7FEFF 		bl	__aeabi_dmul
 306              	.LVL11:
 307 015a A5A3     		adr	r3, .L10+8
 308 015c D3E90023 		ldrd	r2, [r3]
 309 0160 FFF7FEFF 		bl	__aeabi_dadd
 310              	.LVL12:
  95:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[1] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 311              		.loc 1 95 26 view .LVU87
 312 0164 FFF7FEFF 		bl	__aeabi_d2iz
 313              	.LVL13:
 314 0168 2084     		strh	r0, [r4, #32]	@ movhi
  96:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[2] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
 315              		.loc 1 96 3 is_stmt 1 view .LVU88
  96:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[2] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
 316              		.loc 1 96 28 is_stmt 0 view .LVU89
 317 016a 9DF80A00 		ldrb	r0, [sp, #10]	@ zero_extendqisi2
 318 016e 9DF80B30 		ldrb	r3, [sp, #11]	@ zero_extendqisi2
ARM GAS  /tmp/ccv8HLGI.s 			page 10


 319 0172 40EA0320 		orr	r0, r0, r3, lsl #8
 320 0176 00B2     		sxth	r0, r0
 321 0178 FFF7FEFF 		bl	__aeabi_i2d
 322              	.LVL14:
 323 017c 9AA3     		adr	r3, .L10
 324 017e D3E90023 		ldrd	r2, [r3]
 325 0182 FFF7FEFF 		bl	__aeabi_dmul
 326              	.LVL15:
 327 0186 9AA3     		adr	r3, .L10+8
 328 0188 D3E90023 		ldrd	r2, [r3]
 329 018c FFF7FEFF 		bl	__aeabi_dadd
 330              	.LVL16:
  96:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[2] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
 331              		.loc 1 96 26 view .LVU90
 332 0190 FFF7FEFF 		bl	__aeabi_d2iz
 333              	.LVL17:
 334 0194 6084     		strh	r0, [r4, #34]	@ movhi
  97:Core/Src/ADBMS_Abstraction.c **** 
 335              		.loc 1 97 3 is_stmt 1 view .LVU91
  97:Core/Src/ADBMS_Abstraction.c **** 
 336              		.loc 1 97 28 is_stmt 0 view .LVU92
 337 0196 9DF80C00 		ldrb	r0, [sp, #12]	@ zero_extendqisi2
 338 019a 9DF80D30 		ldrb	r3, [sp, #13]	@ zero_extendqisi2
 339 019e 40EA0320 		orr	r0, r0, r3, lsl #8
 340 01a2 00B2     		sxth	r0, r0
 341 01a4 FFF7FEFF 		bl	__aeabi_i2d
 342              	.LVL18:
 343 01a8 8FA3     		adr	r3, .L10
 344 01aa D3E90023 		ldrd	r2, [r3]
 345 01ae FFF7FEFF 		bl	__aeabi_dmul
 346              	.LVL19:
 347 01b2 8FA3     		adr	r3, .L10+8
 348 01b4 D3E90023 		ldrd	r2, [r3]
 349 01b8 FFF7FEFF 		bl	__aeabi_dadd
 350              	.LVL20:
  97:Core/Src/ADBMS_Abstraction.c **** 
 351              		.loc 1 97 26 view .LVU93
 352 01bc FFF7FEFF 		bl	__aeabi_d2iz
 353              	.LVL21:
 354 01c0 A084     		strh	r0, [r4, #36]	@ movhi
 355              	.LBB4:
  99:Core/Src/ADBMS_Abstraction.c **** 
 356              		.loc 1 99 3 is_stmt 1 view .LVU94
 357 01c2 0622     		movs	r2, #6
 358 01c4 02A9     		add	r1, sp, #8
 359 01c6 1A20     		movs	r0, #26
 360 01c8 FFF7FEFF 		bl	readCMD
 361              	.LVL22:
  99:Core/Src/ADBMS_Abstraction.c **** 
 362              		.loc 1 99 3 discriminator 1 view .LVU95
 363 01cc 0028     		cmp	r0, #0
 364 01ce 7FF424AF 		bne	.L7
 365              	.LBE4:
  99:Core/Src/ADBMS_Abstraction.c **** 
 366              		.loc 1 99 57 discriminator 2 view .LVU96
 101:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[4] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 367              		.loc 1 101 3 view .LVU97
ARM GAS  /tmp/ccv8HLGI.s 			page 11


 101:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[4] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 368              		.loc 1 101 28 is_stmt 0 view .LVU98
 369 01d2 9DF80800 		ldrb	r0, [sp, #8]	@ zero_extendqisi2
 370              	.LVL23:
 101:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[4] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 371              		.loc 1 101 28 view .LVU99
 372 01d6 9DF80930 		ldrb	r3, [sp, #9]	@ zero_extendqisi2
 373 01da 40EA0320 		orr	r0, r0, r3, lsl #8
 374 01de 00B2     		sxth	r0, r0
 375 01e0 FFF7FEFF 		bl	__aeabi_i2d
 376              	.LVL24:
 377 01e4 80A3     		adr	r3, .L10
 378 01e6 D3E90023 		ldrd	r2, [r3]
 379 01ea FFF7FEFF 		bl	__aeabi_dmul
 380              	.LVL25:
 381 01ee 80A3     		adr	r3, .L10+8
 382 01f0 D3E90023 		ldrd	r2, [r3]
 383 01f4 FFF7FEFF 		bl	__aeabi_dadd
 384              	.LVL26:
 101:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[4] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 385              		.loc 1 101 26 view .LVU100
 386 01f8 FFF7FEFF 		bl	__aeabi_d2iz
 387              	.LVL27:
 388 01fc E084     		strh	r0, [r4, #38]	@ movhi
 102:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[5] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
 389              		.loc 1 102 3 is_stmt 1 view .LVU101
 102:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[5] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
 390              		.loc 1 102 28 is_stmt 0 view .LVU102
 391 01fe 9DF80A00 		ldrb	r0, [sp, #10]	@ zero_extendqisi2
 392 0202 9DF80B30 		ldrb	r3, [sp, #11]	@ zero_extendqisi2
 393 0206 40EA0320 		orr	r0, r0, r3, lsl #8
 394 020a 00B2     		sxth	r0, r0
 395 020c FFF7FEFF 		bl	__aeabi_i2d
 396              	.LVL28:
 397 0210 75A3     		adr	r3, .L10
 398 0212 D3E90023 		ldrd	r2, [r3]
 399 0216 FFF7FEFF 		bl	__aeabi_dmul
 400              	.LVL29:
 401 021a 75A3     		adr	r3, .L10+8
 402 021c D3E90023 		ldrd	r2, [r3]
 403 0220 FFF7FEFF 		bl	__aeabi_dadd
 404              	.LVL30:
 102:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[5] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
 405              		.loc 1 102 26 view .LVU103
 406 0224 FFF7FEFF 		bl	__aeabi_d2iz
 407              	.LVL31:
 408 0228 2085     		strh	r0, [r4, #40]	@ movhi
 103:Core/Src/ADBMS_Abstraction.c **** 
 409              		.loc 1 103 3 is_stmt 1 view .LVU104
 103:Core/Src/ADBMS_Abstraction.c **** 
 410              		.loc 1 103 28 is_stmt 0 view .LVU105
 411 022a 9DF80C00 		ldrb	r0, [sp, #12]	@ zero_extendqisi2
 412 022e 9DF80D30 		ldrb	r3, [sp, #13]	@ zero_extendqisi2
 413 0232 40EA0320 		orr	r0, r0, r3, lsl #8
 414 0236 00B2     		sxth	r0, r0
 415 0238 FFF7FEFF 		bl	__aeabi_i2d
 416              	.LVL32:
ARM GAS  /tmp/ccv8HLGI.s 			page 12


 417 023c 6AA3     		adr	r3, .L10
 418 023e D3E90023 		ldrd	r2, [r3]
 419 0242 FFF7FEFF 		bl	__aeabi_dmul
 420              	.LVL33:
 421 0246 6AA3     		adr	r3, .L10+8
 422 0248 D3E90023 		ldrd	r2, [r3]
 423 024c FFF7FEFF 		bl	__aeabi_dadd
 424              	.LVL34:
 103:Core/Src/ADBMS_Abstraction.c **** 
 425              		.loc 1 103 26 view .LVU106
 426 0250 FFF7FEFF 		bl	__aeabi_d2iz
 427              	.LVL35:
 428 0254 6085     		strh	r0, [r4, #42]	@ movhi
 429              	.LBB5:
 105:Core/Src/ADBMS_Abstraction.c **** 
 430              		.loc 1 105 3 is_stmt 1 view .LVU107
 431 0256 0622     		movs	r2, #6
 432 0258 02A9     		add	r1, sp, #8
 433 025a 1B20     		movs	r0, #27
 434 025c FFF7FEFF 		bl	readCMD
 435              	.LVL36:
 105:Core/Src/ADBMS_Abstraction.c **** 
 436              		.loc 1 105 3 discriminator 1 view .LVU108
 437 0260 0028     		cmp	r0, #0
 438 0262 7FF4DAAE 		bne	.L7
 439              	.LBE5:
 105:Core/Src/ADBMS_Abstraction.c **** 
 440              		.loc 1 105 57 discriminator 2 view .LVU109
 107:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[7] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 441              		.loc 1 107 3 view .LVU110
 107:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[7] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 442              		.loc 1 107 28 is_stmt 0 view .LVU111
 443 0266 9DF80800 		ldrb	r0, [sp, #8]	@ zero_extendqisi2
 444              	.LVL37:
 107:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[7] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 445              		.loc 1 107 28 view .LVU112
 446 026a 9DF80930 		ldrb	r3, [sp, #9]	@ zero_extendqisi2
 447 026e 40EA0320 		orr	r0, r0, r3, lsl #8
 448 0272 00B2     		sxth	r0, r0
 449 0274 FFF7FEFF 		bl	__aeabi_i2d
 450              	.LVL38:
 451 0278 5BA3     		adr	r3, .L10
 452 027a D3E90023 		ldrd	r2, [r3]
 453 027e FFF7FEFF 		bl	__aeabi_dmul
 454              	.LVL39:
 455 0282 5BA3     		adr	r3, .L10+8
 456 0284 D3E90023 		ldrd	r2, [r3]
 457 0288 FFF7FEFF 		bl	__aeabi_dadd
 458              	.LVL40:
 107:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[7] = mV_from_ADBMS6830(rxbuf[2] | (rxbuf[3] << 8));
 459              		.loc 1 107 26 view .LVU113
 460 028c FFF7FEFF 		bl	__aeabi_d2iz
 461              	.LVL41:
 462 0290 A085     		strh	r0, [r4, #44]	@ movhi
 108:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[8] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
 463              		.loc 1 108 3 is_stmt 1 view .LVU114
 108:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[8] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
ARM GAS  /tmp/ccv8HLGI.s 			page 13


 464              		.loc 1 108 28 is_stmt 0 view .LVU115
 465 0292 9DF80A00 		ldrb	r0, [sp, #10]	@ zero_extendqisi2
 466 0296 9DF80B30 		ldrb	r3, [sp, #11]	@ zero_extendqisi2
 467 029a 40EA0320 		orr	r0, r0, r3, lsl #8
 468 029e 00B2     		sxth	r0, r0
 469 02a0 FFF7FEFF 		bl	__aeabi_i2d
 470              	.LVL42:
 471 02a4 50A3     		adr	r3, .L10
 472 02a6 D3E90023 		ldrd	r2, [r3]
 473 02aa FFF7FEFF 		bl	__aeabi_dmul
 474              	.LVL43:
 475 02ae 50A3     		adr	r3, .L10+8
 476 02b0 D3E90023 		ldrd	r2, [r3]
 477 02b4 FFF7FEFF 		bl	__aeabi_dadd
 478              	.LVL44:
 108:Core/Src/ADBMS_Abstraction.c ****   module->auxVoltages[8] = mV_from_ADBMS6830(rxbuf[4] | (rxbuf[5] << 8));
 479              		.loc 1 108 26 view .LVU116
 480 02b8 FFF7FEFF 		bl	__aeabi_d2iz
 481              	.LVL45:
 482 02bc E085     		strh	r0, [r4, #46]	@ movhi
 109:Core/Src/ADBMS_Abstraction.c **** 
 483              		.loc 1 109 3 is_stmt 1 view .LVU117
 109:Core/Src/ADBMS_Abstraction.c **** 
 484              		.loc 1 109 28 is_stmt 0 view .LVU118
 485 02be 9DF80C00 		ldrb	r0, [sp, #12]	@ zero_extendqisi2
 486 02c2 9DF80D30 		ldrb	r3, [sp, #13]	@ zero_extendqisi2
 487 02c6 40EA0320 		orr	r0, r0, r3, lsl #8
 488 02ca 00B2     		sxth	r0, r0
 489 02cc FFF7FEFF 		bl	__aeabi_i2d
 490              	.LVL46:
 491 02d0 45A3     		adr	r3, .L10
 492 02d2 D3E90023 		ldrd	r2, [r3]
 493 02d6 FFF7FEFF 		bl	__aeabi_dmul
 494              	.LVL47:
 495 02da 45A3     		adr	r3, .L10+8
 496 02dc D3E90023 		ldrd	r2, [r3]
 497 02e0 FFF7FEFF 		bl	__aeabi_dadd
 498              	.LVL48:
 109:Core/Src/ADBMS_Abstraction.c **** 
 499              		.loc 1 109 26 view .LVU119
 500 02e4 FFF7FEFF 		bl	__aeabi_d2iz
 501              	.LVL49:
 502 02e8 2086     		strh	r0, [r4, #48]	@ movhi
 503              	.LBB6:
 111:Core/Src/ADBMS_Abstraction.c **** 
 504              		.loc 1 111 3 is_stmt 1 view .LVU120
 505 02ea 0622     		movs	r2, #6
 506 02ec 02A9     		add	r1, sp, #8
 507 02ee 1F20     		movs	r0, #31
 508 02f0 FFF7FEFF 		bl	readCMD
 509              	.LVL50:
 111:Core/Src/ADBMS_Abstraction.c **** 
 510              		.loc 1 111 3 discriminator 1 view .LVU121
 511 02f4 0028     		cmp	r0, #0
 512 02f6 7FF490AE 		bne	.L7
 513              	.LBE6:
 111:Core/Src/ADBMS_Abstraction.c **** 
ARM GAS  /tmp/ccv8HLGI.s 			page 14


 514              		.loc 1 111 57 discriminator 2 view .LVU122
 113:Core/Src/ADBMS_Abstraction.c **** 
 515              		.loc 1 113 3 view .LVU123
 113:Core/Src/ADBMS_Abstraction.c **** 
 516              		.loc 1 113 28 is_stmt 0 view .LVU124
 517 02fa 9DF80800 		ldrb	r0, [sp, #8]	@ zero_extendqisi2
 518              	.LVL51:
 113:Core/Src/ADBMS_Abstraction.c **** 
 519              		.loc 1 113 28 view .LVU125
 520 02fe 9DF80930 		ldrb	r3, [sp, #9]	@ zero_extendqisi2
 521 0302 40EA0320 		orr	r0, r0, r3, lsl #8
 522 0306 00B2     		sxth	r0, r0
 523 0308 FFF7FEFF 		bl	__aeabi_i2d
 524              	.LVL52:
 525 030c 36A3     		adr	r3, .L10
 526 030e D3E90023 		ldrd	r2, [r3]
 527 0312 FFF7FEFF 		bl	__aeabi_dmul
 528              	.LVL53:
 529 0316 36A3     		adr	r3, .L10+8
 530 0318 D3E90023 		ldrd	r2, [r3]
 531 031c FFF7FEFF 		bl	__aeabi_dadd
 532              	.LVL54:
 113:Core/Src/ADBMS_Abstraction.c **** 
 533              		.loc 1 113 26 view .LVU126
 534 0320 FFF7FEFF 		bl	__aeabi_d2iz
 535              	.LVL55:
 536 0324 6086     		strh	r0, [r4, #50]	@ movhi
 115:Core/Src/ADBMS_Abstraction.c **** 
 537              		.loc 1 115 3 is_stmt 1 view .LVU127
 538              	.LBB7:
 117:Core/Src/ADBMS_Abstraction.c **** 
 539              		.loc 1 117 3 view .LVU128
 540 0326 0622     		movs	r2, #6
 541 0328 6946     		mov	r1, sp
 542 032a 3020     		movs	r0, #48
 543 032c FFF7FEFF 		bl	readCMD
 544              	.LVL56:
 117:Core/Src/ADBMS_Abstraction.c **** 
 545              		.loc 1 117 3 discriminator 1 view .LVU129
 546 0330 0028     		cmp	r0, #0
 547 0332 7FF472AE 		bne	.L7
 548              	.LBE7:
 117:Core/Src/ADBMS_Abstraction.c **** 
 549              		.loc 1 117 64 discriminator 2 view .LVU130
 119:Core/Src/ADBMS_Abstraction.c **** 
 550              		.loc 1 119 3 view .LVU131
 119:Core/Src/ADBMS_Abstraction.c **** 
 551              		.loc 1 119 37 is_stmt 0 view .LVU132
 552 0336 9DF80230 		ldrb	r3, [sp, #2]	@ zero_extendqisi2
 119:Core/Src/ADBMS_Abstraction.c **** 
 553              		.loc 1 119 52 view .LVU133
 554 033a 9DF80320 		ldrb	r2, [sp, #3]	@ zero_extendqisi2
 119:Core/Src/ADBMS_Abstraction.c **** 
 555              		.loc 1 119 41 view .LVU134
 556 033e 43EA0223 		orr	r3, r3, r2, lsl #8
 119:Core/Src/ADBMS_Abstraction.c **** 
 557              		.loc 1 119 27 view .LVU135
ARM GAS  /tmp/ccv8HLGI.s 			page 15


 558 0342 6387     		strh	r3, [r4, #58]	@ movhi
 559              	.LBB8:
 121:Core/Src/ADBMS_Abstraction.c ****   module->digitalSupplyVoltage = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 560              		.loc 1 121 3 is_stmt 1 view .LVU136
 561 0344 0622     		movs	r2, #6
 562 0346 6946     		mov	r1, sp
 563 0348 3120     		movs	r0, #49
 564              	.LVL57:
 121:Core/Src/ADBMS_Abstraction.c ****   module->digitalSupplyVoltage = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 565              		.loc 1 121 3 is_stmt 0 view .LVU137
 566 034a FFF7FEFF 		bl	readCMD
 567              	.LVL58:
 121:Core/Src/ADBMS_Abstraction.c ****   module->digitalSupplyVoltage = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 568              		.loc 1 121 3 is_stmt 1 discriminator 1 view .LVU138
 569 034e 0028     		cmp	r0, #0
 570 0350 7FF463AE 		bne	.L7
 571              	.LBE8:
 121:Core/Src/ADBMS_Abstraction.c ****   module->digitalSupplyVoltage = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 572              		.loc 1 121 64 discriminator 2 view .LVU139
 122:Core/Src/ADBMS_Abstraction.c ****   module->analogSupplyVoltage  = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 573              		.loc 1 122 3 view .LVU140
 122:Core/Src/ADBMS_Abstraction.c ****   module->analogSupplyVoltage  = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 574              		.loc 1 122 34 is_stmt 0 view .LVU141
 575 0354 9DF80000 		ldrb	r0, [sp]	@ zero_extendqisi2
 576              	.LVL59:
 122:Core/Src/ADBMS_Abstraction.c ****   module->analogSupplyVoltage  = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 577              		.loc 1 122 34 view .LVU142
 578 0358 9DF80130 		ldrb	r3, [sp, #1]	@ zero_extendqisi2
 579 035c 40EA0320 		orr	r0, r0, r3, lsl #8
 580 0360 00B2     		sxth	r0, r0
 581 0362 FFF7FEFF 		bl	__aeabi_i2d
 582              	.LVL60:
 583 0366 20A3     		adr	r3, .L10
 584 0368 D3E90023 		ldrd	r2, [r3]
 585 036c FFF7FEFF 		bl	__aeabi_dmul
 586              	.LVL61:
 587 0370 1FA3     		adr	r3, .L10+8
 588 0372 D3E90023 		ldrd	r2, [r3]
 589 0376 FFF7FEFF 		bl	__aeabi_dadd
 590              	.LVL62:
 122:Core/Src/ADBMS_Abstraction.c ****   module->analogSupplyVoltage  = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 591              		.loc 1 122 32 view .LVU143
 592 037a FFF7FEFF 		bl	__aeabi_d2uiz
 593              	.LVL63:
 594 037e E087     		strh	r0, [r4, #62]	@ movhi
 123:Core/Src/ADBMS_Abstraction.c ****   module->refVoltage           = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 595              		.loc 1 123 3 is_stmt 1 view .LVU144
 123:Core/Src/ADBMS_Abstraction.c ****   module->refVoltage           = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 596              		.loc 1 123 34 is_stmt 0 view .LVU145
 597 0380 9DF80200 		ldrb	r0, [sp, #2]	@ zero_extendqisi2
 598 0384 9DF80330 		ldrb	r3, [sp, #3]	@ zero_extendqisi2
 599 0388 40EA0320 		orr	r0, r0, r3, lsl #8
 600 038c 00B2     		sxth	r0, r0
 601 038e FFF7FEFF 		bl	__aeabi_i2d
 602              	.LVL64:
 603 0392 15A3     		adr	r3, .L10
 604 0394 D3E90023 		ldrd	r2, [r3]
ARM GAS  /tmp/ccv8HLGI.s 			page 16


 605 0398 FFF7FEFF 		bl	__aeabi_dmul
 606              	.LVL65:
 607 039c 14A3     		adr	r3, .L10+8
 608 039e D3E90023 		ldrd	r2, [r3]
 609 03a2 FFF7FEFF 		bl	__aeabi_dadd
 610              	.LVL66:
 123:Core/Src/ADBMS_Abstraction.c ****   module->refVoltage           = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 611              		.loc 1 123 32 view .LVU146
 612 03a6 FFF7FEFF 		bl	__aeabi_d2uiz
 613              	.LVL67:
 614 03aa A087     		strh	r0, [r4, #60]	@ movhi
 124:Core/Src/ADBMS_Abstraction.c **** 
 615              		.loc 1 124 3 is_stmt 1 view .LVU147
 124:Core/Src/ADBMS_Abstraction.c **** 
 616              		.loc 1 124 34 is_stmt 0 view .LVU148
 617 03ac 9DF80400 		ldrb	r0, [sp, #4]	@ zero_extendqisi2
 618 03b0 9DF80530 		ldrb	r3, [sp, #5]	@ zero_extendqisi2
 619 03b4 40EA0320 		orr	r0, r0, r3, lsl #8
 620 03b8 00B2     		sxth	r0, r0
 621 03ba FFF7FEFF 		bl	__aeabi_i2d
 622              	.LVL68:
 623 03be 0AA3     		adr	r3, .L10
 624 03c0 D3E90023 		ldrd	r2, [r3]
 625 03c4 FFF7FEFF 		bl	__aeabi_dmul
 626              	.LVL69:
 627 03c8 09A3     		adr	r3, .L10+8
 628 03ca D3E90023 		ldrd	r2, [r3]
 629 03ce FFF7FEFF 		bl	__aeabi_dadd
 630              	.LVL70:
 124:Core/Src/ADBMS_Abstraction.c **** 
 631              		.loc 1 124 32 view .LVU149
 632 03d2 FFF7FEFF 		bl	__aeabi_d2uiz
 633              	.LVL71:
 634 03d6 A4F84200 		strh	r0, [r4, #66]	@ movhi
 635              	.LBB9:
 126:Core/Src/ADBMS_Abstraction.c **** 
 636              		.loc 1 126 3 is_stmt 1 view .LVU150
 637 03da 0022     		movs	r2, #0
 638              	.LVL72:
 126:Core/Src/ADBMS_Abstraction.c **** 
 639              		.loc 1 126 3 is_stmt 0 view .LVU151
 640 03dc 1146     		mov	r1, r2
 641 03de 4FF48260 		mov	r0, #1040
 642 03e2 FFF7FEFF 		bl	writeCMD
 643              	.LVL73:
 126:Core/Src/ADBMS_Abstraction.c **** 
 644              		.loc 1 126 3 is_stmt 1 discriminator 1 view .LVU152
 645 03e6 18E6     		b	.L7
 646              	.L11:
 647              		.align	3
 648              	.L10:
 649 03e8 33333333 		.word	858993459
 650 03ec 3333C33F 		.word	1069757235
 651 03f0 00000000 		.word	0
 652 03f4 00709740 		.word	1083666432
 653              	.LBE9:
 654              		.cfi_endproc
ARM GAS  /tmp/ccv8HLGI.s 			page 17


 655              	.LFE128:
 657              		.section	.text.amsConfigBalancing,"ax",%progbits
 658              		.align	1
 659              		.global	amsConfigBalancing
 660              		.syntax unified
 661              		.thumb
 662              		.thumb_func
 664              	amsConfigBalancing:
 665              	.LVL74:
 666              	.LFB129:
 130:Core/Src/ADBMS_Abstraction.c **** 
 131:Core/Src/ADBMS_Abstraction.c **** uint8 amsConfigBalancing(uint32 channels, uint8 dutyCycle) {
 667              		.loc 1 131 60 view -0
 668              		.cfi_startproc
 669              		@ args = 0, pretend = 0, frame = 16
 670              		@ frame_needed = 0, uses_anonymous_args = 0
 671              		.loc 1 131 60 is_stmt 0 view .LVU154
 672 0000 30B5     		push	{r4, r5, lr}
 673              		.cfi_def_cfa_offset 12
 674              		.cfi_offset 4, -12
 675              		.cfi_offset 5, -8
 676              		.cfi_offset 14, -4
 677 0002 85B0     		sub	sp, sp, #20
 678              		.cfi_def_cfa_offset 32
 679 0004 0446     		mov	r4, r0
 680 0006 0D46     		mov	r5, r1
 132:Core/Src/ADBMS_Abstraction.c ****   uint8 buffer_a[PWM_GROUP_A_SIZE] = {};
 681              		.loc 1 132 3 is_stmt 1 view .LVU155
 682              		.loc 1 132 9 is_stmt 0 view .LVU156
 683 0008 0023     		movs	r3, #0
 684 000a 0293     		str	r3, [sp, #8]
 685 000c ADF80C30 		strh	r3, [sp, #12]	@ movhi
 133:Core/Src/ADBMS_Abstraction.c ****   uint8 buffer_b[PWM_GROUP_B_SIZE] = {};
 686              		.loc 1 133 3 is_stmt 1 view .LVU157
 687              		.loc 1 133 9 is_stmt 0 view .LVU158
 688 0010 ADF80430 		strh	r3, [sp, #4]	@ movhi
 689              	.LBB10:
 134:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDPWMA, buffer_a, CFG_GROUP_A_SIZE));
 690              		.loc 1 134 3 is_stmt 1 view .LVU159
 691 0014 0622     		movs	r2, #6
 692 0016 02A9     		add	r1, sp, #8
 693              	.LVL75:
 694              		.loc 1 134 3 is_stmt 0 view .LVU160
 695 0018 2220     		movs	r0, #34
 696              	.LVL76:
 697              		.loc 1 134 3 view .LVU161
 698 001a FFF7FEFF 		bl	readCMD
 699              	.LVL77:
 700              		.loc 1 134 3 is_stmt 1 discriminator 1 view .LVU162
 701 001e 0346     		mov	r3, r0
 702 0020 10B1     		cbz	r0, .L28
 703              	.LVL78:
 704              	.L13:
 705              		.loc 1 134 3 is_stmt 0 discriminator 1 view .LVU163
 706              	.LBE10:
 135:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDPWMB, buffer_b, CFG_GROUP_B_SIZE));
 136:Core/Src/ADBMS_Abstraction.c **** 
ARM GAS  /tmp/ccv8HLGI.s 			page 18


 137:Core/Src/ADBMS_Abstraction.c ****   if (dutyCycle > 0x0F) { // there are only 4 bits for duty cycle
 138:Core/Src/ADBMS_Abstraction.c ****     return 1;
 139:Core/Src/ADBMS_Abstraction.c ****   }
 140:Core/Src/ADBMS_Abstraction.c **** 
 141:Core/Src/ADBMS_Abstraction.c ****   #warning fixme
 142:Core/Src/ADBMS_Abstraction.c **** 
 143:Core/Src/ADBMS_Abstraction.c ****   for (size_t i = 0; i < 16; i += 2) {
 144:Core/Src/ADBMS_Abstraction.c ****     if (i < 12) { // cells 0, 1 are in regbuffer[0], cells 2, 3 in regbuffer[1], ...
 145:Core/Src/ADBMS_Abstraction.c ****       buffer_a[i / 2] = ((channels & (1 << (i + 1))) ? (dutyCycle << 4) : 0) |
 146:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 147:Core/Src/ADBMS_Abstraction.c ****     } else {
 148:Core/Src/ADBMS_Abstraction.c ****       buffer_b[(i - 12) / 2] = ((channels & (1 << (i + 1))) ? (dutyCycle << 4) : 0) |
 149:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 150:Core/Src/ADBMS_Abstraction.c ****     }
 151:Core/Src/ADBMS_Abstraction.c ****   }
 152:Core/Src/ADBMS_Abstraction.c **** 
 153:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(WRPWMA, buffer_a, CFG_GROUP_A_SIZE));
 154:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(WRPWMB, buffer_b, CFG_GROUP_B_SIZE));
 155:Core/Src/ADBMS_Abstraction.c **** 
 156:Core/Src/ADBMS_Abstraction.c ****   return 0;
 157:Core/Src/ADBMS_Abstraction.c **** }
 707              		.loc 1 157 1 view .LVU164
 708 0022 1846     		mov	r0, r3
 709 0024 05B0     		add	sp, sp, #20
 710              		.cfi_remember_state
 711              		.cfi_def_cfa_offset 12
 712              		@ sp needed
 713 0026 30BD     		pop	{r4, r5, pc}
 714              	.LVL79:
 715              	.L28:
 716              		.cfi_restore_state
 134:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDPWMA, buffer_a, CFG_GROUP_A_SIZE));
 717              		.loc 1 134 60 is_stmt 1 discriminator 2 view .LVU165
 718              	.LBB11:
 135:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDPWMB, buffer_b, CFG_GROUP_B_SIZE));
 719              		.loc 1 135 3 view .LVU166
 720 0028 0622     		movs	r2, #6
 721 002a 01A9     		add	r1, sp, #4
 722 002c 2320     		movs	r0, #35
 723              	.LVL80:
 135:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDPWMB, buffer_b, CFG_GROUP_B_SIZE));
 724              		.loc 1 135 3 is_stmt 0 view .LVU167
 725 002e FFF7FEFF 		bl	readCMD
 726              	.LVL81:
 135:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDPWMB, buffer_b, CFG_GROUP_B_SIZE));
 727              		.loc 1 135 3 is_stmt 1 discriminator 1 view .LVU168
 728 0032 0346     		mov	r3, r0
 729 0034 0028     		cmp	r0, #0
 730 0036 F4D1     		bne	.L13
 731              	.LBE11:
 135:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDPWMB, buffer_b, CFG_GROUP_B_SIZE));
 732              		.loc 1 135 60 discriminator 2 view .LVU169
 137:Core/Src/ADBMS_Abstraction.c ****     return 1;
 733              		.loc 1 137 3 view .LVU170
 137:Core/Src/ADBMS_Abstraction.c ****     return 1;
 734              		.loc 1 137 6 is_stmt 0 view .LVU171
 735 0038 0F2D     		cmp	r5, #15
ARM GAS  /tmp/ccv8HLGI.s 			page 19


 736 003a 44D8     		bhi	.L22
 737              	.LBB12:
 143:Core/Src/ADBMS_Abstraction.c ****     if (i < 12) { // cells 0, 1 are in regbuffer[0], cells 2, 3 in regbuffer[1], ...
 738              		.loc 1 143 15 view .LVU172
 739 003c 0023     		movs	r3, #0
 740 003e 09E0     		b	.L14
 741              	.LVL82:
 742              	.L23:
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 743              		.loc 1 145 78 discriminator 2 view .LVU173
 744 0040 0022     		movs	r2, #0
 745 0042 12E0     		b	.L16
 746              	.L24:
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 747              		.loc 1 145 78 discriminator 6 view .LVU174
 748 0044 0021     		movs	r1, #0
 749              	.L17:
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 750              		.loc 1 145 78 discriminator 8 view .LVU175
 751 0046 0A43     		orrs	r2, r2, r1
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 752              		.loc 1 145 23 discriminator 8 view .LVU176
 753 0048 04A9     		add	r1, sp, #16
 754 004a 01EB5301 		add	r1, r1, r3, lsr #1
 755 004e 01F8082C 		strb	r2, [r1, #-8]
 756              	.L18:
 143:Core/Src/ADBMS_Abstraction.c ****     if (i < 12) { // cells 0, 1 are in regbuffer[0], cells 2, 3 in regbuffer[1], ...
 757              		.loc 1 143 32 is_stmt 1 discriminator 2 view .LVU177
 758 0052 0233     		adds	r3, r3, #2
 759              	.LVL83:
 760              	.L14:
 143:Core/Src/ADBMS_Abstraction.c ****     if (i < 12) { // cells 0, 1 are in regbuffer[0], cells 2, 3 in regbuffer[1], ...
 761              		.loc 1 143 24 discriminator 1 view .LVU178
 762 0054 0F2B     		cmp	r3, #15
 763 0056 27D8     		bhi	.L29
 144:Core/Src/ADBMS_Abstraction.c ****       buffer_a[i / 2] = ((channels & (1 << (i + 1))) ? (dutyCycle << 4) : 0) |
 764              		.loc 1 144 5 view .LVU179
 144:Core/Src/ADBMS_Abstraction.c ****       buffer_a[i / 2] = ((channels & (1 << (i + 1))) ? (dutyCycle << 4) : 0) |
 765              		.loc 1 144 8 is_stmt 0 view .LVU180
 766 0058 0B2B     		cmp	r3, #11
 767 005a 0CD8     		bhi	.L15
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 768              		.loc 1 145 7 is_stmt 1 view .LVU181
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 769              		.loc 1 145 47 is_stmt 0 view .LVU182
 770 005c 591C     		adds	r1, r3, #1
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 771              		.loc 1 145 41 view .LVU183
 772 005e 0122     		movs	r2, #1
 773 0060 8A40     		lsls	r2, r2, r1
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 774              		.loc 1 145 78 view .LVU184
 775 0062 2242     		tst	r2, r4
 776 0064 ECD0     		beq	.L23
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 777              		.loc 1 145 78 discriminator 1 view .LVU185
 778 0066 2A01     		lsls	r2, r5, #4
ARM GAS  /tmp/ccv8HLGI.s 			page 20


 779 0068 52B2     		sxtb	r2, r2
 780              	.L16:
 146:Core/Src/ADBMS_Abstraction.c ****     } else {
 781              		.loc 1 146 42 view .LVU186
 782 006a 0120     		movs	r0, #1
 783 006c 9840     		lsls	r0, r0, r3
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 784              		.loc 1 145 78 discriminator 4 view .LVU187
 785 006e 2042     		tst	r0, r4
 786 0070 E8D0     		beq	.L24
 145:Core/Src/ADBMS_Abstraction.c ****                          ((channels & (1 << i)) ? dutyCycle : 0);
 787              		.loc 1 145 78 discriminator 5 view .LVU188
 788 0072 69B2     		sxtb	r1, r5
 789 0074 E7E7     		b	.L17
 790              	.L15:
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 791              		.loc 1 148 7 is_stmt 1 view .LVU189
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 792              		.loc 1 148 54 is_stmt 0 view .LVU190
 793 0076 591C     		adds	r1, r3, #1
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 794              		.loc 1 148 48 view .LVU191
 795 0078 0122     		movs	r2, #1
 796 007a 8A40     		lsls	r2, r2, r1
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 797              		.loc 1 148 85 view .LVU192
 798 007c 2242     		tst	r2, r4
 799 007e 0FD0     		beq	.L25
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 800              		.loc 1 148 85 discriminator 1 view .LVU193
 801 0080 2901     		lsls	r1, r5, #4
 802 0082 49B2     		sxtb	r1, r1
 803              	.L19:
 149:Core/Src/ADBMS_Abstraction.c ****     }
 804              		.loc 1 149 49 view .LVU194
 805 0084 0122     		movs	r2, #1
 806 0086 9A40     		lsls	r2, r2, r3
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 807              		.loc 1 148 85 discriminator 4 view .LVU195
 808 0088 2242     		tst	r2, r4
 809 008a 0BD0     		beq	.L26
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 810              		.loc 1 148 85 discriminator 5 view .LVU196
 811 008c 68B2     		sxtb	r0, r5
 812              	.L20:
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 813              		.loc 1 148 19 discriminator 8 view .LVU197
 814 008e A3F10C02 		sub	r2, r3, #12
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 815              		.loc 1 148 85 discriminator 8 view .LVU198
 816 0092 0143     		orrs	r1, r1, r0
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 817              		.loc 1 148 30 discriminator 8 view .LVU199
 818 0094 04A8     		add	r0, sp, #16
 819 0096 00EB5202 		add	r2, r0, r2, lsr #1
 820 009a 02F80C1C 		strb	r1, [r2, #-12]
 821 009e D8E7     		b	.L18
ARM GAS  /tmp/ccv8HLGI.s 			page 21


 822              	.L25:
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 823              		.loc 1 148 85 discriminator 2 view .LVU200
 824 00a0 0021     		movs	r1, #0
 825 00a2 EFE7     		b	.L19
 826              	.L26:
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 827              		.loc 1 148 85 discriminator 6 view .LVU201
 828 00a4 0020     		movs	r0, #0
 829 00a6 F2E7     		b	.L20
 830              	.L29:
 148:Core/Src/ADBMS_Abstraction.c ****                                 ((channels & (1 << i)) ? dutyCycle : 0);
 831              		.loc 1 148 85 discriminator 6 view .LVU202
 832              	.LBE12:
 833              	.LBB13:
 153:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(WRPWMB, buffer_b, CFG_GROUP_B_SIZE));
 834              		.loc 1 153 3 is_stmt 1 view .LVU203
 835 00a8 0622     		movs	r2, #6
 836 00aa 02A9     		add	r1, sp, #8
 837 00ac 2020     		movs	r0, #32
 838 00ae FFF7FEFF 		bl	writeCMD
 839              	.LVL84:
 153:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(WRPWMB, buffer_b, CFG_GROUP_B_SIZE));
 840              		.loc 1 153 3 discriminator 1 view .LVU204
 841 00b2 0346     		mov	r3, r0
 842 00b4 0028     		cmp	r0, #0
 843 00b6 B4D1     		bne	.L13
 844              	.LBE13:
 153:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(WRPWMB, buffer_b, CFG_GROUP_B_SIZE));
 845              		.loc 1 153 61 discriminator 2 view .LVU205
 846              	.LBB14:
 154:Core/Src/ADBMS_Abstraction.c **** 
 847              		.loc 1 154 3 view .LVU206
 848 00b8 0622     		movs	r2, #6
 849 00ba 01A9     		add	r1, sp, #4
 850 00bc 2120     		movs	r0, #33
 851              	.LVL85:
 154:Core/Src/ADBMS_Abstraction.c **** 
 852              		.loc 1 154 3 is_stmt 0 view .LVU207
 853 00be FFF7FEFF 		bl	writeCMD
 854              	.LVL86:
 154:Core/Src/ADBMS_Abstraction.c **** 
 855              		.loc 1 154 3 view .LVU208
 856 00c2 0346     		mov	r3, r0
 857              	.LVL87:
 154:Core/Src/ADBMS_Abstraction.c **** 
 858              		.loc 1 154 3 is_stmt 1 discriminator 1 view .LVU209
 859 00c4 ADE7     		b	.L13
 860              	.LVL88:
 861              	.L22:
 154:Core/Src/ADBMS_Abstraction.c **** 
 862              		.loc 1 154 3 is_stmt 0 discriminator 1 view .LVU210
 863              	.LBE14:
 138:Core/Src/ADBMS_Abstraction.c ****   }
 864              		.loc 1 138 12 view .LVU211
 865 00c6 0123     		movs	r3, #1
 866 00c8 ABE7     		b	.L13
ARM GAS  /tmp/ccv8HLGI.s 			page 22


 867              		.cfi_endproc
 868              	.LFE129:
 870              		.section	.text.amsStartBalancing,"ax",%progbits
 871              		.align	1
 872              		.global	amsStartBalancing
 873              		.syntax unified
 874              		.thumb
 875              		.thumb_func
 877              	amsStartBalancing:
 878              	.LVL89:
 879              	.LFB130:
 158:Core/Src/ADBMS_Abstraction.c **** 
 159:Core/Src/ADBMS_Abstraction.c **** uint8 amsStartBalancing(uint8 dutyCycle) { return writeCMD(UNMUTE, NULL, 0); }
 880              		.loc 1 159 42 is_stmt 1 view -0
 881              		.cfi_startproc
 882              		@ args = 0, pretend = 0, frame = 0
 883              		@ frame_needed = 0, uses_anonymous_args = 0
 884              		.loc 1 159 42 is_stmt 0 view .LVU213
 885 0000 08B5     		push	{r3, lr}
 886              		.cfi_def_cfa_offset 8
 887              		.cfi_offset 3, -8
 888              		.cfi_offset 14, -4
 889              		.loc 1 159 44 is_stmt 1 view .LVU214
 890              		.loc 1 159 51 is_stmt 0 view .LVU215
 891 0002 0022     		movs	r2, #0
 892 0004 1146     		mov	r1, r2
 893 0006 2920     		movs	r0, #41
 894              	.LVL90:
 895              		.loc 1 159 51 view .LVU216
 896 0008 FFF7FEFF 		bl	writeCMD
 897              	.LVL91:
 898              		.loc 1 159 78 view .LVU217
 899 000c 08BD     		pop	{r3, pc}
 900              		.cfi_endproc
 901              	.LFE130:
 903              		.section	.text.amsStopBalancing,"ax",%progbits
 904              		.align	1
 905              		.global	amsStopBalancing
 906              		.syntax unified
 907              		.thumb
 908              		.thumb_func
 910              	amsStopBalancing:
 911              	.LFB131:
 160:Core/Src/ADBMS_Abstraction.c **** 
 161:Core/Src/ADBMS_Abstraction.c **** uint8 amsStopBalancing() { return writeCMD(MUTE, NULL, 0); }
 912              		.loc 1 161 26 is_stmt 1 view -0
 913              		.cfi_startproc
 914              		@ args = 0, pretend = 0, frame = 0
 915              		@ frame_needed = 0, uses_anonymous_args = 0
 916 0000 08B5     		push	{r3, lr}
 917              		.cfi_def_cfa_offset 8
 918              		.cfi_offset 3, -8
 919              		.cfi_offset 14, -4
 920              		.loc 1 161 28 view .LVU219
 921              		.loc 1 161 35 is_stmt 0 view .LVU220
 922 0002 0022     		movs	r2, #0
 923 0004 1146     		mov	r1, r2
ARM GAS  /tmp/ccv8HLGI.s 			page 23


 924 0006 2820     		movs	r0, #40
 925 0008 FFF7FEFF 		bl	writeCMD
 926              	.LVL92:
 927              		.loc 1 161 60 view .LVU221
 928 000c 08BD     		pop	{r3, pc}
 929              		.cfi_endproc
 930              	.LFE131:
 932              		.section	.text.amsSelfTest,"ax",%progbits
 933              		.align	1
 934              		.global	amsSelfTest
 935              		.syntax unified
 936              		.thumb
 937              		.thumb_func
 939              	amsSelfTest:
 940              	.LFB132:
 162:Core/Src/ADBMS_Abstraction.c **** 
 163:Core/Src/ADBMS_Abstraction.c **** uint8 amsSelfTest() { return 0; }
 941              		.loc 1 163 21 is_stmt 1 view -0
 942              		.cfi_startproc
 943              		@ args = 0, pretend = 0, frame = 0
 944              		@ frame_needed = 0, uses_anonymous_args = 0
 945              		@ link register save eliminated.
 946              		.loc 1 163 23 view .LVU223
 947              		.loc 1 163 33 is_stmt 0 view .LVU224
 948 0000 0020     		movs	r0, #0
 949 0002 7047     		bx	lr
 950              		.cfi_endproc
 951              	.LFE132:
 953              		.section	.text.amsConfigOverUnderVoltage,"ax",%progbits
 954              		.align	1
 955              		.global	amsConfigOverUnderVoltage
 956              		.syntax unified
 957              		.thumb
 958              		.thumb_func
 960              	amsConfigOverUnderVoltage:
 961              	.LVL93:
 962              	.LFB133:
 164:Core/Src/ADBMS_Abstraction.c **** 
 165:Core/Src/ADBMS_Abstraction.c **** uint8 amsConfigOverUnderVoltage(uint16 overVoltage, uint16 underVoltage) {
 963              		.loc 1 165 74 is_stmt 1 view -0
 964              		.cfi_startproc
 965              		@ args = 0, pretend = 0, frame = 8
 966              		@ frame_needed = 0, uses_anonymous_args = 0
 166:Core/Src/ADBMS_Abstraction.c ****   uint8 buffer[CFG_GROUP_A_SIZE];
 967              		.loc 1 166 3 view .LVU226
 167:Core/Src/ADBMS_Abstraction.c **** 
 168:Core/Src/ADBMS_Abstraction.c ****   if (underVoltage & 0xF000 || overVoltage & 0xF000) { // only 12 bits allowed
 968              		.loc 1 168 3 view .LVU227
 969              		.loc 1 168 6 is_stmt 0 view .LVU228
 970 0000 B1F5805F 		cmp	r1, #4096
 971 0004 30D2     		bcs	.L37
 165:Core/Src/ADBMS_Abstraction.c ****   uint8 buffer[CFG_GROUP_A_SIZE];
 972              		.loc 1 165 74 view .LVU229
 973 0006 30B5     		push	{r4, r5, lr}
 974              		.cfi_def_cfa_offset 12
 975              		.cfi_offset 4, -12
 976              		.cfi_offset 5, -8
ARM GAS  /tmp/ccv8HLGI.s 			page 24


 977              		.cfi_offset 14, -4
 978 0008 83B0     		sub	sp, sp, #12
 979              		.cfi_def_cfa_offset 24
 980 000a 0546     		mov	r5, r0
 981 000c 0C46     		mov	r4, r1
 982              		.loc 1 168 29 discriminator 1 view .LVU230
 983 000e B0F5805F 		cmp	r0, #4096
 984 0012 02D3     		bcc	.L43
 169:Core/Src/ADBMS_Abstraction.c ****     return 1;
 985              		.loc 1 169 12 view .LVU231
 986 0014 0120     		movs	r0, #1
 987              	.LVL94:
 988              	.L36:
 170:Core/Src/ADBMS_Abstraction.c ****   }
 171:Core/Src/ADBMS_Abstraction.c **** 
 172:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDCFGB, buffer, CFG_GROUP_A_SIZE));
 173:Core/Src/ADBMS_Abstraction.c **** 
 174:Core/Src/ADBMS_Abstraction.c ****   //UV
 175:Core/Src/ADBMS_Abstraction.c ****   buffer[0] = (uint8) (underVoltage & 0xFF);
 176:Core/Src/ADBMS_Abstraction.c ****   buffer[1] &= 0xF0;
 177:Core/Src/ADBMS_Abstraction.c ****   buffer[1] |= (uint8) ((underVoltage >> 8) & 0x0F);
 178:Core/Src/ADBMS_Abstraction.c **** 
 179:Core/Src/ADBMS_Abstraction.c ****   //OV
 180:Core/Src/ADBMS_Abstraction.c ****   buffer[1] &= 0x0F;
 181:Core/Src/ADBMS_Abstraction.c ****   buffer[1] |= (uint8) (overVoltage << 4);
 182:Core/Src/ADBMS_Abstraction.c ****   buffer[2] = (uint8) (overVoltage >> 4);
 183:Core/Src/ADBMS_Abstraction.c **** 
 184:Core/Src/ADBMS_Abstraction.c ****   return writeCMD(WRCFGB, buffer, CFG_GROUP_A_SIZE);
 185:Core/Src/ADBMS_Abstraction.c **** }
 989              		.loc 1 185 1 view .LVU232
 990 0016 03B0     		add	sp, sp, #12
 991              		.cfi_remember_state
 992              		.cfi_def_cfa_offset 12
 993              		@ sp needed
 994 0018 30BD     		pop	{r4, r5, pc}
 995              	.LVL95:
 996              	.L43:
 997              		.cfi_restore_state
 998              	.LBB15:
 172:Core/Src/ADBMS_Abstraction.c **** 
 999              		.loc 1 172 3 is_stmt 1 view .LVU233
 1000 001a 0622     		movs	r2, #6
 1001 001c 6946     		mov	r1, sp
 1002              	.LVL96:
 172:Core/Src/ADBMS_Abstraction.c **** 
 1003              		.loc 1 172 3 is_stmt 0 view .LVU234
 1004 001e 2620     		movs	r0, #38
 1005              	.LVL97:
 172:Core/Src/ADBMS_Abstraction.c **** 
 1006              		.loc 1 172 3 view .LVU235
 1007 0020 FFF7FEFF 		bl	readCMD
 1008              	.LVL98:
 172:Core/Src/ADBMS_Abstraction.c **** 
 1009              		.loc 1 172 3 is_stmt 1 discriminator 1 view .LVU236
 1010 0024 0028     		cmp	r0, #0
 1011 0026 F6D1     		bne	.L36
 1012              	.LBE15:
ARM GAS  /tmp/ccv8HLGI.s 			page 25


 172:Core/Src/ADBMS_Abstraction.c **** 
 1013              		.loc 1 172 58 discriminator 2 view .LVU237
 175:Core/Src/ADBMS_Abstraction.c ****   buffer[1] &= 0xF0;
 1014              		.loc 1 175 3 view .LVU238
 175:Core/Src/ADBMS_Abstraction.c ****   buffer[1] &= 0xF0;
 1015              		.loc 1 175 13 is_stmt 0 view .LVU239
 1016 0028 8DF80040 		strb	r4, [sp]
 176:Core/Src/ADBMS_Abstraction.c ****   buffer[1] |= (uint8) ((underVoltage >> 8) & 0x0F);
 1017              		.loc 1 176 3 is_stmt 1 view .LVU240
 176:Core/Src/ADBMS_Abstraction.c ****   buffer[1] |= (uint8) ((underVoltage >> 8) & 0x0F);
 1018              		.loc 1 176 9 is_stmt 0 view .LVU241
 1019 002c 9DF80130 		ldrb	r3, [sp, #1]	@ zero_extendqisi2
 176:Core/Src/ADBMS_Abstraction.c ****   buffer[1] |= (uint8) ((underVoltage >> 8) & 0x0F);
 1020              		.loc 1 176 13 view .LVU242
 1021 0030 03F0F003 		and	r3, r3, #240
 1022 0034 8DF80130 		strb	r3, [sp, #1]
 177:Core/Src/ADBMS_Abstraction.c **** 
 1023              		.loc 1 177 3 is_stmt 1 view .LVU243
 177:Core/Src/ADBMS_Abstraction.c **** 
 1024              		.loc 1 177 16 is_stmt 0 view .LVU244
 1025 0038 C4F30324 		ubfx	r4, r4, #8, #4
 1026              	.LVL99:
 177:Core/Src/ADBMS_Abstraction.c **** 
 1027              		.loc 1 177 13 view .LVU245
 1028 003c 2343     		orrs	r3, r3, r4
 1029 003e 8DF80130 		strb	r3, [sp, #1]
 180:Core/Src/ADBMS_Abstraction.c ****   buffer[1] |= (uint8) (overVoltage << 4);
 1030              		.loc 1 180 3 is_stmt 1 view .LVU246
 180:Core/Src/ADBMS_Abstraction.c ****   buffer[1] |= (uint8) (overVoltage << 4);
 1031              		.loc 1 180 13 is_stmt 0 view .LVU247
 1032 0042 03F00F03 		and	r3, r3, #15
 1033 0046 8DF80130 		strb	r3, [sp, #1]
 181:Core/Src/ADBMS_Abstraction.c ****   buffer[2] = (uint8) (overVoltage >> 4);
 1034              		.loc 1 181 3 is_stmt 1 view .LVU248
 181:Core/Src/ADBMS_Abstraction.c ****   buffer[2] = (uint8) (overVoltage >> 4);
 1035              		.loc 1 181 16 is_stmt 0 view .LVU249
 1036 004a 2A01     		lsls	r2, r5, #4
 1037 004c D2B2     		uxtb	r2, r2
 181:Core/Src/ADBMS_Abstraction.c ****   buffer[2] = (uint8) (overVoltage >> 4);
 1038              		.loc 1 181 13 view .LVU250
 1039 004e 1343     		orrs	r3, r3, r2
 1040 0050 8DF80130 		strb	r3, [sp, #1]
 182:Core/Src/ADBMS_Abstraction.c **** 
 1041              		.loc 1 182 3 is_stmt 1 view .LVU251
 182:Core/Src/ADBMS_Abstraction.c **** 
 1042              		.loc 1 182 15 is_stmt 0 view .LVU252
 1043 0054 C5F30715 		ubfx	r5, r5, #4, #8
 1044              	.LVL100:
 182:Core/Src/ADBMS_Abstraction.c **** 
 1045              		.loc 1 182 13 view .LVU253
 1046 0058 8DF80250 		strb	r5, [sp, #2]
 184:Core/Src/ADBMS_Abstraction.c **** }
 1047              		.loc 1 184 3 is_stmt 1 view .LVU254
 184:Core/Src/ADBMS_Abstraction.c **** }
 1048              		.loc 1 184 10 is_stmt 0 view .LVU255
 1049 005c 0622     		movs	r2, #6
 1050 005e 6946     		mov	r1, sp
ARM GAS  /tmp/ccv8HLGI.s 			page 26


 1051 0060 2420     		movs	r0, #36
 1052              	.LVL101:
 184:Core/Src/ADBMS_Abstraction.c **** }
 1053              		.loc 1 184 10 view .LVU256
 1054 0062 FFF7FEFF 		bl	writeCMD
 1055              	.LVL102:
 1056 0066 D6E7     		b	.L36
 1057              	.LVL103:
 1058              	.L37:
 1059              		.cfi_def_cfa_offset 0
 1060              		.cfi_restore 4
 1061              		.cfi_restore 5
 1062              		.cfi_restore 14
 169:Core/Src/ADBMS_Abstraction.c ****   }
 1063              		.loc 1 169 12 view .LVU257
 1064 0068 0120     		movs	r0, #1
 1065              	.LVL104:
 1066              		.loc 1 185 1 view .LVU258
 1067 006a 7047     		bx	lr
 1068              		.cfi_endproc
 1069              	.LFE133:
 1071              		.section	.rodata.amsReset.str1.4,"aMS",%progbits,1
 1072              		.align	2
 1073              	.LC0:
 1074 0000 FFFFFFFF 		.ascii	"\377\377\377\377\377\377\000"
 1074      FFFF00
 1075              		.section	.text.amsReset,"ax",%progbits
 1076              		.align	1
 1077              		.global	amsReset
 1078              		.syntax unified
 1079              		.thumb
 1080              		.thumb_func
 1082              	amsReset:
 1083              	.LFB123:
  23:Core/Src/ADBMS_Abstraction.c ****   amsWakeUp();
 1084              		.loc 1 23 18 is_stmt 1 view -0
 1085              		.cfi_startproc
 1086              		@ args = 0, pretend = 0, frame = 8
 1087              		@ frame_needed = 0, uses_anonymous_args = 0
 1088 0000 00B5     		push	{lr}
 1089              		.cfi_def_cfa_offset 4
 1090              		.cfi_offset 14, -4
 1091 0002 83B0     		sub	sp, sp, #12
 1092              		.cfi_def_cfa_offset 16
  24:Core/Src/ADBMS_Abstraction.c ****   readCMD(SRST, NULL, 0);
 1093              		.loc 1 24 3 view .LVU260
 1094 0004 FFF7FEFF 		bl	amsWakeUp
 1095              	.LVL105:
  25:Core/Src/ADBMS_Abstraction.c ****   mcuDelay(10);
 1096              		.loc 1 25 3 view .LVU261
 1097 0008 0022     		movs	r2, #0
 1098 000a 1146     		mov	r1, r2
 1099 000c 2720     		movs	r0, #39
 1100 000e FFF7FEFF 		bl	readCMD
 1101              	.LVL106:
  26:Core/Src/ADBMS_Abstraction.c ****   amsWakeUp();
 1102              		.loc 1 26 3 view .LVU262
ARM GAS  /tmp/ccv8HLGI.s 			page 27


 1103 0012 0A20     		movs	r0, #10
 1104 0014 FFF7FEFF 		bl	mcuDelay
 1105              	.LVL107:
  27:Core/Src/ADBMS_Abstraction.c ****   amsStopBalancing();
 1106              		.loc 1 27 3 view .LVU263
 1107 0018 FFF7FEFF 		bl	amsWakeUp
 1108              	.LVL108:
  28:Core/Src/ADBMS_Abstraction.c ****   amsConfigOverUnderVoltage(DEFAULT_OV, DEFAULT_UV);
 1109              		.loc 1 28 3 view .LVU264
 1110 001c FFF7FEFF 		bl	amsStopBalancing
 1111              	.LVL109:
  29:Core/Src/ADBMS_Abstraction.c **** 
 1112              		.loc 1 29 3 view .LVU265
 1113 0020 40F2A111 		movw	r1, #417
 1114 0024 40F26540 		movw	r0, #1125
 1115 0028 FFF7FEFF 		bl	amsConfigOverUnderVoltage
 1116              	.LVL110:
  31:Core/Src/ADBMS_Abstraction.c **** 
 1117              		.loc 1 31 3 view .LVU266
  31:Core/Src/ADBMS_Abstraction.c **** 
 1118              		.loc 1 31 9 is_stmt 0 view .LVU267
 1119 002c 154B     		ldr	r3, .L48
 1120 002e 93E80300 		ldm	r3, {r0, r1}
 1121 0032 0090     		str	r0, [sp]
 1122 0034 ADF80410 		strh	r1, [sp, #4]	@ movhi
 1123              	.LBB16:
  33:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(CLOVUV, buffer, 6));  //OVUV flags
 1124              		.loc 1 33 3 is_stmt 1 view .LVU268
 1125 0038 0622     		movs	r2, #6
 1126 003a 6946     		mov	r1, sp
 1127 003c 40F21770 		movw	r0, #1815
 1128 0040 FFF7FEFF 		bl	writeCMD
 1129              	.LVL111:
  33:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(CLOVUV, buffer, 6));  //OVUV flags
 1130              		.loc 1 33 3 discriminator 1 view .LVU269
 1131 0044 0346     		mov	r3, r0
 1132 0046 18B1     		cbz	r0, .L47
 1133              	.LVL112:
 1134              	.L45:
  33:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(CLOVUV, buffer, 6));  //OVUV flags
 1135              		.loc 1 33 3 is_stmt 0 discriminator 1 view .LVU270
 1136              	.LBE16:
  39:Core/Src/ADBMS_Abstraction.c **** 
 1137              		.loc 1 39 1 view .LVU271
 1138 0048 1846     		mov	r0, r3
 1139 004a 03B0     		add	sp, sp, #12
 1140              		.cfi_remember_state
 1141              		.cfi_def_cfa_offset 4
 1142              		@ sp needed
 1143 004c 5DF804FB 		ldr	pc, [sp], #4
 1144              	.LVL113:
 1145              	.L47:
 1146              		.cfi_restore_state
  33:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(CLOVUV, buffer, 6));  //OVUV flags
 1147              		.loc 1 33 45 is_stmt 1 discriminator 2 view .LVU272
 1148              	.LBB17:
  34:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADCV | ADCV_CONT | ADCV_RD, NULL, 0)); //start continuous cell voltage meas
ARM GAS  /tmp/ccv8HLGI.s 			page 28


 1149              		.loc 1 34 3 view .LVU273
 1150 0050 0622     		movs	r2, #6
 1151 0052 6946     		mov	r1, sp
 1152 0054 40F21570 		movw	r0, #1813
 1153              	.LVL114:
  34:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADCV | ADCV_CONT | ADCV_RD, NULL, 0)); //start continuous cell voltage meas
 1154              		.loc 1 34 3 is_stmt 0 view .LVU274
 1155 0058 FFF7FEFF 		bl	writeCMD
 1156              	.LVL115:
  34:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADCV | ADCV_CONT | ADCV_RD, NULL, 0)); //start continuous cell voltage meas
 1157              		.loc 1 34 3 is_stmt 1 discriminator 1 view .LVU275
 1158 005c 0346     		mov	r3, r0
 1159 005e 0028     		cmp	r0, #0
 1160 0060 F2D1     		bne	.L45
 1161              	.LBE17:
  34:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADCV | ADCV_CONT | ADCV_RD, NULL, 0)); //start continuous cell voltage meas
 1162              		.loc 1 34 44 discriminator 2 view .LVU276
 1163              	.LBB18:
  35:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADAX | ADAX_CONV_ALL, NULL, 0)); //start aux measurement
 1164              		.loc 1 35 3 view .LVU277
 1165 0062 0022     		movs	r2, #0
 1166 0064 1146     		mov	r1, r2
 1167 0066 4FF47870 		mov	r0, #992
 1168              	.LVL116:
  35:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADAX | ADAX_CONV_ALL, NULL, 0)); //start aux measurement
 1169              		.loc 1 35 3 is_stmt 0 view .LVU278
 1170 006a FFF7FEFF 		bl	writeCMD
 1171              	.LVL117:
  35:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADAX | ADAX_CONV_ALL, NULL, 0)); //start aux measurement
 1172              		.loc 1 35 3 is_stmt 1 discriminator 1 view .LVU279
 1173 006e 0346     		mov	r3, r0
 1174 0070 0028     		cmp	r0, #0
 1175 0072 E9D1     		bne	.L45
 1176              	.LBE18:
  35:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(writeCMD(ADAX | ADAX_CONV_ALL, NULL, 0)); //start aux measurement
 1177              		.loc 1 35 62 discriminator 2 view .LVU280
 1178              	.LBB19:
  36:Core/Src/ADBMS_Abstraction.c **** 
 1179              		.loc 1 36 3 view .LVU281
 1180 0074 0022     		movs	r2, #0
 1181 0076 1146     		mov	r1, r2
 1182 0078 4FF48260 		mov	r0, #1040
 1183              	.LVL118:
  36:Core/Src/ADBMS_Abstraction.c **** 
 1184              		.loc 1 36 3 is_stmt 0 view .LVU282
 1185 007c FFF7FEFF 		bl	writeCMD
 1186              	.LVL119:
  36:Core/Src/ADBMS_Abstraction.c **** 
 1187              		.loc 1 36 3 view .LVU283
 1188 0080 0346     		mov	r3, r0
 1189              	.LVL120:
  36:Core/Src/ADBMS_Abstraction.c **** 
 1190              		.loc 1 36 3 is_stmt 1 discriminator 1 view .LVU284
 1191 0082 E1E7     		b	.L45
 1192              	.L49:
 1193              		.align	2
 1194              	.L48:
ARM GAS  /tmp/ccv8HLGI.s 			page 29


 1195 0084 00000000 		.word	.LC0
 1196              	.LBE19:
 1197              		.cfi_endproc
 1198              	.LFE123:
 1200              		.section	.text.initAMS,"ax",%progbits
 1201              		.align	1
 1202              		.global	initAMS
 1203              		.syntax unified
 1204              		.thumb
 1205              		.thumb_func
 1207              	initAMS:
 1208              	.LVL121:
 1209              	.LFB124:
  41:Core/Src/ADBMS_Abstraction.c ****   adbmsDriverInit(hspi);
 1210              		.loc 1 41 74 view -0
 1211              		.cfi_startproc
 1212              		@ args = 0, pretend = 0, frame = 0
 1213              		@ frame_needed = 0, uses_anonymous_args = 0
  41:Core/Src/ADBMS_Abstraction.c ****   adbmsDriverInit(hspi);
 1214              		.loc 1 41 74 is_stmt 0 view .LVU286
 1215 0000 38B5     		push	{r3, r4, r5, lr}
 1216              		.cfi_def_cfa_offset 16
 1217              		.cfi_offset 3, -16
 1218              		.cfi_offset 4, -12
 1219              		.cfi_offset 5, -8
 1220              		.cfi_offset 14, -4
 1221 0002 0D46     		mov	r5, r1
 1222 0004 1446     		mov	r4, r2
  42:Core/Src/ADBMS_Abstraction.c ****   numberofcells = numofcells;
 1223              		.loc 1 42 3 is_stmt 1 view .LVU287
 1224 0006 FFF7FEFF 		bl	adbmsDriverInit
 1225              	.LVL122:
  43:Core/Src/ADBMS_Abstraction.c ****   numberofauxchannels = numofaux;
 1226              		.loc 1 43 3 view .LVU288
  43:Core/Src/ADBMS_Abstraction.c ****   numberofauxchannels = numofaux;
 1227              		.loc 1 43 17 is_stmt 0 view .LVU289
 1228 000a 034B     		ldr	r3, .L52
 1229 000c 1D70     		strb	r5, [r3]
  44:Core/Src/ADBMS_Abstraction.c **** 
 1230              		.loc 1 44 3 is_stmt 1 view .LVU290
  44:Core/Src/ADBMS_Abstraction.c **** 
 1231              		.loc 1 44 23 is_stmt 0 view .LVU291
 1232 000e 034B     		ldr	r3, .L52+4
 1233 0010 1C70     		strb	r4, [r3]
  46:Core/Src/ADBMS_Abstraction.c **** }
 1234              		.loc 1 46 3 is_stmt 1 view .LVU292
  46:Core/Src/ADBMS_Abstraction.c **** }
 1235              		.loc 1 46 10 is_stmt 0 view .LVU293
 1236 0012 FFF7FEFF 		bl	amsReset
 1237              	.LVL123:
  47:Core/Src/ADBMS_Abstraction.c **** 
 1238              		.loc 1 47 1 view .LVU294
 1239 0016 38BD     		pop	{r3, r4, r5, pc}
 1240              	.LVL124:
 1241              	.L53:
  47:Core/Src/ADBMS_Abstraction.c **** 
 1242              		.loc 1 47 1 view .LVU295
ARM GAS  /tmp/ccv8HLGI.s 			page 30


 1243              		.align	2
 1244              	.L52:
 1245 0018 00000000 		.word	numberofcells
 1246 001c 00000000 		.word	numberofauxchannels
 1247              		.cfi_endproc
 1248              	.LFE124:
 1250              		.section	.text.amsCheckUnderOverVoltage,"ax",%progbits
 1251              		.align	1
 1252              		.global	amsCheckUnderOverVoltage
 1253              		.syntax unified
 1254              		.thumb
 1255              		.thumb_func
 1257              	amsCheckUnderOverVoltage:
 1258              	.LVL125:
 1259              	.LFB134:
 186:Core/Src/ADBMS_Abstraction.c **** 
 187:Core/Src/ADBMS_Abstraction.c **** uint8 amsCheckUnderOverVoltage(Cell_Module* module) {
 1260              		.loc 1 187 53 is_stmt 1 view -0
 1261              		.cfi_startproc
 1262              		@ args = 0, pretend = 0, frame = 8
 1263              		@ frame_needed = 0, uses_anonymous_args = 0
 1264              		.loc 1 187 53 is_stmt 0 view .LVU297
 1265 0000 10B5     		push	{r4, lr}
 1266              		.cfi_def_cfa_offset 8
 1267              		.cfi_offset 4, -8
 1268              		.cfi_offset 14, -4
 1269 0002 82B0     		sub	sp, sp, #8
 1270              		.cfi_def_cfa_offset 16
 1271 0004 0446     		mov	r4, r0
 188:Core/Src/ADBMS_Abstraction.c ****   uint8 regbuffer[STATUS_GROUP_D_SIZE];
 1272              		.loc 1 188 3 is_stmt 1 view .LVU298
 189:Core/Src/ADBMS_Abstraction.c ****   uint32 ov_uv_data = 0;
 1273              		.loc 1 189 3 view .LVU299
 1274              	.LVL126:
 1275              	.LBB20:
 190:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDSTATD, regbuffer, STATUS_GROUP_D_SIZE));
 1276              		.loc 1 190 3 view .LVU300
 1277 0006 0622     		movs	r2, #6
 1278 0008 6946     		mov	r1, sp
 1279 000a 3320     		movs	r0, #51
 1280              	.LVL127:
 1281              		.loc 1 190 3 is_stmt 0 view .LVU301
 1282 000c FFF7FEFF 		bl	readCMD
 1283              	.LVL128:
 1284              		.loc 1 190 3 is_stmt 1 discriminator 1 view .LVU302
 1285 0010 38BB     		cbnz	r0, .L55
 1286              	.LBE20:
 1287              		.loc 1 190 65 discriminator 2 view .LVU303
 191:Core/Src/ADBMS_Abstraction.c ****   ov_uv_data = (regbuffer[0] <<  0) | (regbuffer[1] <<  8) | 
 1288              		.loc 1 191 3 view .LVU304
 1289              		.loc 1 191 26 is_stmt 0 view .LVU305
 1290 0012 9DF800E0 		ldrb	lr, [sp]	@ zero_extendqisi2
 1291              		.loc 1 191 49 view .LVU306
 1292 0016 9DF80130 		ldrb	r3, [sp, #1]	@ zero_extendqisi2
 1293              		.loc 1 191 37 view .LVU307
 1294 001a 4EEA032E 		orr	lr, lr, r3, lsl #8
 192:Core/Src/ADBMS_Abstraction.c ****                (regbuffer[2] << 16) | (regbuffer[3] << 24);
ARM GAS  /tmp/ccv8HLGI.s 			page 31


 1295              		.loc 1 192 26 view .LVU308
 1296 001e 9DF80230 		ldrb	r3, [sp, #2]	@ zero_extendqisi2
 191:Core/Src/ADBMS_Abstraction.c ****   ov_uv_data = (regbuffer[0] <<  0) | (regbuffer[1] <<  8) | 
 1297              		.loc 1 191 60 view .LVU309
 1298 0022 4EEA034E 		orr	lr, lr, r3, lsl #16
 1299              		.loc 1 192 49 view .LVU310
 1300 0026 9DF80330 		ldrb	r3, [sp, #3]	@ zero_extendqisi2
 1301              		.loc 1 192 37 view .LVU311
 1302 002a 4EEA036E 		orr	lr, lr, r3, lsl #24
 1303              	.LVL129:
 193:Core/Src/ADBMS_Abstraction.c **** 
 194:Core/Src/ADBMS_Abstraction.c ****   module->overVoltage = 0;
 1304              		.loc 1 194 3 is_stmt 1 view .LVU312
 1305              		.loc 1 194 23 is_stmt 0 view .LVU313
 1306 002e 0022     		movs	r2, #0
 1307 0030 A265     		str	r2, [r4, #88]
 195:Core/Src/ADBMS_Abstraction.c ****   module->underVoltage = 0;
 1308              		.loc 1 195 3 is_stmt 1 view .LVU314
 1309              		.loc 1 195 24 is_stmt 0 view .LVU315
 1310 0032 E265     		str	r2, [r4, #92]
 196:Core/Src/ADBMS_Abstraction.c ****   
 197:Core/Src/ADBMS_Abstraction.c ****   for (size_t i = 0; i < numberofcells; i++) { // ov/uv flags are 1-bit flags for each cell C0UV, C
 1311              		.loc 1 197 3 is_stmt 1 view .LVU316
 1312              	.LBB21:
 1313              		.loc 1 197 8 view .LVU317
 1314              	.LVL130:
 1315              		.loc 1 197 3 is_stmt 0 view .LVU318
 1316 0034 11E0     		b	.L56
 1317              	.LVL131:
 1318              	.L57:
 198:Core/Src/ADBMS_Abstraction.c ****     module->underVoltage |= (ov_uv_data >> (i * 2)) & 0x01;
 1319              		.loc 1 198 5 is_stmt 1 view .LVU319
 1320              		.loc 1 198 11 is_stmt 0 view .LVU320
 1321 0036 E16D     		ldr	r1, [r4, #92]
 1322              		.loc 1 198 47 view .LVU321
 1323 0038 5300     		lsls	r3, r2, #1
 1324              		.loc 1 198 41 view .LVU322
 1325 003a 2EFA03FC 		lsr	ip, lr, r3
 1326              		.loc 1 198 53 view .LVU323
 1327 003e 0CF0010C 		and	ip, ip, #1
 1328              		.loc 1 198 26 view .LVU324
 1329 0042 41EA0C01 		orr	r1, r1, ip
 1330 0046 E165     		str	r1, [r4, #92]
 199:Core/Src/ADBMS_Abstraction.c ****     module->overVoltage  |= (ov_uv_data >> (i * 2 + 1)) & 0x01;
 1331              		.loc 1 199 5 is_stmt 1 view .LVU325
 1332              		.loc 1 199 11 is_stmt 0 view .LVU326
 1333 0048 A16D     		ldr	r1, [r4, #88]
 1334              		.loc 1 199 51 view .LVU327
 1335 004a 0133     		adds	r3, r3, #1
 1336              		.loc 1 199 41 view .LVU328
 1337 004c 2EFA03F3 		lsr	r3, lr, r3
 1338              		.loc 1 199 57 view .LVU329
 1339 0050 03F00103 		and	r3, r3, #1
 1340              		.loc 1 199 26 view .LVU330
 1341 0054 1943     		orrs	r1, r1, r3
 1342 0056 A165     		str	r1, [r4, #88]
 197:Core/Src/ADBMS_Abstraction.c ****     module->underVoltage |= (ov_uv_data >> (i * 2)) & 0x01;
ARM GAS  /tmp/ccv8HLGI.s 			page 32


 1343              		.loc 1 197 42 is_stmt 1 discriminator 3 view .LVU331
 1344 0058 0132     		adds	r2, r2, #1
 1345              	.LVL132:
 1346              	.L56:
 197:Core/Src/ADBMS_Abstraction.c ****     module->underVoltage |= (ov_uv_data >> (i * 2)) & 0x01;
 1347              		.loc 1 197 24 discriminator 1 view .LVU332
 1348 005a 034B     		ldr	r3, .L59
 1349 005c 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 1350 005e 9342     		cmp	r3, r2
 1351 0060 E9D8     		bhi	.L57
 1352              	.LVL133:
 1353              	.L55:
 197:Core/Src/ADBMS_Abstraction.c ****     module->underVoltage |= (ov_uv_data >> (i * 2)) & 0x01;
 1354              		.loc 1 197 24 is_stmt 0 discriminator 1 view .LVU333
 1355              	.LBE21:
 200:Core/Src/ADBMS_Abstraction.c ****   }
 201:Core/Src/ADBMS_Abstraction.c **** 
 202:Core/Src/ADBMS_Abstraction.c ****   return 0;
 203:Core/Src/ADBMS_Abstraction.c **** }
 1356              		.loc 1 203 1 view .LVU334
 1357 0062 02B0     		add	sp, sp, #8
 1358              		.cfi_def_cfa_offset 8
 1359              		@ sp needed
 1360 0064 10BD     		pop	{r4, pc}
 1361              	.LVL134:
 1362              	.L60:
 1363              		.loc 1 203 1 view .LVU335
 1364 0066 00BF     		.align	2
 1365              	.L59:
 1366 0068 00000000 		.word	numberofcells
 1367              		.cfi_endproc
 1368              	.LFE134:
 1370              		.section	.text.amsClearAux,"ax",%progbits
 1371              		.align	1
 1372              		.global	amsClearAux
 1373              		.syntax unified
 1374              		.thumb
 1375              		.thumb_func
 1377              	amsClearAux:
 1378              	.LFB135:
 204:Core/Src/ADBMS_Abstraction.c **** 
 205:Core/Src/ADBMS_Abstraction.c **** uint8 amsClearAux() {
 1379              		.loc 1 205 21 is_stmt 1 view -0
 1380              		.cfi_startproc
 1381              		@ args = 0, pretend = 0, frame = 8
 1382              		@ frame_needed = 0, uses_anonymous_args = 0
 1383 0000 00B5     		push	{lr}
 1384              		.cfi_def_cfa_offset 4
 1385              		.cfi_offset 14, -4
 1386 0002 83B0     		sub	sp, sp, #12
 1387              		.cfi_def_cfa_offset 16
 206:Core/Src/ADBMS_Abstraction.c ****   uint8 buffer[6];
 1388              		.loc 1 206 3 view .LVU337
 207:Core/Src/ADBMS_Abstraction.c ****   return writeCMD(CLRAUX, buffer, 0);
 1389              		.loc 1 207 3 view .LVU338
 1390              		.loc 1 207 10 is_stmt 0 view .LVU339
 1391 0004 0022     		movs	r2, #0
ARM GAS  /tmp/ccv8HLGI.s 			page 33


 1392 0006 6946     		mov	r1, sp
 1393 0008 40F21270 		movw	r0, #1810
 1394 000c FFF7FEFF 		bl	writeCMD
 1395              	.LVL135:
 208:Core/Src/ADBMS_Abstraction.c **** }
 1396              		.loc 1 208 1 view .LVU340
 1397 0010 03B0     		add	sp, sp, #12
 1398              		.cfi_def_cfa_offset 4
 1399              		@ sp needed
 1400 0012 5DF804FB 		ldr	pc, [sp], #4
 1401              		.cfi_endproc
 1402              	.LFE135:
 1404              		.section	.text.amsClearCells,"ax",%progbits
 1405              		.align	1
 1406              		.global	amsClearCells
 1407              		.syntax unified
 1408              		.thumb
 1409              		.thumb_func
 1411              	amsClearCells:
 1412              	.LFB136:
 209:Core/Src/ADBMS_Abstraction.c **** 
 210:Core/Src/ADBMS_Abstraction.c **** uint8 amsClearCells() {
 1413              		.loc 1 210 23 is_stmt 1 view -0
 1414              		.cfi_startproc
 1415              		@ args = 0, pretend = 0, frame = 8
 1416              		@ frame_needed = 0, uses_anonymous_args = 0
 1417 0000 00B5     		push	{lr}
 1418              		.cfi_def_cfa_offset 4
 1419              		.cfi_offset 14, -4
 1420 0002 83B0     		sub	sp, sp, #12
 1421              		.cfi_def_cfa_offset 16
 211:Core/Src/ADBMS_Abstraction.c ****   uint8 buffer[6];
 1422              		.loc 1 211 3 view .LVU342
 212:Core/Src/ADBMS_Abstraction.c ****   return writeCMD(CLRCELL, buffer, 0);
 1423              		.loc 1 212 3 view .LVU343
 1424              		.loc 1 212 10 is_stmt 0 view .LVU344
 1425 0004 0022     		movs	r2, #0
 1426 0006 6946     		mov	r1, sp
 1427 0008 40F21170 		movw	r0, #1809
 1428 000c FFF7FEFF 		bl	writeCMD
 1429              	.LVL136:
 213:Core/Src/ADBMS_Abstraction.c **** }
 1430              		.loc 1 213 1 view .LVU345
 1431 0010 03B0     		add	sp, sp, #12
 1432              		.cfi_def_cfa_offset 4
 1433              		@ sp needed
 1434 0012 5DF804FB 		ldr	pc, [sp], #4
 1435              		.cfi_endproc
 1436              	.LFE136:
 1438              		.section	.text.amsReadCellVoltages,"ax",%progbits
 1439              		.align	1
 1440              		.global	amsReadCellVoltages
 1441              		.syntax unified
 1442              		.thumb
 1443              		.thumb_func
 1445              	amsReadCellVoltages:
 1446              	.LVL137:
ARM GAS  /tmp/ccv8HLGI.s 			page 34


 1447              	.LFB137:
 214:Core/Src/ADBMS_Abstraction.c **** 
 215:Core/Src/ADBMS_Abstraction.c **** uint8 amsReadCellVoltages(Cell_Module* module) {
 1448              		.loc 1 215 48 is_stmt 1 view -0
 1449              		.cfi_startproc
 1450              		@ args = 0, pretend = 0, frame = 8
 1451              		@ frame_needed = 0, uses_anonymous_args = 0
 1452              		.loc 1 215 48 is_stmt 0 view .LVU347
 1453 0000 30B5     		push	{r4, r5, lr}
 1454              		.cfi_def_cfa_offset 12
 1455              		.cfi_offset 4, -12
 1456              		.cfi_offset 5, -8
 1457              		.cfi_offset 14, -4
 1458 0002 83B0     		sub	sp, sp, #12
 1459              		.cfi_def_cfa_offset 24
 1460 0004 0446     		mov	r4, r0
 216:Core/Src/ADBMS_Abstraction.c ****   uint8 rxbuffer[CV_GROUP_A_SIZE];
 1461              		.loc 1 216 3 is_stmt 1 view .LVU348
 1462              	.LBB22:
 217:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDCVA, rxbuffer, CV_GROUP_A_SIZE));
 1463              		.loc 1 217 3 view .LVU349
 1464 0006 0622     		movs	r2, #6
 1465 0008 6946     		mov	r1, sp
 1466 000a 0420     		movs	r0, #4
 1467              	.LVL138:
 1468              		.loc 1 217 3 is_stmt 0 view .LVU350
 1469 000c FFF7FEFF 		bl	readCMD
 1470              	.LVL139:
 1471              		.loc 1 217 3 is_stmt 1 discriminator 1 view .LVU351
 1472 0010 0546     		mov	r5, r0
 1473 0012 10B1     		cbz	r0, .L68
 1474              	.LVL140:
 1475              	.L66:
 1476              		.loc 1 217 3 is_stmt 0 discriminator 1 view .LVU352
 1477              	.LBE22:
 218:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[0] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 219:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[1] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 220:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[2] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 221:Core/Src/ADBMS_Abstraction.c **** 
 222:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDCVB, rxbuffer, CV_GROUP_A_SIZE));
 223:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[3] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 224:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[4] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 225:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[5] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 226:Core/Src/ADBMS_Abstraction.c **** 
 227:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDCVC, rxbuffer, CV_GROUP_A_SIZE));
 228:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[6] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 229:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[7] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 230:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[8] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 231:Core/Src/ADBMS_Abstraction.c **** 
 232:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDCVD, rxbuffer, CV_GROUP_A_SIZE));
 233:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[9]  = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 234:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[10] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 235:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[11] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 236:Core/Src/ADBMS_Abstraction.c **** 
 237:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDCVE, rxbuffer, CV_GROUP_A_SIZE));
 238:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[12] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 239:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[13] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
ARM GAS  /tmp/ccv8HLGI.s 			page 35


 240:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[14] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 241:Core/Src/ADBMS_Abstraction.c **** 
 242:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDCVF, rxbuffer, CV_GROUP_A_SIZE));
 243:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[15] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 244:Core/Src/ADBMS_Abstraction.c **** 
 245:Core/Src/ADBMS_Abstraction.c ****   return 0;
 246:Core/Src/ADBMS_Abstraction.c **** }
 1478              		.loc 1 246 1 view .LVU353
 1479 0014 2846     		mov	r0, r5
 1480 0016 03B0     		add	sp, sp, #12
 1481              		.cfi_remember_state
 1482              		.cfi_def_cfa_offset 12
 1483              		@ sp needed
 1484 0018 30BD     		pop	{r4, r5, pc}
 1485              	.LVL141:
 1486              	.L68:
 1487              		.cfi_restore_state
 217:Core/Src/ADBMS_Abstraction.c ****   CHECK_RETURN(readCMD(RDCVA, rxbuffer, CV_GROUP_A_SIZE));
 1488              		.loc 1 217 58 is_stmt 1 discriminator 2 view .LVU354
 218:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[0] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1489              		.loc 1 218 3 view .LVU355
 218:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[0] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1490              		.loc 1 218 29 is_stmt 0 view .LVU356
 1491 001a 9DF80000 		ldrb	r0, [sp]	@ zero_extendqisi2
 1492              	.LVL142:
 218:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[0] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1493              		.loc 1 218 29 view .LVU357
 1494 001e 9DF80130 		ldrb	r3, [sp, #1]	@ zero_extendqisi2
 1495 0022 40EA0320 		orr	r0, r0, r3, lsl #8
 1496 0026 00B2     		sxth	r0, r0
 1497 0028 FFF7FEFF 		bl	__aeabi_i2d
 1498              	.LVL143:
 1499 002c C2A3     		adr	r3, .L69
 1500 002e D3E90023 		ldrd	r2, [r3]
 1501 0032 FFF7FEFF 		bl	__aeabi_dmul
 1502              	.LVL144:
 1503 0036 C2A3     		adr	r3, .L69+8
 1504 0038 D3E90023 		ldrd	r2, [r3]
 1505 003c FFF7FEFF 		bl	__aeabi_dadd
 1506              	.LVL145:
 218:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[0] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1507              		.loc 1 218 27 view .LVU358
 1508 0040 FFF7FEFF 		bl	__aeabi_d2iz
 1509              	.LVL146:
 1510 0044 2080     		strh	r0, [r4]	@ movhi
 219:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[2] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1511              		.loc 1 219 3 is_stmt 1 view .LVU359
 219:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[2] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1512              		.loc 1 219 29 is_stmt 0 view .LVU360
 1513 0046 9DF80200 		ldrb	r0, [sp, #2]	@ zero_extendqisi2
 1514 004a 9DF80330 		ldrb	r3, [sp, #3]	@ zero_extendqisi2
 1515 004e 40EA0320 		orr	r0, r0, r3, lsl #8
 1516 0052 00B2     		sxth	r0, r0
 1517 0054 FFF7FEFF 		bl	__aeabi_i2d
 1518              	.LVL147:
 1519 0058 B7A3     		adr	r3, .L69
 1520 005a D3E90023 		ldrd	r2, [r3]
ARM GAS  /tmp/ccv8HLGI.s 			page 36


 1521 005e FFF7FEFF 		bl	__aeabi_dmul
 1522              	.LVL148:
 1523 0062 B7A3     		adr	r3, .L69+8
 1524 0064 D3E90023 		ldrd	r2, [r3]
 1525 0068 FFF7FEFF 		bl	__aeabi_dadd
 1526              	.LVL149:
 219:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[2] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1527              		.loc 1 219 27 view .LVU361
 1528 006c FFF7FEFF 		bl	__aeabi_d2iz
 1529              	.LVL150:
 1530 0070 6080     		strh	r0, [r4, #2]	@ movhi
 220:Core/Src/ADBMS_Abstraction.c **** 
 1531              		.loc 1 220 3 is_stmt 1 view .LVU362
 220:Core/Src/ADBMS_Abstraction.c **** 
 1532              		.loc 1 220 29 is_stmt 0 view .LVU363
 1533 0072 9DF80400 		ldrb	r0, [sp, #4]	@ zero_extendqisi2
 1534 0076 9DF80530 		ldrb	r3, [sp, #5]	@ zero_extendqisi2
 1535 007a 40EA0320 		orr	r0, r0, r3, lsl #8
 1536 007e 00B2     		sxth	r0, r0
 1537 0080 FFF7FEFF 		bl	__aeabi_i2d
 1538              	.LVL151:
 1539 0084 ACA3     		adr	r3, .L69
 1540 0086 D3E90023 		ldrd	r2, [r3]
 1541 008a FFF7FEFF 		bl	__aeabi_dmul
 1542              	.LVL152:
 1543 008e ACA3     		adr	r3, .L69+8
 1544 0090 D3E90023 		ldrd	r2, [r3]
 1545 0094 FFF7FEFF 		bl	__aeabi_dadd
 1546              	.LVL153:
 220:Core/Src/ADBMS_Abstraction.c **** 
 1547              		.loc 1 220 27 view .LVU364
 1548 0098 FFF7FEFF 		bl	__aeabi_d2iz
 1549              	.LVL154:
 1550 009c A080     		strh	r0, [r4, #4]	@ movhi
 1551              	.LBB23:
 222:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[3] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1552              		.loc 1 222 3 is_stmt 1 view .LVU365
 1553 009e 0622     		movs	r2, #6
 1554 00a0 6946     		mov	r1, sp
 1555 00a2 1046     		mov	r0, r2
 1556 00a4 FFF7FEFF 		bl	readCMD
 1557              	.LVL155:
 222:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[3] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1558              		.loc 1 222 3 discriminator 1 view .LVU366
 1559 00a8 0546     		mov	r5, r0
 1560              	.LVL156:
 222:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[3] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1561              		.loc 1 222 3 is_stmt 0 discriminator 1 view .LVU367
 1562 00aa 0028     		cmp	r0, #0
 1563 00ac B2D1     		bne	.L66
 1564              	.LBE23:
 222:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[3] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1565              		.loc 1 222 58 is_stmt 1 discriminator 2 view .LVU368
 223:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[4] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1566              		.loc 1 223 3 view .LVU369
 223:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[4] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1567              		.loc 1 223 29 is_stmt 0 view .LVU370
ARM GAS  /tmp/ccv8HLGI.s 			page 37


 1568 00ae 9DF80000 		ldrb	r0, [sp]	@ zero_extendqisi2
 1569              	.LVL157:
 223:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[4] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1570              		.loc 1 223 29 view .LVU371
 1571 00b2 9DF80130 		ldrb	r3, [sp, #1]	@ zero_extendqisi2
 1572 00b6 40EA0320 		orr	r0, r0, r3, lsl #8
 1573 00ba 00B2     		sxth	r0, r0
 1574 00bc FFF7FEFF 		bl	__aeabi_i2d
 1575              	.LVL158:
 1576 00c0 9DA3     		adr	r3, .L69
 1577 00c2 D3E90023 		ldrd	r2, [r3]
 1578 00c6 FFF7FEFF 		bl	__aeabi_dmul
 1579              	.LVL159:
 1580 00ca 9DA3     		adr	r3, .L69+8
 1581 00cc D3E90023 		ldrd	r2, [r3]
 1582 00d0 FFF7FEFF 		bl	__aeabi_dadd
 1583              	.LVL160:
 223:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[4] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1584              		.loc 1 223 27 view .LVU372
 1585 00d4 FFF7FEFF 		bl	__aeabi_d2iz
 1586              	.LVL161:
 1587 00d8 E080     		strh	r0, [r4, #6]	@ movhi
 224:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[5] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1588              		.loc 1 224 3 is_stmt 1 view .LVU373
 224:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[5] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1589              		.loc 1 224 29 is_stmt 0 view .LVU374
 1590 00da 9DF80200 		ldrb	r0, [sp, #2]	@ zero_extendqisi2
 1591 00de 9DF80330 		ldrb	r3, [sp, #3]	@ zero_extendqisi2
 1592 00e2 40EA0320 		orr	r0, r0, r3, lsl #8
 1593 00e6 00B2     		sxth	r0, r0
 1594 00e8 FFF7FEFF 		bl	__aeabi_i2d
 1595              	.LVL162:
 1596 00ec 92A3     		adr	r3, .L69
 1597 00ee D3E90023 		ldrd	r2, [r3]
 1598 00f2 FFF7FEFF 		bl	__aeabi_dmul
 1599              	.LVL163:
 1600 00f6 92A3     		adr	r3, .L69+8
 1601 00f8 D3E90023 		ldrd	r2, [r3]
 1602 00fc FFF7FEFF 		bl	__aeabi_dadd
 1603              	.LVL164:
 224:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[5] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1604              		.loc 1 224 27 view .LVU375
 1605 0100 FFF7FEFF 		bl	__aeabi_d2iz
 1606              	.LVL165:
 1607 0104 2081     		strh	r0, [r4, #8]	@ movhi
 225:Core/Src/ADBMS_Abstraction.c **** 
 1608              		.loc 1 225 3 is_stmt 1 view .LVU376
 225:Core/Src/ADBMS_Abstraction.c **** 
 1609              		.loc 1 225 29 is_stmt 0 view .LVU377
 1610 0106 9DF80400 		ldrb	r0, [sp, #4]	@ zero_extendqisi2
 1611 010a 9DF80530 		ldrb	r3, [sp, #5]	@ zero_extendqisi2
 1612 010e 40EA0320 		orr	r0, r0, r3, lsl #8
 1613 0112 00B2     		sxth	r0, r0
 1614 0114 FFF7FEFF 		bl	__aeabi_i2d
 1615              	.LVL166:
 1616 0118 87A3     		adr	r3, .L69
 1617 011a D3E90023 		ldrd	r2, [r3]
ARM GAS  /tmp/ccv8HLGI.s 			page 38


 1618 011e FFF7FEFF 		bl	__aeabi_dmul
 1619              	.LVL167:
 1620 0122 87A3     		adr	r3, .L69+8
 1621 0124 D3E90023 		ldrd	r2, [r3]
 1622 0128 FFF7FEFF 		bl	__aeabi_dadd
 1623              	.LVL168:
 225:Core/Src/ADBMS_Abstraction.c **** 
 1624              		.loc 1 225 27 view .LVU378
 1625 012c FFF7FEFF 		bl	__aeabi_d2iz
 1626              	.LVL169:
 1627 0130 6081     		strh	r0, [r4, #10]	@ movhi
 1628              	.LBB24:
 227:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[6] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1629              		.loc 1 227 3 is_stmt 1 view .LVU379
 1630 0132 0622     		movs	r2, #6
 1631 0134 6946     		mov	r1, sp
 1632 0136 0820     		movs	r0, #8
 1633 0138 FFF7FEFF 		bl	readCMD
 1634              	.LVL170:
 227:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[6] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1635              		.loc 1 227 3 discriminator 1 view .LVU380
 1636 013c 0546     		mov	r5, r0
 1637              	.LVL171:
 227:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[6] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1638              		.loc 1 227 3 is_stmt 0 discriminator 1 view .LVU381
 1639 013e 0028     		cmp	r0, #0
 1640 0140 7FF468AF 		bne	.L66
 1641              	.LBE24:
 227:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[6] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1642              		.loc 1 227 58 is_stmt 1 discriminator 2 view .LVU382
 228:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[7] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1643              		.loc 1 228 3 view .LVU383
 228:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[7] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1644              		.loc 1 228 29 is_stmt 0 view .LVU384
 1645 0144 9DF80000 		ldrb	r0, [sp]	@ zero_extendqisi2
 1646              	.LVL172:
 228:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[7] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1647              		.loc 1 228 29 view .LVU385
 1648 0148 9DF80130 		ldrb	r3, [sp, #1]	@ zero_extendqisi2
 1649 014c 40EA0320 		orr	r0, r0, r3, lsl #8
 1650 0150 00B2     		sxth	r0, r0
 1651 0152 FFF7FEFF 		bl	__aeabi_i2d
 1652              	.LVL173:
 1653 0156 78A3     		adr	r3, .L69
 1654 0158 D3E90023 		ldrd	r2, [r3]
 1655 015c FFF7FEFF 		bl	__aeabi_dmul
 1656              	.LVL174:
 1657 0160 77A3     		adr	r3, .L69+8
 1658 0162 D3E90023 		ldrd	r2, [r3]
 1659 0166 FFF7FEFF 		bl	__aeabi_dadd
 1660              	.LVL175:
 228:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[7] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1661              		.loc 1 228 27 view .LVU386
 1662 016a FFF7FEFF 		bl	__aeabi_d2iz
 1663              	.LVL176:
 1664 016e A081     		strh	r0, [r4, #12]	@ movhi
 229:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[8] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
ARM GAS  /tmp/ccv8HLGI.s 			page 39


 1665              		.loc 1 229 3 is_stmt 1 view .LVU387
 229:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[8] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1666              		.loc 1 229 29 is_stmt 0 view .LVU388
 1667 0170 9DF80200 		ldrb	r0, [sp, #2]	@ zero_extendqisi2
 1668 0174 9DF80330 		ldrb	r3, [sp, #3]	@ zero_extendqisi2
 1669 0178 40EA0320 		orr	r0, r0, r3, lsl #8
 1670 017c 00B2     		sxth	r0, r0
 1671 017e FFF7FEFF 		bl	__aeabi_i2d
 1672              	.LVL177:
 1673 0182 6DA3     		adr	r3, .L69
 1674 0184 D3E90023 		ldrd	r2, [r3]
 1675 0188 FFF7FEFF 		bl	__aeabi_dmul
 1676              	.LVL178:
 1677 018c 6CA3     		adr	r3, .L69+8
 1678 018e D3E90023 		ldrd	r2, [r3]
 1679 0192 FFF7FEFF 		bl	__aeabi_dadd
 1680              	.LVL179:
 229:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[8] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1681              		.loc 1 229 27 view .LVU389
 1682 0196 FFF7FEFF 		bl	__aeabi_d2iz
 1683              	.LVL180:
 1684 019a E081     		strh	r0, [r4, #14]	@ movhi
 230:Core/Src/ADBMS_Abstraction.c **** 
 1685              		.loc 1 230 3 is_stmt 1 view .LVU390
 230:Core/Src/ADBMS_Abstraction.c **** 
 1686              		.loc 1 230 29 is_stmt 0 view .LVU391
 1687 019c 9DF80400 		ldrb	r0, [sp, #4]	@ zero_extendqisi2
 1688 01a0 9DF80530 		ldrb	r3, [sp, #5]	@ zero_extendqisi2
 1689 01a4 40EA0320 		orr	r0, r0, r3, lsl #8
 1690 01a8 00B2     		sxth	r0, r0
 1691 01aa FFF7FEFF 		bl	__aeabi_i2d
 1692              	.LVL181:
 1693 01ae 62A3     		adr	r3, .L69
 1694 01b0 D3E90023 		ldrd	r2, [r3]
 1695 01b4 FFF7FEFF 		bl	__aeabi_dmul
 1696              	.LVL182:
 1697 01b8 61A3     		adr	r3, .L69+8
 1698 01ba D3E90023 		ldrd	r2, [r3]
 1699 01be FFF7FEFF 		bl	__aeabi_dadd
 1700              	.LVL183:
 230:Core/Src/ADBMS_Abstraction.c **** 
 1701              		.loc 1 230 27 view .LVU392
 1702 01c2 FFF7FEFF 		bl	__aeabi_d2iz
 1703              	.LVL184:
 1704 01c6 2082     		strh	r0, [r4, #16]	@ movhi
 1705              	.LBB25:
 232:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[9]  = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1706              		.loc 1 232 3 is_stmt 1 view .LVU393
 1707 01c8 0622     		movs	r2, #6
 1708 01ca 6946     		mov	r1, sp
 1709 01cc 0A20     		movs	r0, #10
 1710 01ce FFF7FEFF 		bl	readCMD
 1711              	.LVL185:
 232:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[9]  = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1712              		.loc 1 232 3 discriminator 1 view .LVU394
 1713 01d2 0546     		mov	r5, r0
 1714              	.LVL186:
ARM GAS  /tmp/ccv8HLGI.s 			page 40


 232:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[9]  = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1715              		.loc 1 232 3 is_stmt 0 discriminator 1 view .LVU395
 1716 01d4 0028     		cmp	r0, #0
 1717 01d6 7FF41DAF 		bne	.L66
 1718              	.LBE25:
 232:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[9]  = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1719              		.loc 1 232 58 is_stmt 1 discriminator 2 view .LVU396
 233:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[10] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1720              		.loc 1 233 3 view .LVU397
 233:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[10] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1721              		.loc 1 233 30 is_stmt 0 view .LVU398
 1722 01da 9DF80000 		ldrb	r0, [sp]	@ zero_extendqisi2
 1723              	.LVL187:
 233:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[10] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1724              		.loc 1 233 30 view .LVU399
 1725 01de 9DF80130 		ldrb	r3, [sp, #1]	@ zero_extendqisi2
 1726 01e2 40EA0320 		orr	r0, r0, r3, lsl #8
 1727 01e6 00B2     		sxth	r0, r0
 1728 01e8 FFF7FEFF 		bl	__aeabi_i2d
 1729              	.LVL188:
 1730 01ec 52A3     		adr	r3, .L69
 1731 01ee D3E90023 		ldrd	r2, [r3]
 1732 01f2 FFF7FEFF 		bl	__aeabi_dmul
 1733              	.LVL189:
 1734 01f6 52A3     		adr	r3, .L69+8
 1735 01f8 D3E90023 		ldrd	r2, [r3]
 1736 01fc FFF7FEFF 		bl	__aeabi_dadd
 1737              	.LVL190:
 233:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[10] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1738              		.loc 1 233 28 view .LVU400
 1739 0200 FFF7FEFF 		bl	__aeabi_d2iz
 1740              	.LVL191:
 1741 0204 6082     		strh	r0, [r4, #18]	@ movhi
 234:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[11] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1742              		.loc 1 234 3 is_stmt 1 view .LVU401
 234:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[11] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1743              		.loc 1 234 30 is_stmt 0 view .LVU402
 1744 0206 9DF80200 		ldrb	r0, [sp, #2]	@ zero_extendqisi2
 1745 020a 9DF80330 		ldrb	r3, [sp, #3]	@ zero_extendqisi2
 1746 020e 40EA0320 		orr	r0, r0, r3, lsl #8
 1747 0212 00B2     		sxth	r0, r0
 1748 0214 FFF7FEFF 		bl	__aeabi_i2d
 1749              	.LVL192:
 1750 0218 47A3     		adr	r3, .L69
 1751 021a D3E90023 		ldrd	r2, [r3]
 1752 021e FFF7FEFF 		bl	__aeabi_dmul
 1753              	.LVL193:
 1754 0222 47A3     		adr	r3, .L69+8
 1755 0224 D3E90023 		ldrd	r2, [r3]
 1756 0228 FFF7FEFF 		bl	__aeabi_dadd
 1757              	.LVL194:
 234:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[11] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1758              		.loc 1 234 28 view .LVU403
 1759 022c FFF7FEFF 		bl	__aeabi_d2iz
 1760              	.LVL195:
 1761 0230 A082     		strh	r0, [r4, #20]	@ movhi
 235:Core/Src/ADBMS_Abstraction.c **** 
ARM GAS  /tmp/ccv8HLGI.s 			page 41


 1762              		.loc 1 235 3 is_stmt 1 view .LVU404
 235:Core/Src/ADBMS_Abstraction.c **** 
 1763              		.loc 1 235 30 is_stmt 0 view .LVU405
 1764 0232 9DF80400 		ldrb	r0, [sp, #4]	@ zero_extendqisi2
 1765 0236 9DF80530 		ldrb	r3, [sp, #5]	@ zero_extendqisi2
 1766 023a 40EA0320 		orr	r0, r0, r3, lsl #8
 1767 023e 00B2     		sxth	r0, r0
 1768 0240 FFF7FEFF 		bl	__aeabi_i2d
 1769              	.LVL196:
 1770 0244 3CA3     		adr	r3, .L69
 1771 0246 D3E90023 		ldrd	r2, [r3]
 1772 024a FFF7FEFF 		bl	__aeabi_dmul
 1773              	.LVL197:
 1774 024e 3CA3     		adr	r3, .L69+8
 1775 0250 D3E90023 		ldrd	r2, [r3]
 1776 0254 FFF7FEFF 		bl	__aeabi_dadd
 1777              	.LVL198:
 235:Core/Src/ADBMS_Abstraction.c **** 
 1778              		.loc 1 235 28 view .LVU406
 1779 0258 FFF7FEFF 		bl	__aeabi_d2iz
 1780              	.LVL199:
 1781 025c E082     		strh	r0, [r4, #22]	@ movhi
 1782              	.LBB26:
 237:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[12] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1783              		.loc 1 237 3 is_stmt 1 view .LVU407
 1784 025e 0622     		movs	r2, #6
 1785 0260 6946     		mov	r1, sp
 1786 0262 0920     		movs	r0, #9
 1787 0264 FFF7FEFF 		bl	readCMD
 1788              	.LVL200:
 237:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[12] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1789              		.loc 1 237 3 discriminator 1 view .LVU408
 1790 0268 0546     		mov	r5, r0
 1791              	.LVL201:
 237:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[12] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1792              		.loc 1 237 3 is_stmt 0 discriminator 1 view .LVU409
 1793 026a 0028     		cmp	r0, #0
 1794 026c 7FF4D2AE 		bne	.L66
 1795              	.LBE26:
 237:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[12] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1796              		.loc 1 237 58 is_stmt 1 discriminator 2 view .LVU410
 238:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[13] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1797              		.loc 1 238 3 view .LVU411
 238:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[13] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1798              		.loc 1 238 30 is_stmt 0 view .LVU412
 1799 0270 9DF80000 		ldrb	r0, [sp]	@ zero_extendqisi2
 1800              	.LVL202:
 238:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[13] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1801              		.loc 1 238 30 view .LVU413
 1802 0274 9DF80130 		ldrb	r3, [sp, #1]	@ zero_extendqisi2
 1803 0278 40EA0320 		orr	r0, r0, r3, lsl #8
 1804 027c 00B2     		sxth	r0, r0
 1805 027e FFF7FEFF 		bl	__aeabi_i2d
 1806              	.LVL203:
 1807 0282 2DA3     		adr	r3, .L69
 1808 0284 D3E90023 		ldrd	r2, [r3]
 1809 0288 FFF7FEFF 		bl	__aeabi_dmul
ARM GAS  /tmp/ccv8HLGI.s 			page 42


 1810              	.LVL204:
 1811 028c 2CA3     		adr	r3, .L69+8
 1812 028e D3E90023 		ldrd	r2, [r3]
 1813 0292 FFF7FEFF 		bl	__aeabi_dadd
 1814              	.LVL205:
 238:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[13] = mV_from_ADBMS6830(rxbuffer[2] | (rxbuffer[3] << 8));
 1815              		.loc 1 238 28 view .LVU414
 1816 0296 FFF7FEFF 		bl	__aeabi_d2iz
 1817              	.LVL206:
 1818 029a 2083     		strh	r0, [r4, #24]	@ movhi
 239:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[14] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1819              		.loc 1 239 3 is_stmt 1 view .LVU415
 239:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[14] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1820              		.loc 1 239 30 is_stmt 0 view .LVU416
 1821 029c 9DF80200 		ldrb	r0, [sp, #2]	@ zero_extendqisi2
 1822 02a0 9DF80330 		ldrb	r3, [sp, #3]	@ zero_extendqisi2
 1823 02a4 40EA0320 		orr	r0, r0, r3, lsl #8
 1824 02a8 00B2     		sxth	r0, r0
 1825 02aa FFF7FEFF 		bl	__aeabi_i2d
 1826              	.LVL207:
 1827 02ae 22A3     		adr	r3, .L69
 1828 02b0 D3E90023 		ldrd	r2, [r3]
 1829 02b4 FFF7FEFF 		bl	__aeabi_dmul
 1830              	.LVL208:
 1831 02b8 21A3     		adr	r3, .L69+8
 1832 02ba D3E90023 		ldrd	r2, [r3]
 1833 02be FFF7FEFF 		bl	__aeabi_dadd
 1834              	.LVL209:
 239:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[14] = mV_from_ADBMS6830(rxbuffer[4] | (rxbuffer[5] << 8));
 1835              		.loc 1 239 28 view .LVU417
 1836 02c2 FFF7FEFF 		bl	__aeabi_d2iz
 1837              	.LVL210:
 1838 02c6 6083     		strh	r0, [r4, #26]	@ movhi
 240:Core/Src/ADBMS_Abstraction.c **** 
 1839              		.loc 1 240 3 is_stmt 1 view .LVU418
 240:Core/Src/ADBMS_Abstraction.c **** 
 1840              		.loc 1 240 30 is_stmt 0 view .LVU419
 1841 02c8 9DF80400 		ldrb	r0, [sp, #4]	@ zero_extendqisi2
 1842 02cc 9DF80530 		ldrb	r3, [sp, #5]	@ zero_extendqisi2
 1843 02d0 40EA0320 		orr	r0, r0, r3, lsl #8
 1844 02d4 00B2     		sxth	r0, r0
 1845 02d6 FFF7FEFF 		bl	__aeabi_i2d
 1846              	.LVL211:
 1847 02da 17A3     		adr	r3, .L69
 1848 02dc D3E90023 		ldrd	r2, [r3]
 1849 02e0 FFF7FEFF 		bl	__aeabi_dmul
 1850              	.LVL212:
 1851 02e4 16A3     		adr	r3, .L69+8
 1852 02e6 D3E90023 		ldrd	r2, [r3]
 1853 02ea FFF7FEFF 		bl	__aeabi_dadd
 1854              	.LVL213:
 240:Core/Src/ADBMS_Abstraction.c **** 
 1855              		.loc 1 240 28 view .LVU420
 1856 02ee FFF7FEFF 		bl	__aeabi_d2iz
 1857              	.LVL214:
 1858 02f2 A083     		strh	r0, [r4, #28]	@ movhi
 1859              	.LBB27:
ARM GAS  /tmp/ccv8HLGI.s 			page 43


 242:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[15] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1860              		.loc 1 242 3 is_stmt 1 view .LVU421
 1861 02f4 0622     		movs	r2, #6
 1862 02f6 6946     		mov	r1, sp
 1863 02f8 0B20     		movs	r0, #11
 1864 02fa FFF7FEFF 		bl	readCMD
 1865              	.LVL215:
 242:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[15] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1866              		.loc 1 242 3 discriminator 1 view .LVU422
 1867 02fe 0546     		mov	r5, r0
 1868              	.LVL216:
 242:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[15] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1869              		.loc 1 242 3 is_stmt 0 discriminator 1 view .LVU423
 1870 0300 0028     		cmp	r0, #0
 1871 0302 7FF487AE 		bne	.L66
 1872              	.LBE27:
 242:Core/Src/ADBMS_Abstraction.c ****   module->cellVoltages[15] = mV_from_ADBMS6830(rxbuffer[0] | (rxbuffer[1] << 8));
 1873              		.loc 1 242 58 is_stmt 1 discriminator 2 view .LVU424
 243:Core/Src/ADBMS_Abstraction.c **** 
 1874              		.loc 1 243 3 view .LVU425
 243:Core/Src/ADBMS_Abstraction.c **** 
 1875              		.loc 1 243 30 is_stmt 0 view .LVU426
 1876 0306 9DF80000 		ldrb	r0, [sp]	@ zero_extendqisi2
 1877              	.LVL217:
 243:Core/Src/ADBMS_Abstraction.c **** 
 1878              		.loc 1 243 30 view .LVU427
 1879 030a 9DF80130 		ldrb	r3, [sp, #1]	@ zero_extendqisi2
 1880 030e 40EA0320 		orr	r0, r0, r3, lsl #8
 1881 0312 00B2     		sxth	r0, r0
 1882 0314 FFF7FEFF 		bl	__aeabi_i2d
 1883              	.LVL218:
 1884 0318 07A3     		adr	r3, .L69
 1885 031a D3E90023 		ldrd	r2, [r3]
 1886 031e FFF7FEFF 		bl	__aeabi_dmul
 1887              	.LVL219:
 1888 0322 07A3     		adr	r3, .L69+8
 1889 0324 D3E90023 		ldrd	r2, [r3]
 1890 0328 FFF7FEFF 		bl	__aeabi_dadd
 1891              	.LVL220:
 243:Core/Src/ADBMS_Abstraction.c **** 
 1892              		.loc 1 243 28 view .LVU428
 1893 032c FFF7FEFF 		bl	__aeabi_d2iz
 1894              	.LVL221:
 1895 0330 E083     		strh	r0, [r4, #30]	@ movhi
 245:Core/Src/ADBMS_Abstraction.c **** }
 1896              		.loc 1 245 3 is_stmt 1 view .LVU429
 245:Core/Src/ADBMS_Abstraction.c **** }
 1897              		.loc 1 245 10 is_stmt 0 view .LVU430
 1898 0332 6FE6     		b	.L66
 1899              	.L70:
 1900 0334 AFF30080 		.align	3
 1901              	.L69:
 1902 0338 33333333 		.word	858993459
 1903 033c 3333C33F 		.word	1069757235
 1904 0340 00000000 		.word	0
 1905 0344 00709740 		.word	1083666432
 1906              		.cfi_endproc
ARM GAS  /tmp/ccv8HLGI.s 			page 44


 1907              	.LFE137:
 1909              		.section	.text.amsCellMeasurement,"ax",%progbits
 1910              		.align	1
 1911              		.global	amsCellMeasurement
 1912              		.syntax unified
 1913              		.thumb
 1914              		.thumb_func
 1916              	amsCellMeasurement:
 1917              	.LVL222:
 1918              	.LFB126:
  54:Core/Src/ADBMS_Abstraction.c ****   #warning check conversion counter to ensure that continous conversion has not been stopped
 1919              		.loc 1 54 47 is_stmt 1 view -0
 1920              		.cfi_startproc
 1921              		@ args = 0, pretend = 0, frame = 0
 1922              		@ frame_needed = 0, uses_anonymous_args = 0
  54:Core/Src/ADBMS_Abstraction.c ****   #warning check conversion counter to ensure that continous conversion has not been stopped
 1923              		.loc 1 54 47 is_stmt 0 view .LVU432
 1924 0000 08B5     		push	{r3, lr}
 1925              		.cfi_def_cfa_offset 8
 1926              		.cfi_offset 3, -8
 1927              		.cfi_offset 14, -4
  57:Core/Src/ADBMS_Abstraction.c **** }
 1928              		.loc 1 57 3 is_stmt 1 view .LVU433
  57:Core/Src/ADBMS_Abstraction.c **** }
 1929              		.loc 1 57 10 is_stmt 0 view .LVU434
 1930 0002 FFF7FEFF 		bl	amsReadCellVoltages
 1931              	.LVL223:
  58:Core/Src/ADBMS_Abstraction.c **** 
 1932              		.loc 1 58 1 view .LVU435
 1933 0006 08BD     		pop	{r3, pc}
 1934              		.cfi_endproc
 1935              	.LFE126:
 1937              		.global	numberofauxchannels
 1938              		.section	.bss.numberofauxchannels,"aw",%nobits
 1941              	numberofauxchannels:
 1942 0000 00       		.space	1
 1943              		.global	numberofcells
 1944              		.section	.bss.numberofcells,"aw",%nobits
 1947              	numberofcells:
 1948 0000 00       		.space	1
 1949              		.text
 1950              	.Letext0:
 1951              		.file 2 "/home/chiangni/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-
 1952              		.file 3 "/home/chiangni/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-
 1953              		.file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h"
 1954              		.file 5 "/home/chiangni/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-
 1955              		.file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
 1956              		.file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
 1957              		.file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_spi.h"
 1958              		.file 9 "Core/Inc/ADBMS_LL_Driver.h"
 1959              		.file 10 "Core/Inc/ADBMS_Abstraction.h"
ARM GAS  /tmp/ccv8HLGI.s 			page 45


DEFINED SYMBOLS
                            *ABS*:00000000 ADBMS_Abstraction.c
     /tmp/ccv8HLGI.s:21     .text.amsWakeUp:00000000 $t
     /tmp/ccv8HLGI.s:27     .text.amsWakeUp:00000000 amsWakeUp
     /tmp/ccv8HLGI.s:55     .text.amsConfigCellMeasurement:00000000 $t
     /tmp/ccv8HLGI.s:61     .text.amsConfigCellMeasurement:00000000 amsConfigCellMeasurement
     /tmp/ccv8HLGI.s:82     .text.amsConfigCellMeasurement:00000008 $d
     /tmp/ccv8HLGI.s:1947   .bss.numberofcells:00000000 numberofcells
     /tmp/ccv8HLGI.s:92     .text.amsAuxAndStatusMeasurement:00000000 $t
     /tmp/ccv8HLGI.s:98     .text.amsAuxAndStatusMeasurement:00000000 amsAuxAndStatusMeasurement
     /tmp/ccv8HLGI.s:649    .text.amsAuxAndStatusMeasurement:000003e8 $d
     /tmp/ccv8HLGI.s:658    .text.amsConfigBalancing:00000000 $t
     /tmp/ccv8HLGI.s:664    .text.amsConfigBalancing:00000000 amsConfigBalancing
     /tmp/ccv8HLGI.s:871    .text.amsStartBalancing:00000000 $t
     /tmp/ccv8HLGI.s:877    .text.amsStartBalancing:00000000 amsStartBalancing
     /tmp/ccv8HLGI.s:904    .text.amsStopBalancing:00000000 $t
     /tmp/ccv8HLGI.s:910    .text.amsStopBalancing:00000000 amsStopBalancing
     /tmp/ccv8HLGI.s:933    .text.amsSelfTest:00000000 $t
     /tmp/ccv8HLGI.s:939    .text.amsSelfTest:00000000 amsSelfTest
     /tmp/ccv8HLGI.s:954    .text.amsConfigOverUnderVoltage:00000000 $t
     /tmp/ccv8HLGI.s:960    .text.amsConfigOverUnderVoltage:00000000 amsConfigOverUnderVoltage
     /tmp/ccv8HLGI.s:1072   .rodata.amsReset.str1.4:00000000 $d
     /tmp/ccv8HLGI.s:1076   .text.amsReset:00000000 $t
     /tmp/ccv8HLGI.s:1082   .text.amsReset:00000000 amsReset
     /tmp/ccv8HLGI.s:1195   .text.amsReset:00000084 $d
     /tmp/ccv8HLGI.s:1201   .text.initAMS:00000000 $t
     /tmp/ccv8HLGI.s:1207   .text.initAMS:00000000 initAMS
     /tmp/ccv8HLGI.s:1245   .text.initAMS:00000018 $d
     /tmp/ccv8HLGI.s:1941   .bss.numberofauxchannels:00000000 numberofauxchannels
     /tmp/ccv8HLGI.s:1251   .text.amsCheckUnderOverVoltage:00000000 $t
     /tmp/ccv8HLGI.s:1257   .text.amsCheckUnderOverVoltage:00000000 amsCheckUnderOverVoltage
     /tmp/ccv8HLGI.s:1366   .text.amsCheckUnderOverVoltage:00000068 $d
     /tmp/ccv8HLGI.s:1371   .text.amsClearAux:00000000 $t
     /tmp/ccv8HLGI.s:1377   .text.amsClearAux:00000000 amsClearAux
     /tmp/ccv8HLGI.s:1405   .text.amsClearCells:00000000 $t
     /tmp/ccv8HLGI.s:1411   .text.amsClearCells:00000000 amsClearCells
     /tmp/ccv8HLGI.s:1439   .text.amsReadCellVoltages:00000000 $t
     /tmp/ccv8HLGI.s:1445   .text.amsReadCellVoltages:00000000 amsReadCellVoltages
     /tmp/ccv8HLGI.s:1902   .text.amsReadCellVoltages:00000338 $d
     /tmp/ccv8HLGI.s:1910   .text.amsCellMeasurement:00000000 $t
     /tmp/ccv8HLGI.s:1916   .text.amsCellMeasurement:00000000 amsCellMeasurement
     /tmp/ccv8HLGI.s:1942   .bss.numberofauxchannels:00000000 $d
     /tmp/ccv8HLGI.s:1948   .bss.numberofcells:00000000 $d

UNDEFINED SYMBOLS
readCMD
__aeabi_i2d
__aeabi_dmul
__aeabi_dadd
__aeabi_d2iz
__aeabi_d2uiz
pollCMD
writeCMD
mcuDelay
adbmsDriverInit
