PDU_Code/build/can-halal.lst

1050 lines
47 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 1
1 .cpu cortex-m4
2 .arch armv7e-m
3 .fpu fpv4-sp-d16
4 .eabi_attribute 27, 1
5 .eabi_attribute 28, 1
6 .eabi_attribute 20, 1
7 .eabi_attribute 21, 1
8 .eabi_attribute 23, 3
9 .eabi_attribute 24, 1
10 .eabi_attribute 25, 1
11 .eabi_attribute 26, 1
12 .eabi_attribute 30, 1
13 .eabi_attribute 34, 1
14 .eabi_attribute 18, 4
15 .file "can-halal.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .file 1 "Core/Src/can-halal.c"
20 .section .text.ftcan_init,"ax",%progbits
21 .align 1
22 .global ftcan_init
23 .syntax unified
24 .thumb
25 .thumb_func
27 ftcan_init:
28 .LVL0:
29 .LFB130:
1:Core/Src/can-halal.c **** #include "can-halal.h"
2:Core/Src/can-halal.c ****
3:Core/Src/can-halal.c **** #include <string.h>
4:Core/Src/can-halal.c ****
5:Core/Src/can-halal.c **** #if defined(FTCAN_IS_BXCAN)
6:Core/Src/can-halal.c **** static CAN_HandleTypeDef *hcan;
7:Core/Src/can-halal.c ****
8:Core/Src/can-halal.c **** HAL_StatusTypeDef ftcan_init(CAN_HandleTypeDef *handle) {
30 .loc 1 8 57 view -0
31 .cfi_startproc
32 @ args = 0, pretend = 0, frame = 0
33 @ frame_needed = 0, uses_anonymous_args = 0
34 .loc 1 8 57 is_stmt 0 view .LVU1
35 0000 08B5 push {r3, lr}
36 .cfi_def_cfa_offset 8
37 .cfi_offset 3, -8
38 .cfi_offset 14, -4
9:Core/Src/can-halal.c **** hcan = handle;
39 .loc 1 9 3 is_stmt 1 view .LVU2
40 .loc 1 9 8 is_stmt 0 view .LVU3
41 0002 064B ldr r3, .L5
42 0004 1860 str r0, [r3]
10:Core/Src/can-halal.c ****
11:Core/Src/can-halal.c **** HAL_StatusTypeDef status =
43 .loc 1 11 3 is_stmt 1 view .LVU4
12:Core/Src/can-halal.c **** HAL_CAN_ActivateNotification(hcan, CAN_IT_RX_FIFO0_MSG_PENDING);
44 .loc 1 12 7 is_stmt 0 view .LVU5
45 0006 0221 movs r1, #2
46 0008 FFF7FEFF bl HAL_CAN_ActivateNotification
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 2
47 .LVL1:
13:Core/Src/can-halal.c **** if (status != HAL_OK) {
48 .loc 1 13 3 is_stmt 1 view .LVU6
49 .loc 1 13 6 is_stmt 0 view .LVU7
50 000c 00B1 cbz r0, .L4
51 .L2:
14:Core/Src/can-halal.c **** return status;
15:Core/Src/can-halal.c **** }
16:Core/Src/can-halal.c ****
17:Core/Src/can-halal.c **** return HAL_CAN_Start(hcan);
18:Core/Src/can-halal.c **** }
52 .loc 1 18 1 view .LVU8
53 000e 08BD pop {r3, pc}
54 .L4:
17:Core/Src/can-halal.c **** }
55 .loc 1 17 3 is_stmt 1 view .LVU9
17:Core/Src/can-halal.c **** }
56 .loc 1 17 10 is_stmt 0 view .LVU10
57 0010 024B ldr r3, .L5
58 .LVL2:
17:Core/Src/can-halal.c **** }
59 .loc 1 17 10 view .LVU11
60 0012 1868 ldr r0, [r3]
61 0014 FFF7FEFF bl HAL_CAN_Start
62 .LVL3:
17:Core/Src/can-halal.c **** }
63 .loc 1 17 10 view .LVU12
64 0018 F9E7 b .L2
65 .L6:
66 001a 00BF .align 2
67 .L5:
68 001c 00000000 .word hcan
69 .cfi_endproc
70 .LFE130:
72 .section .text.ftcan_transmit,"ax",%progbits
73 .align 1
74 .global ftcan_transmit
75 .syntax unified
76 .thumb
77 .thumb_func
79 ftcan_transmit:
80 .LVL4:
81 .LFB131:
19:Core/Src/can-halal.c ****
20:Core/Src/can-halal.c **** HAL_StatusTypeDef ftcan_transmit(uint16_t id, const uint8_t *data,
21:Core/Src/can-halal.c **** size_t datalen) {
82 .loc 1 21 50 is_stmt 1 view -0
83 .cfi_startproc
84 @ args = 0, pretend = 0, frame = 8
85 @ frame_needed = 0, uses_anonymous_args = 0
86 .loc 1 21 50 is_stmt 0 view .LVU14
87 0000 00B5 push {lr}
88 .cfi_def_cfa_offset 4
89 .cfi_offset 14, -4
90 0002 83B0 sub sp, sp, #12
91 .cfi_def_cfa_offset 16
92 0004 8C46 mov ip, r1
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 3
22:Core/Src/can-halal.c **** static CAN_TxHeaderTypeDef header;
93 .loc 1 22 3 is_stmt 1 view .LVU15
23:Core/Src/can-halal.c **** header.StdId = id;
94 .loc 1 23 3 view .LVU16
95 .loc 1 23 16 is_stmt 0 view .LVU17
96 0006 0749 ldr r1, .L9
97 .LVL5:
98 .loc 1 23 16 view .LVU18
99 0008 0860 str r0, [r1]
24:Core/Src/can-halal.c **** header.IDE = CAN_ID_STD;
100 .loc 1 24 3 is_stmt 1 view .LVU19
101 .loc 1 24 14 is_stmt 0 view .LVU20
102 000a 0023 movs r3, #0
103 000c 8B60 str r3, [r1, #8]
25:Core/Src/can-halal.c **** header.RTR = CAN_RTR_DATA;
104 .loc 1 25 3 is_stmt 1 view .LVU21
105 .loc 1 25 14 is_stmt 0 view .LVU22
106 000e CB60 str r3, [r1, #12]
26:Core/Src/can-halal.c **** header.DLC = datalen;
107 .loc 1 26 3 is_stmt 1 view .LVU23
108 .loc 1 26 14 is_stmt 0 view .LVU24
109 0010 0A61 str r2, [r1, #16]
27:Core/Src/can-halal.c **** uint32_t mailbox;
110 .loc 1 27 3 is_stmt 1 view .LVU25
28:Core/Src/can-halal.c **** return HAL_CAN_AddTxMessage(hcan, &header, data, &mailbox);
111 .loc 1 28 3 view .LVU26
112 .loc 1 28 10 is_stmt 0 view .LVU27
113 0012 01AB add r3, sp, #4
114 0014 6246 mov r2, ip
115 .LVL6:
116 .loc 1 28 10 view .LVU28
117 0016 0448 ldr r0, .L9+4
118 .LVL7:
119 .loc 1 28 10 view .LVU29
120 0018 0068 ldr r0, [r0]
121 001a FFF7FEFF bl HAL_CAN_AddTxMessage
122 .LVL8:
29:Core/Src/can-halal.c **** }
123 .loc 1 29 1 view .LVU30
124 001e 03B0 add sp, sp, #12
125 .cfi_def_cfa_offset 4
126 @ sp needed
127 0020 5DF804FB ldr pc, [sp], #4
128 .L10:
129 .align 2
130 .L9:
131 0024 00000000 .word header.2
132 0028 00000000 .word hcan
133 .cfi_endproc
134 .LFE131:
136 .section .text.ftcan_add_filter,"ax",%progbits
137 .align 1
138 .global ftcan_add_filter
139 .syntax unified
140 .thumb
141 .thumb_func
143 ftcan_add_filter:
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 4
144 .LVL9:
145 .LFB132:
30:Core/Src/can-halal.c ****
31:Core/Src/can-halal.c **** HAL_StatusTypeDef ftcan_add_filter(uint16_t id, uint16_t mask) {
146 .loc 1 31 64 is_stmt 1 view -0
147 .cfi_startproc
148 @ args = 0, pretend = 0, frame = 0
149 @ frame_needed = 0, uses_anonymous_args = 0
150 .loc 1 31 64 is_stmt 0 view .LVU32
151 0000 08B5 push {r3, lr}
152 .cfi_def_cfa_offset 8
153 .cfi_offset 3, -8
154 .cfi_offset 14, -4
32:Core/Src/can-halal.c **** static uint32_t next_filter_no = 0;
155 .loc 1 32 3 is_stmt 1 view .LVU33
33:Core/Src/can-halal.c **** static CAN_FilterTypeDef filter;
156 .loc 1 33 3 view .LVU34
34:Core/Src/can-halal.c **** if (next_filter_no % 2 == 0) {
157 .loc 1 34 3 view .LVU35
158 .loc 1 34 22 is_stmt 0 view .LVU36
159 0002 174B ldr r3, .L18
160 0004 1B68 ldr r3, [r3]
161 .loc 1 34 6 view .LVU37
162 0006 13F0010F tst r3, #1
163 000a 0FD1 bne .L12
35:Core/Src/can-halal.c **** filter.FilterIdHigh = id << 5;
164 .loc 1 35 5 is_stmt 1 view .LVU38
165 .loc 1 35 30 is_stmt 0 view .LVU39
166 000c 4001 lsls r0, r0, #5
167 .LVL10:
168 .loc 1 35 25 view .LVU40
169 000e 154A ldr r2, .L18+4
170 0010 1060 str r0, [r2]
36:Core/Src/can-halal.c **** filter.FilterMaskIdHigh = mask << 5;
171 .loc 1 36 5 is_stmt 1 view .LVU41
172 .loc 1 36 36 is_stmt 0 view .LVU42
173 0012 4901 lsls r1, r1, #5
174 .LVL11:
175 .loc 1 36 29 view .LVU43
176 0014 9160 str r1, [r2, #8]
37:Core/Src/can-halal.c **** filter.FilterIdLow = id << 5;
177 .loc 1 37 5 is_stmt 1 view .LVU44
178 .loc 1 37 24 is_stmt 0 view .LVU45
179 0016 5060 str r0, [r2, #4]
38:Core/Src/can-halal.c **** filter.FilterMaskIdLow = mask << 5;
180 .loc 1 38 5 is_stmt 1 view .LVU46
181 .loc 1 38 28 is_stmt 0 view .LVU47
182 0018 D160 str r1, [r2, #12]
183 .L13:
39:Core/Src/can-halal.c **** } else {
40:Core/Src/can-halal.c **** // Leave high filter untouched from the last configuration
41:Core/Src/can-halal.c **** filter.FilterIdLow = id << 5;
42:Core/Src/can-halal.c **** filter.FilterMaskIdLow = mask << 5;
43:Core/Src/can-halal.c **** }
44:Core/Src/can-halal.c **** filter.FilterFIFOAssignment = CAN_FILTER_FIFO0;
184 .loc 1 44 3 is_stmt 1 view .LVU48
185 .loc 1 44 31 is_stmt 0 view .LVU49
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 5
186 001a 124A ldr r2, .L18+4
187 001c 0021 movs r1, #0
188 001e 1161 str r1, [r2, #16]
45:Core/Src/can-halal.c **** filter.FilterBank = next_filter_no / 2;
189 .loc 1 45 3 is_stmt 1 view .LVU50
190 .loc 1 45 38 is_stmt 0 view .LVU51
191 0020 5908 lsrs r1, r3, #1
192 .loc 1 45 21 view .LVU52
193 0022 5161 str r1, [r2, #20]
46:Core/Src/can-halal.c **** if (filter.FilterBank > FTCAN_NUM_FILTERS + 1) {
194 .loc 1 46 3 is_stmt 1 view .LVU53
195 .loc 1 46 6 is_stmt 0 view .LVU54
196 0024 1D2B cmp r3, #29
197 0026 07D9 bls .L17
47:Core/Src/can-halal.c **** return HAL_ERROR;
198 .loc 1 47 12 view .LVU55
199 0028 0120 movs r0, #1
200 .L14:
48:Core/Src/can-halal.c **** }
49:Core/Src/can-halal.c **** filter.FilterMode = CAN_FILTERMODE_IDMASK;
50:Core/Src/can-halal.c **** filter.FilterScale = CAN_FILTERSCALE_16BIT;
51:Core/Src/can-halal.c **** filter.FilterActivation = CAN_FILTER_ENABLE;
52:Core/Src/can-halal.c ****
53:Core/Src/can-halal.c **** // Disable slave filters
54:Core/Src/can-halal.c **** // TODO: Some STM32 have multiple CAN peripherals, and one uses the slave
55:Core/Src/can-halal.c **** // filter bank
56:Core/Src/can-halal.c **** filter.SlaveStartFilterBank = FTCAN_NUM_FILTERS;
57:Core/Src/can-halal.c ****
58:Core/Src/can-halal.c **** HAL_StatusTypeDef status = HAL_CAN_ConfigFilter(hcan, &filter);
59:Core/Src/can-halal.c **** if (status == HAL_OK) {
60:Core/Src/can-halal.c **** next_filter_no++;
61:Core/Src/can-halal.c **** }
62:Core/Src/can-halal.c **** return status;
63:Core/Src/can-halal.c **** }
201 .loc 1 63 1 view .LVU56
202 002a 08BD pop {r3, pc}
203 .LVL12:
204 .L12:
41:Core/Src/can-halal.c **** filter.FilterMaskIdLow = mask << 5;
205 .loc 1 41 5 is_stmt 1 view .LVU57
41:Core/Src/can-halal.c **** filter.FilterMaskIdLow = mask << 5;
206 .loc 1 41 29 is_stmt 0 view .LVU58
207 002c 4001 lsls r0, r0, #5
208 .LVL13:
41:Core/Src/can-halal.c **** filter.FilterMaskIdLow = mask << 5;
209 .loc 1 41 24 view .LVU59
210 002e 0D4A ldr r2, .L18+4
211 0030 5060 str r0, [r2, #4]
42:Core/Src/can-halal.c **** }
212 .loc 1 42 5 is_stmt 1 view .LVU60
42:Core/Src/can-halal.c **** }
213 .loc 1 42 35 is_stmt 0 view .LVU61
214 0032 4901 lsls r1, r1, #5
215 .LVL14:
42:Core/Src/can-halal.c **** }
216 .loc 1 42 28 view .LVU62
217 0034 D160 str r1, [r2, #12]
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 6
218 0036 F0E7 b .L13
219 .L17:
49:Core/Src/can-halal.c **** filter.FilterScale = CAN_FILTERSCALE_16BIT;
220 .loc 1 49 3 is_stmt 1 view .LVU63
49:Core/Src/can-halal.c **** filter.FilterScale = CAN_FILTERSCALE_16BIT;
221 .loc 1 49 21 is_stmt 0 view .LVU64
222 0038 1146 mov r1, r2
223 003a 0023 movs r3, #0
224 003c 9361 str r3, [r2, #24]
50:Core/Src/can-halal.c **** filter.FilterActivation = CAN_FILTER_ENABLE;
225 .loc 1 50 3 is_stmt 1 view .LVU65
50:Core/Src/can-halal.c **** filter.FilterActivation = CAN_FILTER_ENABLE;
226 .loc 1 50 22 is_stmt 0 view .LVU66
227 003e D361 str r3, [r2, #28]
51:Core/Src/can-halal.c ****
228 .loc 1 51 3 is_stmt 1 view .LVU67
51:Core/Src/can-halal.c ****
229 .loc 1 51 27 is_stmt 0 view .LVU68
230 0040 0123 movs r3, #1
231 0042 1362 str r3, [r2, #32]
56:Core/Src/can-halal.c ****
232 .loc 1 56 3 is_stmt 1 view .LVU69
56:Core/Src/can-halal.c ****
233 .loc 1 56 31 is_stmt 0 view .LVU70
234 0044 0D23 movs r3, #13
235 0046 5362 str r3, [r2, #36]
58:Core/Src/can-halal.c **** if (status == HAL_OK) {
236 .loc 1 58 3 is_stmt 1 view .LVU71
58:Core/Src/can-halal.c **** if (status == HAL_OK) {
237 .loc 1 58 30 is_stmt 0 view .LVU72
238 0048 074B ldr r3, .L18+8
239 004a 1868 ldr r0, [r3]
240 004c FFF7FEFF bl HAL_CAN_ConfigFilter
241 .LVL15:
59:Core/Src/can-halal.c **** next_filter_no++;
242 .loc 1 59 3 is_stmt 1 view .LVU73
59:Core/Src/can-halal.c **** next_filter_no++;
243 .loc 1 59 6 is_stmt 0 view .LVU74
244 0050 0028 cmp r0, #0
245 0052 EAD1 bne .L14
60:Core/Src/can-halal.c **** }
246 .loc 1 60 5 is_stmt 1 view .LVU75
60:Core/Src/can-halal.c **** }
247 .loc 1 60 19 is_stmt 0 view .LVU76
248 0054 024A ldr r2, .L18
249 0056 1368 ldr r3, [r2]
250 0058 0133 adds r3, r3, #1
251 005a 1360 str r3, [r2]
252 005c E5E7 b .L14
253 .L19:
254 005e 00BF .align 2
255 .L18:
256 0060 00000000 .word next_filter_no.1
257 0064 00000000 .word filter.0
258 0068 00000000 .word hcan
259 .cfi_endproc
260 .LFE132:
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 7
262 .section .text.ftcan_msg_received_cb,"ax",%progbits
263 .align 1
264 .weak ftcan_msg_received_cb
265 .syntax unified
266 .thumb
267 .thumb_func
269 ftcan_msg_received_cb:
270 .LVL16:
271 .LFB134:
64:Core/Src/can-halal.c ****
65:Core/Src/can-halal.c **** void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *handle) {
66:Core/Src/can-halal.c **** if (handle != hcan) {
67:Core/Src/can-halal.c **** return;
68:Core/Src/can-halal.c **** }
69:Core/Src/can-halal.c **** CAN_RxHeaderTypeDef header;
70:Core/Src/can-halal.c **** uint8_t data[8];
71:Core/Src/can-halal.c **** if (HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &header, data) != HAL_OK) {
72:Core/Src/can-halal.c **** return;
73:Core/Src/can-halal.c **** }
74:Core/Src/can-halal.c ****
75:Core/Src/can-halal.c **** if (header.IDE != CAN_ID_STD) {
76:Core/Src/can-halal.c **** return;
77:Core/Src/can-halal.c **** }
78:Core/Src/can-halal.c ****
79:Core/Src/can-halal.c **** ftcan_msg_received_cb(header.StdId, header.DLC, data);
80:Core/Src/can-halal.c **** }
81:Core/Src/can-halal.c **** #elif defined(FTCAN_IS_FDCAN)
82:Core/Src/can-halal.c **** static FDCAN_HandleTypeDef *hcan;
83:Core/Src/can-halal.c ****
84:Core/Src/can-halal.c **** HAL_StatusTypeDef ftcan_init(FDCAN_HandleTypeDef *handle) {
85:Core/Src/can-halal.c **** hcan = handle;
86:Core/Src/can-halal.c ****
87:Core/Src/can-halal.c **** HAL_StatusTypeDef status =
88:Core/Src/can-halal.c **** HAL_FDCAN_ActivateNotification(hcan, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0);
89:Core/Src/can-halal.c **** if (status != HAL_OK) {
90:Core/Src/can-halal.c **** return status;
91:Core/Src/can-halal.c **** }
92:Core/Src/can-halal.c **** // Reject non-matching messages
93:Core/Src/can-halal.c **** status =
94:Core/Src/can-halal.c **** HAL_FDCAN_ConfigGlobalFilter(hcan, FDCAN_REJECT, FDCAN_REJECT,
95:Core/Src/can-halal.c **** FDCAN_REJECT_REMOTE, FDCAN_REJECT_REMOTE);
96:Core/Src/can-halal.c **** if (status != HAL_OK) {
97:Core/Src/can-halal.c **** return status;
98:Core/Src/can-halal.c **** }
99:Core/Src/can-halal.c ****
100:Core/Src/can-halal.c **** return HAL_FDCAN_Start(hcan);
101:Core/Src/can-halal.c **** }
102:Core/Src/can-halal.c ****
103:Core/Src/can-halal.c **** HAL_StatusTypeDef ftcan_transmit(uint16_t id, const uint8_t *data,
104:Core/Src/can-halal.c **** size_t datalen) {
105:Core/Src/can-halal.c **** static FDCAN_TxHeaderTypeDef header;
106:Core/Src/can-halal.c **** header.Identifier = id;
107:Core/Src/can-halal.c **** header.IdType = FDCAN_STANDARD_ID;
108:Core/Src/can-halal.c **** header.TxFrameType = FDCAN_DATA_FRAME;
109:Core/Src/can-halal.c **** switch (datalen) {
110:Core/Src/can-halal.c **** case 0:
111:Core/Src/can-halal.c **** header.DataLength = FDCAN_DLC_BYTES_0;
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 8
112:Core/Src/can-halal.c **** break;
113:Core/Src/can-halal.c **** case 1:
114:Core/Src/can-halal.c **** header.DataLength = FDCAN_DLC_BYTES_1;
115:Core/Src/can-halal.c **** break;
116:Core/Src/can-halal.c **** case 2:
117:Core/Src/can-halal.c **** header.DataLength = FDCAN_DLC_BYTES_2;
118:Core/Src/can-halal.c **** break;
119:Core/Src/can-halal.c **** case 3:
120:Core/Src/can-halal.c **** header.DataLength = FDCAN_DLC_BYTES_3;
121:Core/Src/can-halal.c **** break;
122:Core/Src/can-halal.c **** case 4:
123:Core/Src/can-halal.c **** header.DataLength = FDCAN_DLC_BYTES_4;
124:Core/Src/can-halal.c **** break;
125:Core/Src/can-halal.c **** case 5:
126:Core/Src/can-halal.c **** header.DataLength = FDCAN_DLC_BYTES_5;
127:Core/Src/can-halal.c **** break;
128:Core/Src/can-halal.c **** case 6:
129:Core/Src/can-halal.c **** header.DataLength = FDCAN_DLC_BYTES_6;
130:Core/Src/can-halal.c **** break;
131:Core/Src/can-halal.c **** case 7:
132:Core/Src/can-halal.c **** header.DataLength = FDCAN_DLC_BYTES_7;
133:Core/Src/can-halal.c **** break;
134:Core/Src/can-halal.c **** case 8:
135:Core/Src/can-halal.c **** default:
136:Core/Src/can-halal.c **** header.DataLength = FDCAN_DLC_BYTES_8;
137:Core/Src/can-halal.c **** break;
138:Core/Src/can-halal.c **** }
139:Core/Src/can-halal.c **** header.ErrorStateIndicator = FDCAN_ESI_PASSIVE;
140:Core/Src/can-halal.c **** header.BitRateSwitch = FDCAN_BRS_OFF;
141:Core/Src/can-halal.c **** header.FDFormat = FDCAN_CLASSIC_CAN;
142:Core/Src/can-halal.c **** header.TxEventFifoControl = FDCAN_NO_TX_EVENTS;
143:Core/Src/can-halal.c ****
144:Core/Src/can-halal.c **** // HAL_FDCAN_AddMessageToTxFifoQ doesn't modify the data, but it's not marked
145:Core/Src/can-halal.c **** // as const for some reason.
146:Core/Src/can-halal.c **** uint8_t *data_nonconst = (uint8_t *)data;
147:Core/Src/can-halal.c **** return HAL_FDCAN_AddMessageToTxFifoQ(hcan, &header, data_nonconst);
148:Core/Src/can-halal.c **** }
149:Core/Src/can-halal.c ****
150:Core/Src/can-halal.c **** HAL_StatusTypeDef ftcan_add_filter(uint16_t id, uint16_t mask) {
151:Core/Src/can-halal.c **** static uint32_t next_filter_no = 0;
152:Core/Src/can-halal.c **** static FDCAN_FilterTypeDef filter;
153:Core/Src/can-halal.c **** filter.IdType = FDCAN_STANDARD_ID;
154:Core/Src/can-halal.c **** filter.FilterIndex = next_filter_no;
155:Core/Src/can-halal.c **** if (filter.FilterIndex > FTCAN_NUM_FILTERS + 1) {
156:Core/Src/can-halal.c **** return HAL_ERROR;
157:Core/Src/can-halal.c **** }
158:Core/Src/can-halal.c **** filter.FilterType = FDCAN_FILTER_MASK;
159:Core/Src/can-halal.c **** filter.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;
160:Core/Src/can-halal.c **** filter.FilterID1 = id;
161:Core/Src/can-halal.c **** filter.FilterID2 = mask;
162:Core/Src/can-halal.c ****
163:Core/Src/can-halal.c **** HAL_StatusTypeDef status = HAL_FDCAN_ConfigFilter(hcan, &filter);
164:Core/Src/can-halal.c **** if (status == HAL_OK) {
165:Core/Src/can-halal.c **** next_filter_no++;
166:Core/Src/can-halal.c **** }
167:Core/Src/can-halal.c **** return status;
168:Core/Src/can-halal.c **** }
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 9
169:Core/Src/can-halal.c ****
170:Core/Src/can-halal.c **** void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *handle,
171:Core/Src/can-halal.c **** uint32_t RxFifo0ITs) {
172:Core/Src/can-halal.c **** if (handle != hcan || (RxFifo0ITs & FDCAN_IT_RX_FIFO0_NEW_MESSAGE) == RESET) {
173:Core/Src/can-halal.c **** return;
174:Core/Src/can-halal.c **** }
175:Core/Src/can-halal.c ****
176:Core/Src/can-halal.c **** static FDCAN_RxHeaderTypeDef header;
177:Core/Src/can-halal.c **** static uint8_t data[8];
178:Core/Src/can-halal.c **** if (HAL_FDCAN_GetRxMessage(hcan, FDCAN_RX_FIFO0, &header, data) != HAL_OK) {
179:Core/Src/can-halal.c **** return;
180:Core/Src/can-halal.c **** }
181:Core/Src/can-halal.c ****
182:Core/Src/can-halal.c **** if (header.FDFormat != FDCAN_CLASSIC_CAN ||
183:Core/Src/can-halal.c **** header.RxFrameType != FDCAN_DATA_FRAME ||
184:Core/Src/can-halal.c **** header.IdType != FDCAN_STANDARD_ID) {
185:Core/Src/can-halal.c **** return;
186:Core/Src/can-halal.c **** }
187:Core/Src/can-halal.c ****
188:Core/Src/can-halal.c **** size_t datalen;
189:Core/Src/can-halal.c **** switch (header.DataLength) {
190:Core/Src/can-halal.c **** case FDCAN_DLC_BYTES_0:
191:Core/Src/can-halal.c **** datalen = 0;
192:Core/Src/can-halal.c **** break;
193:Core/Src/can-halal.c **** case FDCAN_DLC_BYTES_1:
194:Core/Src/can-halal.c **** datalen = 1;
195:Core/Src/can-halal.c **** break;
196:Core/Src/can-halal.c **** case FDCAN_DLC_BYTES_2:
197:Core/Src/can-halal.c **** datalen = 2;
198:Core/Src/can-halal.c **** break;
199:Core/Src/can-halal.c **** case FDCAN_DLC_BYTES_3:
200:Core/Src/can-halal.c **** datalen = 3;
201:Core/Src/can-halal.c **** break;
202:Core/Src/can-halal.c **** case FDCAN_DLC_BYTES_4:
203:Core/Src/can-halal.c **** datalen = 4;
204:Core/Src/can-halal.c **** break;
205:Core/Src/can-halal.c **** case FDCAN_DLC_BYTES_5:
206:Core/Src/can-halal.c **** datalen = 5;
207:Core/Src/can-halal.c **** break;
208:Core/Src/can-halal.c **** case FDCAN_DLC_BYTES_6:
209:Core/Src/can-halal.c **** datalen = 6;
210:Core/Src/can-halal.c **** break;
211:Core/Src/can-halal.c **** case FDCAN_DLC_BYTES_7:
212:Core/Src/can-halal.c **** datalen = 7;
213:Core/Src/can-halal.c **** break;
214:Core/Src/can-halal.c **** case FDCAN_DLC_BYTES_8:
215:Core/Src/can-halal.c **** datalen = 8;
216:Core/Src/can-halal.c **** break;
217:Core/Src/can-halal.c **** default:
218:Core/Src/can-halal.c **** return;
219:Core/Src/can-halal.c **** }
220:Core/Src/can-halal.c ****
221:Core/Src/can-halal.c **** ftcan_msg_received_cb(header.Identifier, datalen, data);
222:Core/Src/can-halal.c **** }
223:Core/Src/can-halal.c **** #endif
224:Core/Src/can-halal.c ****
225:Core/Src/can-halal.c **** __weak void ftcan_msg_received_cb(uint16_t id, size_t datalen,
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 10
226:Core/Src/can-halal.c **** const uint8_t *data) {}
272 .loc 1 226 56 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.
277 .loc 1 226 57 view .LVU78
278 0000 7047 bx lr
279 .cfi_endproc
280 .LFE134:
282 .section .text.HAL_CAN_RxFifo0MsgPendingCallback,"ax",%progbits
283 .align 1
284 .global HAL_CAN_RxFifo0MsgPendingCallback
285 .syntax unified
286 .thumb
287 .thumb_func
289 HAL_CAN_RxFifo0MsgPendingCallback:
290 .LVL17:
291 .LFB133:
65:Core/Src/can-halal.c **** if (handle != hcan) {
292 .loc 1 65 67 view -0
293 .cfi_startproc
294 @ args = 0, pretend = 0, frame = 40
295 @ frame_needed = 0, uses_anonymous_args = 0
65:Core/Src/can-halal.c **** if (handle != hcan) {
296 .loc 1 65 67 is_stmt 0 view .LVU80
297 0000 10B5 push {r4, lr}
298 .cfi_def_cfa_offset 8
299 .cfi_offset 4, -8
300 .cfi_offset 14, -4
301 0002 8AB0 sub sp, sp, #40
302 .cfi_def_cfa_offset 48
66:Core/Src/can-halal.c **** return;
303 .loc 1 66 3 is_stmt 1 view .LVU81
66:Core/Src/can-halal.c **** return;
304 .loc 1 66 14 is_stmt 0 view .LVU82
305 0004 0B4B ldr r3, .L26
306 0006 1C68 ldr r4, [r3]
66:Core/Src/can-halal.c **** return;
307 .loc 1 66 6 view .LVU83
308 0008 8442 cmp r4, r0
309 000a 01D0 beq .L25
310 .LVL18:
311 .L21:
80:Core/Src/can-halal.c **** #elif defined(FTCAN_IS_FDCAN)
312 .loc 1 80 1 view .LVU84
313 000c 0AB0 add sp, sp, #40
314 .cfi_remember_state
315 .cfi_def_cfa_offset 8
316 @ sp needed
317 000e 10BD pop {r4, pc}
318 .LVL19:
319 .L25:
320 .cfi_restore_state
69:Core/Src/can-halal.c **** uint8_t data[8];
321 .loc 1 69 3 is_stmt 1 view .LVU85
70:Core/Src/can-halal.c **** if (HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &header, data) != HAL_OK) {
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 11
322 .loc 1 70 3 view .LVU86
71:Core/Src/can-halal.c **** return;
323 .loc 1 71 3 view .LVU87
71:Core/Src/can-halal.c **** return;
324 .loc 1 71 7 is_stmt 0 view .LVU88
325 0010 01AB add r3, sp, #4
326 0012 03AA add r2, sp, #12
327 0014 0021 movs r1, #0
328 0016 2046 mov r0, r4
329 .LVL20:
71:Core/Src/can-halal.c **** return;
330 .loc 1 71 7 view .LVU89
331 0018 FFF7FEFF bl HAL_CAN_GetRxMessage
332 .LVL21:
71:Core/Src/can-halal.c **** return;
333 .loc 1 71 6 view .LVU90
334 001c 0028 cmp r0, #0
335 001e F5D1 bne .L21
75:Core/Src/can-halal.c **** return;
336 .loc 1 75 3 is_stmt 1 view .LVU91
75:Core/Src/can-halal.c **** return;
337 .loc 1 75 13 is_stmt 0 view .LVU92
338 0020 059B ldr r3, [sp, #20]
75:Core/Src/can-halal.c **** return;
339 .loc 1 75 6 view .LVU93
340 0022 002B cmp r3, #0
341 0024 F2D1 bne .L21
79:Core/Src/can-halal.c **** }
342 .loc 1 79 3 is_stmt 1 view .LVU94
343 0026 01AA add r2, sp, #4
344 0028 0799 ldr r1, [sp, #28]
345 002a BDF80C00 ldrh r0, [sp, #12]
346 002e FFF7FEFF bl ftcan_msg_received_cb
347 .LVL22:
348 0032 EBE7 b .L21
349 .L27:
350 .align 2
351 .L26:
352 0034 00000000 .word hcan
353 .cfi_endproc
354 .LFE133:
356 .section .text.ftcan_unmarshal_unsigned,"ax",%progbits
357 .align 1
358 .global ftcan_unmarshal_unsigned
359 .syntax unified
360 .thumb
361 .thumb_func
363 ftcan_unmarshal_unsigned:
364 .LVL23:
365 .LFB135:
227:Core/Src/can-halal.c ****
228:Core/Src/can-halal.c **** uint64_t ftcan_unmarshal_unsigned(const uint8_t **data_ptr, size_t num_bytes) {
366 .loc 1 228 79 view -0
367 .cfi_startproc
368 @ args = 0, pretend = 0, frame = 0
369 @ frame_needed = 0, uses_anonymous_args = 0
370 .loc 1 228 79 is_stmt 0 view .LVU96
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 12
371 0000 10B5 push {r4, lr}
372 .cfi_def_cfa_offset 8
373 .cfi_offset 4, -8
374 .cfi_offset 14, -4
375 0002 8646 mov lr, r0
376 0004 8C46 mov ip, r1
229:Core/Src/can-halal.c **** if (num_bytes > 8) {
377 .loc 1 229 3 is_stmt 1 view .LVU97
378 .loc 1 229 6 is_stmt 0 view .LVU98
379 0006 0829 cmp r1, #8
380 0008 01D9 bls .L29
230:Core/Src/can-halal.c **** num_bytes = 8;
381 .loc 1 230 15 view .LVU99
382 000a 4FF0080C mov ip, #8
383 .L29:
384 .LVL24:
231:Core/Src/can-halal.c **** }
232:Core/Src/can-halal.c ****
233:Core/Src/can-halal.c **** const uint8_t *data = *data_ptr;
385 .loc 1 233 3 is_stmt 1 view .LVU100
386 .loc 1 233 18 is_stmt 0 view .LVU101
387 000e DEF80040 ldr r4, [lr]
388 .LVL25:
234:Core/Src/can-halal.c **** uint64_t result = 0;
389 .loc 1 234 3 is_stmt 1 view .LVU102
235:Core/Src/can-halal.c **** for (size_t i = 0; i < num_bytes; i++) {
390 .loc 1 235 3 view .LVU103
391 .LBB2:
392 .loc 1 235 8 view .LVU104
393 .loc 1 235 15 is_stmt 0 view .LVU105
394 0012 0023 movs r3, #0
395 .LBE2:
234:Core/Src/can-halal.c **** uint64_t result = 0;
396 .loc 1 234 12 view .LVU106
397 0014 1846 mov r0, r3
398 .LVL26:
234:Core/Src/can-halal.c **** uint64_t result = 0;
399 .loc 1 234 12 view .LVU107
400 0016 1946 mov r1, r3
401 .LBB3:
402 .loc 1 235 3 view .LVU108
403 0018 06E0 b .L30
404 .LVL27:
405 .L31:
236:Core/Src/can-halal.c **** result <<= 8;
406 .loc 1 236 5 is_stmt 1 discriminator 3 view .LVU109
407 .loc 1 236 12 is_stmt 0 discriminator 3 view .LVU110
408 001a 0902 lsls r1, r1, #8
409 .LVL28:
410 .loc 1 236 12 discriminator 3 view .LVU111
411 001c 41EA1061 orr r1, r1, r0, lsr #24
412 .LVL29:
237:Core/Src/can-halal.c **** result |= data[i];
413 .loc 1 237 5 is_stmt 1 discriminator 3 view .LVU112
414 .loc 1 237 19 is_stmt 0 discriminator 3 view .LVU113
415 0020 E25C ldrb r2, [r4, r3] @ zero_extendqisi2
416 .loc 1 237 12 discriminator 3 view .LVU114
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 13
417 0022 42EA0020 orr r0, r2, r0, lsl #8
418 .LVL30:
235:Core/Src/can-halal.c **** for (size_t i = 0; i < num_bytes; i++) {
419 .loc 1 235 38 is_stmt 1 discriminator 3 view .LVU115
420 0026 0133 adds r3, r3, #1
421 .LVL31:
422 .L30:
235:Core/Src/can-halal.c **** for (size_t i = 0; i < num_bytes; i++) {
423 .loc 1 235 24 discriminator 1 view .LVU116
424 0028 9C45 cmp ip, r3
425 002a F6D8 bhi .L31
426 .LBE3:
238:Core/Src/can-halal.c **** }
239:Core/Src/can-halal.c **** *data_ptr += num_bytes;
427 .loc 1 239 3 view .LVU117
428 .loc 1 239 13 is_stmt 0 view .LVU118
429 002c 6444 add r4, r4, ip
430 .LVL32:
431 .loc 1 239 13 view .LVU119
432 002e CEF80040 str r4, [lr]
433 .LVL33:
240:Core/Src/can-halal.c **** return result;
434 .loc 1 240 3 is_stmt 1 view .LVU120
241:Core/Src/can-halal.c **** }
435 .loc 1 241 1 is_stmt 0 view .LVU121
436 0032 10BD pop {r4, pc}
437 .cfi_endproc
438 .LFE135:
440 .section .text.ftcan_unmarshal_signed,"ax",%progbits
441 .align 1
442 .global ftcan_unmarshal_signed
443 .syntax unified
444 .thumb
445 .thumb_func
447 ftcan_unmarshal_signed:
448 .LVL34:
449 .LFB136:
242:Core/Src/can-halal.c ****
243:Core/Src/can-halal.c **** int64_t ftcan_unmarshal_signed(const uint8_t **data_ptr, size_t num_bytes) {
450 .loc 1 243 76 is_stmt 1 view -0
451 .cfi_startproc
452 @ args = 0, pretend = 0, frame = 0
453 @ frame_needed = 0, uses_anonymous_args = 0
454 .loc 1 243 76 is_stmt 0 view .LVU123
455 0000 10B5 push {r4, lr}
456 .cfi_def_cfa_offset 8
457 .cfi_offset 4, -8
458 .cfi_offset 14, -4
459 0002 0C46 mov r4, r1
244:Core/Src/can-halal.c **** if (num_bytes > 8) {
460 .loc 1 244 3 is_stmt 1 view .LVU124
461 .loc 1 244 6 is_stmt 0 view .LVU125
462 0004 0829 cmp r1, #8
463 0006 00D9 bls .L35
245:Core/Src/can-halal.c **** num_bytes = 8;
464 .loc 1 245 15 view .LVU126
465 0008 0824 movs r4, #8
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 14
466 .L35:
467 .LVL35:
246:Core/Src/can-halal.c **** }
247:Core/Src/can-halal.c ****
248:Core/Src/can-halal.c **** uint64_t result_unsigned = ftcan_unmarshal_unsigned(data_ptr, num_bytes);
468 .loc 1 248 3 is_stmt 1 view .LVU127
469 .loc 1 248 30 is_stmt 0 view .LVU128
470 000a 2146 mov r1, r4
471 000c FFF7FEFF bl ftcan_unmarshal_unsigned
472 .LVL36:
249:Core/Src/can-halal.c **** // Sign extend by shifting left, then copying to a signed int and shifting
250:Core/Src/can-halal.c **** // back to the right
251:Core/Src/can-halal.c **** size_t diff_to_64 = 64 - num_bytes * 8;
473 .loc 1 251 3 is_stmt 1 view .LVU129
474 .loc 1 251 26 is_stmt 0 view .LVU130
475 0010 C4F10803 rsb r3, r4, #8
476 .loc 1 251 10 view .LVU131
477 0014 DB00 lsls r3, r3, #3
478 .LVL37:
252:Core/Src/can-halal.c **** result_unsigned <<= diff_to_64;
479 .loc 1 252 3 is_stmt 1 view .LVU132
480 .loc 1 252 19 is_stmt 0 view .LVU133
481 0016 A3F1200C sub ip, r3, #32
482 001a C3F12004 rsb r4, r3, #32
483 .LVL38:
484 .loc 1 252 19 view .LVU134
485 001e 01FA03F2 lsl r2, r1, r3
486 0022 00FA0CFC lsl ip, r0, ip
487 0026 42EA0C02 orr r2, r2, ip
488 002a 20FA04F4 lsr r4, r0, r4
489 002e 2243 orrs r2, r2, r4
490 0030 9840 lsls r0, r0, r3
491 .LVL39:
253:Core/Src/can-halal.c **** int64_t result;
492 .loc 1 253 3 is_stmt 1 view .LVU135
254:Core/Src/can-halal.c **** memcpy(&result, &result_unsigned, 8);
493 .loc 1 254 3 view .LVU136
494 0032 1146 mov r1, r2
495 .LVL40:
255:Core/Src/can-halal.c **** return result >> diff_to_64;
496 .loc 1 255 3 view .LVU137
497 .loc 1 255 17 is_stmt 0 view .LVU138
498 0034 C3F12004 rsb r4, r3, #32
499 0038 B3F1200C subs ip, r3, #32
500 003c 20FA03F0 lsr r0, r0, r3
501 .LVL41:
502 .loc 1 255 17 view .LVU139
503 0040 02FA04F4 lsl r4, r2, r4
504 0044 40EA0400 orr r0, r0, r4
505 0048 03D4 bmi .L36
506 004a 42FA0CFC asr ip, r2, ip
507 004e 40EA0C00 orr r0, r0, ip
508 .L36:
256:Core/Src/can-halal.c **** }
509 .loc 1 256 1 view .LVU140
510 0052 1941 asrs r1, r1, r3
511 0054 10BD pop {r4, pc}
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 15
512 .cfi_endproc
513 .LFE136:
515 .section .text.ftcan_marshal_unsigned,"ax",%progbits
516 .align 1
517 .global ftcan_marshal_unsigned
518 .syntax unified
519 .thumb
520 .thumb_func
522 ftcan_marshal_unsigned:
523 .LVL42:
524 .LFB137:
257:Core/Src/can-halal.c ****
258:Core/Src/can-halal.c **** uint8_t *ftcan_marshal_unsigned(uint8_t *data, uint64_t val, size_t num_bytes) {
525 .loc 1 258 80 is_stmt 1 view -0
526 .cfi_startproc
527 @ args = 4, pretend = 0, frame = 0
528 @ frame_needed = 0, uses_anonymous_args = 0
529 @ link register save eliminated.
530 .loc 1 258 80 is_stmt 0 view .LVU142
531 0000 10B4 push {r4}
532 .cfi_def_cfa_offset 4
533 .cfi_offset 4, -4
534 0002 019C ldr r4, [sp, #4]
259:Core/Src/can-halal.c **** if (num_bytes > 8) {
535 .loc 1 259 3 is_stmt 1 view .LVU143
536 .loc 1 259 6 is_stmt 0 view .LVU144
537 0004 082C cmp r4, #8
538 0006 00D9 bls .L40
260:Core/Src/can-halal.c **** num_bytes = 8;
539 .loc 1 260 15 view .LVU145
540 0008 0824 movs r4, #8
541 .L40:
542 .LVL43:
261:Core/Src/can-halal.c **** }
262:Core/Src/can-halal.c ****
263:Core/Src/can-halal.c **** for (int i = num_bytes - 1; i >= 0; i--) {
543 .loc 1 263 3 is_stmt 1 view .LVU146
544 .LBB4:
545 .loc 1 263 8 view .LVU147
546 .loc 1 263 26 is_stmt 0 view .LVU148
547 000a 611E subs r1, r4, #1
548 .LVL44:
549 .loc 1 263 3 view .LVU149
550 000c 05E0 b .L41
551 .LVL45:
552 .L42:
264:Core/Src/can-halal.c **** data[i] = val & 0xFF;
553 .loc 1 264 5 is_stmt 1 discriminator 3 view .LVU150
554 .loc 1 264 13 is_stmt 0 discriminator 3 view .LVU151
555 000e 4254 strb r2, [r0, r1]
265:Core/Src/can-halal.c **** val >>= 8;
556 .loc 1 265 5 is_stmt 1 discriminator 3 view .LVU152
557 .loc 1 265 9 is_stmt 0 discriminator 3 view .LVU153
558 0010 120A lsrs r2, r2, #8
559 .LVL46:
560 .loc 1 265 9 discriminator 3 view .LVU154
561 0012 42EA0362 orr r2, r2, r3, lsl #24
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 16
562 0016 1B0A lsrs r3, r3, #8
563 .LVL47:
263:Core/Src/can-halal.c **** data[i] = val & 0xFF;
564 .loc 1 263 40 is_stmt 1 discriminator 3 view .LVU155
565 0018 0139 subs r1, r1, #1
566 .LVL48:
567 .L41:
263:Core/Src/can-halal.c **** data[i] = val & 0xFF;
568 .loc 1 263 33 discriminator 1 view .LVU156
569 001a 0029 cmp r1, #0
570 001c F7DA bge .L42
263:Core/Src/can-halal.c **** data[i] = val & 0xFF;
571 .loc 1 263 33 is_stmt 0 discriminator 1 view .LVU157
572 .LBE4:
266:Core/Src/can-halal.c **** }
267:Core/Src/can-halal.c ****
268:Core/Src/can-halal.c **** return data + num_bytes;
573 .loc 1 268 3 is_stmt 1 view .LVU158
269:Core/Src/can-halal.c **** }
574 .loc 1 269 1 is_stmt 0 view .LVU159
575 001e 2044 add r0, r0, r4
576 .LVL49:
577 .loc 1 269 1 view .LVU160
578 0020 5DF8044B ldr r4, [sp], #4
579 .cfi_restore 4
580 .cfi_def_cfa_offset 0
581 .LVL50:
582 .loc 1 269 1 view .LVU161
583 0024 7047 bx lr
584 .cfi_endproc
585 .LFE137:
587 .section .text.ftcan_marshal_signed,"ax",%progbits
588 .align 1
589 .global ftcan_marshal_signed
590 .syntax unified
591 .thumb
592 .thumb_func
594 ftcan_marshal_signed:
595 .LVL51:
596 .LFB138:
270:Core/Src/can-halal.c ****
271:Core/Src/can-halal.c **** uint8_t *ftcan_marshal_signed(uint8_t *data, int64_t val, size_t num_bytes) {
597 .loc 1 271 77 is_stmt 1 view -0
598 .cfi_startproc
599 @ args = 4, pretend = 0, frame = 0
600 @ frame_needed = 0, uses_anonymous_args = 0
601 .loc 1 271 77 is_stmt 0 view .LVU163
602 0000 00B5 push {lr}
603 .cfi_def_cfa_offset 4
604 .cfi_offset 14, -4
605 0002 83B0 sub sp, sp, #12
606 .cfi_def_cfa_offset 16
272:Core/Src/can-halal.c **** return ftcan_marshal_unsigned(data, val, num_bytes);
607 .loc 1 272 3 is_stmt 1 view .LVU164
608 .loc 1 272 10 is_stmt 0 view .LVU165
609 0004 0499 ldr r1, [sp, #16]
610 0006 0091 str r1, [sp]
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 17
611 0008 FFF7FEFF bl ftcan_marshal_unsigned
612 .LVL52:
273:Core/Src/can-halal.c **** }
613 .loc 1 273 1 view .LVU166
614 000c 03B0 add sp, sp, #12
615 .cfi_def_cfa_offset 4
616 @ sp needed
617 000e 5DF804FB ldr pc, [sp], #4
618 .loc 1 273 1 view .LVU167
619 .cfi_endproc
620 .LFE138:
622 .section .bss.filter.0,"aw",%nobits
623 .align 2
626 filter.0:
627 0000 00000000 .space 40
627 00000000
627 00000000
627 00000000
627 00000000
628 .section .bss.next_filter_no.1,"aw",%nobits
629 .align 2
632 next_filter_no.1:
633 0000 00000000 .space 4
634 .section .bss.header.2,"aw",%nobits
635 .align 2
638 header.2:
639 0000 00000000 .space 24
639 00000000
639 00000000
639 00000000
639 00000000
640 .section .bss.hcan,"aw",%nobits
641 .align 2
644 hcan:
645 0000 00000000 .space 4
646 .text
647 .Letext0:
648 .file 2 "c:\\users\\nived\\appdata\\roaming\\code\\user\\globalstorage\\bmd.stm32-for-vscode\\@xpa
649 .file 3 "c:\\users\\nived\\appdata\\roaming\\code\\user\\globalstorage\\bmd.stm32-for-vscode\\@xpa
650 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
651 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
652 .file 6 "c:\\users\\nived\\appdata\\roaming\\code\\user\\globalstorage\\bmd.stm32-for-vscode\\@xpa
653 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
654 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h"
ARM GAS C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s page 18
DEFINED SYMBOLS
*ABS*:00000000 can-halal.c
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:21 .text.ftcan_init:00000000 $t
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:27 .text.ftcan_init:00000000 ftcan_init
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:68 .text.ftcan_init:0000001c $d
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:644 .bss.hcan:00000000 hcan
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:73 .text.ftcan_transmit:00000000 $t
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:79 .text.ftcan_transmit:00000000 ftcan_transmit
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:131 .text.ftcan_transmit:00000024 $d
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:638 .bss.header.2:00000000 header.2
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:137 .text.ftcan_add_filter:00000000 $t
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:143 .text.ftcan_add_filter:00000000 ftcan_add_filter
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:256 .text.ftcan_add_filter:00000060 $d
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:632 .bss.next_filter_no.1:00000000 next_filter_no.1
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:626 .bss.filter.0:00000000 filter.0
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:263 .text.ftcan_msg_received_cb:00000000 $t
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:269 .text.ftcan_msg_received_cb:00000000 ftcan_msg_received_cb
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:283 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 $t
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:289 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 HAL_CAN_RxFifo0MsgPendingCallback
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:352 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000034 $d
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:357 .text.ftcan_unmarshal_unsigned:00000000 $t
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:363 .text.ftcan_unmarshal_unsigned:00000000 ftcan_unmarshal_unsigned
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:441 .text.ftcan_unmarshal_signed:00000000 $t
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:447 .text.ftcan_unmarshal_signed:00000000 ftcan_unmarshal_signed
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:516 .text.ftcan_marshal_unsigned:00000000 $t
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:522 .text.ftcan_marshal_unsigned:00000000 ftcan_marshal_unsigned
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:588 .text.ftcan_marshal_signed:00000000 $t
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:594 .text.ftcan_marshal_signed:00000000 ftcan_marshal_signed
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:623 .bss.filter.0:00000000 $d
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:629 .bss.next_filter_no.1:00000000 $d
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:635 .bss.header.2:00000000 $d
C:\Users\nived\AppData\Local\Temp\ccs4JhW6.s:641 .bss.hcan:00000000 $d
UNDEFINED SYMBOLS
HAL_CAN_ActivateNotification
HAL_CAN_Start
HAL_CAN_AddTxMessage
HAL_CAN_ConfigFilter
HAL_CAN_GetRxMessage