684 lines
26 KiB
Plaintext
684 lines
26 KiB
Plaintext
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
|