3914 lines
159 KiB
Plaintext
3914 lines
159 KiB
Plaintext
ARM GAS /tmp/cctkPVvk.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, 6
|
||
13 .eabi_attribute 34, 1
|
||
14 .eabi_attribute 18, 4
|
||
15 .file "state_machine.c"
|
||
16 .text
|
||
17 .Ltext0:
|
||
18 .cfi_sections .debug_frame
|
||
19 .file 1 "Core/Src/state_machine.c"
|
||
20 .global programming_mode
|
||
21 .section .bss.programming_mode,"aw",%nobits
|
||
24 programming_mode:
|
||
25 0000 00 .space 1
|
||
26 .global debugging_mode
|
||
27 .section .bss.debugging_mode,"aw",%nobits
|
||
30 debugging_mode:
|
||
31 0000 00 .space 1
|
||
32 .global state
|
||
33 .section .bss.state,"aw",%nobits
|
||
34 .align 2
|
||
37 state:
|
||
38 0000 00000000 .space 6
|
||
38 0000
|
||
39 .global RELAY_BAT_SIDE_VOLTAGE
|
||
40 .section .bss.RELAY_BAT_SIDE_VOLTAGE,"aw",%nobits
|
||
41 .align 2
|
||
44 RELAY_BAT_SIDE_VOLTAGE:
|
||
45 0000 00000000 .space 4
|
||
46 .global RELAY_ESC_SIDE_VOLTAGE
|
||
47 .section .bss.RELAY_ESC_SIDE_VOLTAGE,"aw",%nobits
|
||
48 .align 2
|
||
51 RELAY_ESC_SIDE_VOLTAGE:
|
||
52 0000 00000000 .space 4
|
||
53 .global CURRENT_MEASUREMENT
|
||
54 .section .bss.CURRENT_MEASUREMENT,"aw",%nobits
|
||
55 .align 2
|
||
58 CURRENT_MEASUREMENT:
|
||
59 0000 00000000 .space 4
|
||
60 .global CURRENT_MEASUREMENT_ON
|
||
61 .section .bss.CURRENT_MEASUREMENT_ON,"aw",%nobits
|
||
64 CURRENT_MEASUREMENT_ON:
|
||
65 0000 00 .space 1
|
||
66 .global balancing_state
|
||
67 .section .bss.balancing_state,"aw",%nobits
|
||
70 balancing_state:
|
||
71 0000 00 .space 1
|
||
72 .global base_offset
|
||
ARM GAS /tmp/cctkPVvk.s page 2
|
||
|
||
|
||
73 .section .bss.base_offset,"aw",%nobits
|
||
74 .align 2
|
||
77 base_offset:
|
||
78 0000 00000000 .space 4
|
||
79 .global error_timer
|
||
80 .section .bss.error_timer,"aw",%nobits
|
||
81 .align 2
|
||
84 error_timer:
|
||
85 0000 00000000 .space 4
|
||
86 .global precharge_timer
|
||
87 .section .bss.precharge_timer,"aw",%nobits
|
||
88 .align 2
|
||
91 precharge_timer:
|
||
92 0000 00000000 .space 4
|
||
93 .global discharge_timer
|
||
94 .section .bss.discharge_timer,"aw",%nobits
|
||
95 .align 2
|
||
98 discharge_timer:
|
||
99 0000 00000000 .space 4
|
||
100 .global balancing_timer
|
||
101 .section .bss.balancing_timer,"aw",%nobits
|
||
102 .align 2
|
||
105 balancing_timer:
|
||
106 0000 00000000 .space 4
|
||
107 .global eeprom_timer
|
||
108 .section .bss.eeprom_timer,"aw",%nobits
|
||
109 .align 2
|
||
112 eeprom_timer:
|
||
113 0000 00000000 .space 4
|
||
114 .global powerground_softstart_timer
|
||
115 .section .bss.powerground_softstart_timer,"aw",%nobits
|
||
116 .align 2
|
||
119 powerground_softstart_timer:
|
||
120 0000 00000000 .space 4
|
||
121 .global powerground_calibration_timer
|
||
122 .section .bss.powerground_calibration_timer,"aw",%nobits
|
||
123 .align 2
|
||
126 powerground_calibration_timer:
|
||
127 0000 00000000 .space 4
|
||
128 .global powerground_calibration_stage
|
||
129 .section .bss.powerground_calibration_stage,"aw",%nobits
|
||
132 powerground_calibration_stage:
|
||
133 0000 00 .space 1
|
||
134 .global current_powerground_status
|
||
135 .section .bss.current_powerground_status,"aw",%nobits
|
||
138 current_powerground_status:
|
||
139 0000 00 .space 1
|
||
140 .global target_powerground_status
|
||
141 .section .bss.target_powerground_status,"aw",%nobits
|
||
144 target_powerground_status:
|
||
145 0000 00 .space 1
|
||
146 .section .bss.timestamp,"aw",%nobits
|
||
147 .align 2
|
||
150 timestamp:
|
||
151 0000 00000000 .space 4
|
||
152 .section .text.sm_init,"ax",%progbits
|
||
153 .align 1
|
||
ARM GAS /tmp/cctkPVvk.s page 3
|
||
|
||
|
||
154 .global sm_init
|
||
155 .syntax unified
|
||
156 .thumb
|
||
157 .thumb_func
|
||
159 sm_init:
|
||
160 .LFB130:
|
||
1:Core/Src/state_machine.c **** /*
|
||
2:Core/Src/state_machine.c **** * state_machine.h
|
||
3:Core/Src/state_machine.c **** *
|
||
4:Core/Src/state_machine.c **** * Created on: 07.07.2024
|
||
5:Core/Src/state_machine.c **** * Author: Hamza
|
||
6:Core/Src/state_machine.c **** */
|
||
7:Core/Src/state_machine.c ****
|
||
8:Core/Src/state_machine.c **** #include <state_machine.h>
|
||
9:Core/Src/state_machine.c **** #include <stdint.h>
|
||
10:Core/Src/state_machine.c **** #include "ADBMS_Abstraction.h"
|
||
11:Core/Src/state_machine.c **** #include "AMS_HighLevel.h"
|
||
12:Core/Src/state_machine.c **** #include "PWM_control.h"
|
||
13:Core/Src/state_machine.c **** #include "can.h"
|
||
14:Core/Src/state_machine.c **** #include "eeprom.h"
|
||
15:Core/Src/state_machine.c **** #include "stm32f3xx_hal.h"
|
||
16:Core/Src/state_machine.c ****
|
||
17:Core/Src/state_machine.c **** // Time to wait after reaching 95% of battery voltage before exiting precharge
|
||
18:Core/Src/state_machine.c **** // Set this to 1000 in scruti to demonstrate the voltage on the multimeter
|
||
19:Core/Src/state_machine.c **** #define PRECHARGE_DURATION 8000 // ms
|
||
20:Core/Src/state_machine.c **** // Time to wait for discharge
|
||
21:Core/Src/state_machine.c **** #define DISCHARGE_DURATION 8000 // ms
|
||
22:Core/Src/state_machine.c **** // Time to wait between closing relays
|
||
23:Core/Src/state_machine.c **** #define RELAY_CLOSE_WAIT 10 // ms
|
||
24:Core/Src/state_machine.c **** // waiting time between to eeprom writes
|
||
25:Core/Src/state_machine.c **** #define EEPROM_WRITE_FREQ 1000
|
||
26:Core/Src/state_machine.c **** // how delay between steps of 5 -> 15ms * (100/5) = 300ms
|
||
27:Core/Src/state_machine.c **** #define POWERGROUND_SOFTSTART_INCREMENT_DELAY 15
|
||
28:Core/Src/state_machine.c **** // after errors are cleared wait for ERROR_LATCH_TIME ms before returning to inactive mode
|
||
29:Core/Src/state_machine.c **** #define ERROR_LATCH_TIME 10000 //ms
|
||
30:Core/Src/state_machine.c ****
|
||
31:Core/Src/state_machine.c **** /*
|
||
32:Core/Src/state_machine.c **** 10
|
||
33:Core/Src/state_machine.c **** 20
|
||
34:Core/Src/state_machine.c **** 30
|
||
35:Core/Src/state_machine.c **** 40
|
||
36:Core/Src/state_machine.c **** 50
|
||
37:Core/Src/state_machine.c **** 60
|
||
38:Core/Src/state_machine.c **** 70
|
||
39:Core/Src/state_machine.c **** 80
|
||
40:Core/Src/state_machine.c **** 90
|
||
41:Core/Src/state_machine.c **** 100
|
||
42:Core/Src/state_machine.c **** */
|
||
43:Core/Src/state_machine.c ****
|
||
44:Core/Src/state_machine.c **** bool programming_mode;
|
||
45:Core/Src/state_machine.c **** bool debugging_mode;
|
||
46:Core/Src/state_machine.c ****
|
||
47:Core/Src/state_machine.c **** StateHandle state;
|
||
48:Core/Src/state_machine.c **** int32_t RELAY_BAT_SIDE_VOLTAGE;
|
||
49:Core/Src/state_machine.c **** int32_t RELAY_ESC_SIDE_VOLTAGE;
|
||
50:Core/Src/state_machine.c **** int32_t CURRENT_MEASUREMENT;
|
||
51:Core/Src/state_machine.c **** bool CURRENT_MEASUREMENT_ON;
|
||
ARM GAS /tmp/cctkPVvk.s page 4
|
||
|
||
|
||
52:Core/Src/state_machine.c **** bool balancing_state;
|
||
53:Core/Src/state_machine.c **** float base_offset = 0;
|
||
54:Core/Src/state_machine.c ****
|
||
55:Core/Src/state_machine.c **** uint32_t error_timer;
|
||
56:Core/Src/state_machine.c **** uint32_t precharge_timer;
|
||
57:Core/Src/state_machine.c **** uint32_t discharge_timer;
|
||
58:Core/Src/state_machine.c **** uint32_t balancing_timer;
|
||
59:Core/Src/state_machine.c **** uint32_t eeprom_timer;
|
||
60:Core/Src/state_machine.c ****
|
||
61:Core/Src/state_machine.c **** uint32_t powerground_softstart_timer;
|
||
62:Core/Src/state_machine.c **** uint32_t powerground_calibration_timer;
|
||
63:Core/Src/state_machine.c **** uint8_t powerground_calibration_stage;
|
||
64:Core/Src/state_machine.c ****
|
||
65:Core/Src/state_machine.c **** uint8_t current_powerground_status;
|
||
66:Core/Src/state_machine.c **** uint8_t target_powerground_status;
|
||
67:Core/Src/state_machine.c ****
|
||
68:Core/Src/state_machine.c **** static uint32_t timestamp;
|
||
69:Core/Src/state_machine.c ****
|
||
70:Core/Src/state_machine.c **** void sm_init(){
|
||
161 .loc 1 70 15
|
||
162 .cfi_startproc
|
||
163 @ args = 0, pretend = 0, frame = 0
|
||
164 @ frame_needed = 1, uses_anonymous_args = 0
|
||
165 @ link register save eliminated.
|
||
166 0000 80B4 push {r7}
|
||
167 .cfi_def_cfa_offset 4
|
||
168 .cfi_offset 7, -4
|
||
169 0002 00AF add r7, sp, #0
|
||
170 .cfi_def_cfa_register 7
|
||
71:Core/Src/state_machine.c **** state.current_state = STATE_INACTIVE;
|
||
171 .loc 1 71 23
|
||
172 0004 164B ldr r3, .L2
|
||
173 0006 0022 movs r2, #0
|
||
174 0008 1A70 strb r2, [r3]
|
||
72:Core/Src/state_machine.c **** state.target_state = STATE_INACTIVE;
|
||
175 .loc 1 72 22
|
||
176 000a 154B ldr r3, .L2
|
||
177 000c 0022 movs r2, #0
|
||
178 000e 5A70 strb r2, [r3, #1]
|
||
73:Core/Src/state_machine.c **** state.error_source = 0;
|
||
179 .loc 1 73 22
|
||
180 0010 134B ldr r3, .L2
|
||
181 0012 0022 movs r2, #0
|
||
182 0014 5A80 strh r2, [r3, #2] @ movhi
|
||
74:Core/Src/state_machine.c **** precharge_timer = discharge_timer = powerground_calibration_timer = error_timer = eeprom_timer =
|
||
183 .loc 1 74 116
|
||
184 0016 134B ldr r3, .L2+4
|
||
185 0018 0022 movs r2, #0
|
||
186 001a 1A60 str r2, [r3]
|
||
187 .loc 1 74 98
|
||
188 001c 114B ldr r3, .L2+4
|
||
189 001e 1B68 ldr r3, [r3]
|
||
190 0020 114A ldr r2, .L2+8
|
||
191 0022 1360 str r3, [r2]
|
||
192 .loc 1 74 83
|
||
193 0024 104B ldr r3, .L2+8
|
||
194 0026 1B68 ldr r3, [r3]
|
||
ARM GAS /tmp/cctkPVvk.s page 5
|
||
|
||
|
||
195 0028 104A ldr r2, .L2+12
|
||
196 002a 1360 str r3, [r2]
|
||
197 .loc 1 74 69
|
||
198 002c 0F4B ldr r3, .L2+12
|
||
199 002e 1B68 ldr r3, [r3]
|
||
200 0030 0F4A ldr r2, .L2+16
|
||
201 0032 1360 str r3, [r2]
|
||
202 .loc 1 74 37
|
||
203 0034 0E4B ldr r3, .L2+16
|
||
204 0036 1B68 ldr r3, [r3]
|
||
205 0038 0E4A ldr r2, .L2+20
|
||
206 003a 1360 str r3, [r2]
|
||
207 .loc 1 74 19
|
||
208 003c 0D4B ldr r3, .L2+20
|
||
209 003e 1B68 ldr r3, [r3]
|
||
210 0040 0D4A ldr r2, .L2+24
|
||
211 0042 1360 str r3, [r2]
|
||
75:Core/Src/state_machine.c **** programming_mode = 0;
|
||
212 .loc 1 75 20
|
||
213 0044 0D4B ldr r3, .L2+28
|
||
214 0046 0022 movs r2, #0
|
||
215 0048 1A70 strb r2, [r3]
|
||
76:Core/Src/state_machine.c **** debugging_mode = 0;
|
||
216 .loc 1 76 18
|
||
217 004a 0D4B ldr r3, .L2+32
|
||
218 004c 0022 movs r2, #0
|
||
219 004e 1A70 strb r2, [r3]
|
||
77:Core/Src/state_machine.c **** balancing_state = 0;
|
||
220 .loc 1 77 19
|
||
221 0050 0C4B ldr r3, .L2+36
|
||
222 0052 0022 movs r2, #0
|
||
223 0054 1A70 strb r2, [r3]
|
||
78:Core/Src/state_machine.c **** }
|
||
224 .loc 1 78 1
|
||
225 0056 00BF nop
|
||
226 0058 BD46 mov sp, r7
|
||
227 .cfi_def_cfa_register 13
|
||
228 @ sp needed
|
||
229 005a 5DF8047B ldr r7, [sp], #4
|
||
230 .cfi_restore 7
|
||
231 .cfi_def_cfa_offset 0
|
||
232 005e 7047 bx lr
|
||
233 .L3:
|
||
234 .align 2
|
||
235 .L2:
|
||
236 0060 00000000 .word state
|
||
237 0064 00000000 .word balancing_timer
|
||
238 0068 00000000 .word eeprom_timer
|
||
239 006c 00000000 .word error_timer
|
||
240 0070 00000000 .word powerground_calibration_timer
|
||
241 0074 00000000 .word discharge_timer
|
||
242 0078 00000000 .word precharge_timer
|
||
243 007c 00000000 .word programming_mode
|
||
244 0080 00000000 .word debugging_mode
|
||
245 0084 00000000 .word balancing_state
|
||
246 .cfi_endproc
|
||
247 .LFE130:
|
||
ARM GAS /tmp/cctkPVvk.s page 6
|
||
|
||
|
||
249 .global __aeabi_f2d
|
||
250 .global __aeabi_dsub
|
||
251 .global __aeabi_dmul
|
||
252 .global __aeabi_d2iz
|
||
253 .section .text.sm_update,"ax",%progbits
|
||
254 .align 1
|
||
255 .global sm_update
|
||
256 .syntax unified
|
||
257 .thumb
|
||
258 .thumb_func
|
||
260 sm_update:
|
||
261 .LFB131:
|
||
79:Core/Src/state_machine.c ****
|
||
80:Core/Src/state_machine.c **** void sm_update(){
|
||
262 .loc 1 80 17
|
||
263 .cfi_startproc
|
||
264 @ args = 0, pretend = 0, frame = 0
|
||
265 @ frame_needed = 1, uses_anonymous_args = 0
|
||
266 0000 80B5 push {r7, lr}
|
||
267 .cfi_def_cfa_offset 8
|
||
268 .cfi_offset 7, -8
|
||
269 .cfi_offset 14, -4
|
||
270 0002 00AF add r7, sp, #0
|
||
271 .cfi_def_cfa_register 7
|
||
81:Core/Src/state_machine.c ****
|
||
82:Core/Src/state_machine.c **** CURRENT_MEASUREMENT = (module.auxVoltages[0] > 2495) ? (module.auxVoltages[0] - (2495.0)) * (300.
|
||
272 .loc 1 82 44
|
||
273 0004 6A4B ldr r3, .L21+24
|
||
274 0006 D3ED087A vldr.32 s15, [r3, #32]
|
||
275 .loc 1 82 23
|
||
276 000a 9FED6A7A vldr.32 s14, .L21+28
|
||
277 000e F4EEC77A vcmpe.f32 s15, s14
|
||
278 0012 F1EE10FA vmrs APSR_nzcv, FPSCR
|
||
279 0016 1ADD ble .L19
|
||
280 .loc 1 82 77 discriminator 1
|
||
281 0018 654B ldr r3, .L21+24
|
||
282 001a 1B6A ldr r3, [r3, #32] @ float
|
||
283 001c 1846 mov r0, r3 @ float
|
||
284 001e FFF7FEFF bl __aeabi_f2d
|
||
285 .loc 1 82 81 discriminator 1
|
||
286 0022 5DA3 adr r3, .L21
|
||
287 0024 D3E90023 ldrd r2, [r3]
|
||
288 0028 FFF7FEFF bl __aeabi_dsub
|
||
289 002c 0246 mov r2, r0
|
||
290 002e 0B46 mov r3, r1
|
||
291 0030 1046 mov r0, r2
|
||
292 0032 1946 mov r1, r3
|
||
293 .loc 1 82 93 discriminator 1
|
||
294 0034 5AA3 adr r3, .L21+8
|
||
295 0036 D3E90023 ldrd r2, [r3]
|
||
296 003a FFF7FEFF bl __aeabi_dmul
|
||
297 003e 0246 mov r2, r0
|
||
298 0040 0B46 mov r3, r1
|
||
299 .loc 1 82 23 discriminator 1
|
||
300 0042 1046 mov r0, r2
|
||
301 0044 1946 mov r1, r3
|
||
302 0046 FFF7FEFF bl __aeabi_d2iz
|
||
ARM GAS /tmp/cctkPVvk.s page 7
|
||
|
||
|
||
303 004a 0346 mov r3, r0
|
||
304 004c 00E0 b .L7
|
||
305 .L19:
|
||
306 .loc 1 82 23 is_stmt 0 discriminator 2
|
||
307 004e 0023 movs r3, #0
|
||
308 .L7:
|
||
309 .loc 1 82 23 discriminator 4
|
||
310 0050 594A ldr r2, .L21+32
|
||
311 0052 1360 str r3, [r2]
|
||
83:Core/Src/state_machine.c **** CURRENT_MEASUREMENT_ON = (module.auxVoltages[1] > 2400);
|
||
312 .loc 1 83 47 is_stmt 1
|
||
313 0054 564B ldr r3, .L21+24
|
||
314 0056 D3ED097A vldr.32 s15, [r3, #36]
|
||
315 .loc 1 83 51
|
||
316 005a 9FED587A vldr.32 s14, .L21+36
|
||
317 005e F4EEC77A vcmpe.f32 s15, s14
|
||
318 0062 F1EE10FA vmrs APSR_nzcv, FPSCR
|
||
319 0066 CCBF ite gt
|
||
320 0068 0123 movgt r3, #1
|
||
321 006a 0023 movle r3, #0
|
||
322 006c DAB2 uxtb r2, r3
|
||
323 .loc 1 83 26
|
||
324 006e 544B ldr r3, .L21+40
|
||
325 0070 1A70 strb r2, [r3]
|
||
84:Core/Src/state_machine.c **** RELAY_ESC_SIDE_VOLTAGE = module.auxVoltages[2] * 15.19;
|
||
326 .loc 1 84 46
|
||
327 0072 4F4B ldr r3, .L21+24
|
||
328 0074 9B6A ldr r3, [r3, #40] @ float
|
||
329 0076 1846 mov r0, r3 @ float
|
||
330 0078 FFF7FEFF bl __aeabi_f2d
|
||
331 .loc 1 84 50
|
||
332 007c 4AA3 adr r3, .L21+16
|
||
333 007e D3E90023 ldrd r2, [r3]
|
||
334 0082 FFF7FEFF bl __aeabi_dmul
|
||
335 0086 0246 mov r2, r0
|
||
336 0088 0B46 mov r3, r1
|
||
337 .loc 1 84 26
|
||
338 008a 1046 mov r0, r2
|
||
339 008c 1946 mov r1, r3
|
||
340 008e FFF7FEFF bl __aeabi_d2iz
|
||
341 0092 0346 mov r3, r0
|
||
342 0094 4B4A ldr r2, .L21+44
|
||
343 0096 1360 str r3, [r2]
|
||
85:Core/Src/state_machine.c **** RELAY_BAT_SIDE_VOLTAGE = module.auxVoltages[3] * 15.19; // the calculation says the factor is
|
||
344 .loc 1 85 46
|
||
345 0098 454B ldr r3, .L21+24
|
||
346 009a DB6A ldr r3, [r3, #44] @ float
|
||
347 009c 1846 mov r0, r3 @ float
|
||
348 009e FFF7FEFF bl __aeabi_f2d
|
||
349 .loc 1 85 50
|
||
350 00a2 41A3 adr r3, .L21+16
|
||
351 00a4 D3E90023 ldrd r2, [r3]
|
||
352 00a8 FFF7FEFF bl __aeabi_dmul
|
||
353 00ac 0246 mov r2, r0
|
||
354 00ae 0B46 mov r3, r1
|
||
355 .loc 1 85 26
|
||
356 00b0 1046 mov r0, r2
|
||
ARM GAS /tmp/cctkPVvk.s page 8
|
||
|
||
|
||
357 00b2 1946 mov r1, r3
|
||
358 00b4 FFF7FEFF bl __aeabi_d2iz
|
||
359 00b8 0346 mov r3, r0
|
||
360 00ba 434A ldr r2, .L21+48
|
||
361 00bc 1360 str r3, [r2]
|
||
86:Core/Src/state_machine.c ****
|
||
87:Core/Src/state_machine.c **** //if (can_timeout_timer < HAL_GetTick())
|
||
88:Core/Src/state_machine.c **** // state.current_state = state.target_state = STATE_INACTIVE;
|
||
89:Core/Src/state_machine.c **** /*
|
||
90:Core/Src/state_machine.c **** if (eeprom_timer < HAL_GetTick()){
|
||
91:Core/Src/state_machine.c **** eeprom_write_status();
|
||
92:Core/Src/state_machine.c **** eeprom_timer = HAL_GetTick() + EEPROM_WRITE_FREQ;
|
||
93:Core/Src/state_machine.c **** }
|
||
94:Core/Src/state_machine.c **** */
|
||
95:Core/Src/state_machine.c **** can_handle_send_status();
|
||
362 .loc 1 95 3
|
||
363 00be FFF7FEFF bl can_handle_send_status
|
||
96:Core/Src/state_machine.c **** can_handle_send_log();
|
||
364 .loc 1 96 3
|
||
365 00c2 FFF7FEFF bl can_handle_send_log
|
||
97:Core/Src/state_machine.c **** sm_check_errors();
|
||
366 .loc 1 97 3
|
||
367 00c6 FFF7FEFF bl sm_check_errors
|
||
98:Core/Src/state_machine.c **** sm_precharge_discharge_manager();
|
||
368 .loc 1 98 3
|
||
369 00ca FFF7FEFF bl sm_precharge_discharge_manager
|
||
99:Core/Src/state_machine.c **** //sm_calibrate_powerground();
|
||
100:Core/Src/state_machine.c **** sm_balancing();
|
||
370 .loc 1 100 3
|
||
371 00ce FFF7FEFF bl sm_balancing
|
||
101:Core/Src/state_machine.c **** sm_powerground_manager();
|
||
372 .loc 1 101 3
|
||
373 00d2 FFF7FEFF bl sm_powerground_manager
|
||
102:Core/Src/state_machine.c **** tmp1075_measure();
|
||
374 .loc 1 102 3
|
||
375 00d6 FFF7FEFF bl tmp1075_measure
|
||
103:Core/Src/state_machine.c **** status_led_update();
|
||
376 .loc 1 103 3
|
||
377 00da FFF7FEFF bl status_led_update
|
||
104:Core/Src/state_machine.c **** soc_update();
|
||
378 .loc 1 104 3
|
||
379 00de FFF7FEFF bl soc_update
|
||
105:Core/Src/state_machine.c ****
|
||
106:Core/Src/state_machine.c **** switch (state.current_state) {
|
||
380 .loc 1 106 16
|
||
381 00e2 3A4B ldr r3, .L21+52
|
||
382 00e4 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
383 .loc 1 106 3
|
||
384 00e6 072B cmp r3, #7
|
||
385 00e8 4AD8 bhi .L8
|
||
386 00ea 01A2 adr r2, .L10
|
||
387 00ec 52F823F0 ldr pc, [r2, r3, lsl #2]
|
||
388 .p2align 2
|
||
389 .L10:
|
||
390 00f0 11010000 .word .L17+1
|
||
391 00f4 1F010000 .word .L16+1
|
||
392 00f8 2D010000 .word .L15+1
|
||
ARM GAS /tmp/cctkPVvk.s page 9
|
||
|
||
|
||
393 00fc 3B010000 .word .L14+1
|
||
394 0100 49010000 .word .L13+1
|
||
395 0104 57010000 .word .L12+1
|
||
396 0108 65010000 .word .L11+1
|
||
397 010c 73010000 .word .L9+1
|
||
398 .p2align 1
|
||
399 .L17:
|
||
107:Core/Src/state_machine.c **** case STATE_INACTIVE:
|
||
108:Core/Src/state_machine.c **** state.current_state = sm_update_inactive(); // monitor only
|
||
400 .loc 1 108 29
|
||
401 0110 FFF7FEFF bl sm_update_inactive
|
||
402 0114 0346 mov r3, r0
|
||
403 0116 1A46 mov r2, r3
|
||
404 .loc 1 108 27 discriminator 1
|
||
405 0118 2C4B ldr r3, .L21+52
|
||
406 011a 1A70 strb r2, [r3]
|
||
109:Core/Src/state_machine.c **** break;
|
||
407 .loc 1 109 7
|
||
408 011c 30E0 b .L8
|
||
409 .L16:
|
||
110:Core/Src/state_machine.c **** case STATE_PRECHARGE:
|
||
111:Core/Src/state_machine.c **** state.current_state = sm_update_precharge(); // set PRECHARGE
|
||
410 .loc 1 111 29
|
||
411 011e FFF7FEFF bl sm_update_precharge
|
||
412 0122 0346 mov r3, r0
|
||
413 0124 1A46 mov r2, r3
|
||
414 .loc 1 111 27 discriminator 1
|
||
415 0126 294B ldr r3, .L21+52
|
||
416 0128 1A70 strb r2, [r3]
|
||
112:Core/Src/state_machine.c **** break;
|
||
417 .loc 1 112 7
|
||
418 012a 29E0 b .L8
|
||
419 .L15:
|
||
113:Core/Src/state_machine.c **** case STATE_READY:
|
||
114:Core/Src/state_machine.c **** state.current_state = sm_update_ready();
|
||
420 .loc 1 114 29
|
||
421 012c FFF7FEFF bl sm_update_ready
|
||
422 0130 0346 mov r3, r0
|
||
423 0132 1A46 mov r2, r3
|
||
424 .loc 1 114 27 discriminator 1
|
||
425 0134 254B ldr r3, .L21+52
|
||
426 0136 1A70 strb r2, [r3]
|
||
115:Core/Src/state_machine.c **** break;
|
||
427 .loc 1 115 7
|
||
428 0138 22E0 b .L8
|
||
429 .L14:
|
||
116:Core/Src/state_machine.c **** case STATE_ACTIVE:
|
||
117:Core/Src/state_machine.c **** state.current_state = sm_update_active();
|
||
430 .loc 1 117 29
|
||
431 013a FFF7FEFF bl sm_update_active
|
||
432 013e 0346 mov r3, r0
|
||
433 0140 1A46 mov r2, r3
|
||
434 .loc 1 117 27 discriminator 1
|
||
435 0142 224B ldr r3, .L21+52
|
||
436 0144 1A70 strb r2, [r3]
|
||
118:Core/Src/state_machine.c **** break;
|
||
437 .loc 1 118 7
|
||
ARM GAS /tmp/cctkPVvk.s page 10
|
||
|
||
|
||
438 0146 1BE0 b .L8
|
||
439 .L13:
|
||
119:Core/Src/state_machine.c **** case STATE_DISCHARGE:
|
||
120:Core/Src/state_machine.c **** state.current_state = sm_update_discharge();
|
||
440 .loc 1 120 29
|
||
441 0148 FFF7FEFF bl sm_update_discharge
|
||
442 014c 0346 mov r3, r0
|
||
443 014e 1A46 mov r2, r3
|
||
444 .loc 1 120 27 discriminator 1
|
||
445 0150 1E4B ldr r3, .L21+52
|
||
446 0152 1A70 strb r2, [r3]
|
||
121:Core/Src/state_machine.c **** break;
|
||
447 .loc 1 121 7
|
||
448 0154 14E0 b .L8
|
||
449 .L12:
|
||
122:Core/Src/state_machine.c **** case STATE_CHARGING_PRECHARGE:
|
||
123:Core/Src/state_machine.c **** state.current_state = sm_update_charging_precharge();
|
||
450 .loc 1 123 29
|
||
451 0156 FFF7FEFF bl sm_update_charging_precharge
|
||
452 015a 0346 mov r3, r0
|
||
453 015c 1A46 mov r2, r3
|
||
454 .loc 1 123 27 discriminator 1
|
||
455 015e 1B4B ldr r3, .L21+52
|
||
456 0160 1A70 strb r2, [r3]
|
||
124:Core/Src/state_machine.c **** break;
|
||
457 .loc 1 124 7
|
||
458 0162 0DE0 b .L8
|
||
459 .L11:
|
||
125:Core/Src/state_machine.c **** case STATE_CHARGING:
|
||
126:Core/Src/state_machine.c **** state.current_state = sm_update_charging();
|
||
460 .loc 1 126 29
|
||
461 0164 FFF7FEFF bl sm_update_charging
|
||
462 0168 0346 mov r3, r0
|
||
463 016a 1A46 mov r2, r3
|
||
464 .loc 1 126 27 discriminator 1
|
||
465 016c 174B ldr r3, .L21+52
|
||
466 016e 1A70 strb r2, [r3]
|
||
127:Core/Src/state_machine.c **** break;
|
||
467 .loc 1 127 7
|
||
468 0170 06E0 b .L8
|
||
469 .L9:
|
||
128:Core/Src/state_machine.c **** case STATE_ERROR:
|
||
129:Core/Src/state_machine.c **** state.current_state = sm_update_error(); // enter the correct ERROR state
|
||
470 .loc 1 129 29
|
||
471 0172 FFF7FEFF bl sm_update_error
|
||
472 0176 0346 mov r3, r0
|
||
473 0178 1A46 mov r2, r3
|
||
474 .loc 1 129 27 discriminator 1
|
||
475 017a 144B ldr r3, .L21+52
|
||
476 017c 1A70 strb r2, [r3]
|
||
130:Core/Src/state_machine.c **** break;
|
||
477 .loc 1 130 7
|
||
478 017e 00BF nop
|
||
479 .L8:
|
||
131:Core/Src/state_machine.c **** }
|
||
132:Core/Src/state_machine.c ****
|
||
133:Core/Src/state_machine.c **** sm_set_relay_positions(state.current_state);
|
||
ARM GAS /tmp/cctkPVvk.s page 11
|
||
|
||
|
||
480 .loc 1 133 3
|
||
481 0180 124B ldr r3, .L21+52
|
||
482 0182 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
483 0184 1846 mov r0, r3
|
||
484 0186 FFF7FEFF bl sm_set_relay_positions
|
||
134:Core/Src/state_machine.c **** state.target_state = state.current_state;
|
||
485 .loc 1 134 29
|
||
486 018a 104B ldr r3, .L21+52
|
||
487 018c 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
488 .loc 1 134 22
|
||
489 018e 0F4B ldr r3, .L21+52
|
||
490 0190 5A70 strb r2, [r3, #1]
|
||
135:Core/Src/state_machine.c **** }
|
||
491 .loc 1 135 1
|
||
492 0192 00BF nop
|
||
493 0194 80BD pop {r7, pc}
|
||
494 .L22:
|
||
495 0196 00BF .align 3
|
||
496 .L21:
|
||
497 0198 00000000 .word 0
|
||
498 019c 007EA340 .word 1084456448
|
||
499 01a0 00000000 .word 0
|
||
500 01a4 00C07240 .word 1081262080
|
||
501 01a8 E17A14AE .word -1374389535
|
||
502 01ac 47612E40 .word 1076781383
|
||
503 01b0 00000000 .word module
|
||
504 01b4 00F01B45 .word 1159458816
|
||
505 01b8 00000000 .word CURRENT_MEASUREMENT
|
||
506 01bc 00001645 .word 1159069696
|
||
507 01c0 00000000 .word CURRENT_MEASUREMENT_ON
|
||
508 01c4 00000000 .word RELAY_ESC_SIDE_VOLTAGE
|
||
509 01c8 00000000 .word RELAY_BAT_SIDE_VOLTAGE
|
||
510 01cc 00000000 .word state
|
||
511 .cfi_endproc
|
||
512 .LFE131:
|
||
514 .section .text.sm_handle_ams_in,"ax",%progbits
|
||
515 .align 1
|
||
516 .global sm_handle_ams_in
|
||
517 .syntax unified
|
||
518 .thumb
|
||
519 .thumb_func
|
||
521 sm_handle_ams_in:
|
||
522 .LFB132:
|
||
136:Core/Src/state_machine.c ****
|
||
137:Core/Src/state_machine.c **** void sm_handle_ams_in(const uint8_t *data){
|
||
523 .loc 1 137 43
|
||
524 .cfi_startproc
|
||
525 @ args = 0, pretend = 0, frame = 8
|
||
526 @ frame_needed = 1, uses_anonymous_args = 0
|
||
527 0000 80B5 push {r7, lr}
|
||
528 .cfi_def_cfa_offset 8
|
||
529 .cfi_offset 7, -8
|
||
530 .cfi_offset 14, -4
|
||
531 0002 82B0 sub sp, sp, #8
|
||
532 .cfi_def_cfa_offset 16
|
||
533 0004 00AF add r7, sp, #0
|
||
534 .cfi_def_cfa_register 7
|
||
ARM GAS /tmp/cctkPVvk.s page 12
|
||
|
||
|
||
535 0006 7860 str r0, [r7, #4]
|
||
138:Core/Src/state_machine.c **** if (programming_mode == 1 && (state.current_state == STATE_READY || state.current_state == STATE_
|
||
536 .loc 1 138 24
|
||
537 0008 3D4B ldr r3, .L46
|
||
538 000a 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
539 .loc 1 138 6
|
||
540 000c 002B cmp r3, #0
|
||
541 000e 0DD0 beq .L24
|
||
542 .loc 1 138 38 discriminator 1
|
||
543 0010 3C4B ldr r3, .L46+4
|
||
544 0012 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
545 .loc 1 138 29 discriminator 1
|
||
546 0014 022B cmp r3, #2
|
||
547 0016 03D0 beq .L25
|
||
548 .loc 1 138 76 discriminator 3
|
||
549 0018 3A4B ldr r3, .L46+4
|
||
550 001a 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
551 .loc 1 138 68 discriminator 3
|
||
552 001c 032B cmp r3, #3
|
||
553 001e 05D1 bne .L24
|
||
554 .L25:
|
||
555 .loc 1 138 138 discriminator 4
|
||
556 0020 7B68 ldr r3, [r7, #4]
|
||
557 0022 0133 adds r3, r3, #1
|
||
558 .loc 1 138 110 discriminator 4
|
||
559 0024 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
560 0026 1846 mov r0, r3
|
||
561 0028 FFF7FEFF bl PWM_powerground_control
|
||
562 .L24:
|
||
139:Core/Src/state_machine.c ****
|
||
140:Core/Src/state_machine.c **** switch (data[0]) {
|
||
563 .loc 1 140 15
|
||
564 002c 7B68 ldr r3, [r7, #4]
|
||
565 002e 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
566 .loc 1 140 3
|
||
567 0030 FF2B cmp r3, #255
|
||
568 0032 50D0 beq .L26
|
||
569 0034 FF2B cmp r3, #255
|
||
570 0036 5EDC bgt .L40
|
||
571 0038 F12B cmp r3, #241
|
||
572 003a 53D0 beq .L41
|
||
573 003c F12B cmp r3, #241
|
||
574 003e 5ADC bgt .L40
|
||
575 0040 F02B cmp r3, #240
|
||
576 0042 40D0 beq .L29
|
||
577 0044 F02B cmp r3, #240
|
||
578 0046 56DC bgt .L40
|
||
579 0048 022B cmp r3, #2
|
||
580 004a 2BD0 beq .L30
|
||
581 004c 022B cmp r3, #2
|
||
582 004e 52DC bgt .L40
|
||
583 0050 002B cmp r3, #0
|
||
584 0052 02D0 beq .L31
|
||
585 0054 012B cmp r3, #1
|
||
586 0056 0BD0 beq .L32
|
||
141:Core/Src/state_machine.c **** case 0x00:
|
||
142:Core/Src/state_machine.c **** if (state.current_state != STATE_INACTIVE){
|
||
ARM GAS /tmp/cctkPVvk.s page 13
|
||
|
||
|
||
143:Core/Src/state_machine.c **** state.target_state = STATE_DISCHARGE;
|
||
144:Core/Src/state_machine.c **** PWM_powerground_control(255);
|
||
145:Core/Src/state_machine.c **** }
|
||
146:Core/Src/state_machine.c **** break;
|
||
147:Core/Src/state_machine.c **** case 0x01:
|
||
148:Core/Src/state_machine.c **** if (state.target_state == STATE_INACTIVE || state.target_state == STATE_DISCHARGE){
|
||
149:Core/Src/state_machine.c **** state.target_state = STATE_PRECHARGE;
|
||
150:Core/Src/state_machine.c **** PWM_powerground_control(0);
|
||
151:Core/Src/state_machine.c **** } else if (state.target_state == STATE_ACTIVE){
|
||
152:Core/Src/state_machine.c **** state.target_state = STATE_READY;
|
||
153:Core/Src/state_machine.c **** PWM_powerground_control(0);
|
||
154:Core/Src/state_machine.c **** }
|
||
155:Core/Src/state_machine.c **** break;
|
||
156:Core/Src/state_machine.c **** case 0x02:
|
||
157:Core/Src/state_machine.c **** if (state.current_state == STATE_READY || state.current_state == STATE_ACTIVE){
|
||
158:Core/Src/state_machine.c **** target_powerground_status = data[1];
|
||
159:Core/Src/state_machine.c **** state.target_state = STATE_ACTIVE; // READY -> ACTIVE
|
||
160:Core/Src/state_machine.c **** }
|
||
161:Core/Src/state_machine.c **** break;
|
||
162:Core/Src/state_machine.c **** case 0xF0:
|
||
163:Core/Src/state_machine.c **** if (state.current_state == STATE_INACTIVE){
|
||
164:Core/Src/state_machine.c **** state.target_state = STATE_CHARGING_PRECHARGE;
|
||
165:Core/Src/state_machine.c **** }
|
||
166:Core/Src/state_machine.c **** break;
|
||
167:Core/Src/state_machine.c **** case 0xF1: // EEPROM
|
||
168:Core/Src/state_machine.c **** break;
|
||
169:Core/Src/state_machine.c **** if (state.current_state == STATE_INACTIVE)
|
||
170:Core/Src/state_machine.c **** // can_handle_dump();
|
||
171:Core/Src/state_machine.c **** break;
|
||
172:Core/Src/state_machine.c **** case 0xFF: // EMERGENCY SHUTDOWN
|
||
173:Core/Src/state_machine.c **** state.current_state = STATE_DISCHARGE;
|
||
174:Core/Src/state_machine.c **** state.target_state = STATE_ERROR;
|
||
175:Core/Src/state_machine.c **** break;
|
||
176:Core/Src/state_machine.c **** }
|
||
177:Core/Src/state_machine.c **** }
|
||
587 .loc 1 177 1
|
||
588 0058 4DE0 b .L40
|
||
589 .L31:
|
||
142:Core/Src/state_machine.c **** state.target_state = STATE_DISCHARGE;
|
||
590 .loc 1 142 16
|
||
591 005a 2A4B ldr r3, .L46+4
|
||
592 005c 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
142:Core/Src/state_machine.c **** state.target_state = STATE_DISCHARGE;
|
||
593 .loc 1 142 10
|
||
594 005e 002B cmp r3, #0
|
||
595 0060 42D0 beq .L42
|
||
143:Core/Src/state_machine.c **** PWM_powerground_control(255);
|
||
596 .loc 1 143 28
|
||
597 0062 284B ldr r3, .L46+4
|
||
598 0064 0422 movs r2, #4
|
||
599 0066 5A70 strb r2, [r3, #1]
|
||
144:Core/Src/state_machine.c **** }
|
||
600 .loc 1 144 9
|
||
601 0068 FF20 movs r0, #255
|
||
602 006a FFF7FEFF bl PWM_powerground_control
|
||
146:Core/Src/state_machine.c **** case 0x01:
|
||
603 .loc 1 146 7
|
||
ARM GAS /tmp/cctkPVvk.s page 14
|
||
|
||
|
||
604 006e 3BE0 b .L42
|
||
605 .L32:
|
||
148:Core/Src/state_machine.c **** state.target_state = STATE_PRECHARGE;
|
||
606 .loc 1 148 16
|
||
607 0070 244B ldr r3, .L46+4
|
||
608 0072 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
148:Core/Src/state_machine.c **** state.target_state = STATE_PRECHARGE;
|
||
609 .loc 1 148 10
|
||
610 0074 002B cmp r3, #0
|
||
611 0076 03D0 beq .L34
|
||
148:Core/Src/state_machine.c **** state.target_state = STATE_PRECHARGE;
|
||
612 .loc 1 148 56 discriminator 1
|
||
613 0078 224B ldr r3, .L46+4
|
||
614 007a 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
148:Core/Src/state_machine.c **** state.target_state = STATE_PRECHARGE;
|
||
615 .loc 1 148 48 discriminator 1
|
||
616 007c 042B cmp r3, #4
|
||
617 007e 06D1 bne .L35
|
||
618 .L34:
|
||
149:Core/Src/state_machine.c **** PWM_powerground_control(0);
|
||
619 .loc 1 149 28
|
||
620 0080 204B ldr r3, .L46+4
|
||
621 0082 0122 movs r2, #1
|
||
622 0084 5A70 strb r2, [r3, #1]
|
||
150:Core/Src/state_machine.c **** } else if (state.target_state == STATE_ACTIVE){
|
||
623 .loc 1 150 9
|
||
624 0086 0020 movs r0, #0
|
||
625 0088 FFF7FEFF bl PWM_powerground_control
|
||
155:Core/Src/state_machine.c **** case 0x02:
|
||
626 .loc 1 155 7
|
||
627 008c 2EE0 b .L43
|
||
628 .L35:
|
||
151:Core/Src/state_machine.c **** state.target_state = STATE_READY;
|
||
629 .loc 1 151 23
|
||
630 008e 1D4B ldr r3, .L46+4
|
||
631 0090 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
151:Core/Src/state_machine.c **** state.target_state = STATE_READY;
|
||
632 .loc 1 151 17
|
||
633 0092 032B cmp r3, #3
|
||
634 0094 2AD1 bne .L43
|
||
152:Core/Src/state_machine.c **** PWM_powerground_control(0);
|
||
635 .loc 1 152 28
|
||
636 0096 1B4B ldr r3, .L46+4
|
||
637 0098 0222 movs r2, #2
|
||
638 009a 5A70 strb r2, [r3, #1]
|
||
153:Core/Src/state_machine.c **** }
|
||
639 .loc 1 153 9
|
||
640 009c 0020 movs r0, #0
|
||
641 009e FFF7FEFF bl PWM_powerground_control
|
||
155:Core/Src/state_machine.c **** case 0x02:
|
||
642 .loc 1 155 7
|
||
643 00a2 23E0 b .L43
|
||
644 .L30:
|
||
157:Core/Src/state_machine.c **** target_powerground_status = data[1];
|
||
645 .loc 1 157 16
|
||
646 00a4 174B ldr r3, .L46+4
|
||
647 00a6 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
ARM GAS /tmp/cctkPVvk.s page 15
|
||
|
||
|
||
157:Core/Src/state_machine.c **** target_powerground_status = data[1];
|
||
648 .loc 1 157 10
|
||
649 00a8 022B cmp r3, #2
|
||
650 00aa 03D0 beq .L37
|
||
157:Core/Src/state_machine.c **** target_powerground_status = data[1];
|
||
651 .loc 1 157 54 discriminator 1
|
||
652 00ac 154B ldr r3, .L46+4
|
||
653 00ae 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
157:Core/Src/state_machine.c **** target_powerground_status = data[1];
|
||
654 .loc 1 157 46 discriminator 1
|
||
655 00b0 032B cmp r3, #3
|
||
656 00b2 1DD1 bne .L44
|
||
657 .L37:
|
||
158:Core/Src/state_machine.c **** state.target_state = STATE_ACTIVE; // READY -> ACTIVE
|
||
658 .loc 1 158 41
|
||
659 00b4 7B68 ldr r3, [r7, #4]
|
||
660 00b6 0133 adds r3, r3, #1
|
||
661 00b8 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
158:Core/Src/state_machine.c **** state.target_state = STATE_ACTIVE; // READY -> ACTIVE
|
||
662 .loc 1 158 35
|
||
663 00ba 134B ldr r3, .L46+8
|
||
664 00bc 1A70 strb r2, [r3]
|
||
159:Core/Src/state_machine.c **** }
|
||
665 .loc 1 159 28
|
||
666 00be 114B ldr r3, .L46+4
|
||
667 00c0 0322 movs r2, #3
|
||
668 00c2 5A70 strb r2, [r3, #1]
|
||
161:Core/Src/state_machine.c **** case 0xF0:
|
||
669 .loc 1 161 7
|
||
670 00c4 14E0 b .L44
|
||
671 .L29:
|
||
163:Core/Src/state_machine.c **** state.target_state = STATE_CHARGING_PRECHARGE;
|
||
672 .loc 1 163 16
|
||
673 00c6 0F4B ldr r3, .L46+4
|
||
674 00c8 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
163:Core/Src/state_machine.c **** state.target_state = STATE_CHARGING_PRECHARGE;
|
||
675 .loc 1 163 10
|
||
676 00ca 002B cmp r3, #0
|
||
677 00cc 12D1 bne .L45
|
||
164:Core/Src/state_machine.c **** }
|
||
678 .loc 1 164 28
|
||
679 00ce 0D4B ldr r3, .L46+4
|
||
680 00d0 0522 movs r2, #5
|
||
681 00d2 5A70 strb r2, [r3, #1]
|
||
166:Core/Src/state_machine.c **** case 0xF1: // EEPROM
|
||
682 .loc 1 166 7
|
||
683 00d4 0EE0 b .L45
|
||
684 .L26:
|
||
173:Core/Src/state_machine.c **** state.target_state = STATE_ERROR;
|
||
685 .loc 1 173 27
|
||
686 00d6 0B4B ldr r3, .L46+4
|
||
687 00d8 0422 movs r2, #4
|
||
688 00da 1A70 strb r2, [r3]
|
||
174:Core/Src/state_machine.c **** break;
|
||
689 .loc 1 174 26
|
||
690 00dc 094B ldr r3, .L46+4
|
||
691 00de 0722 movs r2, #7
|
||
ARM GAS /tmp/cctkPVvk.s page 16
|
||
|
||
|
||
692 00e0 5A70 strb r2, [r3, #1]
|
||
175:Core/Src/state_machine.c **** }
|
||
693 .loc 1 175 7
|
||
694 00e2 08E0 b .L27
|
||
695 .L41:
|
||
168:Core/Src/state_machine.c **** if (state.current_state == STATE_INACTIVE)
|
||
696 .loc 1 168 7
|
||
697 00e4 00BF nop
|
||
698 00e6 06E0 b .L40
|
||
699 .L42:
|
||
146:Core/Src/state_machine.c **** case 0x01:
|
||
700 .loc 1 146 7
|
||
701 00e8 00BF nop
|
||
702 00ea 04E0 b .L40
|
||
703 .L43:
|
||
155:Core/Src/state_machine.c **** case 0x02:
|
||
704 .loc 1 155 7
|
||
705 00ec 00BF nop
|
||
706 00ee 02E0 b .L40
|
||
707 .L44:
|
||
161:Core/Src/state_machine.c **** case 0xF0:
|
||
708 .loc 1 161 7
|
||
709 00f0 00BF nop
|
||
710 00f2 00E0 b .L40
|
||
711 .L45:
|
||
166:Core/Src/state_machine.c **** case 0xF1: // EEPROM
|
||
712 .loc 1 166 7
|
||
713 00f4 00BF nop
|
||
714 .L27:
|
||
715 .L40:
|
||
716 .loc 1 177 1
|
||
717 00f6 00BF nop
|
||
718 00f8 0837 adds r7, r7, #8
|
||
719 .cfi_def_cfa_offset 8
|
||
720 00fa BD46 mov sp, r7
|
||
721 .cfi_def_cfa_register 13
|
||
722 @ sp needed
|
||
723 00fc 80BD pop {r7, pc}
|
||
724 .L47:
|
||
725 00fe 00BF .align 2
|
||
726 .L46:
|
||
727 0100 00000000 .word programming_mode
|
||
728 0104 00000000 .word state
|
||
729 0108 00000000 .word target_powerground_status
|
||
730 .cfi_endproc
|
||
731 .LFE132:
|
||
733 .section .text.sm_precharge_discharge_manager,"ax",%progbits
|
||
734 .align 1
|
||
735 .global sm_precharge_discharge_manager
|
||
736 .syntax unified
|
||
737 .thumb
|
||
738 .thumb_func
|
||
740 sm_precharge_discharge_manager:
|
||
741 .LFB133:
|
||
178:Core/Src/state_machine.c ****
|
||
179:Core/Src/state_machine.c **** void sm_precharge_discharge_manager(){
|
||
742 .loc 1 179 38
|
||
ARM GAS /tmp/cctkPVvk.s page 17
|
||
|
||
|
||
743 .cfi_startproc
|
||
744 @ args = 0, pretend = 0, frame = 0
|
||
745 @ frame_needed = 1, uses_anonymous_args = 0
|
||
746 0000 80B5 push {r7, lr}
|
||
747 .cfi_def_cfa_offset 8
|
||
748 .cfi_offset 7, -8
|
||
749 .cfi_offset 14, -4
|
||
750 0002 00AF add r7, sp, #0
|
||
751 .cfi_def_cfa_register 7
|
||
180:Core/Src/state_machine.c ****
|
||
181:Core/Src/state_machine.c **** if (state.current_state != STATE_PRECHARGE && state.target_state == STATE_PRECHARGE){
|
||
752 .loc 1 181 12
|
||
753 0004 324B ldr r3, .L56
|
||
754 0006 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
755 .loc 1 181 6
|
||
756 0008 012B cmp r3, #1
|
||
757 000a 0BD0 beq .L49
|
||
758 .loc 1 181 54 discriminator 1
|
||
759 000c 304B ldr r3, .L56
|
||
760 000e 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
761 .loc 1 181 46 discriminator 1
|
||
762 0010 012B cmp r3, #1
|
||
763 0012 07D1 bne .L49
|
||
182:Core/Src/state_machine.c **** precharge_timer = HAL_GetTick() + PRECHARGE_DURATION;
|
||
764 .loc 1 182 23
|
||
765 0014 FFF7FEFF bl HAL_GetTick
|
||
766 0018 0346 mov r3, r0
|
||
767 .loc 1 182 37 discriminator 1
|
||
768 001a 03F5FA53 add r3, r3, #8000
|
||
769 .loc 1 182 21 discriminator 1
|
||
770 001e 2D4A ldr r2, .L56+4
|
||
771 0020 1360 str r3, [r2]
|
||
772 .loc 1 182 21 is_stmt 0
|
||
773 0022 10E0 b .L50
|
||
774 .L49:
|
||
183:Core/Src/state_machine.c **** } else if (state.current_state == STATE_PRECHARGE && precharge_timer < HAL_GetTick()) {
|
||
775 .loc 1 183 19 is_stmt 1
|
||
776 0024 2A4B ldr r3, .L56
|
||
777 0026 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
778 .loc 1 183 13
|
||
779 0028 012B cmp r3, #1
|
||
780 002a 0CD1 bne .L50
|
||
781 .loc 1 183 74 discriminator 1
|
||
782 002c FFF7FEFF bl HAL_GetTick
|
||
783 0030 0246 mov r2, r0
|
||
784 .loc 1 183 72 discriminator 1
|
||
785 0032 284B ldr r3, .L56+4
|
||
786 0034 1B68 ldr r3, [r3]
|
||
787 .loc 1 183 53 discriminator 1
|
||
788 0036 9A42 cmp r2, r3
|
||
789 0038 05D9 bls .L50
|
||
184:Core/Src/state_machine.c **** state.target_state = STATE_READY;
|
||
790 .loc 1 184 24
|
||
791 003a 254B ldr r3, .L56
|
||
792 003c 0222 movs r2, #2
|
||
793 003e 5A70 strb r2, [r3, #1]
|
||
185:Core/Src/state_machine.c **** precharge_timer = 0;
|
||
ARM GAS /tmp/cctkPVvk.s page 18
|
||
|
||
|
||
794 .loc 1 185 21
|
||
795 0040 244B ldr r3, .L56+4
|
||
796 0042 0022 movs r2, #0
|
||
797 0044 1A60 str r2, [r3]
|
||
798 .L50:
|
||
186:Core/Src/state_machine.c **** }
|
||
187:Core/Src/state_machine.c ****
|
||
188:Core/Src/state_machine.c **** if (state.current_state != STATE_CHARGING_PRECHARGE && state.target_state == STATE_CHARGING_PRECH
|
||
799 .loc 1 188 12
|
||
800 0046 224B ldr r3, .L56
|
||
801 0048 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
802 .loc 1 188 6
|
||
803 004a 052B cmp r3, #5
|
||
804 004c 0BD0 beq .L51
|
||
805 .loc 1 188 63 discriminator 1
|
||
806 004e 204B ldr r3, .L56
|
||
807 0050 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
808 .loc 1 188 55 discriminator 1
|
||
809 0052 052B cmp r3, #5
|
||
810 0054 07D1 bne .L51
|
||
189:Core/Src/state_machine.c **** precharge_timer = HAL_GetTick() + PRECHARGE_DURATION;
|
||
811 .loc 1 189 23
|
||
812 0056 FFF7FEFF bl HAL_GetTick
|
||
813 005a 0346 mov r3, r0
|
||
814 .loc 1 189 37 discriminator 1
|
||
815 005c 03F5FA53 add r3, r3, #8000
|
||
816 .loc 1 189 21 discriminator 1
|
||
817 0060 1C4A ldr r2, .L56+4
|
||
818 0062 1360 str r3, [r2]
|
||
819 .loc 1 189 21 is_stmt 0
|
||
820 0064 10E0 b .L52
|
||
821 .L51:
|
||
190:Core/Src/state_machine.c **** } else if (state.current_state == STATE_CHARGING_PRECHARGE && precharge_timer < HAL_GetTick()) {
|
||
822 .loc 1 190 19 is_stmt 1
|
||
823 0066 1A4B ldr r3, .L56
|
||
824 0068 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
825 .loc 1 190 13
|
||
826 006a 052B cmp r3, #5
|
||
827 006c 0CD1 bne .L52
|
||
828 .loc 1 190 83 discriminator 1
|
||
829 006e FFF7FEFF bl HAL_GetTick
|
||
830 0072 0246 mov r2, r0
|
||
831 .loc 1 190 81 discriminator 1
|
||
832 0074 174B ldr r3, .L56+4
|
||
833 0076 1B68 ldr r3, [r3]
|
||
834 .loc 1 190 62 discriminator 1
|
||
835 0078 9A42 cmp r2, r3
|
||
836 007a 05D9 bls .L52
|
||
191:Core/Src/state_machine.c **** state.target_state = STATE_CHARGING;
|
||
837 .loc 1 191 24
|
||
838 007c 144B ldr r3, .L56
|
||
839 007e 0622 movs r2, #6
|
||
840 0080 5A70 strb r2, [r3, #1]
|
||
192:Core/Src/state_machine.c **** precharge_timer = 0;
|
||
841 .loc 1 192 21
|
||
842 0082 144B ldr r3, .L56+4
|
||
843 0084 0022 movs r2, #0
|
||
ARM GAS /tmp/cctkPVvk.s page 19
|
||
|
||
|
||
844 0086 1A60 str r2, [r3]
|
||
845 .L52:
|
||
193:Core/Src/state_machine.c **** }
|
||
194:Core/Src/state_machine.c ****
|
||
195:Core/Src/state_machine.c **** if (state.current_state != STATE_DISCHARGE && state.target_state == STATE_DISCHARGE){
|
||
846 .loc 1 195 12
|
||
847 0088 114B ldr r3, .L56
|
||
848 008a 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
849 .loc 1 195 6
|
||
850 008c 042B cmp r3, #4
|
||
851 008e 0BD0 beq .L53
|
||
852 .loc 1 195 54 discriminator 1
|
||
853 0090 0F4B ldr r3, .L56
|
||
854 0092 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
855 .loc 1 195 46 discriminator 1
|
||
856 0094 042B cmp r3, #4
|
||
857 0096 07D1 bne .L53
|
||
196:Core/Src/state_machine.c **** discharge_timer = HAL_GetTick() + DISCHARGE_DURATION;
|
||
858 .loc 1 196 23
|
||
859 0098 FFF7FEFF bl HAL_GetTick
|
||
860 009c 0346 mov r3, r0
|
||
861 .loc 1 196 37 discriminator 1
|
||
862 009e 03F5FA53 add r3, r3, #8000
|
||
863 .loc 1 196 21 discriminator 1
|
||
864 00a2 0D4A ldr r2, .L56+8
|
||
865 00a4 1360 str r3, [r2]
|
||
197:Core/Src/state_machine.c **** } else if (state.current_state == STATE_DISCHARGE && discharge_timer < HAL_GetTick()) {
|
||
198:Core/Src/state_machine.c **** state.target_state = STATE_INACTIVE;
|
||
199:Core/Src/state_machine.c **** discharge_timer = 0;
|
||
200:Core/Src/state_machine.c **** }
|
||
201:Core/Src/state_machine.c ****
|
||
202:Core/Src/state_machine.c **** }
|
||
866 .loc 1 202 1
|
||
867 00a6 10E0 b .L55
|
||
868 .L53:
|
||
197:Core/Src/state_machine.c **** } else if (state.current_state == STATE_DISCHARGE && discharge_timer < HAL_GetTick()) {
|
||
869 .loc 1 197 19
|
||
870 00a8 094B ldr r3, .L56
|
||
871 00aa 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
197:Core/Src/state_machine.c **** } else if (state.current_state == STATE_DISCHARGE && discharge_timer < HAL_GetTick()) {
|
||
872 .loc 1 197 13
|
||
873 00ac 042B cmp r3, #4
|
||
874 00ae 0CD1 bne .L55
|
||
197:Core/Src/state_machine.c **** } else if (state.current_state == STATE_DISCHARGE && discharge_timer < HAL_GetTick()) {
|
||
875 .loc 1 197 74 discriminator 1
|
||
876 00b0 FFF7FEFF bl HAL_GetTick
|
||
877 00b4 0246 mov r2, r0
|
||
197:Core/Src/state_machine.c **** } else if (state.current_state == STATE_DISCHARGE && discharge_timer < HAL_GetTick()) {
|
||
878 .loc 1 197 72 discriminator 1
|
||
879 00b6 084B ldr r3, .L56+8
|
||
880 00b8 1B68 ldr r3, [r3]
|
||
197:Core/Src/state_machine.c **** } else if (state.current_state == STATE_DISCHARGE && discharge_timer < HAL_GetTick()) {
|
||
881 .loc 1 197 53 discriminator 1
|
||
882 00ba 9A42 cmp r2, r3
|
||
883 00bc 05D9 bls .L55
|
||
198:Core/Src/state_machine.c **** discharge_timer = 0;
|
||
884 .loc 1 198 24
|
||
ARM GAS /tmp/cctkPVvk.s page 20
|
||
|
||
|
||
885 00be 044B ldr r3, .L56
|
||
886 00c0 0022 movs r2, #0
|
||
887 00c2 5A70 strb r2, [r3, #1]
|
||
199:Core/Src/state_machine.c **** }
|
||
888 .loc 1 199 21
|
||
889 00c4 044B ldr r3, .L56+8
|
||
890 00c6 0022 movs r2, #0
|
||
891 00c8 1A60 str r2, [r3]
|
||
892 .L55:
|
||
893 .loc 1 202 1
|
||
894 00ca 00BF nop
|
||
895 00cc 80BD pop {r7, pc}
|
||
896 .L57:
|
||
897 00ce 00BF .align 2
|
||
898 .L56:
|
||
899 00d0 00000000 .word state
|
||
900 00d4 00000000 .word precharge_timer
|
||
901 00d8 00000000 .word discharge_timer
|
||
902 .cfi_endproc
|
||
903 .LFE133:
|
||
905 .section .text.sm_powerground_manager,"ax",%progbits
|
||
906 .align 1
|
||
907 .global sm_powerground_manager
|
||
908 .syntax unified
|
||
909 .thumb
|
||
910 .thumb_func
|
||
912 sm_powerground_manager:
|
||
913 .LFB134:
|
||
203:Core/Src/state_machine.c ****
|
||
204:Core/Src/state_machine.c **** void sm_powerground_manager(){
|
||
914 .loc 1 204 30
|
||
915 .cfi_startproc
|
||
916 @ args = 0, pretend = 0, frame = 0
|
||
917 @ frame_needed = 1, uses_anonymous_args = 0
|
||
918 0000 80B5 push {r7, lr}
|
||
919 .cfi_def_cfa_offset 8
|
||
920 .cfi_offset 7, -8
|
||
921 .cfi_offset 14, -4
|
||
922 0002 00AF add r7, sp, #0
|
||
923 .cfi_def_cfa_register 7
|
||
205:Core/Src/state_machine.c **** if (current_powerground_status == target_powerground_status)
|
||
924 .loc 1 205 34
|
||
925 0004 254B ldr r3, .L65
|
||
926 0006 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
927 0008 254B ldr r3, .L65+4
|
||
928 000a 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
929 .loc 1 205 6
|
||
930 000c 9A42 cmp r2, r3
|
||
931 000e 43D0 beq .L64
|
||
206:Core/Src/state_machine.c **** return;
|
||
207:Core/Src/state_machine.c **** if ( current_powerground_status > 100 || target_powerground_status > 100){ //something went wrong
|
||
932 .loc 1 207 35
|
||
933 0010 224B ldr r3, .L65
|
||
934 0012 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
935 .loc 1 207 6
|
||
936 0014 642B cmp r3, #100
|
||
937 0016 03D8 bhi .L61
|
||
ARM GAS /tmp/cctkPVvk.s page 21
|
||
|
||
|
||
938 .loc 1 207 70 discriminator 1
|
||
939 0018 214B ldr r3, .L65+4
|
||
940 001a 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
941 .loc 1 207 41 discriminator 1
|
||
942 001c 642B cmp r3, #100
|
||
943 001e 0AD9 bls .L62
|
||
944 .L61:
|
||
208:Core/Src/state_machine.c **** PWM_powerground_control(255);
|
||
945 .loc 1 208 5
|
||
946 0020 FF20 movs r0, #255
|
||
947 0022 FFF7FEFF bl PWM_powerground_control
|
||
209:Core/Src/state_machine.c **** current_powerground_status = target_powerground_status= 0;
|
||
948 .loc 1 209 59
|
||
949 0026 1E4B ldr r3, .L65+4
|
||
950 0028 0022 movs r2, #0
|
||
951 002a 1A70 strb r2, [r3]
|
||
952 .loc 1 209 32
|
||
953 002c 1C4B ldr r3, .L65+4
|
||
954 002e 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
955 0030 1A4B ldr r3, .L65
|
||
956 0032 1A70 strb r2, [r3]
|
||
210:Core/Src/state_machine.c **** return;
|
||
957 .loc 1 210 5
|
||
958 0034 31E0 b .L58
|
||
959 .L62:
|
||
211:Core/Src/state_machine.c **** }
|
||
212:Core/Src/state_machine.c ****
|
||
213:Core/Src/state_machine.c **** if (powerground_softstart_timer < HAL_GetTick()){
|
||
960 .loc 1 213 37
|
||
961 0036 FFF7FEFF bl HAL_GetTick
|
||
962 003a 0246 mov r2, r0
|
||
963 .loc 1 213 35 discriminator 1
|
||
964 003c 194B ldr r3, .L65+8
|
||
965 003e 1B68 ldr r3, [r3]
|
||
966 .loc 1 213 6 discriminator 1
|
||
967 0040 9A42 cmp r2, r3
|
||
968 0042 2AD9 bls .L58
|
||
214:Core/Src/state_machine.c **** if (current_powerground_status < target_powerground_status){
|
||
969 .loc 1 214 36
|
||
970 0044 154B ldr r3, .L65
|
||
971 0046 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
972 0048 154B ldr r3, .L65+4
|
||
973 004a 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
974 .loc 1 214 8
|
||
975 004c 9A42 cmp r2, r3
|
||
976 004e 0ED2 bcs .L63
|
||
215:Core/Src/state_machine.c **** current_powerground_status += 5;
|
||
977 .loc 1 215 34
|
||
978 0050 124B ldr r3, .L65
|
||
979 0052 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
980 0054 0533 adds r3, r3, #5
|
||
981 0056 DAB2 uxtb r2, r3
|
||
982 0058 104B ldr r3, .L65
|
||
983 005a 1A70 strb r2, [r3]
|
||
216:Core/Src/state_machine.c **** PWM_powerground_softcontrol();
|
||
984 .loc 1 216 7
|
||
985 005c FFF7FEFF bl PWM_powerground_softcontrol
|
||
ARM GAS /tmp/cctkPVvk.s page 22
|
||
|
||
|
||
217:Core/Src/state_machine.c **** powerground_softstart_timer = HAL_GetTick() + POWERGROUND_SOFTSTART_INCREMENT_DELAY;
|
||
986 .loc 1 217 37
|
||
987 0060 FFF7FEFF bl HAL_GetTick
|
||
988 0064 0346 mov r3, r0
|
||
989 .loc 1 217 51 discriminator 1
|
||
990 0066 0F33 adds r3, r3, #15
|
||
991 .loc 1 217 35 discriminator 1
|
||
992 0068 0E4A ldr r2, .L65+8
|
||
993 006a 1360 str r3, [r2]
|
||
994 006c 15E0 b .L58
|
||
995 .L63:
|
||
218:Core/Src/state_machine.c **** } else if (current_powerground_status > target_powerground_status) {
|
||
996 .loc 1 218 43
|
||
997 006e 0B4B ldr r3, .L65
|
||
998 0070 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
999 0072 0B4B ldr r3, .L65+4
|
||
1000 0074 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1001 .loc 1 218 15
|
||
1002 0076 9A42 cmp r2, r3
|
||
1003 0078 0FD9 bls .L58
|
||
219:Core/Src/state_machine.c **** current_powerground_status -= 5;
|
||
1004 .loc 1 219 34
|
||
1005 007a 084B ldr r3, .L65
|
||
1006 007c 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1007 007e 053B subs r3, r3, #5
|
||
1008 0080 DAB2 uxtb r2, r3
|
||
1009 0082 064B ldr r3, .L65
|
||
1010 0084 1A70 strb r2, [r3]
|
||
220:Core/Src/state_machine.c **** PWM_powerground_softcontrol();
|
||
1011 .loc 1 220 7
|
||
1012 0086 FFF7FEFF bl PWM_powerground_softcontrol
|
||
221:Core/Src/state_machine.c **** powerground_softstart_timer = HAL_GetTick() + POWERGROUND_SOFTSTART_INCREMENT_DELAY;
|
||
1013 .loc 1 221 37
|
||
1014 008a FFF7FEFF bl HAL_GetTick
|
||
1015 008e 0346 mov r3, r0
|
||
1016 .loc 1 221 51 discriminator 1
|
||
1017 0090 0F33 adds r3, r3, #15
|
||
1018 .loc 1 221 35 discriminator 1
|
||
1019 0092 044A ldr r2, .L65+8
|
||
1020 0094 1360 str r3, [r2]
|
||
1021 0096 00E0 b .L58
|
||
1022 .L64:
|
||
206:Core/Src/state_machine.c **** if ( current_powerground_status > 100 || target_powerground_status > 100){ //something went wrong
|
||
1023 .loc 1 206 5
|
||
1024 0098 00BF nop
|
||
1025 .L58:
|
||
222:Core/Src/state_machine.c **** }
|
||
223:Core/Src/state_machine.c **** }
|
||
224:Core/Src/state_machine.c **** }
|
||
1026 .loc 1 224 1
|
||
1027 009a 80BD pop {r7, pc}
|
||
1028 .L66:
|
||
1029 .align 2
|
||
1030 .L65:
|
||
1031 009c 00000000 .word current_powerground_status
|
||
1032 00a0 00000000 .word target_powerground_status
|
||
1033 00a4 00000000 .word powerground_softstart_timer
|
||
ARM GAS /tmp/cctkPVvk.s page 23
|
||
|
||
|
||
1034 .cfi_endproc
|
||
1035 .LFE134:
|
||
1037 .section .text.sm_calibrate_powerground,"ax",%progbits
|
||
1038 .align 1
|
||
1039 .global sm_calibrate_powerground
|
||
1040 .syntax unified
|
||
1041 .thumb
|
||
1042 .thumb_func
|
||
1044 sm_calibrate_powerground:
|
||
1045 .LFB135:
|
||
225:Core/Src/state_machine.c ****
|
||
226:Core/Src/state_machine.c **** void sm_calibrate_powerground(){
|
||
1046 .loc 1 226 32
|
||
1047 .cfi_startproc
|
||
1048 @ args = 0, pretend = 0, frame = 0
|
||
1049 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1050 0000 80B5 push {r7, lr}
|
||
1051 .cfi_def_cfa_offset 8
|
||
1052 .cfi_offset 7, -8
|
||
1053 .cfi_offset 14, -4
|
||
1054 0002 00AF add r7, sp, #0
|
||
1055 .cfi_def_cfa_register 7
|
||
227:Core/Src/state_machine.c **** if (powerground_calibration_stage != 4 && state.current_state == STATE_PRECHARGE){
|
||
1056 .loc 1 227 37
|
||
1057 0004 2D4B ldr r3, .L81
|
||
1058 0006 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1059 .loc 1 227 6
|
||
1060 0008 042B cmp r3, #4
|
||
1061 000a 56D0 beq .L67
|
||
1062 .loc 1 227 50 discriminator 1
|
||
1063 000c 2C4B ldr r3, .L81+4
|
||
1064 000e 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1065 .loc 1 227 42 discriminator 1
|
||
1066 0010 012B cmp r3, #1
|
||
1067 0012 52D1 bne .L67
|
||
228:Core/Src/state_machine.c **** switch (powerground_calibration_stage) {
|
||
1068 .loc 1 228 5
|
||
1069 0014 294B ldr r3, .L81
|
||
1070 0016 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1071 0018 032B cmp r3, #3
|
||
1072 001a 4ED8 bhi .L67
|
||
1073 001c 01A2 adr r2, .L70
|
||
1074 001e 52F823F0 ldr pc, [r2, r3, lsl #2]
|
||
1075 0022 00BF .p2align 2
|
||
1076 .L70:
|
||
1077 0024 35000000 .word .L73+1
|
||
1078 0028 47000000 .word .L72+1
|
||
1079 002c 71000000 .word .L71+1
|
||
1080 0030 9B000000 .word .L69+1
|
||
1081 .p2align 1
|
||
1082 .L73:
|
||
229:Core/Src/state_machine.c **** case 0:
|
||
230:Core/Src/state_machine.c **** powerground_calibration_timer = HAL_GetTick() + 0;
|
||
1083 .loc 1 230 41
|
||
1084 0034 FFF7FEFF bl HAL_GetTick
|
||
1085 0038 0346 mov r3, r0
|
||
1086 .loc 1 230 39 discriminator 1
|
||
ARM GAS /tmp/cctkPVvk.s page 24
|
||
|
||
|
||
1087 003a 224A ldr r2, .L81+8
|
||
1088 003c 1360 str r3, [r2]
|
||
231:Core/Src/state_machine.c **** powerground_calibration_stage = 1;
|
||
1089 .loc 1 231 39
|
||
1090 003e 1F4B ldr r3, .L81
|
||
1091 0040 0122 movs r2, #1
|
||
1092 0042 1A70 strb r2, [r3]
|
||
232:Core/Src/state_machine.c **** return;
|
||
1093 .loc 1 232 9
|
||
1094 0044 39E0 b .L67
|
||
1095 .L72:
|
||
233:Core/Src/state_machine.c **** case 1:
|
||
234:Core/Src/state_machine.c **** if (powerground_calibration_timer < HAL_GetTick()){
|
||
1096 .loc 1 234 45
|
||
1097 0046 FFF7FEFF bl HAL_GetTick
|
||
1098 004a 0246 mov r2, r0
|
||
1099 .loc 1 234 43 discriminator 1
|
||
1100 004c 1D4B ldr r3, .L81+8
|
||
1101 004e 1B68 ldr r3, [r3]
|
||
1102 .loc 1 234 12 discriminator 1
|
||
1103 0050 9A42 cmp r2, r3
|
||
1104 0052 2DD9 bls .L77
|
||
235:Core/Src/state_machine.c **** powerground_calibration_timer = HAL_GetTick() + 2000;
|
||
1105 .loc 1 235 43
|
||
1106 0054 FFF7FEFF bl HAL_GetTick
|
||
1107 0058 0346 mov r3, r0
|
||
1108 .loc 1 235 57 discriminator 1
|
||
1109 005a 03F5FA63 add r3, r3, #2000
|
||
1110 .loc 1 235 41 discriminator 1
|
||
1111 005e 194A ldr r2, .L81+8
|
||
1112 0060 1360 str r3, [r2]
|
||
236:Core/Src/state_machine.c **** powerground_calibration_stage = 2;
|
||
1113 .loc 1 236 41
|
||
1114 0062 164B ldr r3, .L81
|
||
1115 0064 0222 movs r2, #2
|
||
1116 0066 1A70 strb r2, [r3]
|
||
237:Core/Src/state_machine.c **** PWM_powerground_control(100);
|
||
1117 .loc 1 237 11
|
||
1118 0068 6420 movs r0, #100
|
||
1119 006a FFF7FEFF bl PWM_powerground_control
|
||
238:Core/Src/state_machine.c **** }
|
||
239:Core/Src/state_machine.c **** return;
|
||
1120 .loc 1 239 9
|
||
1121 006e 1FE0 b .L77
|
||
1122 .L71:
|
||
240:Core/Src/state_machine.c **** case 2:
|
||
241:Core/Src/state_machine.c **** if (powerground_calibration_timer < HAL_GetTick()){
|
||
1123 .loc 1 241 45
|
||
1124 0070 FFF7FEFF bl HAL_GetTick
|
||
1125 0074 0246 mov r2, r0
|
||
1126 .loc 1 241 43 discriminator 1
|
||
1127 0076 134B ldr r3, .L81+8
|
||
1128 0078 1B68 ldr r3, [r3]
|
||
1129 .loc 1 241 12 discriminator 1
|
||
1130 007a 9A42 cmp r2, r3
|
||
1131 007c 1AD9 bls .L78
|
||
242:Core/Src/state_machine.c **** powerground_calibration_timer = HAL_GetTick() + 1000;
|
||
ARM GAS /tmp/cctkPVvk.s page 25
|
||
|
||
|
||
1132 .loc 1 242 43
|
||
1133 007e FFF7FEFF bl HAL_GetTick
|
||
1134 0082 0346 mov r3, r0
|
||
1135 .loc 1 242 57 discriminator 1
|
||
1136 0084 03F57A73 add r3, r3, #1000
|
||
1137 .loc 1 242 41 discriminator 1
|
||
1138 0088 0E4A ldr r2, .L81+8
|
||
1139 008a 1360 str r3, [r2]
|
||
243:Core/Src/state_machine.c **** powerground_calibration_stage = 3;
|
||
1140 .loc 1 243 41
|
||
1141 008c 0B4B ldr r3, .L81
|
||
1142 008e 0322 movs r2, #3
|
||
1143 0090 1A70 strb r2, [r3]
|
||
244:Core/Src/state_machine.c **** PWM_powerground_control(0);
|
||
1144 .loc 1 244 11
|
||
1145 0092 0020 movs r0, #0
|
||
1146 0094 FFF7FEFF bl PWM_powerground_control
|
||
245:Core/Src/state_machine.c **** }
|
||
246:Core/Src/state_machine.c **** return;
|
||
1147 .loc 1 246 9
|
||
1148 0098 0CE0 b .L78
|
||
1149 .L69:
|
||
247:Core/Src/state_machine.c **** case 3:
|
||
248:Core/Src/state_machine.c **** if (powerground_calibration_timer < HAL_GetTick()){
|
||
1150 .loc 1 248 45
|
||
1151 009a FFF7FEFF bl HAL_GetTick
|
||
1152 009e 0246 mov r2, r0
|
||
1153 .loc 1 248 43 discriminator 1
|
||
1154 00a0 084B ldr r3, .L81+8
|
||
1155 00a2 1B68 ldr r3, [r3]
|
||
1156 .loc 1 248 12 discriminator 1
|
||
1157 00a4 9A42 cmp r2, r3
|
||
1158 00a6 07D9 bls .L79
|
||
249:Core/Src/state_machine.c **** powerground_calibration_stage = 4;
|
||
1159 .loc 1 249 41
|
||
1160 00a8 044B ldr r3, .L81
|
||
1161 00aa 0422 movs r2, #4
|
||
1162 00ac 1A70 strb r2, [r3]
|
||
250:Core/Src/state_machine.c **** }
|
||
251:Core/Src/state_machine.c **** return;
|
||
1163 .loc 1 251 9
|
||
1164 00ae 03E0 b .L79
|
||
1165 .L77:
|
||
239:Core/Src/state_machine.c **** case 2:
|
||
1166 .loc 1 239 9
|
||
1167 00b0 00BF nop
|
||
1168 00b2 02E0 b .L67
|
||
1169 .L78:
|
||
246:Core/Src/state_machine.c **** case 3:
|
||
1170 .loc 1 246 9
|
||
1171 00b4 00BF nop
|
||
1172 00b6 00E0 b .L67
|
||
1173 .L79:
|
||
1174 .loc 1 251 9
|
||
1175 00b8 00BF nop
|
||
1176 .L67:
|
||
252:Core/Src/state_machine.c **** }
|
||
ARM GAS /tmp/cctkPVvk.s page 26
|
||
|
||
|
||
253:Core/Src/state_machine.c **** }
|
||
254:Core/Src/state_machine.c **** }
|
||
1177 .loc 1 254 1
|
||
1178 00ba 80BD pop {r7, pc}
|
||
1179 .L82:
|
||
1180 .align 2
|
||
1181 .L81:
|
||
1182 00bc 00000000 .word powerground_calibration_stage
|
||
1183 00c0 00000000 .word state
|
||
1184 00c4 00000000 .word powerground_calibration_timer
|
||
1185 .cfi_endproc
|
||
1186 .LFE135:
|
||
1188 .section .text.sm_balancing,"ax",%progbits
|
||
1189 .align 1
|
||
1190 .global sm_balancing
|
||
1191 .syntax unified
|
||
1192 .thumb
|
||
1193 .thumb_func
|
||
1195 sm_balancing:
|
||
1196 .LFB136:
|
||
255:Core/Src/state_machine.c ****
|
||
256:Core/Src/state_machine.c **** void sm_balancing(){
|
||
1197 .loc 1 256 20
|
||
1198 .cfi_startproc
|
||
1199 @ args = 0, pretend = 0, frame = 16
|
||
1200 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1201 0000 80B5 push {r7, lr}
|
||
1202 .cfi_def_cfa_offset 8
|
||
1203 .cfi_offset 7, -8
|
||
1204 .cfi_offset 14, -4
|
||
1205 0002 84B0 sub sp, sp, #16
|
||
1206 .cfi_def_cfa_offset 24
|
||
1207 0004 00AF add r7, sp, #0
|
||
1208 .cfi_def_cfa_register 7
|
||
257:Core/Src/state_machine.c **** if (balancing_timer < HAL_GetTick()){
|
||
1209 .loc 1 257 25
|
||
1210 0006 FFF7FEFF bl HAL_GetTick
|
||
1211 000a 0246 mov r2, r0
|
||
1212 .loc 1 257 23 discriminator 1
|
||
1213 000c 364B ldr r3, .L93
|
||
1214 000e 1B68 ldr r3, [r3]
|
||
1215 .loc 1 257 6 discriminator 1
|
||
1216 0010 9A42 cmp r2, r3
|
||
1217 0012 65D9 bls .L83
|
||
258:Core/Src/state_machine.c **** if (balancing_state){
|
||
1218 .loc 1 258 9
|
||
1219 0014 354B ldr r3, .L93+4
|
||
1220 0016 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1221 .loc 1 258 8
|
||
1222 0018 002B cmp r3, #0
|
||
1223 001a 55D0 beq .L85
|
||
1224 .LBB2:
|
||
259:Core/Src/state_machine.c **** balancing_timer = HAL_GetTick() + 30000;
|
||
1225 .loc 1 259 25
|
||
1226 001c FFF7FEFF bl HAL_GetTick
|
||
1227 0020 0346 mov r3, r0
|
||
1228 .loc 1 259 39 discriminator 1
|
||
ARM GAS /tmp/cctkPVvk.s page 27
|
||
|
||
|
||
1229 0022 03F5EA43 add r3, r3, #29952
|
||
1230 0026 3033 adds r3, r3, #48
|
||
1231 .loc 1 259 23 discriminator 1
|
||
1232 0028 2F4A ldr r2, .L93
|
||
1233 002a 1360 str r3, [r2]
|
||
260:Core/Src/state_machine.c ****
|
||
261:Core/Src/state_machine.c **** uint8_t id_cell_lowest_voltage = 0;
|
||
1234 .loc 1 261 15
|
||
1235 002c 0023 movs r3, #0
|
||
1236 002e FB73 strb r3, [r7, #15]
|
||
262:Core/Src/state_machine.c **** uint8_t num_of_cells_to_balance = 0;
|
||
1237 .loc 1 262 15
|
||
1238 0030 0023 movs r3, #0
|
||
1239 0032 BB73 strb r3, [r7, #14]
|
||
263:Core/Src/state_machine.c **** uint32_t channels = 0;
|
||
1240 .loc 1 263 16
|
||
1241 0034 0023 movs r3, #0
|
||
1242 0036 BB60 str r3, [r7, #8]
|
||
1243 .LBB3:
|
||
264:Core/Src/state_machine.c ****
|
||
265:Core/Src/state_machine.c **** for (int i = 0; i < 13; i++) {
|
||
1244 .loc 1 265 16
|
||
1245 0038 0023 movs r3, #0
|
||
1246 003a 7B60 str r3, [r7, #4]
|
||
1247 .loc 1 265 7
|
||
1248 003c 0EE0 b .L86
|
||
1249 .L88:
|
||
266:Core/Src/state_machine.c **** if (module.cellVoltages[i] < module.cellVoltages[id_cell_lowest_voltage])
|
||
1250 .loc 1 266 32
|
||
1251 003e 2C4A ldr r2, .L93+8
|
||
1252 0040 7B68 ldr r3, [r7, #4]
|
||
1253 0042 32F91320 ldrsh r2, [r2, r3, lsl #1]
|
||
1254 .loc 1 266 57
|
||
1255 0046 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
1256 0048 2949 ldr r1, .L93+8
|
||
1257 004a 31F91330 ldrsh r3, [r1, r3, lsl #1]
|
||
1258 .loc 1 266 12
|
||
1259 004e 9A42 cmp r2, r3
|
||
1260 0050 01DA bge .L87
|
||
267:Core/Src/state_machine.c **** id_cell_lowest_voltage = i;
|
||
1261 .loc 1 267 34
|
||
1262 0052 7B68 ldr r3, [r7, #4]
|
||
1263 0054 FB73 strb r3, [r7, #15]
|
||
1264 .L87:
|
||
265:Core/Src/state_machine.c **** if (module.cellVoltages[i] < module.cellVoltages[id_cell_lowest_voltage])
|
||
1265 .loc 1 265 32 discriminator 2
|
||
1266 0056 7B68 ldr r3, [r7, #4]
|
||
1267 0058 0133 adds r3, r3, #1
|
||
1268 005a 7B60 str r3, [r7, #4]
|
||
1269 .L86:
|
||
265:Core/Src/state_machine.c **** if (module.cellVoltages[i] < module.cellVoltages[id_cell_lowest_voltage])
|
||
1270 .loc 1 265 25 discriminator 1
|
||
1271 005c 7B68 ldr r3, [r7, #4]
|
||
1272 005e 0C2B cmp r3, #12
|
||
1273 0060 EDDD ble .L88
|
||
1274 .LBE3:
|
||
1275 .LBB4:
|
||
ARM GAS /tmp/cctkPVvk.s page 28
|
||
|
||
|
||
268:Core/Src/state_machine.c **** }
|
||
269:Core/Src/state_machine.c ****
|
||
270:Core/Src/state_machine.c **** for (int i = 0; i < 13; i++) {
|
||
1276 .loc 1 270 16
|
||
1277 0062 0023 movs r3, #0
|
||
1278 0064 3B60 str r3, [r7]
|
||
1279 .loc 1 270 7
|
||
1280 0066 18E0 b .L89
|
||
1281 .L91:
|
||
271:Core/Src/state_machine.c **** if (module.cellVoltages[i] - 20 > module.cellVoltages[id_cell_lowest_voltage]){
|
||
1282 .loc 1 271 32
|
||
1283 0068 214A ldr r2, .L93+8
|
||
1284 006a 3B68 ldr r3, [r7]
|
||
1285 006c 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
1286 .loc 1 271 36
|
||
1287 0070 143B subs r3, r3, #20
|
||
1288 .loc 1 271 62
|
||
1289 0072 FA7B ldrb r2, [r7, #15] @ zero_extendqisi2
|
||
1290 0074 1E49 ldr r1, .L93+8
|
||
1291 0076 31F91220 ldrsh r2, [r1, r2, lsl #1]
|
||
1292 .loc 1 271 12
|
||
1293 007a 9342 cmp r3, r2
|
||
1294 007c 0ADD ble .L90
|
||
272:Core/Src/state_machine.c **** channels |= 1 << i;
|
||
1295 .loc 1 272 25
|
||
1296 007e 0122 movs r2, #1
|
||
1297 0080 3B68 ldr r3, [r7]
|
||
1298 0082 02FA03F3 lsl r3, r2, r3
|
||
1299 0086 1A46 mov r2, r3
|
||
1300 .loc 1 272 20
|
||
1301 0088 BB68 ldr r3, [r7, #8]
|
||
1302 008a 1343 orrs r3, r3, r2
|
||
1303 008c BB60 str r3, [r7, #8]
|
||
273:Core/Src/state_machine.c **** num_of_cells_to_balance++;
|
||
1304 .loc 1 273 34
|
||
1305 008e BB7B ldrb r3, [r7, #14] @ zero_extendqisi2
|
||
1306 0090 0133 adds r3, r3, #1
|
||
1307 0092 BB73 strb r3, [r7, #14]
|
||
1308 .L90:
|
||
270:Core/Src/state_machine.c **** if (module.cellVoltages[i] - 20 > module.cellVoltages[id_cell_lowest_voltage]){
|
||
1309 .loc 1 270 32 discriminator 2
|
||
1310 0094 3B68 ldr r3, [r7]
|
||
1311 0096 0133 adds r3, r3, #1
|
||
1312 0098 3B60 str r3, [r7]
|
||
1313 .L89:
|
||
270:Core/Src/state_machine.c **** if (module.cellVoltages[i] - 20 > module.cellVoltages[id_cell_lowest_voltage]){
|
||
1314 .loc 1 270 25 discriminator 1
|
||
1315 009a 3B68 ldr r3, [r7]
|
||
1316 009c 0C2B cmp r3, #12
|
||
1317 009e E3DD ble .L91
|
||
1318 .LBE4:
|
||
274:Core/Src/state_machine.c **** }
|
||
275:Core/Src/state_machine.c **** }
|
||
276:Core/Src/state_machine.c ****
|
||
277:Core/Src/state_machine.c **** if (num_of_cells_to_balance == 0){
|
||
1319 .loc 1 277 10
|
||
1320 00a0 BB7B ldrb r3, [r7, #14] @ zero_extendqisi2
|
||
ARM GAS /tmp/cctkPVvk.s page 29
|
||
|
||
|
||
1321 00a2 002B cmp r3, #0
|
||
1322 00a4 05D1 bne .L92
|
||
278:Core/Src/state_machine.c **** amsStopBalancing();
|
||
1323 .loc 1 278 9
|
||
1324 00a6 FFF7FEFF bl amsStopBalancing
|
||
279:Core/Src/state_machine.c **** balancing_state = 0;
|
||
1325 .loc 1 279 25
|
||
1326 00aa 104B ldr r3, .L93+4
|
||
1327 00ac 0022 movs r2, #0
|
||
1328 00ae 1A70 strb r2, [r3]
|
||
280:Core/Src/state_machine.c **** return;
|
||
1329 .loc 1 280 9
|
||
1330 00b0 16E0 b .L83
|
||
1331 .L92:
|
||
281:Core/Src/state_machine.c **** }
|
||
282:Core/Src/state_machine.c ****
|
||
283:Core/Src/state_machine.c **** amsConfigBalancing(channels, 0xF);
|
||
1332 .loc 1 283 7
|
||
1333 00b2 0F21 movs r1, #15
|
||
1334 00b4 B868 ldr r0, [r7, #8]
|
||
1335 00b6 FFF7FEFF bl amsConfigBalancing
|
||
284:Core/Src/state_machine.c **** amsStartBalancing(0xF);
|
||
1336 .loc 1 284 7
|
||
1337 00ba 0F20 movs r0, #15
|
||
1338 00bc FFF7FEFF bl amsStartBalancing
|
||
285:Core/Src/state_machine.c **** balancing_state = 1;
|
||
1339 .loc 1 285 23
|
||
1340 00c0 0A4B ldr r3, .L93+4
|
||
1341 00c2 0122 movs r2, #1
|
||
1342 00c4 1A70 strb r2, [r3]
|
||
1343 .LBE2:
|
||
1344 00c6 0BE0 b .L83
|
||
1345 .L85:
|
||
286:Core/Src/state_machine.c **** } else {
|
||
287:Core/Src/state_machine.c **** balancing_timer = HAL_GetTick() + 1000;
|
||
1346 .loc 1 287 25
|
||
1347 00c8 FFF7FEFF bl HAL_GetTick
|
||
1348 00cc 0346 mov r3, r0
|
||
1349 .loc 1 287 39 discriminator 1
|
||
1350 00ce 03F57A73 add r3, r3, #1000
|
||
1351 .loc 1 287 23 discriminator 1
|
||
1352 00d2 054A ldr r2, .L93
|
||
1353 00d4 1360 str r3, [r2]
|
||
288:Core/Src/state_machine.c **** balancing_state = 0;
|
||
1354 .loc 1 288 23
|
||
1355 00d6 054B ldr r3, .L93+4
|
||
1356 00d8 0022 movs r2, #0
|
||
1357 00da 1A70 strb r2, [r3]
|
||
289:Core/Src/state_machine.c **** amsStopBalancing();
|
||
1358 .loc 1 289 7
|
||
1359 00dc FFF7FEFF bl amsStopBalancing
|
||
1360 .L83:
|
||
290:Core/Src/state_machine.c **** }
|
||
291:Core/Src/state_machine.c **** }
|
||
292:Core/Src/state_machine.c **** }
|
||
1361 .loc 1 292 1
|
||
1362 00e0 1037 adds r7, r7, #16
|
||
ARM GAS /tmp/cctkPVvk.s page 30
|
||
|
||
|
||
1363 .cfi_def_cfa_offset 8
|
||
1364 00e2 BD46 mov sp, r7
|
||
1365 .cfi_def_cfa_register 13
|
||
1366 @ sp needed
|
||
1367 00e4 80BD pop {r7, pc}
|
||
1368 .L94:
|
||
1369 00e6 00BF .align 2
|
||
1370 .L93:
|
||
1371 00e8 00000000 .word balancing_timer
|
||
1372 00ec 00000000 .word balancing_state
|
||
1373 00f0 00000000 .word module
|
||
1374 .cfi_endproc
|
||
1375 .LFE136:
|
||
1377 .section .text.sm_program_powerground,"ax",%progbits
|
||
1378 .align 1
|
||
1379 .global sm_program_powerground
|
||
1380 .syntax unified
|
||
1381 .thumb
|
||
1382 .thumb_func
|
||
1384 sm_program_powerground:
|
||
1385 .LFB137:
|
||
293:Core/Src/state_machine.c ****
|
||
294:Core/Src/state_machine.c **** void sm_program_powerground(){
|
||
1386 .loc 1 294 30
|
||
1387 .cfi_startproc
|
||
1388 @ args = 0, pretend = 0, frame = 0
|
||
1389 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1390 0000 80B5 push {r7, lr}
|
||
1391 .cfi_def_cfa_offset 8
|
||
1392 .cfi_offset 7, -8
|
||
1393 .cfi_offset 14, -4
|
||
1394 0002 00AF add r7, sp, #0
|
||
1395 .cfi_def_cfa_register 7
|
||
295:Core/Src/state_machine.c **** if (programming_mode == 0)
|
||
1396 .loc 1 295 24
|
||
1397 0004 0A4B ldr r3, .L101
|
||
1398 0006 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1399 0008 83F00103 eor r3, r3, #1
|
||
1400 000c DBB2 uxtb r3, r3
|
||
1401 .loc 1 295 6
|
||
1402 000e 002B cmp r3, #0
|
||
1403 0010 0CD1 bne .L100
|
||
296:Core/Src/state_machine.c **** return;
|
||
297:Core/Src/state_machine.c **** PWM_powerground_control(100);
|
||
1404 .loc 1 297 3
|
||
1405 0012 6420 movs r0, #100
|
||
1406 0014 FFF7FEFF bl PWM_powerground_control
|
||
298:Core/Src/state_machine.c **** state.current_state = state.target_state = STATE_ACTIVE;
|
||
1407 .loc 1 298 44
|
||
1408 0018 064B ldr r3, .L101+4
|
||
1409 001a 0322 movs r2, #3
|
||
1410 001c 5A70 strb r2, [r3, #1]
|
||
1411 .loc 1 298 30
|
||
1412 001e 054B ldr r3, .L101+4
|
||
1413 0020 5A78 ldrb r2, [r3, #1] @ zero_extendqisi2
|
||
1414 .loc 1 298 23
|
||
1415 0022 044B ldr r3, .L101+4
|
||
ARM GAS /tmp/cctkPVvk.s page 31
|
||
|
||
|
||
1416 0024 1A70 strb r2, [r3]
|
||
1417 .L98:
|
||
299:Core/Src/state_machine.c **** while (1) {
|
||
300:Core/Src/state_machine.c **** can_handle_send_status();
|
||
1418 .loc 1 300 5 discriminator 1
|
||
1419 0026 FFF7FEFF bl can_handle_send_status
|
||
1420 002a FCE7 b .L98
|
||
1421 .L100:
|
||
296:Core/Src/state_machine.c **** PWM_powerground_control(100);
|
||
1422 .loc 1 296 5
|
||
1423 002c 00BF nop
|
||
301:Core/Src/state_machine.c **** }
|
||
302:Core/Src/state_machine.c **** }
|
||
1424 .loc 1 302 1
|
||
1425 002e 80BD pop {r7, pc}
|
||
1426 .L102:
|
||
1427 .align 2
|
||
1428 .L101:
|
||
1429 0030 00000000 .word programming_mode
|
||
1430 0034 00000000 .word state
|
||
1431 .cfi_endproc
|
||
1432 .LFE137:
|
||
1434 .section .text.sm_eeprom_write_status,"ax",%progbits
|
||
1435 .align 1
|
||
1436 .global sm_eeprom_write_status
|
||
1437 .syntax unified
|
||
1438 .thumb
|
||
1439 .thumb_func
|
||
1441 sm_eeprom_write_status:
|
||
1442 .LFB138:
|
||
303:Core/Src/state_machine.c ****
|
||
304:Core/Src/state_machine.c **** void sm_eeprom_write_status(){
|
||
1443 .loc 1 304 30
|
||
1444 .cfi_startproc
|
||
1445 @ args = 0, pretend = 0, frame = 0
|
||
1446 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1447 0000 80B5 push {r7, lr}
|
||
1448 .cfi_def_cfa_offset 8
|
||
1449 .cfi_offset 7, -8
|
||
1450 .cfi_offset 14, -4
|
||
1451 0002 00AF add r7, sp, #0
|
||
1452 .cfi_def_cfa_register 7
|
||
305:Core/Src/state_machine.c **** if (eeprom_timer < HAL_GetTick()){
|
||
1453 .loc 1 305 22
|
||
1454 0004 FFF7FEFF bl HAL_GetTick
|
||
1455 0008 0246 mov r2, r0
|
||
1456 .loc 1 305 20 discriminator 1
|
||
1457 000a 074B ldr r3, .L106
|
||
1458 000c 1B68 ldr r3, [r3]
|
||
1459 .loc 1 305 6 discriminator 1
|
||
1460 000e 9A42 cmp r2, r3
|
||
1461 0010 08D9 bls .L105
|
||
306:Core/Src/state_machine.c **** eeprom_write_status();
|
||
1462 .loc 1 306 5
|
||
1463 0012 FFF7FEFF bl eeprom_write_status
|
||
307:Core/Src/state_machine.c **** eeprom_timer = HAL_GetTick() + EEPROM_WRITE_FREQ;
|
||
1464 .loc 1 307 20
|
||
ARM GAS /tmp/cctkPVvk.s page 32
|
||
|
||
|
||
1465 0016 FFF7FEFF bl HAL_GetTick
|
||
1466 001a 0346 mov r3, r0
|
||
1467 .loc 1 307 34 discriminator 1
|
||
1468 001c 03F57A73 add r3, r3, #1000
|
||
1469 .loc 1 307 18 discriminator 1
|
||
1470 0020 014A ldr r2, .L106
|
||
1471 0022 1360 str r3, [r2]
|
||
1472 .L105:
|
||
308:Core/Src/state_machine.c **** }
|
||
309:Core/Src/state_machine.c **** }
|
||
1473 .loc 1 309 1
|
||
1474 0024 00BF nop
|
||
1475 0026 80BD pop {r7, pc}
|
||
1476 .L107:
|
||
1477 .align 2
|
||
1478 .L106:
|
||
1479 0028 00000000 .word eeprom_timer
|
||
1480 .cfi_endproc
|
||
1481 .LFE138:
|
||
1483 .section .text.sm_check_errors,"ax",%progbits
|
||
1484 .align 1
|
||
1485 .global sm_check_errors
|
||
1486 .syntax unified
|
||
1487 .thumb
|
||
1488 .thumb_func
|
||
1490 sm_check_errors:
|
||
1491 .LFB139:
|
||
310:Core/Src/state_machine.c ****
|
||
311:Core/Src/state_machine.c **** void sm_check_errors(){
|
||
1492 .loc 1 311 23
|
||
1493 .cfi_startproc
|
||
1494 @ args = 0, pretend = 0, frame = 0
|
||
1495 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1496 0000 80B5 push {r7, lr}
|
||
1497 .cfi_def_cfa_offset 8
|
||
1498 .cfi_offset 7, -8
|
||
1499 .cfi_offset 14, -4
|
||
1500 0002 00AF add r7, sp, #0
|
||
1501 .cfi_def_cfa_register 7
|
||
312:Core/Src/state_machine.c **** if (programming_mode == 1 || debugging_mode == 1) {return;} // to disable error checking
|
||
1502 .loc 1 312 24
|
||
1503 0004 774B ldr r3, .L126
|
||
1504 0006 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1505 .loc 1 312 6
|
||
1506 0008 002B cmp r3, #0
|
||
1507 000a 40F0E880 bne .L125
|
||
1508 .loc 1 312 47 discriminator 2
|
||
1509 000e 764B ldr r3, .L126+4
|
||
1510 0010 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1511 .loc 1 312 29 discriminator 2
|
||
1512 0012 002B cmp r3, #0
|
||
1513 0014 40F0E380 bne .L125
|
||
313:Core/Src/state_machine.c **** state.error_type.temperature_error = (error_data.error_sources & (1 << 0) || error_data.error_sou
|
||
1514 .loc 1 313 51
|
||
1515 0018 744B ldr r3, .L126+8
|
||
1516 001a 1B88 ldrh r3, [r3]
|
||
1517 .loc 1 313 66
|
||
ARM GAS /tmp/cctkPVvk.s page 33
|
||
|
||
|
||
1518 001c 03F00103 and r3, r3, #1
|
||
1519 .loc 1 313 160
|
||
1520 0020 002B cmp r3, #0
|
||
1521 0022 0BD1 bne .L112
|
||
1522 .loc 1 313 90 discriminator 2
|
||
1523 0024 714B ldr r3, .L126+8
|
||
1524 0026 1B88 ldrh r3, [r3]
|
||
1525 .loc 1 313 105 discriminator 2
|
||
1526 0028 03F00203 and r3, r3, #2
|
||
1527 .loc 1 313 77 discriminator 2
|
||
1528 002c 002B cmp r3, #0
|
||
1529 002e 05D1 bne .L112
|
||
1530 .loc 1 313 129 discriminator 4
|
||
1531 0030 6E4B ldr r3, .L126+8
|
||
1532 0032 1B88 ldrh r3, [r3]
|
||
1533 .loc 1 313 144 discriminator 4
|
||
1534 0034 03F01003 and r3, r3, #16
|
||
1535 .loc 1 313 160 discriminator 4
|
||
1536 0038 002B cmp r3, #0
|
||
1537 003a 01D0 beq .L113
|
||
1538 .L112:
|
||
1539 .loc 1 313 160 is_stmt 0 discriminator 5
|
||
1540 003c 0123 movs r3, #1
|
||
1541 .loc 1 313 160
|
||
1542 003e 00E0 b .L114
|
||
1543 .L113:
|
||
1544 .loc 1 313 160 discriminator 6
|
||
1545 0040 0023 movs r3, #0
|
||
1546 .L114:
|
||
1547 .loc 1 313 160 discriminator 8
|
||
1548 0042 03F00103 and r3, r3, #1
|
||
1549 0046 D9B2 uxtb r1, r3
|
||
1550 .loc 1 313 38 is_stmt 1 discriminator 8
|
||
1551 0048 694A ldr r2, .L126+12
|
||
1552 004a 1379 ldrb r3, [r2, #4]
|
||
1553 004c 61F38203 bfi r3, r1, #2, #1
|
||
1554 0050 1371 strb r3, [r2, #4]
|
||
314:Core/Src/state_machine.c **** state.error_type.voltage_error = (error_data.error_sources & (1 << 2)|| error_data.error_sources
|
||
1555 .loc 1 314 47
|
||
1556 0052 664B ldr r3, .L126+8
|
||
1557 0054 1B88 ldrh r3, [r3]
|
||
1558 .loc 1 314 62
|
||
1559 0056 03F00403 and r3, r3, #4
|
||
1560 .loc 1 314 188
|
||
1561 005a 002B cmp r3, #0
|
||
1562 005c 11D1 bne .L115
|
||
1563 .loc 1 314 85 discriminator 2
|
||
1564 005e 634B ldr r3, .L126+8
|
||
1565 0060 1B88 ldrh r3, [r3]
|
||
1566 .loc 1 314 100 discriminator 2
|
||
1567 0062 03F00803 and r3, r3, #8
|
||
1568 .loc 1 314 72 discriminator 2
|
||
1569 0066 002B cmp r3, #0
|
||
1570 0068 0BD1 bne .L115
|
||
1571 .loc 1 314 123 discriminator 4
|
||
1572 006a 604B ldr r3, .L126+8
|
||
1573 006c 1B88 ldrh r3, [r3]
|
||
ARM GAS /tmp/cctkPVvk.s page 34
|
||
|
||
|
||
1574 .loc 1 314 138 discriminator 4
|
||
1575 006e 03F02003 and r3, r3, #32
|
||
1576 .loc 1 314 110 discriminator 4
|
||
1577 0072 002B cmp r3, #0
|
||
1578 0074 05D1 bne .L115
|
||
1579 .loc 1 314 175 discriminator 6
|
||
1580 0076 5F4B ldr r3, .L126+16
|
||
1581 0078 1B68 ldr r3, [r3]
|
||
1582 .loc 1 314 188 discriminator 6
|
||
1583 007a 47F22F52 movw r2, #29999
|
||
1584 007e 9342 cmp r3, r2
|
||
1585 0080 01DC bgt .L116
|
||
1586 .L115:
|
||
1587 .loc 1 314 188 is_stmt 0 discriminator 7
|
||
1588 0082 0123 movs r3, #1
|
||
1589 .loc 1 314 188
|
||
1590 0084 00E0 b .L117
|
||
1591 .L116:
|
||
1592 .loc 1 314 188 discriminator 8
|
||
1593 0086 0023 movs r3, #0
|
||
1594 .L117:
|
||
1595 .loc 1 314 188 discriminator 10
|
||
1596 0088 03F00103 and r3, r3, #1
|
||
1597 008c D9B2 uxtb r1, r3
|
||
1598 .loc 1 314 34 is_stmt 1 discriminator 10
|
||
1599 008e 584A ldr r2, .L126+12
|
||
1600 0090 1379 ldrb r3, [r2, #4]
|
||
1601 0092 61F34513 bfi r3, r1, #5, #1
|
||
1602 0096 1371 strb r3, [r2, #4]
|
||
315:Core/Src/state_machine.c **** state.error_type.bms_timeout = (error_data.error_sources & (1 << 7)) ? 1 : 0;
|
||
1603 .loc 1 315 45
|
||
1604 0098 544B ldr r3, .L126+8
|
||
1605 009a 1B88 ldrh r3, [r3]
|
||
1606 .loc 1 315 76
|
||
1607 009c DB11 asrs r3, r3, #7
|
||
1608 009e 03F00103 and r3, r3, #1
|
||
1609 00a2 D9B2 uxtb r1, r3
|
||
1610 .loc 1 315 32
|
||
1611 00a4 524A ldr r2, .L126+12
|
||
1612 00a6 1379 ldrb r3, [r2, #4]
|
||
1613 00a8 61F30003 bfi r3, r1, #0, #1
|
||
1614 00ac 1371 strb r3, [r2, #4]
|
||
316:Core/Src/state_machine.c **** state.error_type.bms_fault = (error_data.error_sources & (1 << 8) || error_data.error_sources & (
|
||
1615 .loc 1 316 43
|
||
1616 00ae 4F4B ldr r3, .L126+8
|
||
1617 00b0 1B88 ldrh r3, [r3]
|
||
1618 .loc 1 316 58
|
||
1619 00b2 03F48073 and r3, r3, #256
|
||
1620 .loc 1 316 153
|
||
1621 00b6 002B cmp r3, #0
|
||
1622 00b8 0BD1 bne .L118
|
||
1623 .loc 1 316 82 discriminator 2
|
||
1624 00ba 4C4B ldr r3, .L126+8
|
||
1625 00bc 1B88 ldrh r3, [r3]
|
||
1626 .loc 1 316 97 discriminator 2
|
||
1627 00be 03F48063 and r3, r3, #1024
|
||
1628 .loc 1 316 69 discriminator 2
|
||
ARM GAS /tmp/cctkPVvk.s page 35
|
||
|
||
|
||
1629 00c2 002B cmp r3, #0
|
||
1630 00c4 05D1 bne .L118
|
||
1631 .loc 1 316 122 discriminator 4
|
||
1632 00c6 494B ldr r3, .L126+8
|
||
1633 00c8 1B88 ldrh r3, [r3]
|
||
1634 .loc 1 316 137 discriminator 4
|
||
1635 00ca 03F40073 and r3, r3, #512
|
||
1636 .loc 1 316 153 discriminator 4
|
||
1637 00ce 002B cmp r3, #0
|
||
1638 00d0 01D0 beq .L119
|
||
1639 .L118:
|
||
1640 .loc 1 316 153 is_stmt 0 discriminator 5
|
||
1641 00d2 0123 movs r3, #1
|
||
1642 .loc 1 316 153
|
||
1643 00d4 00E0 b .L120
|
||
1644 .L119:
|
||
1645 .loc 1 316 153 discriminator 6
|
||
1646 00d6 0023 movs r3, #0
|
||
1647 .L120:
|
||
1648 .loc 1 316 153 discriminator 8
|
||
1649 00d8 03F00103 and r3, r3, #1
|
||
1650 00dc D9B2 uxtb r1, r3
|
||
1651 .loc 1 316 30 is_stmt 1 discriminator 8
|
||
1652 00de 444A ldr r2, .L126+12
|
||
1653 00e0 1379 ldrb r3, [r2, #4]
|
||
1654 00e2 61F34103 bfi r3, r1, #1, #1
|
||
1655 00e6 1371 strb r3, [r2, #4]
|
||
317:Core/Src/state_machine.c **** //SEK_EEPROM_ERR: state.error_type.eeprom_error = 1;
|
||
318:Core/Src/state_machine.c **** //state.error_type.current_error = (powerground_status > 10 && CURRENT_MEASUREMENT < 500) ? 1 : 0
|
||
319:Core/Src/state_machine.c **** state.error_type.current_sensor_missing = (!CURRENT_MEASUREMENT_ON) ? 1 : 0;
|
||
1656 .loc 1 319 75
|
||
1657 00e8 434B ldr r3, .L126+20
|
||
1658 00ea 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1659 00ec 83F00103 eor r3, r3, #1
|
||
1660 00f0 D9B2 uxtb r1, r3
|
||
1661 .loc 1 319 43
|
||
1662 00f2 3F4A ldr r2, .L126+12
|
||
1663 00f4 1379 ldrb r3, [r2, #4]
|
||
1664 00f6 61F30413 bfi r3, r1, #4, #1
|
||
1665 00fa 1371 strb r3, [r2, #4]
|
||
320:Core/Src/state_machine.c **** state.error_type.voltage_missing = (RELAY_BAT_SIDE_VOLTAGE < 1000) ? 1 : 0;
|
||
1666 .loc 1 320 74
|
||
1667 00fc 3D4B ldr r3, .L126+16
|
||
1668 00fe 1B68 ldr r3, [r3]
|
||
1669 0100 40F2E732 movw r2, #999
|
||
1670 0104 9342 cmp r3, r2
|
||
1671 0106 D4BF ite le
|
||
1672 0108 0123 movle r3, #1
|
||
1673 010a 0023 movgt r3, #0
|
||
1674 010c D9B2 uxtb r1, r3
|
||
1675 .loc 1 320 36
|
||
1676 010e 384A ldr r2, .L126+12
|
||
1677 0110 1379 ldrb r3, [r2, #4]
|
||
1678 0112 61F38613 bfi r3, r1, #6, #1
|
||
1679 0116 1371 strb r3, [r2, #4]
|
||
321:Core/Src/state_machine.c ****
|
||
322:Core/Src/state_machine.c ****
|
||
ARM GAS /tmp/cctkPVvk.s page 36
|
||
|
||
|
||
323:Core/Src/state_machine.c **** if (state.error_type.current_error == 1 || state.error_type.current_sensor_missing == 1 || //stat
|
||
1680 .loc 1 323 38
|
||
1681 0118 354B ldr r3, .L126+12
|
||
1682 011a 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
|
||
1683 011c 03F00803 and r3, r3, #8
|
||
1684 0120 DBB2 uxtb r3, r3
|
||
1685 .loc 1 323 6
|
||
1686 0122 002B cmp r3, #0
|
||
1687 0124 30D1 bne .L121
|
||
1688 .loc 1 323 86 discriminator 1
|
||
1689 0126 324B ldr r3, .L126+12
|
||
1690 0128 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
|
||
1691 012a 03F01003 and r3, r3, #16
|
||
1692 012e DBB2 uxtb r3, r3
|
||
1693 .loc 1 323 43 discriminator 1
|
||
1694 0130 002B cmp r3, #0
|
||
1695 0132 29D1 bne .L121
|
||
324:Core/Src/state_machine.c **** state.error_type.state_transition_fail == 1 || state.error_type.temperature_error == 1 || sta
|
||
1696 .loc 1 324 46
|
||
1697 0134 2E4B ldr r3, .L126+12
|
||
1698 0136 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
|
||
1699 0138 23F07F03 bic r3, r3, #127
|
||
1700 013c DBB2 uxtb r3, r3
|
||
323:Core/Src/state_machine.c **** state.error_type.state_transition_fail == 1 || state.error_type.temperature_error == 1 || sta
|
||
1701 .loc 1 323 91 discriminator 2
|
||
1702 013e 002B cmp r3, #0
|
||
1703 0140 22D1 bne .L121
|
||
1704 .loc 1 324 89
|
||
1705 0142 2B4B ldr r3, .L126+12
|
||
1706 0144 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
|
||
1707 0146 03F00403 and r3, r3, #4
|
||
1708 014a DBB2 uxtb r3, r3
|
||
1709 .loc 1 324 51
|
||
1710 014c 002B cmp r3, #0
|
||
1711 014e 1BD1 bne .L121
|
||
1712 .loc 1 324 128 discriminator 1
|
||
1713 0150 274B ldr r3, .L126+12
|
||
1714 0152 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
|
||
1715 0154 03F02003 and r3, r3, #32
|
||
1716 0158 DBB2 uxtb r3, r3
|
||
1717 .loc 1 324 94 discriminator 1
|
||
1718 015a 002B cmp r3, #0
|
||
1719 015c 14D1 bne .L121
|
||
325:Core/Src/state_machine.c **** state.error_type.voltage_missing == 1 || state.error_type.bms_fault == 1 || state.error_type.
|
||
1720 .loc 1 325 40
|
||
1721 015e 244B ldr r3, .L126+12
|
||
1722 0160 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
|
||
1723 0162 03F04003 and r3, r3, #64
|
||
1724 0166 DBB2 uxtb r3, r3
|
||
324:Core/Src/state_machine.c **** state.error_type.state_transition_fail == 1 || state.error_type.temperature_error == 1 || sta
|
||
1725 .loc 1 324 133 discriminator 2
|
||
1726 0168 002B cmp r3, #0
|
||
1727 016a 0DD1 bne .L121
|
||
1728 .loc 1 325 75
|
||
1729 016c 204B ldr r3, .L126+12
|
||
1730 016e 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
|
||
1731 0170 03F00203 and r3, r3, #2
|
||
ARM GAS /tmp/cctkPVvk.s page 37
|
||
|
||
|
||
1732 0174 DBB2 uxtb r3, r3
|
||
1733 .loc 1 325 45
|
||
1734 0176 002B cmp r3, #0
|
||
1735 0178 06D1 bne .L121
|
||
1736 .loc 1 325 112 discriminator 1
|
||
1737 017a 1D4B ldr r3, .L126+12
|
||
1738 017c 1B79 ldrb r3, [r3, #4] @ zero_extendqisi2
|
||
1739 017e 03F00103 and r3, r3, #1
|
||
1740 0182 DBB2 uxtb r3, r3
|
||
1741 .loc 1 325 80 discriminator 1
|
||
1742 0184 002B cmp r3, #0
|
||
1743 0186 19D0 beq .L122
|
||
1744 .L121:
|
||
326:Core/Src/state_machine.c **** {
|
||
327:Core/Src/state_machine.c **** if (state.current_state != STATE_INACTIVE && state.current_state != STATE_ERROR)
|
||
1745 .loc 1 327 14
|
||
1746 0188 194B ldr r3, .L126+12
|
||
1747 018a 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1748 .loc 1 327 8
|
||
1749 018c 002B cmp r3, #0
|
||
1750 018e 06D0 beq .L123
|
||
1751 .loc 1 327 55 discriminator 1
|
||
1752 0190 174B ldr r3, .L126+12
|
||
1753 0192 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1754 .loc 1 327 47 discriminator 1
|
||
1755 0194 072B cmp r3, #7
|
||
1756 0196 02D0 beq .L123
|
||
328:Core/Src/state_machine.c **** state.current_state = STATE_DISCHARGE;
|
||
1757 .loc 1 328 27
|
||
1758 0198 154B ldr r3, .L126+12
|
||
1759 019a 0422 movs r2, #4
|
||
1760 019c 1A70 strb r2, [r3]
|
||
1761 .L123:
|
||
329:Core/Src/state_machine.c **** state.target_state = STATE_ERROR;
|
||
1762 .loc 1 329 24
|
||
1763 019e 144B ldr r3, .L126+12
|
||
1764 01a0 0722 movs r2, #7
|
||
1765 01a2 5A70 strb r2, [r3, #1]
|
||
330:Core/Src/state_machine.c **** PWM_powerground_control(255);
|
||
1766 .loc 1 330 5
|
||
1767 01a4 FF20 movs r0, #255
|
||
1768 01a6 FFF7FEFF bl PWM_powerground_control
|
||
331:Core/Src/state_machine.c **** error_timer = HAL_GetTick() + ERROR_LATCH_TIME;
|
||
1769 .loc 1 331 19
|
||
1770 01aa FFF7FEFF bl HAL_GetTick
|
||
1771 01ae 0346 mov r3, r0
|
||
1772 .loc 1 331 33 discriminator 1
|
||
1773 01b0 03F51C53 add r3, r3, #9984
|
||
1774 01b4 1033 adds r3, r3, #16
|
||
1775 .loc 1 331 17 discriminator 1
|
||
1776 01b6 114A ldr r2, .L126+24
|
||
1777 01b8 1360 str r3, [r2]
|
||
1778 .loc 1 331 17 is_stmt 0
|
||
1779 01ba 0DE0 b .L124
|
||
1780 .L122:
|
||
332:Core/Src/state_machine.c **** } else if (state.current_state == STATE_ERROR && error_timer < HAL_GetTick()){
|
||
1781 .loc 1 332 19 is_stmt 1
|
||
ARM GAS /tmp/cctkPVvk.s page 38
|
||
|
||
|
||
1782 01bc 0C4B ldr r3, .L126+12
|
||
1783 01be 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
1784 .loc 1 332 13
|
||
1785 01c0 072B cmp r3, #7
|
||
1786 01c2 09D1 bne .L124
|
||
1787 .loc 1 332 66 discriminator 1
|
||
1788 01c4 FFF7FEFF bl HAL_GetTick
|
||
1789 01c8 0246 mov r2, r0
|
||
1790 .loc 1 332 64 discriminator 1
|
||
1791 01ca 0C4B ldr r3, .L126+24
|
||
1792 01cc 1B68 ldr r3, [r3]
|
||
1793 .loc 1 332 49 discriminator 1
|
||
1794 01ce 9A42 cmp r2, r3
|
||
1795 01d0 02D9 bls .L124
|
||
333:Core/Src/state_machine.c **** state.target_state = STATE_INACTIVE;
|
||
1796 .loc 1 333 24
|
||
1797 01d2 074B ldr r3, .L126+12
|
||
1798 01d4 0022 movs r2, #0
|
||
1799 01d6 5A70 strb r2, [r3, #1]
|
||
1800 .L124:
|
||
334:Core/Src/state_machine.c **** }
|
||
335:Core/Src/state_machine.c **** sm_set_error_source();
|
||
1801 .loc 1 335 3
|
||
1802 01d8 FFF7FEFF bl sm_set_error_source
|
||
1803 01dc 00E0 b .L108
|
||
1804 .L125:
|
||
312:Core/Src/state_machine.c **** state.error_type.temperature_error = (error_data.error_sources & (1 << 0) || error_data.error_sou
|
||
1805 .loc 1 312 54
|
||
1806 01de 00BF nop
|
||
1807 .L108:
|
||
336:Core/Src/state_machine.c **** }
|
||
1808 .loc 1 336 1
|
||
1809 01e0 80BD pop {r7, pc}
|
||
1810 .L127:
|
||
1811 01e2 00BF .align 2
|
||
1812 .L126:
|
||
1813 01e4 00000000 .word programming_mode
|
||
1814 01e8 00000000 .word debugging_mode
|
||
1815 01ec 00000000 .word error_data
|
||
1816 01f0 00000000 .word state
|
||
1817 01f4 00000000 .word RELAY_BAT_SIDE_VOLTAGE
|
||
1818 01f8 00000000 .word CURRENT_MEASUREMENT_ON
|
||
1819 01fc 00000000 .word error_timer
|
||
1820 .cfi_endproc
|
||
1821 .LFE139:
|
||
1823 .section .text.sm_set_error_source,"ax",%progbits
|
||
1824 .align 1
|
||
1825 .global sm_set_error_source
|
||
1826 .syntax unified
|
||
1827 .thumb
|
||
1828 .thumb_func
|
||
1830 sm_set_error_source:
|
||
1831 .LFB140:
|
||
337:Core/Src/state_machine.c ****
|
||
338:Core/Src/state_machine.c **** void sm_set_error_source(){
|
||
1832 .loc 1 338 27
|
||
1833 .cfi_startproc
|
||
ARM GAS /tmp/cctkPVvk.s page 39
|
||
|
||
|
||
1834 @ args = 0, pretend = 0, frame = 0
|
||
1835 @ frame_needed = 1, uses_anonymous_args = 0
|
||
1836 @ link register save eliminated.
|
||
1837 0000 80B4 push {r7}
|
||
1838 .cfi_def_cfa_offset 4
|
||
1839 .cfi_offset 7, -4
|
||
1840 0002 00AF add r7, sp, #0
|
||
1841 .cfi_def_cfa_register 7
|
||
339:Core/Src/state_machine.c **** state.error_source = 0;
|
||
1842 .loc 1 339 22
|
||
1843 0004 414B ldr r3, .L129
|
||
1844 0006 0022 movs r2, #0
|
||
1845 0008 5A80 strh r2, [r3, #2] @ movhi
|
||
340:Core/Src/state_machine.c **** state.error_source |= (state.error_type.bms_timeout << 0);
|
||
1846 .loc 1 340 8
|
||
1847 000a 404B ldr r3, .L129
|
||
1848 000c 5B88 ldrh r3, [r3, #2]
|
||
1849 .loc 1 340 42
|
||
1850 000e 3F4A ldr r2, .L129
|
||
1851 0010 1279 ldrb r2, [r2, #4]
|
||
1852 0012 C2F30002 ubfx r2, r2, #0, #1
|
||
1853 0016 D2B2 uxtb r2, r2
|
||
1854 .loc 1 340 22
|
||
1855 0018 1343 orrs r3, r3, r2
|
||
1856 001a 9AB2 uxth r2, r3
|
||
1857 001c 3B4B ldr r3, .L129
|
||
1858 001e 5A80 strh r2, [r3, #2] @ movhi
|
||
341:Core/Src/state_machine.c **** state.error_source |= (state.error_type.bms_fault << 1);
|
||
1859 .loc 1 341 8
|
||
1860 0020 3A4B ldr r3, .L129
|
||
1861 0022 5B88 ldrh r3, [r3, #2]
|
||
1862 0024 1AB2 sxth r2, r3
|
||
1863 .loc 1 341 42
|
||
1864 0026 394B ldr r3, .L129
|
||
1865 0028 1B79 ldrb r3, [r3, #4]
|
||
1866 002a C3F34003 ubfx r3, r3, #1, #1
|
||
1867 002e DBB2 uxtb r3, r3
|
||
1868 .loc 1 341 22
|
||
1869 0030 1BB2 sxth r3, r3
|
||
1870 0032 5B00 lsls r3, r3, #1
|
||
1871 0034 1BB2 sxth r3, r3
|
||
1872 0036 1343 orrs r3, r3, r2
|
||
1873 0038 1BB2 sxth r3, r3
|
||
1874 003a 9AB2 uxth r2, r3
|
||
1875 003c 334B ldr r3, .L129
|
||
1876 003e 5A80 strh r2, [r3, #2] @ movhi
|
||
342:Core/Src/state_machine.c **** state.error_source |= (state.error_type.temperature_error << 2);
|
||
1877 .loc 1 342 8
|
||
1878 0040 324B ldr r3, .L129
|
||
1879 0042 5B88 ldrh r3, [r3, #2]
|
||
1880 0044 1AB2 sxth r2, r3
|
||
1881 .loc 1 342 42
|
||
1882 0046 314B ldr r3, .L129
|
||
1883 0048 1B79 ldrb r3, [r3, #4]
|
||
1884 004a C3F38003 ubfx r3, r3, #2, #1
|
||
1885 004e DBB2 uxtb r3, r3
|
||
1886 .loc 1 342 22
|
||
ARM GAS /tmp/cctkPVvk.s page 40
|
||
|
||
|
||
1887 0050 1BB2 sxth r3, r3
|
||
1888 0052 9B00 lsls r3, r3, #2
|
||
1889 0054 1BB2 sxth r3, r3
|
||
1890 0056 1343 orrs r3, r3, r2
|
||
1891 0058 1BB2 sxth r3, r3
|
||
1892 005a 9AB2 uxth r2, r3
|
||
1893 005c 2B4B ldr r3, .L129
|
||
1894 005e 5A80 strh r2, [r3, #2] @ movhi
|
||
343:Core/Src/state_machine.c **** state.error_source |= (state.error_type.current_error << 3);
|
||
1895 .loc 1 343 8
|
||
1896 0060 2A4B ldr r3, .L129
|
||
1897 0062 5B88 ldrh r3, [r3, #2]
|
||
1898 0064 1AB2 sxth r2, r3
|
||
1899 .loc 1 343 42
|
||
1900 0066 294B ldr r3, .L129
|
||
1901 0068 1B79 ldrb r3, [r3, #4]
|
||
1902 006a C3F3C003 ubfx r3, r3, #3, #1
|
||
1903 006e DBB2 uxtb r3, r3
|
||
1904 .loc 1 343 22
|
||
1905 0070 1BB2 sxth r3, r3
|
||
1906 0072 DB00 lsls r3, r3, #3
|
||
1907 0074 1BB2 sxth r3, r3
|
||
1908 0076 1343 orrs r3, r3, r2
|
||
1909 0078 1BB2 sxth r3, r3
|
||
1910 007a 9AB2 uxth r2, r3
|
||
1911 007c 234B ldr r3, .L129
|
||
1912 007e 5A80 strh r2, [r3, #2] @ movhi
|
||
344:Core/Src/state_machine.c ****
|
||
345:Core/Src/state_machine.c **** state.error_source |= (state.error_type.current_sensor_missing << 4);
|
||
1913 .loc 1 345 8
|
||
1914 0080 224B ldr r3, .L129
|
||
1915 0082 5B88 ldrh r3, [r3, #2]
|
||
1916 0084 1AB2 sxth r2, r3
|
||
1917 .loc 1 345 42
|
||
1918 0086 214B ldr r3, .L129
|
||
1919 0088 1B79 ldrb r3, [r3, #4]
|
||
1920 008a C3F30013 ubfx r3, r3, #4, #1
|
||
1921 008e DBB2 uxtb r3, r3
|
||
1922 .loc 1 345 22
|
||
1923 0090 1BB2 sxth r3, r3
|
||
1924 0092 1B01 lsls r3, r3, #4
|
||
1925 0094 1BB2 sxth r3, r3
|
||
1926 0096 1343 orrs r3, r3, r2
|
||
1927 0098 1BB2 sxth r3, r3
|
||
1928 009a 9AB2 uxth r2, r3
|
||
1929 009c 1B4B ldr r3, .L129
|
||
1930 009e 5A80 strh r2, [r3, #2] @ movhi
|
||
346:Core/Src/state_machine.c **** state.error_source |= (state.error_type.voltage_error << 5);
|
||
1931 .loc 1 346 8
|
||
1932 00a0 1A4B ldr r3, .L129
|
||
1933 00a2 5B88 ldrh r3, [r3, #2]
|
||
1934 00a4 1AB2 sxth r2, r3
|
||
1935 .loc 1 346 42
|
||
1936 00a6 194B ldr r3, .L129
|
||
1937 00a8 1B79 ldrb r3, [r3, #4]
|
||
1938 00aa C3F34013 ubfx r3, r3, #5, #1
|
||
1939 00ae DBB2 uxtb r3, r3
|
||
ARM GAS /tmp/cctkPVvk.s page 41
|
||
|
||
|
||
1940 .loc 1 346 22
|
||
1941 00b0 1BB2 sxth r3, r3
|
||
1942 00b2 5B01 lsls r3, r3, #5
|
||
1943 00b4 1BB2 sxth r3, r3
|
||
1944 00b6 1343 orrs r3, r3, r2
|
||
1945 00b8 1BB2 sxth r3, r3
|
||
1946 00ba 9AB2 uxth r2, r3
|
||
1947 00bc 134B ldr r3, .L129
|
||
1948 00be 5A80 strh r2, [r3, #2] @ movhi
|
||
347:Core/Src/state_machine.c **** state.error_source |= (state.error_type.voltage_missing << 6);
|
||
1949 .loc 1 347 8
|
||
1950 00c0 124B ldr r3, .L129
|
||
1951 00c2 5B88 ldrh r3, [r3, #2]
|
||
1952 00c4 1AB2 sxth r2, r3
|
||
1953 .loc 1 347 42
|
||
1954 00c6 114B ldr r3, .L129
|
||
1955 00c8 1B79 ldrb r3, [r3, #4]
|
||
1956 00ca C3F38013 ubfx r3, r3, #6, #1
|
||
1957 00ce DBB2 uxtb r3, r3
|
||
1958 .loc 1 347 22
|
||
1959 00d0 1BB2 sxth r3, r3
|
||
1960 00d2 9B01 lsls r3, r3, #6
|
||
1961 00d4 1BB2 sxth r3, r3
|
||
1962 00d6 1343 orrs r3, r3, r2
|
||
1963 00d8 1BB2 sxth r3, r3
|
||
1964 00da 9AB2 uxth r2, r3
|
||
1965 00dc 0B4B ldr r3, .L129
|
||
1966 00de 5A80 strh r2, [r3, #2] @ movhi
|
||
348:Core/Src/state_machine.c **** state.error_source |= (state.error_type.state_transition_fail << 7);
|
||
1967 .loc 1 348 8
|
||
1968 00e0 0A4B ldr r3, .L129
|
||
1969 00e2 5B88 ldrh r3, [r3, #2]
|
||
1970 00e4 1AB2 sxth r2, r3
|
||
1971 .loc 1 348 42
|
||
1972 00e6 094B ldr r3, .L129
|
||
1973 00e8 1B79 ldrb r3, [r3, #4]
|
||
1974 00ea C3F3C013 ubfx r3, r3, #7, #1
|
||
1975 00ee DBB2 uxtb r3, r3
|
||
1976 .loc 1 348 22
|
||
1977 00f0 1BB2 sxth r3, r3
|
||
1978 00f2 DB01 lsls r3, r3, #7
|
||
1979 00f4 1BB2 sxth r3, r3
|
||
1980 00f6 1343 orrs r3, r3, r2
|
||
1981 00f8 1BB2 sxth r3, r3
|
||
1982 00fa 9AB2 uxth r2, r3
|
||
1983 00fc 034B ldr r3, .L129
|
||
1984 00fe 5A80 strh r2, [r3, #2] @ movhi
|
||
349:Core/Src/state_machine.c **** }
|
||
1985 .loc 1 349 1
|
||
1986 0100 00BF nop
|
||
1987 0102 BD46 mov sp, r7
|
||
1988 .cfi_def_cfa_register 13
|
||
1989 @ sp needed
|
||
1990 0104 5DF8047B ldr r7, [sp], #4
|
||
1991 .cfi_restore 7
|
||
1992 .cfi_def_cfa_offset 0
|
||
1993 0108 7047 bx lr
|
||
ARM GAS /tmp/cctkPVvk.s page 42
|
||
|
||
|
||
1994 .L130:
|
||
1995 010a 00BF .align 2
|
||
1996 .L129:
|
||
1997 010c 00000000 .word state
|
||
1998 .cfi_endproc
|
||
1999 .LFE140:
|
||
2001 .section .text.sm_update_inactive,"ax",%progbits
|
||
2002 .align 1
|
||
2003 .global sm_update_inactive
|
||
2004 .syntax unified
|
||
2005 .thumb
|
||
2006 .thumb_func
|
||
2008 sm_update_inactive:
|
||
2009 .LFB141:
|
||
350:Core/Src/state_machine.c ****
|
||
351:Core/Src/state_machine.c **** State sm_update_inactive(){
|
||
2010 .loc 1 351 27
|
||
2011 .cfi_startproc
|
||
2012 @ args = 0, pretend = 0, frame = 0
|
||
2013 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2014 @ link register save eliminated.
|
||
2015 0000 80B4 push {r7}
|
||
2016 .cfi_def_cfa_offset 4
|
||
2017 .cfi_offset 7, -4
|
||
2018 0002 00AF add r7, sp, #0
|
||
2019 .cfi_def_cfa_register 7
|
||
352:Core/Src/state_machine.c **** switch (state.target_state) {
|
||
2020 .loc 1 352 16
|
||
2021 0004 0B4B ldr r3, .L137
|
||
2022 0006 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
2023 .loc 1 352 3
|
||
2024 0008 072B cmp r3, #7
|
||
2025 000a 0AD0 beq .L132
|
||
2026 000c 072B cmp r3, #7
|
||
2027 000e 0ADC bgt .L133
|
||
2028 0010 012B cmp r3, #1
|
||
2029 0012 02D0 beq .L134
|
||
2030 0014 052B cmp r3, #5
|
||
2031 0016 02D0 beq .L135
|
||
2032 0018 05E0 b .L133
|
||
2033 .L134:
|
||
353:Core/Src/state_machine.c **** case STATE_PRECHARGE:
|
||
354:Core/Src/state_machine.c **** return STATE_PRECHARGE;
|
||
2034 .loc 1 354 14
|
||
2035 001a 0123 movs r3, #1
|
||
2036 001c 04E0 b .L136
|
||
2037 .L135:
|
||
355:Core/Src/state_machine.c **** case STATE_CHARGING_PRECHARGE:
|
||
356:Core/Src/state_machine.c **** return STATE_CHARGING_PRECHARGE;
|
||
2038 .loc 1 356 14
|
||
2039 001e 0523 movs r3, #5
|
||
2040 0020 02E0 b .L136
|
||
2041 .L132:
|
||
357:Core/Src/state_machine.c **** case STATE_ERROR:
|
||
358:Core/Src/state_machine.c **** return STATE_ERROR;
|
||
2042 .loc 1 358 14
|
||
2043 0022 0723 movs r3, #7
|
||
ARM GAS /tmp/cctkPVvk.s page 43
|
||
|
||
|
||
2044 0024 00E0 b .L136
|
||
2045 .L133:
|
||
359:Core/Src/state_machine.c **** default:
|
||
360:Core/Src/state_machine.c **** return STATE_INACTIVE;
|
||
2046 .loc 1 360 14
|
||
2047 0026 0023 movs r3, #0
|
||
2048 .L136:
|
||
361:Core/Src/state_machine.c **** }
|
||
362:Core/Src/state_machine.c **** }
|
||
2049 .loc 1 362 1
|
||
2050 0028 1846 mov r0, r3
|
||
2051 002a BD46 mov sp, r7
|
||
2052 .cfi_def_cfa_register 13
|
||
2053 @ sp needed
|
||
2054 002c 5DF8047B ldr r7, [sp], #4
|
||
2055 .cfi_restore 7
|
||
2056 .cfi_def_cfa_offset 0
|
||
2057 0030 7047 bx lr
|
||
2058 .L138:
|
||
2059 0032 00BF .align 2
|
||
2060 .L137:
|
||
2061 0034 00000000 .word state
|
||
2062 .cfi_endproc
|
||
2063 .LFE141:
|
||
2065 .section .text.sm_update_precharge,"ax",%progbits
|
||
2066 .align 1
|
||
2067 .global sm_update_precharge
|
||
2068 .syntax unified
|
||
2069 .thumb
|
||
2070 .thumb_func
|
||
2072 sm_update_precharge:
|
||
2073 .LFB142:
|
||
363:Core/Src/state_machine.c ****
|
||
364:Core/Src/state_machine.c **** State sm_update_precharge(){
|
||
2074 .loc 1 364 28
|
||
2075 .cfi_startproc
|
||
2076 @ args = 0, pretend = 0, frame = 0
|
||
2077 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2078 @ link register save eliminated.
|
||
2079 0000 80B4 push {r7}
|
||
2080 .cfi_def_cfa_offset 4
|
||
2081 .cfi_offset 7, -4
|
||
2082 0002 00AF add r7, sp, #0
|
||
2083 .cfi_def_cfa_register 7
|
||
365:Core/Src/state_machine.c **** switch (state.target_state) {
|
||
2084 .loc 1 365 16
|
||
2085 0004 084B ldr r3, .L145
|
||
2086 0006 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
2087 .loc 1 365 3
|
||
2088 0008 002B cmp r3, #0
|
||
2089 000a 02D0 beq .L140
|
||
2090 000c 022B cmp r3, #2
|
||
2091 000e 02D0 beq .L141
|
||
2092 0010 03E0 b .L144
|
||
2093 .L140:
|
||
366:Core/Src/state_machine.c **** case STATE_INACTIVE: // if CAN Signal 0000 0000 then immidiete shutdown
|
||
367:Core/Src/state_machine.c **** return STATE_DISCHARGE;
|
||
ARM GAS /tmp/cctkPVvk.s page 44
|
||
|
||
|
||
2094 .loc 1 367 14
|
||
2095 0012 0423 movs r3, #4
|
||
2096 0014 02E0 b .L143
|
||
2097 .L141:
|
||
368:Core/Src/state_machine.c **** case STATE_READY:
|
||
369:Core/Src/state_machine.c **** return STATE_READY;
|
||
2098 .loc 1 369 14
|
||
2099 0016 0223 movs r3, #2
|
||
2100 0018 00E0 b .L143
|
||
2101 .L144:
|
||
370:Core/Src/state_machine.c **** default:
|
||
371:Core/Src/state_machine.c **** return STATE_PRECHARGE;
|
||
2102 .loc 1 371 14
|
||
2103 001a 0123 movs r3, #1
|
||
2104 .L143:
|
||
372:Core/Src/state_machine.c **** }
|
||
373:Core/Src/state_machine.c **** }
|
||
2105 .loc 1 373 1
|
||
2106 001c 1846 mov r0, r3
|
||
2107 001e BD46 mov sp, r7
|
||
2108 .cfi_def_cfa_register 13
|
||
2109 @ sp needed
|
||
2110 0020 5DF8047B ldr r7, [sp], #4
|
||
2111 .cfi_restore 7
|
||
2112 .cfi_def_cfa_offset 0
|
||
2113 0024 7047 bx lr
|
||
2114 .L146:
|
||
2115 0026 00BF .align 2
|
||
2116 .L145:
|
||
2117 0028 00000000 .word state
|
||
2118 .cfi_endproc
|
||
2119 .LFE142:
|
||
2121 .section .text.sm_update_ready,"ax",%progbits
|
||
2122 .align 1
|
||
2123 .global sm_update_ready
|
||
2124 .syntax unified
|
||
2125 .thumb
|
||
2126 .thumb_func
|
||
2128 sm_update_ready:
|
||
2129 .LFB143:
|
||
374:Core/Src/state_machine.c ****
|
||
375:Core/Src/state_machine.c **** State sm_update_ready(){
|
||
2130 .loc 1 375 24
|
||
2131 .cfi_startproc
|
||
2132 @ args = 0, pretend = 0, frame = 0
|
||
2133 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2134 @ link register save eliminated.
|
||
2135 0000 80B4 push {r7}
|
||
2136 .cfi_def_cfa_offset 4
|
||
2137 .cfi_offset 7, -4
|
||
2138 0002 00AF add r7, sp, #0
|
||
2139 .cfi_def_cfa_register 7
|
||
376:Core/Src/state_machine.c **** switch (state.target_state) {
|
||
2140 .loc 1 376 16
|
||
2141 0004 084B ldr r3, .L153
|
||
2142 0006 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
2143 .loc 1 376 3
|
||
ARM GAS /tmp/cctkPVvk.s page 45
|
||
|
||
|
||
2144 0008 032B cmp r3, #3
|
||
2145 000a 02D0 beq .L148
|
||
2146 000c 042B cmp r3, #4
|
||
2147 000e 02D0 beq .L149
|
||
2148 0010 03E0 b .L152
|
||
2149 .L148:
|
||
377:Core/Src/state_machine.c **** case STATE_ACTIVE: // if CAN Signal 1100 0000 then turn on powerground
|
||
378:Core/Src/state_machine.c **** return STATE_ACTIVE;
|
||
2150 .loc 1 378 14
|
||
2151 0012 0323 movs r3, #3
|
||
2152 0014 02E0 b .L151
|
||
2153 .L149:
|
||
379:Core/Src/state_machine.c **** case STATE_DISCHARGE: // if CAN Signal 0000 0000 then shutdown
|
||
380:Core/Src/state_machine.c **** return STATE_DISCHARGE;
|
||
2154 .loc 1 380 14
|
||
2155 0016 0423 movs r3, #4
|
||
2156 0018 00E0 b .L151
|
||
2157 .L152:
|
||
381:Core/Src/state_machine.c **** default:
|
||
382:Core/Src/state_machine.c **** return STATE_READY;
|
||
2158 .loc 1 382 14
|
||
2159 001a 0223 movs r3, #2
|
||
2160 .L151:
|
||
383:Core/Src/state_machine.c **** }
|
||
384:Core/Src/state_machine.c **** }
|
||
2161 .loc 1 384 1
|
||
2162 001c 1846 mov r0, r3
|
||
2163 001e BD46 mov sp, r7
|
||
2164 .cfi_def_cfa_register 13
|
||
2165 @ sp needed
|
||
2166 0020 5DF8047B ldr r7, [sp], #4
|
||
2167 .cfi_restore 7
|
||
2168 .cfi_def_cfa_offset 0
|
||
2169 0024 7047 bx lr
|
||
2170 .L154:
|
||
2171 0026 00BF .align 2
|
||
2172 .L153:
|
||
2173 0028 00000000 .word state
|
||
2174 .cfi_endproc
|
||
2175 .LFE143:
|
||
2177 .section .text.sm_update_active,"ax",%progbits
|
||
2178 .align 1
|
||
2179 .global sm_update_active
|
||
2180 .syntax unified
|
||
2181 .thumb
|
||
2182 .thumb_func
|
||
2184 sm_update_active:
|
||
2185 .LFB144:
|
||
385:Core/Src/state_machine.c ****
|
||
386:Core/Src/state_machine.c **** State sm_update_active(){
|
||
2186 .loc 1 386 25
|
||
2187 .cfi_startproc
|
||
2188 @ args = 0, pretend = 0, frame = 0
|
||
2189 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2190 @ link register save eliminated.
|
||
2191 0000 80B4 push {r7}
|
||
2192 .cfi_def_cfa_offset 4
|
||
ARM GAS /tmp/cctkPVvk.s page 46
|
||
|
||
|
||
2193 .cfi_offset 7, -4
|
||
2194 0002 00AF add r7, sp, #0
|
||
2195 .cfi_def_cfa_register 7
|
||
387:Core/Src/state_machine.c **** switch (state.target_state) {
|
||
2196 .loc 1 387 16
|
||
2197 0004 084B ldr r3, .L161
|
||
2198 0006 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
2199 .loc 1 387 3
|
||
2200 0008 022B cmp r3, #2
|
||
2201 000a 02D0 beq .L156
|
||
2202 000c 042B cmp r3, #4
|
||
2203 000e 02D0 beq .L157
|
||
2204 0010 03E0 b .L160
|
||
2205 .L156:
|
||
388:Core/Src/state_machine.c **** case STATE_READY: // if CAN Signal 1000 0000 then turn oof powerground but stay read
|
||
389:Core/Src/state_machine.c **** return STATE_READY;
|
||
2206 .loc 1 389 14
|
||
2207 0012 0223 movs r3, #2
|
||
2208 0014 02E0 b .L159
|
||
2209 .L157:
|
||
390:Core/Src/state_machine.c **** case STATE_DISCHARGE: // if CAN Signal 0000 0000 then shutdown
|
||
391:Core/Src/state_machine.c **** return STATE_DISCHARGE;
|
||
2210 .loc 1 391 14
|
||
2211 0016 0423 movs r3, #4
|
||
2212 0018 00E0 b .L159
|
||
2213 .L160:
|
||
392:Core/Src/state_machine.c **** default:
|
||
393:Core/Src/state_machine.c **** return STATE_ACTIVE;
|
||
2214 .loc 1 393 14
|
||
2215 001a 0323 movs r3, #3
|
||
2216 .L159:
|
||
394:Core/Src/state_machine.c **** }
|
||
395:Core/Src/state_machine.c **** }
|
||
2217 .loc 1 395 1
|
||
2218 001c 1846 mov r0, r3
|
||
2219 001e BD46 mov sp, r7
|
||
2220 .cfi_def_cfa_register 13
|
||
2221 @ sp needed
|
||
2222 0020 5DF8047B ldr r7, [sp], #4
|
||
2223 .cfi_restore 7
|
||
2224 .cfi_def_cfa_offset 0
|
||
2225 0024 7047 bx lr
|
||
2226 .L162:
|
||
2227 0026 00BF .align 2
|
||
2228 .L161:
|
||
2229 0028 00000000 .word state
|
||
2230 .cfi_endproc
|
||
2231 .LFE144:
|
||
2233 .section .text.sm_update_discharge,"ax",%progbits
|
||
2234 .align 1
|
||
2235 .global sm_update_discharge
|
||
2236 .syntax unified
|
||
2237 .thumb
|
||
2238 .thumb_func
|
||
2240 sm_update_discharge:
|
||
2241 .LFB145:
|
||
396:Core/Src/state_machine.c ****
|
||
ARM GAS /tmp/cctkPVvk.s page 47
|
||
|
||
|
||
397:Core/Src/state_machine.c **** State sm_update_discharge(){
|
||
2242 .loc 1 397 28
|
||
2243 .cfi_startproc
|
||
2244 @ args = 0, pretend = 0, frame = 0
|
||
2245 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2246 @ link register save eliminated.
|
||
2247 0000 80B4 push {r7}
|
||
2248 .cfi_def_cfa_offset 4
|
||
2249 .cfi_offset 7, -4
|
||
2250 0002 00AF add r7, sp, #0
|
||
2251 .cfi_def_cfa_register 7
|
||
398:Core/Src/state_machine.c **** switch (state.target_state) {
|
||
2252 .loc 1 398 16
|
||
2253 0004 084B ldr r3, .L169
|
||
2254 0006 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
2255 .loc 1 398 3
|
||
2256 0008 002B cmp r3, #0
|
||
2257 000a 02D0 beq .L164
|
||
2258 000c 072B cmp r3, #7
|
||
2259 000e 02D0 beq .L165
|
||
2260 0010 03E0 b .L168
|
||
2261 .L164:
|
||
399:Core/Src/state_machine.c **** case STATE_INACTIVE:
|
||
400:Core/Src/state_machine.c **** return STATE_INACTIVE;
|
||
2262 .loc 1 400 14
|
||
2263 0012 0023 movs r3, #0
|
||
2264 0014 02E0 b .L167
|
||
2265 .L165:
|
||
401:Core/Src/state_machine.c **** case STATE_ERROR:
|
||
402:Core/Src/state_machine.c **** return STATE_ERROR;
|
||
2266 .loc 1 402 14
|
||
2267 0016 0723 movs r3, #7
|
||
2268 0018 00E0 b .L167
|
||
2269 .L168:
|
||
403:Core/Src/state_machine.c **** default:
|
||
404:Core/Src/state_machine.c **** return STATE_DISCHARGE;
|
||
2270 .loc 1 404 14
|
||
2271 001a 0423 movs r3, #4
|
||
2272 .L167:
|
||
405:Core/Src/state_machine.c **** }
|
||
406:Core/Src/state_machine.c **** }
|
||
2273 .loc 1 406 1
|
||
2274 001c 1846 mov r0, r3
|
||
2275 001e BD46 mov sp, r7
|
||
2276 .cfi_def_cfa_register 13
|
||
2277 @ sp needed
|
||
2278 0020 5DF8047B ldr r7, [sp], #4
|
||
2279 .cfi_restore 7
|
||
2280 .cfi_def_cfa_offset 0
|
||
2281 0024 7047 bx lr
|
||
2282 .L170:
|
||
2283 0026 00BF .align 2
|
||
2284 .L169:
|
||
2285 0028 00000000 .word state
|
||
2286 .cfi_endproc
|
||
2287 .LFE145:
|
||
2289 .section .text.sm_update_charging_precharge,"ax",%progbits
|
||
ARM GAS /tmp/cctkPVvk.s page 48
|
||
|
||
|
||
2290 .align 1
|
||
2291 .global sm_update_charging_precharge
|
||
2292 .syntax unified
|
||
2293 .thumb
|
||
2294 .thumb_func
|
||
2296 sm_update_charging_precharge:
|
||
2297 .LFB146:
|
||
407:Core/Src/state_machine.c ****
|
||
408:Core/Src/state_machine.c **** State sm_update_charging_precharge(){
|
||
2298 .loc 1 408 37
|
||
2299 .cfi_startproc
|
||
2300 @ args = 0, pretend = 0, frame = 0
|
||
2301 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2302 @ link register save eliminated.
|
||
2303 0000 80B4 push {r7}
|
||
2304 .cfi_def_cfa_offset 4
|
||
2305 .cfi_offset 7, -4
|
||
2306 0002 00AF add r7, sp, #0
|
||
2307 .cfi_def_cfa_register 7
|
||
409:Core/Src/state_machine.c **** switch (state.target_state) {
|
||
2308 .loc 1 409 16
|
||
2309 0004 074B ldr r3, .L175
|
||
2310 0006 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
2311 .loc 1 409 3
|
||
2312 0008 042B cmp r3, #4
|
||
2313 000a 03D0 beq .L172
|
||
2314 000c 062B cmp r3, #6
|
||
2315 000e 03D1 bne .L173
|
||
410:Core/Src/state_machine.c **** case STATE_CHARGING:
|
||
411:Core/Src/state_machine.c **** return STATE_CHARGING;
|
||
2316 .loc 1 411 14
|
||
2317 0010 0623 movs r3, #6
|
||
2318 0012 02E0 b .L174
|
||
2319 .L172:
|
||
412:Core/Src/state_machine.c **** case STATE_DISCHARGE:
|
||
413:Core/Src/state_machine.c **** return STATE_DISCHARGE;
|
||
2320 .loc 1 413 14
|
||
2321 0014 0423 movs r3, #4
|
||
2322 0016 00E0 b .L174
|
||
2323 .L173:
|
||
414:Core/Src/state_machine.c **** default:
|
||
415:Core/Src/state_machine.c **** return STATE_CHARGING_PRECHARGE;
|
||
2324 .loc 1 415 14
|
||
2325 0018 0523 movs r3, #5
|
||
2326 .L174:
|
||
416:Core/Src/state_machine.c **** }
|
||
417:Core/Src/state_machine.c **** }
|
||
2327 .loc 1 417 1
|
||
2328 001a 1846 mov r0, r3
|
||
2329 001c BD46 mov sp, r7
|
||
2330 .cfi_def_cfa_register 13
|
||
2331 @ sp needed
|
||
2332 001e 5DF8047B ldr r7, [sp], #4
|
||
2333 .cfi_restore 7
|
||
2334 .cfi_def_cfa_offset 0
|
||
2335 0022 7047 bx lr
|
||
2336 .L176:
|
||
ARM GAS /tmp/cctkPVvk.s page 49
|
||
|
||
|
||
2337 .align 2
|
||
2338 .L175:
|
||
2339 0024 00000000 .word state
|
||
2340 .cfi_endproc
|
||
2341 .LFE146:
|
||
2343 .section .text.sm_update_charging,"ax",%progbits
|
||
2344 .align 1
|
||
2345 .global sm_update_charging
|
||
2346 .syntax unified
|
||
2347 .thumb
|
||
2348 .thumb_func
|
||
2350 sm_update_charging:
|
||
2351 .LFB147:
|
||
418:Core/Src/state_machine.c ****
|
||
419:Core/Src/state_machine.c **** State sm_update_charging(){
|
||
2352 .loc 1 419 27
|
||
2353 .cfi_startproc
|
||
2354 @ args = 0, pretend = 0, frame = 0
|
||
2355 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2356 @ link register save eliminated.
|
||
2357 0000 80B4 push {r7}
|
||
2358 .cfi_def_cfa_offset 4
|
||
2359 .cfi_offset 7, -4
|
||
2360 0002 00AF add r7, sp, #0
|
||
2361 .cfi_def_cfa_register 7
|
||
420:Core/Src/state_machine.c **** switch (state.target_state) {
|
||
2362 .loc 1 420 16
|
||
2363 0004 084B ldr r3, .L180
|
||
2364 0006 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
2365 .loc 1 420 3
|
||
2366 0008 042B cmp r3, #4
|
||
2367 000a 04D1 bne .L178
|
||
421:Core/Src/state_machine.c **** case STATE_DISCHARGE:
|
||
422:Core/Src/state_machine.c **** currentAMSState = AMSIDLE;
|
||
2368 .loc 1 422 23
|
||
2369 000c 074B ldr r3, .L180+4
|
||
2370 000e 0122 movs r2, #1
|
||
2371 0010 1A70 strb r2, [r3]
|
||
423:Core/Src/state_machine.c **** return STATE_DISCHARGE;
|
||
2372 .loc 1 423 14
|
||
2373 0012 0423 movs r3, #4
|
||
2374 0014 03E0 b .L179
|
||
2375 .L178:
|
||
424:Core/Src/state_machine.c **** default:
|
||
425:Core/Src/state_machine.c **** currentAMSState = AMSCHARGING;
|
||
2376 .loc 1 425 23
|
||
2377 0016 054B ldr r3, .L180+4
|
||
2378 0018 0222 movs r2, #2
|
||
2379 001a 1A70 strb r2, [r3]
|
||
426:Core/Src/state_machine.c **** return STATE_CHARGING;
|
||
2380 .loc 1 426 14
|
||
2381 001c 0623 movs r3, #6
|
||
2382 .L179:
|
||
427:Core/Src/state_machine.c **** }
|
||
428:Core/Src/state_machine.c **** }
|
||
2383 .loc 1 428 1
|
||
2384 001e 1846 mov r0, r3
|
||
ARM GAS /tmp/cctkPVvk.s page 50
|
||
|
||
|
||
2385 0020 BD46 mov sp, r7
|
||
2386 .cfi_def_cfa_register 13
|
||
2387 @ sp needed
|
||
2388 0022 5DF8047B ldr r7, [sp], #4
|
||
2389 .cfi_restore 7
|
||
2390 .cfi_def_cfa_offset 0
|
||
2391 0026 7047 bx lr
|
||
2392 .L181:
|
||
2393 .align 2
|
||
2394 .L180:
|
||
2395 0028 00000000 .word state
|
||
2396 002c 00000000 .word currentAMSState
|
||
2397 .cfi_endproc
|
||
2398 .LFE147:
|
||
2400 .section .text.sm_update_error,"ax",%progbits
|
||
2401 .align 1
|
||
2402 .global sm_update_error
|
||
2403 .syntax unified
|
||
2404 .thumb
|
||
2405 .thumb_func
|
||
2407 sm_update_error:
|
||
2408 .LFB148:
|
||
429:Core/Src/state_machine.c ****
|
||
430:Core/Src/state_machine.c **** State sm_update_error(){
|
||
2409 .loc 1 430 24
|
||
2410 .cfi_startproc
|
||
2411 @ args = 0, pretend = 0, frame = 0
|
||
2412 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2413 @ link register save eliminated.
|
||
2414 0000 80B4 push {r7}
|
||
2415 .cfi_def_cfa_offset 4
|
||
2416 .cfi_offset 7, -4
|
||
2417 0002 00AF add r7, sp, #0
|
||
2418 .cfi_def_cfa_register 7
|
||
431:Core/Src/state_machine.c **** switch (state.target_state) {
|
||
2419 .loc 1 431 16
|
||
2420 0004 074B ldr r3, .L186
|
||
2421 0006 5B78 ldrb r3, [r3, #1] @ zero_extendqisi2
|
||
2422 .loc 1 431 3
|
||
2423 0008 002B cmp r3, #0
|
||
2424 000a 03D0 beq .L183
|
||
2425 000c 042B cmp r3, #4
|
||
2426 000e 03D1 bne .L184
|
||
432:Core/Src/state_machine.c **** case STATE_DISCHARGE:
|
||
433:Core/Src/state_machine.c **** return STATE_DISCHARGE;
|
||
2427 .loc 1 433 14
|
||
2428 0010 0423 movs r3, #4
|
||
2429 0012 02E0 b .L185
|
||
2430 .L183:
|
||
434:Core/Src/state_machine.c **** case STATE_INACTIVE:
|
||
435:Core/Src/state_machine.c **** return STATE_INACTIVE;
|
||
2431 .loc 1 435 14
|
||
2432 0014 0023 movs r3, #0
|
||
2433 0016 00E0 b .L185
|
||
2434 .L184:
|
||
436:Core/Src/state_machine.c **** default:
|
||
437:Core/Src/state_machine.c **** return STATE_ERROR;
|
||
ARM GAS /tmp/cctkPVvk.s page 51
|
||
|
||
|
||
2435 .loc 1 437 14
|
||
2436 0018 0723 movs r3, #7
|
||
2437 .L185:
|
||
438:Core/Src/state_machine.c **** }
|
||
439:Core/Src/state_machine.c **** }
|
||
2438 .loc 1 439 1
|
||
2439 001a 1846 mov r0, r3
|
||
2440 001c BD46 mov sp, r7
|
||
2441 .cfi_def_cfa_register 13
|
||
2442 @ sp needed
|
||
2443 001e 5DF8047B ldr r7, [sp], #4
|
||
2444 .cfi_restore 7
|
||
2445 .cfi_def_cfa_offset 0
|
||
2446 0022 7047 bx lr
|
||
2447 .L187:
|
||
2448 .align 2
|
||
2449 .L186:
|
||
2450 0024 00000000 .word state
|
||
2451 .cfi_endproc
|
||
2452 .LFE148:
|
||
2454 .section .text.sm_set_relay_positions,"ax",%progbits
|
||
2455 .align 1
|
||
2456 .global sm_set_relay_positions
|
||
2457 .syntax unified
|
||
2458 .thumb
|
||
2459 .thumb_func
|
||
2461 sm_set_relay_positions:
|
||
2462 .LFB149:
|
||
440:Core/Src/state_machine.c ****
|
||
441:Core/Src/state_machine.c **** void sm_set_relay_positions(State current_state){
|
||
2463 .loc 1 441 49
|
||
2464 .cfi_startproc
|
||
2465 @ args = 0, pretend = 0, frame = 8
|
||
2466 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2467 0000 80B5 push {r7, lr}
|
||
2468 .cfi_def_cfa_offset 8
|
||
2469 .cfi_offset 7, -8
|
||
2470 .cfi_offset 14, -4
|
||
2471 0002 82B0 sub sp, sp, #8
|
||
2472 .cfi_def_cfa_offset 16
|
||
2473 0004 00AF add r7, sp, #0
|
||
2474 .cfi_def_cfa_register 7
|
||
2475 0006 0346 mov r3, r0
|
||
2476 0008 FB71 strb r3, [r7, #7]
|
||
442:Core/Src/state_machine.c **** switch (state.current_state) {
|
||
2477 .loc 1 442 16
|
||
2478 000a 314B ldr r3, .L201
|
||
2479 000c 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
2480 .loc 1 442 3
|
||
2481 000e 072B cmp r3, #7
|
||
2482 0010 5AD8 bhi .L199
|
||
2483 0012 01A2 adr r2, .L191
|
||
2484 0014 52F823F0 ldr pc, [r2, r3, lsl #2]
|
||
2485 .p2align 2
|
||
2486 .L191:
|
||
2487 0018 39000000 .word .L198+1
|
||
2488 001c 4B000000 .word .L197+1
|
||
ARM GAS /tmp/cctkPVvk.s page 52
|
||
|
||
|
||
2489 0020 5D000000 .word .L196+1
|
||
2490 0024 6F000000 .word .L195+1
|
||
2491 0028 81000000 .word .L194+1
|
||
2492 002c 93000000 .word .L193+1
|
||
2493 0030 A5000000 .word .L192+1
|
||
2494 0034 B7000000 .word .L190+1
|
||
2495 .p2align 1
|
||
2496 .L198:
|
||
443:Core/Src/state_machine.c **** case STATE_INACTIVE:
|
||
444:Core/Src/state_machine.c **** sm_set_relay(RELAY_MAIN, 0);
|
||
2497 .loc 1 444 7
|
||
2498 0038 0021 movs r1, #0
|
||
2499 003a 0020 movs r0, #0
|
||
2500 003c FFF7FEFF bl sm_set_relay
|
||
445:Core/Src/state_machine.c **** sm_set_relay(RELAY_PRECHARGE, 0);
|
||
2501 .loc 1 445 7
|
||
2502 0040 0021 movs r1, #0
|
||
2503 0042 0120 movs r0, #1
|
||
2504 0044 FFF7FEFF bl sm_set_relay
|
||
446:Core/Src/state_machine.c **** break;
|
||
2505 .loc 1 446 7
|
||
2506 0048 3EE0 b .L189
|
||
2507 .L197:
|
||
447:Core/Src/state_machine.c **** case STATE_PRECHARGE:
|
||
448:Core/Src/state_machine.c **** sm_set_relay(RELAY_MAIN, 0);
|
||
2508 .loc 1 448 7
|
||
2509 004a 0021 movs r1, #0
|
||
2510 004c 0020 movs r0, #0
|
||
2511 004e FFF7FEFF bl sm_set_relay
|
||
449:Core/Src/state_machine.c **** sm_set_relay(RELAY_PRECHARGE, 1);
|
||
2512 .loc 1 449 7
|
||
2513 0052 0121 movs r1, #1
|
||
2514 0054 0120 movs r0, #1
|
||
2515 0056 FFF7FEFF bl sm_set_relay
|
||
450:Core/Src/state_machine.c **** break;
|
||
2516 .loc 1 450 7
|
||
2517 005a 35E0 b .L189
|
||
2518 .L196:
|
||
451:Core/Src/state_machine.c **** case STATE_READY:
|
||
452:Core/Src/state_machine.c **** sm_set_relay(RELAY_MAIN, 1);
|
||
2519 .loc 1 452 7
|
||
2520 005c 0121 movs r1, #1
|
||
2521 005e 0020 movs r0, #0
|
||
2522 0060 FFF7FEFF bl sm_set_relay
|
||
453:Core/Src/state_machine.c **** sm_set_relay(RELAY_PRECHARGE, 0);
|
||
2523 .loc 1 453 7
|
||
2524 0064 0021 movs r1, #0
|
||
2525 0066 0120 movs r0, #1
|
||
2526 0068 FFF7FEFF bl sm_set_relay
|
||
454:Core/Src/state_machine.c **** break;
|
||
2527 .loc 1 454 7
|
||
2528 006c 2CE0 b .L189
|
||
2529 .L195:
|
||
455:Core/Src/state_machine.c **** case STATE_ACTIVE:
|
||
456:Core/Src/state_machine.c **** sm_set_relay(RELAY_MAIN, 1);
|
||
2530 .loc 1 456 7
|
||
2531 006e 0121 movs r1, #1
|
||
ARM GAS /tmp/cctkPVvk.s page 53
|
||
|
||
|
||
2532 0070 0020 movs r0, #0
|
||
2533 0072 FFF7FEFF bl sm_set_relay
|
||
457:Core/Src/state_machine.c **** sm_set_relay(RELAY_PRECHARGE, 0);
|
||
2534 .loc 1 457 7
|
||
2535 0076 0021 movs r1, #0
|
||
2536 0078 0120 movs r0, #1
|
||
2537 007a FFF7FEFF bl sm_set_relay
|
||
458:Core/Src/state_machine.c **** break;
|
||
2538 .loc 1 458 7
|
||
2539 007e 23E0 b .L189
|
||
2540 .L194:
|
||
459:Core/Src/state_machine.c **** case STATE_DISCHARGE:
|
||
460:Core/Src/state_machine.c **** sm_set_relay(RELAY_MAIN, 0);
|
||
2541 .loc 1 460 7
|
||
2542 0080 0021 movs r1, #0
|
||
2543 0082 0020 movs r0, #0
|
||
2544 0084 FFF7FEFF bl sm_set_relay
|
||
461:Core/Src/state_machine.c **** sm_set_relay(RELAY_PRECHARGE, 1);
|
||
2545 .loc 1 461 7
|
||
2546 0088 0121 movs r1, #1
|
||
2547 008a 0120 movs r0, #1
|
||
2548 008c FFF7FEFF bl sm_set_relay
|
||
462:Core/Src/state_machine.c **** break;
|
||
2549 .loc 1 462 7
|
||
2550 0090 1AE0 b .L189
|
||
2551 .L193:
|
||
463:Core/Src/state_machine.c **** case STATE_CHARGING_PRECHARGE:
|
||
464:Core/Src/state_machine.c **** sm_set_relay(RELAY_MAIN, 0);
|
||
2552 .loc 1 464 7
|
||
2553 0092 0021 movs r1, #0
|
||
2554 0094 0020 movs r0, #0
|
||
2555 0096 FFF7FEFF bl sm_set_relay
|
||
465:Core/Src/state_machine.c **** sm_set_relay(RELAY_PRECHARGE, 1);
|
||
2556 .loc 1 465 7
|
||
2557 009a 0121 movs r1, #1
|
||
2558 009c 0120 movs r0, #1
|
||
2559 009e FFF7FEFF bl sm_set_relay
|
||
466:Core/Src/state_machine.c **** break;
|
||
2560 .loc 1 466 7
|
||
2561 00a2 11E0 b .L189
|
||
2562 .L192:
|
||
467:Core/Src/state_machine.c **** case STATE_CHARGING:
|
||
468:Core/Src/state_machine.c **** sm_set_relay(RELAY_MAIN, 1);
|
||
2563 .loc 1 468 7
|
||
2564 00a4 0121 movs r1, #1
|
||
2565 00a6 0020 movs r0, #0
|
||
2566 00a8 FFF7FEFF bl sm_set_relay
|
||
469:Core/Src/state_machine.c **** sm_set_relay(RELAY_PRECHARGE, 0);
|
||
2567 .loc 1 469 7
|
||
2568 00ac 0021 movs r1, #0
|
||
2569 00ae 0120 movs r0, #1
|
||
2570 00b0 FFF7FEFF bl sm_set_relay
|
||
470:Core/Src/state_machine.c **** break;
|
||
2571 .loc 1 470 7
|
||
2572 00b4 08E0 b .L189
|
||
2573 .L190:
|
||
471:Core/Src/state_machine.c **** case STATE_ERROR:
|
||
ARM GAS /tmp/cctkPVvk.s page 54
|
||
|
||
|
||
472:Core/Src/state_machine.c **** sm_set_relay(RELAY_MAIN, 0);
|
||
2574 .loc 1 472 7
|
||
2575 00b6 0021 movs r1, #0
|
||
2576 00b8 0020 movs r0, #0
|
||
2577 00ba FFF7FEFF bl sm_set_relay
|
||
473:Core/Src/state_machine.c **** sm_set_relay(RELAY_PRECHARGE, 0);
|
||
2578 .loc 1 473 7
|
||
2579 00be 0021 movs r1, #0
|
||
2580 00c0 0120 movs r0, #1
|
||
2581 00c2 FFF7FEFF bl sm_set_relay
|
||
474:Core/Src/state_machine.c **** break;
|
||
2582 .loc 1 474 7
|
||
2583 00c6 00BF nop
|
||
2584 .L189:
|
||
2585 .L199:
|
||
475:Core/Src/state_machine.c **** }
|
||
476:Core/Src/state_machine.c **** }
|
||
2586 .loc 1 476 1
|
||
2587 00c8 00BF nop
|
||
2588 00ca 0837 adds r7, r7, #8
|
||
2589 .cfi_def_cfa_offset 8
|
||
2590 00cc BD46 mov sp, r7
|
||
2591 .cfi_def_cfa_register 13
|
||
2592 @ sp needed
|
||
2593 00ce 80BD pop {r7, pc}
|
||
2594 .L202:
|
||
2595 .align 2
|
||
2596 .L201:
|
||
2597 00d0 00000000 .word state
|
||
2598 .cfi_endproc
|
||
2599 .LFE149:
|
||
2601 .section .text.sm_set_relay,"ax",%progbits
|
||
2602 .align 1
|
||
2603 .global sm_set_relay
|
||
2604 .syntax unified
|
||
2605 .thumb
|
||
2606 .thumb_func
|
||
2608 sm_set_relay:
|
||
2609 .LFB150:
|
||
477:Core/Src/state_machine.c ****
|
||
478:Core/Src/state_machine.c **** void sm_set_relay(Relay relay, bool closed){
|
||
2610 .loc 1 478 44
|
||
2611 .cfi_startproc
|
||
2612 @ args = 0, pretend = 0, frame = 16
|
||
2613 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2614 0000 80B5 push {r7, lr}
|
||
2615 .cfi_def_cfa_offset 8
|
||
2616 .cfi_offset 7, -8
|
||
2617 .cfi_offset 14, -4
|
||
2618 0002 84B0 sub sp, sp, #16
|
||
2619 .cfi_def_cfa_offset 24
|
||
2620 0004 00AF add r7, sp, #0
|
||
2621 .cfi_def_cfa_register 7
|
||
2622 0006 0346 mov r3, r0
|
||
2623 0008 0A46 mov r2, r1
|
||
2624 000a FB71 strb r3, [r7, #7]
|
||
2625 000c 1346 mov r3, r2
|
||
ARM GAS /tmp/cctkPVvk.s page 55
|
||
|
||
|
||
2626 000e BB71 strb r3, [r7, #6]
|
||
479:Core/Src/state_machine.c **** GPIO_PinState state = closed ? GPIO_PIN_SET : GPIO_PIN_RESET;
|
||
2627 .loc 1 479 47
|
||
2628 0010 BB79 ldrb r3, [r7, #6] @ zero_extendqisi2
|
||
2629 .loc 1 479 17
|
||
2630 0012 FB73 strb r3, [r7, #15]
|
||
480:Core/Src/state_machine.c **** switch (relay) {
|
||
2631 .loc 1 480 3
|
||
2632 0014 FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
|
||
2633 0016 002B cmp r3, #0
|
||
2634 0018 02D0 beq .L204
|
||
2635 001a 012B cmp r3, #1
|
||
2636 001c 07D0 beq .L205
|
||
481:Core/Src/state_machine.c **** case RELAY_MAIN:
|
||
482:Core/Src/state_machine.c **** HAL_GPIO_WritePin(RELAY_ENABLE_GPIO_Port, RELAY_ENABLE_Pin, state);
|
||
483:Core/Src/state_machine.c **** break;
|
||
484:Core/Src/state_machine.c **** case RELAY_PRECHARGE:
|
||
485:Core/Src/state_machine.c **** HAL_GPIO_WritePin(PRECHARGE_ENABLE_GPIO_Port, PRECHARGE_ENABLE_Pin, state);
|
||
486:Core/Src/state_machine.c **** break;
|
||
487:Core/Src/state_machine.c **** }
|
||
488:Core/Src/state_machine.c **** }
|
||
2637 .loc 1 488 1
|
||
2638 001e 0DE0 b .L207
|
||
2639 .L204:
|
||
482:Core/Src/state_machine.c **** break;
|
||
2640 .loc 1 482 7
|
||
2641 0020 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
2642 0022 1A46 mov r2, r3
|
||
2643 0024 1021 movs r1, #16
|
||
2644 0026 0748 ldr r0, .L208
|
||
2645 0028 FFF7FEFF bl HAL_GPIO_WritePin
|
||
483:Core/Src/state_machine.c **** case RELAY_PRECHARGE:
|
||
2646 .loc 1 483 7
|
||
2647 002c 06E0 b .L206
|
||
2648 .L205:
|
||
485:Core/Src/state_machine.c **** break;
|
||
2649 .loc 1 485 7
|
||
2650 002e FB7B ldrb r3, [r7, #15] @ zero_extendqisi2
|
||
2651 0030 1A46 mov r2, r3
|
||
2652 0032 2021 movs r1, #32
|
||
2653 0034 0348 ldr r0, .L208
|
||
2654 0036 FFF7FEFF bl HAL_GPIO_WritePin
|
||
486:Core/Src/state_machine.c **** }
|
||
2655 .loc 1 486 7
|
||
2656 003a 00BF nop
|
||
2657 .L206:
|
||
2658 .L207:
|
||
2659 .loc 1 488 1
|
||
2660 003c 00BF nop
|
||
2661 003e 1037 adds r7, r7, #16
|
||
2662 .cfi_def_cfa_offset 8
|
||
2663 0040 BD46 mov sp, r7
|
||
2664 .cfi_def_cfa_register 13
|
||
2665 @ sp needed
|
||
2666 0042 80BD pop {r7, pc}
|
||
2667 .L209:
|
||
2668 .align 2
|
||
ARM GAS /tmp/cctkPVvk.s page 56
|
||
|
||
|
||
2669 .L208:
|
||
2670 0044 00040048 .word 1207960576
|
||
2671 .cfi_endproc
|
||
2672 .LFE150:
|
||
2674 .section .text.sm_check_battery_temperature,"ax",%progbits
|
||
2675 .align 1
|
||
2676 .global sm_check_battery_temperature
|
||
2677 .syntax unified
|
||
2678 .thumb
|
||
2679 .thumb_func
|
||
2681 sm_check_battery_temperature:
|
||
2682 .LFB151:
|
||
489:Core/Src/state_machine.c ****
|
||
490:Core/Src/state_machine.c **** /* returns the ID and temperature of the hottest cell */
|
||
491:Core/Src/state_machine.c **** void sm_check_battery_temperature(uint8_t *id, uint16_t *temp){
|
||
2683 .loc 1 491 63
|
||
2684 .cfi_startproc
|
||
2685 @ args = 0, pretend = 0, frame = 16
|
||
2686 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2687 @ link register save eliminated.
|
||
2688 0000 80B4 push {r7}
|
||
2689 .cfi_def_cfa_offset 4
|
||
2690 .cfi_offset 7, -4
|
||
2691 0002 85B0 sub sp, sp, #20
|
||
2692 .cfi_def_cfa_offset 24
|
||
2693 0004 00AF add r7, sp, #0
|
||
2694 .cfi_def_cfa_register 7
|
||
2695 0006 7860 str r0, [r7, #4]
|
||
2696 0008 3960 str r1, [r7]
|
||
2697 .LBB5:
|
||
492:Core/Src/state_machine.c **** for (int i = 0; i < N_TEMP_SENSORS; i++) {
|
||
2698 .loc 1 492 12
|
||
2699 000a 0023 movs r3, #0
|
||
2700 000c FB60 str r3, [r7, #12]
|
||
2701 .loc 1 492 3
|
||
2702 000e 16E0 b .L211
|
||
2703 .L213:
|
||
493:Core/Src/state_machine.c **** if (tmp1075_temps[i] > *temp){
|
||
2704 .loc 1 493 22
|
||
2705 0010 104A ldr r2, .L214
|
||
2706 0012 FB68 ldr r3, [r7, #12]
|
||
2707 0014 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
2708 0018 1A46 mov r2, r3
|
||
2709 .loc 1 493 28
|
||
2710 001a 3B68 ldr r3, [r7]
|
||
2711 001c 1B88 ldrh r3, [r3]
|
||
2712 .loc 1 493 8
|
||
2713 001e 9A42 cmp r2, r3
|
||
2714 0020 0ADD ble .L212
|
||
494:Core/Src/state_machine.c **** *id = i;
|
||
2715 .loc 1 494 11
|
||
2716 0022 FB68 ldr r3, [r7, #12]
|
||
2717 0024 DAB2 uxtb r2, r3
|
||
2718 0026 7B68 ldr r3, [r7, #4]
|
||
2719 0028 1A70 strb r2, [r3]
|
||
495:Core/Src/state_machine.c **** *temp = tmp1075_temps[i];
|
||
2720 .loc 1 495 28
|
||
ARM GAS /tmp/cctkPVvk.s page 57
|
||
|
||
|
||
2721 002a 0A4A ldr r2, .L214
|
||
2722 002c FB68 ldr r3, [r7, #12]
|
||
2723 002e 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
2724 0032 9AB2 uxth r2, r3
|
||
2725 .loc 1 495 13
|
||
2726 0034 3B68 ldr r3, [r7]
|
||
2727 0036 1A80 strh r2, [r3] @ movhi
|
||
2728 .L212:
|
||
492:Core/Src/state_machine.c **** if (tmp1075_temps[i] > *temp){
|
||
2729 .loc 1 492 40 discriminator 2
|
||
2730 0038 FB68 ldr r3, [r7, #12]
|
||
2731 003a 0133 adds r3, r3, #1
|
||
2732 003c FB60 str r3, [r7, #12]
|
||
2733 .L211:
|
||
492:Core/Src/state_machine.c **** if (tmp1075_temps[i] > *temp){
|
||
2734 .loc 1 492 21 discriminator 1
|
||
2735 003e FB68 ldr r3, [r7, #12]
|
||
2736 0040 0C2B cmp r3, #12
|
||
2737 0042 E5DD ble .L213
|
||
2738 .LBE5:
|
||
496:Core/Src/state_machine.c **** }
|
||
497:Core/Src/state_machine.c **** }
|
||
498:Core/Src/state_machine.c **** }
|
||
2739 .loc 1 498 1
|
||
2740 0044 00BF nop
|
||
2741 0046 00BF nop
|
||
2742 0048 1437 adds r7, r7, #20
|
||
2743 .cfi_def_cfa_offset 4
|
||
2744 004a BD46 mov sp, r7
|
||
2745 .cfi_def_cfa_register 13
|
||
2746 @ sp needed
|
||
2747 004c 5DF8047B ldr r7, [sp], #4
|
||
2748 .cfi_restore 7
|
||
2749 .cfi_def_cfa_offset 0
|
||
2750 0050 7047 bx lr
|
||
2751 .L215:
|
||
2752 0052 00BF .align 2
|
||
2753 .L214:
|
||
2754 0054 00000000 .word tmp1075_temps
|
||
2755 .cfi_endproc
|
||
2756 .LFE151:
|
||
2758 .section .text.sm_return_cell_temperature,"ax",%progbits
|
||
2759 .align 1
|
||
2760 .global sm_return_cell_temperature
|
||
2761 .syntax unified
|
||
2762 .thumb
|
||
2763 .thumb_func
|
||
2765 sm_return_cell_temperature:
|
||
2766 .LFB152:
|
||
499:Core/Src/state_machine.c ****
|
||
500:Core/Src/state_machine.c **** int16_t sm_return_cell_temperature(int id){ return tmp1075_temps[id]; }
|
||
2767 .loc 1 500 43
|
||
2768 .cfi_startproc
|
||
2769 @ args = 0, pretend = 0, frame = 8
|
||
2770 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2771 @ link register save eliminated.
|
||
2772 0000 80B4 push {r7}
|
||
ARM GAS /tmp/cctkPVvk.s page 58
|
||
|
||
|
||
2773 .cfi_def_cfa_offset 4
|
||
2774 .cfi_offset 7, -4
|
||
2775 0002 83B0 sub sp, sp, #12
|
||
2776 .cfi_def_cfa_offset 16
|
||
2777 0004 00AF add r7, sp, #0
|
||
2778 .cfi_def_cfa_register 7
|
||
2779 0006 7860 str r0, [r7, #4]
|
||
2780 .loc 1 500 65
|
||
2781 0008 044A ldr r2, .L218
|
||
2782 000a 7B68 ldr r3, [r7, #4]
|
||
2783 000c 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
2784 .loc 1 500 71
|
||
2785 0010 1846 mov r0, r3
|
||
2786 0012 0C37 adds r7, r7, #12
|
||
2787 .cfi_def_cfa_offset 4
|
||
2788 0014 BD46 mov sp, r7
|
||
2789 .cfi_def_cfa_register 13
|
||
2790 @ sp needed
|
||
2791 0016 5DF8047B ldr r7, [sp], #4
|
||
2792 .cfi_restore 7
|
||
2793 .cfi_def_cfa_offset 0
|
||
2794 001a 7047 bx lr
|
||
2795 .L219:
|
||
2796 .align 2
|
||
2797 .L218:
|
||
2798 001c 00000000 .word tmp1075_temps
|
||
2799 .cfi_endproc
|
||
2800 .LFE152:
|
||
2802 .section .text.sm_return_cell_voltage,"ax",%progbits
|
||
2803 .align 1
|
||
2804 .global sm_return_cell_voltage
|
||
2805 .syntax unified
|
||
2806 .thumb
|
||
2807 .thumb_func
|
||
2809 sm_return_cell_voltage:
|
||
2810 .LFB153:
|
||
501:Core/Src/state_machine.c ****
|
||
502:Core/Src/state_machine.c **** int16_t sm_return_cell_voltage(int id){ return module.cellVoltages[id]; }
|
||
2811 .loc 1 502 39
|
||
2812 .cfi_startproc
|
||
2813 @ args = 0, pretend = 0, frame = 8
|
||
2814 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2815 @ link register save eliminated.
|
||
2816 0000 80B4 push {r7}
|
||
2817 .cfi_def_cfa_offset 4
|
||
2818 .cfi_offset 7, -4
|
||
2819 0002 83B0 sub sp, sp, #12
|
||
2820 .cfi_def_cfa_offset 16
|
||
2821 0004 00AF add r7, sp, #0
|
||
2822 .cfi_def_cfa_register 7
|
||
2823 0006 7860 str r0, [r7, #4]
|
||
2824 .loc 1 502 67
|
||
2825 0008 044A ldr r2, .L222
|
||
2826 000a 7B68 ldr r3, [r7, #4]
|
||
2827 000c 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
2828 .loc 1 502 73
|
||
2829 0010 1846 mov r0, r3
|
||
ARM GAS /tmp/cctkPVvk.s page 59
|
||
|
||
|
||
2830 0012 0C37 adds r7, r7, #12
|
||
2831 .cfi_def_cfa_offset 4
|
||
2832 0014 BD46 mov sp, r7
|
||
2833 .cfi_def_cfa_register 13
|
||
2834 @ sp needed
|
||
2835 0016 5DF8047B ldr r7, [sp], #4
|
||
2836 .cfi_restore 7
|
||
2837 .cfi_def_cfa_offset 0
|
||
2838 001a 7047 bx lr
|
||
2839 .L223:
|
||
2840 .align 2
|
||
2841 .L222:
|
||
2842 001c 00000000 .word module
|
||
2843 .cfi_endproc
|
||
2844 .LFE153:
|
||
2846 .section .text.sm_test_cycle_states,"ax",%progbits
|
||
2847 .align 1
|
||
2848 .global sm_test_cycle_states
|
||
2849 .syntax unified
|
||
2850 .thumb
|
||
2851 .thumb_func
|
||
2853 sm_test_cycle_states:
|
||
2854 .LFB154:
|
||
503:Core/Src/state_machine.c ****
|
||
504:Core/Src/state_machine.c **** void sm_test_cycle_states(){
|
||
2855 .loc 1 504 28
|
||
2856 .cfi_startproc
|
||
2857 @ args = 0, pretend = 0, frame = 0
|
||
2858 @ frame_needed = 1, uses_anonymous_args = 0
|
||
2859 0000 80B5 push {r7, lr}
|
||
2860 .cfi_def_cfa_offset 8
|
||
2861 .cfi_offset 7, -8
|
||
2862 .cfi_offset 14, -4
|
||
2863 0002 00AF add r7, sp, #0
|
||
2864 .cfi_def_cfa_register 7
|
||
505:Core/Src/state_machine.c **** RELAY_BAT_SIDE_VOLTAGE = module.auxVoltages[0];
|
||
2865 .loc 1 505 46
|
||
2866 0004 434B ldr r3, .L237
|
||
2867 0006 D3ED087A vldr.32 s15, [r3, #32]
|
||
2868 .loc 1 505 26
|
||
2869 000a FDEEE77A vcvt.s32.f32 s15, s15
|
||
2870 000e 17EE902A vmov r2, s15 @ int
|
||
2871 0012 414B ldr r3, .L237+4
|
||
2872 0014 1A60 str r2, [r3]
|
||
506:Core/Src/state_machine.c **** RELAY_ESC_SIDE_VOLTAGE = module.auxVoltages[1];
|
||
2873 .loc 1 506 46
|
||
2874 0016 3F4B ldr r3, .L237
|
||
2875 0018 D3ED097A vldr.32 s15, [r3, #36]
|
||
2876 .loc 1 506 26
|
||
2877 001c FDEEE77A vcvt.s32.f32 s15, s15
|
||
2878 0020 17EE902A vmov r2, s15 @ int
|
||
2879 0024 3D4B ldr r3, .L237+8
|
||
2880 0026 1A60 str r2, [r3]
|
||
507:Core/Src/state_machine.c **** CURRENT_MEASUREMENT = module.auxVoltages[2];
|
||
2881 .loc 1 507 43
|
||
2882 0028 3A4B ldr r3, .L237
|
||
2883 002a D3ED0A7A vldr.32 s15, [r3, #40]
|
||
ARM GAS /tmp/cctkPVvk.s page 60
|
||
|
||
|
||
2884 .loc 1 507 23
|
||
2885 002e FDEEE77A vcvt.s32.f32 s15, s15
|
||
2886 0032 17EE902A vmov r2, s15 @ int
|
||
2887 0036 3A4B ldr r3, .L237+12
|
||
2888 0038 1A60 str r2, [r3]
|
||
508:Core/Src/state_machine.c **** sm_set_relay_positions(state.current_state);
|
||
2889 .loc 1 508 3
|
||
2890 003a 3A4B ldr r3, .L237+16
|
||
2891 003c 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
2892 003e 1846 mov r0, r3
|
||
2893 0040 FFF7FEFF bl sm_set_relay_positions
|
||
509:Core/Src/state_machine.c ****
|
||
510:Core/Src/state_machine.c **** if (timestamp > HAL_GetTick())
|
||
2894 .loc 1 510 19
|
||
2895 0044 FFF7FEFF bl HAL_GetTick
|
||
2896 0048 0246 mov r2, r0
|
||
2897 .loc 1 510 17 discriminator 1
|
||
2898 004a 374B ldr r3, .L237+20
|
||
2899 004c 1B68 ldr r3, [r3]
|
||
2900 .loc 1 510 6 discriminator 1
|
||
2901 004e 9A42 cmp r2, r3
|
||
2902 0050 5DD3 bcc .L235
|
||
511:Core/Src/state_machine.c **** return;
|
||
512:Core/Src/state_machine.c **** switch (state.current_state) {
|
||
2903 .loc 1 512 16
|
||
2904 0052 344B ldr r3, .L237+16
|
||
2905 0054 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
2906 .loc 1 512 3
|
||
2907 0056 072B cmp r3, #7
|
||
2908 0058 54D8 bhi .L227
|
||
2909 005a 01A2 adr r2, .L229
|
||
2910 005c 52F823F0 ldr pc, [r2, r3, lsl #2]
|
||
2911 .p2align 2
|
||
2912 .L229:
|
||
2913 0060 81000000 .word .L234+1
|
||
2914 0064 9F000000 .word .L233+1
|
||
2915 0068 B7000000 .word .L232+1
|
||
2916 006c CF000000 .word .L231+1
|
||
2917 0070 ED000000 .word .L230+1
|
||
2918 0074 05010000 .word .L227+1
|
||
2919 0078 05010000 .word .L227+1
|
||
2920 007c 05010000 .word .L227+1
|
||
2921 .p2align 1
|
||
2922 .L234:
|
||
513:Core/Src/state_machine.c **** case STATE_INACTIVE:
|
||
514:Core/Src/state_machine.c **** state.current_state = STATE_PRECHARGE;
|
||
2923 .loc 1 514 27
|
||
2924 0080 284B ldr r3, .L237+16
|
||
2925 0082 0122 movs r2, #1
|
||
2926 0084 1A70 strb r2, [r3]
|
||
515:Core/Src/state_machine.c **** timestamp = HAL_GetTick() + 30000;
|
||
2927 .loc 1 515 19
|
||
2928 0086 FFF7FEFF bl HAL_GetTick
|
||
2929 008a 0346 mov r3, r0
|
||
2930 .loc 1 515 33 discriminator 1
|
||
2931 008c 03F5EA43 add r3, r3, #29952
|
||
2932 0090 3033 adds r3, r3, #48
|
||
ARM GAS /tmp/cctkPVvk.s page 61
|
||
|
||
|
||
2933 .loc 1 515 17 discriminator 1
|
||
2934 0092 254A ldr r2, .L237+20
|
||
2935 0094 1360 str r3, [r2]
|
||
516:Core/Src/state_machine.c **** PWM_powerground_control(0);
|
||
2936 .loc 1 516 7
|
||
2937 0096 0020 movs r0, #0
|
||
2938 0098 FFF7FEFF bl PWM_powerground_control
|
||
517:Core/Src/state_machine.c **** break;
|
||
2939 .loc 1 517 7
|
||
2940 009c 32E0 b .L227
|
||
2941 .L233:
|
||
518:Core/Src/state_machine.c **** case STATE_PRECHARGE:
|
||
519:Core/Src/state_machine.c **** state.current_state = STATE_READY;
|
||
2942 .loc 1 519 27
|
||
2943 009e 214B ldr r3, .L237+16
|
||
2944 00a0 0222 movs r2, #2
|
||
2945 00a2 1A70 strb r2, [r3]
|
||
520:Core/Src/state_machine.c **** timestamp = HAL_GetTick() + 10000;
|
||
2946 .loc 1 520 19
|
||
2947 00a4 FFF7FEFF bl HAL_GetTick
|
||
2948 00a8 0346 mov r3, r0
|
||
2949 .loc 1 520 33 discriminator 1
|
||
2950 00aa 03F51C53 add r3, r3, #9984
|
||
2951 00ae 1033 adds r3, r3, #16
|
||
2952 .loc 1 520 17 discriminator 1
|
||
2953 00b0 1D4A ldr r2, .L237+20
|
||
2954 00b2 1360 str r3, [r2]
|
||
521:Core/Src/state_machine.c **** break;
|
||
2955 .loc 1 521 7
|
||
2956 00b4 26E0 b .L227
|
||
2957 .L232:
|
||
522:Core/Src/state_machine.c **** case STATE_READY:
|
||
523:Core/Src/state_machine.c **** state.current_state = STATE_ACTIVE;
|
||
2958 .loc 1 523 27
|
||
2959 00b6 1B4B ldr r3, .L237+16
|
||
2960 00b8 0322 movs r2, #3
|
||
2961 00ba 1A70 strb r2, [r3]
|
||
524:Core/Src/state_machine.c **** timestamp = HAL_GetTick() + 10000;
|
||
2962 .loc 1 524 19
|
||
2963 00bc FFF7FEFF bl HAL_GetTick
|
||
2964 00c0 0346 mov r3, r0
|
||
2965 .loc 1 524 33 discriminator 1
|
||
2966 00c2 03F51C53 add r3, r3, #9984
|
||
2967 00c6 1033 adds r3, r3, #16
|
||
2968 .loc 1 524 17 discriminator 1
|
||
2969 00c8 174A ldr r2, .L237+20
|
||
2970 00ca 1360 str r3, [r2]
|
||
525:Core/Src/state_machine.c **** break;
|
||
2971 .loc 1 525 7
|
||
2972 00cc 1AE0 b .L227
|
||
2973 .L231:
|
||
526:Core/Src/state_machine.c **** case STATE_ACTIVE:
|
||
527:Core/Src/state_machine.c **** state.current_state = STATE_DISCHARGE;
|
||
2974 .loc 1 527 27
|
||
2975 00ce 154B ldr r3, .L237+16
|
||
2976 00d0 0422 movs r2, #4
|
||
2977 00d2 1A70 strb r2, [r3]
|
||
ARM GAS /tmp/cctkPVvk.s page 62
|
||
|
||
|
||
528:Core/Src/state_machine.c **** timestamp = HAL_GetTick() + 10000;
|
||
2978 .loc 1 528 19
|
||
2979 00d4 FFF7FEFF bl HAL_GetTick
|
||
2980 00d8 0346 mov r3, r0
|
||
2981 .loc 1 528 33 discriminator 1
|
||
2982 00da 03F51C53 add r3, r3, #9984
|
||
2983 00de 1033 adds r3, r3, #16
|
||
2984 .loc 1 528 17 discriminator 1
|
||
2985 00e0 114A ldr r2, .L237+20
|
||
2986 00e2 1360 str r3, [r2]
|
||
529:Core/Src/state_machine.c **** PWM_powerground_control(10);
|
||
2987 .loc 1 529 7
|
||
2988 00e4 0A20 movs r0, #10
|
||
2989 00e6 FFF7FEFF bl PWM_powerground_control
|
||
530:Core/Src/state_machine.c **** break;
|
||
2990 .loc 1 530 7
|
||
2991 00ea 0BE0 b .L227
|
||
2992 .L230:
|
||
531:Core/Src/state_machine.c **** case STATE_DISCHARGE:
|
||
532:Core/Src/state_machine.c **** state.current_state = STATE_INACTIVE;
|
||
2993 .loc 1 532 27
|
||
2994 00ec 0D4B ldr r3, .L237+16
|
||
2995 00ee 0022 movs r2, #0
|
||
2996 00f0 1A70 strb r2, [r3]
|
||
533:Core/Src/state_machine.c **** timestamp = HAL_GetTick() + 10000;
|
||
2997 .loc 1 533 19
|
||
2998 00f2 FFF7FEFF bl HAL_GetTick
|
||
2999 00f6 0346 mov r3, r0
|
||
3000 .loc 1 533 33 discriminator 1
|
||
3001 00f8 03F51C53 add r3, r3, #9984
|
||
3002 00fc 1033 adds r3, r3, #16
|
||
3003 .loc 1 533 17 discriminator 1
|
||
3004 00fe 0A4A ldr r2, .L237+20
|
||
3005 0100 1360 str r3, [r2]
|
||
534:Core/Src/state_machine.c **** break;
|
||
3006 .loc 1 534 7
|
||
3007 0102 00BF nop
|
||
3008 .L227:
|
||
535:Core/Src/state_machine.c **** case STATE_CHARGING_PRECHARGE:
|
||
536:Core/Src/state_machine.c **** case STATE_CHARGING:
|
||
537:Core/Src/state_machine.c **** case STATE_ERROR:
|
||
538:Core/Src/state_machine.c **** break;
|
||
539:Core/Src/state_machine.c **** }
|
||
540:Core/Src/state_machine.c ****
|
||
541:Core/Src/state_machine.c **** state.target_state = state.current_state;
|
||
3009 .loc 1 541 29
|
||
3010 0104 074B ldr r3, .L237+16
|
||
3011 0106 1A78 ldrb r2, [r3] @ zero_extendqisi2
|
||
3012 .loc 1 541 22
|
||
3013 0108 064B ldr r3, .L237+16
|
||
3014 010a 5A70 strb r2, [r3, #1]
|
||
3015 010c 00E0 b .L224
|
||
3016 .L235:
|
||
511:Core/Src/state_machine.c **** switch (state.current_state) {
|
||
3017 .loc 1 511 5
|
||
3018 010e 00BF nop
|
||
3019 .L224:
|
||
ARM GAS /tmp/cctkPVvk.s page 63
|
||
|
||
|
||
542:Core/Src/state_machine.c **** }...
|
||
3020 .loc 1 542 1
|
||
3021 0110 80BD pop {r7, pc}
|
||
3022 .L238:
|
||
3023 0112 00BF .align 2
|
||
3024 .L237:
|
||
3025 0114 00000000 .word module
|
||
3026 0118 00000000 .word RELAY_BAT_SIDE_VOLTAGE
|
||
3027 011c 00000000 .word RELAY_ESC_SIDE_VOLTAGE
|
||
3028 0120 00000000 .word CURRENT_MEASUREMENT
|
||
3029 0124 00000000 .word state
|
||
3030 0128 00000000 .word timestamp
|
||
3031 .cfi_endproc
|
||
3032 .LFE154:
|
||
3034 .text
|
||
3035 .Letext0:
|
||
3036 .file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
|
||
3037 .file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
|
||
3038 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
|
||
3039 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
|
||
3040 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h"
|
||
3041 .file 7 "Core/Inc/ADBMS_LL_Driver.h"
|
||
3042 .file 8 "Core/Inc/ADBMS_Abstraction.h"
|
||
3043 .file 9 "Core/Inc/errors.h"
|
||
3044 .file 10 "Core/Inc/AMS_HighLevel.h"
|
||
3045 .file 11 "Core/Inc/TMP1075.h"
|
||
3046 .file 12 "Core/Inc/PWM_control.h"
|
||
3047 .file 13 "Core/Inc/state_machine.h"
|
||
3048 .file 14 "Core/Inc/eeprom.h"
|
||
3049 .file 15 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
|
||
3050 .file 16 "Core/Inc/soc_estimation.h"
|
||
3051 .file 17 "Core/Inc/status_LED.h"
|
||
3052 .file 18 "Core/Inc/can.h"
|
||
ARM GAS /tmp/cctkPVvk.s page 64
|
||
|
||
|
||
DEFINED SYMBOLS
|
||
*ABS*:00000000 state_machine.c
|
||
/tmp/cctkPVvk.s:24 .bss.programming_mode:00000000 programming_mode
|
||
/tmp/cctkPVvk.s:25 .bss.programming_mode:00000000 $d
|
||
/tmp/cctkPVvk.s:30 .bss.debugging_mode:00000000 debugging_mode
|
||
/tmp/cctkPVvk.s:31 .bss.debugging_mode:00000000 $d
|
||
/tmp/cctkPVvk.s:37 .bss.state:00000000 state
|
||
/tmp/cctkPVvk.s:34 .bss.state:00000000 $d
|
||
/tmp/cctkPVvk.s:44 .bss.RELAY_BAT_SIDE_VOLTAGE:00000000 RELAY_BAT_SIDE_VOLTAGE
|
||
/tmp/cctkPVvk.s:41 .bss.RELAY_BAT_SIDE_VOLTAGE:00000000 $d
|
||
/tmp/cctkPVvk.s:51 .bss.RELAY_ESC_SIDE_VOLTAGE:00000000 RELAY_ESC_SIDE_VOLTAGE
|
||
/tmp/cctkPVvk.s:48 .bss.RELAY_ESC_SIDE_VOLTAGE:00000000 $d
|
||
/tmp/cctkPVvk.s:58 .bss.CURRENT_MEASUREMENT:00000000 CURRENT_MEASUREMENT
|
||
/tmp/cctkPVvk.s:55 .bss.CURRENT_MEASUREMENT:00000000 $d
|
||
/tmp/cctkPVvk.s:64 .bss.CURRENT_MEASUREMENT_ON:00000000 CURRENT_MEASUREMENT_ON
|
||
/tmp/cctkPVvk.s:65 .bss.CURRENT_MEASUREMENT_ON:00000000 $d
|
||
/tmp/cctkPVvk.s:70 .bss.balancing_state:00000000 balancing_state
|
||
/tmp/cctkPVvk.s:71 .bss.balancing_state:00000000 $d
|
||
/tmp/cctkPVvk.s:77 .bss.base_offset:00000000 base_offset
|
||
/tmp/cctkPVvk.s:74 .bss.base_offset:00000000 $d
|
||
/tmp/cctkPVvk.s:84 .bss.error_timer:00000000 error_timer
|
||
/tmp/cctkPVvk.s:81 .bss.error_timer:00000000 $d
|
||
/tmp/cctkPVvk.s:91 .bss.precharge_timer:00000000 precharge_timer
|
||
/tmp/cctkPVvk.s:88 .bss.precharge_timer:00000000 $d
|
||
/tmp/cctkPVvk.s:98 .bss.discharge_timer:00000000 discharge_timer
|
||
/tmp/cctkPVvk.s:95 .bss.discharge_timer:00000000 $d
|
||
/tmp/cctkPVvk.s:105 .bss.balancing_timer:00000000 balancing_timer
|
||
/tmp/cctkPVvk.s:102 .bss.balancing_timer:00000000 $d
|
||
/tmp/cctkPVvk.s:112 .bss.eeprom_timer:00000000 eeprom_timer
|
||
/tmp/cctkPVvk.s:109 .bss.eeprom_timer:00000000 $d
|
||
/tmp/cctkPVvk.s:119 .bss.powerground_softstart_timer:00000000 powerground_softstart_timer
|
||
/tmp/cctkPVvk.s:116 .bss.powerground_softstart_timer:00000000 $d
|
||
/tmp/cctkPVvk.s:126 .bss.powerground_calibration_timer:00000000 powerground_calibration_timer
|
||
/tmp/cctkPVvk.s:123 .bss.powerground_calibration_timer:00000000 $d
|
||
/tmp/cctkPVvk.s:132 .bss.powerground_calibration_stage:00000000 powerground_calibration_stage
|
||
/tmp/cctkPVvk.s:133 .bss.powerground_calibration_stage:00000000 $d
|
||
/tmp/cctkPVvk.s:138 .bss.current_powerground_status:00000000 current_powerground_status
|
||
/tmp/cctkPVvk.s:139 .bss.current_powerground_status:00000000 $d
|
||
/tmp/cctkPVvk.s:144 .bss.target_powerground_status:00000000 target_powerground_status
|
||
/tmp/cctkPVvk.s:145 .bss.target_powerground_status:00000000 $d
|
||
/tmp/cctkPVvk.s:147 .bss.timestamp:00000000 $d
|
||
/tmp/cctkPVvk.s:150 .bss.timestamp:00000000 timestamp
|
||
/tmp/cctkPVvk.s:153 .text.sm_init:00000000 $t
|
||
/tmp/cctkPVvk.s:159 .text.sm_init:00000000 sm_init
|
||
/tmp/cctkPVvk.s:236 .text.sm_init:00000060 $d
|
||
/tmp/cctkPVvk.s:254 .text.sm_update:00000000 $t
|
||
/tmp/cctkPVvk.s:260 .text.sm_update:00000000 sm_update
|
||
/tmp/cctkPVvk.s:1490 .text.sm_check_errors:00000000 sm_check_errors
|
||
/tmp/cctkPVvk.s:740 .text.sm_precharge_discharge_manager:00000000 sm_precharge_discharge_manager
|
||
/tmp/cctkPVvk.s:1195 .text.sm_balancing:00000000 sm_balancing
|
||
/tmp/cctkPVvk.s:912 .text.sm_powerground_manager:00000000 sm_powerground_manager
|
||
/tmp/cctkPVvk.s:390 .text.sm_update:000000f0 $d
|
||
/tmp/cctkPVvk.s:398 .text.sm_update:00000110 $t
|
||
/tmp/cctkPVvk.s:2008 .text.sm_update_inactive:00000000 sm_update_inactive
|
||
/tmp/cctkPVvk.s:2072 .text.sm_update_precharge:00000000 sm_update_precharge
|
||
/tmp/cctkPVvk.s:2128 .text.sm_update_ready:00000000 sm_update_ready
|
||
/tmp/cctkPVvk.s:2184 .text.sm_update_active:00000000 sm_update_active
|
||
ARM GAS /tmp/cctkPVvk.s page 65
|
||
|
||
|
||
/tmp/cctkPVvk.s:2240 .text.sm_update_discharge:00000000 sm_update_discharge
|
||
/tmp/cctkPVvk.s:2296 .text.sm_update_charging_precharge:00000000 sm_update_charging_precharge
|
||
/tmp/cctkPVvk.s:2350 .text.sm_update_charging:00000000 sm_update_charging
|
||
/tmp/cctkPVvk.s:2407 .text.sm_update_error:00000000 sm_update_error
|
||
/tmp/cctkPVvk.s:2461 .text.sm_set_relay_positions:00000000 sm_set_relay_positions
|
||
/tmp/cctkPVvk.s:497 .text.sm_update:00000198 $d
|
||
/tmp/cctkPVvk.s:515 .text.sm_handle_ams_in:00000000 $t
|
||
/tmp/cctkPVvk.s:521 .text.sm_handle_ams_in:00000000 sm_handle_ams_in
|
||
/tmp/cctkPVvk.s:727 .text.sm_handle_ams_in:00000100 $d
|
||
/tmp/cctkPVvk.s:734 .text.sm_precharge_discharge_manager:00000000 $t
|
||
/tmp/cctkPVvk.s:899 .text.sm_precharge_discharge_manager:000000d0 $d
|
||
/tmp/cctkPVvk.s:906 .text.sm_powerground_manager:00000000 $t
|
||
/tmp/cctkPVvk.s:1031 .text.sm_powerground_manager:0000009c $d
|
||
/tmp/cctkPVvk.s:1038 .text.sm_calibrate_powerground:00000000 $t
|
||
/tmp/cctkPVvk.s:1044 .text.sm_calibrate_powerground:00000000 sm_calibrate_powerground
|
||
/tmp/cctkPVvk.s:1077 .text.sm_calibrate_powerground:00000024 $d
|
||
/tmp/cctkPVvk.s:1081 .text.sm_calibrate_powerground:00000034 $t
|
||
/tmp/cctkPVvk.s:1182 .text.sm_calibrate_powerground:000000bc $d
|
||
/tmp/cctkPVvk.s:1189 .text.sm_balancing:00000000 $t
|
||
/tmp/cctkPVvk.s:1371 .text.sm_balancing:000000e8 $d
|
||
/tmp/cctkPVvk.s:1378 .text.sm_program_powerground:00000000 $t
|
||
/tmp/cctkPVvk.s:1384 .text.sm_program_powerground:00000000 sm_program_powerground
|
||
/tmp/cctkPVvk.s:1429 .text.sm_program_powerground:00000030 $d
|
||
/tmp/cctkPVvk.s:1435 .text.sm_eeprom_write_status:00000000 $t
|
||
/tmp/cctkPVvk.s:1441 .text.sm_eeprom_write_status:00000000 sm_eeprom_write_status
|
||
/tmp/cctkPVvk.s:1479 .text.sm_eeprom_write_status:00000028 $d
|
||
/tmp/cctkPVvk.s:1484 .text.sm_check_errors:00000000 $t
|
||
/tmp/cctkPVvk.s:1830 .text.sm_set_error_source:00000000 sm_set_error_source
|
||
/tmp/cctkPVvk.s:1813 .text.sm_check_errors:000001e4 $d
|
||
/tmp/cctkPVvk.s:1824 .text.sm_set_error_source:00000000 $t
|
||
/tmp/cctkPVvk.s:1997 .text.sm_set_error_source:0000010c $d
|
||
/tmp/cctkPVvk.s:2002 .text.sm_update_inactive:00000000 $t
|
||
/tmp/cctkPVvk.s:2061 .text.sm_update_inactive:00000034 $d
|
||
/tmp/cctkPVvk.s:2066 .text.sm_update_precharge:00000000 $t
|
||
/tmp/cctkPVvk.s:2117 .text.sm_update_precharge:00000028 $d
|
||
/tmp/cctkPVvk.s:2122 .text.sm_update_ready:00000000 $t
|
||
/tmp/cctkPVvk.s:2173 .text.sm_update_ready:00000028 $d
|
||
/tmp/cctkPVvk.s:2178 .text.sm_update_active:00000000 $t
|
||
/tmp/cctkPVvk.s:2229 .text.sm_update_active:00000028 $d
|
||
/tmp/cctkPVvk.s:2234 .text.sm_update_discharge:00000000 $t
|
||
/tmp/cctkPVvk.s:2285 .text.sm_update_discharge:00000028 $d
|
||
/tmp/cctkPVvk.s:2290 .text.sm_update_charging_precharge:00000000 $t
|
||
/tmp/cctkPVvk.s:2339 .text.sm_update_charging_precharge:00000024 $d
|
||
/tmp/cctkPVvk.s:2344 .text.sm_update_charging:00000000 $t
|
||
/tmp/cctkPVvk.s:2395 .text.sm_update_charging:00000028 $d
|
||
/tmp/cctkPVvk.s:2401 .text.sm_update_error:00000000 $t
|
||
/tmp/cctkPVvk.s:2450 .text.sm_update_error:00000024 $d
|
||
/tmp/cctkPVvk.s:2455 .text.sm_set_relay_positions:00000000 $t
|
||
/tmp/cctkPVvk.s:2487 .text.sm_set_relay_positions:00000018 $d
|
||
/tmp/cctkPVvk.s:2495 .text.sm_set_relay_positions:00000038 $t
|
||
/tmp/cctkPVvk.s:2608 .text.sm_set_relay:00000000 sm_set_relay
|
||
/tmp/cctkPVvk.s:2597 .text.sm_set_relay_positions:000000d0 $d
|
||
/tmp/cctkPVvk.s:2602 .text.sm_set_relay:00000000 $t
|
||
/tmp/cctkPVvk.s:2670 .text.sm_set_relay:00000044 $d
|
||
/tmp/cctkPVvk.s:2675 .text.sm_check_battery_temperature:00000000 $t
|
||
/tmp/cctkPVvk.s:2681 .text.sm_check_battery_temperature:00000000 sm_check_battery_temperature
|
||
/tmp/cctkPVvk.s:2754 .text.sm_check_battery_temperature:00000054 $d
|
||
ARM GAS /tmp/cctkPVvk.s page 66
|
||
|
||
|
||
/tmp/cctkPVvk.s:2759 .text.sm_return_cell_temperature:00000000 $t
|
||
/tmp/cctkPVvk.s:2765 .text.sm_return_cell_temperature:00000000 sm_return_cell_temperature
|
||
/tmp/cctkPVvk.s:2798 .text.sm_return_cell_temperature:0000001c $d
|
||
/tmp/cctkPVvk.s:2803 .text.sm_return_cell_voltage:00000000 $t
|
||
/tmp/cctkPVvk.s:2809 .text.sm_return_cell_voltage:00000000 sm_return_cell_voltage
|
||
/tmp/cctkPVvk.s:2842 .text.sm_return_cell_voltage:0000001c $d
|
||
/tmp/cctkPVvk.s:2847 .text.sm_test_cycle_states:00000000 $t
|
||
/tmp/cctkPVvk.s:2853 .text.sm_test_cycle_states:00000000 sm_test_cycle_states
|
||
/tmp/cctkPVvk.s:2913 .text.sm_test_cycle_states:00000060 $d
|
||
/tmp/cctkPVvk.s:2921 .text.sm_test_cycle_states:00000080 $t
|
||
/tmp/cctkPVvk.s:3025 .text.sm_test_cycle_states:00000114 $d
|
||
|
||
UNDEFINED SYMBOLS
|
||
__aeabi_f2d
|
||
__aeabi_dsub
|
||
__aeabi_dmul
|
||
__aeabi_d2iz
|
||
can_handle_send_status
|
||
can_handle_send_log
|
||
tmp1075_measure
|
||
status_led_update
|
||
soc_update
|
||
module
|
||
PWM_powerground_control
|
||
HAL_GetTick
|
||
PWM_powerground_softcontrol
|
||
amsStopBalancing
|
||
amsConfigBalancing
|
||
amsStartBalancing
|
||
eeprom_write_status
|
||
error_data
|
||
currentAMSState
|
||
HAL_GPIO_WritePin
|
||
tmp1075_temps
|