2023-05-30 18:57:16 +02:00

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