adbmsFunctionTest/build/AMS_HighLevel.lst

354 lines
15 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/ccO15vnV.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 "stm32f3xx_hal.h"
12:Core/Src/AMS_HighLevel.c **** #include <stdint.h>
13:Core/Src/AMS_HighLevel.c **** #include <string.h>
14:Core/Src/AMS_HighLevel.c ****
15:Core/Src/AMS_HighLevel.c **** Cell_Module module = {};
16:Core/Src/AMS_HighLevel.c ****
17:Core/Src/AMS_HighLevel.c **** uint16_t amsuv = 0;
18:Core/Src/AMS_HighLevel.c **** uint16_t amsov = 0;
19:Core/Src/AMS_HighLevel.c ****
20:Core/Src/AMS_HighLevel.c **** uint8_t numberofCells = 15;
21:Core/Src/AMS_HighLevel.c **** uint8_t numberofAux = 0;
22:Core/Src/AMS_HighLevel.c ****
23:Core/Src/AMS_HighLevel.c **** uint8_t packetChecksumFails = 0;
24:Core/Src/AMS_HighLevel.c **** #define MAX_PACKET_CHECKSUM_FAILS 5
25:Core/Src/AMS_HighLevel.c ****
26:Core/Src/AMS_HighLevel.c **** uint8_t deviceSleeps = 0;
27:Core/Src/AMS_HighLevel.c **** #define MAX_DEVICE_SLEEP 3 //TODO: change to correct value
28:Core/Src/AMS_HighLevel.c ****
29:Core/Src/AMS_HighLevel.c **** struct pollingTimes {
ARM GAS /tmp/ccO15vnV.s page 2
30:Core/Src/AMS_HighLevel.c **** uint32_t S_ADC_OW_CHECK;
31:Core/Src/AMS_HighLevel.c **** uint32_t TMP1075;
32:Core/Src/AMS_HighLevel.c **** };
33:Core/Src/AMS_HighLevel.c ****
34:Core/Src/AMS_HighLevel.c **** struct pollingTimes pollingTimes = {0, 0};
35:Core/Src/AMS_HighLevel.c ****
36:Core/Src/AMS_HighLevel.c **** uint8_t AMS_Init(SPI_HandleTypeDef* hspi) {
30 .loc 1 36 43 view -0
31 .cfi_startproc
32 @ args = 0, pretend = 0, frame = 0
33 @ frame_needed = 0, uses_anonymous_args = 0
34 .loc 1 36 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
37:Core/Src/AMS_HighLevel.c **** uint8_t ret = initAMS(hspi, numberofCells, numberofAux);
41 .loc 1 37 3 is_stmt 1 view .LVU2
42 .loc 1 37 17 is_stmt 0 view .LVU3
43 0002 0C4B ldr r3, .L3
44 0004 1A78 ldrb r2, [r3] @ zero_extendqisi2
45 0006 0C4B ldr r3, .L3+4
46 0008 1978 ldrb r1, [r3] @ zero_extendqisi2
47 000a FFF7FEFF bl initAMS
48 .LVL1:
49 .loc 1 37 17 view .LVU4
50 000e 0446 mov r4, r0
51 .LVL2:
38:Core/Src/AMS_HighLevel.c **** amsov = DEFAULT_OV;
52 .loc 1 38 3 is_stmt 1 view .LVU5
53 .loc 1 38 9 is_stmt 0 view .LVU6
54 0010 0A4B ldr r3, .L3+8
55 0012 40F26542 movw r2, #1125
56 0016 1A80 strh r2, [r3] @ movhi
39:Core/Src/AMS_HighLevel.c **** amsuv = DEFAULT_UV;
57 .loc 1 39 3 is_stmt 1 view .LVU7
58 .loc 1 39 9 is_stmt 0 view .LVU8
59 0018 094B ldr r3, .L3+12
60 001a 40F2A112 movw r2, #417
61 001e 1A80 strh r2, [r3] @ movhi
40:Core/Src/AMS_HighLevel.c ****
41:Core/Src/AMS_HighLevel.c **** pollingTimes = (struct pollingTimes) {HAL_GetTick(), HAL_GetTick()};
62 .loc 1 41 3 is_stmt 1 view .LVU9
63 .loc 1 41 41 is_stmt 0 view .LVU10
64 0020 FFF7FEFF bl HAL_GetTick
65 .LVL3:
66 0024 0546 mov r5, r0
67 .loc 1 41 56 discriminator 1 view .LVU11
68 0026 FFF7FEFF bl HAL_GetTick
69 .LVL4:
70 .loc 1 41 16 discriminator 2 view .LVU12
71 002a 064B ldr r3, .L3+16
72 002c 1D60 str r5, [r3]
73 002e 5860 str r0, [r3, #4]
42:Core/Src/AMS_HighLevel.c ****
ARM GAS /tmp/ccO15vnV.s page 3
43:Core/Src/AMS_HighLevel.c **** return ret;
74 .loc 1 43 3 is_stmt 1 view .LVU13
44:Core/Src/AMS_HighLevel.c **** }
75 .loc 1 44 1 is_stmt 0 view .LVU14
76 0030 2046 mov r0, r4
77 0032 38BD pop {r3, r4, r5, pc}
78 .LVL5:
79 .L4:
80 .loc 1 44 1 view .LVU15
81 .align 2
82 .L3:
83 0034 00000000 .word numberofAux
84 0038 00000000 .word numberofCells
85 003c 00000000 .word amsov
86 0040 00000000 .word amsuv
87 0044 00000000 .word pollingTimes
88 .cfi_endproc
89 .LFE123:
91 .section .text.AMS_Idle_Loop,"ax",%progbits
92 .align 1
93 .global AMS_Idle_Loop
94 .syntax unified
95 .thumb
96 .thumb_func
98 AMS_Idle_Loop:
99 .LFB124:
45:Core/Src/AMS_HighLevel.c ****
46:Core/Src/AMS_HighLevel.c **** uint8_t AMS_Idle_Loop() {
100 .loc 1 46 25 is_stmt 1 view -0
101 .cfi_startproc
102 @ args = 0, pretend = 0, frame = 0
103 @ frame_needed = 0, uses_anonymous_args = 0
104 0000 38B5 push {r3, r4, r5, lr}
105 .cfi_def_cfa_offset 16
106 .cfi_offset 3, -16
107 .cfi_offset 4, -12
108 .cfi_offset 5, -8
109 .cfi_offset 14, -4
47:Core/Src/AMS_HighLevel.c **** if (!amsWakeUp()) {
110 .loc 1 47 3 view .LVU17
111 .loc 1 47 8 is_stmt 0 view .LVU18
112 0002 FFF7FEFF bl amsWakeUp
113 .LVL6:
48:Core/Src/AMS_HighLevel.c **** //error_data.data_kind = SEK_INTERNAL_BMS_TIMEOUT; //we don't receive data for the wakeup comma
49:Core/Src/AMS_HighLevel.c **** //set_error_source(ERROR_SOURCE_INTERNAL); //so we can't tell if we timed out
50:Core/Src/AMS_HighLevel.c **** }
114 .loc 1 50 3 is_stmt 1 view .LVU19
51:Core/Src/AMS_HighLevel.c ****
52:Core/Src/AMS_HighLevel.c **** packetChecksumFails += amsAuxAndStatusMeasurement(&module);
115 .loc 1 52 3 view .LVU20
116 .loc 1 52 26 is_stmt 0 view .LVU21
117 0006 134C ldr r4, .L9
118 0008 2046 mov r0, r4
119 000a FFF7FEFF bl amsAuxAndStatusMeasurement
120 .LVL7:
121 .loc 1 52 23 discriminator 1 view .LVU22
122 000e 124B ldr r3, .L9+4
ARM GAS /tmp/ccO15vnV.s page 4
123 0010 1A78 ldrb r2, [r3] @ zero_extendqisi2
124 0012 1044 add r0, r0, r2
125 0014 1870 strb r0, [r3]
53:Core/Src/AMS_HighLevel.c ****
54:Core/Src/AMS_HighLevel.c **** if (module.status.SLEEP) {
126 .loc 1 54 3 is_stmt 1 view .LVU23
127 .loc 1 54 7 is_stmt 0 view .LVU24
128 0016 94F83930 ldrb r3, [r4, #57] @ zero_extendqisi2
129 .loc 1 54 6 view .LVU25
130 001a 13F0100F tst r3, #16
131 001e 06D0 beq .L6
55:Core/Src/AMS_HighLevel.c **** deviceSleeps++;
132 .loc 1 55 5 is_stmt 1 view .LVU26
133 .loc 1 55 17 is_stmt 0 view .LVU27
134 0020 0E4A ldr r2, .L9+8
135 0022 1378 ldrb r3, [r2] @ zero_extendqisi2
136 0024 0133 adds r3, r3, #1
137 0026 DBB2 uxtb r3, r3
138 0028 1370 strb r3, [r2]
56:Core/Src/AMS_HighLevel.c **** if (deviceSleeps > MAX_DEVICE_SLEEP) {
139 .loc 1 56 5 is_stmt 1 view .LVU28
140 .loc 1 56 8 is_stmt 0 view .LVU29
141 002a 032B cmp r3, #3
142 002c 0FD9 bls .L8
143 .L6:
57:Core/Src/AMS_HighLevel.c ****
58:Core/Src/AMS_HighLevel.c **** } else {
59:Core/Src/AMS_HighLevel.c **** amsReset();
60:Core/Src/AMS_HighLevel.c **** }
61:Core/Src/AMS_HighLevel.c **** }
62:Core/Src/AMS_HighLevel.c ****
63:Core/Src/AMS_HighLevel.c **** packetChecksumFails += amsCellMeasurement(&module);
144 .loc 1 63 3 is_stmt 1 view .LVU30
145 .loc 1 63 26 is_stmt 0 view .LVU31
146 002e 094D ldr r5, .L9
147 0030 2846 mov r0, r5
148 0032 FFF7FEFF bl amsCellMeasurement
149 .LVL8:
150 .loc 1 63 23 discriminator 1 view .LVU32
151 0036 084C ldr r4, .L9+4
152 0038 2378 ldrb r3, [r4] @ zero_extendqisi2
153 003a 1844 add r0, r0, r3
154 003c 2070 strb r0, [r4]
64:Core/Src/AMS_HighLevel.c **** packetChecksumFails += amsCheckUnderOverVoltage(&module);
155 .loc 1 64 3 is_stmt 1 view .LVU33
156 .loc 1 64 26 is_stmt 0 view .LVU34
157 003e 2846 mov r0, r5
158 0040 FFF7FEFF bl amsCheckUnderOverVoltage
159 .LVL9:
160 .loc 1 64 23 discriminator 1 view .LVU35
161 0044 2378 ldrb r3, [r4] @ zero_extendqisi2
162 0046 1844 add r0, r0, r3
163 0048 2070 strb r0, [r4]
65:Core/Src/AMS_HighLevel.c ****
66:Core/Src/AMS_HighLevel.c **** //tmp1075_measure();
67:Core/Src/AMS_HighLevel.c ****
68:Core/Src/AMS_HighLevel.c **** return 0;
ARM GAS /tmp/ccO15vnV.s page 5
164 .loc 1 68 3 is_stmt 1 view .LVU36
69:Core/Src/AMS_HighLevel.c **** }...
165 .loc 1 69 1 is_stmt 0 view .LVU37
166 004a 0020 movs r0, #0
167 004c 38BD pop {r3, r4, r5, pc}
168 .L8:
59:Core/Src/AMS_HighLevel.c **** amsReset();
169 .loc 1 59 7 is_stmt 1 view .LVU38
170 004e FFF7FEFF bl amsReset
171 .LVL10:
172 0052 ECE7 b .L6
173 .L10:
174 .align 2
175 .L9:
176 0054 00000000 .word module
177 0058 00000000 .word packetChecksumFails
178 005c 00000000 .word deviceSleeps
179 .cfi_endproc
180 .LFE124:
182 .global pollingTimes
183 .section .bss.pollingTimes,"aw",%nobits
184 .align 2
187 pollingTimes:
188 0000 00000000 .space 8
188 00000000
189 .global deviceSleeps
190 .section .bss.deviceSleeps,"aw",%nobits
193 deviceSleeps:
194 0000 00 .space 1
195 .global packetChecksumFails
196 .section .bss.packetChecksumFails,"aw",%nobits
199 packetChecksumFails:
200 0000 00 .space 1
201 .global numberofAux
202 .section .bss.numberofAux,"aw",%nobits
205 numberofAux:
206 0000 00 .space 1
207 .global numberofCells
208 .section .data.numberofCells,"aw"
211 numberofCells:
212 0000 0F .byte 15
213 .global amsov
214 .section .bss.amsov,"aw",%nobits
215 .align 1
218 amsov:
219 0000 0000 .space 2
220 .global amsuv
221 .section .bss.amsuv,"aw",%nobits
222 .align 1
225 amsuv:
226 0000 0000 .space 2
227 .global module
228 .section .bss.module,"aw",%nobits
229 .align 2
232 module:
233 0000 00000000 .space 96
233 00000000
ARM GAS /tmp/ccO15vnV.s page 6
233 00000000
233 00000000
233 00000000
234 .text
235 .Letext0:
236 .file 2 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/
237 .file 3 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/
238 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h"
239 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
240 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
241 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_spi.h"
242 .file 8 "Core/Inc/ADBMS_LL_Driver.h"
243 .file 9 "Core/Inc/ADBMS_Abstraction.h"
244 .file 10 "Core/Inc/AMS_HighLevel.h"
245 .file 11 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
ARM GAS /tmp/ccO15vnV.s page 7
DEFINED SYMBOLS
*ABS*:00000000 AMS_HighLevel.c
/tmp/ccO15vnV.s:21 .text.AMS_Init:00000000 $t
/tmp/ccO15vnV.s:27 .text.AMS_Init:00000000 AMS_Init
/tmp/ccO15vnV.s:83 .text.AMS_Init:00000034 $d
/tmp/ccO15vnV.s:205 .bss.numberofAux:00000000 numberofAux
/tmp/ccO15vnV.s:211 .data.numberofCells:00000000 numberofCells
/tmp/ccO15vnV.s:218 .bss.amsov:00000000 amsov
/tmp/ccO15vnV.s:225 .bss.amsuv:00000000 amsuv
/tmp/ccO15vnV.s:187 .bss.pollingTimes:00000000 pollingTimes
/tmp/ccO15vnV.s:92 .text.AMS_Idle_Loop:00000000 $t
/tmp/ccO15vnV.s:98 .text.AMS_Idle_Loop:00000000 AMS_Idle_Loop
/tmp/ccO15vnV.s:176 .text.AMS_Idle_Loop:00000054 $d
/tmp/ccO15vnV.s:232 .bss.module:00000000 module
/tmp/ccO15vnV.s:199 .bss.packetChecksumFails:00000000 packetChecksumFails
/tmp/ccO15vnV.s:193 .bss.deviceSleeps:00000000 deviceSleeps
/tmp/ccO15vnV.s:184 .bss.pollingTimes:00000000 $d
/tmp/ccO15vnV.s:194 .bss.deviceSleeps:00000000 $d
/tmp/ccO15vnV.s:200 .bss.packetChecksumFails:00000000 $d
/tmp/ccO15vnV.s:206 .bss.numberofAux:00000000 $d
/tmp/ccO15vnV.s:215 .bss.amsov:00000000 $d
/tmp/ccO15vnV.s:222 .bss.amsuv:00000000 $d
/tmp/ccO15vnV.s:229 .bss.module:00000000 $d
UNDEFINED SYMBOLS
initAMS
HAL_GetTick
amsWakeUp
amsAuxAndStatusMeasurement
amsCellMeasurement
amsCheckUnderOverVoltage
amsReset