804 lines
31 KiB
Plaintext
804 lines
31 KiB
Plaintext
ARM GAS /tmp/cc1QLhHg.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 "TMP1075.c"
|
||
16 .text
|
||
17 .Ltext0:
|
||
18 .cfi_sections .debug_frame
|
||
19 .file 1 "Core/Src/TMP1075.c"
|
||
20 .global tmp1075_temps
|
||
21 .section .bss.tmp1075_temps,"aw",%nobits
|
||
22 .align 2
|
||
25 tmp1075_temps:
|
||
26 0000 00000000 .space 26
|
||
26 00000000
|
||
26 00000000
|
||
26 00000000
|
||
26 00000000
|
||
27 .global tmp1075_failed_sensors
|
||
28 .section .bss.tmp1075_failed_sensors,"aw",%nobits
|
||
29 .align 2
|
||
32 tmp1075_failed_sensors:
|
||
33 0000 00000000 .space 4
|
||
34 .global nfailed_temp_sensors
|
||
35 .section .bss.nfailed_temp_sensors,"aw",%nobits
|
||
38 nfailed_temp_sensors:
|
||
39 0000 00 .space 1
|
||
40 .global hi2c
|
||
41 .section .bss.hi2c,"aw",%nobits
|
||
42 .align 2
|
||
45 hi2c:
|
||
46 0000 00000000 .space 4
|
||
47 .section .text.tmp1075_init,"ax",%progbits
|
||
48 .align 1
|
||
49 .global tmp1075_init
|
||
50 .syntax unified
|
||
51 .thumb
|
||
52 .thumb_func
|
||
54 tmp1075_init:
|
||
55 .LFB130:
|
||
1:Core/Src/TMP1075.c **** #include "TMP1075.h"
|
||
2:Core/Src/TMP1075.c **** #include "state_machine.h"
|
||
3:Core/Src/TMP1075.c ****
|
||
4:Core/Src/TMP1075.c **** #define MAX_TEMP_DISCHARGING ((int16_t)(59 / 0.0625f))
|
||
5:Core/Src/TMP1075.c **** #define MIN_TEMP_DISCHARGING ((int16_t)(-20 / 0.0625f))
|
||
6:Core/Src/TMP1075.c **** #define MAX_TEMP_CHARGING ((int16_t)(45 / 0.0625f))
|
||
7:Core/Src/TMP1075.c **** #define MIN_TEMP_CHARGING ((int16_t)(0 / 0.0625f))
|
||
ARM GAS /tmp/cc1QLhHg.s page 2
|
||
|
||
|
||
8:Core/Src/TMP1075.c ****
|
||
9:Core/Src/TMP1075.c **** #define MAX_FAILED_TEMP 2 //TODO: change value for compliance with the actual number of sensors
|
||
10:Core/Src/TMP1075.c **** // TODO: "change value for compliance with the actual number of sensors", change temps to float
|
||
11:Core/Src/TMP1075.c ****
|
||
12:Core/Src/TMP1075.c **** int16_t tmp1075_temps[N_TEMP_SENSORS] = {0};
|
||
13:Core/Src/TMP1075.c **** uint32_t tmp1075_failed_sensors = 0;
|
||
14:Core/Src/TMP1075.c **** uint8_t nfailed_temp_sensors = 0;
|
||
15:Core/Src/TMP1075.c ****
|
||
16:Core/Src/TMP1075.c **** I2C_HandleTypeDef* hi2c;
|
||
17:Core/Src/TMP1075.c ****
|
||
18:Core/Src/TMP1075.c **** HAL_StatusTypeDef tmp1075_init(I2C_HandleTypeDef* handle) {
|
||
56 .loc 1 18 59
|
||
57 .cfi_startproc
|
||
58 @ args = 0, pretend = 0, frame = 16
|
||
59 @ frame_needed = 1, uses_anonymous_args = 0
|
||
60 0000 80B5 push {r7, lr}
|
||
61 .cfi_def_cfa_offset 8
|
||
62 .cfi_offset 7, -8
|
||
63 .cfi_offset 14, -4
|
||
64 0002 84B0 sub sp, sp, #16
|
||
65 .cfi_def_cfa_offset 24
|
||
66 0004 00AF add r7, sp, #0
|
||
67 .cfi_def_cfa_register 7
|
||
68 0006 7860 str r0, [r7, #4]
|
||
19:Core/Src/TMP1075.c **** hi2c = handle;
|
||
69 .loc 1 19 8
|
||
70 0008 0D4A ldr r2, .L6
|
||
71 000a 7B68 ldr r3, [r7, #4]
|
||
72 000c 1360 str r3, [r2]
|
||
73 .LBB2:
|
||
20:Core/Src/TMP1075.c **** for (int i = 0; i < N_TEMP_SENSORS; i++) {
|
||
74 .loc 1 20 12
|
||
75 000e 0023 movs r3, #0
|
||
76 0010 FB60 str r3, [r7, #12]
|
||
77 .loc 1 20 3
|
||
78 0012 0CE0 b .L2
|
||
79 .L5:
|
||
80 .LBB3:
|
||
21:Core/Src/TMP1075.c **** HAL_StatusTypeDef status = tmp1075_sensor_init(i);
|
||
81 .loc 1 21 32
|
||
82 0014 F868 ldr r0, [r7, #12]
|
||
83 0016 FFF7FEFF bl tmp1075_sensor_init
|
||
84 001a 0346 mov r3, r0
|
||
85 001c FB72 strb r3, [r7, #11]
|
||
22:Core/Src/TMP1075.c **** if (status != HAL_OK) {
|
||
86 .loc 1 22 8
|
||
87 001e FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
|
||
88 0020 002B cmp r3, #0
|
||
89 0022 01D0 beq .L3
|
||
23:Core/Src/TMP1075.c **** return status;
|
||
90 .loc 1 23 14
|
||
91 0024 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2
|
||
92 0026 06E0 b .L4
|
||
93 .L3:
|
||
94 .LBE3:
|
||
20:Core/Src/TMP1075.c **** HAL_StatusTypeDef status = tmp1075_sensor_init(i);
|
||
95 .loc 1 20 40 discriminator 2
|
||
ARM GAS /tmp/cc1QLhHg.s page 3
|
||
|
||
|
||
96 0028 FB68 ldr r3, [r7, #12]
|
||
97 002a 0133 adds r3, r3, #1
|
||
98 002c FB60 str r3, [r7, #12]
|
||
99 .L2:
|
||
20:Core/Src/TMP1075.c **** HAL_StatusTypeDef status = tmp1075_sensor_init(i);
|
||
100 .loc 1 20 21 discriminator 1
|
||
101 002e FB68 ldr r3, [r7, #12]
|
||
102 0030 0C2B cmp r3, #12
|
||
103 0032 EFDD ble .L5
|
||
104 .LBE2:
|
||
24:Core/Src/TMP1075.c **** }
|
||
25:Core/Src/TMP1075.c **** }
|
||
26:Core/Src/TMP1075.c **** return HAL_OK;
|
||
105 .loc 1 26 10
|
||
106 0034 0023 movs r3, #0
|
||
107 .L4:
|
||
27:Core/Src/TMP1075.c **** }
|
||
108 .loc 1 27 1
|
||
109 0036 1846 mov r0, r3
|
||
110 0038 1037 adds r7, r7, #16
|
||
111 .cfi_def_cfa_offset 8
|
||
112 003a BD46 mov sp, r7
|
||
113 .cfi_def_cfa_register 13
|
||
114 @ sp needed
|
||
115 003c 80BD pop {r7, pc}
|
||
116 .L7:
|
||
117 003e 00BF .align 2
|
||
118 .L6:
|
||
119 0040 00000000 .word hi2c
|
||
120 .cfi_endproc
|
||
121 .LFE130:
|
||
123 .section .text.handle_over_maxtemp,"ax",%progbits
|
||
124 .align 1
|
||
125 .global handle_over_maxtemp
|
||
126 .syntax unified
|
||
127 .thumb
|
||
128 .thumb_func
|
||
130 handle_over_maxtemp:
|
||
131 .LFB131:
|
||
28:Core/Src/TMP1075.c ****
|
||
29:Core/Src/TMP1075.c **** void handle_over_maxtemp(uint8_t index, uint16_t value) {
|
||
132 .loc 1 29 57
|
||
133 .cfi_startproc
|
||
134 @ args = 0, pretend = 0, frame = 16
|
||
135 @ frame_needed = 1, uses_anonymous_args = 0
|
||
136 0000 B0B5 push {r4, r5, r7, lr}
|
||
137 .cfi_def_cfa_offset 16
|
||
138 .cfi_offset 4, -16
|
||
139 .cfi_offset 5, -12
|
||
140 .cfi_offset 7, -8
|
||
141 .cfi_offset 14, -4
|
||
142 0002 86B0 sub sp, sp, #24
|
||
143 .cfi_def_cfa_offset 40
|
||
144 0004 02AF add r7, sp, #8
|
||
145 .cfi_def_cfa 7, 32
|
||
146 0006 0346 mov r3, r0
|
||
147 0008 0A46 mov r2, r1
|
||
ARM GAS /tmp/cc1QLhHg.s page 4
|
||
|
||
|
||
148 000a FB71 strb r3, [r7, #7]
|
||
149 000c 1346 mov r3, r2 @ movhi
|
||
150 000e BB80 strh r3, [r7, #4] @ movhi
|
||
30:Core/Src/TMP1075.c **** set_error_source(ERROR_SOURCE_TEMPERATURES);
|
||
151 .loc 1 30 3
|
||
152 0010 0220 movs r0, #2
|
||
153 0012 FFF7FEFF bl set_error_source
|
||
31:Core/Src/TMP1075.c **** error_data.data_kind = SEK_OVERTEMP;
|
||
154 .loc 1 31 24
|
||
155 0016 0C4B ldr r3, .L9
|
||
156 0018 0022 movs r2, #0
|
||
157 001a 5A80 strh r2, [r3, #2] @ movhi
|
||
32:Core/Src/TMP1075.c **** error_data.data[0] = index;
|
||
158 .loc 1 32 22
|
||
159 001c 0A4A ldr r2, .L9
|
||
160 001e FB79 ldrb r3, [r7, #7]
|
||
161 0020 1371 strb r3, [r2, #4]
|
||
33:Core/Src/TMP1075.c **** uint8_t* ptr = &error_data.data[1];
|
||
162 .loc 1 33 12
|
||
163 0022 0A4B ldr r3, .L9+4
|
||
164 0024 FB60 str r3, [r7, #12]
|
||
34:Core/Src/TMP1075.c **** ptr = ftcan_marshal_unsigned(ptr, value, 2);
|
||
165 .loc 1 34 9
|
||
166 0026 BB88 ldrh r3, [r7, #4]
|
||
167 0028 0022 movs r2, #0
|
||
168 002a 1C46 mov r4, r3
|
||
169 002c 1546 mov r5, r2
|
||
170 002e 0223 movs r3, #2
|
||
171 0030 0093 str r3, [sp]
|
||
172 0032 2246 mov r2, r4
|
||
173 0034 2B46 mov r3, r5
|
||
174 0036 F868 ldr r0, [r7, #12]
|
||
175 0038 FFF7FEFF bl ftcan_marshal_unsigned
|
||
176 003c F860 str r0, [r7, #12]
|
||
35:Core/Src/TMP1075.c **** }
|
||
177 .loc 1 35 1
|
||
178 003e 00BF nop
|
||
179 0040 1037 adds r7, r7, #16
|
||
180 .cfi_def_cfa_offset 16
|
||
181 0042 BD46 mov sp, r7
|
||
182 .cfi_def_cfa_register 13
|
||
183 @ sp needed
|
||
184 0044 B0BD pop {r4, r5, r7, pc}
|
||
185 .L10:
|
||
186 0046 00BF .align 2
|
||
187 .L9:
|
||
188 0048 00000000 .word error_data
|
||
189 004c 05000000 .word error_data+5
|
||
190 .cfi_endproc
|
||
191 .LFE131:
|
||
193 .section .text.tmp1075_measure,"ax",%progbits
|
||
194 .align 1
|
||
195 .global tmp1075_measure
|
||
196 .syntax unified
|
||
197 .thumb
|
||
198 .thumb_func
|
||
200 tmp1075_measure:
|
||
ARM GAS /tmp/cc1QLhHg.s page 5
|
||
|
||
|
||
201 .LFB132:
|
||
36:Core/Src/TMP1075.c ****
|
||
37:Core/Src/TMP1075.c **** HAL_StatusTypeDef tmp1075_measure() {
|
||
202 .loc 1 37 37
|
||
203 .cfi_startproc
|
||
204 @ args = 0, pretend = 0, frame = 16
|
||
205 @ frame_needed = 1, uses_anonymous_args = 0
|
||
206 0000 80B5 push {r7, lr}
|
||
207 .cfi_def_cfa_offset 8
|
||
208 .cfi_offset 7, -8
|
||
209 .cfi_offset 14, -4
|
||
210 0002 84B0 sub sp, sp, #16
|
||
211 .cfi_def_cfa_offset 24
|
||
212 0004 00AF add r7, sp, #0
|
||
213 .cfi_def_cfa_register 7
|
||
38:Core/Src/TMP1075.c **** int err = 0;
|
||
214 .loc 1 38 7
|
||
215 0006 0023 movs r3, #0
|
||
216 0008 FB60 str r3, [r7, #12]
|
||
39:Core/Src/TMP1075.c **** int temp_error = 0;
|
||
217 .loc 1 39 7
|
||
218 000a 0023 movs r3, #0
|
||
219 000c BB60 str r3, [r7, #8]
|
||
220 .LBB4:
|
||
40:Core/Src/TMP1075.c **** for (int i = 0; i < N_TEMP_SENSORS; i++) {
|
||
221 .loc 1 40 12
|
||
222 000e 0023 movs r3, #0
|
||
223 0010 7B60 str r3, [r7, #4]
|
||
224 .loc 1 40 3
|
||
225 0012 9FE0 b .L12
|
||
226 .L23:
|
||
41:Core/Src/TMP1075.c **** if (tmp1075_sensor_read(i, &tmp1075_temps[i]) != HAL_OK || (tmp1075_temps[i] & 0x000F) != 0) {
|
||
227 .loc 1 41 9
|
||
228 0014 7B68 ldr r3, [r7, #4]
|
||
229 0016 5B00 lsls r3, r3, #1
|
||
230 0018 5F4A ldr r2, .L27
|
||
231 001a 1344 add r3, r3, r2
|
||
232 001c 1946 mov r1, r3
|
||
233 001e 7868 ldr r0, [r7, #4]
|
||
234 0020 FFF7FEFF bl tmp1075_sensor_read
|
||
235 0024 0346 mov r3, r0
|
||
236 .loc 1 41 8 discriminator 1
|
||
237 0026 002B cmp r3, #0
|
||
238 0028 08D1 bne .L13
|
||
239 .loc 1 41 78 discriminator 1
|
||
240 002a 5B4A ldr r2, .L27
|
||
241 002c 7B68 ldr r3, [r7, #4]
|
||
242 002e 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
243 .loc 1 41 82 discriminator 1
|
||
244 0032 9BB2 uxth r3, r3
|
||
245 0034 03F00F03 and r3, r3, #15
|
||
246 .loc 1 41 61 discriminator 1
|
||
247 0038 002B cmp r3, #0
|
||
248 003a 12D0 beq .L14
|
||
249 .L13:
|
||
42:Core/Src/TMP1075.c **** tmp1075_failed_sensors |= 1 << i;
|
||
250 .loc 1 42 35
|
||
ARM GAS /tmp/cc1QLhHg.s page 6
|
||
|
||
|
||
251 003c 0122 movs r2, #1
|
||
252 003e 7B68 ldr r3, [r7, #4]
|
||
253 0040 02FA03F3 lsl r3, r2, r3
|
||
254 0044 1A46 mov r2, r3
|
||
255 .loc 1 42 30
|
||
256 0046 554B ldr r3, .L27+4
|
||
257 0048 1B68 ldr r3, [r3]
|
||
258 004a 1343 orrs r3, r3, r2
|
||
259 004c 534A ldr r2, .L27+4
|
||
260 004e 1360 str r3, [r2]
|
||
43:Core/Src/TMP1075.c **** nfailed_temp_sensors++;
|
||
261 .loc 1 43 27
|
||
262 0050 534B ldr r3, .L27+8
|
||
263 0052 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
264 0054 0133 adds r3, r3, #1
|
||
265 0056 DAB2 uxtb r2, r3
|
||
266 0058 514B ldr r3, .L27+8
|
||
267 005a 1A70 strb r2, [r3]
|
||
44:Core/Src/TMP1075.c **** err = 1;
|
||
268 .loc 1 44 11
|
||
269 005c 0123 movs r3, #1
|
||
270 005e FB60 str r3, [r7, #12]
|
||
271 0060 75E0 b .L15
|
||
272 .L14:
|
||
45:Core/Src/TMP1075.c **** } else {
|
||
46:Core/Src/TMP1075.c **** tmp1075_temps[i] >>= 4;
|
||
273 .loc 1 46 20
|
||
274 0062 4D4A ldr r2, .L27
|
||
275 0064 7B68 ldr r3, [r7, #4]
|
||
276 0066 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
277 .loc 1 46 24
|
||
278 006a 1B11 asrs r3, r3, #4
|
||
279 006c 19B2 sxth r1, r3
|
||
280 006e 4A4A ldr r2, .L27
|
||
281 0070 7B68 ldr r3, [r7, #4]
|
||
282 0072 22F81310 strh r1, [r2, r3, lsl #1] @ movhi
|
||
47:Core/Src/TMP1075.c **** tmp1075_failed_sensors &= ~(1 << i);
|
||
283 .loc 1 47 37
|
||
284 0076 0122 movs r2, #1
|
||
285 0078 7B68 ldr r3, [r7, #4]
|
||
286 007a 02FA03F3 lsl r3, r2, r3
|
||
287 .loc 1 47 33
|
||
288 007e DB43 mvns r3, r3
|
||
289 0080 1A46 mov r2, r3
|
||
290 .loc 1 47 30
|
||
291 0082 464B ldr r3, .L27+4
|
||
292 0084 1B68 ldr r3, [r3]
|
||
293 0086 1340 ands r3, r3, r2
|
||
294 0088 444A ldr r2, .L27+4
|
||
295 008a 1360 str r3, [r2]
|
||
48:Core/Src/TMP1075.c **** if (state.current_state == STATE_CHARGING || state.current_state == STATE_CHARGING_PRECHARGE)
|
||
296 .loc 1 48 16
|
||
297 008c 454B ldr r3, .L27+12
|
||
298 008e 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
299 .loc 1 48 10
|
||
300 0090 062B cmp r3, #6
|
||
301 0092 03D0 beq .L16
|
||
ARM GAS /tmp/cc1QLhHg.s page 7
|
||
|
||
|
||
302 .loc 1 48 57 discriminator 1
|
||
303 0094 434B ldr r3, .L27+12
|
||
304 0096 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
305 .loc 1 48 49 discriminator 1
|
||
306 0098 052B cmp r3, #5
|
||
307 009a 14D1 bne .L17
|
||
308 .L16:
|
||
49:Core/Src/TMP1075.c **** if (tmp1075_temps[i] >= MAX_TEMP_CHARGING) {
|
||
309 .loc 1 49 26
|
||
310 009c 3E4A ldr r2, .L27
|
||
311 009e 7B68 ldr r3, [r7, #4]
|
||
312 00a0 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
313 .loc 1 49 12
|
||
314 00a4 B3F5347F cmp r3, #720
|
||
315 00a8 21DB blt .L19
|
||
50:Core/Src/TMP1075.c **** temp_error = 1;
|
||
316 .loc 1 50 22
|
||
317 00aa 0123 movs r3, #1
|
||
318 00ac BB60 str r3, [r7, #8]
|
||
51:Core/Src/TMP1075.c **** handle_over_maxtemp(i, tmp1075_temps[i]);
|
||
319 .loc 1 51 11
|
||
320 00ae 7B68 ldr r3, [r7, #4]
|
||
321 00b0 DAB2 uxtb r2, r3
|
||
322 .loc 1 51 47
|
||
323 00b2 3949 ldr r1, .L27
|
||
324 00b4 7B68 ldr r3, [r7, #4]
|
||
325 00b6 31F91330 ldrsh r3, [r1, r3, lsl #1]
|
||
326 .loc 1 51 11
|
||
327 00ba 9BB2 uxth r3, r3
|
||
328 00bc 1946 mov r1, r3
|
||
329 00be 1046 mov r0, r2
|
||
330 00c0 FFF7FEFF bl handle_over_maxtemp
|
||
49:Core/Src/TMP1075.c **** if (tmp1075_temps[i] >= MAX_TEMP_CHARGING) {
|
||
331 .loc 1 49 12
|
||
332 00c4 13E0 b .L19
|
||
333 .L17:
|
||
52:Core/Src/TMP1075.c **** }
|
||
53:Core/Src/TMP1075.c **** } else {
|
||
54:Core/Src/TMP1075.c **** if (tmp1075_temps[i] >= MAX_TEMP_DISCHARGING) {
|
||
334 .loc 1 54 26
|
||
335 00c6 344A ldr r2, .L27
|
||
336 00c8 7B68 ldr r3, [r7, #4]
|
||
337 00ca 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
338 .loc 1 54 12
|
||
339 00ce B3F56C7F cmp r3, #944
|
||
340 00d2 0CDB blt .L19
|
||
55:Core/Src/TMP1075.c **** temp_error = 1;
|
||
341 .loc 1 55 22
|
||
342 00d4 0123 movs r3, #1
|
||
343 00d6 BB60 str r3, [r7, #8]
|
||
56:Core/Src/TMP1075.c **** handle_over_maxtemp(i, tmp1075_temps[i]);
|
||
344 .loc 1 56 11
|
||
345 00d8 7B68 ldr r3, [r7, #4]
|
||
346 00da DAB2 uxtb r2, r3
|
||
347 .loc 1 56 47
|
||
348 00dc 2E49 ldr r1, .L27
|
||
349 00de 7B68 ldr r3, [r7, #4]
|
||
ARM GAS /tmp/cc1QLhHg.s page 8
|
||
|
||
|
||
350 00e0 31F91330 ldrsh r3, [r1, r3, lsl #1]
|
||
351 .loc 1 56 11
|
||
352 00e4 9BB2 uxth r3, r3
|
||
353 00e6 1946 mov r1, r3
|
||
354 00e8 1046 mov r0, r2
|
||
355 00ea FFF7FEFF bl handle_over_maxtemp
|
||
356 .L19:
|
||
57:Core/Src/TMP1075.c **** }
|
||
58:Core/Src/TMP1075.c **** }
|
||
59:Core/Src/TMP1075.c ****
|
||
60:Core/Src/TMP1075.c **** if (state.current_state == STATE_CHARGING || state.current_state == STATE_CHARGING_PRECHARGE)
|
||
357 .loc 1 60 16
|
||
358 00ee 2D4B ldr r3, .L27+12
|
||
359 00f0 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
360 .loc 1 60 10
|
||
361 00f2 062B cmp r3, #6
|
||
362 00f4 03D0 beq .L20
|
||
363 .loc 1 60 57 discriminator 1
|
||
364 00f6 2B4B ldr r3, .L27+12
|
||
365 00f8 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
366 .loc 1 60 49 discriminator 1
|
||
367 00fa 052B cmp r3, #5
|
||
368 00fc 13D1 bne .L21
|
||
369 .L20:
|
||
61:Core/Src/TMP1075.c **** if (tmp1075_temps[i] <= MIN_TEMP_CHARGING) {
|
||
370 .loc 1 61 26
|
||
371 00fe 264A ldr r2, .L27
|
||
372 0100 7B68 ldr r3, [r7, #4]
|
||
373 0102 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
374 .loc 1 61 12
|
||
375 0106 002B cmp r3, #0
|
||
376 0108 21DC bgt .L15
|
||
62:Core/Src/TMP1075.c **** temp_error = 1;
|
||
377 .loc 1 62 22
|
||
378 010a 0123 movs r3, #1
|
||
379 010c BB60 str r3, [r7, #8]
|
||
63:Core/Src/TMP1075.c **** handle_over_maxtemp(i, tmp1075_temps[i]);
|
||
380 .loc 1 63 11
|
||
381 010e 7B68 ldr r3, [r7, #4]
|
||
382 0110 DAB2 uxtb r2, r3
|
||
383 .loc 1 63 47
|
||
384 0112 2149 ldr r1, .L27
|
||
385 0114 7B68 ldr r3, [r7, #4]
|
||
386 0116 31F91330 ldrsh r3, [r1, r3, lsl #1]
|
||
387 .loc 1 63 11
|
||
388 011a 9BB2 uxth r3, r3
|
||
389 011c 1946 mov r1, r3
|
||
390 011e 1046 mov r0, r2
|
||
391 0120 FFF7FEFF bl handle_over_maxtemp
|
||
61:Core/Src/TMP1075.c **** if (tmp1075_temps[i] <= MIN_TEMP_CHARGING) {
|
||
392 .loc 1 61 12
|
||
393 0124 13E0 b .L15
|
||
394 .L21:
|
||
64:Core/Src/TMP1075.c **** }
|
||
65:Core/Src/TMP1075.c **** } else {
|
||
66:Core/Src/TMP1075.c **** if (tmp1075_temps[i] <= MIN_TEMP_DISCHARGING) {
|
||
395 .loc 1 66 26
|
||
ARM GAS /tmp/cc1QLhHg.s page 9
|
||
|
||
|
||
396 0126 1C4A ldr r2, .L27
|
||
397 0128 7B68 ldr r3, [r7, #4]
|
||
398 012a 32F91330 ldrsh r3, [r2, r3, lsl #1]
|
||
399 .loc 1 66 12
|
||
400 012e 13F5A07F cmn r3, #320
|
||
401 0132 0CDC bgt .L15
|
||
67:Core/Src/TMP1075.c **** temp_error = 1;
|
||
402 .loc 1 67 22
|
||
403 0134 0123 movs r3, #1
|
||
404 0136 BB60 str r3, [r7, #8]
|
||
68:Core/Src/TMP1075.c **** handle_over_maxtemp(i, tmp1075_temps[i]);
|
||
405 .loc 1 68 11
|
||
406 0138 7B68 ldr r3, [r7, #4]
|
||
407 013a DAB2 uxtb r2, r3
|
||
408 .loc 1 68 47
|
||
409 013c 1649 ldr r1, .L27
|
||
410 013e 7B68 ldr r3, [r7, #4]
|
||
411 0140 31F91330 ldrsh r3, [r1, r3, lsl #1]
|
||
412 .loc 1 68 11
|
||
413 0144 9BB2 uxth r3, r3
|
||
414 0146 1946 mov r1, r3
|
||
415 0148 1046 mov r0, r2
|
||
416 014a FFF7FEFF bl handle_over_maxtemp
|
||
417 .L15:
|
||
40:Core/Src/TMP1075.c **** if (tmp1075_sensor_read(i, &tmp1075_temps[i]) != HAL_OK || (tmp1075_temps[i] & 0x000F) != 0) {
|
||
418 .loc 1 40 40 discriminator 2
|
||
419 014e 7B68 ldr r3, [r7, #4]
|
||
420 0150 0133 adds r3, r3, #1
|
||
421 0152 7B60 str r3, [r7, #4]
|
||
422 .L12:
|
||
40:Core/Src/TMP1075.c **** if (tmp1075_sensor_read(i, &tmp1075_temps[i]) != HAL_OK || (tmp1075_temps[i] & 0x000F) != 0) {
|
||
423 .loc 1 40 21 discriminator 1
|
||
424 0154 7B68 ldr r3, [r7, #4]
|
||
425 0156 0C2B cmp r3, #12
|
||
426 0158 7FF75CAF ble .L23
|
||
427 .LBE4:
|
||
69:Core/Src/TMP1075.c **** }
|
||
70:Core/Src/TMP1075.c **** }
|
||
71:Core/Src/TMP1075.c **** }
|
||
72:Core/Src/TMP1075.c **** }
|
||
73:Core/Src/TMP1075.c **** if (nfailed_temp_sensors > MAX_FAILED_TEMP) {
|
||
428 .loc 1 73 28
|
||
429 015c 104B ldr r3, .L27+8
|
||
430 015e 1B78 ldrb r3, [r3] @ zero_extendqisi2
|
||
431 .loc 1 73 6
|
||
432 0160 022B cmp r3, #2
|
||
433 0162 06D9 bls .L24
|
||
74:Core/Src/TMP1075.c **** error_data.data_kind = SEK_TOO_FEW_TEMPS;
|
||
434 .loc 1 74 26
|
||
435 0164 104B ldr r3, .L27+16
|
||
436 0166 0422 movs r2, #4
|
||
437 0168 5A80 strh r2, [r3, #2] @ movhi
|
||
75:Core/Src/TMP1075.c **** set_error_source(ERROR_SOURCE_TEMPERATURES);
|
||
438 .loc 1 75 5
|
||
439 016a 0220 movs r0, #2
|
||
440 016c FFF7FEFF bl set_error_source
|
||
441 0170 05E0 b .L25
|
||
ARM GAS /tmp/cc1QLhHg.s page 10
|
||
|
||
|
||
442 .L24:
|
||
76:Core/Src/TMP1075.c **** } else if (!temp_error) {
|
||
443 .loc 1 76 13
|
||
444 0172 BB68 ldr r3, [r7, #8]
|
||
445 0174 002B cmp r3, #0
|
||
446 0176 02D1 bne .L25
|
||
77:Core/Src/TMP1075.c **** clear_error_source(ERROR_SOURCE_TEMPERATURES);
|
||
447 .loc 1 77 5
|
||
448 0178 0220 movs r0, #2
|
||
449 017a FFF7FEFF bl clear_error_source
|
||
450 .L25:
|
||
78:Core/Src/TMP1075.c **** }
|
||
79:Core/Src/TMP1075.c **** nfailed_temp_sensors = 0;
|
||
451 .loc 1 79 24
|
||
452 017e 084B ldr r3, .L27+8
|
||
453 0180 0022 movs r2, #0
|
||
454 0182 1A70 strb r2, [r3]
|
||
80:Core/Src/TMP1075.c **** return err ? HAL_ERROR : HAL_OK;
|
||
455 .loc 1 80 26
|
||
456 0184 FB68 ldr r3, [r7, #12]
|
||
457 0186 002B cmp r3, #0
|
||
458 0188 14BF ite ne
|
||
459 018a 0123 movne r3, #1
|
||
460 018c 0023 moveq r3, #0
|
||
461 018e DBB2 uxtb r3, r3
|
||
81:Core/Src/TMP1075.c **** }
|
||
462 .loc 1 81 1
|
||
463 0190 1846 mov r0, r3
|
||
464 0192 1037 adds r7, r7, #16
|
||
465 .cfi_def_cfa_offset 8
|
||
466 0194 BD46 mov sp, r7
|
||
467 .cfi_def_cfa_register 13
|
||
468 @ sp needed
|
||
469 0196 80BD pop {r7, pc}
|
||
470 .L28:
|
||
471 .align 2
|
||
472 .L27:
|
||
473 0198 00000000 .word tmp1075_temps
|
||
474 019c 00000000 .word tmp1075_failed_sensors
|
||
475 01a0 00000000 .word nfailed_temp_sensors
|
||
476 01a4 00000000 .word state
|
||
477 01a8 00000000 .word error_data
|
||
478 .cfi_endproc
|
||
479 .LFE132:
|
||
481 .section .text.tmp1075_sensor_init,"ax",%progbits
|
||
482 .align 1
|
||
483 .global tmp1075_sensor_init
|
||
484 .syntax unified
|
||
485 .thumb
|
||
486 .thumb_func
|
||
488 tmp1075_sensor_init:
|
||
489 .LFB133:
|
||
82:Core/Src/TMP1075.c ****
|
||
83:Core/Src/TMP1075.c **** HAL_StatusTypeDef tmp1075_sensor_init(int n) {
|
||
490 .loc 1 83 46
|
||
491 .cfi_startproc
|
||
492 @ args = 0, pretend = 0, frame = 16
|
||
ARM GAS /tmp/cc1QLhHg.s page 11
|
||
|
||
|
||
493 @ frame_needed = 1, uses_anonymous_args = 0
|
||
494 0000 80B5 push {r7, lr}
|
||
495 .cfi_def_cfa_offset 8
|
||
496 .cfi_offset 7, -8
|
||
497 .cfi_offset 14, -4
|
||
498 0002 86B0 sub sp, sp, #24
|
||
499 .cfi_def_cfa_offset 32
|
||
500 0004 02AF add r7, sp, #8
|
||
501 .cfi_def_cfa 7, 24
|
||
502 0006 7860 str r0, [r7, #4]
|
||
84:Core/Src/TMP1075.c **** uint16_t addr = (0b1000000 | n) << 1;
|
||
503 .loc 1 84 35
|
||
504 0008 7B68 ldr r3, [r7, #4]
|
||
505 000a 1BB2 sxth r3, r3
|
||
506 000c 5B00 lsls r3, r3, #1
|
||
507 000e 1BB2 sxth r3, r3
|
||
508 0010 43F08003 orr r3, r3, #128
|
||
509 0014 1BB2 sxth r3, r3
|
||
510 .loc 1 84 12
|
||
511 0016 FB81 strh r3, [r7, #14] @ movhi
|
||
85:Core/Src/TMP1075.c **** uint8_t data[] = {0};
|
||
512 .loc 1 85 11
|
||
513 0018 0023 movs r3, #0
|
||
514 001a 3B73 strb r3, [r7, #12]
|
||
86:Core/Src/TMP1075.c **** return HAL_I2C_Master_Transmit(hi2c, addr, data, sizeof(data), 100);
|
||
515 .loc 1 86 10
|
||
516 001c 074B ldr r3, .L31
|
||
517 001e 1868 ldr r0, [r3]
|
||
518 0020 07F10C02 add r2, r7, #12
|
||
519 0024 F989 ldrh r1, [r7, #14]
|
||
520 0026 6423 movs r3, #100
|
||
521 0028 0093 str r3, [sp]
|
||
522 002a 0123 movs r3, #1
|
||
523 002c FFF7FEFF bl HAL_I2C_Master_Transmit
|
||
524 0030 0346 mov r3, r0
|
||
87:Core/Src/TMP1075.c **** }
|
||
525 .loc 1 87 1
|
||
526 0032 1846 mov r0, r3
|
||
527 0034 1037 adds r7, r7, #16
|
||
528 .cfi_def_cfa_offset 8
|
||
529 0036 BD46 mov sp, r7
|
||
530 .cfi_def_cfa_register 13
|
||
531 @ sp needed
|
||
532 0038 80BD pop {r7, pc}
|
||
533 .L32:
|
||
534 003a 00BF .align 2
|
||
535 .L31:
|
||
536 003c 00000000 .word hi2c
|
||
537 .cfi_endproc
|
||
538 .LFE133:
|
||
540 .section .text.tmp1075_sensor_read,"ax",%progbits
|
||
541 .align 1
|
||
542 .global tmp1075_sensor_read
|
||
543 .syntax unified
|
||
544 .thumb
|
||
545 .thumb_func
|
||
547 tmp1075_sensor_read:
|
||
ARM GAS /tmp/cc1QLhHg.s page 12
|
||
|
||
|
||
548 .LFB134:
|
||
88:Core/Src/TMP1075.c ****
|
||
89:Core/Src/TMP1075.c **** HAL_StatusTypeDef tmp1075_sensor_read(int n, int16_t* res) {
|
||
549 .loc 1 89 60
|
||
550 .cfi_startproc
|
||
551 @ args = 0, pretend = 0, frame = 16
|
||
552 @ frame_needed = 1, uses_anonymous_args = 0
|
||
553 0000 80B5 push {r7, lr}
|
||
554 .cfi_def_cfa_offset 8
|
||
555 .cfi_offset 7, -8
|
||
556 .cfi_offset 14, -4
|
||
557 0002 86B0 sub sp, sp, #24
|
||
558 .cfi_def_cfa_offset 32
|
||
559 0004 02AF add r7, sp, #8
|
||
560 .cfi_def_cfa 7, 24
|
||
561 0006 7860 str r0, [r7, #4]
|
||
562 0008 3960 str r1, [r7]
|
||
90:Core/Src/TMP1075.c **** uint16_t addr = (0b1000000 | n) << 1;
|
||
563 .loc 1 90 35
|
||
564 000a 7B68 ldr r3, [r7, #4]
|
||
565 000c 1BB2 sxth r3, r3
|
||
566 000e 5B00 lsls r3, r3, #1
|
||
567 0010 1BB2 sxth r3, r3
|
||
568 0012 43F08003 orr r3, r3, #128
|
||
569 0016 1BB2 sxth r3, r3
|
||
570 .loc 1 90 12
|
||
571 0018 FB81 strh r3, [r7, #14] @ movhi
|
||
91:Core/Src/TMP1075.c **** addr |= 1; // Read
|
||
572 .loc 1 91 8
|
||
573 001a FB89 ldrh r3, [r7, #14] @ movhi
|
||
574 001c 43F00103 orr r3, r3, #1
|
||
575 0020 FB81 strh r3, [r7, #14] @ movhi
|
||
92:Core/Src/TMP1075.c **** uint8_t result[2];
|
||
93:Core/Src/TMP1075.c **** HAL_StatusTypeDef status =
|
||
94:Core/Src/TMP1075.c **** HAL_I2C_Master_Receive(hi2c, addr, result, sizeof(result), 5); //5ms timeout for failure (cas
|
||
576 .loc 1 94 7
|
||
577 0022 0F4B ldr r3, .L36
|
||
578 0024 1868 ldr r0, [r3]
|
||
579 0026 07F10802 add r2, r7, #8
|
||
580 002a F989 ldrh r1, [r7, #14]
|
||
581 002c 0523 movs r3, #5
|
||
582 002e 0093 str r3, [sp]
|
||
583 0030 0223 movs r3, #2
|
||
584 0032 FFF7FEFF bl HAL_I2C_Master_Receive
|
||
585 0036 0346 mov r3, r0
|
||
586 0038 7B73 strb r3, [r7, #13]
|
||
95:Core/Src/TMP1075.c **** if (status == HAL_OK) {
|
||
587 .loc 1 95 6
|
||
588 003a 7B7B ldrb r3, [r7, #13] @ zero_extendqisi2
|
||
589 003c 002B cmp r3, #0
|
||
590 003e 09D1 bne .L34
|
||
96:Core/Src/TMP1075.c **** *res = (result[0] << 8) | result[1];
|
||
591 .loc 1 96 19
|
||
592 0040 3B7A ldrb r3, [r7, #8] @ zero_extendqisi2
|
||
593 .loc 1 96 29
|
||
594 0042 1BB2 sxth r3, r3
|
||
595 0044 1B02 lsls r3, r3, #8
|
||
ARM GAS /tmp/cc1QLhHg.s page 13
|
||
|
||
|
||
596 0046 1AB2 sxth r2, r3
|
||
597 .loc 1 96 37
|
||
598 0048 7B7A ldrb r3, [r7, #9] @ zero_extendqisi2
|
||
599 004a 1BB2 sxth r3, r3
|
||
600 .loc 1 96 29
|
||
601 004c 1343 orrs r3, r3, r2
|
||
602 004e 1AB2 sxth r2, r3
|
||
603 .loc 1 96 10
|
||
604 0050 3B68 ldr r3, [r7]
|
||
605 0052 1A80 strh r2, [r3] @ movhi
|
||
606 .L34:
|
||
97:Core/Src/TMP1075.c **** }
|
||
98:Core/Src/TMP1075.c **** return status;
|
||
607 .loc 1 98 10
|
||
608 0054 7B7B ldrb r3, [r7, #13] @ zero_extendqisi2
|
||
99:Core/Src/TMP1075.c **** }
|
||
609 .loc 1 99 1
|
||
610 0056 1846 mov r0, r3
|
||
611 0058 1037 adds r7, r7, #16
|
||
612 .cfi_def_cfa_offset 8
|
||
613 005a BD46 mov sp, r7
|
||
614 .cfi_def_cfa_register 13
|
||
615 @ sp needed
|
||
616 005c 80BD pop {r7, pc}
|
||
617 .L37:
|
||
618 005e 00BF .align 2
|
||
619 .L36:
|
||
620 0060 00000000 .word hi2c
|
||
621 .cfi_endproc
|
||
622 .LFE134:
|
||
624 .text
|
||
625 .Letext0:
|
||
626 .file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
|
||
627 .file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
|
||
628 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
|
||
629 .file 5 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/lib/gcc/arm-none-e
|
||
630 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
|
||
631 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
|
||
632 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h"
|
||
633 .file 9 "Core/Inc/errors.h"
|
||
634 .file 10 "Core/Inc/TMP1075.h"
|
||
635 .file 11 "Core/Inc/state_machine.h"
|
||
636 .file 12 "Core/Lib/can-halal/can-halal.h"
|
||
ARM GAS /tmp/cc1QLhHg.s page 14
|
||
|
||
|
||
DEFINED SYMBOLS
|
||
*ABS*:00000000 TMP1075.c
|
||
/tmp/cc1QLhHg.s:25 .bss.tmp1075_temps:00000000 tmp1075_temps
|
||
/tmp/cc1QLhHg.s:22 .bss.tmp1075_temps:00000000 $d
|
||
/tmp/cc1QLhHg.s:32 .bss.tmp1075_failed_sensors:00000000 tmp1075_failed_sensors
|
||
/tmp/cc1QLhHg.s:29 .bss.tmp1075_failed_sensors:00000000 $d
|
||
/tmp/cc1QLhHg.s:38 .bss.nfailed_temp_sensors:00000000 nfailed_temp_sensors
|
||
/tmp/cc1QLhHg.s:39 .bss.nfailed_temp_sensors:00000000 $d
|
||
/tmp/cc1QLhHg.s:45 .bss.hi2c:00000000 hi2c
|
||
/tmp/cc1QLhHg.s:42 .bss.hi2c:00000000 $d
|
||
/tmp/cc1QLhHg.s:48 .text.tmp1075_init:00000000 $t
|
||
/tmp/cc1QLhHg.s:54 .text.tmp1075_init:00000000 tmp1075_init
|
||
/tmp/cc1QLhHg.s:488 .text.tmp1075_sensor_init:00000000 tmp1075_sensor_init
|
||
/tmp/cc1QLhHg.s:119 .text.tmp1075_init:00000040 $d
|
||
/tmp/cc1QLhHg.s:124 .text.handle_over_maxtemp:00000000 $t
|
||
/tmp/cc1QLhHg.s:130 .text.handle_over_maxtemp:00000000 handle_over_maxtemp
|
||
/tmp/cc1QLhHg.s:188 .text.handle_over_maxtemp:00000048 $d
|
||
/tmp/cc1QLhHg.s:194 .text.tmp1075_measure:00000000 $t
|
||
/tmp/cc1QLhHg.s:200 .text.tmp1075_measure:00000000 tmp1075_measure
|
||
/tmp/cc1QLhHg.s:547 .text.tmp1075_sensor_read:00000000 tmp1075_sensor_read
|
||
/tmp/cc1QLhHg.s:473 .text.tmp1075_measure:00000198 $d
|
||
/tmp/cc1QLhHg.s:482 .text.tmp1075_sensor_init:00000000 $t
|
||
/tmp/cc1QLhHg.s:536 .text.tmp1075_sensor_init:0000003c $d
|
||
/tmp/cc1QLhHg.s:541 .text.tmp1075_sensor_read:00000000 $t
|
||
/tmp/cc1QLhHg.s:620 .text.tmp1075_sensor_read:00000060 $d
|
||
|
||
UNDEFINED SYMBOLS
|
||
set_error_source
|
||
ftcan_marshal_unsigned
|
||
error_data
|
||
clear_error_source
|
||
state
|
||
HAL_I2C_Master_Transmit
|
||
HAL_I2C_Master_Receive
|