ARM GAS C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 6 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "can.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .global hcan 20 .section .bss.hcan,"aw",%nobits 21 .align 2 24 hcan: 25 0000 00000000 .space 40 25 00000000 25 00000000 25 00000000 25 00000000 26 .section .text.MX_CAN_Init,"ax",%progbits 27 .align 1 28 .global MX_CAN_Init 29 .syntax unified 30 .thumb 31 .thumb_func 33 MX_CAN_Init: 34 .LFB130: 35 .file 1 "Core/Src/can.c" 1:Core/Src/can.c **** /* USER CODE BEGIN Header */ 2:Core/Src/can.c **** /** 3:Core/Src/can.c **** ****************************************************************************** 4:Core/Src/can.c **** * @file can.c 5:Core/Src/can.c **** * @brief This file provides code for the configuration 6:Core/Src/can.c **** * of the CAN instances. 7:Core/Src/can.c **** ****************************************************************************** 8:Core/Src/can.c **** * @attention 9:Core/Src/can.c **** * 10:Core/Src/can.c **** * Copyright (c) 2025 STMicroelectronics. 11:Core/Src/can.c **** * All rights reserved. 12:Core/Src/can.c **** * 13:Core/Src/can.c **** * This software is licensed under terms that can be found in the LICENSE file 14:Core/Src/can.c **** * in the root directory of this software component. 15:Core/Src/can.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 16:Core/Src/can.c **** * 17:Core/Src/can.c **** ****************************************************************************** 18:Core/Src/can.c **** */ 19:Core/Src/can.c **** /* USER CODE END Header */ 20:Core/Src/can.c **** /* Includes ------------------------------------------------------------------*/ 21:Core/Src/can.c **** #include "can.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s page 2 22:Core/Src/can.c **** 23:Core/Src/can.c **** /* USER CODE BEGIN 0 */ 24:Core/Src/can.c **** 25:Core/Src/can.c **** /* USER CODE END 0 */ 26:Core/Src/can.c **** 27:Core/Src/can.c **** CAN_HandleTypeDef hcan; 28:Core/Src/can.c **** //采样点计算 29:Core/Src/can.c **** //(1+bs1)/(1+bs1+bs2) = 1 + 3 / 1 + 3 + 2 = 66.6% 30:Core/Src/can.c **** // 1 + 9 / 1 + 9 + 2 = 83.3% 31:Core/Src/can.c **** /* CAN init function */ 32:Core/Src/can.c **** void MX_CAN_Init(void) 33:Core/Src/can.c **** { 36 .loc 1 33 1 37 .cfi_startproc 38 @ args = 0, pretend = 0, frame = 0 39 @ frame_needed = 1, uses_anonymous_args = 0 40 0000 80B5 push {r7, lr} 41 .LCFI0: 42 .cfi_def_cfa_offset 8 43 .cfi_offset 7, -8 44 .cfi_offset 14, -4 45 0002 00AF add r7, sp, #0 46 .LCFI1: 47 .cfi_def_cfa_register 7 34:Core/Src/can.c **** 35:Core/Src/can.c **** /* USER CODE BEGIN CAN_Init 0 */ 36:Core/Src/can.c **** 37:Core/Src/can.c **** /* USER CODE END CAN_Init 0 */ 38:Core/Src/can.c **** 39:Core/Src/can.c **** /* USER CODE BEGIN CAN_Init 1 */ 40:Core/Src/can.c **** 41:Core/Src/can.c **** /* USER CODE END CAN_Init 1 */ 42:Core/Src/can.c **** hcan.Instance = CAN; 48 .loc 1 42 17 49 0004 174B ldr r3, .L4 50 0006 184A ldr r2, .L4+4 51 0008 1A60 str r2, [r3] 43:Core/Src/can.c **** hcan.Init.Prescaler = 6; 52 .loc 1 43 23 53 000a 164B ldr r3, .L4 54 000c 0622 movs r2, #6 55 000e 5A60 str r2, [r3, #4] 44:Core/Src/can.c **** hcan.Init.Mode = CAN_MODE_NORMAL; 56 .loc 1 44 18 57 0010 144B ldr r3, .L4 58 0012 0022 movs r2, #0 59 0014 9A60 str r2, [r3, #8] 45:Core/Src/can.c **** hcan.Init.SyncJumpWidth = CAN_SJW_1TQ; 60 .loc 1 45 27 61 0016 134B ldr r3, .L4 62 0018 0022 movs r2, #0 63 001a DA60 str r2, [r3, #12] 46:Core/Src/can.c **** hcan.Init.TimeSeg1 = CAN_BS1_3TQ; 64 .loc 1 46 22 65 001c 114B ldr r3, .L4 66 001e 4FF40032 mov r2, #131072 67 0022 1A61 str r2, [r3, #16] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s page 3 47:Core/Src/can.c **** hcan.Init.TimeSeg2 = CAN_BS2_2TQ; 68 .loc 1 47 22 69 0024 0F4B ldr r3, .L4 70 0026 4FF48012 mov r2, #1048576 71 002a 5A61 str r2, [r3, #20] 48:Core/Src/can.c **** hcan.Init.TimeTriggeredMode = DISABLE; 72 .loc 1 48 31 73 002c 0D4B ldr r3, .L4 74 002e 0022 movs r2, #0 75 0030 1A76 strb r2, [r3, #24] 49:Core/Src/can.c **** hcan.Init.AutoBusOff = ENABLE; 76 .loc 1 49 24 77 0032 0C4B ldr r3, .L4 78 0034 0122 movs r2, #1 79 0036 5A76 strb r2, [r3, #25] 50:Core/Src/can.c **** hcan.Init.AutoWakeUp = DISABLE; 80 .loc 1 50 24 81 0038 0A4B ldr r3, .L4 82 003a 0022 movs r2, #0 83 003c 9A76 strb r2, [r3, #26] 51:Core/Src/can.c **** hcan.Init.AutoRetransmission = DISABLE; 84 .loc 1 51 32 85 003e 094B ldr r3, .L4 86 0040 0022 movs r2, #0 87 0042 DA76 strb r2, [r3, #27] 52:Core/Src/can.c **** hcan.Init.ReceiveFifoLocked = DISABLE; 88 .loc 1 52 31 89 0044 074B ldr r3, .L4 90 0046 0022 movs r2, #0 91 0048 1A77 strb r2, [r3, #28] 53:Core/Src/can.c **** hcan.Init.TransmitFifoPriority = ENABLE; 92 .loc 1 53 34 93 004a 064B ldr r3, .L4 94 004c 0122 movs r2, #1 95 004e 5A77 strb r2, [r3, #29] 54:Core/Src/can.c **** if (HAL_CAN_Init(&hcan) != HAL_OK) 96 .loc 1 54 7 97 0050 0448 ldr r0, .L4 98 0052 FFF7FEFF bl HAL_CAN_Init 99 0056 0346 mov r3, r0 100 .loc 1 54 6 101 0058 002B cmp r3, #0 102 005a 01D0 beq .L3 55:Core/Src/can.c **** { 56:Core/Src/can.c **** Error_Handler(); 103 .loc 1 56 5 104 005c FFF7FEFF bl Error_Handler 105 .L3: 57:Core/Src/can.c **** } 58:Core/Src/can.c **** /* USER CODE BEGIN CAN_Init 2 */ 59:Core/Src/can.c **** 60:Core/Src/can.c **** /* USER CODE END CAN_Init 2 */ 61:Core/Src/can.c **** 62:Core/Src/can.c **** } 106 .loc 1 62 1 107 0060 00BF nop 108 0062 80BD pop {r7, pc} ARM GAS C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s page 4 109 .L5: 110 .align 2 111 .L4: 112 0064 00000000 .word hcan 113 0068 00640040 .word 1073767424 114 .cfi_endproc 115 .LFE130: 117 .section .text.HAL_CAN_MspInit,"ax",%progbits 118 .align 1 119 .global HAL_CAN_MspInit 120 .syntax unified 121 .thumb 122 .thumb_func 124 HAL_CAN_MspInit: 125 .LFB131: 63:Core/Src/can.c **** 64:Core/Src/can.c **** void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle) 65:Core/Src/can.c **** { 126 .loc 1 65 1 127 .cfi_startproc 128 @ args = 0, pretend = 0, frame = 40 129 @ frame_needed = 1, uses_anonymous_args = 0 130 0000 80B5 push {r7, lr} 131 .LCFI2: 132 .cfi_def_cfa_offset 8 133 .cfi_offset 7, -8 134 .cfi_offset 14, -4 135 0002 8AB0 sub sp, sp, #40 136 .LCFI3: 137 .cfi_def_cfa_offset 48 138 0004 00AF add r7, sp, #0 139 .LCFI4: 140 .cfi_def_cfa_register 7 141 0006 7860 str r0, [r7, #4] 66:Core/Src/can.c **** 67:Core/Src/can.c **** GPIO_InitTypeDef GPIO_InitStruct = {0}; 142 .loc 1 67 20 143 0008 07F11403 add r3, r7, #20 144 000c 0022 movs r2, #0 145 000e 1A60 str r2, [r3] 146 0010 5A60 str r2, [r3, #4] 147 0012 9A60 str r2, [r3, #8] 148 0014 DA60 str r2, [r3, #12] 149 0016 1A61 str r2, [r3, #16] 68:Core/Src/can.c **** if(canHandle->Instance==CAN) 150 .loc 1 68 15 151 0018 7B68 ldr r3, [r7, #4] 152 001a 1B68 ldr r3, [r3] 153 .loc 1 68 5 154 001c 1C4A ldr r2, .L9 155 001e 9342 cmp r3, r2 156 0020 31D1 bne .L8 157 .LBB2: 69:Core/Src/can.c **** { 70:Core/Src/can.c **** /* USER CODE BEGIN CAN_MspInit 0 */ 71:Core/Src/can.c **** 72:Core/Src/can.c **** /* USER CODE END CAN_MspInit 0 */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s page 5 73:Core/Src/can.c **** /* CAN clock enable */ 74:Core/Src/can.c **** __HAL_RCC_CAN1_CLK_ENABLE(); 158 .loc 1 74 5 159 0022 1C4B ldr r3, .L9+4 160 0024 DB69 ldr r3, [r3, #28] 161 0026 1B4A ldr r2, .L9+4 162 0028 43F00073 orr r3, r3, #33554432 163 002c D361 str r3, [r2, #28] 164 002e 194B ldr r3, .L9+4 165 0030 DB69 ldr r3, [r3, #28] 166 0032 03F00073 and r3, r3, #33554432 167 0036 3B61 str r3, [r7, #16] 168 0038 3B69 ldr r3, [r7, #16] 169 .LBE2: 170 .LBB3: 75:Core/Src/can.c **** 76:Core/Src/can.c **** __HAL_RCC_GPIOA_CLK_ENABLE(); 171 .loc 1 76 5 172 003a 164B ldr r3, .L9+4 173 003c 5B69 ldr r3, [r3, #20] 174 003e 154A ldr r2, .L9+4 175 0040 43F40033 orr r3, r3, #131072 176 0044 5361 str r3, [r2, #20] 177 0046 134B ldr r3, .L9+4 178 0048 5B69 ldr r3, [r3, #20] 179 004a 03F40033 and r3, r3, #131072 180 004e FB60 str r3, [r7, #12] 181 0050 FB68 ldr r3, [r7, #12] 182 .LBE3: 77:Core/Src/can.c **** /**CAN GPIO Configuration 78:Core/Src/can.c **** PA11 ------> CAN_RX 79:Core/Src/can.c **** PA12 ------> CAN_TX 80:Core/Src/can.c **** */ 81:Core/Src/can.c **** GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12; 183 .loc 1 81 25 184 0052 4FF4C053 mov r3, #6144 185 0056 7B61 str r3, [r7, #20] 82:Core/Src/can.c **** GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 186 .loc 1 82 26 187 0058 0223 movs r3, #2 188 005a BB61 str r3, [r7, #24] 83:Core/Src/can.c **** GPIO_InitStruct.Pull = GPIO_NOPULL; 189 .loc 1 83 26 190 005c 0023 movs r3, #0 191 005e FB61 str r3, [r7, #28] 84:Core/Src/can.c **** GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; 192 .loc 1 84 27 193 0060 0323 movs r3, #3 194 0062 3B62 str r3, [r7, #32] 85:Core/Src/can.c **** GPIO_InitStruct.Alternate = GPIO_AF9_CAN; 195 .loc 1 85 31 196 0064 0923 movs r3, #9 197 0066 7B62 str r3, [r7, #36] 86:Core/Src/can.c **** HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 198 .loc 1 86 5 199 0068 07F11403 add r3, r7, #20 200 006c 1946 mov r1, r3 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s page 6 201 006e 4FF09040 mov r0, #1207959552 202 0072 FFF7FEFF bl HAL_GPIO_Init 87:Core/Src/can.c **** 88:Core/Src/can.c **** /* CAN interrupt Init */ 89:Core/Src/can.c **** HAL_NVIC_SetPriority(USB_LP_CAN_RX0_IRQn, 0, 0); 203 .loc 1 89 5 204 0076 0022 movs r2, #0 205 0078 0021 movs r1, #0 206 007a 1420 movs r0, #20 207 007c FFF7FEFF bl HAL_NVIC_SetPriority 90:Core/Src/can.c **** HAL_NVIC_EnableIRQ(USB_LP_CAN_RX0_IRQn); 208 .loc 1 90 5 209 0080 1420 movs r0, #20 210 0082 FFF7FEFF bl HAL_NVIC_EnableIRQ 211 .L8: 91:Core/Src/can.c **** /* USER CODE BEGIN CAN_MspInit 1 */ 92:Core/Src/can.c **** 93:Core/Src/can.c **** /* USER CODE END CAN_MspInit 1 */ 94:Core/Src/can.c **** } 95:Core/Src/can.c **** } 212 .loc 1 95 1 213 0086 00BF nop 214 0088 2837 adds r7, r7, #40 215 .LCFI5: 216 .cfi_def_cfa_offset 8 217 008a BD46 mov sp, r7 218 .LCFI6: 219 .cfi_def_cfa_register 13 220 @ sp needed 221 008c 80BD pop {r7, pc} 222 .L10: 223 008e 00BF .align 2 224 .L9: 225 0090 00640040 .word 1073767424 226 0094 00100240 .word 1073876992 227 .cfi_endproc 228 .LFE131: 230 .section .text.HAL_CAN_MspDeInit,"ax",%progbits 231 .align 1 232 .global HAL_CAN_MspDeInit 233 .syntax unified 234 .thumb 235 .thumb_func 237 HAL_CAN_MspDeInit: 238 .LFB132: 96:Core/Src/can.c **** 97:Core/Src/can.c **** void HAL_CAN_MspDeInit(CAN_HandleTypeDef* canHandle) 98:Core/Src/can.c **** { 239 .loc 1 98 1 240 .cfi_startproc 241 @ args = 0, pretend = 0, frame = 8 242 @ frame_needed = 1, uses_anonymous_args = 0 243 0000 80B5 push {r7, lr} 244 .LCFI7: 245 .cfi_def_cfa_offset 8 246 .cfi_offset 7, -8 247 .cfi_offset 14, -4 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s page 7 248 0002 82B0 sub sp, sp, #8 249 .LCFI8: 250 .cfi_def_cfa_offset 16 251 0004 00AF add r7, sp, #0 252 .LCFI9: 253 .cfi_def_cfa_register 7 254 0006 7860 str r0, [r7, #4] 99:Core/Src/can.c **** 100:Core/Src/can.c **** if(canHandle->Instance==CAN) 255 .loc 1 100 15 256 0008 7B68 ldr r3, [r7, #4] 257 000a 1B68 ldr r3, [r3] 258 .loc 1 100 5 259 000c 0A4A ldr r2, .L14 260 000e 9342 cmp r3, r2 261 0010 0ED1 bne .L13 101:Core/Src/can.c **** { 102:Core/Src/can.c **** /* USER CODE BEGIN CAN_MspDeInit 0 */ 103:Core/Src/can.c **** 104:Core/Src/can.c **** /* USER CODE END CAN_MspDeInit 0 */ 105:Core/Src/can.c **** /* Peripheral clock disable */ 106:Core/Src/can.c **** __HAL_RCC_CAN1_CLK_DISABLE(); 262 .loc 1 106 5 263 0012 0A4B ldr r3, .L14+4 264 0014 DB69 ldr r3, [r3, #28] 265 0016 094A ldr r2, .L14+4 266 0018 23F00073 bic r3, r3, #33554432 267 001c D361 str r3, [r2, #28] 107:Core/Src/can.c **** 108:Core/Src/can.c **** /**CAN GPIO Configuration 109:Core/Src/can.c **** PA11 ------> CAN_RX 110:Core/Src/can.c **** PA12 ------> CAN_TX 111:Core/Src/can.c **** */ 112:Core/Src/can.c **** HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12); 268 .loc 1 112 5 269 001e 4FF4C051 mov r1, #6144 270 0022 4FF09040 mov r0, #1207959552 271 0026 FFF7FEFF bl HAL_GPIO_DeInit 113:Core/Src/can.c **** 114:Core/Src/can.c **** /* CAN interrupt Deinit */ 115:Core/Src/can.c **** HAL_NVIC_DisableIRQ(USB_LP_CAN_RX0_IRQn); 272 .loc 1 115 5 273 002a 1420 movs r0, #20 274 002c FFF7FEFF bl HAL_NVIC_DisableIRQ 275 .L13: 116:Core/Src/can.c **** /* USER CODE BEGIN CAN_MspDeInit 1 */ 117:Core/Src/can.c **** 118:Core/Src/can.c **** /* USER CODE END CAN_MspDeInit 1 */ 119:Core/Src/can.c **** } 120:Core/Src/can.c **** } 276 .loc 1 120 1 277 0030 00BF nop 278 0032 0837 adds r7, r7, #8 279 .LCFI10: 280 .cfi_def_cfa_offset 8 281 0034 BD46 mov sp, r7 282 .LCFI11: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s page 8 283 .cfi_def_cfa_register 13 284 @ sp needed 285 0036 80BD pop {r7, pc} 286 .L15: 287 .align 2 288 .L14: 289 0038 00640040 .word 1073767424 290 003c 00100240 .word 1073876992 291 .cfi_endproc 292 .LFE132: 294 .text 295 .Letext0: 296 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 297 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 298 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 299 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h" 300 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 301 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_gpio.h" 302 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h" 303 .file 9 "Core/Inc/can.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s page 9 DEFINED SYMBOLS *ABS*:00000000 can.c C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:24 .bss.hcan:00000000 hcan C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:21 .bss.hcan:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:27 .text.MX_CAN_Init:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:33 .text.MX_CAN_Init:00000000 MX_CAN_Init C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:112 .text.MX_CAN_Init:00000064 $d C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:118 .text.HAL_CAN_MspInit:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:124 .text.HAL_CAN_MspInit:00000000 HAL_CAN_MspInit C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:225 .text.HAL_CAN_MspInit:00000090 $d C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:231 .text.HAL_CAN_MspDeInit:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:237 .text.HAL_CAN_MspDeInit:00000000 HAL_CAN_MspDeInit C:\Users\zl835\AppData\Local\Temp\ccInIkTd.s:289 .text.HAL_CAN_MspDeInit:00000038 $d UNDEFINED SYMBOLS HAL_CAN_Init Error_Handler HAL_GPIO_Init HAL_NVIC_SetPriority HAL_NVIC_EnableIRQ HAL_GPIO_DeInit HAL_NVIC_DisableIRQ