mv-bms/Software/build/status_LED.lst

684 lines
26 KiB
Plaintext
Raw Permalink 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/ccnT6iWU.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 "status_LED.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .file 1 "Core/Src/status_LED.c"
20 .global red
21 .section .bss.red,"aw",%nobits
22 .align 2
25 red:
26 0000 00000000 .space 4
27 .global green
28 .section .bss.green,"aw",%nobits
29 .align 2
32 green:
33 0000 00000000 .space 4
34 .global blue
35 .section .bss.blue,"aw",%nobits
36 .align 2
39 blue:
40 0000 00000000 .space 4
41 .global blink_timer
42 .section .bss.blink_timer,"aw",%nobits
43 .align 2
46 blink_timer:
47 0000 00000000 .space 4
48 .global blink_state
49 .section .bss.blink_state,"aw",%nobits
52 blink_state:
53 0000 00 .space 1
54 .section .text.status_led_init,"ax",%progbits
55 .align 1
56 .global status_led_init
57 .syntax unified
58 .thumb
59 .thumb_func
61 status_led_init:
62 .LFB130:
1:Core/Src/status_LED.c **** /*
2:Core/Src/status_LED.c **** * status_LED.h
3:Core/Src/status_LED.c **** *
4:Core/Src/status_LED.c **** * Created on: 07.07.2024
5:Core/Src/status_LED.c **** * Author: Hamza
6:Core/Src/status_LED.c **** */
ARM GAS /tmp/ccnT6iWU.s page 2
7:Core/Src/status_LED.c ****
8:Core/Src/status_LED.c **** #include "ADBMS_LL_Driver.h"
9:Core/Src/status_LED.c **** #include "state_machine.h"
10:Core/Src/status_LED.c **** #include "stm32f3xx_hal.h"
11:Core/Src/status_LED.c **** #include <status_LED.h>
12:Core/Src/status_LED.c **** #include <stdint.h>
13:Core/Src/status_LED.c ****
14:Core/Src/status_LED.c **** // TODO test out pulldown and pushpull settings
15:Core/Src/status_LED.c ****
16:Core/Src/status_LED.c **** /* The PWM period (1/FPWM) is defined by the following parameters:
17:Core/Src/status_LED.c **** ARR value, the Prescaler value, and the internal clock itself which drives the timer module FCLK.
18:Core/Src/status_LED.c **** F_PWM = (F_CLK)/((ARR + 1) * (PSC + 1))
19:Core/Src/status_LED.c ****
20:Core/Src/status_LED.c **** Prescaler:
21:Core/Src/status_LED.c **** (ARR + 1) * (PSC + 1) = (F_CLK)/(F_PWM)
22:Core/Src/status_LED.c **** (PSC + 1) = (F_CLK)/(F_PWM * (ARR + 1))
23:Core/Src/status_LED.c **** 625 = (16MHz)/(100Hz * (255 + 1))
24:Core/Src/status_LED.c ****
25:Core/Src/status_LED.c **** F_CLK = 16 MHz
26:Core/Src/status_LED.c **** */
27:Core/Src/status_LED.c ****
28:Core/Src/status_LED.c **** #define STATUS_LED_ARR 255
29:Core/Src/status_LED.c **** #define TIME_BLINK_SLOW 2000
30:Core/Src/status_LED.c **** #define TIME_BLINK_FAST 500
31:Core/Src/status_LED.c ****
32:Core/Src/status_LED.c **** TIM_HandleTypeDef* red;
33:Core/Src/status_LED.c **** TIM_HandleTypeDef* green;
34:Core/Src/status_LED.c **** TIM_HandleTypeDef* blue;
35:Core/Src/status_LED.c ****
36:Core/Src/status_LED.c **** uint32_t blink_timer;
37:Core/Src/status_LED.c **** bool blink_state;
38:Core/Src/status_LED.c ****
39:Core/Src/status_LED.c **** void status_led_init(TIM_HandleTypeDef* r, TIM_HandleTypeDef* g, TIM_HandleTypeDef* b){
63 .loc 1 39 87
64 .cfi_startproc
65 @ args = 0, pretend = 0, frame = 16
66 @ frame_needed = 1, uses_anonymous_args = 0
67 0000 80B5 push {r7, lr}
68 .cfi_def_cfa_offset 8
69 .cfi_offset 7, -8
70 .cfi_offset 14, -4
71 0002 84B0 sub sp, sp, #16
72 .cfi_def_cfa_offset 24
73 0004 00AF add r7, sp, #0
74 .cfi_def_cfa_register 7
75 0006 F860 str r0, [r7, #12]
76 0008 B960 str r1, [r7, #8]
77 000a 7A60 str r2, [r7, #4]
40:Core/Src/status_LED.c **** red = r;
78 .loc 1 40 7
79 000c 144A ldr r2, .L2
80 000e FB68 ldr r3, [r7, #12]
81 0010 1360 str r3, [r2]
41:Core/Src/status_LED.c **** green = g;
82 .loc 1 41 9
83 0012 144A ldr r2, .L2+4
84 0014 BB68 ldr r3, [r7, #8]
ARM GAS /tmp/ccnT6iWU.s page 3
85 0016 1360 str r3, [r2]
42:Core/Src/status_LED.c **** blue = b;
86 .loc 1 42 8
87 0018 134A ldr r2, .L2+8
88 001a 7B68 ldr r3, [r7, #4]
89 001c 1360 str r3, [r2]
43:Core/Src/status_LED.c ****
44:Core/Src/status_LED.c **** blink_timer = 0;
90 .loc 1 44 15
91 001e 134B ldr r3, .L2+12
92 0020 0022 movs r2, #0
93 0022 1A60 str r2, [r3]
45:Core/Src/status_LED.c **** blink_state = 0;
94 .loc 1 45 15
95 0024 124B ldr r3, .L2+16
96 0026 0022 movs r2, #0
97 0028 1A70 strb r2, [r3]
46:Core/Src/status_LED.c ****
47:Core/Src/status_LED.c **** HAL_TIM_PWM_Start(red, TIM_CHANNEL_1); //TIM4CH1
98 .loc 1 47 3
99 002a 0D4B ldr r3, .L2
100 002c 1B68 ldr r3, [r3]
101 002e 0021 movs r1, #0
102 0030 1846 mov r0, r3
103 0032 FFF7FEFF bl HAL_TIM_PWM_Start
48:Core/Src/status_LED.c **** HAL_TIM_PWM_Start(green, TIM_CHANNEL_2); //TIM4CH2
104 .loc 1 48 3
105 0036 0B4B ldr r3, .L2+4
106 0038 1B68 ldr r3, [r3]
107 003a 0421 movs r1, #4
108 003c 1846 mov r0, r3
109 003e FFF7FEFF bl HAL_TIM_PWM_Start
49:Core/Src/status_LED.c **** HAL_TIM_PWM_Start(blue, TIM_CHANNEL_3); //TIM4CH3
110 .loc 1 49 3
111 0042 094B ldr r3, .L2+8
112 0044 1B68 ldr r3, [r3]
113 0046 0821 movs r1, #8
114 0048 1846 mov r0, r3
115 004a FFF7FEFF bl HAL_TIM_PWM_Start
50:Core/Src/status_LED.c ****
51:Core/Src/status_LED.c **** status_led_set(255, 255, 255);
116 .loc 1 51 3
117 004e FF22 movs r2, #255
118 0050 FF21 movs r1, #255
119 0052 FF20 movs r0, #255
120 0054 FFF7FEFF bl status_led_set
52:Core/Src/status_LED.c **** }
121 .loc 1 52 1
122 0058 00BF nop
123 005a 1037 adds r7, r7, #16
124 .cfi_def_cfa_offset 8
125 005c BD46 mov sp, r7
126 .cfi_def_cfa_register 13
127 @ sp needed
128 005e 80BD pop {r7, pc}
129 .L3:
130 .align 2
ARM GAS /tmp/ccnT6iWU.s page 4
131 .L2:
132 0060 00000000 .word red
133 0064 00000000 .word green
134 0068 00000000 .word blue
135 006c 00000000 .word blink_timer
136 0070 00000000 .word blink_state
137 .cfi_endproc
138 .LFE130:
140 .section .text.status_led_update,"ax",%progbits
141 .align 1
142 .global status_led_update
143 .syntax unified
144 .thumb
145 .thumb_func
147 status_led_update:
148 .LFB131:
53:Core/Src/status_LED.c ****
54:Core/Src/status_LED.c **** void status_led_update(){
149 .loc 1 54 25
150 .cfi_startproc
151 @ args = 0, pretend = 0, frame = 0
152 @ frame_needed = 1, uses_anonymous_args = 0
153 0000 80B5 push {r7, lr}
154 .cfi_def_cfa_offset 8
155 .cfi_offset 7, -8
156 .cfi_offset 14, -4
157 0002 00AF add r7, sp, #0
158 .cfi_def_cfa_register 7
55:Core/Src/status_LED.c **** if (state.current_state == STATE_ERROR){
159 .loc 1 55 12
160 0004 344B ldr r3, .L20
161 0006 1B78 ldrb r3, [r3] @ zero_extendqisi2
162 .loc 1 55 6
163 0008 072B cmp r3, #7
164 000a 03D1 bne .L5
56:Core/Src/status_LED.c **** status_led_set_color(RED);
165 .loc 1 56 5
166 000c 0120 movs r0, #1
167 000e FFF7FEFF bl status_led_set_color
57:Core/Src/status_LED.c **** return;
168 .loc 1 57 5
169 0012 60E0 b .L4
170 .L5:
58:Core/Src/status_LED.c **** }
59:Core/Src/status_LED.c **** if(blink_timer > HAL_GetTick()){
171 .loc 1 59 20
172 0014 FFF7FEFF bl HAL_GetTick
173 0018 0246 mov r2, r0
174 .loc 1 59 18 discriminator 1
175 001a 304B ldr r3, .L20+4
176 001c 1B68 ldr r3, [r3]
177 .loc 1 59 5 discriminator 1
178 001e 9A42 cmp r2, r3
179 0020 58D3 bcc .L18
60:Core/Src/status_LED.c **** return;
61:Core/Src/status_LED.c **** }
62:Core/Src/status_LED.c ****
ARM GAS /tmp/ccnT6iWU.s page 5
63:Core/Src/status_LED.c **** if (blink_state == 1){
180 .loc 1 63 19
181 0022 2F4B ldr r3, .L20+8
182 0024 1B78 ldrb r3, [r3] @ zero_extendqisi2
183 .loc 1 63 6
184 0026 002B cmp r3, #0
185 0028 17D0 beq .L8
64:Core/Src/status_LED.c **** if (state.current_state == STATE_INACTIVE)
186 .loc 1 64 14
187 002a 2B4B ldr r3, .L20
188 002c 1B78 ldrb r3, [r3] @ zero_extendqisi2
189 .loc 1 64 8
190 002e 002B cmp r3, #0
191 0030 06D1 bne .L9
65:Core/Src/status_LED.c **** blink_timer = HAL_GetTick() + TIME_BLINK_SLOW/10;
192 .loc 1 65 21
193 0032 FFF7FEFF bl HAL_GetTick
194 0036 0346 mov r3, r0
195 .loc 1 65 35 discriminator 1
196 0038 C833 adds r3, r3, #200
197 .loc 1 65 19 discriminator 1
198 003a 284A ldr r2, .L20+4
199 003c 1360 str r3, [r2]
200 003e 05E0 b .L10
201 .L9:
66:Core/Src/status_LED.c **** else
67:Core/Src/status_LED.c **** blink_timer = HAL_GetTick() + TIME_BLINK_FAST/10;
202 .loc 1 67 21
203 0040 FFF7FEFF bl HAL_GetTick
204 0044 0346 mov r3, r0
205 .loc 1 67 35 discriminator 1
206 0046 3233 adds r3, r3, #50
207 .loc 1 67 19 discriminator 1
208 0048 244A ldr r2, .L20+4
209 004a 1360 str r3, [r2]
210 .L10:
68:Core/Src/status_LED.c **** blink_state = 0;
211 .loc 1 68 17
212 004c 244B ldr r3, .L20+8
213 004e 0022 movs r2, #0
214 0050 1A70 strb r2, [r3]
69:Core/Src/status_LED.c **** status_led_set_color(OFF);
215 .loc 1 69 5
216 0052 0020 movs r0, #0
217 0054 FFF7FEFF bl status_led_set_color
70:Core/Src/status_LED.c **** return;
218 .loc 1 70 5
219 0058 3DE0 b .L4
220 .L8:
71:Core/Src/status_LED.c **** } else {
72:Core/Src/status_LED.c **** if (state.current_state == STATE_INACTIVE)
221 .loc 1 72 14
222 005a 1F4B ldr r3, .L20
223 005c 1B78 ldrb r3, [r3] @ zero_extendqisi2
224 .loc 1 72 8
225 005e 002B cmp r3, #0
226 0060 07D1 bne .L11
ARM GAS /tmp/ccnT6iWU.s page 6
73:Core/Src/status_LED.c **** blink_timer = HAL_GetTick() + TIME_BLINK_SLOW;
227 .loc 1 73 21
228 0062 FFF7FEFF bl HAL_GetTick
229 0066 0346 mov r3, r0
230 .loc 1 73 35 discriminator 1
231 0068 03F5FA63 add r3, r3, #2000
232 .loc 1 73 19 discriminator 1
233 006c 1B4A ldr r2, .L20+4
234 006e 1360 str r3, [r2]
235 0070 06E0 b .L12
236 .L11:
74:Core/Src/status_LED.c **** else
75:Core/Src/status_LED.c **** blink_timer = HAL_GetTick() + TIME_BLINK_FAST;
237 .loc 1 75 21
238 0072 FFF7FEFF bl HAL_GetTick
239 0076 0346 mov r3, r0
240 .loc 1 75 35 discriminator 1
241 0078 03F5FA73 add r3, r3, #500
242 .loc 1 75 19 discriminator 1
243 007c 174A ldr r2, .L20+4
244 007e 1360 str r3, [r2]
245 .L12:
76:Core/Src/status_LED.c **** blink_state = 1;
246 .loc 1 76 17
247 0080 174B ldr r3, .L20+8
248 0082 0122 movs r2, #1
249 0084 1A70 strb r2, [r3]
77:Core/Src/status_LED.c **** }
78:Core/Src/status_LED.c ****
79:Core/Src/status_LED.c **** switch (state.current_state) {
250 .loc 1 79 16
251 0086 144B ldr r3, .L20
252 0088 1B78 ldrb r3, [r3] @ zero_extendqisi2
253 .loc 1 79 3
254 008a 072B cmp r3, #7
255 008c 23D8 bhi .L4
256 008e 01A2 adr r2, .L14
257 0090 52F823F0 ldr pc, [r2, r3, lsl #2]
258 .p2align 2
259 .L14:
260 0094 B5000000 .word .L17+1
261 0098 BD000000 .word .L16+1
262 009c C5000000 .word .L15+1
263 00a0 C5000000 .word .L15+1
264 00a4 BD000000 .word .L16+1
265 00a8 BD000000 .word .L16+1
266 00ac C5000000 .word .L15+1
267 00b0 CD000000 .word .L13+1
268 .p2align 1
269 .L17:
80:Core/Src/status_LED.c **** case STATE_INACTIVE:
81:Core/Src/status_LED.c **** status_led_set_color(GREEN);
270 .loc 1 81 5
271 00b4 0220 movs r0, #2
272 00b6 FFF7FEFF bl status_led_set_color
82:Core/Src/status_LED.c **** break;
273 .loc 1 82 5
ARM GAS /tmp/ccnT6iWU.s page 7
274 00ba 0CE0 b .L4
275 .L16:
83:Core/Src/status_LED.c **** case STATE_CHARGING_PRECHARGE:
84:Core/Src/status_LED.c **** case STATE_PRECHARGE:
85:Core/Src/status_LED.c **** case STATE_DISCHARGE:
86:Core/Src/status_LED.c **** status_led_set_color( YELLOW);
276 .loc 1 86 5
277 00bc 0420 movs r0, #4
278 00be FFF7FEFF bl status_led_set_color
87:Core/Src/status_LED.c **** break;
279 .loc 1 87 5
280 00c2 08E0 b .L4
281 .L15:
88:Core/Src/status_LED.c **** case STATE_CHARGING:
89:Core/Src/status_LED.c **** case STATE_READY:
90:Core/Src/status_LED.c **** case STATE_ACTIVE:
91:Core/Src/status_LED.c **** status_led_set_color(PINK);
282 .loc 1 91 5
283 00c4 0520 movs r0, #5
284 00c6 FFF7FEFF bl status_led_set_color
92:Core/Src/status_LED.c **** break;
285 .loc 1 92 5
286 00ca 04E0 b .L4
287 .L13:
93:Core/Src/status_LED.c **** case STATE_ERROR:
94:Core/Src/status_LED.c **** status_led_set_color(RED);
288 .loc 1 94 5
289 00cc 0120 movs r0, #1
290 00ce FFF7FEFF bl status_led_set_color
95:Core/Src/status_LED.c **** break;
291 .loc 1 95 5
292 00d2 00E0 b .L4
293 .L18:
60:Core/Src/status_LED.c **** }
294 .loc 1 60 5
295 00d4 00BF nop
296 .L4:
96:Core/Src/status_LED.c **** }
97:Core/Src/status_LED.c **** }
297 .loc 1 97 1
298 00d6 80BD pop {r7, pc}
299 .L21:
300 .align 2
301 .L20:
302 00d8 00000000 .word state
303 00dc 00000000 .word blink_timer
304 00e0 00000000 .word blink_state
305 .cfi_endproc
306 .LFE131:
308 .section .text.status_led_set_color,"ax",%progbits
309 .align 1
310 .global status_led_set_color
311 .syntax unified
312 .thumb
313 .thumb_func
315 status_led_set_color:
316 .LFB132:
ARM GAS /tmp/ccnT6iWU.s page 8
98:Core/Src/status_LED.c ****
99:Core/Src/status_LED.c **** void status_led_set_color(color color){
317 .loc 1 99 39
318 .cfi_startproc
319 @ args = 0, pretend = 0, frame = 8
320 @ frame_needed = 1, uses_anonymous_args = 0
321 0000 80B5 push {r7, lr}
322 .cfi_def_cfa_offset 8
323 .cfi_offset 7, -8
324 .cfi_offset 14, -4
325 0002 82B0 sub sp, sp, #8
326 .cfi_def_cfa_offset 16
327 0004 00AF add r7, sp, #0
328 .cfi_def_cfa_register 7
329 0006 0346 mov r3, r0
330 0008 FB71 strb r3, [r7, #7]
100:Core/Src/status_LED.c **** switch (color) {
331 .loc 1 100 3
332 000a FB79 ldrb r3, [r7, #7] @ zero_extendqisi2
333 000c 072B cmp r3, #7
334 000e 43D8 bhi .L33
335 0010 01A2 adr r2, .L25
336 0012 52F823F0 ldr pc, [r2, r3, lsl #2]
337 0016 00BF .p2align 2
338 .L25:
339 0018 8D000000 .word .L32+1
340 001c 39000000 .word .L31+1
341 0020 45000000 .word .L30+1
342 0024 51000000 .word .L29+1
343 0028 5D000000 .word .L28+1
344 002c 69000000 .word .L27+1
345 0030 75000000 .word .L26+1
346 0034 81000000 .word .L24+1
347 .p2align 1
348 .L31:
101:Core/Src/status_LED.c **** case RED:
102:Core/Src/status_LED.c **** status_led_set(0, 255, 255);
349 .loc 1 102 5
350 0038 FF22 movs r2, #255
351 003a FF21 movs r1, #255
352 003c 0020 movs r0, #0
353 003e FFF7FEFF bl status_led_set
103:Core/Src/status_LED.c **** break;
354 .loc 1 103 5
355 0042 29E0 b .L23
356 .L30:
104:Core/Src/status_LED.c **** case GREEN:
105:Core/Src/status_LED.c **** status_led_set(255, 0, 255);
357 .loc 1 105 5
358 0044 FF22 movs r2, #255
359 0046 0021 movs r1, #0
360 0048 FF20 movs r0, #255
361 004a FFF7FEFF bl status_led_set
106:Core/Src/status_LED.c **** break;
362 .loc 1 106 5
363 004e 23E0 b .L23
364 .L29:
ARM GAS /tmp/ccnT6iWU.s page 9
107:Core/Src/status_LED.c **** case BLUE:
108:Core/Src/status_LED.c **** status_led_set(255, 255, 0);
365 .loc 1 108 5
366 0050 0022 movs r2, #0
367 0052 FF21 movs r1, #255
368 0054 FF20 movs r0, #255
369 0056 FFF7FEFF bl status_led_set
109:Core/Src/status_LED.c **** break;
370 .loc 1 109 5
371 005a 1DE0 b .L23
372 .L28:
110:Core/Src/status_LED.c **** case YELLOW:
111:Core/Src/status_LED.c **** status_led_set(0, 0, 255);
373 .loc 1 111 5
374 005c FF22 movs r2, #255
375 005e 0021 movs r1, #0
376 0060 0020 movs r0, #0
377 0062 FFF7FEFF bl status_led_set
112:Core/Src/status_LED.c **** break;
378 .loc 1 112 5
379 0066 17E0 b .L23
380 .L27:
113:Core/Src/status_LED.c **** case PINK:
114:Core/Src/status_LED.c **** status_led_set(0, 255, 0);
381 .loc 1 114 5
382 0068 0022 movs r2, #0
383 006a FF21 movs r1, #255
384 006c 0020 movs r0, #0
385 006e FFF7FEFF bl status_led_set
115:Core/Src/status_LED.c **** break;
386 .loc 1 115 5
387 0072 11E0 b .L23
388 .L26:
116:Core/Src/status_LED.c **** case CYAN:
117:Core/Src/status_LED.c **** status_led_set(255, 0, 0);
389 .loc 1 117 5
390 0074 0022 movs r2, #0
391 0076 0021 movs r1, #0
392 0078 FF20 movs r0, #255
393 007a FFF7FEFF bl status_led_set
118:Core/Src/status_LED.c **** break;
394 .loc 1 118 5
395 007e 0BE0 b .L23
396 .L24:
119:Core/Src/status_LED.c **** case WHITE:
120:Core/Src/status_LED.c **** status_led_set(0, 0, 0);
397 .loc 1 120 5
398 0080 0022 movs r2, #0
399 0082 0021 movs r1, #0
400 0084 0020 movs r0, #0
401 0086 FFF7FEFF bl status_led_set
121:Core/Src/status_LED.c **** break;
402 .loc 1 121 5
403 008a 05E0 b .L23
404 .L32:
122:Core/Src/status_LED.c **** case OFF:
123:Core/Src/status_LED.c **** status_led_set(255,255,255);
ARM GAS /tmp/ccnT6iWU.s page 10
405 .loc 1 123 5
406 008c FF22 movs r2, #255
407 008e FF21 movs r1, #255
408 0090 FF20 movs r0, #255
409 0092 FFF7FEFF bl status_led_set
124:Core/Src/status_LED.c **** break;
410 .loc 1 124 5
411 0096 00BF nop
412 .L23:
413 .L33:
125:Core/Src/status_LED.c **** }
126:Core/Src/status_LED.c **** }
414 .loc 1 126 1
415 0098 00BF nop
416 009a 0837 adds r7, r7, #8
417 .cfi_def_cfa_offset 8
418 009c BD46 mov sp, r7
419 .cfi_def_cfa_register 13
420 @ sp needed
421 009e 80BD pop {r7, pc}
422 .cfi_endproc
423 .LFE132:
425 .section .text.status_led_set,"ax",%progbits
426 .align 1
427 .global status_led_set
428 .syntax unified
429 .thumb
430 .thumb_func
432 status_led_set:
433 .LFB133:
127:Core/Src/status_LED.c ****
128:Core/Src/status_LED.c **** void status_led_set(uint8_t r, uint8_t g, uint8_t b){
434 .loc 1 128 53
435 .cfi_startproc
436 @ args = 0, pretend = 0, frame = 8
437 @ frame_needed = 1, uses_anonymous_args = 0
438 @ link register save eliminated.
439 0000 80B4 push {r7}
440 .cfi_def_cfa_offset 4
441 .cfi_offset 7, -4
442 0002 83B0 sub sp, sp, #12
443 .cfi_def_cfa_offset 16
444 0004 00AF add r7, sp, #0
445 .cfi_def_cfa_register 7
446 0006 0346 mov r3, r0
447 0008 FB71 strb r3, [r7, #7]
448 000a 0B46 mov r3, r1
449 000c BB71 strb r3, [r7, #6]
450 000e 1346 mov r3, r2
451 0010 7B71 strb r3, [r7, #5]
129:Core/Src/status_LED.c **** __HAL_TIM_SET_COMPARE(red, TIM_CHANNEL_1, r);
452 .loc 1 129 3
453 0012 0A4B ldr r3, .L36
454 0014 1B68 ldr r3, [r3]
455 0016 1B68 ldr r3, [r3]
456 0018 FA79 ldrb r2, [r7, #7] @ zero_extendqisi2
457 001a 5A63 str r2, [r3, #52]
ARM GAS /tmp/ccnT6iWU.s page 11
130:Core/Src/status_LED.c **** __HAL_TIM_SET_COMPARE(green, TIM_CHANNEL_2, g);
458 .loc 1 130 3
459 001c 084B ldr r3, .L36+4
460 001e 1B68 ldr r3, [r3]
461 0020 1B68 ldr r3, [r3]
462 0022 BA79 ldrb r2, [r7, #6] @ zero_extendqisi2
463 0024 9A63 str r2, [r3, #56]
131:Core/Src/status_LED.c **** __HAL_TIM_SET_COMPARE(blue, TIM_CHANNEL_3, b);
464 .loc 1 131 3
465 0026 074B ldr r3, .L36+8
466 0028 1B68 ldr r3, [r3]
467 002a 1B68 ldr r3, [r3]
468 002c 7A79 ldrb r2, [r7, #5] @ zero_extendqisi2
469 002e DA63 str r2, [r3, #60]
132:Core/Src/status_LED.c **** }...
470 .loc 1 132 1
471 0030 00BF nop
472 0032 0C37 adds r7, r7, #12
473 .cfi_def_cfa_offset 4
474 0034 BD46 mov sp, r7
475 .cfi_def_cfa_register 13
476 @ sp needed
477 0036 5DF8047B ldr r7, [sp], #4
478 .cfi_restore 7
479 .cfi_def_cfa_offset 0
480 003a 7047 bx lr
481 .L37:
482 .align 2
483 .L36:
484 003c 00000000 .word red
485 0040 00000000 .word green
486 0044 00000000 .word blue
487 .cfi_endproc
488 .LFE133:
490 .text
491 .Letext0:
492 .file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
493 .file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl
494 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
495 .file 5 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
496 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
497 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_tim.h"
498 .file 8 "Core/Inc/status_LED.h"
499 .file 9 "Core/Inc/state_machine.h"
500 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
ARM GAS /tmp/ccnT6iWU.s page 12
DEFINED SYMBOLS
*ABS*:00000000 status_LED.c
/tmp/ccnT6iWU.s:25 .bss.red:00000000 red
/tmp/ccnT6iWU.s:22 .bss.red:00000000 $d
/tmp/ccnT6iWU.s:32 .bss.green:00000000 green
/tmp/ccnT6iWU.s:29 .bss.green:00000000 $d
/tmp/ccnT6iWU.s:39 .bss.blue:00000000 blue
/tmp/ccnT6iWU.s:36 .bss.blue:00000000 $d
/tmp/ccnT6iWU.s:46 .bss.blink_timer:00000000 blink_timer
/tmp/ccnT6iWU.s:43 .bss.blink_timer:00000000 $d
/tmp/ccnT6iWU.s:52 .bss.blink_state:00000000 blink_state
/tmp/ccnT6iWU.s:53 .bss.blink_state:00000000 $d
/tmp/ccnT6iWU.s:55 .text.status_led_init:00000000 $t
/tmp/ccnT6iWU.s:61 .text.status_led_init:00000000 status_led_init
/tmp/ccnT6iWU.s:432 .text.status_led_set:00000000 status_led_set
/tmp/ccnT6iWU.s:132 .text.status_led_init:00000060 $d
/tmp/ccnT6iWU.s:141 .text.status_led_update:00000000 $t
/tmp/ccnT6iWU.s:147 .text.status_led_update:00000000 status_led_update
/tmp/ccnT6iWU.s:315 .text.status_led_set_color:00000000 status_led_set_color
/tmp/ccnT6iWU.s:260 .text.status_led_update:00000094 $d
/tmp/ccnT6iWU.s:268 .text.status_led_update:000000b4 $t
/tmp/ccnT6iWU.s:302 .text.status_led_update:000000d8 $d
/tmp/ccnT6iWU.s:309 .text.status_led_set_color:00000000 $t
/tmp/ccnT6iWU.s:339 .text.status_led_set_color:00000018 $d
/tmp/ccnT6iWU.s:347 .text.status_led_set_color:00000038 $t
/tmp/ccnT6iWU.s:426 .text.status_led_set:00000000 $t
/tmp/ccnT6iWU.s:484 .text.status_led_set:0000003c $d
UNDEFINED SYMBOLS
HAL_TIM_PWM_Start
HAL_GetTick
state