Rev 18 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 1
1 .cpu cortex-m3
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 1
10 .eabi_attribute 18, 4
11 .file "serial.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.PutCharSerialFIFO,"ax",%progbits
16 .align 1
17 .arch armv7-m
18 .syntax unified
19 .thumb
20 .thumb_func
21 .fpu softvfp
23 PutCharSerialFIFO:
24 .LVL0:
25 .LFB69:
26 .file 1 "../libSerial/src/serial.c"
1:../libSerial/src/serial.c **** /*
2:../libSerial/src/serial.c **** * serial.c
3:../libSerial/src/serial.c **** *
4:../libSerial/src/serial.c **** * Created on: 4 Jan 2016
5:../libSerial/src/serial.c **** * Author: Mike
6:../libSerial/src/serial.c **** *
7:../libSerial/src/serial.c **** * This (ab)uses the STMCubeMX HAL declarations to implement a generic STM32F1xx
8:../libSerial/src/serial.c **** * USART driver layer
9:../libSerial/src/serial.c **** */
10:../libSerial/src/serial.c ****
11:../libSerial/src/serial.c **** #include "libSerial/serial.h"
12:../libSerial/src/serial.c ****
13:../libSerial/src/serial.c **** /* workspaces for the USARTS being used */
14:../libSerial/src/serial.c **** #if defined SERIAL_UART1
15:../libSerial/src/serial.c **** usart_ctl uc1;
16:../libSerial/src/serial.c **** #endif
17:../libSerial/src/serial.c **** #if defined SERIAL_UART2
18:../libSerial/src/serial.c **** usart_ctl uc2;
19:../libSerial/src/serial.c **** #endif
20:../libSerial/src/serial.c **** #if defined SERIAL_UART3
21:../libSerial/src/serial.c **** usart_ctl uc3;
22:../libSerial/src/serial.c **** #endif
23:../libSerial/src/serial.c ****
24:../libSerial/src/serial.c **** /* returns the number of characters received by the Rx USART */
25:../libSerial/src/serial.c **** uint16_t
26:../libSerial/src/serial.c **** SerialCharsReceived (usart_ctl *instance)
27:../libSerial/src/serial.c **** {
28:../libSerial/src/serial.c **** uint16_t result = 0; // assume no characters received yet
29:../libSerial/src/serial.c **** __HAL_UART_DISABLE_IT (instance, UART_IT_RXNE);
30:../libSerial/src/serial.c ****
31:../libSerial/src/serial.c **** if (instance->rx_usart_buffer_full)
32:../libSerial/src/serial.c **** { // buffer is full...
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 2
33:../libSerial/src/serial.c **** result = RX_USART_BUFF_SIZ;
34:../libSerial/src/serial.c **** }
35:../libSerial/src/serial.c **** else if (instance->rx_usart_in_Ptr >= instance->rx_usart_out_Ptr)
36:../libSerial/src/serial.c **** { // buffer has not wrapped...
37:../libSerial/src/serial.c **** result = instance->rx_usart_in_Ptr - instance->rx_usart_out_Ptr;
38:../libSerial/src/serial.c **** }
39:../libSerial/src/serial.c **** else
40:../libSerial/src/serial.c **** { // buffer has possibly wrapped...
41:../libSerial/src/serial.c **** result = RX_USART_BUFF_SIZ - instance->rx_usart_out_Ptr
42:../libSerial/src/serial.c **** + instance->rx_usart_in_Ptr;
43:../libSerial/src/serial.c **** }
44:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
45:../libSerial/src/serial.c ****
46:../libSerial/src/serial.c **** return result;
47:../libSerial/src/serial.c **** }
48:../libSerial/src/serial.c ****
49:../libSerial/src/serial.c **** inline uint8_t
50:../libSerial/src/serial.c **** PollSerial (usart_ctl *instance)
51:../libSerial/src/serial.c **** {
52:../libSerial/src/serial.c **** uint8_t rc;
53:../libSerial/src/serial.c ****
54:../libSerial/src/serial.c **** __HAL_UART_DISABLE_IT (instance, UART_IT_RXNE);
55:../libSerial/src/serial.c **** rc = (instance->rx_usart_buffer_full
56:../libSerial/src/serial.c **** || (instance->rx_usart_in_Ptr != instance->rx_usart_out_Ptr));
57:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
58:../libSerial/src/serial.c ****
59:../libSerial/src/serial.c **** return rc;
60:../libSerial/src/serial.c **** }
61:../libSerial/src/serial.c ****
62:../libSerial/src/serial.c **** /***!
63:../libSerial/src/serial.c **** * @brief return the next character in the Serial input buffer
64:../libSerial/src/serial.c **** * This function will wait until a character arrives.
65:../libSerial/src/serial.c **** */
66:../libSerial/src/serial.c **** inline uint8_t
67:../libSerial/src/serial.c **** GetCharSerial (usart_ctl *instance)
68:../libSerial/src/serial.c **** {
69:../libSerial/src/serial.c **** uint8_t c;
70:../libSerial/src/serial.c **** __HAL_UART_DISABLE_IT (instance, UART_IT_RXNE);
71:../libSerial/src/serial.c **** while (!instance->rx_usart_buffer_full
72:../libSerial/src/serial.c **** && (instance->rx_usart_in_Ptr == instance->rx_usart_out_Ptr))
73:../libSerial/src/serial.c **** {
74:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
75:../libSerial/src/serial.c **** __WFI (); /* wait for something */
76:../libSerial/src/serial.c **** __HAL_UART_DISABLE_IT (instance, UART_IT_RXNE);
77:../libSerial/src/serial.c **** }
78:../libSerial/src/serial.c ****
79:../libSerial/src/serial.c **** c = instance->rx_usart_buff[instance->rx_usart_out_Ptr];
80:../libSerial/src/serial.c **** instance->rx_usart_buffer_full = 0; /* removed character */
81:../libSerial/src/serial.c **** instance->rx_usart_out_Ptr++;
82:../libSerial/src/serial.c **** if (instance->rx_usart_out_Ptr >= RX_USART_BUFF_SIZ)
83:../libSerial/src/serial.c **** {
84:../libSerial/src/serial.c **** instance->rx_usart_out_Ptr = 0;
85:../libSerial/src/serial.c **** }
86:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
87:../libSerial/src/serial.c **** return c;
88:../libSerial/src/serial.c **** }
89:../libSerial/src/serial.c ****
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 3
90:../libSerial/src/serial.c **** /*
91:../libSerial/src/serial.c **** * \brief
92:../libSerial/src/serial.c **** * void EnableSerialRxInterrupt(void) - this function is used from the interrupt handler and the ma
93:../libSerial/src/serial.c **** * to enable the serial rx interrupt after resetting the serial rx buffer...
94:../libSerial/src/serial.c **** */
95:../libSerial/src/serial.c **** inline void
96:../libSerial/src/serial.c **** EnableSerialRxInterrupt (usart_ctl *instance)
97:../libSerial/src/serial.c **** {
98:../libSerial/src/serial.c **** /* cheat here - this is a macro and I have the same Instance member as the HAL handle, with the s
99:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
100:../libSerial/src/serial.c **** }
101:../libSerial/src/serial.c ****
102:../libSerial/src/serial.c **** /****!
103:../libSerial/src/serial.c **** * @brief send a character to the serial USART via placing it in the serial buffer
104:../libSerial/src/serial.c **** *
105:../libSerial/src/serial.c **** */
106:../libSerial/src/serial.c ****
107:../libSerial/src/serial.c **** static void
108:../libSerial/src/serial.c **** PutCharSerialFIFO (usart_ctl *instance, uint8_t c)
109:../libSerial/src/serial.c **** {
27 .loc 1 109 1 view -0
28 .cfi_startproc
29 @ args = 0, pretend = 0, frame = 0
30 @ frame_needed = 0, uses_anonymous_args = 0
31 @ link register save eliminated.
110:../libSerial/src/serial.c **** __HAL_UART_DISABLE_IT (instance, UART_IT_TXE);
32 .loc 1 110 3 view .LVU1
33 0000 0268 ldr r2, [r0]
34 0002 D368 ldr r3, [r2, #12]
35 0004 23F08003 bic r3, r3, #128
36 0008 D360 str r3, [r2, #12]
111:../libSerial/src/serial.c ****
112:../libSerial/src/serial.c **** instance->tx_usart_buff[instance->tx_usart_in_Ptr++] = c;
37 .loc 1 112 3 view .LVU2
38 .loc 1 112 35 is_stmt 0 view .LVU3
39 000a D0F80434 ldr r3, [r0, #1028]
40 .loc 1 112 52 view .LVU4
41 000e 5A1C adds r2, r3, #1
42 0010 C0F80424 str r2, [r0, #1028]
43 .loc 1 112 56 view .LVU5
44 0014 0344 add r3, r3, r0
45 0016 1971 strb r1, [r3, #4]
113:../libSerial/src/serial.c **** instance->tx_usart_count += 1;
46 .loc 1 113 3 is_stmt 1 view .LVU6
47 .loc 1 113 28 is_stmt 0 view .LVU7
48 0018 B0F80E34 ldrh r3, [r0, #1038]
49 001c 0133 adds r3, r3, #1
50 001e 9BB2 uxth r3, r3
51 0020 A0F80E34 strh r3, [r0, #1038] @ movhi
114:../libSerial/src/serial.c **** if (instance->tx_usart_in_Ptr >= TX_USART_BUFF_SIZ)
52 .loc 1 114 3 is_stmt 1 view .LVU8
53 .loc 1 114 15 is_stmt 0 view .LVU9
54 0024 D0F80434 ldr r3, [r0, #1028]
55 .loc 1 114 6 view .LVU10
56 0028 B3F5806F cmp r3, #1024
57 002c 02D3 bcc .L2
115:../libSerial/src/serial.c **** {
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 4
116:../libSerial/src/serial.c **** instance->tx_usart_in_Ptr = 0;
58 .loc 1 116 7 is_stmt 1 view .LVU11
59 .loc 1 116 33 is_stmt 0 view .LVU12
60 002e 0023 movs r3, #0
61 0030 C0F80434 str r3, [r0, #1028]
62 .L2:
117:../libSerial/src/serial.c **** }
118:../libSerial/src/serial.c **** /* Handle overrun by losing oldest characters */
119:../libSerial/src/serial.c **** if (instance->tx_usart_in_Ptr == instance->tx_usart_out_Ptr)
63 .loc 1 119 3 is_stmt 1 view .LVU13
64 .loc 1 119 15 is_stmt 0 view .LVU14
65 0034 D0F80424 ldr r2, [r0, #1028]
66 .loc 1 119 44 view .LVU15
67 0038 D0F80834 ldr r3, [r0, #1032]
68 .loc 1 119 6 view .LVU16
69 003c 9A42 cmp r2, r3
70 003e 08D0 beq .L4
71 .L3:
120:../libSerial/src/serial.c **** {
121:../libSerial/src/serial.c **** instance->tx_usart_out_Ptr++;
122:../libSerial/src/serial.c **** if (instance->tx_usart_out_Ptr >= TX_USART_BUFF_SIZ)
123:../libSerial/src/serial.c **** {
124:../libSerial/src/serial.c **** instance->tx_usart_out_Ptr = 0;
125:../libSerial/src/serial.c **** }
126:../libSerial/src/serial.c **** }
127:../libSerial/src/serial.c ****
128:../libSerial/src/serial.c **** instance->tx_usart_running = 1;
72 .loc 1 128 3 is_stmt 1 view .LVU17
73 .loc 1 128 30 is_stmt 0 view .LVU18
74 0040 0123 movs r3, #1
75 0042 80F80C34 strb r3, [r0, #1036]
129:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_TXE);
76 .loc 1 129 3 is_stmt 1 view .LVU19
77 0046 0268 ldr r2, [r0]
78 0048 D368 ldr r3, [r2, #12]
79 004a 43F08003 orr r3, r3, #128
80 004e D360 str r3, [r2, #12]
130:../libSerial/src/serial.c **** }
81 .loc 1 130 1 is_stmt 0 view .LVU20
82 0050 7047 bx lr
83 .L4:
121:../libSerial/src/serial.c **** if (instance->tx_usart_out_Ptr >= TX_USART_BUFF_SIZ)
84 .loc 1 121 7 is_stmt 1 view .LVU21
121:../libSerial/src/serial.c **** if (instance->tx_usart_out_Ptr >= TX_USART_BUFF_SIZ)
85 .loc 1 121 15 is_stmt 0 view .LVU22
86 0052 D0F80834 ldr r3, [r0, #1032]
121:../libSerial/src/serial.c **** if (instance->tx_usart_out_Ptr >= TX_USART_BUFF_SIZ)
87 .loc 1 121 33 view .LVU23
88 0056 0133 adds r3, r3, #1
89 0058 C0F80834 str r3, [r0, #1032]
122:../libSerial/src/serial.c **** {
90 .loc 1 122 7 is_stmt 1 view .LVU24
122:../libSerial/src/serial.c **** {
91 .loc 1 122 19 is_stmt 0 view .LVU25
92 005c D0F80834 ldr r3, [r0, #1032]
122:../libSerial/src/serial.c **** {
93 .loc 1 122 10 view .LVU26
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 5
94 0060 B3F5806F cmp r3, #1024
95 0064 ECD3 bcc .L3
124:../libSerial/src/serial.c **** }
96 .loc 1 124 4 is_stmt 1 view .LVU27
124:../libSerial/src/serial.c **** }
97 .loc 1 124 31 is_stmt 0 view .LVU28
98 0066 0023 movs r3, #0
99 0068 C0F80834 str r3, [r0, #1032]
100 006c E8E7 b .L3
101 .cfi_endproc
102 .LFE69:
104 .section .text.SerialCharsReceived,"ax",%progbits
105 .align 1
106 .global SerialCharsReceived
107 .syntax unified
108 .thumb
109 .thumb_func
110 .fpu softvfp
112 SerialCharsReceived:
113 .LVL1:
114 .LFB65:
27:../libSerial/src/serial.c **** uint16_t result = 0; // assume no characters received yet
115 .loc 1 27 1 is_stmt 1 view -0
116 .cfi_startproc
117 @ args = 0, pretend = 0, frame = 0
118 @ frame_needed = 0, uses_anonymous_args = 0
119 @ link register save eliminated.
27:../libSerial/src/serial.c **** uint16_t result = 0; // assume no characters received yet
120 .loc 1 27 1 is_stmt 0 view .LVU30
121 0000 0346 mov r3, r0
28:../libSerial/src/serial.c **** __HAL_UART_DISABLE_IT (instance, UART_IT_RXNE);
122 .loc 1 28 3 is_stmt 1 view .LVU31
123 .LVL2:
29:../libSerial/src/serial.c ****
124 .loc 1 29 3 view .LVU32
125 0002 0168 ldr r1, [r0]
126 0004 CA68 ldr r2, [r1, #12]
127 0006 22F02002 bic r2, r2, #32
128 000a CA60 str r2, [r1, #12]
31:../libSerial/src/serial.c **** { // buffer is full...
129 .loc 1 31 3 view .LVU33
31:../libSerial/src/serial.c **** { // buffer is full...
130 .loc 1 31 15 is_stmt 0 view .LVU34
131 000c 90F81828 ldrb r2, [r0, #2072] @ zero_extendqisi2
31:../libSerial/src/serial.c **** { // buffer is full...
132 .loc 1 31 6 view .LVU35
133 0010 C2B9 cbnz r2, .L8
35:../libSerial/src/serial.c **** { // buffer has not wrapped...
134 .loc 1 35 8 is_stmt 1 view .LVU36
35:../libSerial/src/serial.c **** { // buffer has not wrapped...
135 .loc 1 35 20 is_stmt 0 view .LVU37
136 0012 D0F81018 ldr r1, [r0, #2064]
35:../libSerial/src/serial.c **** { // buffer has not wrapped...
137 .loc 1 35 49 view .LVU38
138 0016 D0F81428 ldr r2, [r0, #2068]
35:../libSerial/src/serial.c **** { // buffer has not wrapped...
139 .loc 1 35 11 view .LVU39
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 6
140 001a 9142 cmp r1, r2
141 001c 08D3 bcc .L7
37:../libSerial/src/serial.c **** }
142 .loc 1 37 7 is_stmt 1 view .LVU40
37:../libSerial/src/serial.c **** }
143 .loc 1 37 24 is_stmt 0 view .LVU41
144 001e D0F81008 ldr r0, [r0, #2064]
145 .LVL3:
37:../libSerial/src/serial.c **** }
146 .loc 1 37 42 view .LVU42
147 0022 80B2 uxth r0, r0
37:../libSerial/src/serial.c **** }
148 .loc 1 37 52 view .LVU43
149 0024 D3F81428 ldr r2, [r3, #2068]
37:../libSerial/src/serial.c **** }
150 .loc 1 37 42 view .LVU44
151 0028 92B2 uxth r2, r2
37:../libSerial/src/serial.c **** }
152 .loc 1 37 14 view .LVU45
153 002a 801A subs r0, r0, r2
154 002c 80B2 uxth r0, r0
155 .LVL4:
37:../libSerial/src/serial.c **** }
156 .loc 1 37 14 view .LVU46
157 002e 0BE0 b .L6
158 .LVL5:
159 .L7:
41:../libSerial/src/serial.c **** + instance->rx_usart_in_Ptr;
160 .loc 1 41 7 is_stmt 1 view .LVU47
42:../libSerial/src/serial.c **** }
161 .loc 1 42 14 is_stmt 0 view .LVU48
162 0030 D0F81008 ldr r0, [r0, #2064]
163 .LVL6:
41:../libSerial/src/serial.c **** + instance->rx_usart_in_Ptr;
164 .loc 1 41 44 view .LVU49
165 0034 D3F81428 ldr r2, [r3, #2068]
42:../libSerial/src/serial.c **** }
166 .loc 1 42 4 view .LVU50
167 0038 801A subs r0, r0, r2
168 003a 80B2 uxth r0, r0
41:../libSerial/src/serial.c **** + instance->rx_usart_in_Ptr;
169 .loc 1 41 14 view .LVU51
170 003c 00F58060 add r0, r0, #1024
171 0040 80B2 uxth r0, r0
172 .LVL7:
41:../libSerial/src/serial.c **** + instance->rx_usart_in_Ptr;
173 .loc 1 41 14 view .LVU52
174 0042 01E0 b .L6
175 .LVL8:
176 .L8:
33:../libSerial/src/serial.c **** }
177 .loc 1 33 14 view .LVU53
178 0044 4FF48060 mov r0, #1024
179 .LVL9:
180 .L6:
44:../libSerial/src/serial.c ****
181 .loc 1 44 3 is_stmt 1 view .LVU54
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 7
182 0048 1A68 ldr r2, [r3]
183 004a D368 ldr r3, [r2, #12]
184 .LVL10:
44:../libSerial/src/serial.c ****
185 .loc 1 44 3 is_stmt 0 view .LVU55
186 004c 43F02003 orr r3, r3, #32
187 0050 D360 str r3, [r2, #12]
46:../libSerial/src/serial.c **** }
188 .loc 1 46 3 is_stmt 1 view .LVU56
47:../libSerial/src/serial.c ****
189 .loc 1 47 1 is_stmt 0 view .LVU57
190 0052 7047 bx lr
191 .cfi_endproc
192 .LFE65:
194 .section .text.PollSerial,"ax",%progbits
195 .align 1
196 .global PollSerial
197 .syntax unified
198 .thumb
199 .thumb_func
200 .fpu softvfp
202 PollSerial:
203 .LVL11:
204 .LFB66:
51:../libSerial/src/serial.c **** uint8_t rc;
205 .loc 1 51 1 is_stmt 1 view -0
206 .cfi_startproc
207 @ args = 0, pretend = 0, frame = 0
208 @ frame_needed = 0, uses_anonymous_args = 0
209 @ link register save eliminated.
51:../libSerial/src/serial.c **** uint8_t rc;
210 .loc 1 51 1 is_stmt 0 view .LVU59
211 0000 0346 mov r3, r0
52:../libSerial/src/serial.c ****
212 .loc 1 52 3 is_stmt 1 view .LVU60
54:../libSerial/src/serial.c **** rc = (instance->rx_usart_buffer_full
213 .loc 1 54 3 view .LVU61
214 0002 0168 ldr r1, [r0]
215 0004 CA68 ldr r2, [r1, #12]
216 0006 22F02002 bic r2, r2, #32
217 000a CA60 str r2, [r1, #12]
55:../libSerial/src/serial.c **** || (instance->rx_usart_in_Ptr != instance->rx_usart_out_Ptr));
218 .loc 1 55 3 view .LVU62
55:../libSerial/src/serial.c **** || (instance->rx_usart_in_Ptr != instance->rx_usart_out_Ptr));
219 .loc 1 55 17 is_stmt 0 view .LVU63
220 000c 90F81828 ldrb r2, [r0, #2072] @ zero_extendqisi2
56:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
221 .loc 1 56 7 view .LVU64
222 0010 3AB9 cbnz r2, .L11
56:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
223 .loc 1 56 19 discriminator 2 view .LVU65
224 0012 D0F81018 ldr r1, [r0, #2064]
56:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
225 .loc 1 56 48 discriminator 2 view .LVU66
226 0016 D0F81428 ldr r2, [r0, #2068]
56:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
227 .loc 1 56 7 discriminator 2 view .LVU67
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 8
228 001a 9142 cmp r1, r2
229 001c 08D0 beq .L12
56:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
230 .loc 1 56 7 view .LVU68
231 001e 0120 movs r0, #1
232 .LVL12:
56:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
233 .loc 1 56 7 view .LVU69
234 0020 00E0 b .L10
235 .LVL13:
236 .L11:
56:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
237 .loc 1 56 7 view .LVU70
238 0022 0120 movs r0, #1
239 .LVL14:
240 .L10:
57:../libSerial/src/serial.c ****
241 .loc 1 57 3 is_stmt 1 view .LVU71
242 0024 1A68 ldr r2, [r3]
243 0026 D368 ldr r3, [r2, #12]
244 .LVL15:
57:../libSerial/src/serial.c ****
245 .loc 1 57 3 is_stmt 0 view .LVU72
246 0028 43F02003 orr r3, r3, #32
247 002c D360 str r3, [r2, #12]
59:../libSerial/src/serial.c **** }
248 .loc 1 59 3 is_stmt 1 view .LVU73
60:../libSerial/src/serial.c ****
249 .loc 1 60 1 is_stmt 0 view .LVU74
250 002e 7047 bx lr
251 .LVL16:
252 .L12:
56:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
253 .loc 1 56 7 view .LVU75
254 0030 0020 movs r0, #0
255 .LVL17:
56:../libSerial/src/serial.c **** __HAL_UART_ENABLE_IT (instance, UART_IT_RXNE);
256 .loc 1 56 7 view .LVU76
257 0032 F7E7 b .L10
258 .cfi_endproc
259 .LFE66:
261 .section .text.GetCharSerial,"ax",%progbits
262 .align 1
263 .global GetCharSerial
264 .syntax unified
265 .thumb
266 .thumb_func
267 .fpu softvfp
269 GetCharSerial:
270 .LVL18:
271 .LFB67:
68:../libSerial/src/serial.c **** uint8_t c;
272 .loc 1 68 1 is_stmt 1 view -0
273 .cfi_startproc
274 @ args = 0, pretend = 0, frame = 0
275 @ frame_needed = 0, uses_anonymous_args = 0
276 @ link register save eliminated.
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 9
68:../libSerial/src/serial.c **** uint8_t c;
277 .loc 1 68 1 is_stmt 0 view .LVU78
278 0000 0346 mov r3, r0
69:../libSerial/src/serial.c **** __HAL_UART_DISABLE_IT (instance, UART_IT_RXNE);
279 .loc 1 69 3 is_stmt 1 view .LVU79
70:../libSerial/src/serial.c **** while (!instance->rx_usart_buffer_full
280 .loc 1 70 3 view .LVU80
281 0002 0168 ldr r1, [r0]
282 0004 CA68 ldr r2, [r1, #12]
283 0006 22F02002 bic r2, r2, #32
284 000a CA60 str r2, [r1, #12]
71:../libSerial/src/serial.c **** && (instance->rx_usart_in_Ptr == instance->rx_usart_out_Ptr))
285 .loc 1 71 3 view .LVU81
286 .L14:
71:../libSerial/src/serial.c **** && (instance->rx_usart_in_Ptr == instance->rx_usart_out_Ptr))
287 .loc 1 71 19 is_stmt 0 view .LVU82
288 000c 93F81828 ldrb r2, [r3, #2072] @ zero_extendqisi2
71:../libSerial/src/serial.c **** && (instance->rx_usart_in_Ptr == instance->rx_usart_out_Ptr))
289 .loc 1 71 9 view .LVU83
290 0010 8AB9 cbnz r2, .L15
72:../libSerial/src/serial.c **** {
291 .loc 1 72 19 view .LVU84
292 0012 D3F81018 ldr r1, [r3, #2064]
72:../libSerial/src/serial.c **** {
293 .loc 1 72 48 view .LVU85
294 0016 D3F81428 ldr r2, [r3, #2068]
72:../libSerial/src/serial.c **** {
295 .loc 1 72 7 view .LVU86
296 001a 9142 cmp r1, r2
297 001c 0BD1 bne .L15
74:../libSerial/src/serial.c **** __WFI (); /* wait for something */
298 .loc 1 74 7 is_stmt 1 view .LVU87
299 001e 1968 ldr r1, [r3]
300 0020 CA68 ldr r2, [r1, #12]
301 0022 42F02002 orr r2, r2, #32
302 0026 CA60 str r2, [r1, #12]
75:../libSerial/src/serial.c **** __HAL_UART_DISABLE_IT (instance, UART_IT_RXNE);
303 .loc 1 75 7 view .LVU88
304 .syntax unified
305 @ 75 "../libSerial/src/serial.c" 1
306 0028 30BF wfi
307 @ 0 "" 2
76:../libSerial/src/serial.c **** }
308 .loc 1 76 7 view .LVU89
309 .thumb
310 .syntax unified
311 002a 1968 ldr r1, [r3]
312 002c CA68 ldr r2, [r1, #12]
313 002e 22F02002 bic r2, r2, #32
314 0032 CA60 str r2, [r1, #12]
315 0034 EAE7 b .L14
316 .L15:
79:../libSerial/src/serial.c **** instance->rx_usart_buffer_full = 0; /* removed character */
317 .loc 1 79 3 view .LVU90
79:../libSerial/src/serial.c **** instance->rx_usart_buffer_full = 0; /* removed character */
318 .loc 1 79 39 is_stmt 0 view .LVU91
319 0036 D3F81428 ldr r2, [r3, #2068]
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 10
79:../libSerial/src/serial.c **** instance->rx_usart_buffer_full = 0; /* removed character */
320 .loc 1 79 5 view .LVU92
321 003a 1A44 add r2, r2, r3
322 003c 92F81004 ldrb r0, [r2, #1040] @ zero_extendqisi2
323 .LVL19:
79:../libSerial/src/serial.c **** instance->rx_usart_buffer_full = 0; /* removed character */
324 .loc 1 79 5 view .LVU93
325 0040 C0B2 uxtb r0, r0
326 .LVL20:
80:../libSerial/src/serial.c **** instance->rx_usart_out_Ptr++;
327 .loc 1 80 3 is_stmt 1 view .LVU94
80:../libSerial/src/serial.c **** instance->rx_usart_out_Ptr++;
328 .loc 1 80 34 is_stmt 0 view .LVU95
329 0042 0022 movs r2, #0
330 0044 83F81828 strb r2, [r3, #2072]
81:../libSerial/src/serial.c **** if (instance->rx_usart_out_Ptr >= RX_USART_BUFF_SIZ)
331 .loc 1 81 3 is_stmt 1 view .LVU96
81:../libSerial/src/serial.c **** if (instance->rx_usart_out_Ptr >= RX_USART_BUFF_SIZ)
332 .loc 1 81 11 is_stmt 0 view .LVU97
333 0048 D3F81428 ldr r2, [r3, #2068]
81:../libSerial/src/serial.c **** if (instance->rx_usart_out_Ptr >= RX_USART_BUFF_SIZ)
334 .loc 1 81 29 view .LVU98
335 004c 0132 adds r2, r2, #1
336 004e C3F81428 str r2, [r3, #2068]
82:../libSerial/src/serial.c **** {
337 .loc 1 82 3 is_stmt 1 view .LVU99
82:../libSerial/src/serial.c **** {
338 .loc 1 82 15 is_stmt 0 view .LVU100
339 0052 D3F81428 ldr r2, [r3, #2068]
82:../libSerial/src/serial.c **** {
340 .loc 1 82 6 view .LVU101
341 0056 B2F5806F cmp r2, #1024
342 005a 02D3 bcc .L17
84:../libSerial/src/serial.c **** }
343 .loc 1 84 7 is_stmt 1 view .LVU102
84:../libSerial/src/serial.c **** }
344 .loc 1 84 34 is_stmt 0 view .LVU103
345 005c 0022 movs r2, #0
346 005e C3F81428 str r2, [r3, #2068]
347 .L17:
86:../libSerial/src/serial.c **** return c;
348 .loc 1 86 3 is_stmt 1 view .LVU104
349 0062 1A68 ldr r2, [r3]
350 0064 D368 ldr r3, [r2, #12]
351 .LVL21:
86:../libSerial/src/serial.c **** return c;
352 .loc 1 86 3 is_stmt 0 view .LVU105
353 0066 43F02003 orr r3, r3, #32
354 006a D360 str r3, [r2, #12]
87:../libSerial/src/serial.c **** }
355 .loc 1 87 3 is_stmt 1 view .LVU106
88:../libSerial/src/serial.c ****
356 .loc 1 88 1 is_stmt 0 view .LVU107
357 006c 7047 bx lr
358 .cfi_endproc
359 .LFE67:
361 .section .text.EnableSerialRxInterrupt,"ax",%progbits
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 11
362 .align 1
363 .global EnableSerialRxInterrupt
364 .syntax unified
365 .thumb
366 .thumb_func
367 .fpu softvfp
369 EnableSerialRxInterrupt:
370 .LVL22:
371 .LFB68:
97:../libSerial/src/serial.c **** /* cheat here - this is a macro and I have the same Instance member as the HAL handle, with the s
372 .loc 1 97 1 is_stmt 1 view -0
373 .cfi_startproc
374 @ args = 0, pretend = 0, frame = 0
375 @ frame_needed = 0, uses_anonymous_args = 0
376 @ link register save eliminated.
99:../libSerial/src/serial.c **** }
377 .loc 1 99 3 view .LVU109
378 0000 0268 ldr r2, [r0]
379 0002 D368 ldr r3, [r2, #12]
380 0004 43F02003 orr r3, r3, #32
381 0008 D360 str r3, [r2, #12]
100:../libSerial/src/serial.c ****
382 .loc 1 100 1 is_stmt 0 view .LVU110
383 000a 7047 bx lr
384 .cfi_endproc
385 .LFE68:
387 .section .text.UART_IRQHandler,"ax",%progbits
388 .align 1
389 .global UART_IRQHandler
390 .syntax unified
391 .thumb
392 .thumb_func
393 .fpu softvfp
395 UART_IRQHandler:
396 .LVL23:
397 .LFB70:
131:../libSerial/src/serial.c ****
132:../libSerial/src/serial.c **** void
133:../libSerial/src/serial.c **** UART_IRQHandler (usart_ctl *instance)
134:../libSerial/src/serial.c **** {
398 .loc 1 134 1 is_stmt 1 view -0
399 .cfi_startproc
400 @ args = 0, pretend = 0, frame = 0
401 @ frame_needed = 0, uses_anonymous_args = 0
402 @ link register save eliminated.
403 .loc 1 134 1 is_stmt 0 view .LVU112
404 0000 30B4 push {r4, r5}
405 .LCFI0:
406 .cfi_def_cfa_offset 8
407 .cfi_offset 4, -8
408 .cfi_offset 5, -4
135:../libSerial/src/serial.c ****
136:../libSerial/src/serial.c **** __disable_irq ();
409 .loc 1 136 3 is_stmt 1 view .LVU113
410 .LBB7:
411 .LBI7:
412 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 12
1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h
3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file
4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.0.4
5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 09. April 2018
6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/
7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
9:Drivers/CMSIS/Include/cmsis_gcc.h **** *
10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0
11:Drivers/CMSIS/Include/cmsis_gcc.h **** *
12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may
13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License.
14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at
15:Drivers/CMSIS/Include/cmsis_gcc.h **** *
16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0
17:Drivers/CMSIS/Include/cmsis_gcc.h **** *
18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software
19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and
22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License.
23:Drivers/CMSIS/Include/cmsis_gcc.h **** */
24:Drivers/CMSIS/Include/cmsis_gcc.h ****
25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
27:Drivers/CMSIS/Include/cmsis_gcc.h ****
28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
33:Drivers/CMSIS/Include/cmsis_gcc.h ****
34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */
35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin
36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0)
37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
38:Drivers/CMSIS/Include/cmsis_gcc.h ****
39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */
40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM
41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm
42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE
44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline
45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE
47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline
48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE
50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline
51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN
53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__))
54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED
56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used))
57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 13
58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK
59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak))
60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED
62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1)))
63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT
65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION
68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1)))
69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */
71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; };
75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE
79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))-
85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ
87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add
93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE
95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))-
101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ
103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add
109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED
111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x)))
112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT
114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 14
115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
116:Drivers/CMSIS/Include/cmsis_gcc.h ****
117:Drivers/CMSIS/Include/cmsis_gcc.h ****
118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */
119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface
120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
122:Drivers/CMSIS/Include/cmsis_gcc.h **** */
123:Drivers/CMSIS/Include/cmsis_gcc.h ****
124:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts
126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
128:Drivers/CMSIS/Include/cmsis_gcc.h **** */
129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void)
130:Drivers/CMSIS/Include/cmsis_gcc.h **** {
131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory");
132:Drivers/CMSIS/Include/cmsis_gcc.h **** }
133:Drivers/CMSIS/Include/cmsis_gcc.h ****
134:Drivers/CMSIS/Include/cmsis_gcc.h ****
135:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts
137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR.
138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
139:Drivers/CMSIS/Include/cmsis_gcc.h **** */
140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
413 .loc 2 140 27 view .LVU114
414 .LBB8:
141:Drivers/CMSIS/Include/cmsis_gcc.h **** {
142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory");
415 .loc 2 142 3 view .LVU115
416 .syntax unified
417 @ 142 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
418 0002 72B6 cpsid i
419 @ 0 "" 2
420 .thumb
421 .syntax unified
422 .LBE8:
423 .LBE7:
137:../libSerial/src/serial.c **** uint32_t rxStatus; // status from USART receiver
424 .loc 1 137 3 view .LVU116
138:../libSerial/src/serial.c ****
139:../libSerial/src/serial.c **** rxStatus = instance->Instance->SR;// read the status bits - this resets all the hardware signalli
425 .loc 1 139 3 view .LVU117
426 .loc 1 139 22 is_stmt 0 view .LVU118
427 0004 0368 ldr r3, [r0]
428 .loc 1 139 12 view .LVU119
429 0006 1A68 ldr r2, [r3]
430 .LVL24:
140:../libSerial/src/serial.c ****
141:../libSerial/src/serial.c **** if (rxStatus & USART_SR_RXNE)
431 .loc 1 141 3 is_stmt 1 view .LVU120
432 .loc 1 141 6 is_stmt 0 view .LVU121
433 0008 12F0200F tst r2, #32
434 000c 1AD0 beq .L20
435 .LBB9:
142:../libSerial/src/serial.c **** {
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 15
143:../libSerial/src/serial.c **** // no error has occurred...
144:../libSerial/src/serial.c **** uint8_t rxChar = (uint8_t) (instance->Instance->DR & 0xff);// read the bottom 8-bits only
436 .loc 1 144 7 is_stmt 1 view .LVU122
437 .loc 1 144 53 is_stmt 0 view .LVU123
438 000e 5968 ldr r1, [r3, #4]
439 .loc 1 144 15 view .LVU124
440 0010 C9B2 uxtb r1, r1
441 .LVL25:
145:../libSerial/src/serial.c ****
146:../libSerial/src/serial.c **** if (!instance->rx_usart_buffer_full)
442 .loc 1 146 7 is_stmt 1 view .LVU125
443 .loc 1 146 20 is_stmt 0 view .LVU126
444 0012 90F81848 ldrb r4, [r0, #2072] @ zero_extendqisi2
445 .loc 1 146 10 view .LVU127
446 0016 ACB9 cbnz r4, .L20
147:../libSerial/src/serial.c **** {
148:../libSerial/src/serial.c **** instance->rx_usart_buff[instance->rx_usart_in_Ptr++] = rxChar;
447 .loc 1 148 4 is_stmt 1 view .LVU128
448 .loc 1 148 36 is_stmt 0 view .LVU129
449 0018 D0F81048 ldr r4, [r0, #2064]
450 .loc 1 148 53 view .LVU130
451 001c 651C adds r5, r4, #1
452 001e C0F81058 str r5, [r0, #2064]
453 .loc 1 148 57 view .LVU131
454 0022 0444 add r4, r4, r0
455 0024 84F81014 strb r1, [r4, #1040]
149:../libSerial/src/serial.c ****
150:../libSerial/src/serial.c **** if (instance->rx_usart_in_Ptr >= RX_USART_BUFF_SIZ)
456 .loc 1 150 4 is_stmt 1 view .LVU132
457 .loc 1 150 16 is_stmt 0 view .LVU133
458 0028 D0F81018 ldr r1, [r0, #2064]
459 .LVL26:
460 .loc 1 150 7 view .LVU134
461 002c B1F5806F cmp r1, #1024
462 0030 02D3 bcc .L21
151:../libSerial/src/serial.c **** {
152:../libSerial/src/serial.c **** instance->rx_usart_in_Ptr = 0;
463 .loc 1 152 8 is_stmt 1 view .LVU135
464 .loc 1 152 34 is_stmt 0 view .LVU136
465 0032 0021 movs r1, #0
466 0034 C0F81018 str r1, [r0, #2064]
467 .LVL27:
468 .L21:
153:../libSerial/src/serial.c **** }
154:../libSerial/src/serial.c **** if (instance->rx_usart_in_Ptr == instance->rx_usart_out_Ptr)
469 .loc 1 154 4 is_stmt 1 view .LVU137
470 .loc 1 154 16 is_stmt 0 view .LVU138
471 0038 D0F81048 ldr r4, [r0, #2064]
472 .loc 1 154 45 view .LVU139
473 003c D0F81418 ldr r1, [r0, #2068]
474 .loc 1 154 7 view .LVU140
475 0040 8C42 cmp r4, r1
476 0042 24D0 beq .L26
477 .L20:
478 .loc 1 154 7 view .LVU141
479 .LBE9:
155:../libSerial/src/serial.c **** {
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 16
156:../libSerial/src/serial.c **** instance->rx_usart_buffer_full = 1; /* buffer overrun */
157:../libSerial/src/serial.c **** }
158:../libSerial/src/serial.c **** }
159:../libSerial/src/serial.c **** }
160:../libSerial/src/serial.c **** /* check for transmitter interrupt : this code is used */
161:../libSerial/src/serial.c **** if ((rxStatus & USART_SR_TXE) != RESET)
480 .loc 1 161 3 is_stmt 1 view .LVU142
481 .loc 1 161 6 is_stmt 0 view .LVU143
482 0044 12F0800F tst r2, #128
483 0048 2CD0 beq .L22
162:../libSerial/src/serial.c **** {
163:../libSerial/src/serial.c ****
164:../libSerial/src/serial.c **** /* Only enable the transmitter when baud detect has completed or check expired.
165:../libSerial/src/serial.c **** * and the software is ready for it to be enabled as programming mode is wanting
166:../libSerial/src/serial.c **** * to receive a response and that can get blocked if we're streaming a lot of debug messages*
167:../libSerial/src/serial.c **** if (instance->tx_usart_in_Ptr != instance->tx_usart_out_Ptr)
484 .loc 1 167 7 is_stmt 1 view .LVU144
485 .loc 1 167 19 is_stmt 0 view .LVU145
486 004a D0F80414 ldr r1, [r0, #1028]
487 .loc 1 167 48 view .LVU146
488 004e D0F80824 ldr r2, [r0, #1032]
489 .LVL28:
490 .loc 1 167 10 view .LVU147
491 0052 9142 cmp r1, r2
492 0054 1FD0 beq .L23
168:../libSerial/src/serial.c **** {
169:../libSerial/src/serial.c **** instance->Instance->DR =
493 .loc 1 169 4 is_stmt 1 view .LVU148
170:../libSerial/src/serial.c **** instance->tx_usart_buff[instance->tx_usart_out_Ptr++];
494 .loc 1 170 40 is_stmt 0 view .LVU149
495 0056 D0F80824 ldr r2, [r0, #1032]
496 .loc 1 170 58 view .LVU150
497 005a 511C adds r1, r2, #1
498 005c C0F80814 str r1, [r0, #1032]
499 .loc 1 170 31 view .LVU151
500 0060 0244 add r2, r2, r0
501 0062 1279 ldrb r2, [r2, #4] @ zero_extendqisi2
502 0064 D2B2 uxtb r2, r2
169:../libSerial/src/serial.c **** instance->tx_usart_buff[instance->tx_usart_out_Ptr++];
503 .loc 1 169 27 view .LVU152
504 0066 5A60 str r2, [r3, #4]
171:../libSerial/src/serial.c **** if (instance->tx_usart_count != 0)
505 .loc 1 171 4 is_stmt 1 view .LVU153
506 .loc 1 171 16 is_stmt 0 view .LVU154
507 0068 B0F80E34 ldrh r3, [r0, #1038]
508 006c 9BB2 uxth r3, r3
509 .loc 1 171 7 view .LVU155
510 006e 2BB1 cbz r3, .L24
172:../libSerial/src/serial.c **** instance->tx_usart_count -= 1;
511 .loc 1 172 6 is_stmt 1 view .LVU156
512 .loc 1 172 31 is_stmt 0 view .LVU157
513 0070 B0F80E34 ldrh r3, [r0, #1038]
514 0074 013B subs r3, r3, #1
515 0076 9BB2 uxth r3, r3
516 0078 A0F80E34 strh r3, [r0, #1038] @ movhi
517 .L24:
173:../libSerial/src/serial.c ****
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 17
174:../libSerial/src/serial.c **** if (instance->tx_usart_out_Ptr >= TX_USART_BUFF_SIZ)
518 .loc 1 174 4 is_stmt 1 view .LVU158
519 .loc 1 174 16 is_stmt 0 view .LVU159
520 007c D0F80834 ldr r3, [r0, #1032]
521 .loc 1 174 7 view .LVU160
522 0080 B3F5806F cmp r3, #1024
523 0084 0ED3 bcc .L22
175:../libSerial/src/serial.c **** {
176:../libSerial/src/serial.c **** instance->tx_usart_out_Ptr = 0;
524 .loc 1 176 8 is_stmt 1 view .LVU161
525 .loc 1 176 35 is_stmt 0 view .LVU162
526 0086 0023 movs r3, #0
527 0088 C0F80834 str r3, [r0, #1032]
528 008c 0AE0 b .L22
529 .LVL29:
530 .L26:
531 .LBB10:
156:../libSerial/src/serial.c **** }
532 .loc 1 156 8 is_stmt 1 view .LVU163
156:../libSerial/src/serial.c **** }
533 .loc 1 156 39 is_stmt 0 view .LVU164
534 008e 0121 movs r1, #1
535 0090 80F81818 strb r1, [r0, #2072]
536 0094 D6E7 b .L20
537 .LVL30:
538 .L23:
156:../libSerial/src/serial.c **** }
539 .loc 1 156 39 view .LVU165
540 .LBE10:
177:../libSerial/src/serial.c **** }
178:../libSerial/src/serial.c **** }
179:../libSerial/src/serial.c **** else
180:../libSerial/src/serial.c **** {
181:../libSerial/src/serial.c **** __HAL_UART_DISABLE_IT (instance, UART_IT_TXE);
541 .loc 1 181 4 is_stmt 1 view .LVU166
542 0096 DA68 ldr r2, [r3, #12]
543 0098 22F08002 bic r2, r2, #128
544 009c DA60 str r2, [r3, #12]
182:../libSerial/src/serial.c **** instance->tx_usart_running = 0;
545 .loc 1 182 4 view .LVU167
546 .loc 1 182 31 is_stmt 0 view .LVU168
547 009e 0023 movs r3, #0
548 00a0 80F80C34 strb r3, [r0, #1036]
549 .L22:
183:../libSerial/src/serial.c **** }
184:../libSerial/src/serial.c **** }
185:../libSerial/src/serial.c ****
186:../libSerial/src/serial.c **** __enable_irq ();
550 .loc 1 186 3 is_stmt 1 view .LVU169
551 .LBB11:
552 .LBI11:
129:Drivers/CMSIS/Include/cmsis_gcc.h **** {
553 .loc 2 129 27 view .LVU170
554 .LBB12:
131:Drivers/CMSIS/Include/cmsis_gcc.h **** }
555 .loc 2 131 3 view .LVU171
556 .syntax unified
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 18
557 @ 131 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
558 00a4 62B6 cpsie i
559 @ 0 "" 2
560 .thumb
561 .syntax unified
562 .LBE12:
563 .LBE11:
187:../libSerial/src/serial.c **** }
564 .loc 1 187 1 is_stmt 0 view .LVU172
565 00a6 30BC pop {r4, r5}
566 .LCFI1:
567 .cfi_restore 5
568 .cfi_restore 4
569 .cfi_def_cfa_offset 0
570 00a8 7047 bx lr
571 .cfi_endproc
572 .LFE70:
574 .section .text.PutCharSerial,"ax",%progbits
575 .align 1
576 .global PutCharSerial
577 .syntax unified
578 .thumb
579 .thumb_func
580 .fpu softvfp
582 PutCharSerial:
583 .LVL31:
584 .LFB71:
188:../libSerial/src/serial.c ****
189:../libSerial/src/serial.c **** void
190:../libSerial/src/serial.c **** PutCharSerial (usart_ctl *instance, uint8_t c)
191:../libSerial/src/serial.c **** {
585 .loc 1 191 1 is_stmt 1 view -0
586 .cfi_startproc
587 @ args = 0, pretend = 0, frame = 0
588 @ frame_needed = 0, uses_anonymous_args = 0
589 .loc 1 191 1 is_stmt 0 view .LVU174
590 0000 08B5 push {r3, lr}
591 .LCFI2:
592 .cfi_def_cfa_offset 8
593 .cfi_offset 3, -8
594 .cfi_offset 14, -4
192:../libSerial/src/serial.c **** // Put character in Crayon/Pen interface
193:../libSerial/src/serial.c **** PutCharSerialFIFO (instance, c);
595 .loc 1 193 3 is_stmt 1 view .LVU175
596 0002 FFF7FEFF bl PutCharSerialFIFO
597 .LVL32:
194:../libSerial/src/serial.c **** }
598 .loc 1 194 1 is_stmt 0 view .LVU176
599 0006 08BD pop {r3, pc}
600 .cfi_endproc
601 .LFE71:
603 .section .text.ResetTxBuffer,"ax",%progbits
604 .align 1
605 .global ResetTxBuffer
606 .syntax unified
607 .thumb
608 .thumb_func
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 19
609 .fpu softvfp
611 ResetTxBuffer:
612 .LVL33:
613 .LFB72:
195:../libSerial/src/serial.c ****
196:../libSerial/src/serial.c **** /*
197:../libSerial/src/serial.c **** * \brief
198:../libSerial/src/serial.c **** * ResetTxBuffer(void) - resets the serial transmitter buffer
199:../libSerial/src/serial.c **** */
200:../libSerial/src/serial.c **** void
201:../libSerial/src/serial.c **** ResetTxBuffer (usart_ctl *instance)
202:../libSerial/src/serial.c **** {
614 .loc 1 202 1 is_stmt 1 view -0
615 .cfi_startproc
616 @ args = 0, pretend = 0, frame = 0
617 @ frame_needed = 0, uses_anonymous_args = 0
618 @ link register save eliminated.
203:../libSerial/src/serial.c ****
204:../libSerial/src/serial.c **** instance->tx_usart_out_Ptr = 0;
619 .loc 1 204 3 view .LVU178
620 .loc 1 204 30 is_stmt 0 view .LVU179
621 0000 0023 movs r3, #0
622 0002 C0F80834 str r3, [r0, #1032]
205:../libSerial/src/serial.c **** instance->tx_usart_running = 0;
623 .loc 1 205 3 is_stmt 1 view .LVU180
624 .loc 1 205 30 is_stmt 0 view .LVU181
625 0006 80F80C34 strb r3, [r0, #1036]
206:../libSerial/src/serial.c **** instance->tx_usart_in_Ptr = 0; /* setup in pointer last to drop any chars come in */
626 .loc 1 206 3 is_stmt 1 view .LVU182
627 .loc 1 206 29 is_stmt 0 view .LVU183
628 000a C0F80434 str r3, [r0, #1028]
207:../libSerial/src/serial.c **** instance->tx_usart_count = 0;
629 .loc 1 207 3 is_stmt 1 view .LVU184
630 .loc 1 207 28 is_stmt 0 view .LVU185
631 000e A0F80E34 strh r3, [r0, #1038] @ movhi
208:../libSerial/src/serial.c ****
209:../libSerial/src/serial.c **** }
632 .loc 1 209 1 view .LVU186
633 0012 7047 bx lr
634 .cfi_endproc
635 .LFE72:
637 .section .text.ResetRxBuffer,"ax",%progbits
638 .align 1
639 .global ResetRxBuffer
640 .syntax unified
641 .thumb
642 .thumb_func
643 .fpu softvfp
645 ResetRxBuffer:
646 .LVL34:
647 .LFB73:
210:../libSerial/src/serial.c ****
211:../libSerial/src/serial.c **** /*
212:../libSerial/src/serial.c **** * \brief
213:../libSerial/src/serial.c **** * void ResetRxBuffer(void) - resets the serial receiver buffer
214:../libSerial/src/serial.c **** */
215:../libSerial/src/serial.c **** void
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 20
216:../libSerial/src/serial.c **** ResetRxBuffer (usart_ctl *instance)
217:../libSerial/src/serial.c **** {
648 .loc 1 217 1 is_stmt 1 view -0
649 .cfi_startproc
650 @ args = 0, pretend = 0, frame = 0
651 @ frame_needed = 0, uses_anonymous_args = 0
652 @ link register save eliminated.
218:../libSerial/src/serial.c ****
219:../libSerial/src/serial.c **** instance->rx_usart_out_Ptr = 0;
653 .loc 1 219 3 view .LVU188
654 .loc 1 219 30 is_stmt 0 view .LVU189
655 0000 0023 movs r3, #0
656 0002 C0F81438 str r3, [r0, #2068]
220:../libSerial/src/serial.c **** instance->rx_usart_buffer_full = 0;
657 .loc 1 220 3 is_stmt 1 view .LVU190
658 .loc 1 220 34 is_stmt 0 view .LVU191
659 0006 80F81838 strb r3, [r0, #2072]
221:../libSerial/src/serial.c **** instance->rx_usart_in_Ptr = 0; /* setup in pointer last to drop any chars come in */
660 .loc 1 221 3 is_stmt 1 view .LVU192
661 .loc 1 221 29 is_stmt 0 view .LVU193
662 000a C0F81038 str r3, [r0, #2064]
222:../libSerial/src/serial.c ****
223:../libSerial/src/serial.c **** }
663 .loc 1 223 1 view .LVU194
664 000e 7047 bx lr
665 .cfi_endproc
666 .LFE73:
668 .section .text.FlushSerial,"ax",%progbits
669 .align 1
670 .global FlushSerial
671 .syntax unified
672 .thumb
673 .thumb_func
674 .fpu softvfp
676 FlushSerial:
677 .LVL35:
678 .LFB74:
224:../libSerial/src/serial.c ****
225:../libSerial/src/serial.c **** /***!
226:../libSerial/src/serial.c **** * @brief Flush Serial input and output buffers
227:../libSerial/src/serial.c **** */
228:../libSerial/src/serial.c **** void
229:../libSerial/src/serial.c **** FlushSerial (usart_ctl *instance)
230:../libSerial/src/serial.c **** {
679 .loc 1 230 1 is_stmt 1 view -0
680 .cfi_startproc
681 @ args = 0, pretend = 0, frame = 0
682 @ frame_needed = 0, uses_anonymous_args = 0
683 .loc 1 230 1 is_stmt 0 view .LVU196
684 0000 10B5 push {r4, lr}
685 .LCFI3:
686 .cfi_def_cfa_offset 8
687 .cfi_offset 4, -8
688 .cfi_offset 14, -4
689 0002 0446 mov r4, r0
231:../libSerial/src/serial.c **** ResetRxBuffer (instance);
690 .loc 1 231 3 is_stmt 1 view .LVU197
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 21
691 0004 FFF7FEFF bl ResetRxBuffer
692 .LVL36:
232:../libSerial/src/serial.c **** ResetTxBuffer (instance);
693 .loc 1 232 3 view .LVU198
694 0008 2046 mov r0, r4
695 000a FFF7FEFF bl ResetTxBuffer
696 .LVL37:
233:../libSerial/src/serial.c **** }
697 .loc 1 233 1 is_stmt 0 view .LVU199
698 000e 10BD pop {r4, pc}
699 .loc 1 233 1 view .LVU200
700 .cfi_endproc
701 .LFE74:
703 .section .text.TxBufferEmpty,"ax",%progbits
704 .align 1
705 .global TxBufferEmpty
706 .syntax unified
707 .thumb
708 .thumb_func
709 .fpu softvfp
711 TxBufferEmpty:
712 .LVL38:
713 .LFB75:
234:../libSerial/src/serial.c ****
235:../libSerial/src/serial.c **** /***!
236:../libSerial/src/serial.c **** * @brief check if tx buffer is empty...
237:../libSerial/src/serial.c **** */
238:../libSerial/src/serial.c **** uint8_t
239:../libSerial/src/serial.c **** TxBufferEmpty (usart_ctl *instance)
240:../libSerial/src/serial.c **** {
714 .loc 1 240 1 is_stmt 1 view -0
715 .cfi_startproc
716 @ args = 0, pretend = 0, frame = 0
717 @ frame_needed = 0, uses_anonymous_args = 0
718 @ link register save eliminated.
241:../libSerial/src/serial.c **** return (0 == instance->tx_usart_count );
719 .loc 1 241 3 view .LVU202
720 .loc 1 241 24 is_stmt 0 view .LVU203
721 0000 B0F80E04 ldrh r0, [r0, #1038]
722 .LVL39:
723 .loc 1 241 24 view .LVU204
724 0004 80B2 uxth r0, r0
242:../libSerial/src/serial.c **** }
725 .loc 1 242 1 view .LVU205
726 0006 B0FA80F0 clz r0, r0
727 000a 4009 lsrs r0, r0, #5
728 000c 7047 bx lr
729 .cfi_endproc
730 .LFE75:
732 .section .text.TxWaitEmpty,"ax",%progbits
733 .align 1
734 .global TxWaitEmpty
735 .syntax unified
736 .thumb
737 .thumb_func
738 .fpu softvfp
740 TxWaitEmpty:
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 22
741 .LFB76:
243:../libSerial/src/serial.c ****
244:../libSerial/src/serial.c **** /***!
245:../libSerial/src/serial.c **** * @brief wait for transmission to finish
246:../libSerial/src/serial.c **** */
247:../libSerial/src/serial.c ****
248:../libSerial/src/serial.c **** void TxWaitEmpty(usart_ctl *instance)
249:../libSerial/src/serial.c **** {
742 .loc 1 249 1 is_stmt 1 view -0
743 .cfi_startproc
744 @ args = 0, pretend = 0, frame = 0
745 @ frame_needed = 0, uses_anonymous_args = 0
746 @ link register save eliminated.
747 .LVL40:
748 .L35:
250:../libSerial/src/serial.c **** while (instance->tx_usart_count ||
251:../libSerial/src/serial.c **** (instance->Instance->SR & USART_SR_TC) != RESET) {};
749 .loc 1 251 58 discriminator 3 view .LVU207
250:../libSerial/src/serial.c **** while (instance->tx_usart_count ||
750 .loc 1 250 18 is_stmt 0 discriminator 3 view .LVU208
751 0000 B0F80E34 ldrh r3, [r0, #1038]
752 0004 9BB2 uxth r3, r3
250:../libSerial/src/serial.c **** while (instance->tx_usart_count ||
753 .loc 1 250 9 discriminator 3 view .LVU209
754 0006 002B cmp r3, #0
755 0008 FAD1 bne .L35
756 .loc 1 251 17 discriminator 2 view .LVU210
757 000a 0368 ldr r3, [r0]
758 .loc 1 251 27 discriminator 2 view .LVU211
759 000c 1B68 ldr r3, [r3]
250:../libSerial/src/serial.c **** while (instance->tx_usart_count ||
760 .loc 1 250 35 discriminator 2 view .LVU212
761 000e 13F0400F tst r3, #64
762 0012 F5D1 bne .L35
252:../libSerial/src/serial.c **** }
763 .loc 1 252 1 view .LVU213
764 0014 7047 bx lr
765 .cfi_endproc
766 .LFE76:
768 .section .text.init_usart_ctl,"ax",%progbits
769 .align 1
770 .global init_usart_ctl
771 .syntax unified
772 .thumb
773 .thumb_func
774 .fpu softvfp
776 init_usart_ctl:
777 .LVL41:
778 .LFB77:
253:../libSerial/src/serial.c ****
254:../libSerial/src/serial.c **** /****
255:../libSerial/src/serial.c **** * @brief Initialise control structure
256:../libSerial/src/serial.c **** */
257:../libSerial/src/serial.c **** void
258:../libSerial/src/serial.c **** init_usart_ctl (usart_ctl *instance, USART_TypeDef * usart )
259:../libSerial/src/serial.c **** {
779 .loc 1 259 1 is_stmt 1 view -0
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 23
780 .cfi_startproc
781 @ args = 0, pretend = 0, frame = 0
782 @ frame_needed = 0, uses_anonymous_args = 0
783 @ link register save eliminated.
260:../libSerial/src/serial.c ****
261:../libSerial/src/serial.c **** instance->Instance = usart;
784 .loc 1 261 3 view .LVU215
785 .loc 1 261 22 is_stmt 0 view .LVU216
786 0000 0160 str r1, [r0]
262:../libSerial/src/serial.c ****
263:../libSerial/src/serial.c **** instance->tx_usart_in_Ptr = 0;
787 .loc 1 263 3 is_stmt 1 view .LVU217
788 .loc 1 263 29 is_stmt 0 view .LVU218
789 0002 0023 movs r3, #0
790 0004 C0F80434 str r3, [r0, #1028]
264:../libSerial/src/serial.c **** instance->tx_usart_out_Ptr = 0;
791 .loc 1 264 3 is_stmt 1 view .LVU219
792 .loc 1 264 30 is_stmt 0 view .LVU220
793 0008 C0F80834 str r3, [r0, #1032]
265:../libSerial/src/serial.c **** instance->tx_usart_running = 0;
794 .loc 1 265 3 is_stmt 1 view .LVU221
795 .loc 1 265 30 is_stmt 0 view .LVU222
796 000c 80F80C34 strb r3, [r0, #1036]
266:../libSerial/src/serial.c **** instance->tx_usart_count = 0;
797 .loc 1 266 3 is_stmt 1 view .LVU223
798 .loc 1 266 28 is_stmt 0 view .LVU224
799 0010 A0F80E34 strh r3, [r0, #1038] @ movhi
267:../libSerial/src/serial.c ****
268:../libSerial/src/serial.c **** instance->rx_usart_in_Ptr = 0;
800 .loc 1 268 3 is_stmt 1 view .LVU225
801 .loc 1 268 29 is_stmt 0 view .LVU226
802 0014 C0F81038 str r3, [r0, #2064]
269:../libSerial/src/serial.c **** instance->rx_usart_out_Ptr = 0;
803 .loc 1 269 3 is_stmt 1 view .LVU227
804 .loc 1 269 30 is_stmt 0 view .LVU228
805 0018 C0F81438 str r3, [r0, #2068]
270:../libSerial/src/serial.c **** instance->rx_usart_buffer_full = 0;
806 .loc 1 270 3 is_stmt 1 view .LVU229
807 .loc 1 270 34 is_stmt 0 view .LVU230
808 001c 80F81838 strb r3, [r0, #2072]
271:../libSerial/src/serial.c ****
272:../libSerial/src/serial.c **** }
809 .loc 1 272 1 view .LVU231
810 0020 7047 bx lr
811 .cfi_endproc
812 .LFE77:
814 .section .text.USART1_IRQHandler,"ax",%progbits
815 .align 1
816 .global USART1_IRQHandler
817 .syntax unified
818 .thumb
819 .thumb_func
820 .fpu softvfp
822 USART1_IRQHandler:
823 .LFB78:
273:../libSerial/src/serial.c ****
274:../libSerial/src/serial.c **** /////////////////////////////////////////////////////////
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 24
275:../libSerial/src/serial.c **** /// Moved from generated code to avoid crappy HAL handler
276:../libSerial/src/serial.c **** #if defined SERIAL_UART1
277:../libSerial/src/serial.c **** void USART1_IRQHandler(void)
278:../libSerial/src/serial.c **** {
824 .loc 1 278 1 is_stmt 1 view -0
825 .cfi_startproc
826 @ args = 0, pretend = 0, frame = 0
827 @ frame_needed = 0, uses_anonymous_args = 0
828 0000 08B5 push {r3, lr}
829 .LCFI4:
830 .cfi_def_cfa_offset 8
831 .cfi_offset 3, -8
832 .cfi_offset 14, -4
279:../libSerial/src/serial.c **** UART_IRQHandler(&uc1);
833 .loc 1 279 2 view .LVU233
834 0002 0248 ldr r0, .L40
835 0004 FFF7FEFF bl UART_IRQHandler
836 .LVL42:
280:../libSerial/src/serial.c **** }
837 .loc 1 280 1 is_stmt 0 view .LVU234
838 0008 08BD pop {r3, pc}
839 .L41:
840 000a 00BF .align 2
841 .L40:
842 000c 00000000 .word uc1
843 .cfi_endproc
844 .LFE78:
846 .comm uc1,2076,4
847 .text
848 .Letext0:
849 .file 3 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
850 .file 4 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
851 .file 5 "Drivers/CMSIS/Include/core_cm3.h"
852 .file 6 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h"
853 .file 7 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h"
854 .file 8 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h"
855 .file 9 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h"
856 .file 10 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h"
857 .file 11 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h"
858 .file 12 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h"
859 .file 13 "Core/Inc/main.h"
860 .file 14 "../libSerial/inc/libSerial/serial.h"
ARM GAS C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s page 25
DEFINED SYMBOLS
*ABS*:0000000000000000 serial.c
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:16 .text.PutCharSerialFIFO:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:23 .text.PutCharSerialFIFO:0000000000000000 PutCharSerialFIFO
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:105 .text.SerialCharsReceived:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:112 .text.SerialCharsReceived:0000000000000000 SerialCharsReceived
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:195 .text.PollSerial:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:202 .text.PollSerial:0000000000000000 PollSerial
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:262 .text.GetCharSerial:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:269 .text.GetCharSerial:0000000000000000 GetCharSerial
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:362 .text.EnableSerialRxInterrupt:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:369 .text.EnableSerialRxInterrupt:0000000000000000 EnableSerialRxInterrupt
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:388 .text.UART_IRQHandler:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:395 .text.UART_IRQHandler:0000000000000000 UART_IRQHandler
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:575 .text.PutCharSerial:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:582 .text.PutCharSerial:0000000000000000 PutCharSerial
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:604 .text.ResetTxBuffer:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:611 .text.ResetTxBuffer:0000000000000000 ResetTxBuffer
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:638 .text.ResetRxBuffer:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:645 .text.ResetRxBuffer:0000000000000000 ResetRxBuffer
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:669 .text.FlushSerial:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:676 .text.FlushSerial:0000000000000000 FlushSerial
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:704 .text.TxBufferEmpty:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:711 .text.TxBufferEmpty:0000000000000000 TxBufferEmpty
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:733 .text.TxWaitEmpty:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:740 .text.TxWaitEmpty:0000000000000000 TxWaitEmpty
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:769 .text.init_usart_ctl:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:776 .text.init_usart_ctl:0000000000000000 init_usart_ctl
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:815 .text.USART1_IRQHandler:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:822 .text.USART1_IRQHandler:0000000000000000 USART1_IRQHandler
C:\Users\mike\AppData\Local\Temp\cc6SMzgO.s:842 .text.USART1_IRQHandler:000000000000000c $d
*COM*:000000000000081c uc1
NO UNDEFINED SYMBOLS