ARM GAS /tmp/ccKQpHxH.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 .LFB131: 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 **** 10:Core/Src/ADBMS_Abstraction.c **** 11:Core/Src/ADBMS_Abstraction.c **** 12:Core/Src/ADBMS_Abstraction.c **** uint8 numberofcells; 13:Core/Src/ADBMS_Abstraction.c **** uint8 numberofauxchannels; 14:Core/Src/ADBMS_Abstraction.c **** 15:Core/Src/ADBMS_Abstraction.c **** uint8 initAMS(SPI_HandleTypeDef* hspi, uint8 numofcells, uint8 numofaux) 16:Core/Src/ADBMS_Abstraction.c **** { 17:Core/Src/ADBMS_Abstraction.c **** adbmsDriverInit(hspi); 18:Core/Src/ADBMS_Abstraction.c **** numberofcells = numofcells; 19:Core/Src/ADBMS_Abstraction.c **** numberofauxchannels = numofaux; 20:Core/Src/ADBMS_Abstraction.c **** 21:Core/Src/ADBMS_Abstraction.c **** 22:Core/Src/ADBMS_Abstraction.c **** amsWakeUp(); 23:Core/Src/ADBMS_Abstraction.c **** amsStopBalancing(); 24:Core/Src/ADBMS_Abstraction.c **** amsConfigOverVoltage(DEFAULT_OV); 25:Core/Src/ADBMS_Abstraction.c **** amsConfigUnderVoltage(DEFAULT_UV); 26:Core/Src/ADBMS_Abstraction.c **** amsConfigAuxMeasurement(0xFFFF); 27:Core/Src/ADBMS_Abstraction.c **** 28:Core/Src/ADBMS_Abstraction.c **** return 0; 29:Core/Src/ADBMS_Abstraction.c **** } 30:Core/Src/ADBMS_Abstraction.c **** ARM GAS /tmp/ccKQpHxH.s page 2 31:Core/Src/ADBMS_Abstraction.c **** uint8 amsWakeUp() 32:Core/Src/ADBMS_Abstraction.c **** { 29 .loc 1 32 1 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 33:Core/Src/ADBMS_Abstraction.c **** uint8 buf[6]; 38 .loc 1 33 2 view .LVU1 34:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCFGA, buf, 6); 39 .loc 1 34 2 view .LVU2 40 0004 0622 movs r2, #6 41 0006 6946 mov r1, sp 42 0008 0220 movs r0, #2 43 000a FFF7FEFF bl readCMD 44 .LVL0: 35:Core/Src/ADBMS_Abstraction.c **** return 0; 45 .loc 1 35 2 view .LVU3 36:Core/Src/ADBMS_Abstraction.c **** } 46 .loc 1 36 1 is_stmt 0 view .LVU4 47 000e 0020 movs r0, #0 48 0010 03B0 add sp, sp, #12 49 .cfi_def_cfa_offset 4 50 @ sp needed 51 0012 5DF804FB ldr pc, [sp], #4 52 .cfi_endproc 53 .LFE131: 55 .section .text.amsConfigCellMeasurement,"ax",%progbits 56 .align 1 57 .global amsConfigCellMeasurement 58 .syntax unified 59 .thumb 60 .thumb_func 62 amsConfigCellMeasurement: 63 .LVL1: 64 .LFB133: 37:Core/Src/ADBMS_Abstraction.c **** 38:Core/Src/ADBMS_Abstraction.c **** uint8 amsCellMeasurement(Cell_Module *module) 39:Core/Src/ADBMS_Abstraction.c **** { 40:Core/Src/ADBMS_Abstraction.c **** uint8_t rxbuffer[CV_GROUP_A_SIZE]; 41:Core/Src/ADBMS_Abstraction.c **** writeCMD((ADCV | CH000 | MD10), rxbuffer, 0); 42:Core/Src/ADBMS_Abstraction.c **** mcuDelay(5); 43:Core/Src/ADBMS_Abstraction.c **** amsReadCellVoltages(module); 44:Core/Src/ADBMS_Abstraction.c **** return 0; 45:Core/Src/ADBMS_Abstraction.c **** } 46:Core/Src/ADBMS_Abstraction.c **** 47:Core/Src/ADBMS_Abstraction.c **** uint8 amsConfigCellMeasurement(uint8 numberofChannels) 48:Core/Src/ADBMS_Abstraction.c **** { 65 .loc 1 48 1 is_stmt 1 view -0 66 .cfi_startproc 67 @ args = 0, pretend = 0, frame = 0 68 @ frame_needed = 0, uses_anonymous_args = 0 69 @ link register save eliminated. ARM GAS /tmp/ccKQpHxH.s page 3 49:Core/Src/ADBMS_Abstraction.c **** numberofcells = numberofChannels; 70 .loc 1 49 2 view .LVU6 71 .loc 1 49 16 is_stmt 0 view .LVU7 72 0000 014B ldr r3, .L4 73 0002 1870 strb r0, [r3] 50:Core/Src/ADBMS_Abstraction.c **** return 0; 74 .loc 1 50 2 is_stmt 1 view .LVU8 51:Core/Src/ADBMS_Abstraction.c **** } 75 .loc 1 51 1 is_stmt 0 view .LVU9 76 0004 0020 movs r0, #0 77 .LVL2: 78 .loc 1 51 1 view .LVU10 79 0006 7047 bx lr 80 .L5: 81 .align 2 82 .L4: 83 0008 00000000 .word numberofcells 84 .cfi_endproc 85 .LFE133: 87 .section .text.amsAuxMeasurement,"ax",%progbits 88 .align 1 89 .global amsAuxMeasurement 90 .syntax unified 91 .thumb 92 .thumb_func 94 amsAuxMeasurement: 95 .LVL3: 96 .LFB134: 52:Core/Src/ADBMS_Abstraction.c **** 53:Core/Src/ADBMS_Abstraction.c **** uint8 amsAuxMeasurement(Cell_Module *module) 54:Core/Src/ADBMS_Abstraction.c **** { 97 .loc 1 54 1 is_stmt 1 view -0 98 .cfi_startproc 99 @ args = 0, pretend = 0, frame = 8 100 @ frame_needed = 0, uses_anonymous_args = 0 101 .loc 1 54 1 is_stmt 0 view .LVU12 102 0000 10B5 push {r4, lr} 103 .cfi_def_cfa_offset 8 104 .cfi_offset 4, -8 105 .cfi_offset 14, -4 106 0002 82B0 sub sp, sp, #8 107 .cfi_def_cfa_offset 16 108 0004 0446 mov r4, r0 55:Core/Src/ADBMS_Abstraction.c **** uint8 args; 109 .loc 1 55 2 is_stmt 1 view .LVU13 56:Core/Src/ADBMS_Abstraction.c **** uint8 rxbuf[AUX_GROUP_A_SIZE]; 110 .loc 1 56 2 view .LVU14 57:Core/Src/ADBMS_Abstraction.c **** writeCMD(ADAX | MD01 | CHG000, &args, 0); 111 .loc 1 57 2 view .LVU15 112 0006 0022 movs r2, #0 113 0008 0DF10701 add r1, sp, #7 114 000c 4FF49C60 mov r0, #1248 115 .LVL4: 116 .loc 1 57 2 is_stmt 0 view .LVU16 117 0010 FFF7FEFF bl writeCMD 118 .LVL5: 58:Core/Src/ADBMS_Abstraction.c **** ARM GAS /tmp/ccKQpHxH.s page 4 59:Core/Src/ADBMS_Abstraction.c **** mcuDelay(5); 119 .loc 1 59 2 is_stmt 1 view .LVU17 120 0014 0520 movs r0, #5 121 0016 FFF7FEFF bl mcuDelay 122 .LVL6: 60:Core/Src/ADBMS_Abstraction.c **** 61:Core/Src/ADBMS_Abstraction.c **** readCMD(RDAUXA, rxbuf, AUX_GROUP_A_SIZE); 123 .loc 1 61 2 view .LVU18 124 001a 0622 movs r2, #6 125 001c 6946 mov r1, sp 126 001e 0C20 movs r0, #12 127 0020 FFF7FEFF bl readCMD 128 .LVL7: 62:Core/Src/ADBMS_Abstraction.c **** 63:Core/Src/ADBMS_Abstraction.c **** module->auxVoltages[0] = rxbuf[0] | (rxbuf[1]<<8); 129 .loc 1 63 2 view .LVU19 130 .loc 1 63 32 is_stmt 0 view .LVU20 131 0024 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 132 .loc 1 63 44 view .LVU21 133 0028 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 134 .loc 1 63 36 view .LVU22 135 002c 43EA0223 orr r3, r3, r2, lsl #8 136 .loc 1 63 25 view .LVU23 137 0030 A384 strh r3, [r4, #36] @ movhi 64:Core/Src/ADBMS_Abstraction.c **** module->auxVoltages[1] = rxbuf[2] | (rxbuf[3]<<8); 138 .loc 1 64 2 is_stmt 1 view .LVU24 139 .loc 1 64 32 is_stmt 0 view .LVU25 140 0032 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 141 .loc 1 64 44 view .LVU26 142 0036 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 143 .loc 1 64 36 view .LVU27 144 003a 43EA0223 orr r3, r3, r2, lsl #8 145 .loc 1 64 25 view .LVU28 146 003e E384 strh r3, [r4, #38] @ movhi 65:Core/Src/ADBMS_Abstraction.c **** module->auxVoltages[2] = rxbuf[4] | (rxbuf[5]<<8); 147 .loc 1 65 2 is_stmt 1 view .LVU29 148 .loc 1 65 32 is_stmt 0 view .LVU30 149 0040 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 150 .loc 1 65 44 view .LVU31 151 0044 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 152 .loc 1 65 36 view .LVU32 153 0048 43EA0223 orr r3, r3, r2, lsl #8 154 .loc 1 65 25 view .LVU33 155 004c 2385 strh r3, [r4, #40] @ movhi 66:Core/Src/ADBMS_Abstraction.c **** 67:Core/Src/ADBMS_Abstraction.c **** readCMD(RDAUXB, rxbuf, AUX_GROUP_A_SIZE); 156 .loc 1 67 2 is_stmt 1 view .LVU34 157 004e 0622 movs r2, #6 158 0050 6946 mov r1, sp 159 0052 0E20 movs r0, #14 160 0054 FFF7FEFF bl readCMD 161 .LVL8: 68:Core/Src/ADBMS_Abstraction.c **** 69:Core/Src/ADBMS_Abstraction.c **** module->auxVoltages[3] = rxbuf[0] | (rxbuf[1]<<8); 162 .loc 1 69 2 view .LVU35 163 .loc 1 69 32 is_stmt 0 view .LVU36 164 0058 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 ARM GAS /tmp/ccKQpHxH.s page 5 165 .loc 1 69 44 view .LVU37 166 005c 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 167 .loc 1 69 36 view .LVU38 168 0060 43EA0223 orr r3, r3, r2, lsl #8 169 .loc 1 69 25 view .LVU39 170 0064 6385 strh r3, [r4, #42] @ movhi 70:Core/Src/ADBMS_Abstraction.c **** module->auxVoltages[4] = rxbuf[2] | (rxbuf[3]<<8); 171 .loc 1 70 2 is_stmt 1 view .LVU40 172 .loc 1 70 32 is_stmt 0 view .LVU41 173 0066 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 174 .loc 1 70 44 view .LVU42 175 006a 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 176 .loc 1 70 36 view .LVU43 177 006e 43EA0223 orr r3, r3, r2, lsl #8 178 .loc 1 70 25 view .LVU44 179 0072 A385 strh r3, [r4, #44] @ movhi 71:Core/Src/ADBMS_Abstraction.c **** module->refVoltage = rxbuf[4] | (rxbuf[5]<<8); 180 .loc 1 71 2 is_stmt 1 view .LVU45 181 .loc 1 71 28 is_stmt 0 view .LVU46 182 0074 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 183 .loc 1 71 40 view .LVU47 184 0078 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 185 .loc 1 71 32 view .LVU48 186 007c 43EA0223 orr r3, r3, r2, lsl #8 187 .loc 1 71 21 view .LVU49 188 0080 A4F84030 strh r3, [r4, #64] @ movhi 72:Core/Src/ADBMS_Abstraction.c **** 73:Core/Src/ADBMS_Abstraction.c **** readCMD(RDAUXC, rxbuf, AUX_GROUP_A_SIZE); 189 .loc 1 73 2 is_stmt 1 view .LVU50 190 0084 0622 movs r2, #6 191 0086 6946 mov r1, sp 192 0088 0D20 movs r0, #13 193 008a FFF7FEFF bl readCMD 194 .LVL9: 74:Core/Src/ADBMS_Abstraction.c **** 75:Core/Src/ADBMS_Abstraction.c **** module->auxVoltages[5] = rxbuf[0] | (rxbuf[1]<<8); 195 .loc 1 75 2 view .LVU51 196 .loc 1 75 32 is_stmt 0 view .LVU52 197 008e 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 198 .loc 1 75 44 view .LVU53 199 0092 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 200 .loc 1 75 36 view .LVU54 201 0096 43EA0223 orr r3, r3, r2, lsl #8 202 .loc 1 75 25 view .LVU55 203 009a E385 strh r3, [r4, #46] @ movhi 76:Core/Src/ADBMS_Abstraction.c **** module->auxVoltages[6] = rxbuf[2] | (rxbuf[3]<<8); 204 .loc 1 76 2 is_stmt 1 view .LVU56 205 .loc 1 76 32 is_stmt 0 view .LVU57 206 009c 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 207 .loc 1 76 44 view .LVU58 208 00a0 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 209 .loc 1 76 36 view .LVU59 210 00a4 43EA0223 orr r3, r3, r2, lsl #8 211 .loc 1 76 25 view .LVU60 212 00a8 2386 strh r3, [r4, #48] @ movhi 77:Core/Src/ADBMS_Abstraction.c **** module->auxVoltages[7] = rxbuf[4] | (rxbuf[5]<<8); 213 .loc 1 77 2 is_stmt 1 view .LVU61 ARM GAS /tmp/ccKQpHxH.s page 6 214 .loc 1 77 32 is_stmt 0 view .LVU62 215 00aa 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 216 .loc 1 77 44 view .LVU63 217 00ae 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 218 .loc 1 77 36 view .LVU64 219 00b2 43EA0223 orr r3, r3, r2, lsl #8 220 .loc 1 77 25 view .LVU65 221 00b6 6386 strh r3, [r4, #50] @ movhi 78:Core/Src/ADBMS_Abstraction.c **** 79:Core/Src/ADBMS_Abstraction.c **** readCMD(RDAUXD, rxbuf, AUX_GROUP_A_SIZE); 222 .loc 1 79 2 is_stmt 1 view .LVU66 223 00b8 0622 movs r2, #6 224 00ba 6946 mov r1, sp 225 00bc 0F20 movs r0, #15 226 00be FFF7FEFF bl readCMD 227 .LVL10: 80:Core/Src/ADBMS_Abstraction.c **** 81:Core/Src/ADBMS_Abstraction.c **** module->auxVoltages[8] = rxbuf[0] | (rxbuf[1]<<8); 228 .loc 1 81 2 view .LVU67 229 .loc 1 81 32 is_stmt 0 view .LVU68 230 00c2 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 231 .loc 1 81 44 view .LVU69 232 00c6 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 233 .loc 1 81 36 view .LVU70 234 00ca 43EA0223 orr r3, r3, r2, lsl #8 235 .loc 1 81 25 view .LVU71 236 00ce A386 strh r3, [r4, #52] @ movhi 82:Core/Src/ADBMS_Abstraction.c **** 83:Core/Src/ADBMS_Abstraction.c **** return 0; 237 .loc 1 83 2 is_stmt 1 view .LVU72 84:Core/Src/ADBMS_Abstraction.c **** } 238 .loc 1 84 1 is_stmt 0 view .LVU73 239 00d0 0020 movs r0, #0 240 00d2 02B0 add sp, sp, #8 241 .cfi_def_cfa_offset 8 242 @ sp needed 243 00d4 10BD pop {r4, pc} 244 .loc 1 84 1 view .LVU74 245 .cfi_endproc 246 .LFE134: 248 .section .text.amsInternalStatusMeasurement,"ax",%progbits 249 .align 1 250 .global amsInternalStatusMeasurement 251 .syntax unified 252 .thumb 253 .thumb_func 255 amsInternalStatusMeasurement: 256 .LVL11: 257 .LFB135: 85:Core/Src/ADBMS_Abstraction.c **** 86:Core/Src/ADBMS_Abstraction.c **** uint8 amsInternalStatusMeasurement(Cell_Module *module) 87:Core/Src/ADBMS_Abstraction.c **** { 258 .loc 1 87 1 is_stmt 1 view -0 259 .cfi_startproc 260 @ args = 0, pretend = 0, frame = 8 261 @ frame_needed = 0, uses_anonymous_args = 0 262 .loc 1 87 1 is_stmt 0 view .LVU76 ARM GAS /tmp/ccKQpHxH.s page 7 263 0000 10B5 push {r4, lr} 264 .cfi_def_cfa_offset 8 265 .cfi_offset 4, -8 266 .cfi_offset 14, -4 267 0002 82B0 sub sp, sp, #8 268 .cfi_def_cfa_offset 16 269 0004 0446 mov r4, r0 88:Core/Src/ADBMS_Abstraction.c **** uint8 rxbuffer[STATUS_GROUP_A_SIZE]; 270 .loc 1 88 2 is_stmt 1 view .LVU77 89:Core/Src/ADBMS_Abstraction.c **** writeCMD(ADSTAT | MD01 | CHST000, rxbuffer, STATUS_GROUP_A_SIZE); 271 .loc 1 89 2 view .LVU78 272 0006 0622 movs r2, #6 273 0008 6946 mov r1, sp 274 000a 4FF49D60 mov r0, #1256 275 .LVL12: 276 .loc 1 89 2 is_stmt 0 view .LVU79 277 000e FFF7FEFF bl writeCMD 278 .LVL13: 90:Core/Src/ADBMS_Abstraction.c **** mcuDelay(5); 279 .loc 1 90 2 is_stmt 1 view .LVU80 280 0012 0520 movs r0, #5 281 0014 FFF7FEFF bl mcuDelay 282 .LVL14: 91:Core/Src/ADBMS_Abstraction.c **** 92:Core/Src/ADBMS_Abstraction.c **** readCMD(RDSTATA, rxbuffer, STATUS_GROUP_A_SIZE); 283 .loc 1 92 2 view .LVU81 284 0018 0622 movs r2, #6 285 001a 6946 mov r1, sp 286 001c 1020 movs r0, #16 287 001e FFF7FEFF bl readCMD 288 .LVL15: 93:Core/Src/ADBMS_Abstraction.c **** 94:Core/Src/ADBMS_Abstraction.c **** module->sumOfCellMeasurements = rxbuffer[0] | (rxbuffer[1]<<8); 289 .loc 1 94 2 view .LVU82 290 .loc 1 94 42 is_stmt 0 view .LVU83 291 0022 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 292 .loc 1 94 57 view .LVU84 293 0026 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 294 .loc 1 94 46 view .LVU85 295 002a 43EA0223 orr r3, r3, r2, lsl #8 296 .loc 1 94 32 view .LVU86 297 002e E387 strh r3, [r4, #62] @ movhi 95:Core/Src/ADBMS_Abstraction.c **** module->internalDieTemp = rxbuffer[2] | (rxbuffer[3]<<8); 298 .loc 1 95 2 is_stmt 1 view .LVU87 299 .loc 1 95 39 is_stmt 0 view .LVU88 300 0030 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 301 .loc 1 95 54 view .LVU89 302 0034 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 303 .loc 1 95 43 view .LVU90 304 0038 43EA0223 orr r3, r3, r2, lsl #8 305 .loc 1 95 29 view .LVU91 306 003c 2387 strh r3, [r4, #56] @ movhi 96:Core/Src/ADBMS_Abstraction.c **** module->analogSupplyVoltage = rxbuffer[4] | (rxbuffer[5]<<8); 307 .loc 1 96 2 is_stmt 1 view .LVU92 308 .loc 1 96 42 is_stmt 0 view .LVU93 309 003e 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 310 .loc 1 96 57 view .LVU94 ARM GAS /tmp/ccKQpHxH.s page 8 311 0042 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 312 .loc 1 96 46 view .LVU95 313 0046 43EA0223 orr r3, r3, r2, lsl #8 314 .loc 1 96 32 view .LVU96 315 004a 6387 strh r3, [r4, #58] @ movhi 97:Core/Src/ADBMS_Abstraction.c **** 98:Core/Src/ADBMS_Abstraction.c **** readCMD(RDSTATB, rxbuffer, STATUS_GROUP_B_SIZE); 316 .loc 1 98 2 is_stmt 1 view .LVU97 317 004c 0622 movs r2, #6 318 004e 6946 mov r1, sp 319 0050 1220 movs r0, #18 320 0052 FFF7FEFF bl readCMD 321 .LVL16: 99:Core/Src/ADBMS_Abstraction.c **** module->digitalSupplyVoltage = rxbuffer[0] | (rxbuffer[1]<<8); 322 .loc 1 99 2 view .LVU98 323 .loc 1 99 41 is_stmt 0 view .LVU99 324 0056 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 325 .loc 1 99 56 view .LVU100 326 005a 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 327 .loc 1 99 45 view .LVU101 328 005e 43EA0223 orr r3, r3, r2, lsl #8 329 .loc 1 99 31 view .LVU102 330 0062 A387 strh r3, [r4, #60] @ movhi 100:Core/Src/ADBMS_Abstraction.c **** 101:Core/Src/ADBMS_Abstraction.c **** 102:Core/Src/ADBMS_Abstraction.c **** return 0; 331 .loc 1 102 2 is_stmt 1 view .LVU103 103:Core/Src/ADBMS_Abstraction.c **** } 332 .loc 1 103 1 is_stmt 0 view .LVU104 333 0064 0020 movs r0, #0 334 0066 02B0 add sp, sp, #8 335 .cfi_def_cfa_offset 8 336 @ sp needed 337 0068 10BD pop {r4, pc} 338 .loc 1 103 1 view .LVU105 339 .cfi_endproc 340 .LFE135: 342 .section .text.amsConfigAuxMeasurement,"ax",%progbits 343 .align 1 344 .global amsConfigAuxMeasurement 345 .syntax unified 346 .thumb 347 .thumb_func 349 amsConfigAuxMeasurement: 350 .LVL17: 351 .LFB136: 104:Core/Src/ADBMS_Abstraction.c **** 105:Core/Src/ADBMS_Abstraction.c **** uint8 amsConfigAuxMeasurement(uint16 Channels) 106:Core/Src/ADBMS_Abstraction.c **** { 352 .loc 1 106 1 is_stmt 1 view -0 353 .cfi_startproc 354 @ args = 0, pretend = 0, frame = 8 355 @ frame_needed = 0, uses_anonymous_args = 0 356 .loc 1 106 1 is_stmt 0 view .LVU107 357 0000 00B5 push {lr} 358 .cfi_def_cfa_offset 4 359 .cfi_offset 14, -4 ARM GAS /tmp/ccKQpHxH.s page 9 360 0002 83B0 sub sp, sp, #12 361 .cfi_def_cfa_offset 16 107:Core/Src/ADBMS_Abstraction.c **** uint8 buf[CFG_GROUP_A_SIZE]; 362 .loc 1 107 2 is_stmt 1 view .LVU108 108:Core/Src/ADBMS_Abstraction.c **** 109:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCFGA, buf, CFG_GROUP_A_SIZE); 363 .loc 1 109 2 view .LVU109 364 0004 0622 movs r2, #6 365 0006 6946 mov r1, sp 366 0008 0220 movs r0, #2 367 .LVL18: 368 .loc 1 109 2 is_stmt 0 view .LVU110 369 000a FFF7FEFF bl readCMD 370 .LVL19: 110:Core/Src/ADBMS_Abstraction.c **** buf[0] |= 0xF8; 371 .loc 1 110 2 is_stmt 1 view .LVU111 372 .loc 1 110 5 is_stmt 0 view .LVU112 373 000e 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 374 .loc 1 110 9 view .LVU113 375 0012 63F00703 orn r3, r3, #7 376 0016 8DF80030 strb r3, [sp] 111:Core/Src/ADBMS_Abstraction.c **** writeCMD(WRCFGA, buf, CFG_GROUP_A_SIZE); 377 .loc 1 111 2 is_stmt 1 view .LVU114 378 001a 0622 movs r2, #6 379 001c 6946 mov r1, sp 380 001e 0120 movs r0, #1 381 0020 FFF7FEFF bl writeCMD 382 .LVL20: 112:Core/Src/ADBMS_Abstraction.c **** 113:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCFGB, buf, CFG_GROUP_B_SIZE); 383 .loc 1 113 2 view .LVU115 384 0024 0622 movs r2, #6 385 0026 6946 mov r1, sp 386 0028 2620 movs r0, #38 387 002a FFF7FEFF bl readCMD 388 .LVL21: 114:Core/Src/ADBMS_Abstraction.c **** buf[0] |= 0x0F; 389 .loc 1 114 2 view .LVU116 390 .loc 1 114 5 is_stmt 0 view .LVU117 391 002e 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 392 .loc 1 114 9 view .LVU118 393 0032 43F00F03 orr r3, r3, #15 394 0036 8DF80030 strb r3, [sp] 115:Core/Src/ADBMS_Abstraction.c **** writeCMD(WRCFGB, buf, CFG_GROUP_B_SIZE); 395 .loc 1 115 2 is_stmt 1 view .LVU119 396 003a 0622 movs r2, #6 397 003c 6946 mov r1, sp 398 003e 2420 movs r0, #36 399 0040 FFF7FEFF bl writeCMD 400 .LVL22: 116:Core/Src/ADBMS_Abstraction.c **** return 0; 401 .loc 1 116 2 view .LVU120 117:Core/Src/ADBMS_Abstraction.c **** } 402 .loc 1 117 1 is_stmt 0 view .LVU121 403 0044 0020 movs r0, #0 404 0046 03B0 add sp, sp, #12 405 .cfi_def_cfa_offset 4 ARM GAS /tmp/ccKQpHxH.s page 10 406 @ sp needed 407 0048 5DF804FB ldr pc, [sp], #4 408 .cfi_endproc 409 .LFE136: 411 .section .text.amsConfigGPIO,"ax",%progbits 412 .align 1 413 .global amsConfigGPIO 414 .syntax unified 415 .thumb 416 .thumb_func 418 amsConfigGPIO: 419 .LVL23: 420 .LFB137: 118:Core/Src/ADBMS_Abstraction.c **** 119:Core/Src/ADBMS_Abstraction.c **** uint8 amsConfigGPIO(uint16 gpios) 120:Core/Src/ADBMS_Abstraction.c **** { 421 .loc 1 120 1 is_stmt 1 view -0 422 .cfi_startproc 423 @ args = 0, pretend = 0, frame = 0 424 @ frame_needed = 0, uses_anonymous_args = 0 425 @ link register save eliminated. 121:Core/Src/ADBMS_Abstraction.c **** return 0; 426 .loc 1 121 2 view .LVU123 122:Core/Src/ADBMS_Abstraction.c **** } 427 .loc 1 122 1 is_stmt 0 view .LVU124 428 0000 0020 movs r0, #0 429 .LVL24: 430 .loc 1 122 1 view .LVU125 431 0002 7047 bx lr 432 .cfi_endproc 433 .LFE137: 435 .section .text.amsSetGPIO,"ax",%progbits 436 .align 1 437 .global amsSetGPIO 438 .syntax unified 439 .thumb 440 .thumb_func 442 amsSetGPIO: 443 .LVL25: 444 .LFB138: 123:Core/Src/ADBMS_Abstraction.c **** 124:Core/Src/ADBMS_Abstraction.c **** uint8 amsSetGPIO(uint16 gpios) 125:Core/Src/ADBMS_Abstraction.c **** { 445 .loc 1 125 1 is_stmt 1 view -0 446 .cfi_startproc 447 @ args = 0, pretend = 0, frame = 0 448 @ frame_needed = 0, uses_anonymous_args = 0 449 @ link register save eliminated. 126:Core/Src/ADBMS_Abstraction.c **** return 0; 450 .loc 1 126 2 view .LVU127 127:Core/Src/ADBMS_Abstraction.c **** } 451 .loc 1 127 1 is_stmt 0 view .LVU128 452 0000 0020 movs r0, #0 453 .LVL26: 454 .loc 1 127 1 view .LVU129 455 0002 7047 bx lr 456 .cfi_endproc ARM GAS /tmp/ccKQpHxH.s page 11 457 .LFE138: 459 .section .text.readGPIO,"ax",%progbits 460 .align 1 461 .global readGPIO 462 .syntax unified 463 .thumb 464 .thumb_func 466 readGPIO: 467 .LVL27: 468 .LFB139: 128:Core/Src/ADBMS_Abstraction.c **** 129:Core/Src/ADBMS_Abstraction.c **** uint8 readGPIO(Cell_Module* module) 130:Core/Src/ADBMS_Abstraction.c **** { 469 .loc 1 130 1 is_stmt 1 view -0 470 .cfi_startproc 471 @ args = 0, pretend = 0, frame = 0 472 @ frame_needed = 0, uses_anonymous_args = 0 473 @ link register save eliminated. 131:Core/Src/ADBMS_Abstraction.c **** return 0; 474 .loc 1 131 2 view .LVU131 132:Core/Src/ADBMS_Abstraction.c **** } 475 .loc 1 132 1 is_stmt 0 view .LVU132 476 0000 0020 movs r0, #0 477 .LVL28: 478 .loc 1 132 1 view .LVU133 479 0002 7047 bx lr 480 .cfi_endproc 481 .LFE139: 483 .section .text.amsConfigBalancing,"ax",%progbits 484 .align 1 485 .global amsConfigBalancing 486 .syntax unified 487 .thumb 488 .thumb_func 490 amsConfigBalancing: 491 .LVL29: 492 .LFB140: 133:Core/Src/ADBMS_Abstraction.c **** 134:Core/Src/ADBMS_Abstraction.c **** uint8 amsConfigBalancing(uint32 Channels) 135:Core/Src/ADBMS_Abstraction.c **** { 493 .loc 1 135 1 is_stmt 1 view -0 494 .cfi_startproc 495 @ args = 0, pretend = 0, frame = 8 496 @ frame_needed = 0, uses_anonymous_args = 0 497 .loc 1 135 1 is_stmt 0 view .LVU135 498 0000 30B5 push {r4, r5, lr} 499 .cfi_def_cfa_offset 12 500 .cfi_offset 4, -12 501 .cfi_offset 5, -8 502 .cfi_offset 14, -4 503 0002 83B0 sub sp, sp, #12 504 .cfi_def_cfa_offset 24 505 0004 0446 mov r4, r0 136:Core/Src/ADBMS_Abstraction.c **** 137:Core/Src/ADBMS_Abstraction.c **** uint8 regbuffer[CFG_GROUP_A_SIZE]; 506 .loc 1 137 2 is_stmt 1 view .LVU136 138:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCFGA, regbuffer, CFG_GROUP_A_SIZE); ARM GAS /tmp/ccKQpHxH.s page 12 507 .loc 1 138 2 view .LVU137 508 0006 0622 movs r2, #6 509 0008 6946 mov r1, sp 510 000a 0220 movs r0, #2 511 .LVL30: 512 .loc 1 138 2 is_stmt 0 view .LVU138 513 000c FFF7FEFF bl readCMD 514 .LVL31: 139:Core/Src/ADBMS_Abstraction.c **** 140:Core/Src/ADBMS_Abstraction.c **** regbuffer[4] = Channels & 0xFF; 515 .loc 1 140 2 is_stmt 1 view .LVU139 516 .loc 1 140 15 is_stmt 0 view .LVU140 517 0010 8DF80440 strb r4, [sp, #4] 141:Core/Src/ADBMS_Abstraction.c **** regbuffer[5] &= 0xF0; 518 .loc 1 141 2 is_stmt 1 view .LVU141 519 .loc 1 141 11 is_stmt 0 view .LVU142 520 0014 9DF80530 ldrb r3, [sp, #5] @ zero_extendqisi2 521 .loc 1 141 15 view .LVU143 522 0018 03F0F003 and r3, r3, #240 523 001c 8DF80530 strb r3, [sp, #5] 142:Core/Src/ADBMS_Abstraction.c **** regbuffer[5] |= (Channels>>8) & 0x0F; 524 .loc 1 142 2 is_stmt 1 view .LVU144 525 .loc 1 142 32 is_stmt 0 view .LVU145 526 0020 C4F30725 ubfx r5, r4, #8, #8 527 0024 C4F30322 ubfx r2, r4, #8, #4 528 .loc 1 142 15 view .LVU146 529 0028 1343 orrs r3, r3, r2 530 002a 8DF80530 strb r3, [sp, #5] 143:Core/Src/ADBMS_Abstraction.c **** writeCMD(WRCFGA, regbuffer, CFG_GROUP_A_SIZE); 531 .loc 1 143 2 is_stmt 1 view .LVU147 532 002e 0622 movs r2, #6 533 0030 6946 mov r1, sp 534 0032 0120 movs r0, #1 535 0034 FFF7FEFF bl writeCMD 536 .LVL32: 144:Core/Src/ADBMS_Abstraction.c **** 145:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCFGB, regbuffer, CFG_GROUP_B_SIZE); 537 .loc 1 145 2 view .LVU148 538 0038 0622 movs r2, #6 539 003a 6946 mov r1, sp 540 003c 2620 movs r0, #38 541 003e FFF7FEFF bl readCMD 542 .LVL33: 146:Core/Src/ADBMS_Abstraction.c **** regbuffer[0] &= 0x0F; 543 .loc 1 146 2 view .LVU149 544 .loc 1 146 11 is_stmt 0 view .LVU150 545 0042 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 546 .loc 1 146 15 view .LVU151 547 0046 03F00F03 and r3, r3, #15 548 004a 8DF80030 strb r3, [sp] 147:Core/Src/ADBMS_Abstraction.c **** regbuffer[0] |= (Channels>>8) & 0xF0; 549 .loc 1 147 2 is_stmt 1 view .LVU152 550 .loc 1 147 32 is_stmt 0 view .LVU153 551 004e 05F0F005 and r5, r5, #240 552 .loc 1 147 15 view .LVU154 553 0052 2B43 orrs r3, r3, r5 554 0054 8DF80030 strb r3, [sp] ARM GAS /tmp/ccKQpHxH.s page 13 148:Core/Src/ADBMS_Abstraction.c **** regbuffer[1] &= 0xFC; 555 .loc 1 148 2 is_stmt 1 view .LVU155 556 .loc 1 148 11 is_stmt 0 view .LVU156 557 0058 9DF80130 ldrb r3, [sp, #1] @ zero_extendqisi2 558 .loc 1 148 15 view .LVU157 559 005c 03F0FC03 and r3, r3, #252 560 0060 8DF80130 strb r3, [sp, #1] 149:Core/Src/ADBMS_Abstraction.c **** regbuffer[1] |= 0x03 & (Channels>>16); 561 .loc 1 149 2 is_stmt 1 view .LVU158 562 .loc 1 149 23 is_stmt 0 view .LVU159 563 0064 C4F30144 ubfx r4, r4, #16, #2 564 .LVL34: 565 .loc 1 149 15 view .LVU160 566 0068 2343 orrs r3, r3, r4 567 006a 8DF80130 strb r3, [sp, #1] 150:Core/Src/ADBMS_Abstraction.c **** writeCMD(WRCFGB, regbuffer, CFG_GROUP_B_SIZE); 568 .loc 1 150 2 is_stmt 1 view .LVU161 569 006e 0622 movs r2, #6 570 0070 6946 mov r1, sp 571 0072 2420 movs r0, #36 572 0074 FFF7FEFF bl writeCMD 573 .LVL35: 151:Core/Src/ADBMS_Abstraction.c **** 152:Core/Src/ADBMS_Abstraction.c **** return 0; 574 .loc 1 152 2 view .LVU162 153:Core/Src/ADBMS_Abstraction.c **** } 575 .loc 1 153 1 is_stmt 0 view .LVU163 576 0078 0020 movs r0, #0 577 007a 03B0 add sp, sp, #12 578 .cfi_def_cfa_offset 12 579 @ sp needed 580 007c 30BD pop {r4, r5, pc} 581 .cfi_endproc 582 .LFE140: 584 .section .text.amsStartBalancing,"ax",%progbits 585 .align 1 586 .global amsStartBalancing 587 .syntax unified 588 .thumb 589 .thumb_func 591 amsStartBalancing: 592 .LVL36: 593 .LFB141: 154:Core/Src/ADBMS_Abstraction.c **** 155:Core/Src/ADBMS_Abstraction.c **** uint8 amsStartBalancing(uint8 dutyCycle) 156:Core/Src/ADBMS_Abstraction.c **** { 594 .loc 1 156 1 is_stmt 1 view -0 595 .cfi_startproc 596 @ args = 0, pretend = 0, frame = 0 597 @ frame_needed = 0, uses_anonymous_args = 0 598 .loc 1 156 1 is_stmt 0 view .LVU165 599 0000 08B5 push {r3, lr} 600 .cfi_def_cfa_offset 8 601 .cfi_offset 3, -8 602 .cfi_offset 14, -4 157:Core/Src/ADBMS_Abstraction.c **** writeCMD(UNMUTE, NULL, 0); 603 .loc 1 157 2 is_stmt 1 view .LVU166 ARM GAS /tmp/ccKQpHxH.s page 14 604 0002 0022 movs r2, #0 605 0004 1146 mov r1, r2 606 0006 2920 movs r0, #41 607 .LVL37: 608 .loc 1 157 2 is_stmt 0 view .LVU167 609 0008 FFF7FEFF bl writeCMD 610 .LVL38: 158:Core/Src/ADBMS_Abstraction.c **** return 0; 611 .loc 1 158 2 is_stmt 1 view .LVU168 159:Core/Src/ADBMS_Abstraction.c **** } 612 .loc 1 159 1 is_stmt 0 view .LVU169 613 000c 0020 movs r0, #0 614 000e 08BD pop {r3, pc} 615 .cfi_endproc 616 .LFE141: 618 .section .text.amsStopBalancing,"ax",%progbits 619 .align 1 620 .global amsStopBalancing 621 .syntax unified 622 .thumb 623 .thumb_func 625 amsStopBalancing: 626 .LFB142: 160:Core/Src/ADBMS_Abstraction.c **** 161:Core/Src/ADBMS_Abstraction.c **** uint8 amsStopBalancing() 162:Core/Src/ADBMS_Abstraction.c **** { 627 .loc 1 162 1 is_stmt 1 view -0 628 .cfi_startproc 629 @ args = 0, pretend = 0, frame = 0 630 @ frame_needed = 0, uses_anonymous_args = 0 631 0000 08B5 push {r3, lr} 632 .cfi_def_cfa_offset 8 633 .cfi_offset 3, -8 634 .cfi_offset 14, -4 163:Core/Src/ADBMS_Abstraction.c **** writeCMD(MUTE, NULL, 0); 635 .loc 1 163 2 view .LVU171 636 0002 0022 movs r2, #0 637 0004 1146 mov r1, r2 638 0006 2820 movs r0, #40 639 0008 FFF7FEFF bl writeCMD 640 .LVL39: 164:Core/Src/ADBMS_Abstraction.c **** return 0; 641 .loc 1 164 2 view .LVU172 165:Core/Src/ADBMS_Abstraction.c **** } 642 .loc 1 165 1 is_stmt 0 view .LVU173 643 000c 0020 movs r0, #0 644 000e 08BD pop {r3, pc} 645 .cfi_endproc 646 .LFE142: 648 .section .text.amsSelfTest,"ax",%progbits 649 .align 1 650 .global amsSelfTest 651 .syntax unified 652 .thumb 653 .thumb_func 655 amsSelfTest: 656 .LFB143: ARM GAS /tmp/ccKQpHxH.s page 15 166:Core/Src/ADBMS_Abstraction.c **** 167:Core/Src/ADBMS_Abstraction.c **** uint8 amsSelfTest() 168:Core/Src/ADBMS_Abstraction.c **** { 657 .loc 1 168 1 is_stmt 1 view -0 658 .cfi_startproc 659 @ args = 0, pretend = 0, frame = 0 660 @ frame_needed = 0, uses_anonymous_args = 0 661 @ link register save eliminated. 169:Core/Src/ADBMS_Abstraction.c **** return 0; 662 .loc 1 169 2 view .LVU175 170:Core/Src/ADBMS_Abstraction.c **** } 663 .loc 1 170 1 is_stmt 0 view .LVU176 664 0000 0020 movs r0, #0 665 0002 7047 bx lr 666 .cfi_endproc 667 .LFE143: 669 .section .text.amsConfigUnderVoltage,"ax",%progbits 670 .align 1 671 .global amsConfigUnderVoltage 672 .syntax unified 673 .thumb 674 .thumb_func 676 amsConfigUnderVoltage: 677 .LVL40: 678 .LFB144: 171:Core/Src/ADBMS_Abstraction.c **** 172:Core/Src/ADBMS_Abstraction.c **** 173:Core/Src/ADBMS_Abstraction.c **** 174:Core/Src/ADBMS_Abstraction.c **** uint8 amsConfigUnderVoltage(uint16 underVoltage) 175:Core/Src/ADBMS_Abstraction.c **** { 679 .loc 1 175 1 is_stmt 1 view -0 680 .cfi_startproc 681 @ args = 0, pretend = 0, frame = 8 682 @ frame_needed = 0, uses_anonymous_args = 0 683 .loc 1 175 1 is_stmt 0 view .LVU178 684 0000 10B5 push {r4, lr} 685 .cfi_def_cfa_offset 8 686 .cfi_offset 4, -8 687 .cfi_offset 14, -4 688 0002 82B0 sub sp, sp, #8 689 .cfi_def_cfa_offset 16 690 0004 0446 mov r4, r0 176:Core/Src/ADBMS_Abstraction.c **** uint8 buffer[CFG_GROUP_A_SIZE]; 691 .loc 1 176 2 is_stmt 1 view .LVU179 177:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCFGA, buffer, CFG_GROUP_A_SIZE); 692 .loc 1 177 2 view .LVU180 693 0006 0622 movs r2, #6 694 0008 6946 mov r1, sp 695 000a 0220 movs r0, #2 696 .LVL41: 697 .loc 1 177 2 is_stmt 0 view .LVU181 698 000c FFF7FEFF bl readCMD 699 .LVL42: 178:Core/Src/ADBMS_Abstraction.c **** 179:Core/Src/ADBMS_Abstraction.c **** buffer[1] = (uint8) underVoltage & 0xFF; 700 .loc 1 179 2 is_stmt 1 view .LVU182 701 .loc 1 179 12 is_stmt 0 view .LVU183 ARM GAS /tmp/ccKQpHxH.s page 16 702 0010 8DF80140 strb r4, [sp, #1] 180:Core/Src/ADBMS_Abstraction.c **** uint8 ovuv = buffer[2] & 0xF0; 703 .loc 1 180 2 is_stmt 1 view .LVU184 704 .loc 1 180 21 is_stmt 0 view .LVU185 705 0014 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 706 .loc 1 180 8 view .LVU186 707 0018 03F0F003 and r3, r3, #240 708 .LVL43: 181:Core/Src/ADBMS_Abstraction.c **** ovuv |= (uint8) (underVoltage >> 8) & 0x0F; 709 .loc 1 181 2 is_stmt 1 view .LVU187 710 .loc 1 181 38 is_stmt 0 view .LVU188 711 001c C4F30324 ubfx r4, r4, #8, #4 712 .loc 1 181 7 view .LVU189 713 0020 2343 orrs r3, r3, r4 714 .LVL44: 182:Core/Src/ADBMS_Abstraction.c **** buffer[2] = ovuv; 715 .loc 1 182 2 is_stmt 1 view .LVU190 716 .loc 1 182 12 is_stmt 0 view .LVU191 717 0022 8DF80230 strb r3, [sp, #2] 183:Core/Src/ADBMS_Abstraction.c **** 184:Core/Src/ADBMS_Abstraction.c **** writeCMD(WRCFGA, buffer, CFG_GROUP_A_SIZE); 718 .loc 1 184 2 is_stmt 1 view .LVU192 719 0026 0622 movs r2, #6 720 0028 6946 mov r1, sp 721 002a 0120 movs r0, #1 722 002c FFF7FEFF bl writeCMD 723 .LVL45: 185:Core/Src/ADBMS_Abstraction.c **** 186:Core/Src/ADBMS_Abstraction.c **** return 0; 724 .loc 1 186 2 view .LVU193 187:Core/Src/ADBMS_Abstraction.c **** } 725 .loc 1 187 1 is_stmt 0 view .LVU194 726 0030 0020 movs r0, #0 727 0032 02B0 add sp, sp, #8 728 .cfi_def_cfa_offset 8 729 @ sp needed 730 0034 10BD pop {r4, pc} 731 .cfi_endproc 732 .LFE144: 734 .section .text.amsCheckUnderOverVoltage,"ax",%progbits 735 .align 1 736 .global amsCheckUnderOverVoltage 737 .syntax unified 738 .thumb 739 .thumb_func 741 amsCheckUnderOverVoltage: 742 .LVL46: 743 .LFB145: 188:Core/Src/ADBMS_Abstraction.c **** 189:Core/Src/ADBMS_Abstraction.c **** uint8 amsCheckUnderOverVoltage(Cell_Module *module) 190:Core/Src/ADBMS_Abstraction.c **** { 744 .loc 1 190 1 is_stmt 1 view -0 745 .cfi_startproc 746 @ args = 0, pretend = 0, frame = 8 747 @ frame_needed = 0, uses_anonymous_args = 0 748 .loc 1 190 1 is_stmt 0 view .LVU196 749 0000 10B5 push {r4, lr} ARM GAS /tmp/ccKQpHxH.s page 17 750 .cfi_def_cfa_offset 8 751 .cfi_offset 4, -8 752 .cfi_offset 14, -4 753 0002 82B0 sub sp, sp, #8 754 .cfi_def_cfa_offset 16 755 0004 0446 mov r4, r0 191:Core/Src/ADBMS_Abstraction.c **** uint8 regbuffer[STATUS_GROUP_B_SIZE]; 756 .loc 1 191 2 is_stmt 1 view .LVU197 192:Core/Src/ADBMS_Abstraction.c **** uint32 overundervoltages = 0; 757 .loc 1 192 2 view .LVU198 758 .LVL47: 193:Core/Src/ADBMS_Abstraction.c **** readCMD(RDSTATB, regbuffer, STATUS_GROUP_B_SIZE); 759 .loc 1 193 2 view .LVU199 760 0006 0622 movs r2, #6 761 0008 6946 mov r1, sp 762 000a 1220 movs r0, #18 763 .LVL48: 764 .loc 1 193 2 is_stmt 0 view .LVU200 765 000c FFF7FEFF bl readCMD 766 .LVL49: 194:Core/Src/ADBMS_Abstraction.c **** overundervoltages = regbuffer[2] | (regbuffer[3]<<8) | (regbuffer[4]<<16); 767 .loc 1 194 2 is_stmt 1 view .LVU201 768 .loc 1 194 31 is_stmt 0 view .LVU202 769 0010 9DF802C0 ldrb ip, [sp, #2] @ zero_extendqisi2 770 .loc 1 194 47 view .LVU203 771 0014 9DF80330 ldrb r3, [sp, #3] @ zero_extendqisi2 772 .loc 1 194 35 view .LVU204 773 0018 4CEA032C orr ip, ip, r3, lsl #8 774 .loc 1 194 67 view .LVU205 775 001c 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 776 .loc 1 194 55 view .LVU206 777 0020 4CEA034C orr ip, ip, r3, lsl #16 778 .LVL50: 195:Core/Src/ADBMS_Abstraction.c **** module->overVoltage = 0; 779 .loc 1 195 2 is_stmt 1 view .LVU207 780 .loc 1 195 22 is_stmt 0 view .LVU208 781 0024 0022 movs r2, #0 782 0026 A265 str r2, [r4, #88] 196:Core/Src/ADBMS_Abstraction.c **** module->underVoltage = 0; 783 .loc 1 196 2 is_stmt 1 view .LVU209 784 .loc 1 196 23 is_stmt 0 view .LVU210 785 0028 E265 str r2, [r4, #92] 197:Core/Src/ADBMS_Abstraction.c **** for(uint8 n = 0; n < 12; n++) 786 .loc 1 197 2 is_stmt 1 view .LVU211 787 .LBB2: 788 .loc 1 197 6 view .LVU212 789 .LVL51: 790 .loc 1 197 2 is_stmt 0 view .LVU213 791 002a 13E0 b .L25 792 .LVL52: 793 .L26: 794 .LBB3: 198:Core/Src/ADBMS_Abstraction.c **** { 199:Core/Src/ADBMS_Abstraction.c **** uint8 overvolt = (overundervoltages>>(2*n+1)) & 0x01; 795 .loc 1 199 3 is_stmt 1 discriminator 3 view .LVU214 796 .loc 1 199 42 is_stmt 0 discriminator 3 view .LVU215 797 002c 5300 lsls r3, r2, #1 ARM GAS /tmp/ccKQpHxH.s page 18 798 .loc 1 199 44 discriminator 3 view .LVU216 799 002e 591C adds r1, r3, #1 800 .loc 1 199 38 discriminator 3 view .LVU217 801 0030 2CFA01F1 lsr r1, ip, r1 802 .loc 1 199 9 discriminator 3 view .LVU218 803 0034 01F00101 and r1, r1, #1 804 .LVL53: 200:Core/Src/ADBMS_Abstraction.c **** uint8 undervolt = (overundervoltages>>(2*n))&0x01; 805 .loc 1 200 3 is_stmt 1 discriminator 3 view .LVU219 806 .loc 1 200 39 is_stmt 0 discriminator 3 view .LVU220 807 0038 2CFA03F3 lsr r3, ip, r3 808 .loc 1 200 9 discriminator 3 view .LVU221 809 003c 03F00103 and r3, r3, #1 810 .LVL54: 201:Core/Src/ADBMS_Abstraction.c **** 202:Core/Src/ADBMS_Abstraction.c **** module->overVoltage |= overvolt<underVoltage |= undervolt<>(2*n+1)) & 0x01; 869 .loc 1 212 3 discriminator 3 view .LVU244 870 .loc 1 212 42 is_stmt 0 discriminator 3 view .LVU245 871 0074 4B00 lsls r3, r1, #1 872 .loc 1 212 44 discriminator 3 view .LVU246 873 0076 5A1C adds r2, r3, #1 874 .loc 1 212 38 discriminator 3 view .LVU247 875 0078 2CFA02F2 lsr r2, ip, r2 876 .loc 1 212 9 discriminator 3 view .LVU248 877 007c 02F00102 and r2, r2, #1 878 .LVL63: 213:Core/Src/ADBMS_Abstraction.c **** uint8 undervolt = (overundervoltages>>(2*n))&0x01; 879 .loc 1 213 3 is_stmt 1 discriminator 3 view .LVU249 880 .loc 1 213 39 is_stmt 0 discriminator 3 view .LVU250 881 0080 2CFA03F3 lsr r3, ip, r3 882 .loc 1 213 9 discriminator 3 view .LVU251 883 0084 03F00103 and r3, r3, #1 884 .LVL64: 214:Core/Src/ADBMS_Abstraction.c **** 215:Core/Src/ADBMS_Abstraction.c **** module->overVoltage |= (uint32) overvolt<<(n+12); 885 .loc 1 215 3 is_stmt 1 discriminator 3 view .LVU252 886 .loc 1 215 9 is_stmt 0 discriminator 3 view .LVU253 887 0088 A06D ldr r0, [r4, #88] 888 .loc 1 215 47 discriminator 3 view .LVU254 889 008a 01F10C0E add lr, r1, #12 890 .loc 1 215 43 discriminator 3 view .LVU255 891 008e 02FA0EF2 lsl r2, r2, lr 892 .LVL65: ARM GAS /tmp/ccKQpHxH.s page 20 893 .loc 1 215 23 discriminator 3 view .LVU256 894 0092 1043 orrs r0, r0, r2 895 0094 A065 str r0, [r4, #88] 216:Core/Src/ADBMS_Abstraction.c **** module->underVoltage |= (uint32) undervolt<<(n+12); 896 .loc 1 216 3 is_stmt 1 discriminator 3 view .LVU257 897 .loc 1 216 9 is_stmt 0 discriminator 3 view .LVU258 898 0096 E26D ldr r2, [r4, #92] 899 .loc 1 216 45 discriminator 3 view .LVU259 900 0098 03FA0EF3 lsl r3, r3, lr 901 .LVL66: 902 .loc 1 216 24 discriminator 3 view .LVU260 903 009c 1A43 orrs r2, r2, r3 904 009e E265 str r2, [r4, #92] 905 .LBE5: 210:Core/Src/ADBMS_Abstraction.c **** { 906 .loc 1 210 27 is_stmt 1 discriminator 3 view .LVU261 907 00a0 0131 adds r1, r1, #1 908 .LVL67: 210:Core/Src/ADBMS_Abstraction.c **** { 909 .loc 1 210 27 is_stmt 0 discriminator 3 view .LVU262 910 00a2 C9B2 uxtb r1, r1 911 .LVL68: 210:Core/Src/ADBMS_Abstraction.c **** { 912 .loc 1 210 27 discriminator 3 view .LVU263 913 00a4 E4E7 b .L27 914 .LVL69: 915 .L30: 210:Core/Src/ADBMS_Abstraction.c **** { 916 .loc 1 210 27 discriminator 3 view .LVU264 917 .LBE4: 217:Core/Src/ADBMS_Abstraction.c **** } 218:Core/Src/ADBMS_Abstraction.c **** 219:Core/Src/ADBMS_Abstraction.c **** 220:Core/Src/ADBMS_Abstraction.c **** return 0; 918 .loc 1 220 2 is_stmt 1 view .LVU265 221:Core/Src/ADBMS_Abstraction.c **** } 919 .loc 1 221 1 is_stmt 0 view .LVU266 920 00a6 0020 movs r0, #0 921 00a8 02B0 add sp, sp, #8 922 .cfi_def_cfa_offset 8 923 @ sp needed 924 00aa 10BD pop {r4, pc} 925 .loc 1 221 1 view .LVU267 926 .cfi_endproc 927 .LFE145: 929 .section .text.amsConfigOverVoltage,"ax",%progbits 930 .align 1 931 .global amsConfigOverVoltage 932 .syntax unified 933 .thumb 934 .thumb_func 936 amsConfigOverVoltage: 937 .LVL70: 938 .LFB146: 222:Core/Src/ADBMS_Abstraction.c **** 223:Core/Src/ADBMS_Abstraction.c **** uint8 amsConfigOverVoltage(uint16 overVoltage) 224:Core/Src/ADBMS_Abstraction.c **** { ARM GAS /tmp/ccKQpHxH.s page 21 939 .loc 1 224 1 is_stmt 1 view -0 940 .cfi_startproc 941 @ args = 0, pretend = 0, frame = 8 942 @ frame_needed = 0, uses_anonymous_args = 0 943 .loc 1 224 1 is_stmt 0 view .LVU269 944 0000 10B5 push {r4, lr} 945 .cfi_def_cfa_offset 8 946 .cfi_offset 4, -8 947 .cfi_offset 14, -4 948 0002 82B0 sub sp, sp, #8 949 .cfi_def_cfa_offset 16 950 0004 0446 mov r4, r0 225:Core/Src/ADBMS_Abstraction.c **** uint8 buffer[CFG_GROUP_B_SIZE]; 951 .loc 1 225 2 is_stmt 1 view .LVU270 226:Core/Src/ADBMS_Abstraction.c **** 227:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCFGA, buffer, CFG_GROUP_A_SIZE); 952 .loc 1 227 2 view .LVU271 953 0006 0622 movs r2, #6 954 0008 6946 mov r1, sp 955 000a 0220 movs r0, #2 956 .LVL71: 957 .loc 1 227 2 is_stmt 0 view .LVU272 958 000c FFF7FEFF bl readCMD 959 .LVL72: 228:Core/Src/ADBMS_Abstraction.c **** buffer[2] &= 0x0F; 960 .loc 1 228 2 is_stmt 1 view .LVU273 961 .loc 1 228 8 is_stmt 0 view .LVU274 962 0010 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 963 .loc 1 228 12 view .LVU275 964 0014 03F00F03 and r3, r3, #15 965 0018 8DF80230 strb r3, [sp, #2] 229:Core/Src/ADBMS_Abstraction.c **** buffer[2] |= (uint8) overVoltage << 4; 966 .loc 1 229 2 is_stmt 1 view .LVU276 967 .loc 1 229 15 is_stmt 0 view .LVU277 968 001c E2B2 uxtb r2, r4 969 .loc 1 229 12 view .LVU278 970 001e 43EA0213 orr r3, r3, r2, lsl #4 971 0022 8DF80230 strb r3, [sp, #2] 230:Core/Src/ADBMS_Abstraction.c **** buffer[3] = (uint8)(overVoltage>>4); 972 .loc 1 230 2 is_stmt 1 view .LVU279 973 .loc 1 230 14 is_stmt 0 view .LVU280 974 0026 C4F30714 ubfx r4, r4, #4, #8 975 .loc 1 230 12 view .LVU281 976 002a 8DF80340 strb r4, [sp, #3] 231:Core/Src/ADBMS_Abstraction.c **** 232:Core/Src/ADBMS_Abstraction.c **** writeCMD(WRCFGA, buffer, CFG_GROUP_A_SIZE); 977 .loc 1 232 2 is_stmt 1 view .LVU282 978 002e 0622 movs r2, #6 979 0030 6946 mov r1, sp 980 0032 0120 movs r0, #1 981 0034 FFF7FEFF bl writeCMD 982 .LVL73: 233:Core/Src/ADBMS_Abstraction.c **** 234:Core/Src/ADBMS_Abstraction.c **** return 0; 983 .loc 1 234 2 view .LVU283 235:Core/Src/ADBMS_Abstraction.c **** } 984 .loc 1 235 1 is_stmt 0 view .LVU284 ARM GAS /tmp/ccKQpHxH.s page 22 985 0038 0020 movs r0, #0 986 003a 02B0 add sp, sp, #8 987 .cfi_def_cfa_offset 8 988 @ sp needed 989 003c 10BD pop {r4, pc} 990 .cfi_endproc 991 .LFE146: 993 .section .text.initAMS,"ax",%progbits 994 .align 1 995 .global initAMS 996 .syntax unified 997 .thumb 998 .thumb_func 1000 initAMS: 1001 .LVL74: 1002 .LFB130: 16:Core/Src/ADBMS_Abstraction.c **** adbmsDriverInit(hspi); 1003 .loc 1 16 1 is_stmt 1 view -0 1004 .cfi_startproc 1005 @ args = 0, pretend = 0, frame = 0 1006 @ frame_needed = 0, uses_anonymous_args = 0 16:Core/Src/ADBMS_Abstraction.c **** adbmsDriverInit(hspi); 1007 .loc 1 16 1 is_stmt 0 view .LVU286 1008 0000 38B5 push {r3, r4, r5, lr} 1009 .cfi_def_cfa_offset 16 1010 .cfi_offset 3, -16 1011 .cfi_offset 4, -12 1012 .cfi_offset 5, -8 1013 .cfi_offset 14, -4 1014 0002 0D46 mov r5, r1 1015 0004 1446 mov r4, r2 17:Core/Src/ADBMS_Abstraction.c **** numberofcells = numofcells; 1016 .loc 1 17 2 is_stmt 1 view .LVU287 1017 0006 FFF7FEFF bl adbmsDriverInit 1018 .LVL75: 18:Core/Src/ADBMS_Abstraction.c **** numberofauxchannels = numofaux; 1019 .loc 1 18 2 view .LVU288 18:Core/Src/ADBMS_Abstraction.c **** numberofauxchannels = numofaux; 1020 .loc 1 18 16 is_stmt 0 view .LVU289 1021 000a 0B4B ldr r3, .L35 1022 000c 1D70 strb r5, [r3] 19:Core/Src/ADBMS_Abstraction.c **** 1023 .loc 1 19 2 is_stmt 1 view .LVU290 19:Core/Src/ADBMS_Abstraction.c **** 1024 .loc 1 19 22 is_stmt 0 view .LVU291 1025 000e 0B4B ldr r3, .L35+4 1026 0010 1C70 strb r4, [r3] 22:Core/Src/ADBMS_Abstraction.c **** amsStopBalancing(); 1027 .loc 1 22 2 is_stmt 1 view .LVU292 1028 0012 FFF7FEFF bl amsWakeUp 1029 .LVL76: 23:Core/Src/ADBMS_Abstraction.c **** amsConfigOverVoltage(DEFAULT_OV); 1030 .loc 1 23 2 view .LVU293 1031 0016 FFF7FEFF bl amsStopBalancing 1032 .LVL77: 24:Core/Src/ADBMS_Abstraction.c **** amsConfigUnderVoltage(DEFAULT_UV); 1033 .loc 1 24 2 view .LVU294 ARM GAS /tmp/ccKQpHxH.s page 23 1034 001a 40F64120 movw r0, #2625 1035 001e FFF7FEFF bl amsConfigOverVoltage 1036 .LVL78: 25:Core/Src/ADBMS_Abstraction.c **** amsConfigAuxMeasurement(0xFFFF); 1037 .loc 1 25 2 view .LVU295 1038 0022 40F21A60 movw r0, #1562 1039 0026 FFF7FEFF bl amsConfigUnderVoltage 1040 .LVL79: 26:Core/Src/ADBMS_Abstraction.c **** 1041 .loc 1 26 2 view .LVU296 1042 002a 4FF6FF70 movw r0, #65535 1043 002e FFF7FEFF bl amsConfigAuxMeasurement 1044 .LVL80: 28:Core/Src/ADBMS_Abstraction.c **** } 1045 .loc 1 28 2 view .LVU297 29:Core/Src/ADBMS_Abstraction.c **** 1046 .loc 1 29 1 is_stmt 0 view .LVU298 1047 0032 0020 movs r0, #0 1048 0034 38BD pop {r3, r4, r5, pc} 1049 .L36: 1050 0036 00BF .align 2 1051 .L35: 1052 0038 00000000 .word numberofcells 1053 003c 00000000 .word numberofauxchannels 1054 .cfi_endproc 1055 .LFE130: 1057 .section .text.amsClearStatus,"ax",%progbits 1058 .align 1 1059 .global amsClearStatus 1060 .syntax unified 1061 .thumb 1062 .thumb_func 1064 amsClearStatus: 1065 .LFB147: 236:Core/Src/ADBMS_Abstraction.c **** 237:Core/Src/ADBMS_Abstraction.c **** /* 238:Core/Src/ADBMS_Abstraction.c **** void dumpRegister(UART_HandleTypeDef *huart, uint8 RegID, uint8* buffer) 239:Core/Src/ADBMS_Abstraction.c **** { 240:Core/Src/ADBMS_Abstraction.c **** switch(RegID) 241:Core/Src/ADBMS_Abstraction.c **** { 242:Core/Src/ADBMS_Abstraction.c **** case CFG_GROUP_A_ID: 243:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCFGA, buffer, CFG_GROUP_A_SIZE); 244:Core/Src/ADBMS_Abstraction.c **** break; 245:Core/Src/ADBMS_Abstraction.c **** case CFG_GROUP_B_ID: 246:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCFGB, buffer, CFG_GROUP_A_SIZE); 247:Core/Src/ADBMS_Abstraction.c **** break; 248:Core/Src/ADBMS_Abstraction.c **** case CV_GROUP_A_ID: 249:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVA, buffer, CFG_GROUP_A_SIZE); 250:Core/Src/ADBMS_Abstraction.c **** break; 251:Core/Src/ADBMS_Abstraction.c **** case CV_GROUP_B_ID: 252:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVB, buffer, CFG_GROUP_A_SIZE); 253:Core/Src/ADBMS_Abstraction.c **** break; 254:Core/Src/ADBMS_Abstraction.c **** case CV_GROUP_C_ID: 255:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVC, buffer, CFG_GROUP_A_SIZE); 256:Core/Src/ADBMS_Abstraction.c **** break; 257:Core/Src/ADBMS_Abstraction.c **** case CV_GROUP_D_ID: 258:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVD, buffer, CFG_GROUP_A_SIZE); ARM GAS /tmp/ccKQpHxH.s page 24 259:Core/Src/ADBMS_Abstraction.c **** break; 260:Core/Src/ADBMS_Abstraction.c **** case CV_GROUP_E_ID: 261:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVE, buffer, CFG_GROUP_A_SIZE); 262:Core/Src/ADBMS_Abstraction.c **** break; 263:Core/Src/ADBMS_Abstraction.c **** case CV_GROUP_F_ID: 264:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVF, buffer, CFG_GROUP_A_SIZE); 265:Core/Src/ADBMS_Abstraction.c **** break; 266:Core/Src/ADBMS_Abstraction.c **** case AUX_GROUP_A_ID: 267:Core/Src/ADBMS_Abstraction.c **** readCMD(RDAUXA, buffer, CFG_GROUP_A_SIZE); 268:Core/Src/ADBMS_Abstraction.c **** break; 269:Core/Src/ADBMS_Abstraction.c **** case AUX_GROUP_B_ID: 270:Core/Src/ADBMS_Abstraction.c **** readCMD(RDAUXB, buffer, CFG_GROUP_A_SIZE); 271:Core/Src/ADBMS_Abstraction.c **** break; 272:Core/Src/ADBMS_Abstraction.c **** case AUX_GROUP_C_ID: 273:Core/Src/ADBMS_Abstraction.c **** readCMD(RDAUXC, buffer, CFG_GROUP_A_SIZE); 274:Core/Src/ADBMS_Abstraction.c **** break; 275:Core/Src/ADBMS_Abstraction.c **** case AUX_GROUP_D_ID: 276:Core/Src/ADBMS_Abstraction.c **** readCMD(RDAUXD, buffer, CFG_GROUP_A_SIZE); 277:Core/Src/ADBMS_Abstraction.c **** break; 278:Core/Src/ADBMS_Abstraction.c **** case STATUS_GROUP_A_ID: 279:Core/Src/ADBMS_Abstraction.c **** readCMD(RDSTATA, buffer, CFG_GROUP_A_SIZE); 280:Core/Src/ADBMS_Abstraction.c **** break; 281:Core/Src/ADBMS_Abstraction.c **** case STATUS_GROUP_B_ID: 282:Core/Src/ADBMS_Abstraction.c **** readCMD(RDSTATB, buffer, CFG_GROUP_A_SIZE); 283:Core/Src/ADBMS_Abstraction.c **** break; 284:Core/Src/ADBMS_Abstraction.c **** case COMM_GROUP_ID: 285:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCOMM, buffer, CFG_GROUP_A_SIZE); 286:Core/Src/ADBMS_Abstraction.c **** break; 287:Core/Src/ADBMS_Abstraction.c **** case S_CONTROL_GROUP_ID: 288:Core/Src/ADBMS_Abstraction.c **** readCMD(RDSCTRL, buffer, CFG_GROUP_A_SIZE); 289:Core/Src/ADBMS_Abstraction.c **** break; 290:Core/Src/ADBMS_Abstraction.c **** case PWM_GROUP_ID: 291:Core/Src/ADBMS_Abstraction.c **** readCMD(RDPWM, buffer, CFG_GROUP_A_SIZE); 292:Core/Src/ADBMS_Abstraction.c **** break; 293:Core/Src/ADBMS_Abstraction.c **** case PWM_S_CONTROL_GROUP_B_ID: 294:Core/Src/ADBMS_Abstraction.c **** readCMD(RDPSB, buffer, CFG_GROUP_A_SIZE); 295:Core/Src/ADBMS_Abstraction.c **** break; 296:Core/Src/ADBMS_Abstraction.c **** } 297:Core/Src/ADBMS_Abstraction.c **** } 298:Core/Src/ADBMS_Abstraction.c **** */ 299:Core/Src/ADBMS_Abstraction.c **** 300:Core/Src/ADBMS_Abstraction.c **** uint8 amsClearStatus() 301:Core/Src/ADBMS_Abstraction.c **** { 1066 .loc 1 301 1 is_stmt 1 view -0 1067 .cfi_startproc 1068 @ args = 0, pretend = 0, frame = 8 1069 @ frame_needed = 0, uses_anonymous_args = 0 1070 0000 00B5 push {lr} 1071 .cfi_def_cfa_offset 4 1072 .cfi_offset 14, -4 1073 0002 83B0 sub sp, sp, #12 1074 .cfi_def_cfa_offset 16 302:Core/Src/ADBMS_Abstraction.c **** uint8 buffer[6]; 1075 .loc 1 302 2 view .LVU300 303:Core/Src/ADBMS_Abstraction.c **** writeCMD(CLRSTAT, buffer, 0); 1076 .loc 1 303 2 view .LVU301 1077 0004 0022 movs r2, #0 ARM GAS /tmp/ccKQpHxH.s page 25 1078 0006 6946 mov r1, sp 1079 0008 40F21370 movw r0, #1811 1080 000c FFF7FEFF bl writeCMD 1081 .LVL81: 304:Core/Src/ADBMS_Abstraction.c **** return 0; 1082 .loc 1 304 2 view .LVU302 305:Core/Src/ADBMS_Abstraction.c **** } 1083 .loc 1 305 1 is_stmt 0 view .LVU303 1084 0010 0020 movs r0, #0 1085 0012 03B0 add sp, sp, #12 1086 .cfi_def_cfa_offset 4 1087 @ sp needed 1088 0014 5DF804FB ldr pc, [sp], #4 1089 .cfi_endproc 1090 .LFE147: 1092 .section .text.amsClearAux,"ax",%progbits 1093 .align 1 1094 .global amsClearAux 1095 .syntax unified 1096 .thumb 1097 .thumb_func 1099 amsClearAux: 1100 .LFB148: 306:Core/Src/ADBMS_Abstraction.c **** uint8 amsClearAux() 307:Core/Src/ADBMS_Abstraction.c **** { 1101 .loc 1 307 1 is_stmt 1 view -0 1102 .cfi_startproc 1103 @ args = 0, pretend = 0, frame = 8 1104 @ frame_needed = 0, uses_anonymous_args = 0 1105 0000 00B5 push {lr} 1106 .cfi_def_cfa_offset 4 1107 .cfi_offset 14, -4 1108 0002 83B0 sub sp, sp, #12 1109 .cfi_def_cfa_offset 16 308:Core/Src/ADBMS_Abstraction.c **** uint8 buffer[6]; 1110 .loc 1 308 2 view .LVU305 309:Core/Src/ADBMS_Abstraction.c **** writeCMD(CLRAUX, buffer, 0); 1111 .loc 1 309 2 view .LVU306 1112 0004 0022 movs r2, #0 1113 0006 6946 mov r1, sp 1114 0008 40F21270 movw r0, #1810 1115 000c FFF7FEFF bl writeCMD 1116 .LVL82: 310:Core/Src/ADBMS_Abstraction.c **** return 0; 1117 .loc 1 310 2 view .LVU307 311:Core/Src/ADBMS_Abstraction.c **** } 1118 .loc 1 311 1 is_stmt 0 view .LVU308 1119 0010 0020 movs r0, #0 1120 0012 03B0 add sp, sp, #12 1121 .cfi_def_cfa_offset 4 1122 @ sp needed 1123 0014 5DF804FB ldr pc, [sp], #4 1124 .cfi_endproc 1125 .LFE148: 1127 .section .text.amsClearCells,"ax",%progbits 1128 .align 1 1129 .global amsClearCells ARM GAS /tmp/ccKQpHxH.s page 26 1130 .syntax unified 1131 .thumb 1132 .thumb_func 1134 amsClearCells: 1135 .LFB149: 312:Core/Src/ADBMS_Abstraction.c **** uint8 amsClearCells() 313:Core/Src/ADBMS_Abstraction.c **** { 1136 .loc 1 313 1 is_stmt 1 view -0 1137 .cfi_startproc 1138 @ args = 0, pretend = 0, frame = 8 1139 @ frame_needed = 0, uses_anonymous_args = 0 1140 0000 00B5 push {lr} 1141 .cfi_def_cfa_offset 4 1142 .cfi_offset 14, -4 1143 0002 83B0 sub sp, sp, #12 1144 .cfi_def_cfa_offset 16 314:Core/Src/ADBMS_Abstraction.c **** uint8 buffer[6]; 1145 .loc 1 314 2 view .LVU310 315:Core/Src/ADBMS_Abstraction.c **** writeCMD(CLRCELL, buffer, 0); 1146 .loc 1 315 2 view .LVU311 1147 0004 0022 movs r2, #0 1148 0006 6946 mov r1, sp 1149 0008 40F21170 movw r0, #1809 1150 000c FFF7FEFF bl writeCMD 1151 .LVL83: 316:Core/Src/ADBMS_Abstraction.c **** return 0; 1152 .loc 1 316 2 view .LVU312 317:Core/Src/ADBMS_Abstraction.c **** } 1153 .loc 1 317 1 is_stmt 0 view .LVU313 1154 0010 0020 movs r0, #0 1155 0012 03B0 add sp, sp, #12 1156 .cfi_def_cfa_offset 4 1157 @ sp needed 1158 0014 5DF804FB ldr pc, [sp], #4 1159 .cfi_endproc 1160 .LFE149: 1162 .section .text.amsSendWarning,"ax",%progbits 1163 .align 1 1164 .global amsSendWarning 1165 .syntax unified 1166 .thumb 1167 .thumb_func 1169 amsSendWarning: 1170 .LFB150: 318:Core/Src/ADBMS_Abstraction.c **** 319:Core/Src/ADBMS_Abstraction.c **** uint8 amsSendWarning() 320:Core/Src/ADBMS_Abstraction.c **** { 1171 .loc 1 320 1 is_stmt 1 view -0 1172 .cfi_startproc 1173 @ args = 0, pretend = 0, frame = 0 1174 @ frame_needed = 0, uses_anonymous_args = 0 1175 @ link register save eliminated. 321:Core/Src/ADBMS_Abstraction.c **** //HAL_GPIO_WritePin(AMS_Warning_GPIO_Port, AMS_Warning_Pin, GPIO_PIN_SET); 322:Core/Src/ADBMS_Abstraction.c **** return 0; 1176 .loc 1 322 2 view .LVU315 323:Core/Src/ADBMS_Abstraction.c **** } 1177 .loc 1 323 1 is_stmt 0 view .LVU316 ARM GAS /tmp/ccKQpHxH.s page 27 1178 0000 0020 movs r0, #0 1179 0002 7047 bx lr 1180 .cfi_endproc 1181 .LFE150: 1183 .section .text.amsSendError,"ax",%progbits 1184 .align 1 1185 .global amsSendError 1186 .syntax unified 1187 .thumb 1188 .thumb_func 1190 amsSendError: 1191 .LFB151: 324:Core/Src/ADBMS_Abstraction.c **** 325:Core/Src/ADBMS_Abstraction.c **** uint8 amsSendError() 326:Core/Src/ADBMS_Abstraction.c **** { 1192 .loc 1 326 1 is_stmt 1 view -0 1193 .cfi_startproc 1194 @ args = 0, pretend = 0, frame = 0 1195 @ frame_needed = 0, uses_anonymous_args = 0 1196 @ link register save eliminated. 327:Core/Src/ADBMS_Abstraction.c **** //HAL_GPIO_WritePin(AMS_Error_GPIO_Port, AMS_Error_Pin, GPIO_PIN_SET); 328:Core/Src/ADBMS_Abstraction.c **** return 0; 1197 .loc 1 328 2 view .LVU318 329:Core/Src/ADBMS_Abstraction.c **** } 1198 .loc 1 329 1 is_stmt 0 view .LVU319 1199 0000 0020 movs r0, #0 1200 0002 7047 bx lr 1201 .cfi_endproc 1202 .LFE151: 1204 .section .text.amsClearWarning,"ax",%progbits 1205 .align 1 1206 .global amsClearWarning 1207 .syntax unified 1208 .thumb 1209 .thumb_func 1211 amsClearWarning: 1212 .LFB152: 330:Core/Src/ADBMS_Abstraction.c **** 331:Core/Src/ADBMS_Abstraction.c **** uint8 amsClearWarning() 332:Core/Src/ADBMS_Abstraction.c **** { 1213 .loc 1 332 1 is_stmt 1 view -0 1214 .cfi_startproc 1215 @ args = 0, pretend = 0, frame = 0 1216 @ frame_needed = 0, uses_anonymous_args = 0 1217 @ link register save eliminated. 333:Core/Src/ADBMS_Abstraction.c **** //HAL_GPIO_WritePin(AMS_Warning_GPIO_Port, AMS_Warning_Pin, GPIO_PIN_RESET); 334:Core/Src/ADBMS_Abstraction.c **** return 0; 1218 .loc 1 334 2 view .LVU321 335:Core/Src/ADBMS_Abstraction.c **** } 1219 .loc 1 335 1 is_stmt 0 view .LVU322 1220 0000 0020 movs r0, #0 1221 0002 7047 bx lr 1222 .cfi_endproc 1223 .LFE152: 1225 .section .text.amsClearError,"ax",%progbits 1226 .align 1 1227 .global amsClearError ARM GAS /tmp/ccKQpHxH.s page 28 1228 .syntax unified 1229 .thumb 1230 .thumb_func 1232 amsClearError: 1233 .LFB153: 336:Core/Src/ADBMS_Abstraction.c **** 337:Core/Src/ADBMS_Abstraction.c **** uint8 amsClearError() 338:Core/Src/ADBMS_Abstraction.c **** { 1234 .loc 1 338 1 is_stmt 1 view -0 1235 .cfi_startproc 1236 @ args = 0, pretend = 0, frame = 0 1237 @ frame_needed = 0, uses_anonymous_args = 0 1238 @ link register save eliminated. 339:Core/Src/ADBMS_Abstraction.c **** //HAL_GPIO_WritePin(AMS_Error_GPIO_Port, AMS_Error_Pin, GPIO_PIN_RESET); 340:Core/Src/ADBMS_Abstraction.c **** return 0; 1239 .loc 1 340 2 view .LVU324 341:Core/Src/ADBMS_Abstraction.c **** } 1240 .loc 1 341 1 is_stmt 0 view .LVU325 1241 0000 0020 movs r0, #0 1242 0002 7047 bx lr 1243 .cfi_endproc 1244 .LFE153: 1246 .section .text.amsReadCellVoltages,"ax",%progbits 1247 .align 1 1248 .global amsReadCellVoltages 1249 .syntax unified 1250 .thumb 1251 .thumb_func 1253 amsReadCellVoltages: 1254 .LVL84: 1255 .LFB155: 342:Core/Src/ADBMS_Abstraction.c **** 343:Core/Src/ADBMS_Abstraction.c **** uint8 amscheckOpenCellWire(Cell_Module *module) 344:Core/Src/ADBMS_Abstraction.c **** { 345:Core/Src/ADBMS_Abstraction.c **** uint8 args; 346:Core/Src/ADBMS_Abstraction.c **** uint16 cellspu[18]; 347:Core/Src/ADBMS_Abstraction.c **** 348:Core/Src/ADBMS_Abstraction.c **** writeCMD(ADOW |MD01|CH000|PUP , &args, 0); //run Pull Up at least Twice 349:Core/Src/ADBMS_Abstraction.c **** HAL_Delay(5); 350:Core/Src/ADBMS_Abstraction.c **** writeCMD(ADOW |MD01|CH000|PUP , &args, 0); //run Pull Up at least Twice 351:Core/Src/ADBMS_Abstraction.c **** HAL_Delay(5); 352:Core/Src/ADBMS_Abstraction.c **** 353:Core/Src/ADBMS_Abstraction.c **** amsReadCellVoltages(module); 354:Core/Src/ADBMS_Abstraction.c **** 355:Core/Src/ADBMS_Abstraction.c **** for(uint8_t n = 0; n cellVoltages[n]; 358:Core/Src/ADBMS_Abstraction.c **** } 359:Core/Src/ADBMS_Abstraction.c **** 360:Core/Src/ADBMS_Abstraction.c **** 361:Core/Src/ADBMS_Abstraction.c **** writeCMD(ADOW |MD01|CH000, &args, 0); //run Pull Up at least Twice 362:Core/Src/ADBMS_Abstraction.c **** HAL_Delay(5); 363:Core/Src/ADBMS_Abstraction.c **** writeCMD(ADOW |MD01|CH000, &args, 0); //run Pull Up at least Twice 364:Core/Src/ADBMS_Abstraction.c **** HAL_Delay(5); 365:Core/Src/ADBMS_Abstraction.c **** 366:Core/Src/ADBMS_Abstraction.c **** amsReadCellVoltages(module); 367:Core/Src/ADBMS_Abstraction.c **** ARM GAS /tmp/ccKQpHxH.s page 29 368:Core/Src/ADBMS_Abstraction.c **** for(uint8 n = 1; n < numberofcells; n++) 369:Core/Src/ADBMS_Abstraction.c **** { 370:Core/Src/ADBMS_Abstraction.c **** int dv = cellspu[n]-module->cellVoltages[n]; 371:Core/Src/ADBMS_Abstraction.c **** if(dv < -4000) 372:Core/Src/ADBMS_Abstraction.c **** { 373:Core/Src/ADBMS_Abstraction.c **** return (1+n); 374:Core/Src/ADBMS_Abstraction.c **** } 375:Core/Src/ADBMS_Abstraction.c **** } 376:Core/Src/ADBMS_Abstraction.c **** if((cellspu[0] == 0) || (cellspu[0] == 0xFFFF)) 377:Core/Src/ADBMS_Abstraction.c **** { 378:Core/Src/ADBMS_Abstraction.c **** return 1; 379:Core/Src/ADBMS_Abstraction.c **** } 380:Core/Src/ADBMS_Abstraction.c **** if(module->cellVoltages[numberofcells-1] == 0) 381:Core/Src/ADBMS_Abstraction.c **** { 382:Core/Src/ADBMS_Abstraction.c **** return 19; 383:Core/Src/ADBMS_Abstraction.c **** } 384:Core/Src/ADBMS_Abstraction.c **** 385:Core/Src/ADBMS_Abstraction.c **** return 0; 386:Core/Src/ADBMS_Abstraction.c **** } 387:Core/Src/ADBMS_Abstraction.c **** 388:Core/Src/ADBMS_Abstraction.c **** uint8 amsReadCellVoltages(Cell_Module *module) 389:Core/Src/ADBMS_Abstraction.c **** { 1256 .loc 1 389 1 is_stmt 1 view -0 1257 .cfi_startproc 1258 @ args = 0, pretend = 0, frame = 8 1259 @ frame_needed = 0, uses_anonymous_args = 0 1260 .loc 1 389 1 is_stmt 0 view .LVU327 1261 0000 10B5 push {r4, lr} 1262 .cfi_def_cfa_offset 8 1263 .cfi_offset 4, -8 1264 .cfi_offset 14, -4 1265 0002 82B0 sub sp, sp, #8 1266 .cfi_def_cfa_offset 16 1267 0004 0446 mov r4, r0 390:Core/Src/ADBMS_Abstraction.c **** uint8 rxbuffer[CV_GROUP_A_SIZE]; 1268 .loc 1 390 2 is_stmt 1 view .LVU328 391:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVA, rxbuffer, CV_GROUP_A_SIZE); 1269 .loc 1 391 2 view .LVU329 1270 0006 0622 movs r2, #6 1271 0008 6946 mov r1, sp 1272 000a 0420 movs r0, #4 1273 .LVL85: 1274 .loc 1 391 2 is_stmt 0 view .LVU330 1275 000c FFF7FEFF bl readCMD 1276 .LVL86: 392:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[0] = rxbuffer[0] | (rxbuffer[1]<<8); 1277 .loc 1 392 2 is_stmt 1 view .LVU331 1278 .loc 1 392 36 is_stmt 0 view .LVU332 1279 0010 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 1280 .loc 1 392 51 view .LVU333 1281 0014 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 1282 .loc 1 392 40 view .LVU334 1283 0018 43EA0223 orr r3, r3, r2, lsl #8 1284 .loc 1 392 26 view .LVU335 1285 001c 2380 strh r3, [r4] @ movhi 393:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[1] = rxbuffer[2] | (rxbuffer[3]<<8); 1286 .loc 1 393 2 is_stmt 1 view .LVU336 ARM GAS /tmp/ccKQpHxH.s page 30 1287 .loc 1 393 36 is_stmt 0 view .LVU337 1288 001e 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 1289 .loc 1 393 51 view .LVU338 1290 0022 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 1291 .loc 1 393 40 view .LVU339 1292 0026 43EA0223 orr r3, r3, r2, lsl #8 1293 .loc 1 393 26 view .LVU340 1294 002a 6380 strh r3, [r4, #2] @ movhi 394:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[2] = rxbuffer[4] | (rxbuffer[5]<<8); 1295 .loc 1 394 2 is_stmt 1 view .LVU341 1296 .loc 1 394 36 is_stmt 0 view .LVU342 1297 002c 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 1298 .loc 1 394 51 view .LVU343 1299 0030 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 1300 .loc 1 394 40 view .LVU344 1301 0034 43EA0223 orr r3, r3, r2, lsl #8 1302 .loc 1 394 26 view .LVU345 1303 0038 A380 strh r3, [r4, #4] @ movhi 395:Core/Src/ADBMS_Abstraction.c **** 396:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVB, rxbuffer, CV_GROUP_A_SIZE); 1304 .loc 1 396 2 is_stmt 1 view .LVU346 1305 003a 0622 movs r2, #6 1306 003c 6946 mov r1, sp 1307 003e 1046 mov r0, r2 1308 0040 FFF7FEFF bl readCMD 1309 .LVL87: 397:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[3] = rxbuffer[0] | (rxbuffer[1]<<8); 1310 .loc 1 397 2 view .LVU347 1311 .loc 1 397 36 is_stmt 0 view .LVU348 1312 0044 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 1313 .loc 1 397 51 view .LVU349 1314 0048 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 1315 .loc 1 397 40 view .LVU350 1316 004c 43EA0223 orr r3, r3, r2, lsl #8 1317 .loc 1 397 26 view .LVU351 1318 0050 E380 strh r3, [r4, #6] @ movhi 398:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[4] = rxbuffer[2] | (rxbuffer[3]<<8); 1319 .loc 1 398 2 is_stmt 1 view .LVU352 1320 .loc 1 398 36 is_stmt 0 view .LVU353 1321 0052 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 1322 .loc 1 398 51 view .LVU354 1323 0056 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 1324 .loc 1 398 40 view .LVU355 1325 005a 43EA0223 orr r3, r3, r2, lsl #8 1326 .loc 1 398 26 view .LVU356 1327 005e 2381 strh r3, [r4, #8] @ movhi 399:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[5] = rxbuffer[4] | (rxbuffer[5]<<8); 1328 .loc 1 399 2 is_stmt 1 view .LVU357 1329 .loc 1 399 36 is_stmt 0 view .LVU358 1330 0060 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 1331 .loc 1 399 51 view .LVU359 1332 0064 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 1333 .loc 1 399 40 view .LVU360 1334 0068 43EA0223 orr r3, r3, r2, lsl #8 1335 .loc 1 399 26 view .LVU361 1336 006c 6381 strh r3, [r4, #10] @ movhi 400:Core/Src/ADBMS_Abstraction.c **** ARM GAS /tmp/ccKQpHxH.s page 31 401:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVC, rxbuffer, CV_GROUP_A_SIZE); 1337 .loc 1 401 2 is_stmt 1 view .LVU362 1338 006e 0622 movs r2, #6 1339 0070 6946 mov r1, sp 1340 0072 0820 movs r0, #8 1341 0074 FFF7FEFF bl readCMD 1342 .LVL88: 402:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[6] = rxbuffer[0] | (rxbuffer[1]<<8); 1343 .loc 1 402 2 view .LVU363 1344 .loc 1 402 36 is_stmt 0 view .LVU364 1345 0078 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 1346 .loc 1 402 51 view .LVU365 1347 007c 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 1348 .loc 1 402 40 view .LVU366 1349 0080 43EA0223 orr r3, r3, r2, lsl #8 1350 .loc 1 402 26 view .LVU367 1351 0084 A381 strh r3, [r4, #12] @ movhi 403:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[7] = rxbuffer[2] | (rxbuffer[3]<<8); 1352 .loc 1 403 2 is_stmt 1 view .LVU368 1353 .loc 1 403 36 is_stmt 0 view .LVU369 1354 0086 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 1355 .loc 1 403 51 view .LVU370 1356 008a 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 1357 .loc 1 403 40 view .LVU371 1358 008e 43EA0223 orr r3, r3, r2, lsl #8 1359 .loc 1 403 26 view .LVU372 1360 0092 E381 strh r3, [r4, #14] @ movhi 404:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[8] = rxbuffer[4] | (rxbuffer[5]<<8); 1361 .loc 1 404 2 is_stmt 1 view .LVU373 1362 .loc 1 404 36 is_stmt 0 view .LVU374 1363 0094 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 1364 .loc 1 404 51 view .LVU375 1365 0098 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 1366 .loc 1 404 40 view .LVU376 1367 009c 43EA0223 orr r3, r3, r2, lsl #8 1368 .loc 1 404 26 view .LVU377 1369 00a0 2382 strh r3, [r4, #16] @ movhi 405:Core/Src/ADBMS_Abstraction.c **** 406:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVD, rxbuffer, CV_GROUP_A_SIZE); 1370 .loc 1 406 2 is_stmt 1 view .LVU378 1371 00a2 0622 movs r2, #6 1372 00a4 6946 mov r1, sp 1373 00a6 0A20 movs r0, #10 1374 00a8 FFF7FEFF bl readCMD 1375 .LVL89: 407:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[9] = rxbuffer[0] | (rxbuffer[1]<<8); 1376 .loc 1 407 2 view .LVU379 1377 .loc 1 407 36 is_stmt 0 view .LVU380 1378 00ac 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 1379 .loc 1 407 51 view .LVU381 1380 00b0 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 1381 .loc 1 407 40 view .LVU382 1382 00b4 43EA0223 orr r3, r3, r2, lsl #8 1383 .loc 1 407 26 view .LVU383 1384 00b8 6382 strh r3, [r4, #18] @ movhi 408:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[10] = rxbuffer[2] | (rxbuffer[3]<<8); 1385 .loc 1 408 2 is_stmt 1 view .LVU384 ARM GAS /tmp/ccKQpHxH.s page 32 1386 .loc 1 408 37 is_stmt 0 view .LVU385 1387 00ba 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 1388 .loc 1 408 52 view .LVU386 1389 00be 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 1390 .loc 1 408 41 view .LVU387 1391 00c2 43EA0223 orr r3, r3, r2, lsl #8 1392 .loc 1 408 27 view .LVU388 1393 00c6 A382 strh r3, [r4, #20] @ movhi 409:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[11] = rxbuffer[4] | (rxbuffer[5]<<8); 1394 .loc 1 409 2 is_stmt 1 view .LVU389 1395 .loc 1 409 37 is_stmt 0 view .LVU390 1396 00c8 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 1397 .loc 1 409 52 view .LVU391 1398 00cc 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 1399 .loc 1 409 41 view .LVU392 1400 00d0 43EA0223 orr r3, r3, r2, lsl #8 1401 .loc 1 409 27 view .LVU393 1402 00d4 E382 strh r3, [r4, #22] @ movhi 410:Core/Src/ADBMS_Abstraction.c **** 411:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVE, rxbuffer, CV_GROUP_A_SIZE); 1403 .loc 1 411 2 is_stmt 1 view .LVU394 1404 00d6 0622 movs r2, #6 1405 00d8 6946 mov r1, sp 1406 00da 0920 movs r0, #9 1407 00dc FFF7FEFF bl readCMD 1408 .LVL90: 412:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[12] = rxbuffer[0] | (rxbuffer[1]<<8); 1409 .loc 1 412 2 view .LVU395 1410 .loc 1 412 37 is_stmt 0 view .LVU396 1411 00e0 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 1412 .loc 1 412 52 view .LVU397 1413 00e4 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 1414 .loc 1 412 41 view .LVU398 1415 00e8 43EA0223 orr r3, r3, r2, lsl #8 1416 .loc 1 412 27 view .LVU399 1417 00ec 2383 strh r3, [r4, #24] @ movhi 413:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[13] = rxbuffer[2] | (rxbuffer[3]<<8); 1418 .loc 1 413 2 is_stmt 1 view .LVU400 1419 .loc 1 413 37 is_stmt 0 view .LVU401 1420 00ee 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 1421 .loc 1 413 52 view .LVU402 1422 00f2 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 1423 .loc 1 413 41 view .LVU403 1424 00f6 43EA0223 orr r3, r3, r2, lsl #8 1425 .loc 1 413 27 view .LVU404 1426 00fa 6383 strh r3, [r4, #26] @ movhi 414:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[14] = rxbuffer[4] | (rxbuffer[5]<<8); 1427 .loc 1 414 2 is_stmt 1 view .LVU405 1428 .loc 1 414 37 is_stmt 0 view .LVU406 1429 00fc 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 1430 .loc 1 414 52 view .LVU407 1431 0100 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 1432 .loc 1 414 41 view .LVU408 1433 0104 43EA0223 orr r3, r3, r2, lsl #8 1434 .loc 1 414 27 view .LVU409 1435 0108 A383 strh r3, [r4, #28] @ movhi 415:Core/Src/ADBMS_Abstraction.c **** ARM GAS /tmp/ccKQpHxH.s page 33 416:Core/Src/ADBMS_Abstraction.c **** readCMD(RDCVF, rxbuffer, CV_GROUP_A_SIZE); 1436 .loc 1 416 2 is_stmt 1 view .LVU410 1437 010a 0622 movs r2, #6 1438 010c 6946 mov r1, sp 1439 010e 0B20 movs r0, #11 1440 0110 FFF7FEFF bl readCMD 1441 .LVL91: 417:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[15] = rxbuffer[0] | (rxbuffer[1]<<8); 1442 .loc 1 417 2 view .LVU411 1443 .loc 1 417 37 is_stmt 0 view .LVU412 1444 0114 9DF80030 ldrb r3, [sp] @ zero_extendqisi2 1445 .loc 1 417 52 view .LVU413 1446 0118 9DF80120 ldrb r2, [sp, #1] @ zero_extendqisi2 1447 .loc 1 417 41 view .LVU414 1448 011c 43EA0223 orr r3, r3, r2, lsl #8 1449 .loc 1 417 27 view .LVU415 1450 0120 E383 strh r3, [r4, #30] @ movhi 418:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[16] = rxbuffer[2] | (rxbuffer[3]<<8); 1451 .loc 1 418 2 is_stmt 1 view .LVU416 1452 .loc 1 418 37 is_stmt 0 view .LVU417 1453 0122 9DF80230 ldrb r3, [sp, #2] @ zero_extendqisi2 1454 .loc 1 418 52 view .LVU418 1455 0126 9DF80320 ldrb r2, [sp, #3] @ zero_extendqisi2 1456 .loc 1 418 41 view .LVU419 1457 012a 43EA0223 orr r3, r3, r2, lsl #8 1458 .loc 1 418 27 view .LVU420 1459 012e 2384 strh r3, [r4, #32] @ movhi 419:Core/Src/ADBMS_Abstraction.c **** module->cellVoltages[17] = rxbuffer[4] | (rxbuffer[5]<<8); 1460 .loc 1 419 2 is_stmt 1 view .LVU421 1461 .loc 1 419 37 is_stmt 0 view .LVU422 1462 0130 9DF80430 ldrb r3, [sp, #4] @ zero_extendqisi2 1463 .loc 1 419 52 view .LVU423 1464 0134 9DF80520 ldrb r2, [sp, #5] @ zero_extendqisi2 1465 .loc 1 419 41 view .LVU424 1466 0138 43EA0223 orr r3, r3, r2, lsl #8 1467 .loc 1 419 27 view .LVU425 1468 013c 6384 strh r3, [r4, #34] @ movhi 420:Core/Src/ADBMS_Abstraction.c **** 421:Core/Src/ADBMS_Abstraction.c **** return 0; 1469 .loc 1 421 2 is_stmt 1 view .LVU426 422:Core/Src/ADBMS_Abstraction.c **** } 1470 .loc 1 422 1 is_stmt 0 view .LVU427 1471 013e 0020 movs r0, #0 1472 0140 02B0 add sp, sp, #8 1473 .cfi_def_cfa_offset 8 1474 @ sp needed 1475 0142 10BD pop {r4, pc} 1476 .loc 1 422 1 view .LVU428 1477 .cfi_endproc 1478 .LFE155: 1480 .section .text.amsCellMeasurement,"ax",%progbits 1481 .align 1 1482 .global amsCellMeasurement 1483 .syntax unified 1484 .thumb 1485 .thumb_func 1487 amsCellMeasurement: ARM GAS /tmp/ccKQpHxH.s page 34 1488 .LVL92: 1489 .LFB132: 39:Core/Src/ADBMS_Abstraction.c **** uint8_t rxbuffer[CV_GROUP_A_SIZE]; 1490 .loc 1 39 1 is_stmt 1 view -0 1491 .cfi_startproc 1492 @ args = 0, pretend = 0, frame = 8 1493 @ frame_needed = 0, uses_anonymous_args = 0 39:Core/Src/ADBMS_Abstraction.c **** uint8_t rxbuffer[CV_GROUP_A_SIZE]; 1494 .loc 1 39 1 is_stmt 0 view .LVU430 1495 0000 10B5 push {r4, lr} 1496 .cfi_def_cfa_offset 8 1497 .cfi_offset 4, -8 1498 .cfi_offset 14, -4 1499 0002 82B0 sub sp, sp, #8 1500 .cfi_def_cfa_offset 16 1501 0004 0446 mov r4, r0 40:Core/Src/ADBMS_Abstraction.c **** writeCMD((ADCV | CH000 | MD10), rxbuffer, 0); 1502 .loc 1 40 2 is_stmt 1 view .LVU431 41:Core/Src/ADBMS_Abstraction.c **** mcuDelay(5); 1503 .loc 1 41 2 view .LVU432 1504 0006 0022 movs r2, #0 1505 0008 6946 mov r1, sp 1506 000a 4FF45870 mov r0, #864 1507 .LVL93: 41:Core/Src/ADBMS_Abstraction.c **** mcuDelay(5); 1508 .loc 1 41 2 is_stmt 0 view .LVU433 1509 000e FFF7FEFF bl writeCMD 1510 .LVL94: 42:Core/Src/ADBMS_Abstraction.c **** amsReadCellVoltages(module); 1511 .loc 1 42 2 is_stmt 1 view .LVU434 1512 0012 0520 movs r0, #5 1513 0014 FFF7FEFF bl mcuDelay 1514 .LVL95: 43:Core/Src/ADBMS_Abstraction.c **** return 0; 1515 .loc 1 43 2 view .LVU435 1516 0018 2046 mov r0, r4 1517 001a FFF7FEFF bl amsReadCellVoltages 1518 .LVL96: 44:Core/Src/ADBMS_Abstraction.c **** } 1519 .loc 1 44 2 view .LVU436 45:Core/Src/ADBMS_Abstraction.c **** 1520 .loc 1 45 1 is_stmt 0 view .LVU437 1521 001e 0020 movs r0, #0 1522 0020 02B0 add sp, sp, #8 1523 .cfi_def_cfa_offset 8 1524 @ sp needed 1525 0022 10BD pop {r4, pc} 45:Core/Src/ADBMS_Abstraction.c **** 1526 .loc 1 45 1 view .LVU438 1527 .cfi_endproc 1528 .LFE132: 1530 .section .text.amscheckOpenCellWire,"ax",%progbits 1531 .align 1 1532 .global amscheckOpenCellWire 1533 .syntax unified 1534 .thumb 1535 .thumb_func ARM GAS /tmp/ccKQpHxH.s page 35 1537 amscheckOpenCellWire: 1538 .LVL97: 1539 .LFB154: 344:Core/Src/ADBMS_Abstraction.c **** uint8 args; 1540 .loc 1 344 1 is_stmt 1 view -0 1541 .cfi_startproc 1542 @ args = 0, pretend = 0, frame = 40 1543 @ frame_needed = 0, uses_anonymous_args = 0 344:Core/Src/ADBMS_Abstraction.c **** uint8 args; 1544 .loc 1 344 1 is_stmt 0 view .LVU440 1545 0000 10B5 push {r4, lr} 1546 .cfi_def_cfa_offset 8 1547 .cfi_offset 4, -8 1548 .cfi_offset 14, -4 1549 0002 8AB0 sub sp, sp, #40 1550 .cfi_def_cfa_offset 48 1551 0004 0446 mov r4, r0 345:Core/Src/ADBMS_Abstraction.c **** uint16 cellspu[18]; 1552 .loc 1 345 2 is_stmt 1 view .LVU441 346:Core/Src/ADBMS_Abstraction.c **** 1553 .loc 1 346 2 view .LVU442 348:Core/Src/ADBMS_Abstraction.c **** HAL_Delay(5); 1554 .loc 1 348 2 view .LVU443 1555 0006 0022 movs r2, #0 1556 0008 0DF12701 add r1, sp, #39 1557 000c 4FF43A70 mov r0, #744 1558 .LVL98: 348:Core/Src/ADBMS_Abstraction.c **** HAL_Delay(5); 1559 .loc 1 348 2 is_stmt 0 view .LVU444 1560 0010 FFF7FEFF bl writeCMD 1561 .LVL99: 349:Core/Src/ADBMS_Abstraction.c **** writeCMD(ADOW |MD01|CH000|PUP , &args, 0); //run Pull Up at least Twice 1562 .loc 1 349 2 is_stmt 1 view .LVU445 1563 0014 0520 movs r0, #5 1564 0016 FFF7FEFF bl HAL_Delay 1565 .LVL100: 350:Core/Src/ADBMS_Abstraction.c **** HAL_Delay(5); 1566 .loc 1 350 2 view .LVU446 1567 001a 0022 movs r2, #0 1568 001c 0DF12701 add r1, sp, #39 1569 0020 4FF43A70 mov r0, #744 1570 0024 FFF7FEFF bl writeCMD 1571 .LVL101: 351:Core/Src/ADBMS_Abstraction.c **** 1572 .loc 1 351 2 view .LVU447 1573 0028 0520 movs r0, #5 1574 002a FFF7FEFF bl HAL_Delay 1575 .LVL102: 353:Core/Src/ADBMS_Abstraction.c **** 1576 .loc 1 353 2 view .LVU448 1577 002e 2046 mov r0, r4 1578 0030 FFF7FEFF bl amsReadCellVoltages 1579 .LVL103: 355:Core/Src/ADBMS_Abstraction.c **** { 1580 .loc 1 355 2 view .LVU449 1581 .LBB6: 355:Core/Src/ADBMS_Abstraction.c **** { ARM GAS /tmp/ccKQpHxH.s page 36 1582 .loc 1 355 6 view .LVU450 355:Core/Src/ADBMS_Abstraction.c **** { 1583 .loc 1 355 14 is_stmt 0 view .LVU451 1584 0034 0023 movs r3, #0 355:Core/Src/ADBMS_Abstraction.c **** { 1585 .loc 1 355 2 view .LVU452 1586 0036 08E0 b .L52 1587 .LVL104: 1588 .L53: 357:Core/Src/ADBMS_Abstraction.c **** } 1589 .loc 1 357 3 is_stmt 1 discriminator 3 view .LVU453 357:Core/Src/ADBMS_Abstraction.c **** } 1590 .loc 1 357 36 is_stmt 0 discriminator 3 view .LVU454 1591 0038 34F81310 ldrh r1, [r4, r3, lsl #1] 357:Core/Src/ADBMS_Abstraction.c **** } 1592 .loc 1 357 14 discriminator 3 view .LVU455 1593 003c 0AAA add r2, sp, #40 1594 003e 02EB4302 add r2, r2, r3, lsl #1 1595 0042 22F8281C strh r1, [r2, #-40] @ movhi 355:Core/Src/ADBMS_Abstraction.c **** { 1596 .loc 1 355 40 is_stmt 1 discriminator 3 view .LVU456 1597 0046 0133 adds r3, r3, #1 1598 .LVL105: 355:Core/Src/ADBMS_Abstraction.c **** { 1599 .loc 1 355 40 is_stmt 0 discriminator 3 view .LVU457 1600 0048 DBB2 uxtb r3, r3 1601 .LVL106: 1602 .L52: 355:Core/Src/ADBMS_Abstraction.c **** { 1603 .loc 1 355 23 is_stmt 1 discriminator 1 view .LVU458 1604 004a 224A ldr r2, .L62 1605 004c 1278 ldrb r2, [r2] @ zero_extendqisi2 1606 004e 9A42 cmp r2, r3 1607 0050 F2D8 bhi .L53 1608 .LBE6: 361:Core/Src/ADBMS_Abstraction.c **** HAL_Delay(5); 1609 .loc 1 361 2 view .LVU459 1610 0052 0022 movs r2, #0 1611 0054 0DF12701 add r1, sp, #39 1612 0058 4FF42A70 mov r0, #680 1613 005c FFF7FEFF bl writeCMD 1614 .LVL107: 362:Core/Src/ADBMS_Abstraction.c **** writeCMD(ADOW |MD01|CH000, &args, 0); //run Pull Up at least Twice 1615 .loc 1 362 2 view .LVU460 1616 0060 0520 movs r0, #5 1617 0062 FFF7FEFF bl HAL_Delay 1618 .LVL108: 363:Core/Src/ADBMS_Abstraction.c **** HAL_Delay(5); 1619 .loc 1 363 2 view .LVU461 1620 0066 0022 movs r2, #0 1621 0068 0DF12701 add r1, sp, #39 1622 006c 4FF42A70 mov r0, #680 1623 0070 FFF7FEFF bl writeCMD 1624 .LVL109: 364:Core/Src/ADBMS_Abstraction.c **** 1625 .loc 1 364 2 view .LVU462 1626 0074 0520 movs r0, #5 ARM GAS /tmp/ccKQpHxH.s page 37 1627 0076 FFF7FEFF bl HAL_Delay 1628 .LVL110: 366:Core/Src/ADBMS_Abstraction.c **** 1629 .loc 1 366 2 view .LVU463 1630 007a 2046 mov r0, r4 1631 007c FFF7FEFF bl amsReadCellVoltages 1632 .LVL111: 368:Core/Src/ADBMS_Abstraction.c **** { 1633 .loc 1 368 2 view .LVU464 1634 .LBB7: 368:Core/Src/ADBMS_Abstraction.c **** { 1635 .loc 1 368 6 view .LVU465 368:Core/Src/ADBMS_Abstraction.c **** { 1636 .loc 1 368 12 is_stmt 0 view .LVU466 1637 0080 0123 movs r3, #1 368:Core/Src/ADBMS_Abstraction.c **** { 1638 .loc 1 368 2 view .LVU467 1639 0082 01E0 b .L54 1640 .LVL112: 1641 .L55: 368:Core/Src/ADBMS_Abstraction.c **** { 1642 .loc 1 368 39 is_stmt 1 discriminator 2 view .LVU468 1643 0084 0133 adds r3, r3, #1 1644 .LVL113: 368:Core/Src/ADBMS_Abstraction.c **** { 1645 .loc 1 368 39 is_stmt 0 discriminator 2 view .LVU469 1646 0086 DBB2 uxtb r3, r3 1647 .LVL114: 1648 .L54: 368:Core/Src/ADBMS_Abstraction.c **** { 1649 .loc 1 368 21 is_stmt 1 discriminator 1 view .LVU470 1650 0088 124A ldr r2, .L62 1651 008a 1278 ldrb r2, [r2] @ zero_extendqisi2 1652 008c 9A42 cmp r2, r3 1653 008e 0ED9 bls .L61 1654 .LBB8: 370:Core/Src/ADBMS_Abstraction.c **** if(dv < -4000) 1655 .loc 1 370 3 view .LVU471 370:Core/Src/ADBMS_Abstraction.c **** if(dv < -4000) 1656 .loc 1 370 19 is_stmt 0 view .LVU472 1657 0090 0AAA add r2, sp, #40 1658 0092 02EB4302 add r2, r2, r3, lsl #1 1659 0096 32F8282C ldrh r2, [r2, #-40] 370:Core/Src/ADBMS_Abstraction.c **** if(dv < -4000) 1660 .loc 1 370 43 view .LVU473 1661 009a 34F81310 ldrh r1, [r4, r3, lsl #1] 370:Core/Src/ADBMS_Abstraction.c **** if(dv < -4000) 1662 .loc 1 370 7 view .LVU474 1663 009e 521A subs r2, r2, r1 1664 .LVL115: 371:Core/Src/ADBMS_Abstraction.c **** { 1665 .loc 1 371 3 is_stmt 1 view .LVU475 371:Core/Src/ADBMS_Abstraction.c **** { 1666 .loc 1 371 5 is_stmt 0 view .LVU476 1667 00a0 12F57A6F cmn r2, #4000 1668 00a4 EEDA bge .L55 373:Core/Src/ADBMS_Abstraction.c **** } ARM GAS /tmp/ccKQpHxH.s page 38 1669 .loc 1 373 4 is_stmt 1 view .LVU477 373:Core/Src/ADBMS_Abstraction.c **** } 1670 .loc 1 373 13 is_stmt 0 view .LVU478 1671 00a6 0133 adds r3, r3, #1 1672 .LVL116: 373:Core/Src/ADBMS_Abstraction.c **** } 1673 .loc 1 373 13 view .LVU479 1674 00a8 D8B2 uxtb r0, r3 1675 .LVL117: 1676 .L56: 373:Core/Src/ADBMS_Abstraction.c **** } 1677 .loc 1 373 13 view .LVU480 1678 .LBE8: 1679 .LBE7: 386:Core/Src/ADBMS_Abstraction.c **** 1680 .loc 1 386 1 view .LVU481 1681 00aa 0AB0 add sp, sp, #40 1682 .cfi_remember_state 1683 .cfi_def_cfa_offset 8 1684 @ sp needed 1685 00ac 10BD pop {r4, pc} 1686 .LVL118: 1687 .L61: 1688 .cfi_restore_state 376:Core/Src/ADBMS_Abstraction.c **** { 1689 .loc 1 376 2 is_stmt 1 view .LVU482 376:Core/Src/ADBMS_Abstraction.c **** { 1690 .loc 1 376 13 is_stmt 0 view .LVU483 1691 00ae BDF80030 ldrh r3, [sp] 1692 .LVL119: 376:Core/Src/ADBMS_Abstraction.c **** { 1693 .loc 1 376 23 view .LVU484 1694 00b2 013B subs r3, r3, #1 1695 00b4 9BB2 uxth r3, r3 376:Core/Src/ADBMS_Abstraction.c **** { 1696 .loc 1 376 4 view .LVU485 1697 00b6 4FF6FD71 movw r1, #65533 1698 00ba 8B42 cmp r3, r1 1699 00bc 05D8 bhi .L58 380:Core/Src/ADBMS_Abstraction.c **** { 1700 .loc 1 380 2 is_stmt 1 view .LVU486 380:Core/Src/ADBMS_Abstraction.c **** { 1701 .loc 1 380 39 is_stmt 0 view .LVU487 1702 00be 013A subs r2, r2, #1 380:Core/Src/ADBMS_Abstraction.c **** { 1703 .loc 1 380 25 view .LVU488 1704 00c0 34F81230 ldrh r3, [r4, r2, lsl #1] 380:Core/Src/ADBMS_Abstraction.c **** { 1705 .loc 1 380 4 view .LVU489 1706 00c4 1BB1 cbz r3, .L59 385:Core/Src/ADBMS_Abstraction.c **** } 1707 .loc 1 385 9 view .LVU490 1708 00c6 0020 movs r0, #0 1709 00c8 EFE7 b .L56 1710 .L58: 378:Core/Src/ADBMS_Abstraction.c **** } 1711 .loc 1 378 10 view .LVU491 ARM GAS /tmp/ccKQpHxH.s page 39 1712 00ca 0120 movs r0, #1 1713 00cc EDE7 b .L56 1714 .L59: 382:Core/Src/ADBMS_Abstraction.c **** } 1715 .loc 1 382 10 view .LVU492 1716 00ce 1320 movs r0, #19 1717 00d0 EBE7 b .L56 1718 .L63: 1719 00d2 00BF .align 2 1720 .L62: 1721 00d4 00000000 .word numberofcells 1722 .cfi_endproc 1723 .LFE154: 1725 .global numberofauxchannels 1726 .section .bss.numberofauxchannels,"aw",%nobits 1729 numberofauxchannels: 1730 0000 00 .space 1 1731 .global numberofcells 1732 .section .bss.numberofcells,"aw",%nobits 1735 numberofcells: 1736 0000 00 .space 1 1737 .text 1738 .Letext0: 1739 .file 2 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non 1740 .file 3 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non 1741 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 1742 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 1743 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 1744 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_spi.h" 1745 .file 8 "Core/Inc/ADBMS_LL_Driver.h" 1746 .file 9 "Core/Inc/ADBMS_Abstraction.h" 1747 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h" ARM GAS /tmp/ccKQpHxH.s page 40 DEFINED SYMBOLS *ABS*:0000000000000000 ADBMS_Abstraction.c /tmp/ccKQpHxH.s:21 .text.amsWakeUp:0000000000000000 $t /tmp/ccKQpHxH.s:27 .text.amsWakeUp:0000000000000000 amsWakeUp /tmp/ccKQpHxH.s:56 .text.amsConfigCellMeasurement:0000000000000000 $t /tmp/ccKQpHxH.s:62 .text.amsConfigCellMeasurement:0000000000000000 amsConfigCellMeasurement /tmp/ccKQpHxH.s:83 .text.amsConfigCellMeasurement:0000000000000008 $d /tmp/ccKQpHxH.s:1735 .bss.numberofcells:0000000000000000 numberofcells /tmp/ccKQpHxH.s:88 .text.amsAuxMeasurement:0000000000000000 $t /tmp/ccKQpHxH.s:94 .text.amsAuxMeasurement:0000000000000000 amsAuxMeasurement /tmp/ccKQpHxH.s:249 .text.amsInternalStatusMeasurement:0000000000000000 $t /tmp/ccKQpHxH.s:255 .text.amsInternalStatusMeasurement:0000000000000000 amsInternalStatusMeasurement /tmp/ccKQpHxH.s:343 .text.amsConfigAuxMeasurement:0000000000000000 $t /tmp/ccKQpHxH.s:349 .text.amsConfigAuxMeasurement:0000000000000000 amsConfigAuxMeasurement /tmp/ccKQpHxH.s:412 .text.amsConfigGPIO:0000000000000000 $t /tmp/ccKQpHxH.s:418 .text.amsConfigGPIO:0000000000000000 amsConfigGPIO /tmp/ccKQpHxH.s:436 .text.amsSetGPIO:0000000000000000 $t /tmp/ccKQpHxH.s:442 .text.amsSetGPIO:0000000000000000 amsSetGPIO /tmp/ccKQpHxH.s:460 .text.readGPIO:0000000000000000 $t /tmp/ccKQpHxH.s:466 .text.readGPIO:0000000000000000 readGPIO /tmp/ccKQpHxH.s:484 .text.amsConfigBalancing:0000000000000000 $t /tmp/ccKQpHxH.s:490 .text.amsConfigBalancing:0000000000000000 amsConfigBalancing /tmp/ccKQpHxH.s:585 .text.amsStartBalancing:0000000000000000 $t /tmp/ccKQpHxH.s:591 .text.amsStartBalancing:0000000000000000 amsStartBalancing /tmp/ccKQpHxH.s:619 .text.amsStopBalancing:0000000000000000 $t /tmp/ccKQpHxH.s:625 .text.amsStopBalancing:0000000000000000 amsStopBalancing /tmp/ccKQpHxH.s:649 .text.amsSelfTest:0000000000000000 $t /tmp/ccKQpHxH.s:655 .text.amsSelfTest:0000000000000000 amsSelfTest /tmp/ccKQpHxH.s:670 .text.amsConfigUnderVoltage:0000000000000000 $t /tmp/ccKQpHxH.s:676 .text.amsConfigUnderVoltage:0000000000000000 amsConfigUnderVoltage /tmp/ccKQpHxH.s:735 .text.amsCheckUnderOverVoltage:0000000000000000 $t /tmp/ccKQpHxH.s:741 .text.amsCheckUnderOverVoltage:0000000000000000 amsCheckUnderOverVoltage /tmp/ccKQpHxH.s:930 .text.amsConfigOverVoltage:0000000000000000 $t /tmp/ccKQpHxH.s:936 .text.amsConfigOverVoltage:0000000000000000 amsConfigOverVoltage /tmp/ccKQpHxH.s:994 .text.initAMS:0000000000000000 $t /tmp/ccKQpHxH.s:1000 .text.initAMS:0000000000000000 initAMS /tmp/ccKQpHxH.s:1052 .text.initAMS:0000000000000038 $d /tmp/ccKQpHxH.s:1729 .bss.numberofauxchannels:0000000000000000 numberofauxchannels /tmp/ccKQpHxH.s:1058 .text.amsClearStatus:0000000000000000 $t /tmp/ccKQpHxH.s:1064 .text.amsClearStatus:0000000000000000 amsClearStatus /tmp/ccKQpHxH.s:1093 .text.amsClearAux:0000000000000000 $t /tmp/ccKQpHxH.s:1099 .text.amsClearAux:0000000000000000 amsClearAux /tmp/ccKQpHxH.s:1128 .text.amsClearCells:0000000000000000 $t /tmp/ccKQpHxH.s:1134 .text.amsClearCells:0000000000000000 amsClearCells /tmp/ccKQpHxH.s:1163 .text.amsSendWarning:0000000000000000 $t /tmp/ccKQpHxH.s:1169 .text.amsSendWarning:0000000000000000 amsSendWarning /tmp/ccKQpHxH.s:1184 .text.amsSendError:0000000000000000 $t /tmp/ccKQpHxH.s:1190 .text.amsSendError:0000000000000000 amsSendError /tmp/ccKQpHxH.s:1205 .text.amsClearWarning:0000000000000000 $t /tmp/ccKQpHxH.s:1211 .text.amsClearWarning:0000000000000000 amsClearWarning /tmp/ccKQpHxH.s:1226 .text.amsClearError:0000000000000000 $t /tmp/ccKQpHxH.s:1232 .text.amsClearError:0000000000000000 amsClearError /tmp/ccKQpHxH.s:1247 .text.amsReadCellVoltages:0000000000000000 $t /tmp/ccKQpHxH.s:1253 .text.amsReadCellVoltages:0000000000000000 amsReadCellVoltages /tmp/ccKQpHxH.s:1481 .text.amsCellMeasurement:0000000000000000 $t /tmp/ccKQpHxH.s:1487 .text.amsCellMeasurement:0000000000000000 amsCellMeasurement /tmp/ccKQpHxH.s:1531 .text.amscheckOpenCellWire:0000000000000000 $t ARM GAS /tmp/ccKQpHxH.s page 41 /tmp/ccKQpHxH.s:1537 .text.amscheckOpenCellWire:0000000000000000 amscheckOpenCellWire /tmp/ccKQpHxH.s:1721 .text.amscheckOpenCellWire:00000000000000d4 $d /tmp/ccKQpHxH.s:1730 .bss.numberofauxchannels:0000000000000000 $d /tmp/ccKQpHxH.s:1736 .bss.numberofcells:0000000000000000 $d UNDEFINED SYMBOLS readCMD writeCMD mcuDelay adbmsDriverInit HAL_Delay