ARM GAS C:\Users\nived\AppData\Local\Temp\ccTRndkw.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 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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.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\ccTRndkw.s page 18 DEFINED SYMBOLS *ABS*:00000000 can-halal.c C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:21 .text.ftcan_init:00000000 $t C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:27 .text.ftcan_init:00000000 ftcan_init C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:68 .text.ftcan_init:0000001c $d C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:644 .bss.hcan:00000000 hcan C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:73 .text.ftcan_transmit:00000000 $t C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:79 .text.ftcan_transmit:00000000 ftcan_transmit C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:131 .text.ftcan_transmit:00000024 $d C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:638 .bss.header.2:00000000 header.2 C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:137 .text.ftcan_add_filter:00000000 $t C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:143 .text.ftcan_add_filter:00000000 ftcan_add_filter C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:256 .text.ftcan_add_filter:00000060 $d C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:632 .bss.next_filter_no.1:00000000 next_filter_no.1 C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:626 .bss.filter.0:00000000 filter.0 C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:263 .text.ftcan_msg_received_cb:00000000 $t C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:269 .text.ftcan_msg_received_cb:00000000 ftcan_msg_received_cb C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:283 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 $t C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:289 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 HAL_CAN_RxFifo0MsgPendingCallback C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:352 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000034 $d C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:357 .text.ftcan_unmarshal_unsigned:00000000 $t C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:363 .text.ftcan_unmarshal_unsigned:00000000 ftcan_unmarshal_unsigned C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:441 .text.ftcan_unmarshal_signed:00000000 $t C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:447 .text.ftcan_unmarshal_signed:00000000 ftcan_unmarshal_signed C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:516 .text.ftcan_marshal_unsigned:00000000 $t C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:522 .text.ftcan_marshal_unsigned:00000000 ftcan_marshal_unsigned C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:588 .text.ftcan_marshal_signed:00000000 $t C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:594 .text.ftcan_marshal_signed:00000000 ftcan_marshal_signed C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:623 .bss.filter.0:00000000 $d C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:629 .bss.next_filter_no.1:00000000 $d C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:635 .bss.header.2:00000000 $d C:\Users\nived\AppData\Local\Temp\ccTRndkw.s:641 .bss.hcan:00000000 $d UNDEFINED SYMBOLS HAL_CAN_ActivateNotification HAL_CAN_Start HAL_CAN_AddTxMessage HAL_CAN_ConfigFilter HAL_CAN_GetRxMessage