adbmsFunctionTest/build/ADBMS_Abstraction.lst
2024-10-12 22:13:04 +02:00

2693 lines
126 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ARM GAS /tmp/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/ccNub4kL.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/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/
1952 .file 3 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/
1953 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h"
1954 .file 5 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/
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/ccNub4kL.s page 45
DEFINED SYMBOLS
*ABS*:00000000 ADBMS_Abstraction.c
/tmp/ccNub4kL.s:21 .text.amsWakeUp:00000000 $t
/tmp/ccNub4kL.s:27 .text.amsWakeUp:00000000 amsWakeUp
/tmp/ccNub4kL.s:55 .text.amsConfigCellMeasurement:00000000 $t
/tmp/ccNub4kL.s:61 .text.amsConfigCellMeasurement:00000000 amsConfigCellMeasurement
/tmp/ccNub4kL.s:82 .text.amsConfigCellMeasurement:00000008 $d
/tmp/ccNub4kL.s:1947 .bss.numberofcells:00000000 numberofcells
/tmp/ccNub4kL.s:92 .text.amsAuxAndStatusMeasurement:00000000 $t
/tmp/ccNub4kL.s:98 .text.amsAuxAndStatusMeasurement:00000000 amsAuxAndStatusMeasurement
/tmp/ccNub4kL.s:649 .text.amsAuxAndStatusMeasurement:000003e8 $d
/tmp/ccNub4kL.s:658 .text.amsConfigBalancing:00000000 $t
/tmp/ccNub4kL.s:664 .text.amsConfigBalancing:00000000 amsConfigBalancing
/tmp/ccNub4kL.s:871 .text.amsStartBalancing:00000000 $t
/tmp/ccNub4kL.s:877 .text.amsStartBalancing:00000000 amsStartBalancing
/tmp/ccNub4kL.s:904 .text.amsStopBalancing:00000000 $t
/tmp/ccNub4kL.s:910 .text.amsStopBalancing:00000000 amsStopBalancing
/tmp/ccNub4kL.s:933 .text.amsSelfTest:00000000 $t
/tmp/ccNub4kL.s:939 .text.amsSelfTest:00000000 amsSelfTest
/tmp/ccNub4kL.s:954 .text.amsConfigOverUnderVoltage:00000000 $t
/tmp/ccNub4kL.s:960 .text.amsConfigOverUnderVoltage:00000000 amsConfigOverUnderVoltage
/tmp/ccNub4kL.s:1072 .rodata.amsReset.str1.4:00000000 $d
/tmp/ccNub4kL.s:1076 .text.amsReset:00000000 $t
/tmp/ccNub4kL.s:1082 .text.amsReset:00000000 amsReset
/tmp/ccNub4kL.s:1195 .text.amsReset:00000084 $d
/tmp/ccNub4kL.s:1201 .text.initAMS:00000000 $t
/tmp/ccNub4kL.s:1207 .text.initAMS:00000000 initAMS
/tmp/ccNub4kL.s:1245 .text.initAMS:00000018 $d
/tmp/ccNub4kL.s:1941 .bss.numberofauxchannels:00000000 numberofauxchannels
/tmp/ccNub4kL.s:1251 .text.amsCheckUnderOverVoltage:00000000 $t
/tmp/ccNub4kL.s:1257 .text.amsCheckUnderOverVoltage:00000000 amsCheckUnderOverVoltage
/tmp/ccNub4kL.s:1366 .text.amsCheckUnderOverVoltage:00000068 $d
/tmp/ccNub4kL.s:1371 .text.amsClearAux:00000000 $t
/tmp/ccNub4kL.s:1377 .text.amsClearAux:00000000 amsClearAux
/tmp/ccNub4kL.s:1405 .text.amsClearCells:00000000 $t
/tmp/ccNub4kL.s:1411 .text.amsClearCells:00000000 amsClearCells
/tmp/ccNub4kL.s:1439 .text.amsReadCellVoltages:00000000 $t
/tmp/ccNub4kL.s:1445 .text.amsReadCellVoltages:00000000 amsReadCellVoltages
/tmp/ccNub4kL.s:1902 .text.amsReadCellVoltages:00000338 $d
/tmp/ccNub4kL.s:1910 .text.amsCellMeasurement:00000000 $t
/tmp/ccNub4kL.s:1916 .text.amsCellMeasurement:00000000 amsCellMeasurement
/tmp/ccNub4kL.s:1942 .bss.numberofauxchannels:00000000 $d
/tmp/ccNub4kL.s:1948 .bss.numberofcells:00000000 $d
UNDEFINED SYMBOLS
readCMD
__aeabi_i2d
__aeabi_dmul
__aeabi_dadd
__aeabi_d2iz
__aeabi_d2uiz
pollCMD
writeCMD
mcuDelay
adbmsDriverInit