adbmsFunctionTest/build/debug/Core/Src/AMS_HighLevel.lst

414 lines
17 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

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

ARM GAS /tmp/ccZdyESl.s page 1
1 .cpu cortex-m4
2 .arch armv7e-m
3 .fpu fpv4-sp-d16
4 .eabi_attribute 27, 1
5 .eabi_attribute 28, 1
6 .eabi_attribute 20, 1
7 .eabi_attribute 21, 1
8 .eabi_attribute 23, 3
9 .eabi_attribute 24, 1
10 .eabi_attribute 25, 1
11 .eabi_attribute 26, 1
12 .eabi_attribute 30, 1
13 .eabi_attribute 34, 1
14 .eabi_attribute 18, 4
15 .file "AMS_HighLevel.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .file 1 "Core/Src/AMS_HighLevel.c"
20 .section .text.AMS_Init,"ax",%progbits
21 .align 1
22 .global AMS_Init
23 .syntax unified
24 .thumb
25 .thumb_func
27 AMS_Init:
28 .LVL0:
29 .LFB123:
1:Core/Src/AMS_HighLevel.c **** /*
2:Core/Src/AMS_HighLevel.c **** * AMS_HighLevel.c
3:Core/Src/AMS_HighLevel.c **** *
4:Core/Src/AMS_HighLevel.c **** * Created on: 20.07.2022
5:Core/Src/AMS_HighLevel.c **** * Author: max
6:Core/Src/AMS_HighLevel.c **** */
7:Core/Src/AMS_HighLevel.c ****
8:Core/Src/AMS_HighLevel.c **** #include "AMS_HighLevel.h"
9:Core/Src/AMS_HighLevel.c **** #include "ADBMS_Abstraction.h"
10:Core/Src/AMS_HighLevel.c **** #include "TMP1075.h"
11:Core/Src/AMS_HighLevel.c **** #include "24LC02.h"
12:Core/Src/AMS_HighLevel.c **** #include "stm32f3xx_hal.h"
13:Core/Src/AMS_HighLevel.c **** #include <stdint.h>
14:Core/Src/AMS_HighLevel.c **** #include <string.h>
15:Core/Src/AMS_HighLevel.c ****
16:Core/Src/AMS_HighLevel.c **** Cell_Module module = {};
17:Core/Src/AMS_HighLevel.c ****
18:Core/Src/AMS_HighLevel.c **** uint16_t amsuv = 0;
19:Core/Src/AMS_HighLevel.c **** uint16_t amsov = 0;
20:Core/Src/AMS_HighLevel.c ****
21:Core/Src/AMS_HighLevel.c **** uint8_t numberofCells = 15;
22:Core/Src/AMS_HighLevel.c **** uint8_t numberofAux = 0;
23:Core/Src/AMS_HighLevel.c ****
24:Core/Src/AMS_HighLevel.c **** uint8_t packetChecksumFails = 0;
25:Core/Src/AMS_HighLevel.c **** #define MAX_PACKET_CHECKSUM_FAILS 5
26:Core/Src/AMS_HighLevel.c ****
27:Core/Src/AMS_HighLevel.c **** uint8_t deviceSleeps = 0;
28:Core/Src/AMS_HighLevel.c **** #define MAX_DEVICE_SLEEP 3 //TODO: change to correct value
29:Core/Src/AMS_HighLevel.c ****
ARM GAS /tmp/ccZdyESl.s page 2
30:Core/Src/AMS_HighLevel.c **** struct pollingTimes {
31:Core/Src/AMS_HighLevel.c **** uint32_t S_ADC_OW_CHECK;
32:Core/Src/AMS_HighLevel.c **** uint32_t TMP1075;
33:Core/Src/AMS_HighLevel.c **** };
34:Core/Src/AMS_HighLevel.c ****
35:Core/Src/AMS_HighLevel.c **** struct pollingTimes pollingTimes = {0, 0};
36:Core/Src/AMS_HighLevel.c ****
37:Core/Src/AMS_HighLevel.c **** uint8_t AMS_Init(SPI_HandleTypeDef* hspi) {
30 .loc 1 37 43 view -0
31 .cfi_startproc
32 @ args = 0, pretend = 0, frame = 0
33 @ frame_needed = 0, uses_anonymous_args = 0
34 .loc 1 37 43 is_stmt 0 view .LVU1
35 0000 38B5 push {r3, r4, r5, lr}
36 .cfi_def_cfa_offset 16
37 .cfi_offset 3, -16
38 .cfi_offset 4, -12
39 .cfi_offset 5, -8
40 .cfi_offset 14, -4
38:Core/Src/AMS_HighLevel.c **** uint8_t ret = initAMS(hspi, numberofCells, numberofAux);
41 .loc 1 38 3 is_stmt 1 view .LVU2
42 .loc 1 38 17 is_stmt 0 view .LVU3
43 0002 0D4B ldr r3, .L3
44 0004 1A78 ldrb r2, [r3] @ zero_extendqisi2
45 0006 0D4B ldr r3, .L3+4
46 0008 1978 ldrb r1, [r3] @ zero_extendqisi2
47 000a FFF7FEFF bl initAMS
48 .LVL1:
49 .loc 1 38 17 view .LVU4
50 000e 0446 mov r4, r0
51 .LVL2:
39:Core/Src/AMS_HighLevel.c **** amsov = DEFAULT_OV;
52 .loc 1 39 3 is_stmt 1 view .LVU5
53 .loc 1 39 9 is_stmt 0 view .LVU6
54 0010 0B4B ldr r3, .L3+8
55 0012 40F26542 movw r2, #1125
56 0016 1A80 strh r2, [r3] @ movhi
40:Core/Src/AMS_HighLevel.c **** amsuv = DEFAULT_UV;
57 .loc 1 40 3 is_stmt 1 view .LVU7
58 .loc 1 40 9 is_stmt 0 view .LVU8
59 0018 0A4B ldr r3, .L3+12
60 001a 40F2A112 movw r2, #417
61 001e 1A80 strh r2, [r3] @ movhi
41:Core/Src/AMS_HighLevel.c ****
42:Core/Src/AMS_HighLevel.c **** amsConfig();
62 .loc 1 42 3 is_stmt 1 view .LVU9
63 0020 FFF7FEFF bl amsConfig
64 .LVL3:
43:Core/Src/AMS_HighLevel.c ****
44:Core/Src/AMS_HighLevel.c **** pollingTimes = (struct pollingTimes) {HAL_GetTick(), HAL_GetTick()};
65 .loc 1 44 3 view .LVU10
66 .loc 1 44 41 is_stmt 0 view .LVU11
67 0024 FFF7FEFF bl HAL_GetTick
68 .LVL4:
69 0028 0546 mov r5, r0
70 .loc 1 44 56 discriminator 1 view .LVU12
71 002a FFF7FEFF bl HAL_GetTick
ARM GAS /tmp/ccZdyESl.s page 3
72 .LVL5:
73 .loc 1 44 16 discriminator 2 view .LVU13
74 002e 064B ldr r3, .L3+16
75 0030 1D60 str r5, [r3]
76 0032 5860 str r0, [r3, #4]
45:Core/Src/AMS_HighLevel.c ****
46:Core/Src/AMS_HighLevel.c **** return ret;
77 .loc 1 46 3 is_stmt 1 view .LVU14
47:Core/Src/AMS_HighLevel.c **** }
78 .loc 1 47 1 is_stmt 0 view .LVU15
79 0034 2046 mov r0, r4
80 0036 38BD pop {r3, r4, r5, pc}
81 .LVL6:
82 .L4:
83 .loc 1 47 1 view .LVU16
84 .align 2
85 .L3:
86 0038 00000000 .word numberofAux
87 003c 00000000 .word numberofCells
88 0040 00000000 .word amsov
89 0044 00000000 .word amsuv
90 0048 00000000 .word pollingTimes
91 .cfi_endproc
92 .LFE123:
94 .section .text.AMS_Idle_Loop,"ax",%progbits
95 .align 1
96 .global AMS_Idle_Loop
97 .syntax unified
98 .thumb
99 .thumb_func
101 AMS_Idle_Loop:
102 .LFB124:
48:Core/Src/AMS_HighLevel.c ****
49:Core/Src/AMS_HighLevel.c **** uint8_t AMS_Idle_Loop() {
103 .loc 1 49 25 is_stmt 1 view -0
104 .cfi_startproc
105 @ args = 0, pretend = 0, frame = 8
106 @ frame_needed = 0, uses_anonymous_args = 0
107 0000 30B5 push {r4, r5, lr}
108 .cfi_def_cfa_offset 12
109 .cfi_offset 4, -12
110 .cfi_offset 5, -8
111 .cfi_offset 14, -4
112 0002 83B0 sub sp, sp, #12
113 .cfi_def_cfa_offset 24
50:Core/Src/AMS_HighLevel.c **** if (!amsWakeUp()) {
114 .loc 1 50 3 view .LVU18
115 .loc 1 50 8 is_stmt 0 view .LVU19
116 0004 FFF7FEFF bl amsWakeUp
117 .LVL7:
51:Core/Src/AMS_HighLevel.c **** //error_data.data_kind = SEK_INTERNAL_BMS_TIMEOUT; //we don't receive data for the wakeup comma
52:Core/Src/AMS_HighLevel.c **** //set_error_source(ERROR_SOURCE_INTERNAL); //so we can't tell if we timed out
53:Core/Src/AMS_HighLevel.c **** }
118 .loc 1 53 3 is_stmt 1 view .LVU20
54:Core/Src/AMS_HighLevel.c ****
55:Core/Src/AMS_HighLevel.c **** packetChecksumFails += amsAuxAndStatusMeasurement(&module);
119 .loc 1 55 3 view .LVU21
ARM GAS /tmp/ccZdyESl.s page 4
120 .loc 1 55 26 is_stmt 0 view .LVU22
121 0008 1B4C ldr r4, .L13
122 000a 2046 mov r0, r4
123 000c FFF7FEFF bl amsAuxAndStatusMeasurement
124 .LVL8:
125 .loc 1 55 23 discriminator 1 view .LVU23
126 0010 1A4A ldr r2, .L13+4
127 0012 1378 ldrb r3, [r2] @ zero_extendqisi2
128 0014 0344 add r3, r3, r0
129 0016 1370 strb r3, [r2]
56:Core/Src/AMS_HighLevel.c ****
57:Core/Src/AMS_HighLevel.c **** if (module.status.SLEEP) {
130 .loc 1 57 3 is_stmt 1 view .LVU24
131 .loc 1 57 7 is_stmt 0 view .LVU25
132 0018 94F83930 ldrb r3, [r4, #57] @ zero_extendqisi2
133 .loc 1 57 6 view .LVU26
134 001c 13F0100F tst r3, #16
135 0020 06D0 beq .L6
58:Core/Src/AMS_HighLevel.c **** deviceSleeps++;
136 .loc 1 58 5 is_stmt 1 view .LVU27
137 .loc 1 58 17 is_stmt 0 view .LVU28
138 0022 174A ldr r2, .L13+8
139 0024 1378 ldrb r3, [r2] @ zero_extendqisi2
140 0026 0133 adds r3, r3, #1
141 0028 DBB2 uxtb r3, r3
142 002a 1370 strb r3, [r2]
59:Core/Src/AMS_HighLevel.c **** if (deviceSleeps > MAX_DEVICE_SLEEP) {
143 .loc 1 59 5 is_stmt 1 view .LVU29
144 .loc 1 59 8 is_stmt 0 view .LVU30
145 002c 032B cmp r3, #3
146 002e 13D9 bls .L12
147 .L6:
60:Core/Src/AMS_HighLevel.c ****
61:Core/Src/AMS_HighLevel.c **** } else {
62:Core/Src/AMS_HighLevel.c **** amsReset();
63:Core/Src/AMS_HighLevel.c **** }
64:Core/Src/AMS_HighLevel.c **** }
65:Core/Src/AMS_HighLevel.c ****
66:Core/Src/AMS_HighLevel.c **** packetChecksumFails += amsCellMeasurement(&module);
148 .loc 1 66 3 is_stmt 1 view .LVU31
149 .loc 1 66 26 is_stmt 0 view .LVU32
150 0030 114D ldr r5, .L13
151 0032 2846 mov r0, r5
152 0034 FFF7FEFF bl amsCellMeasurement
153 .LVL9:
154 .loc 1 66 23 discriminator 1 view .LVU33
155 0038 104C ldr r4, .L13+4
156 003a 2378 ldrb r3, [r4] @ zero_extendqisi2
157 003c 0344 add r3, r3, r0
158 003e 2370 strb r3, [r4]
67:Core/Src/AMS_HighLevel.c **** packetChecksumFails += amsCheckUnderOverVoltage(&module);
159 .loc 1 67 3 is_stmt 1 view .LVU34
160 .loc 1 67 26 is_stmt 0 view .LVU35
161 0040 2846 mov r0, r5
162 0042 FFF7FEFF bl amsCheckUnderOverVoltage
163 .LVL10:
164 .loc 1 67 23 discriminator 1 view .LVU36
ARM GAS /tmp/ccZdyESl.s page 5
165 0046 2378 ldrb r3, [r4] @ zero_extendqisi2
166 0048 0344 add r3, r3, r0
167 004a 2370 strb r3, [r4]
68:Core/Src/AMS_HighLevel.c ****
69:Core/Src/AMS_HighLevel.c **** if(eeprom_write(0, 7) != 0){
168 .loc 1 69 3 is_stmt 1 view .LVU37
169 .loc 1 69 6 is_stmt 0 view .LVU38
170 004c 0721 movs r1, #7
171 004e 0020 movs r0, #0
172 0050 FFF7FEFF bl eeprom_write
173 .LVL11:
174 .loc 1 69 5 discriminator 1 view .LVU39
175 0054 18B1 cbz r0, .L7
176 .L8:
70:Core/Src/AMS_HighLevel.c **** while(1){}
177 .loc 1 70 5 is_stmt 1 view .LVU40
178 .loc 1 70 14 view .LVU41
179 .loc 1 70 10 view .LVU42
180 0056 FEE7 b .L8
181 .L12:
62:Core/Src/AMS_HighLevel.c **** }
182 .loc 1 62 7 view .LVU43
183 0058 FFF7FEFF bl amsReset
184 .LVL12:
185 005c E8E7 b .L6
186 .L7:
71:Core/Src/AMS_HighLevel.c **** }
72:Core/Src/AMS_HighLevel.c **** int8_t eepromBuf = 0;
187 .loc 1 72 3 view .LVU44
188 .loc 1 72 10 is_stmt 0 view .LVU45
189 005e 0020 movs r0, #0
190 0060 8DF80700 strb r0, [sp, #7]
73:Core/Src/AMS_HighLevel.c **** if(eeprom_read(0, &eepromBuf) != 0){
191 .loc 1 73 3 is_stmt 1 view .LVU46
192 .loc 1 73 6 is_stmt 0 view .LVU47
193 0064 0DF10701 add r1, sp, #7
194 0068 FFF7FEFF bl eeprom_read
195 .LVL13:
196 .loc 1 73 5 discriminator 1 view .LVU48
197 006c 00B1 cbz r0, .L9
198 .L10:
74:Core/Src/AMS_HighLevel.c **** while(1){}
199 .loc 1 74 5 is_stmt 1 view .LVU49
200 .loc 1 74 14 view .LVU50
201 .loc 1 74 10 view .LVU51
202 006e FEE7 b .L10
203 .L9:
75:Core/Src/AMS_HighLevel.c **** }
76:Core/Src/AMS_HighLevel.c ****
77:Core/Src/AMS_HighLevel.c **** if (eepromBuf != 7){
204 .loc 1 77 3 view .LVU52
78:Core/Src/AMS_HighLevel.c **** // while(1){}
79:Core/Src/AMS_HighLevel.c **** }
205 .loc 1 79 3 view .LVU53
80:Core/Src/AMS_HighLevel.c ****
81:Core/Src/AMS_HighLevel.c **** return 0;
206 .loc 1 81 3 view .LVU54
ARM GAS /tmp/ccZdyESl.s page 6
82:Core/Src/AMS_HighLevel.c **** }...
207 .loc 1 82 1 is_stmt 0 view .LVU55
208 0070 0020 movs r0, #0
209 0072 03B0 add sp, sp, #12
210 .cfi_def_cfa_offset 12
211 @ sp needed
212 0074 30BD pop {r4, r5, pc}
213 .L14:
214 0076 00BF .align 2
215 .L13:
216 0078 00000000 .word module
217 007c 00000000 .word packetChecksumFails
218 0080 00000000 .word deviceSleeps
219 .cfi_endproc
220 .LFE124:
222 .global pollingTimes
223 .section .bss.pollingTimes,"aw",%nobits
224 .align 2
227 pollingTimes:
228 0000 00000000 .space 8
228 00000000
229 .global deviceSleeps
230 .section .bss.deviceSleeps,"aw",%nobits
233 deviceSleeps:
234 0000 00 .space 1
235 .global packetChecksumFails
236 .section .bss.packetChecksumFails,"aw",%nobits
239 packetChecksumFails:
240 0000 00 .space 1
241 .global numberofAux
242 .section .bss.numberofAux,"aw",%nobits
245 numberofAux:
246 0000 00 .space 1
247 .global numberofCells
248 .section .data.numberofCells,"aw"
251 numberofCells:
252 0000 0F .byte 15
253 .global amsov
254 .section .bss.amsov,"aw",%nobits
255 .align 1
258 amsov:
259 0000 0000 .space 2
260 .global amsuv
261 .section .bss.amsuv,"aw",%nobits
262 .align 1
265 amsuv:
266 0000 0000 .space 2
267 .global module
268 .section .bss.module,"aw",%nobits
269 .align 2
272 module:
273 0000 00000000 .space 96
273 00000000
273 00000000
273 00000000
273 00000000
274 .text
ARM GAS /tmp/ccZdyESl.s page 7
275 .Letext0:
276 .file 2 "/home/chiangni/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-
277 .file 3 "/home/chiangni/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-
278 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h"
279 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
280 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
281 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_spi.h"
282 .file 8 "Core/Inc/ADBMS_LL_Driver.h"
283 .file 9 "Core/Inc/ADBMS_Abstraction.h"
284 .file 10 "Core/Inc/AMS_HighLevel.h"
285 .file 11 "Core/Inc/24LC02.h"
286 .file 12 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
ARM GAS /tmp/ccZdyESl.s page 8
DEFINED SYMBOLS
*ABS*:00000000 AMS_HighLevel.c
/tmp/ccZdyESl.s:21 .text.AMS_Init:00000000 $t
/tmp/ccZdyESl.s:27 .text.AMS_Init:00000000 AMS_Init
/tmp/ccZdyESl.s:86 .text.AMS_Init:00000038 $d
/tmp/ccZdyESl.s:245 .bss.numberofAux:00000000 numberofAux
/tmp/ccZdyESl.s:251 .data.numberofCells:00000000 numberofCells
/tmp/ccZdyESl.s:258 .bss.amsov:00000000 amsov
/tmp/ccZdyESl.s:265 .bss.amsuv:00000000 amsuv
/tmp/ccZdyESl.s:227 .bss.pollingTimes:00000000 pollingTimes
/tmp/ccZdyESl.s:95 .text.AMS_Idle_Loop:00000000 $t
/tmp/ccZdyESl.s:101 .text.AMS_Idle_Loop:00000000 AMS_Idle_Loop
/tmp/ccZdyESl.s:216 .text.AMS_Idle_Loop:00000078 $d
/tmp/ccZdyESl.s:272 .bss.module:00000000 module
/tmp/ccZdyESl.s:239 .bss.packetChecksumFails:00000000 packetChecksumFails
/tmp/ccZdyESl.s:233 .bss.deviceSleeps:00000000 deviceSleeps
/tmp/ccZdyESl.s:224 .bss.pollingTimes:00000000 $d
/tmp/ccZdyESl.s:234 .bss.deviceSleeps:00000000 $d
/tmp/ccZdyESl.s:240 .bss.packetChecksumFails:00000000 $d
/tmp/ccZdyESl.s:246 .bss.numberofAux:00000000 $d
/tmp/ccZdyESl.s:255 .bss.amsov:00000000 $d
/tmp/ccZdyESl.s:262 .bss.amsuv:00000000 $d
/tmp/ccZdyESl.s:269 .bss.module:00000000 $d
UNDEFINED SYMBOLS
initAMS
amsConfig
HAL_GetTick
amsWakeUp
amsAuxAndStatusMeasurement
amsCellMeasurement
amsCheckUnderOverVoltage
eeprom_write
amsReset
eeprom_read