ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.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 "stm32f3xx_hal_can.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .section .rodata 20 .align 2 21 .LC0: 22 0000 44726976 .ascii "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can." 22 6572732F 22 53544D33 22 32463378 22 785F4841 23 0033 6300 .ascii "c\000" 24 .section .text.HAL_CAN_Init,"ax",%progbits 25 .align 1 26 .global HAL_CAN_Init 27 .syntax unified 28 .thumb 29 .thumb_func 31 HAL_CAN_Init: 32 .LFB130: 33 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c" 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ****************************************************************************** 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @file stm32f3xx_hal_can.c 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @author MCD Application Team 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief CAN HAL module driver. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * functionalities of the Controller Area Network (CAN) peripheral: 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Configuration functions 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Control functions 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Interrupts management 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Callbacks functions 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Peripheral State and Error functions 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ****************************************************************************** 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @attention 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * Copyright (c) 2016 STMicroelectronics. 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * All rights reserved. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This software is licensed under terms that can be found in the LICENSE file ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 2 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * in the root directory of this software component. 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ****************************************************************************** 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### How to use this driver ##### 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Initialize the CAN low level resources by implementing the 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_MspInit(): 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Enable the CAN interface clock using __HAL_RCC_CANx_CLK_ENABLE() 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Configure CAN pins 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) Enable the clock for the CAN GPIOs 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) Configure CAN pins as alternate function 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) In case of using interrupts (e.g. HAL_CAN_ActivateNotification()) 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) Configure the CAN interrupt priority using 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_NVIC_SetPriority() 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) Enable the CAN IRQ handler using HAL_NVIC_EnableIRQ() 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) In CAN IRQ handler, call HAL_CAN_IRQHandler() 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Initialize the CAN peripheral using HAL_CAN_Init() function. This 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** function resorts to HAL_CAN_MspInit() for low-level initialization. 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Configure the reception filters using the following configuration 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** functions: 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_ConfigFilter() 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Start the CAN module using HAL_CAN_Start() function. At this level 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the node is active on the bus: it receive messages, and can send 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** messages. 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) To manage messages transmission, the following Tx control functions 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can be used: 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_AddTxMessage() to request transmission of a new 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** message. 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_AbortTxRequest() to abort transmission of a pending 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** message. 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_GetTxMailboxesFreeLevel() to get the number of free Tx 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** mailboxes. 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_IsTxMessagePending() to check if a message is pending 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** in a Tx mailbox. 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_GetTxTimestamp() to get the timestamp of Tx message 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** sent, if time triggered communication mode is enabled. 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) When a message is received into the CAN Rx FIFOs, it can be retrieved 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** using the HAL_CAN_GetRxMessage() function. The function 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_GetRxFifoFillLevel() allows to know how many Rx message are 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** stored in the Rx Fifo. 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Calling the HAL_CAN_Stop() function stops the CAN module. 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) The deinitialization is achieved with HAL_CAN_DeInit() function. 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *** Polling mode operation *** 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================== ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 3 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Reception: 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Monitor reception of message using HAL_CAN_GetRxFifoFillLevel() 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** until at least one message is received. 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Then get the message using HAL_CAN_GetRxMessage(). 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Transmission: 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Monitor the Tx mailboxes availability until at least one Tx 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** mailbox is free, using HAL_CAN_GetTxMailboxesFreeLevel(). 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Then request transmission of a message using 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_AddTxMessage(). 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *** Interrupt mode operation *** 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ================================ 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Notifications are activated using HAL_CAN_ActivateNotification() 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** function. Then, the process can be controlled through the 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** available user callbacks: HAL_CAN_xxxCallback(), using same APIs 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_GetRxMessage() and HAL_CAN_AddTxMessage(). 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Notifications can be deactivated using 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_DeactivateNotification() function. 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Special care should be taken for CAN_IT_RX_FIFO0_MSG_PENDING and 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CAN_IT_RX_FIFO1_MSG_PENDING notifications. These notifications trig 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the callbacks HAL_CAN_RxFIFO0MsgPendingCallback() and 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFIFO1MsgPendingCallback(). User has two possible options 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** here. 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Directly get the Rx message in the callback, using 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_GetRxMessage(). 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Or deactivate the notification in the callback without 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** getting the Rx message. The Rx message can then be got later 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** using HAL_CAN_GetRxMessage(). Once the Rx message have been 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** read, the notification can be activated again. 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *** Sleep mode *** 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ================== 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) The CAN peripheral can be put in sleep mode (low power), using 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RequestSleep(). The sleep mode will be entered as soon as the 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** current CAN activity (transmission or reception of a CAN frame) will 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** be completed. 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) A notification can be activated to be informed when the sleep mode 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** will be entered. 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) It can be checked if the sleep mode is entered using 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_IsSleepActive(). 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Note that the CAN state (accessible from the API HAL_CAN_GetState()) 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** is HAL_CAN_STATE_SLEEP_PENDING as soon as the sleep mode request is 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** submitted (the sleep mode is not yet entered), and become 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_STATE_SLEEP_ACTIVE when the sleep mode is effective. 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) The wake-up from sleep mode can be triggered by two ways: 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Using HAL_CAN_WakeUp(). When returning from this function, ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 4 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the sleep mode is exited (if return status is HAL_OK). 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) When a start of Rx CAN frame is detected by the CAN peripheral, 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if automatic wake up mode is enabled. 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *** Callback registration *** 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================= 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** The compilation define USE_HAL_CAN_REGISTER_CALLBACKS when set to 1 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** allows the user to configure dynamically the driver callbacks. 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Use Function HAL_CAN_RegisterCallback() to register an interrupt callback. 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Function HAL_CAN_RegisterCallback() allows to register following callbacks: 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback. 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback. 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback. 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback. 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback. 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback. 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback. 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback. 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback. 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback. 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) SleepCallback : Sleep Callback. 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback. 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) ErrorCallback : Error Callback. 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) MspInitCallback : CAN MspInit. 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit. 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** and a pointer to the user callback function. 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Use function HAL_CAN_UnRegisterCallback() to reset a callback to the default 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** weak function. 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_UnRegisterCallback takes as parameters the HAL peripheral handle, 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** and the Callback ID. 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** This function allows to reset following callbacks: 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback. 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback. 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback. 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback. 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback. 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback. 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback. 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback. 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback. 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback. 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) SleepCallback : Sleep Callback. 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback. 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) ErrorCallback : Error Callback. 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) MspInitCallback : CAN MspInit. 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit. 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** By default, after the HAL_CAN_Init() and when the state is HAL_CAN_STATE_RESET, 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** all callbacks are set to the corresponding weak functions: 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** example HAL_CAN_ErrorCallback(). 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Exception done for MspInit and MspDeInit functions that are 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** reset to the legacy weak function in the HAL_CAN_Init()/ HAL_CAN_DeInit() only when 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** these callbacks are null (not registered beforehand). ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 5 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if not, MspInit or MspDeInit are not null, the HAL_CAN_Init()/ HAL_CAN_DeInit() 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Callbacks can be registered/unregistered in HAL_CAN_STATE_READY state only. 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Exception done MspInit/MspDeInit that can be registered/unregistered 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** in HAL_CAN_STATE_READY or HAL_CAN_STATE_RESET state, 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** In that case first register the MspInit/MspDeInit user callbacks 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** using HAL_CAN_RegisterCallback() before calling HAL_CAN_DeInit() 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** or HAL_CAN_Init() function. 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** When The compilation define USE_HAL_CAN_REGISTER_CALLBACKS is set to 0 or 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** not defined, the callback registration feature is not available and all callbacks 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** are set to the corresponding weak functions. 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ****************************************************************************** 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Includes ------------------------------------------------------------------*/ 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #include "stm32f3xx_hal.h" 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @addtogroup STM32F3xx_HAL_Driver 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if defined(CAN) 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN CAN 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief CAN driver modules 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #ifdef HAL_CAN_MODULE_ENABLED 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #ifdef HAL_CAN_LEGACY_MODULE_ENABLED 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #error "The CAN driver cannot be used with its legacy, Please enable only one CAN module at once" 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* HAL_CAN_LEGACY_MODULE_ENABLED */ 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private typedef -----------------------------------------------------------*/ 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private define ------------------------------------------------------------*/ 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Private_Constants CAN Private Constants 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #define CAN_TIMEOUT_VALUE 10U 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #define CAN_WAKEUP_TIMEOUT_COUNTER 1000000U 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @} 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private macro -------------------------------------------------------------*/ 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private variables ---------------------------------------------------------*/ 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private function prototypes -----------------------------------------------*/ 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Exported functions --------------------------------------------------------*/ 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions CAN Exported Functions 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 6 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group1 Initialization and de-initialization functions 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Initialization and Configuration functions 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Initialization and de-initialization functions ##### 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] This section provides functions allowing to: 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_Init : Initialize and configure the CAN. 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_DeInit : De-initialize the CAN. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_MspInit : Initialize the CAN MSP. 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_MspDeInit : DeInitialize the CAN MSP. 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Initializes the CAN peripheral according to the specified 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * parameters in the CAN_InitStruct. 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef *hcan) 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 34 .loc 1 276 1 35 .cfi_startproc 36 @ args = 0, pretend = 0, frame = 16 37 @ frame_needed = 1, uses_anonymous_args = 0 38 0000 80B5 push {r7, lr} 39 .LCFI0: 40 .cfi_def_cfa_offset 8 41 .cfi_offset 7, -8 42 .cfi_offset 14, -4 43 0002 84B0 sub sp, sp, #16 44 .LCFI1: 45 .cfi_def_cfa_offset 24 46 0004 00AF add r7, sp, #0 47 .LCFI2: 48 .cfi_def_cfa_register 7 49 0006 7860 str r0, [r7, #4] 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check CAN handle */ 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan == NULL) 50 .loc 1 280 6 51 0008 7B68 ldr r3, [r7, #4] 52 000a 002B cmp r3, #0 53 000c 01D1 bne .L2 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 54 .loc 1 282 12 55 000e 0123 movs r3, #1 56 0010 09E2 b .L3 57 .L2: ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 7 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */ 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance)); 58 .loc 1 286 3 59 0012 7B68 ldr r3, [r7, #4] 60 0014 1B68 ldr r3, [r3] 61 0016 8F4A ldr r2, .L34 62 0018 9342 cmp r3, r2 63 001a 04D0 beq .L4 64 .loc 1 286 3 is_stmt 0 discriminator 1 65 001c 4FF48F71 mov r1, #286 66 0020 8D48 ldr r0, .L34+4 67 0022 FFF7FEFF bl assert_failed 68 .L4: 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); 69 .loc 1 287 3 is_stmt 1 70 0026 7B68 ldr r3, [r7, #4] 71 0028 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2 72 002a 002B cmp r3, #0 73 002c 08D0 beq .L5 74 .loc 1 287 3 is_stmt 0 discriminator 1 75 002e 7B68 ldr r3, [r7, #4] 76 0030 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2 77 0032 012B cmp r3, #1 78 0034 04D0 beq .L5 79 .loc 1 287 3 discriminator 2 80 0036 40F21F11 movw r1, #287 81 003a 8748 ldr r0, .L34+4 82 003c FFF7FEFF bl assert_failed 83 .L5: 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff)); 84 .loc 1 288 3 is_stmt 1 85 0040 7B68 ldr r3, [r7, #4] 86 0042 5B7E ldrb r3, [r3, #25] @ zero_extendqisi2 87 0044 002B cmp r3, #0 88 0046 08D0 beq .L6 89 .loc 1 288 3 is_stmt 0 discriminator 1 90 0048 7B68 ldr r3, [r7, #4] 91 004a 5B7E ldrb r3, [r3, #25] @ zero_extendqisi2 92 004c 012B cmp r3, #1 93 004e 04D0 beq .L6 94 .loc 1 288 3 discriminator 2 95 0050 4FF49071 mov r1, #288 96 0054 8048 ldr r0, .L34+4 97 0056 FFF7FEFF bl assert_failed 98 .L6: 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp)); 99 .loc 1 289 3 is_stmt 1 100 005a 7B68 ldr r3, [r7, #4] 101 005c 9B7E ldrb r3, [r3, #26] @ zero_extendqisi2 102 005e 002B cmp r3, #0 103 0060 08D0 beq .L7 104 .loc 1 289 3 is_stmt 0 discriminator 1 105 0062 7B68 ldr r3, [r7, #4] 106 0064 9B7E ldrb r3, [r3, #26] @ zero_extendqisi2 107 0066 012B cmp r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 8 108 0068 04D0 beq .L7 109 .loc 1 289 3 discriminator 2 110 006a 40F22111 movw r1, #289 111 006e 7A48 ldr r0, .L34+4 112 0070 FFF7FEFF bl assert_failed 113 .L7: 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission)); 114 .loc 1 290 3 is_stmt 1 115 0074 7B68 ldr r3, [r7, #4] 116 0076 DB7E ldrb r3, [r3, #27] @ zero_extendqisi2 117 0078 002B cmp r3, #0 118 007a 08D0 beq .L8 119 .loc 1 290 3 is_stmt 0 discriminator 1 120 007c 7B68 ldr r3, [r7, #4] 121 007e DB7E ldrb r3, [r3, #27] @ zero_extendqisi2 122 0080 012B cmp r3, #1 123 0082 04D0 beq .L8 124 .loc 1 290 3 discriminator 2 125 0084 4FF49171 mov r1, #290 126 0088 7348 ldr r0, .L34+4 127 008a FFF7FEFF bl assert_failed 128 .L8: 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked)); 129 .loc 1 291 3 is_stmt 1 130 008e 7B68 ldr r3, [r7, #4] 131 0090 1B7F ldrb r3, [r3, #28] @ zero_extendqisi2 132 0092 002B cmp r3, #0 133 0094 08D0 beq .L9 134 .loc 1 291 3 is_stmt 0 discriminator 1 135 0096 7B68 ldr r3, [r7, #4] 136 0098 1B7F ldrb r3, [r3, #28] @ zero_extendqisi2 137 009a 012B cmp r3, #1 138 009c 04D0 beq .L9 139 .loc 1 291 3 discriminator 2 140 009e 40F22311 movw r1, #291 141 00a2 6D48 ldr r0, .L34+4 142 00a4 FFF7FEFF bl assert_failed 143 .L9: 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority)); 144 .loc 1 292 3 is_stmt 1 145 00a8 7B68 ldr r3, [r7, #4] 146 00aa 5B7F ldrb r3, [r3, #29] @ zero_extendqisi2 147 00ac 002B cmp r3, #0 148 00ae 08D0 beq .L10 149 .loc 1 292 3 is_stmt 0 discriminator 1 150 00b0 7B68 ldr r3, [r7, #4] 151 00b2 5B7F ldrb r3, [r3, #29] @ zero_extendqisi2 152 00b4 012B cmp r3, #1 153 00b6 04D0 beq .L10 154 .loc 1 292 3 discriminator 2 155 00b8 4FF49271 mov r1, #292 156 00bc 6648 ldr r0, .L34+4 157 00be FFF7FEFF bl assert_failed 158 .L10: 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode)); 159 .loc 1 293 3 is_stmt 1 160 00c2 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 9 161 00c4 9B68 ldr r3, [r3, #8] 162 00c6 002B cmp r3, #0 163 00c8 13D0 beq .L11 164 .loc 1 293 3 is_stmt 0 discriminator 1 165 00ca 7B68 ldr r3, [r7, #4] 166 00cc 9B68 ldr r3, [r3, #8] 167 00ce B3F1804F cmp r3, #1073741824 168 00d2 0ED0 beq .L11 169 .loc 1 293 3 discriminator 2 170 00d4 7B68 ldr r3, [r7, #4] 171 00d6 9B68 ldr r3, [r3, #8] 172 00d8 B3F1004F cmp r3, #-2147483648 173 00dc 09D0 beq .L11 174 .loc 1 293 3 discriminator 3 175 00de 7B68 ldr r3, [r7, #4] 176 00e0 9B68 ldr r3, [r3, #8] 177 00e2 B3F1404F cmp r3, #-1073741824 178 00e6 04D0 beq .L11 179 .loc 1 293 3 discriminator 4 180 00e8 40F22511 movw r1, #293 181 00ec 5A48 ldr r0, .L34+4 182 00ee FFF7FEFF bl assert_failed 183 .L11: 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth)); 184 .loc 1 294 3 is_stmt 1 185 00f2 7B68 ldr r3, [r7, #4] 186 00f4 DB68 ldr r3, [r3, #12] 187 00f6 002B cmp r3, #0 188 00f8 13D0 beq .L12 189 .loc 1 294 3 is_stmt 0 discriminator 1 190 00fa 7B68 ldr r3, [r7, #4] 191 00fc DB68 ldr r3, [r3, #12] 192 00fe B3F1807F cmp r3, #16777216 193 0102 0ED0 beq .L12 194 .loc 1 294 3 discriminator 2 195 0104 7B68 ldr r3, [r7, #4] 196 0106 DB68 ldr r3, [r3, #12] 197 0108 B3F1007F cmp r3, #33554432 198 010c 09D0 beq .L12 199 .loc 1 294 3 discriminator 3 200 010e 7B68 ldr r3, [r7, #4] 201 0110 DB68 ldr r3, [r3, #12] 202 0112 B3F1407F cmp r3, #50331648 203 0116 04D0 beq .L12 204 .loc 1 294 3 discriminator 4 205 0118 4FF49371 mov r1, #294 206 011c 4E48 ldr r0, .L34+4 207 011e FFF7FEFF bl assert_failed 208 .L12: 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1)); 209 .loc 1 295 3 is_stmt 1 210 0122 7B68 ldr r3, [r7, #4] 211 0124 1B69 ldr r3, [r3, #16] 212 0126 002B cmp r3, #0 213 0128 4FD0 beq .L13 214 .loc 1 295 3 is_stmt 0 discriminator 1 215 012a 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 10 216 012c 1B69 ldr r3, [r3, #16] 217 012e B3F5803F cmp r3, #65536 218 0132 4AD0 beq .L13 219 .loc 1 295 3 discriminator 2 220 0134 7B68 ldr r3, [r7, #4] 221 0136 1B69 ldr r3, [r3, #16] 222 0138 B3F5003F cmp r3, #131072 223 013c 45D0 beq .L13 224 .loc 1 295 3 discriminator 3 225 013e 7B68 ldr r3, [r7, #4] 226 0140 1B69 ldr r3, [r3, #16] 227 0142 B3F5403F cmp r3, #196608 228 0146 40D0 beq .L13 229 .loc 1 295 3 discriminator 4 230 0148 7B68 ldr r3, [r7, #4] 231 014a 1B69 ldr r3, [r3, #16] 232 014c B3F5802F cmp r3, #262144 233 0150 3BD0 beq .L13 234 .loc 1 295 3 discriminator 5 235 0152 7B68 ldr r3, [r7, #4] 236 0154 1B69 ldr r3, [r3, #16] 237 0156 B3F5A02F cmp r3, #327680 238 015a 36D0 beq .L13 239 .loc 1 295 3 discriminator 6 240 015c 7B68 ldr r3, [r7, #4] 241 015e 1B69 ldr r3, [r3, #16] 242 0160 B3F5C02F cmp r3, #393216 243 0164 31D0 beq .L13 244 .loc 1 295 3 discriminator 7 245 0166 7B68 ldr r3, [r7, #4] 246 0168 1B69 ldr r3, [r3, #16] 247 016a B3F5E02F cmp r3, #458752 248 016e 2CD0 beq .L13 249 .loc 1 295 3 discriminator 8 250 0170 7B68 ldr r3, [r7, #4] 251 0172 1B69 ldr r3, [r3, #16] 252 0174 B3F5002F cmp r3, #524288 253 0178 27D0 beq .L13 254 .loc 1 295 3 discriminator 9 255 017a 7B68 ldr r3, [r7, #4] 256 017c 1B69 ldr r3, [r3, #16] 257 017e B3F5102F cmp r3, #589824 258 0182 22D0 beq .L13 259 .loc 1 295 3 discriminator 10 260 0184 7B68 ldr r3, [r7, #4] 261 0186 1B69 ldr r3, [r3, #16] 262 0188 B3F5202F cmp r3, #655360 263 018c 1DD0 beq .L13 264 .loc 1 295 3 discriminator 11 265 018e 7B68 ldr r3, [r7, #4] 266 0190 1B69 ldr r3, [r3, #16] 267 0192 B3F5302F cmp r3, #720896 268 0196 18D0 beq .L13 269 .loc 1 295 3 discriminator 12 270 0198 7B68 ldr r3, [r7, #4] 271 019a 1B69 ldr r3, [r3, #16] 272 019c B3F5402F cmp r3, #786432 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 11 273 01a0 13D0 beq .L13 274 .loc 1 295 3 discriminator 13 275 01a2 7B68 ldr r3, [r7, #4] 276 01a4 1B69 ldr r3, [r3, #16] 277 01a6 B3F5502F cmp r3, #851968 278 01aa 0ED0 beq .L13 279 .loc 1 295 3 discriminator 14 280 01ac 7B68 ldr r3, [r7, #4] 281 01ae 1B69 ldr r3, [r3, #16] 282 01b0 B3F5602F cmp r3, #917504 283 01b4 09D0 beq .L13 284 .loc 1 295 3 discriminator 15 285 01b6 7B68 ldr r3, [r7, #4] 286 01b8 1B69 ldr r3, [r3, #16] 287 01ba B3F5702F cmp r3, #983040 288 01be 04D0 beq .L13 289 .loc 1 295 3 discriminator 16 290 01c0 40F22711 movw r1, #295 291 01c4 2448 ldr r0, .L34+4 292 01c6 FFF7FEFF bl assert_failed 293 .L13: 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); 294 .loc 1 296 3 is_stmt 1 295 01ca 7B68 ldr r3, [r7, #4] 296 01cc 5B69 ldr r3, [r3, #20] 297 01ce 002B cmp r3, #0 298 01d0 27D0 beq .L14 299 .loc 1 296 3 is_stmt 0 discriminator 1 300 01d2 7B68 ldr r3, [r7, #4] 301 01d4 5B69 ldr r3, [r3, #20] 302 01d6 B3F5801F cmp r3, #1048576 303 01da 22D0 beq .L14 304 .loc 1 296 3 discriminator 2 305 01dc 7B68 ldr r3, [r7, #4] 306 01de 5B69 ldr r3, [r3, #20] 307 01e0 B3F5001F cmp r3, #2097152 308 01e4 1DD0 beq .L14 309 .loc 1 296 3 discriminator 3 310 01e6 7B68 ldr r3, [r7, #4] 311 01e8 5B69 ldr r3, [r3, #20] 312 01ea B3F5401F cmp r3, #3145728 313 01ee 18D0 beq .L14 314 .loc 1 296 3 discriminator 4 315 01f0 7B68 ldr r3, [r7, #4] 316 01f2 5B69 ldr r3, [r3, #20] 317 01f4 B3F5800F cmp r3, #4194304 318 01f8 13D0 beq .L14 319 .loc 1 296 3 discriminator 5 320 01fa 7B68 ldr r3, [r7, #4] 321 01fc 5B69 ldr r3, [r3, #20] 322 01fe B3F5A00F cmp r3, #5242880 323 0202 0ED0 beq .L14 324 .loc 1 296 3 discriminator 6 325 0204 7B68 ldr r3, [r7, #4] 326 0206 5B69 ldr r3, [r3, #20] 327 0208 B3F5C00F cmp r3, #6291456 328 020c 09D0 beq .L14 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 12 329 .loc 1 296 3 discriminator 7 330 020e 7B68 ldr r3, [r7, #4] 331 0210 5B69 ldr r3, [r3, #20] 332 0212 B3F5E00F cmp r3, #7340032 333 0216 04D0 beq .L14 334 .loc 1 296 3 discriminator 8 335 0218 4FF49471 mov r1, #296 336 021c 0E48 ldr r0, .L34+4 337 021e FFF7FEFF bl assert_failed 338 .L14: 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler)); 339 .loc 1 297 3 is_stmt 1 340 0222 7B68 ldr r3, [r7, #4] 341 0224 5B68 ldr r3, [r3, #4] 342 0226 002B cmp r3, #0 343 0228 04D0 beq .L15 344 .loc 1 297 3 is_stmt 0 discriminator 2 345 022a 7B68 ldr r3, [r7, #4] 346 022c 5B68 ldr r3, [r3, #4] 347 022e B3F5806F cmp r3, #1024 348 0232 04D9 bls .L16 349 .L15: 350 .loc 1 297 3 discriminator 3 351 0234 40F22911 movw r1, #297 352 0238 0748 ldr r0, .L34+4 353 023a FFF7FEFF bl assert_failed 354 .L16: 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET) 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset callbacks to legacy functions */ 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; /* Legacy weak RxFifo0M 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; /* Legacy weak RxFifo0F 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; /* Legacy weak RxFifo1M 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; /* Legacy weak RxFifo1F 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; /* Legacy weak TxMailbo 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; /* Legacy weak TxMailbo 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; /* Legacy weak TxMailbo 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; /* Legacy weak TxMailbo 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; /* Legacy weak TxMailbo 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; /* Legacy weak TxMailbo 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback; /* Legacy weak SleepCal 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; /* Legacy weak WakeUpFr 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback; /* Legacy weak ErrorCal 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->MspInitCallback == NULL) 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; /* Legacy weak MspInit */ 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */ 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback(hcan); 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET) ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 13 355 .loc 1 327 11 is_stmt 1 356 023e 7B68 ldr r3, [r7, #4] 357 0240 93F82030 ldrb r3, [r3, #32] 358 0244 DBB2 uxtb r3, r3 359 .loc 1 327 6 360 0246 002B cmp r3, #0 361 0248 08D1 bne .L17 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */ 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_MspInit(hcan); 362 .loc 1 330 5 363 024a 7868 ldr r0, [r7, #4] 364 024c FFF7FEFF bl HAL_CAN_MspInit 365 0250 04E0 b .L35 366 .L36: 367 0252 00BF .align 2 368 .L34: 369 0254 00640040 .word 1073767424 370 0258 00000000 .word .LC0 371 .L35: 372 .L17: 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request initialisation */ 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); 373 .loc 1 335 3 374 025c 7B68 ldr r3, [r7, #4] 375 025e 1B68 ldr r3, [r3] 376 0260 1A68 ldr r2, [r3] 377 0262 7B68 ldr r3, [r7, #4] 378 0264 1B68 ldr r3, [r3] 379 0266 42F00102 orr r2, r2, #1 380 026a 1A60 str r2, [r3] 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get tick */ 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** tickstart = HAL_GetTick(); 381 .loc 1 338 15 382 026c FFF7FEFF bl HAL_GetTick 383 0270 F860 str r0, [r7, #12] 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wait initialisation acknowledge */ 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U) 384 .loc 1 341 9 385 0272 12E0 b .L18 386 .L19: 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 387 .loc 1 343 10 388 0274 FFF7FEFF bl HAL_GetTick 389 0278 0246 mov r2, r0 390 .loc 1 343 24 391 027a FB68 ldr r3, [r7, #12] 392 027c D31A subs r3, r2, r3 393 .loc 1 343 8 394 027e 0A2B cmp r3, #10 395 0280 0BD9 bls .L18 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 14 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 396 .loc 1 346 23 397 0282 7B68 ldr r3, [r7, #4] 398 0284 5B6A ldr r3, [r3, #36] 399 0286 43F40032 orr r2, r3, #131072 400 028a 7B68 ldr r3, [r7, #4] 401 028c 5A62 str r2, [r3, #36] 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */ 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 402 .loc 1 349 19 403 028e 7B68 ldr r3, [r7, #4] 404 0290 0522 movs r2, #5 405 0292 83F82020 strb r2, [r3, #32] 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 406 .loc 1 351 14 407 0296 0123 movs r3, #1 408 0298 C5E0 b .L3 409 .L18: 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 410 .loc 1 341 15 411 029a 7B68 ldr r3, [r7, #4] 412 029c 1B68 ldr r3, [r3] 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 413 .loc 1 341 25 414 029e 5B68 ldr r3, [r3, #4] 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 415 .loc 1 341 31 416 02a0 03F00103 and r3, r3, #1 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 417 .loc 1 341 9 418 02a4 002B cmp r3, #0 419 02a6 E5D0 beq .L19 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Exit from sleep mode */ 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 420 .loc 1 356 3 421 02a8 7B68 ldr r3, [r7, #4] 422 02aa 1B68 ldr r3, [r3] 423 02ac 1A68 ldr r2, [r3] 424 02ae 7B68 ldr r3, [r7, #4] 425 02b0 1B68 ldr r3, [r3] 426 02b2 22F00202 bic r2, r2, #2 427 02b6 1A60 str r2, [r3] 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get tick */ 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** tickstart = HAL_GetTick(); 428 .loc 1 359 15 429 02b8 FFF7FEFF bl HAL_GetTick 430 02bc F860 str r0, [r7, #12] 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Sleep mode leave acknowledge */ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 15 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 431 .loc 1 362 9 432 02be 12E0 b .L20 433 .L21: 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 434 .loc 1 364 10 435 02c0 FFF7FEFF bl HAL_GetTick 436 02c4 0246 mov r2, r0 437 .loc 1 364 24 438 02c6 FB68 ldr r3, [r7, #12] 439 02c8 D31A subs r3, r2, r3 440 .loc 1 364 8 441 02ca 0A2B cmp r3, #10 442 02cc 0BD9 bls .L20 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 443 .loc 1 367 23 444 02ce 7B68 ldr r3, [r7, #4] 445 02d0 5B6A ldr r3, [r3, #36] 446 02d2 43F40032 orr r2, r3, #131072 447 02d6 7B68 ldr r3, [r7, #4] 448 02d8 5A62 str r2, [r3, #36] 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */ 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 449 .loc 1 370 19 450 02da 7B68 ldr r3, [r7, #4] 451 02dc 0522 movs r2, #5 452 02de 83F82020 strb r2, [r3, #32] 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 453 .loc 1 372 14 454 02e2 0123 movs r3, #1 455 02e4 9FE0 b .L3 456 .L20: 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 457 .loc 1 362 15 458 02e6 7B68 ldr r3, [r7, #4] 459 02e8 1B68 ldr r3, [r3] 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 460 .loc 1 362 25 461 02ea 5B68 ldr r3, [r3, #4] 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 462 .loc 1 362 31 463 02ec 03F00203 and r3, r3, #2 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 464 .loc 1 362 9 465 02f0 002B cmp r3, #0 466 02f2 E5D1 bne .L21 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the time triggered communication mode */ 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.TimeTriggeredMode == ENABLE) 467 .loc 1 377 17 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 16 468 02f4 7B68 ldr r3, [r7, #4] 469 02f6 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2 470 .loc 1 377 6 471 02f8 012B cmp r3, #1 472 02fa 08D1 bne .L22 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TTCM); 473 .loc 1 379 5 474 02fc 7B68 ldr r3, [r7, #4] 475 02fe 1B68 ldr r3, [r3] 476 0300 1A68 ldr r2, [r3] 477 0302 7B68 ldr r3, [r7, #4] 478 0304 1B68 ldr r3, [r3] 479 0306 42F08002 orr r2, r2, #128 480 030a 1A60 str r2, [r3] 481 030c 07E0 b .L23 482 .L22: 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TTCM); 483 .loc 1 383 5 484 030e 7B68 ldr r3, [r7, #4] 485 0310 1B68 ldr r3, [r3] 486 0312 1A68 ldr r2, [r3] 487 0314 7B68 ldr r3, [r7, #4] 488 0316 1B68 ldr r3, [r3] 489 0318 22F08002 bic r2, r2, #128 490 031c 1A60 str r2, [r3] 491 .L23: 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the automatic bus-off management */ 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.AutoBusOff == ENABLE) 492 .loc 1 387 17 493 031e 7B68 ldr r3, [r7, #4] 494 0320 5B7E ldrb r3, [r3, #25] @ zero_extendqisi2 495 .loc 1 387 6 496 0322 012B cmp r3, #1 497 0324 08D1 bne .L24 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_ABOM); 498 .loc 1 389 5 499 0326 7B68 ldr r3, [r7, #4] 500 0328 1B68 ldr r3, [r3] 501 032a 1A68 ldr r2, [r3] 502 032c 7B68 ldr r3, [r7, #4] 503 032e 1B68 ldr r3, [r3] 504 0330 42F04002 orr r2, r2, #64 505 0334 1A60 str r2, [r3] 506 0336 07E0 b .L25 507 .L24: 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_ABOM); 508 .loc 1 393 5 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 17 509 0338 7B68 ldr r3, [r7, #4] 510 033a 1B68 ldr r3, [r3] 511 033c 1A68 ldr r2, [r3] 512 033e 7B68 ldr r3, [r7, #4] 513 0340 1B68 ldr r3, [r3] 514 0342 22F04002 bic r2, r2, #64 515 0346 1A60 str r2, [r3] 516 .L25: 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the automatic wake-up mode */ 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.AutoWakeUp == ENABLE) 517 .loc 1 397 17 518 0348 7B68 ldr r3, [r7, #4] 519 034a 9B7E ldrb r3, [r3, #26] @ zero_extendqisi2 520 .loc 1 397 6 521 034c 012B cmp r3, #1 522 034e 08D1 bne .L26 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_AWUM); 523 .loc 1 399 5 524 0350 7B68 ldr r3, [r7, #4] 525 0352 1B68 ldr r3, [r3] 526 0354 1A68 ldr r2, [r3] 527 0356 7B68 ldr r3, [r7, #4] 528 0358 1B68 ldr r3, [r3] 529 035a 42F02002 orr r2, r2, #32 530 035e 1A60 str r2, [r3] 531 0360 07E0 b .L27 532 .L26: 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_AWUM); 533 .loc 1 403 5 534 0362 7B68 ldr r3, [r7, #4] 535 0364 1B68 ldr r3, [r3] 536 0366 1A68 ldr r2, [r3] 537 0368 7B68 ldr r3, [r7, #4] 538 036a 1B68 ldr r3, [r3] 539 036c 22F02002 bic r2, r2, #32 540 0370 1A60 str r2, [r3] 541 .L27: 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the automatic retransmission */ 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.AutoRetransmission == ENABLE) 542 .loc 1 407 17 543 0372 7B68 ldr r3, [r7, #4] 544 0374 DB7E ldrb r3, [r3, #27] @ zero_extendqisi2 545 .loc 1 407 6 546 0376 012B cmp r3, #1 547 0378 08D1 bne .L28 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_NART); 548 .loc 1 409 5 549 037a 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 18 550 037c 1B68 ldr r3, [r3] 551 037e 1A68 ldr r2, [r3] 552 0380 7B68 ldr r3, [r7, #4] 553 0382 1B68 ldr r3, [r3] 554 0384 22F01002 bic r2, r2, #16 555 0388 1A60 str r2, [r3] 556 038a 07E0 b .L29 557 .L28: 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_NART); 558 .loc 1 413 5 559 038c 7B68 ldr r3, [r7, #4] 560 038e 1B68 ldr r3, [r3] 561 0390 1A68 ldr r2, [r3] 562 0392 7B68 ldr r3, [r7, #4] 563 0394 1B68 ldr r3, [r3] 564 0396 42F01002 orr r2, r2, #16 565 039a 1A60 str r2, [r3] 566 .L29: 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the receive FIFO locked mode */ 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.ReceiveFifoLocked == ENABLE) 567 .loc 1 417 17 568 039c 7B68 ldr r3, [r7, #4] 569 039e 1B7F ldrb r3, [r3, #28] @ zero_extendqisi2 570 .loc 1 417 6 571 03a0 012B cmp r3, #1 572 03a2 08D1 bne .L30 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RFLM); 573 .loc 1 419 5 574 03a4 7B68 ldr r3, [r7, #4] 575 03a6 1B68 ldr r3, [r3] 576 03a8 1A68 ldr r2, [r3] 577 03aa 7B68 ldr r3, [r7, #4] 578 03ac 1B68 ldr r3, [r3] 579 03ae 42F00802 orr r2, r2, #8 580 03b2 1A60 str r2, [r3] 581 03b4 07E0 b .L31 582 .L30: 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_RFLM); 583 .loc 1 423 5 584 03b6 7B68 ldr r3, [r7, #4] 585 03b8 1B68 ldr r3, [r3] 586 03ba 1A68 ldr r2, [r3] 587 03bc 7B68 ldr r3, [r7, #4] 588 03be 1B68 ldr r3, [r3] 589 03c0 22F00802 bic r2, r2, #8 590 03c4 1A60 str r2, [r3] 591 .L31: 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 19 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the transmit FIFO priority */ 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.TransmitFifoPriority == ENABLE) 592 .loc 1 427 17 593 03c6 7B68 ldr r3, [r7, #4] 594 03c8 5B7F ldrb r3, [r3, #29] @ zero_extendqisi2 595 .loc 1 427 6 596 03ca 012B cmp r3, #1 597 03cc 08D1 bne .L32 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TXFP); 598 .loc 1 429 5 599 03ce 7B68 ldr r3, [r7, #4] 600 03d0 1B68 ldr r3, [r3] 601 03d2 1A68 ldr r2, [r3] 602 03d4 7B68 ldr r3, [r7, #4] 603 03d6 1B68 ldr r3, [r3] 604 03d8 42F00402 orr r2, r2, #4 605 03dc 1A60 str r2, [r3] 606 03de 07E0 b .L33 607 .L32: 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TXFP); 608 .loc 1 433 5 609 03e0 7B68 ldr r3, [r7, #4] 610 03e2 1B68 ldr r3, [r3] 611 03e4 1A68 ldr r2, [r3] 612 03e6 7B68 ldr r3, [r7, #4] 613 03e8 1B68 ldr r3, [r3] 614 03ea 22F00402 bic r2, r2, #4 615 03ee 1A60 str r2, [r3] 616 .L33: 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the bit timing register */ 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** WRITE_REG(hcan->Instance->BTR, (uint32_t)(hcan->Init.Mode | 617 .loc 1 437 3 618 03f0 7B68 ldr r3, [r7, #4] 619 03f2 9A68 ldr r2, [r3, #8] 620 03f4 7B68 ldr r3, [r7, #4] 621 03f6 DB68 ldr r3, [r3, #12] 622 03f8 1A43 orrs r2, r2, r3 623 03fa 7B68 ldr r3, [r7, #4] 624 03fc 1B69 ldr r3, [r3, #16] 625 03fe 1A43 orrs r2, r2, r3 626 0400 7B68 ldr r3, [r7, #4] 627 0402 5B69 ldr r3, [r3, #20] 628 0404 42EA0301 orr r1, r2, r3 629 0408 7B68 ldr r3, [r7, #4] 630 040a 5B68 ldr r3, [r3, #4] 631 040c 5A1E subs r2, r3, #1 632 040e 7B68 ldr r3, [r7, #4] 633 0410 1B68 ldr r3, [r3] 634 0412 0A43 orrs r2, r2, r1 635 0414 DA61 str r2, [r3, #28] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 20 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Init.SyncJumpWidth | 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Init.TimeSeg1 | 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Init.TimeSeg2 | 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (hcan->Init.Prescaler - 1U))); 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Initialize the error code */ 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE; 636 .loc 1 444 19 637 0416 7B68 ldr r3, [r7, #4] 638 0418 0022 movs r2, #0 639 041a 5A62 str r2, [r3, #36] 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Initialize the CAN state */ 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY; 640 .loc 1 447 15 641 041c 7B68 ldr r3, [r7, #4] 642 041e 0122 movs r2, #1 643 0420 83F82020 strb r2, [r3, #32] 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 644 .loc 1 450 10 645 0424 0023 movs r3, #0 646 .L3: 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 647 .loc 1 451 1 648 0426 1846 mov r0, r3 649 0428 1037 adds r7, r7, #16 650 .LCFI3: 651 .cfi_def_cfa_offset 8 652 042a BD46 mov sp, r7 653 .LCFI4: 654 .cfi_def_cfa_register 13 655 @ sp needed 656 042c 80BD pop {r7, pc} 657 .cfi_endproc 658 .LFE130: 660 042e 00BF .section .text.HAL_CAN_DeInit,"ax",%progbits 661 .align 1 662 .global HAL_CAN_DeInit 663 .syntax unified 664 .thumb 665 .thumb_func 667 HAL_CAN_DeInit: 668 .LFB131: 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Deinitializes the CAN peripheral registers to their default 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * reset values. 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeInit(CAN_HandleTypeDef *hcan) 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 669 .loc 1 461 1 670 .cfi_startproc ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 21 671 @ args = 0, pretend = 0, frame = 8 672 @ frame_needed = 1, uses_anonymous_args = 0 673 0000 80B5 push {r7, lr} 674 .LCFI5: 675 .cfi_def_cfa_offset 8 676 .cfi_offset 7, -8 677 .cfi_offset 14, -4 678 0002 82B0 sub sp, sp, #8 679 .LCFI6: 680 .cfi_def_cfa_offset 16 681 0004 00AF add r7, sp, #0 682 .LCFI7: 683 .cfi_def_cfa_register 7 684 0006 7860 str r0, [r7, #4] 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check CAN handle */ 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan == NULL) 685 .loc 1 463 6 686 0008 7B68 ldr r3, [r7, #4] 687 000a 002B cmp r3, #0 688 000c 01D1 bne .L38 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 689 .loc 1 465 12 690 000e 0123 movs r3, #1 691 0010 1FE0 b .L39 692 .L38: 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */ 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance)); 693 .loc 1 469 3 694 0012 7B68 ldr r3, [r7, #4] 695 0014 1B68 ldr r3, [r3] 696 0016 114A ldr r2, .L41 697 0018 9342 cmp r3, r2 698 001a 04D0 beq .L40 699 .loc 1 469 3 is_stmt 0 discriminator 1 700 001c 40F2D511 movw r1, #469 701 0020 0F48 ldr r0, .L41+4 702 0022 FFF7FEFF bl assert_failed 703 .L40: 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Stop the CAN module */ 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (void)HAL_CAN_Stop(hcan); 704 .loc 1 472 9 is_stmt 1 705 0026 7868 ldr r0, [r7, #4] 706 0028 FFF7FEFF bl HAL_CAN_Stop 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->MspDeInitCallback == NULL) 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; /* Legacy weak MspDeInit */ 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */ 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback(hcan); 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 22 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */ 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_MspDeInit(hcan); 707 .loc 1 485 3 708 002c 7868 ldr r0, [r7, #4] 709 002e FFF7FEFF bl HAL_CAN_MspDeInit 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset the CAN peripheral */ 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RESET); 710 .loc 1 489 3 711 0032 7B68 ldr r3, [r7, #4] 712 0034 1B68 ldr r3, [r3] 713 0036 1A68 ldr r2, [r3] 714 0038 7B68 ldr r3, [r7, #4] 715 003a 1B68 ldr r3, [r3] 716 003c 42F40042 orr r2, r2, #32768 717 0040 1A60 str r2, [r3] 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset the CAN ErrorCode */ 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE; 718 .loc 1 492 19 719 0042 7B68 ldr r3, [r7, #4] 720 0044 0022 movs r2, #0 721 0046 5A62 str r2, [r3, #36] 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */ 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_RESET; 722 .loc 1 495 15 723 0048 7B68 ldr r3, [r7, #4] 724 004a 0022 movs r2, #0 725 004c 83F82020 strb r2, [r3, #32] 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 726 .loc 1 498 10 727 0050 0023 movs r3, #0 728 .L39: 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 729 .loc 1 499 1 730 0052 1846 mov r0, r3 731 0054 0837 adds r7, r7, #8 732 .LCFI8: 733 .cfi_def_cfa_offset 8 734 0056 BD46 mov sp, r7 735 .LCFI9: 736 .cfi_def_cfa_register 13 737 @ sp needed 738 0058 80BD pop {r7, pc} 739 .L42: 740 005a 00BF .align 2 741 .L41: 742 005c 00640040 .word 1073767424 743 0060 00000000 .word .LC0 744 .cfi_endproc 745 .LFE131: 747 .section .text.HAL_CAN_MspInit,"ax",%progbits ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 23 748 .align 1 749 .weak HAL_CAN_MspInit 750 .syntax unified 751 .thumb 752 .thumb_func 754 HAL_CAN_MspInit: 755 .LFB132: 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Initializes the CAN MSP. 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan) 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 756 .loc 1 508 1 757 .cfi_startproc 758 @ args = 0, pretend = 0, frame = 8 759 @ frame_needed = 1, uses_anonymous_args = 0 760 @ link register save eliminated. 761 0000 80B4 push {r7} 762 .LCFI10: 763 .cfi_def_cfa_offset 4 764 .cfi_offset 7, -4 765 0002 83B0 sub sp, sp, #12 766 .LCFI11: 767 .cfi_def_cfa_offset 16 768 0004 00AF add r7, sp, #0 769 .LCFI12: 770 .cfi_def_cfa_register 7 771 0006 7860 str r0, [r7, #4] 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_MspInit could be implemented in the user file 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 772 .loc 1 515 1 773 0008 00BF nop 774 000a 0C37 adds r7, r7, #12 775 .LCFI13: 776 .cfi_def_cfa_offset 4 777 000c BD46 mov sp, r7 778 .LCFI14: 779 .cfi_def_cfa_register 13 780 @ sp needed 781 000e 5DF8047B ldr r7, [sp], #4 782 .LCFI15: 783 .cfi_restore 7 784 .cfi_def_cfa_offset 0 785 0012 7047 bx lr 786 .cfi_endproc 787 .LFE132: 789 .section .text.HAL_CAN_MspDeInit,"ax",%progbits 790 .align 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 24 791 .weak HAL_CAN_MspDeInit 792 .syntax unified 793 .thumb 794 .thumb_func 796 HAL_CAN_MspDeInit: 797 .LFB133: 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief DeInitializes the CAN MSP. 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_MspDeInit(CAN_HandleTypeDef *hcan) 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 798 .loc 1 524 1 799 .cfi_startproc 800 @ args = 0, pretend = 0, frame = 8 801 @ frame_needed = 1, uses_anonymous_args = 0 802 @ link register save eliminated. 803 0000 80B4 push {r7} 804 .LCFI16: 805 .cfi_def_cfa_offset 4 806 .cfi_offset 7, -4 807 0002 83B0 sub sp, sp, #12 808 .LCFI17: 809 .cfi_def_cfa_offset 16 810 0004 00AF add r7, sp, #0 811 .LCFI18: 812 .cfi_def_cfa_register 7 813 0006 7860 str r0, [r7, #4] 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_MspDeInit could be implemented in the user file 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 814 .loc 1 531 1 815 0008 00BF nop 816 000a 0C37 adds r7, r7, #12 817 .LCFI19: 818 .cfi_def_cfa_offset 4 819 000c BD46 mov sp, r7 820 .LCFI20: 821 .cfi_def_cfa_register 13 822 @ sp needed 823 000e 5DF8047B ldr r7, [sp], #4 824 .LCFI21: 825 .cfi_restore 7 826 .cfi_def_cfa_offset 0 827 0012 7047 bx lr 828 .cfi_endproc 829 .LFE133: 831 .section .text.HAL_CAN_ConfigFilter,"ax",%progbits 832 .align 1 833 .global HAL_CAN_ConfigFilter ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 25 834 .syntax unified 835 .thumb 836 .thumb_func 838 HAL_CAN_ConfigFilter: 839 .LFB134: 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Register a CAN CallBack. 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * To be used instead of the weak predefined callback 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for CAN module 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param CallbackID ID of the callback to be registered 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be one of the following values: 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID Tx Mailbox 0 Complete callback ID 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID Tx Mailbox 1 Complete callback ID 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID Tx Mailbox 2 Complete callback ID 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CB_ID Tx Mailbox 0 Abort callback ID 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CB_ID Tx Mailbox 1 Abort callback ID 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CB_ID Tx Mailbox 2 Abort callback ID 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID Rx Fifo 0 message pending callback ID 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CB_ID Rx Fifo 0 full callback ID 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID Rx Fifo 1 message pending callback ID 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CB_ID Rx Fifo 1 full callback ID 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CB_ID Sleep callback ID 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID Wake Up from Rx message callback ID 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CB_ID Error callback ID 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param pCallback pointer to the Callback function 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Callb 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** void (* pCallback)(CAN_HandleTypeDef *_hcan)) 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pCallback == NULL) 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */ 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY) 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (CallbackID) 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID : 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = pCallback; 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID : 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = pCallback; 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 26 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID : 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = pCallback; 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID : 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0AbortCallback = pCallback; 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID : 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1AbortCallback = pCallback; 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID : 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2AbortCallback = pCallback; 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID : 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = pCallback; 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID : 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0FullCallback = pCallback; 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID : 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = pCallback; 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID : 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1FullCallback = pCallback; 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID : 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->SleepCallback = pCallback; 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID : 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = pCallback; 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID : 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCallback = pCallback; 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = pCallback; 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = pCallback; 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default : 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */ 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 27 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR; 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET) 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (CallbackID) 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = pCallback; 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = pCallback; 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default : 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */ 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */ 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR; 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */ 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */ 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR; 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status; 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Unregister a CAN CallBack. 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * CAN callback is redirected to the weak predefined callback 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for CAN module 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param CallbackID ID of the callback to be unregistered 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be one of the following values: 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID Tx Mailbox 0 Complete callback ID 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID Tx Mailbox 1 Complete callback ID 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID Tx Mailbox 2 Complete callback ID 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CB_ID Tx Mailbox 0 Abort callback ID 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CB_ID Tx Mailbox 1 Abort callback ID 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CB_ID Tx Mailbox 2 Abort callback ID 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID Rx Fifo 0 message pending callback ID 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CB_ID Rx Fifo 0 full callback ID 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID Rx Fifo 1 message pending callback ID 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CB_ID Rx Fifo 1 full callback ID 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CB_ID Sleep callback ID 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID Wake Up from Rx message callback ID 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CB_ID Error callback ID ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 28 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_UnRegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Cal 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY) 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (CallbackID) 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID : 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID : 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID : 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID : 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID : 727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID : 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; 732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID : 735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID : 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID : 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID : 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID : 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback; 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID : ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 29 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID : 759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback; 760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; 768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default : 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */ 772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */ 775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR; 776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET) 780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (CallbackID) 782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; 785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; 789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default : 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */ 793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */ 796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR; 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */ 803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */ 806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR; 807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status; 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 30 812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @} 815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group2 Configuration functions 818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Configuration functions. 819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Configuration functions ##### 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] This section provides functions allowing to: 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_ConfigFilter : Configure the CAN reception filters 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Configures the CAN reception filter according to the specified 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * parameters in the CAN_FilterInitStruct. 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param sFilterConfig pointer to a CAN_FilterTypeDef structure that 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * contains the filter configuration information. 838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef *hcan, const CAN_FilterTypeDef *sFilterCon 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 840 .loc 1 841 1 841 .cfi_startproc 842 @ args = 0, pretend = 0, frame = 24 843 @ frame_needed = 1, uses_anonymous_args = 0 844 0000 80B5 push {r7, lr} 845 .LCFI22: 846 .cfi_def_cfa_offset 8 847 .cfi_offset 7, -8 848 .cfi_offset 14, -4 849 0002 86B0 sub sp, sp, #24 850 .LCFI23: 851 .cfi_def_cfa_offset 32 852 0004 00AF add r7, sp, #0 853 .LCFI24: 854 .cfi_def_cfa_register 7 855 0006 7860 str r0, [r7, #4] 856 0008 3960 str r1, [r7] 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filternbrbitpos; 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CAN_TypeDef *can_ip = hcan->Instance; 857 .loc 1 843 16 858 000a 7B68 ldr r3, [r7, #4] 859 000c 1B68 ldr r3, [r3] 860 000e 7B61 str r3, [r7, #20] 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 861 .loc 1 844 24 862 0010 7B68 ldr r3, [r7, #4] 863 0012 93F82030 ldrb r3, [r3, #32] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 31 864 0016 FB74 strb r3, [r7, #19] 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 865 .loc 1 846 6 866 0018 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2 867 001a 012B cmp r3, #1 868 001c 03D0 beq .L46 869 .loc 1 846 38 discriminator 1 870 001e FB7C ldrb r3, [r7, #19] @ zero_extendqisi2 871 0020 022B cmp r3, #2 872 0022 40F00F81 bne .L47 873 .L46: 847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */ 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdHigh)); 874 .loc 1 850 5 875 0026 3B68 ldr r3, [r7] 876 0028 1B68 ldr r3, [r3] 877 002a B3F5803F cmp r3, #65536 878 002e 04D3 bcc .L48 879 .loc 1 850 5 is_stmt 0 discriminator 1 880 0030 40F25231 movw r1, #850 881 0034 8948 ldr r0, .L65 882 0036 FFF7FEFF bl assert_failed 883 .L48: 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 884 .loc 1 851 5 is_stmt 1 885 003a 3B68 ldr r3, [r7] 886 003c 5B68 ldr r3, [r3, #4] 887 003e B3F5803F cmp r3, #65536 888 0042 04D3 bcc .L49 889 .loc 1 851 5 is_stmt 0 discriminator 1 890 0044 40F25331 movw r1, #851 891 0048 8448 ldr r0, .L65 892 004a FFF7FEFF bl assert_failed 893 .L49: 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh)); 894 .loc 1 852 5 is_stmt 1 895 004e 3B68 ldr r3, [r7] 896 0050 9B68 ldr r3, [r3, #8] 897 0052 B3F5803F cmp r3, #65536 898 0056 04D3 bcc .L50 899 .loc 1 852 5 is_stmt 0 discriminator 1 900 0058 4FF45571 mov r1, #852 901 005c 7F48 ldr r0, .L65 902 005e FFF7FEFF bl assert_failed 903 .L50: 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow)); 904 .loc 1 853 5 is_stmt 1 905 0062 3B68 ldr r3, [r7] 906 0064 DB68 ldr r3, [r3, #12] 907 0066 B3F5803F cmp r3, #65536 908 006a 04D3 bcc .L51 909 .loc 1 853 5 is_stmt 0 discriminator 1 910 006c 40F25531 movw r1, #853 911 0070 7A48 ldr r0, .L65 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 32 912 0072 FFF7FEFF bl assert_failed 913 .L51: 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode)); 914 .loc 1 854 5 is_stmt 1 915 0076 3B68 ldr r3, [r7] 916 0078 9B69 ldr r3, [r3, #24] 917 007a 002B cmp r3, #0 918 007c 08D0 beq .L52 919 .loc 1 854 5 is_stmt 0 discriminator 1 920 007e 3B68 ldr r3, [r7] 921 0080 9B69 ldr r3, [r3, #24] 922 0082 012B cmp r3, #1 923 0084 04D0 beq .L52 924 .loc 1 854 5 discriminator 2 925 0086 40F25631 movw r1, #854 926 008a 7448 ldr r0, .L65 927 008c FFF7FEFF bl assert_failed 928 .L52: 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale)); 929 .loc 1 855 5 is_stmt 1 930 0090 3B68 ldr r3, [r7] 931 0092 DB69 ldr r3, [r3, #28] 932 0094 002B cmp r3, #0 933 0096 08D0 beq .L53 934 .loc 1 855 5 is_stmt 0 discriminator 1 935 0098 3B68 ldr r3, [r7] 936 009a DB69 ldr r3, [r3, #28] 937 009c 012B cmp r3, #1 938 009e 04D0 beq .L53 939 .loc 1 855 5 discriminator 2 940 00a0 40F25731 movw r1, #855 941 00a4 6D48 ldr r0, .L65 942 00a6 FFF7FEFF bl assert_failed 943 .L53: 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment)); 944 .loc 1 856 5 is_stmt 1 945 00aa 3B68 ldr r3, [r7] 946 00ac 1B69 ldr r3, [r3, #16] 947 00ae 002B cmp r3, #0 948 00b0 08D0 beq .L54 949 .loc 1 856 5 is_stmt 0 discriminator 1 950 00b2 3B68 ldr r3, [r7] 951 00b4 1B69 ldr r3, [r3, #16] 952 00b6 012B cmp r3, #1 953 00b8 04D0 beq .L54 954 .loc 1 856 5 discriminator 2 955 00ba 4FF45671 mov r1, #856 956 00be 6748 ldr r0, .L65 957 00c0 FFF7FEFF bl assert_failed 958 .L54: 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation)); 959 .loc 1 857 5 is_stmt 1 960 00c4 3B68 ldr r3, [r7] 961 00c6 1B6A ldr r3, [r3, #32] 962 00c8 002B cmp r3, #0 963 00ca 08D0 beq .L55 964 .loc 1 857 5 is_stmt 0 discriminator 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 33 965 00cc 3B68 ldr r3, [r7] 966 00ce 1B6A ldr r3, [r3, #32] 967 00d0 012B cmp r3, #1 968 00d2 04D0 beq .L55 969 .loc 1 857 5 discriminator 2 970 00d4 40F25931 movw r1, #857 971 00d8 6048 ldr r0, .L65 972 00da FFF7FEFF bl assert_failed 973 .L55: 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* CAN is single instance with 14 dedicated filters banks */ 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */ 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_SINGLE(sFilterConfig->FilterBank)); 974 .loc 1 862 5 is_stmt 1 975 00de 3B68 ldr r3, [r7] 976 00e0 5B69 ldr r3, [r3, #20] 977 00e2 0D2B cmp r3, #13 978 00e4 04D9 bls .L56 979 .loc 1 862 5 is_stmt 0 discriminator 1 980 00e6 40F25E31 movw r1, #862 981 00ea 5C48 ldr r0, .L65 982 00ec FFF7FEFF bl assert_failed 983 .L56: 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Initialisation mode for the filter */ 865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FMR, CAN_FMR_FINIT); 984 .loc 1 865 5 is_stmt 1 985 00f0 7B69 ldr r3, [r7, #20] 986 00f2 D3F80032 ldr r3, [r3, #512] 987 00f6 43F00102 orr r2, r3, #1 988 00fa 7B69 ldr r3, [r7, #20] 989 00fc C3F80022 str r2, [r3, #512] 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Convert filter number into bit position */ 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** filternbrbitpos = (uint32_t)1 << (sFilterConfig->FilterBank & 0x1FU); 990 .loc 1 868 52 991 0100 3B68 ldr r3, [r7] 992 0102 5B69 ldr r3, [r3, #20] 993 .loc 1 868 65 994 0104 03F01F03 and r3, r3, #31 995 .loc 1 868 21 996 0108 0122 movs r2, #1 997 010a 02FA03F3 lsl r3, r2, r3 998 010e FB60 str r3, [r7, #12] 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter Deactivation */ 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FA1R, filternbrbitpos); 999 .loc 1 871 5 1000 0110 7B69 ldr r3, [r7, #20] 1001 0112 D3F81C22 ldr r2, [r3, #540] 1002 0116 FB68 ldr r3, [r7, #12] 1003 0118 DB43 mvns r3, r3 1004 011a 1A40 ands r2, r2, r3 1005 011c 7B69 ldr r3, [r7, #20] 1006 011e C3F81C22 str r2, [r3, #540] 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 34 873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter Scale */ 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_16BIT) 1007 .loc 1 874 22 1008 0122 3B68 ldr r3, [r7] 1009 0124 DB69 ldr r3, [r3, #28] 1010 .loc 1 874 8 1011 0126 002B cmp r3, #0 1012 0128 23D1 bne .L57 875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* 16-bit scale for the filter */ 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FS1R, filternbrbitpos); 1013 .loc 1 877 7 1014 012a 7B69 ldr r3, [r7, #20] 1015 012c D3F80C22 ldr r2, [r3, #524] 1016 0130 FB68 ldr r3, [r7, #12] 1017 0132 DB43 mvns r3, r3 1018 0134 1A40 ands r2, r2, r3 1019 0136 7B69 ldr r3, [r7, #20] 1020 0138 C3F80C22 str r2, [r3, #524] 878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* First 16-bit identifier and First 16-bit mask */ 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Or First 16-bit identifier and Second 16-bit identifier */ 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 = 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 1021 .loc 1 882 48 1022 013c 3B68 ldr r3, [r7] 1023 013e DB68 ldr r3, [r3, #12] 1024 .loc 1 882 67 1025 0140 1904 lsls r1, r3, #16 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 1026 .loc 1 883 47 1027 0142 3B68 ldr r3, [r7] 1028 0144 5B68 ldr r3, [r3, #4] 1029 .loc 1 883 22 1030 0146 9BB2 uxth r3, r3 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 1031 .loc 1 881 44 1032 0148 3A68 ldr r2, [r7] 1033 014a 5269 ldr r2, [r2, #20] 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 1034 .loc 1 882 75 1035 014c 1943 orrs r1, r1, r3 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 1036 .loc 1 881 62 1037 014e 7B69 ldr r3, [r7, #20] 1038 0150 4832 adds r2, r2, #72 1039 0152 43F83210 str r1, [r3, r2, lsl #3] 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Second 16-bit identifier and Second 16-bit mask */ 886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Or Third 16-bit identifier and Fourth 16-bit identifier */ 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 = 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 1040 .loc 1 888 48 1041 0156 3B68 ldr r3, [r7] 1042 0158 9B68 ldr r3, [r3, #8] 1043 .loc 1 888 68 1044 015a 1904 lsls r1, r3, #16 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 35 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 1045 .loc 1 889 47 1046 015c 3B68 ldr r3, [r7] 1047 015e 1B68 ldr r3, [r3] 1048 .loc 1 889 22 1049 0160 9AB2 uxth r2, r3 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 1050 .loc 1 887 44 1051 0162 3B68 ldr r3, [r7] 1052 0164 5B69 ldr r3, [r3, #20] 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 1053 .loc 1 888 76 1054 0166 0A43 orrs r2, r2, r1 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 1055 .loc 1 887 62 1056 0168 7969 ldr r1, [r7, #20] 1057 016a 4833 adds r3, r3, #72 1058 016c DB00 lsls r3, r3, #3 1059 016e 0B44 add r3, r3, r1 1060 0170 5A60 str r2, [r3, #4] 1061 .L57: 890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_32BIT) 1062 .loc 1 892 22 1063 0172 3B68 ldr r3, [r7] 1064 0174 DB69 ldr r3, [r3, #28] 1065 .loc 1 892 8 1066 0176 012B cmp r3, #1 1067 0178 22D1 bne .L58 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* 32-bit scale for the filter */ 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FS1R, filternbrbitpos); 1068 .loc 1 895 7 1069 017a 7B69 ldr r3, [r7, #20] 1070 017c D3F80C22 ldr r2, [r3, #524] 1071 0180 FB68 ldr r3, [r7, #12] 1072 0182 1A43 orrs r2, r2, r3 1073 0184 7B69 ldr r3, [r7, #20] 1074 0186 C3F80C22 str r2, [r3, #524] 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* 32-bit identifier or First 32-bit identifier */ 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 = 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 1075 .loc 1 899 48 1076 018a 3B68 ldr r3, [r7] 1077 018c 1B68 ldr r3, [r3] 1078 .loc 1 899 64 1079 018e 1904 lsls r1, r3, #16 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 1080 .loc 1 900 47 1081 0190 3B68 ldr r3, [r7] 1082 0192 5B68 ldr r3, [r3, #4] 1083 .loc 1 900 22 1084 0194 9BB2 uxth r3, r3 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 1085 .loc 1 898 44 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 36 1086 0196 3A68 ldr r2, [r7] 1087 0198 5269 ldr r2, [r2, #20] 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 1088 .loc 1 899 72 1089 019a 1943 orrs r1, r1, r3 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 1090 .loc 1 898 62 1091 019c 7B69 ldr r3, [r7, #20] 1092 019e 4832 adds r2, r2, #72 1093 01a0 43F83210 str r1, [r3, r2, lsl #3] 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* 32-bit mask or Second 32-bit identifier */ 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 = 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 1094 .loc 1 904 48 1095 01a4 3B68 ldr r3, [r7] 1096 01a6 9B68 ldr r3, [r3, #8] 1097 .loc 1 904 68 1098 01a8 1904 lsls r1, r3, #16 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); 1099 .loc 1 905 47 1100 01aa 3B68 ldr r3, [r7] 1101 01ac DB68 ldr r3, [r3, #12] 1102 .loc 1 905 22 1103 01ae 9AB2 uxth r2, r3 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 1104 .loc 1 903 44 1105 01b0 3B68 ldr r3, [r7] 1106 01b2 5B69 ldr r3, [r3, #20] 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); 1107 .loc 1 904 76 1108 01b4 0A43 orrs r2, r2, r1 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 1109 .loc 1 903 62 1110 01b6 7969 ldr r1, [r7, #20] 1111 01b8 4833 adds r3, r3, #72 1112 01ba DB00 lsls r3, r3, #3 1113 01bc 0B44 add r3, r3, r1 1114 01be 5A60 str r2, [r3, #4] 1115 .L58: 906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter Mode */ 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterMode == CAN_FILTERMODE_IDMASK) 1116 .loc 1 909 22 1117 01c0 3B68 ldr r3, [r7] 1118 01c2 9B69 ldr r3, [r3, #24] 1119 .loc 1 909 8 1120 01c4 002B cmp r3, #0 1121 01c6 09D1 bne .L59 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Id/Mask mode for the filter*/ 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FM1R, filternbrbitpos); 1122 .loc 1 912 7 1123 01c8 7B69 ldr r3, [r7, #20] 1124 01ca D3F80422 ldr r2, [r3, #516] 1125 01ce FB68 ldr r3, [r7, #12] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 37 1126 01d0 DB43 mvns r3, r3 1127 01d2 1A40 ands r2, r2, r3 1128 01d4 7B69 ldr r3, [r7, #20] 1129 01d6 C3F80422 str r2, [r3, #516] 1130 01da 07E0 b .L60 1131 .L59: 913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else /* CAN_FilterInitStruct->CAN_FilterMode == CAN_FilterMode_IdList */ 915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Identifier list mode for the filter*/ 917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FM1R, filternbrbitpos); 1132 .loc 1 917 7 1133 01dc 7B69 ldr r3, [r7, #20] 1134 01de D3F80422 ldr r2, [r3, #516] 1135 01e2 FB68 ldr r3, [r7, #12] 1136 01e4 1A43 orrs r2, r2, r3 1137 01e6 7B69 ldr r3, [r7, #20] 1138 01e8 C3F80422 str r2, [r3, #516] 1139 .L60: 918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter FIFO assignment */ 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterFIFOAssignment == CAN_FILTER_FIFO0) 1140 .loc 1 921 22 1141 01ec 3B68 ldr r3, [r7] 1142 01ee 1B69 ldr r3, [r3, #16] 1143 .loc 1 921 8 1144 01f0 002B cmp r3, #0 1145 01f2 09D1 bne .L61 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* FIFO 0 assignation for the filter */ 924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FFA1R, filternbrbitpos); 1146 .loc 1 924 7 1147 01f4 7B69 ldr r3, [r7, #20] 1148 01f6 D3F81422 ldr r2, [r3, #532] 1149 01fa FB68 ldr r3, [r7, #12] 1150 01fc DB43 mvns r3, r3 1151 01fe 1A40 ands r2, r2, r3 1152 0200 7B69 ldr r3, [r7, #20] 1153 0202 C3F81422 str r2, [r3, #532] 1154 0206 07E0 b .L62 1155 .L61: 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* FIFO 1 assignation for the filter */ 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FFA1R, filternbrbitpos); 1156 .loc 1 929 7 1157 0208 7B69 ldr r3, [r7, #20] 1158 020a D3F81422 ldr r2, [r3, #532] 1159 020e FB68 ldr r3, [r7, #12] 1160 0210 1A43 orrs r2, r2, r3 1161 0212 7B69 ldr r3, [r7, #20] 1162 0214 C3F81422 str r2, [r3, #532] 1163 .L62: 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 38 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter activation */ 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterActivation == CAN_FILTER_ENABLE) 1164 .loc 1 933 22 1165 0218 3B68 ldr r3, [r7] 1166 021a 1B6A ldr r3, [r3, #32] 1167 .loc 1 933 8 1168 021c 012B cmp r3, #1 1169 021e 07D1 bne .L63 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FA1R, filternbrbitpos); 1170 .loc 1 935 7 1171 0220 7B69 ldr r3, [r7, #20] 1172 0222 D3F81C22 ldr r2, [r3, #540] 1173 0226 FB68 ldr r3, [r7, #12] 1174 0228 1A43 orrs r2, r2, r3 1175 022a 7B69 ldr r3, [r7, #20] 1176 022c C3F81C22 str r2, [r3, #540] 1177 .L63: 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Leave the initialisation mode for the filter */ 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FMR, CAN_FMR_FINIT); 1178 .loc 1 939 5 1179 0230 7B69 ldr r3, [r7, #20] 1180 0232 D3F80032 ldr r3, [r3, #512] 1181 0236 23F00102 bic r2, r3, #1 1182 023a 7B69 ldr r3, [r7, #20] 1183 023c C3F80022 str r2, [r3, #512] 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 1184 .loc 1 942 12 1185 0240 0023 movs r3, #0 1186 0242 06E0 b .L64 1187 .L47: 943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1188 .loc 1 947 21 1189 0244 7B68 ldr r3, [r7, #4] 1190 0246 5B6A ldr r3, [r3, #36] 1191 0248 43F48022 orr r2, r3, #262144 1192 024c 7B68 ldr r3, [r7, #4] 1193 024e 5A62 str r2, [r3, #36] 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1194 .loc 1 949 12 1195 0250 0123 movs r3, #1 1196 .L64: 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1197 .loc 1 951 1 1198 0252 1846 mov r0, r3 1199 0254 1837 adds r7, r7, #24 1200 .LCFI25: ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 39 1201 .cfi_def_cfa_offset 8 1202 0256 BD46 mov sp, r7 1203 .LCFI26: 1204 .cfi_def_cfa_register 13 1205 @ sp needed 1206 0258 80BD pop {r7, pc} 1207 .L66: 1208 025a 00BF .align 2 1209 .L65: 1210 025c 00000000 .word .LC0 1211 .cfi_endproc 1212 .LFE134: 1214 .section .text.HAL_CAN_Start,"ax",%progbits 1215 .align 1 1216 .global HAL_CAN_Start 1217 .syntax unified 1218 .thumb 1219 .thumb_func 1221 HAL_CAN_Start: 1222 .LFB135: 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @} 955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group3 Control functions 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Control functions 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Control functions ##### 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] This section provides functions allowing to: 965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_Start : Start the CAN module 966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_Stop : Stop the CAN module 967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RequestSleep : Request sleep mode entry. 968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_WakeUp : Wake up from sleep mode. 969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_IsSleepActive : Check is sleep mode is active. 970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_AddTxMessage : Add a message to the Tx mailboxes 971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** and activate the corresponding 972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** transmission request 973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_AbortTxRequest : Abort transmission request 974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetTxMailboxesFreeLevel : Return Tx mailboxes free level 975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_IsTxMessagePending : Check if a transmission request is 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pending on the selected Tx mailbox 977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetRxMessage : Get a CAN frame from the Rx FIFO 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetRxFifoFillLevel : Return Rx FIFO fill level 979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim 981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Start the CAN module. 986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 40 989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Start(CAN_HandleTypeDef *hcan) 991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1223 .loc 1 991 1 1224 .cfi_startproc 1225 @ args = 0, pretend = 0, frame = 16 1226 @ frame_needed = 1, uses_anonymous_args = 0 1227 0000 80B5 push {r7, lr} 1228 .LCFI27: 1229 .cfi_def_cfa_offset 8 1230 .cfi_offset 7, -8 1231 .cfi_offset 14, -4 1232 0002 84B0 sub sp, sp, #16 1233 .LCFI28: 1234 .cfi_def_cfa_offset 24 1235 0004 00AF add r7, sp, #0 1236 .LCFI29: 1237 .cfi_def_cfa_register 7 1238 0006 7860 str r0, [r7, #4] 992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY) 1239 .loc 1 994 11 1240 0008 7B68 ldr r3, [r7, #4] 1241 000a 93F82030 ldrb r3, [r3, #32] 1242 000e DBB2 uxtb r3, r3 1243 .loc 1 994 6 1244 0010 012B cmp r3, #1 1245 0012 2ED1 bne .L68 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN peripheral state */ 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_LISTENING; 1246 .loc 1 997 17 1247 0014 7B68 ldr r3, [r7, #4] 1248 0016 0222 movs r2, #2 1249 0018 83F82020 strb r2, [r3, #32] 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request leave initialisation */ 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); 1250 .loc 1 1000 5 1251 001c 7B68 ldr r3, [r7, #4] 1252 001e 1B68 ldr r3, [r3] 1253 0020 1A68 ldr r2, [r3] 1254 0022 7B68 ldr r3, [r7, #4] 1255 0024 1B68 ldr r3, [r3] 1256 0026 22F00102 bic r2, r2, #1 1257 002a 1A60 str r2, [r3] 1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get tick */ 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** tickstart = HAL_GetTick(); 1258 .loc 1 1003 17 1259 002c FFF7FEFF bl HAL_GetTick 1260 0030 F860 str r0, [r7, #12] 1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wait the acknowledge */ 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) != 0U) 1261 .loc 1 1006 11 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 41 1262 0032 12E0 b .L69 1263 .L71: 1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check for the Timeout */ 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 1264 .loc 1 1009 12 1265 0034 FFF7FEFF bl HAL_GetTick 1266 0038 0246 mov r2, r0 1267 .loc 1 1009 26 1268 003a FB68 ldr r3, [r7, #12] 1269 003c D31A subs r3, r2, r3 1270 .loc 1 1009 10 1271 003e 0A2B cmp r3, #10 1272 0040 0BD9 bls .L69 1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 1273 .loc 1 1012 25 1274 0042 7B68 ldr r3, [r7, #4] 1275 0044 5B6A ldr r3, [r3, #36] 1276 0046 43F40032 orr r2, r3, #131072 1277 004a 7B68 ldr r3, [r7, #4] 1278 004c 5A62 str r2, [r3, #36] 1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */ 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 1279 .loc 1 1015 21 1280 004e 7B68 ldr r3, [r7, #4] 1281 0050 0522 movs r2, #5 1282 0052 83F82020 strb r2, [r3, #32] 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1283 .loc 1 1017 16 1284 0056 0123 movs r3, #1 1285 0058 12E0 b .L70 1286 .L69: 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1287 .loc 1 1006 17 1288 005a 7B68 ldr r3, [r7, #4] 1289 005c 1B68 ldr r3, [r3] 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1290 .loc 1 1006 27 1291 005e 5B68 ldr r3, [r3, #4] 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1292 .loc 1 1006 33 1293 0060 03F00103 and r3, r3, #1 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1294 .loc 1 1006 11 1295 0064 002B cmp r3, #0 1296 0066 E5D1 bne .L71 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset the CAN ErrorCode */ 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE; 1297 .loc 1 1022 21 1298 0068 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 42 1299 006a 0022 movs r2, #0 1300 006c 5A62 str r2, [r3, #36] 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 1301 .loc 1 1025 12 1302 006e 0023 movs r3, #0 1303 0070 06E0 b .L70 1304 .L68: 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_READY; 1305 .loc 1 1030 21 1306 0072 7B68 ldr r3, [r7, #4] 1307 0074 5B6A ldr r3, [r3, #36] 1308 0076 43F40022 orr r2, r3, #524288 1309 007a 7B68 ldr r3, [r7, #4] 1310 007c 5A62 str r2, [r3, #36] 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1311 .loc 1 1032 12 1312 007e 0123 movs r3, #1 1313 .L70: 1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1314 .loc 1 1034 1 1315 0080 1846 mov r0, r3 1316 0082 1037 adds r7, r7, #16 1317 .LCFI30: 1318 .cfi_def_cfa_offset 8 1319 0084 BD46 mov sp, r7 1320 .LCFI31: 1321 .cfi_def_cfa_register 13 1322 @ sp needed 1323 0086 80BD pop {r7, pc} 1324 .cfi_endproc 1325 .LFE135: 1327 .section .text.HAL_CAN_Stop,"ax",%progbits 1328 .align 1 1329 .global HAL_CAN_Stop 1330 .syntax unified 1331 .thumb 1332 .thumb_func 1334 HAL_CAN_Stop: 1335 .LFB136: 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Stop the CAN module and enable access to configuration registers. 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Stop(CAN_HandleTypeDef *hcan) 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1336 .loc 1 1043 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 43 1337 .cfi_startproc 1338 @ args = 0, pretend = 0, frame = 16 1339 @ frame_needed = 1, uses_anonymous_args = 0 1340 0000 80B5 push {r7, lr} 1341 .LCFI32: 1342 .cfi_def_cfa_offset 8 1343 .cfi_offset 7, -8 1344 .cfi_offset 14, -4 1345 0002 84B0 sub sp, sp, #16 1346 .LCFI33: 1347 .cfi_def_cfa_offset 24 1348 0004 00AF add r7, sp, #0 1349 .LCFI34: 1350 .cfi_def_cfa_register 7 1351 0006 7860 str r0, [r7, #4] 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_LISTENING) 1352 .loc 1 1046 11 1353 0008 7B68 ldr r3, [r7, #4] 1354 000a 93F82030 ldrb r3, [r3, #32] 1355 000e DBB2 uxtb r3, r3 1356 .loc 1 1046 6 1357 0010 022B cmp r3, #2 1358 0012 33D1 bne .L73 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request initialisation */ 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); 1359 .loc 1 1049 5 1360 0014 7B68 ldr r3, [r7, #4] 1361 0016 1B68 ldr r3, [r3] 1362 0018 1A68 ldr r2, [r3] 1363 001a 7B68 ldr r3, [r7, #4] 1364 001c 1B68 ldr r3, [r3] 1365 001e 42F00102 orr r2, r2, #1 1366 0022 1A60 str r2, [r3] 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get tick */ 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** tickstart = HAL_GetTick(); 1367 .loc 1 1052 17 1368 0024 FFF7FEFF bl HAL_GetTick 1369 0028 F860 str r0, [r7, #12] 1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wait the acknowledge */ 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U) 1370 .loc 1 1055 11 1371 002a 12E0 b .L74 1372 .L76: 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check for the Timeout */ 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 1373 .loc 1 1058 12 1374 002c FFF7FEFF bl HAL_GetTick 1375 0030 0246 mov r2, r0 1376 .loc 1 1058 26 1377 0032 FB68 ldr r3, [r7, #12] 1378 0034 D31A subs r3, r2, r3 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 44 1379 .loc 1 1058 10 1380 0036 0A2B cmp r3, #10 1381 0038 0BD9 bls .L74 1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 1382 .loc 1 1061 25 1383 003a 7B68 ldr r3, [r7, #4] 1384 003c 5B6A ldr r3, [r3, #36] 1385 003e 43F40032 orr r2, r3, #131072 1386 0042 7B68 ldr r3, [r7, #4] 1387 0044 5A62 str r2, [r3, #36] 1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */ 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 1388 .loc 1 1064 21 1389 0046 7B68 ldr r3, [r7, #4] 1390 0048 0522 movs r2, #5 1391 004a 83F82020 strb r2, [r3, #32] 1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1392 .loc 1 1066 16 1393 004e 0123 movs r3, #1 1394 0050 1BE0 b .L75 1395 .L74: 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1396 .loc 1 1055 17 1397 0052 7B68 ldr r3, [r7, #4] 1398 0054 1B68 ldr r3, [r3] 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1399 .loc 1 1055 27 1400 0056 5B68 ldr r3, [r3, #4] 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1401 .loc 1 1055 33 1402 0058 03F00103 and r3, r3, #1 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1403 .loc 1 1055 11 1404 005c 002B cmp r3, #0 1405 005e E5D0 beq .L76 1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Exit from sleep mode */ 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 1406 .loc 1 1071 5 1407 0060 7B68 ldr r3, [r7, #4] 1408 0062 1B68 ldr r3, [r3] 1409 0064 1A68 ldr r2, [r3] 1410 0066 7B68 ldr r3, [r7, #4] 1411 0068 1B68 ldr r3, [r3] 1412 006a 22F00202 bic r2, r2, #2 1413 006e 1A60 str r2, [r3] 1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN peripheral state */ 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY; 1414 .loc 1 1074 17 1415 0070 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 45 1416 0072 0122 movs r2, #1 1417 0074 83F82020 strb r2, [r3, #32] 1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 1418 .loc 1 1077 12 1419 0078 0023 movs r3, #0 1420 007a 06E0 b .L75 1421 .L73: 1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_STARTED; 1422 .loc 1 1082 21 1423 007c 7B68 ldr r3, [r7, #4] 1424 007e 5B6A ldr r3, [r3, #36] 1425 0080 43F48012 orr r2, r3, #1048576 1426 0084 7B68 ldr r3, [r7, #4] 1427 0086 5A62 str r2, [r3, #36] 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1428 .loc 1 1084 12 1429 0088 0123 movs r3, #1 1430 .L75: 1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1431 .loc 1 1086 1 1432 008a 1846 mov r0, r3 1433 008c 1037 adds r7, r7, #16 1434 .LCFI35: 1435 .cfi_def_cfa_offset 8 1436 008e BD46 mov sp, r7 1437 .LCFI36: 1438 .cfi_def_cfa_register 13 1439 @ sp needed 1440 0090 80BD pop {r7, pc} 1441 .cfi_endproc 1442 .LFE136: 1444 .section .text.HAL_CAN_RequestSleep,"ax",%progbits 1445 .align 1 1446 .global HAL_CAN_RequestSleep 1447 .syntax unified 1448 .thumb 1449 .thumb_func 1451 HAL_CAN_RequestSleep: 1452 .LFB137: 1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Request the sleep mode (low power) entry. 1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * When returning from this function, Sleep mode will be entered 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * as soon as the current CAN activity (transmission or reception 1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * of a CAN frame) has been completed. 1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status. 1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 46 1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RequestSleep(CAN_HandleTypeDef *hcan) 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1453 .loc 1 1098 1 1454 .cfi_startproc 1455 @ args = 0, pretend = 0, frame = 16 1456 @ frame_needed = 1, uses_anonymous_args = 0 1457 @ link register save eliminated. 1458 0000 80B4 push {r7} 1459 .LCFI37: 1460 .cfi_def_cfa_offset 4 1461 .cfi_offset 7, -4 1462 0002 85B0 sub sp, sp, #20 1463 .LCFI38: 1464 .cfi_def_cfa_offset 24 1465 0004 00AF add r7, sp, #0 1466 .LCFI39: 1467 .cfi_def_cfa_register 7 1468 0006 7860 str r0, [r7, #4] 1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1469 .loc 1 1099 24 1470 0008 7B68 ldr r3, [r7, #4] 1471 000a 93F82030 ldrb r3, [r3, #32] 1472 000e FB73 strb r3, [r7, #15] 1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1473 .loc 1 1101 6 1474 0010 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 1475 0012 012B cmp r3, #1 1476 0014 02D0 beq .L78 1477 .loc 1 1101 38 discriminator 1 1478 0016 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 1479 0018 022B cmp r3, #2 1480 001a 09D1 bne .L79 1481 .L78: 1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request Sleep mode */ 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 1482 .loc 1 1105 5 1483 001c 7B68 ldr r3, [r7, #4] 1484 001e 1B68 ldr r3, [r3] 1485 0020 1A68 ldr r2, [r3] 1486 0022 7B68 ldr r3, [r7, #4] 1487 0024 1B68 ldr r3, [r3] 1488 0026 42F00202 orr r2, r2, #2 1489 002a 1A60 str r2, [r3] 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 1490 .loc 1 1108 12 1491 002c 0023 movs r3, #0 1492 002e 06E0 b .L80 1493 .L79: 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 47 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1494 .loc 1 1113 21 1495 0030 7B68 ldr r3, [r7, #4] 1496 0032 5B6A ldr r3, [r3, #36] 1497 0034 43F48022 orr r2, r3, #262144 1498 0038 7B68 ldr r3, [r7, #4] 1499 003a 5A62 str r2, [r3, #36] 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1500 .loc 1 1116 12 1501 003c 0123 movs r3, #1 1502 .L80: 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1503 .loc 1 1118 1 1504 003e 1846 mov r0, r3 1505 0040 1437 adds r7, r7, #20 1506 .LCFI40: 1507 .cfi_def_cfa_offset 4 1508 0042 BD46 mov sp, r7 1509 .LCFI41: 1510 .cfi_def_cfa_register 13 1511 @ sp needed 1512 0044 5DF8047B ldr r7, [sp], #4 1513 .LCFI42: 1514 .cfi_restore 7 1515 .cfi_def_cfa_offset 0 1516 0048 7047 bx lr 1517 .cfi_endproc 1518 .LFE137: 1520 .section .text.HAL_CAN_WakeUp,"ax",%progbits 1521 .align 1 1522 .global HAL_CAN_WakeUp 1523 .syntax unified 1524 .thumb 1525 .thumb_func 1527 HAL_CAN_WakeUp: 1528 .LFB138: 1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Wake up from sleep mode. 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * When returning with HAL_OK status from this function, Sleep mode 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * is exited. 1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status. 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_WakeUp(CAN_HandleTypeDef *hcan) 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1529 .loc 1 1129 1 1530 .cfi_startproc 1531 @ args = 0, pretend = 0, frame = 16 1532 @ frame_needed = 1, uses_anonymous_args = 0 1533 @ link register save eliminated. 1534 0000 80B4 push {r7} 1535 .LCFI43: ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 48 1536 .cfi_def_cfa_offset 4 1537 .cfi_offset 7, -4 1538 0002 85B0 sub sp, sp, #20 1539 .LCFI44: 1540 .cfi_def_cfa_offset 24 1541 0004 00AF add r7, sp, #0 1542 .LCFI45: 1543 .cfi_def_cfa_register 7 1544 0006 7860 str r0, [r7, #4] 1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __IO uint32_t count = 0; 1545 .loc 1 1130 17 1546 0008 0023 movs r3, #0 1547 000a BB60 str r3, [r7, #8] 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1548 .loc 1 1131 24 1549 000c 7B68 ldr r3, [r7, #4] 1550 000e 93F82030 ldrb r3, [r3, #32] 1551 0012 FB73 strb r3, [r7, #15] 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1552 .loc 1 1133 6 1553 0014 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 1554 0016 012B cmp r3, #1 1555 0018 02D0 beq .L82 1556 .loc 1 1133 38 discriminator 1 1557 001a FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 1558 001c 022B cmp r3, #2 1559 001e 1FD1 bne .L83 1560 .L82: 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wake up request */ 1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 1561 .loc 1 1137 5 1562 0020 7B68 ldr r3, [r7, #4] 1563 0022 1B68 ldr r3, [r3] 1564 0024 1A68 ldr r2, [r3] 1565 0026 7B68 ldr r3, [r7, #4] 1566 0028 1B68 ldr r3, [r3] 1567 002a 22F00202 bic r2, r2, #2 1568 002e 1A60 str r2, [r3] 1569 .L86: 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wait sleep mode is exited */ 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** do 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Increment counter */ 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** count++; 1570 .loc 1 1143 12 1571 0030 BB68 ldr r3, [r7, #8] 1572 0032 0133 adds r3, r3, #1 1573 0034 BB60 str r3, [r7, #8] 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check if timeout is reached */ 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (count > CAN_WAKEUP_TIMEOUT_COUNTER) 1574 .loc 1 1146 17 1575 0036 BB68 ldr r3, [r7, #8] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 49 1576 .loc 1 1146 10 1577 0038 104A ldr r2, .L87 1578 003a 9342 cmp r3, r2 1579 003c 07D9 bls .L84 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 1580 .loc 1 1149 25 1581 003e 7B68 ldr r3, [r7, #4] 1582 0040 5B6A ldr r3, [r3, #36] 1583 0042 43F40032 orr r2, r3, #131072 1584 0046 7B68 ldr r3, [r7, #4] 1585 0048 5A62 str r2, [r3, #36] 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1586 .loc 1 1151 16 1587 004a 0123 movs r3, #1 1588 004c 0FE0 b .L85 1589 .L84: 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U); 1590 .loc 1 1153 19 1591 004e 7B68 ldr r3, [r7, #4] 1592 0050 1B68 ldr r3, [r3] 1593 .loc 1 1153 29 1594 0052 5B68 ldr r3, [r3, #4] 1595 .loc 1 1153 35 1596 0054 03F00203 and r3, r3, #2 1597 .loc 1 1153 5 1598 0058 002B cmp r3, #0 1599 005a E9D1 bne .L86 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 1600 .loc 1 1156 12 1601 005c 0023 movs r3, #0 1602 005e 06E0 b .L85 1603 .L83: 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1604 .loc 1 1161 21 1605 0060 7B68 ldr r3, [r7, #4] 1606 0062 5B6A ldr r3, [r3, #36] 1607 0064 43F48022 orr r2, r3, #262144 1608 0068 7B68 ldr r3, [r7, #4] 1609 006a 5A62 str r2, [r3, #36] 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1610 .loc 1 1163 12 1611 006c 0123 movs r3, #1 1612 .L85: 1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1613 .loc 1 1165 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 50 1614 006e 1846 mov r0, r3 1615 0070 1437 adds r7, r7, #20 1616 .LCFI46: 1617 .cfi_def_cfa_offset 4 1618 0072 BD46 mov sp, r7 1619 .LCFI47: 1620 .cfi_def_cfa_register 13 1621 @ sp needed 1622 0074 5DF8047B ldr r7, [sp], #4 1623 .LCFI48: 1624 .cfi_restore 7 1625 .cfi_def_cfa_offset 0 1626 0078 7047 bx lr 1627 .L88: 1628 007a 00BF .align 2 1629 .L87: 1630 007c 40420F00 .word 1000000 1631 .cfi_endproc 1632 .LFE138: 1634 .section .text.HAL_CAN_IsSleepActive,"ax",%progbits 1635 .align 1 1636 .global HAL_CAN_IsSleepActive 1637 .syntax unified 1638 .thumb 1639 .thumb_func 1641 HAL_CAN_IsSleepActive: 1642 .LFB139: 1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Check is sleep mode is active. 1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Status 1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * - 0 : Sleep mode is not active. 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * - 1 : Sleep mode is active. 1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_IsSleepActive(const CAN_HandleTypeDef *hcan) 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1643 .loc 1 1176 1 1644 .cfi_startproc 1645 @ args = 0, pretend = 0, frame = 16 1646 @ frame_needed = 1, uses_anonymous_args = 0 1647 @ link register save eliminated. 1648 0000 80B4 push {r7} 1649 .LCFI49: 1650 .cfi_def_cfa_offset 4 1651 .cfi_offset 7, -4 1652 0002 85B0 sub sp, sp, #20 1653 .LCFI50: 1654 .cfi_def_cfa_offset 24 1655 0004 00AF add r7, sp, #0 1656 .LCFI51: 1657 .cfi_def_cfa_register 7 1658 0006 7860 str r0, [r7, #4] 1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t status = 0U; 1659 .loc 1 1177 12 1660 0008 0023 movs r3, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 51 1661 000a FB60 str r3, [r7, #12] 1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1662 .loc 1 1178 24 1663 000c 7B68 ldr r3, [r7, #4] 1664 000e 93F82030 ldrb r3, [r3, #32] 1665 0012 FB72 strb r3, [r7, #11] 1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1666 .loc 1 1180 6 1667 0014 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 1668 0016 012B cmp r3, #1 1669 0018 02D0 beq .L90 1670 .loc 1 1180 38 discriminator 1 1671 001a FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 1672 001c 022B cmp r3, #2 1673 001e 08D1 bne .L91 1674 .L90: 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Sleep mode */ 1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 1675 .loc 1 1184 14 1676 0020 7B68 ldr r3, [r7, #4] 1677 0022 1B68 ldr r3, [r3] 1678 .loc 1 1184 24 1679 0024 5B68 ldr r3, [r3, #4] 1680 .loc 1 1184 30 1681 0026 03F00203 and r3, r3, #2 1682 .loc 1 1184 8 1683 002a 002B cmp r3, #0 1684 002c 01D0 beq .L91 1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = 1U; 1685 .loc 1 1186 14 1686 002e 0123 movs r3, #1 1687 0030 FB60 str r3, [r7, #12] 1688 .L91: 1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status; 1689 .loc 1 1191 10 1690 0032 FB68 ldr r3, [r7, #12] 1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1691 .loc 1 1192 1 1692 0034 1846 mov r0, r3 1693 0036 1437 adds r7, r7, #20 1694 .LCFI52: 1695 .cfi_def_cfa_offset 4 1696 0038 BD46 mov sp, r7 1697 .LCFI53: 1698 .cfi_def_cfa_register 13 1699 @ sp needed 1700 003a 5DF8047B ldr r7, [sp], #4 1701 .LCFI54: 1702 .cfi_restore 7 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 52 1703 .cfi_def_cfa_offset 0 1704 003e 7047 bx lr 1705 .cfi_endproc 1706 .LFE139: 1708 .section .text.HAL_CAN_AddTxMessage,"ax",%progbits 1709 .align 1 1710 .global HAL_CAN_AddTxMessage 1711 .syntax unified 1712 .thumb 1713 .thumb_func 1715 HAL_CAN_AddTxMessage: 1716 .LFB140: 1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Add a message to the first free Tx mailbox and activate the 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * corresponding transmission request. 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param pHeader pointer to a CAN_TxHeaderTypeDef structure. 1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param aData array containing the payload of the Tx frame. 1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param pTxMailbox pointer to a variable where the function will return 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the TxMailbox used to store the Tx message. 1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be a value of @arg CAN_Tx_Mailboxes. 1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AddTxMessage(CAN_HandleTypeDef *hcan, const CAN_TxHeaderTypeDef *pHeader, 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** const uint8_t aData[], uint32_t *pTxMailbox) 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1717 .loc 1 1208 1 1718 .cfi_startproc 1719 @ args = 0, pretend = 0, frame = 32 1720 @ frame_needed = 1, uses_anonymous_args = 0 1721 0000 80B5 push {r7, lr} 1722 .LCFI55: 1723 .cfi_def_cfa_offset 8 1724 .cfi_offset 7, -8 1725 .cfi_offset 14, -4 1726 0002 88B0 sub sp, sp, #32 1727 .LCFI56: 1728 .cfi_def_cfa_offset 40 1729 0004 00AF add r7, sp, #0 1730 .LCFI57: 1731 .cfi_def_cfa_register 7 1732 0006 F860 str r0, [r7, #12] 1733 0008 B960 str r1, [r7, #8] 1734 000a 7A60 str r2, [r7, #4] 1735 000c 3B60 str r3, [r7] 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox; 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1736 .loc 1 1210 24 1737 000e FB68 ldr r3, [r7, #12] 1738 0010 93F82030 ldrb r3, [r3, #32] 1739 0014 FB77 strb r3, [r7, #31] 1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tsr = READ_REG(hcan->Instance->TSR); 1740 .loc 1 1211 18 1741 0016 FB68 ldr r3, [r7, #12] 1742 0018 1B68 ldr r3, [r3] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 53 1743 .loc 1 1211 12 1744 001a 9B68 ldr r3, [r3, #8] 1745 001c BB61 str r3, [r7, #24] 1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */ 1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_IDTYPE(pHeader->IDE)); 1746 .loc 1 1214 3 1747 001e BB68 ldr r3, [r7, #8] 1748 0020 9B68 ldr r3, [r3, #8] 1749 0022 002B cmp r3, #0 1750 0024 08D0 beq .L94 1751 .loc 1 1214 3 is_stmt 0 discriminator 1 1752 0026 BB68 ldr r3, [r7, #8] 1753 0028 9B68 ldr r3, [r3, #8] 1754 002a 042B cmp r3, #4 1755 002c 04D0 beq .L94 1756 .loc 1 1214 3 discriminator 2 1757 002e 40F2BE41 movw r1, #1214 1758 0032 7F48 ldr r0, .L108 1759 0034 FFF7FEFF bl assert_failed 1760 .L94: 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_RTR(pHeader->RTR)); 1761 .loc 1 1215 3 is_stmt 1 1762 0038 BB68 ldr r3, [r7, #8] 1763 003a DB68 ldr r3, [r3, #12] 1764 003c 002B cmp r3, #0 1765 003e 08D0 beq .L95 1766 .loc 1 1215 3 is_stmt 0 discriminator 1 1767 0040 BB68 ldr r3, [r7, #8] 1768 0042 DB68 ldr r3, [r3, #12] 1769 0044 022B cmp r3, #2 1770 0046 04D0 beq .L95 1771 .loc 1 1215 3 discriminator 2 1772 0048 40F2BF41 movw r1, #1215 1773 004c 7848 ldr r0, .L108 1774 004e FFF7FEFF bl assert_failed 1775 .L95: 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_DLC(pHeader->DLC)); 1776 .loc 1 1216 3 is_stmt 1 1777 0052 BB68 ldr r3, [r7, #8] 1778 0054 1B69 ldr r3, [r3, #16] 1779 0056 082B cmp r3, #8 1780 0058 04D9 bls .L96 1781 .loc 1 1216 3 is_stmt 0 discriminator 1 1782 005a 4FF49861 mov r1, #1216 1783 005e 7448 ldr r0, .L108 1784 0060 FFF7FEFF bl assert_failed 1785 .L96: 1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 1786 .loc 1 1217 14 is_stmt 1 1787 0064 BB68 ldr r3, [r7, #8] 1788 0066 9B68 ldr r3, [r3, #8] 1789 .loc 1 1217 6 1790 0068 002B cmp r3, #0 1791 006a 0AD1 bne .L97 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_STDID(pHeader->StdId)); ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 54 1792 .loc 1 1219 5 1793 006c BB68 ldr r3, [r7, #8] 1794 006e 1B68 ldr r3, [r3] 1795 0070 B3F5006F cmp r3, #2048 1796 0074 0FD3 bcc .L98 1797 .loc 1 1219 5 is_stmt 0 discriminator 1 1798 0076 40F2C341 movw r1, #1219 1799 007a 6D48 ldr r0, .L108 1800 007c FFF7FEFF bl assert_failed 1801 0080 09E0 b .L98 1802 .L97: 1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_EXTID(pHeader->ExtId)); 1803 .loc 1 1223 5 is_stmt 1 1804 0082 BB68 ldr r3, [r7, #8] 1805 0084 5B68 ldr r3, [r3, #4] 1806 0086 B3F1005F cmp r3, #536870912 1807 008a 04D3 bcc .L98 1808 .loc 1 1223 5 is_stmt 0 discriminator 1 1809 008c 40F2C741 movw r1, #1223 1810 0090 6748 ldr r0, .L108 1811 0092 FFF7FEFF bl assert_failed 1812 .L98: 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(pHeader->TransmitGlobalTime)); 1813 .loc 1 1225 3 is_stmt 1 1814 0096 BB68 ldr r3, [r7, #8] 1815 0098 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2 1816 009a 002B cmp r3, #0 1817 009c 08D0 beq .L99 1818 .loc 1 1225 3 is_stmt 0 discriminator 1 1819 009e BB68 ldr r3, [r7, #8] 1820 00a0 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2 1821 00a2 012B cmp r3, #1 1822 00a4 04D0 beq .L99 1823 .loc 1 1225 3 discriminator 2 1824 00a6 40F2C941 movw r1, #1225 1825 00aa 6148 ldr r0, .L108 1826 00ac FFF7FEFF bl assert_failed 1827 .L99: 1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1828 .loc 1 1227 6 is_stmt 1 1829 00b0 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2 1830 00b2 012B cmp r3, #1 1831 00b4 03D0 beq .L100 1832 .loc 1 1227 38 discriminator 1 1833 00b6 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2 1834 00b8 022B cmp r3, #2 1835 00ba 40F0AD80 bne .L101 1836 .L100: 1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check that all the Tx mailboxes are not full */ 1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((tsr & CAN_TSR_TME0) != 0U) || ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 55 1837 .loc 1 1231 15 1838 00be BB69 ldr r3, [r7, #24] 1839 00c0 03F08063 and r3, r3, #67108864 1840 .loc 1 1231 8 1841 00c4 002B cmp r3, #0 1842 00c6 0AD1 bne .L102 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) || 1843 .loc 1 1232 15 discriminator 1 1844 00c8 BB69 ldr r3, [r7, #24] 1845 00ca 03F00063 and r3, r3, #134217728 1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) || 1846 .loc 1 1231 38 discriminator 1 1847 00ce 002B cmp r3, #0 1848 00d0 05D1 bne .L102 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((tsr & CAN_TSR_TME2) != 0U)) 1849 .loc 1 1233 15 1850 00d2 BB69 ldr r3, [r7, #24] 1851 00d4 03F08053 and r3, r3, #268435456 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) || 1852 .loc 1 1232 38 1853 00d8 002B cmp r3, #0 1854 00da 00F09580 beq .L103 1855 .L102: 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Select an empty transmit mailbox */ 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** transmitmailbox = (tsr & CAN_TSR_CODE) >> CAN_TSR_CODE_Pos; 1856 .loc 1 1236 46 1857 00de BB69 ldr r3, [r7, #24] 1858 00e0 1B0E lsrs r3, r3, #24 1859 .loc 1 1236 23 1860 00e2 03F00303 and r3, r3, #3 1861 00e6 7B61 str r3, [r7, #20] 1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Store the Tx mailbox */ 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *pTxMailbox = (uint32_t)1 << transmitmailbox; 1862 .loc 1 1239 33 1863 00e8 0122 movs r2, #1 1864 00ea 7B69 ldr r3, [r7, #20] 1865 00ec 9A40 lsls r2, r2, r3 1866 .loc 1 1239 19 1867 00ee 3B68 ldr r3, [r7] 1868 00f0 1A60 str r2, [r3] 1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set up the Id */ 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 1869 .loc 1 1242 18 1870 00f2 BB68 ldr r3, [r7, #8] 1871 00f4 9B68 ldr r3, [r3, #8] 1872 .loc 1 1242 10 1873 00f6 002B cmp r3, #0 1874 00f8 0DD1 bne .L104 1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->StdId << CAN_TI0R_STID_Pos) | 1875 .loc 1 1244 68 1876 00fa BB68 ldr r3, [r7, #8] 1877 00fc 1B68 ldr r3, [r3] 1878 .loc 1 1244 76 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 56 1879 00fe 5A05 lsls r2, r3, #21 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1880 .loc 1 1245 67 1881 0100 BB68 ldr r3, [r7, #8] 1882 0102 DB68 ldr r3, [r3, #12] 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1883 .loc 1 1244 13 1884 0104 F968 ldr r1, [r7, #12] 1885 0106 0968 ldr r1, [r1] 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1886 .loc 1 1244 98 1887 0108 1A43 orrs r2, r2, r3 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1888 .loc 1 1244 57 1889 010a 7B69 ldr r3, [r7, #20] 1890 010c 1833 adds r3, r3, #24 1891 010e 1B01 lsls r3, r3, #4 1892 0110 0B44 add r3, r3, r1 1893 0112 1A60 str r2, [r3] 1894 0114 0FE0 b .L105 1895 .L104: 1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->ExtId << CAN_TI0R_EXID_Pos) | 1896 .loc 1 1249 68 1897 0116 BB68 ldr r3, [r7, #8] 1898 0118 5B68 ldr r3, [r3, #4] 1899 .loc 1 1249 76 1900 011a DA00 lsls r2, r3, #3 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1901 .loc 1 1250 67 1902 011c BB68 ldr r3, [r7, #8] 1903 011e 9B68 ldr r3, [r3, #8] 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1904 .loc 1 1249 98 1905 0120 1A43 orrs r2, r2, r3 1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1906 .loc 1 1251 67 1907 0122 BB68 ldr r3, [r7, #8] 1908 0124 DB68 ldr r3, [r3, #12] 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1909 .loc 1 1249 13 1910 0126 F968 ldr r1, [r7, #12] 1911 0128 0968 ldr r1, [r1] 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1912 .loc 1 1250 73 1913 012a 1A43 orrs r2, r2, r3 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1914 .loc 1 1249 57 1915 012c 7B69 ldr r3, [r7, #20] 1916 012e 1833 adds r3, r3, #24 1917 0130 1B01 lsls r3, r3, #4 1918 0132 0B44 add r3, r3, r1 1919 0134 1A60 str r2, [r3] 1920 .L105: 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 57 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set up the DLC */ 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TDTR = (pHeader->DLC); 1921 .loc 1 1255 11 1922 0136 FB68 ldr r3, [r7, #12] 1923 0138 1968 ldr r1, [r3] 1924 .loc 1 1255 66 1925 013a BB68 ldr r3, [r7, #8] 1926 013c 1A69 ldr r2, [r3, #16] 1927 .loc 1 1255 56 1928 013e 7B69 ldr r3, [r7, #20] 1929 0140 1833 adds r3, r3, #24 1930 0142 1B01 lsls r3, r3, #4 1931 0144 0B44 add r3, r3, r1 1932 0146 0433 adds r3, r3, #4 1933 0148 1A60 str r2, [r3] 1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set up the Transmit Global Time mode */ 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->TransmitGlobalTime == ENABLE) 1934 .loc 1 1258 18 1935 014a BB68 ldr r3, [r7, #8] 1936 014c 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2 1937 .loc 1 1258 10 1938 014e 012B cmp r3, #1 1939 0150 11D1 bne .L106 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TDTR, CAN_TDT0R_TGT); 1940 .loc 1 1260 9 1941 0152 FB68 ldr r3, [r7, #12] 1942 0154 1A68 ldr r2, [r3] 1943 0156 7B69 ldr r3, [r7, #20] 1944 0158 1833 adds r3, r3, #24 1945 015a 1B01 lsls r3, r3, #4 1946 015c 1344 add r3, r3, r2 1947 015e 0433 adds r3, r3, #4 1948 0160 1B68 ldr r3, [r3] 1949 0162 FA68 ldr r2, [r7, #12] 1950 0164 1168 ldr r1, [r2] 1951 0166 43F48072 orr r2, r3, #256 1952 016a 7B69 ldr r3, [r7, #20] 1953 016c 1833 adds r3, r3, #24 1954 016e 1B01 lsls r3, r3, #4 1955 0170 0B44 add r3, r3, r1 1956 0172 0433 adds r3, r3, #4 1957 0174 1A60 str r2, [r3] 1958 .L106: 1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set up the data field */ 1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDHR, 1959 .loc 1 1264 7 1960 0176 7B68 ldr r3, [r7, #4] 1961 0178 0733 adds r3, r3, #7 1962 017a 1B78 ldrb r3, [r3] @ zero_extendqisi2 1963 017c 1A06 lsls r2, r3, #24 1964 017e 7B68 ldr r3, [r7, #4] 1965 0180 0633 adds r3, r3, #6 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 58 1966 0182 1B78 ldrb r3, [r3] @ zero_extendqisi2 1967 0184 1B04 lsls r3, r3, #16 1968 0186 1A43 orrs r2, r2, r3 1969 0188 7B68 ldr r3, [r7, #4] 1970 018a 0533 adds r3, r3, #5 1971 018c 1B78 ldrb r3, [r3] @ zero_extendqisi2 1972 018e 1B02 lsls r3, r3, #8 1973 0190 1343 orrs r3, r3, r2 1974 0192 7A68 ldr r2, [r7, #4] 1975 0194 0432 adds r2, r2, #4 1976 0196 1278 ldrb r2, [r2] @ zero_extendqisi2 1977 0198 1046 mov r0, r2 1978 019a FA68 ldr r2, [r7, #12] 1979 019c 1168 ldr r1, [r2] 1980 019e 43EA0002 orr r2, r3, r0 1981 01a2 7B69 ldr r3, [r7, #20] 1982 01a4 1B01 lsls r3, r3, #4 1983 01a6 0B44 add r3, r3, r1 1984 01a8 03F5C673 add r3, r3, #396 1985 01ac 1A60 str r2, [r3] 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[7] << CAN_TDH0R_DATA7_Pos) | 1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[6] << CAN_TDH0R_DATA6_Pos) | 1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[5] << CAN_TDH0R_DATA5_Pos) | 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[4] << CAN_TDH0R_DATA4_Pos)); 1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDLR, 1986 .loc 1 1269 7 1987 01ae 7B68 ldr r3, [r7, #4] 1988 01b0 0333 adds r3, r3, #3 1989 01b2 1B78 ldrb r3, [r3] @ zero_extendqisi2 1990 01b4 1A06 lsls r2, r3, #24 1991 01b6 7B68 ldr r3, [r7, #4] 1992 01b8 0233 adds r3, r3, #2 1993 01ba 1B78 ldrb r3, [r3] @ zero_extendqisi2 1994 01bc 1B04 lsls r3, r3, #16 1995 01be 1A43 orrs r2, r2, r3 1996 01c0 7B68 ldr r3, [r7, #4] 1997 01c2 0133 adds r3, r3, #1 1998 01c4 1B78 ldrb r3, [r3] @ zero_extendqisi2 1999 01c6 1B02 lsls r3, r3, #8 2000 01c8 1343 orrs r3, r3, r2 2001 01ca 7A68 ldr r2, [r7, #4] 2002 01cc 1278 ldrb r2, [r2] @ zero_extendqisi2 2003 01ce 1046 mov r0, r2 2004 01d0 FA68 ldr r2, [r7, #12] 2005 01d2 1168 ldr r1, [r2] 2006 01d4 43EA0002 orr r2, r3, r0 2007 01d8 7B69 ldr r3, [r7, #20] 2008 01da 1B01 lsls r3, r3, #4 2009 01dc 0B44 add r3, r3, r1 2010 01de 03F5C473 add r3, r3, #392 2011 01e2 1A60 str r2, [r3] 1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[3] << CAN_TDL0R_DATA3_Pos) | 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[2] << CAN_TDL0R_DATA2_Pos) | 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[1] << CAN_TDL0R_DATA1_Pos) | 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[0] << CAN_TDL0R_DATA0_Pos)); 1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request transmission */ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 59 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TIR, CAN_TI0R_TXRQ); 2012 .loc 1 1276 7 2013 01e4 FB68 ldr r3, [r7, #12] 2014 01e6 1A68 ldr r2, [r3] 2015 01e8 7B69 ldr r3, [r7, #20] 2016 01ea 1833 adds r3, r3, #24 2017 01ec 1B01 lsls r3, r3, #4 2018 01ee 1344 add r3, r3, r2 2019 01f0 1B68 ldr r3, [r3] 2020 01f2 FA68 ldr r2, [r7, #12] 2021 01f4 1168 ldr r1, [r2] 2022 01f6 43F00102 orr r2, r3, #1 2023 01fa 7B69 ldr r3, [r7, #20] 2024 01fc 1833 adds r3, r3, #24 2025 01fe 1B01 lsls r3, r3, #4 2026 0200 0B44 add r3, r3, r1 2027 0202 1A60 str r2, [r3] 1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 2028 .loc 1 1279 14 2029 0204 0023 movs r3, #0 2030 0206 0EE0 b .L107 2031 .L103: 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; 2032 .loc 1 1284 23 2033 0208 FB68 ldr r3, [r7, #12] 2034 020a 5B6A ldr r3, [r3, #36] 2035 020c 43F40012 orr r2, r3, #2097152 2036 0210 FB68 ldr r3, [r7, #12] 2037 0212 5A62 str r2, [r3, #36] 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 2038 .loc 1 1286 14 2039 0214 0123 movs r3, #1 2040 0216 06E0 b .L107 2041 .L101: 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 2042 .loc 1 1292 21 2043 0218 FB68 ldr r3, [r7, #12] 2044 021a 5B6A ldr r3, [r3, #36] 2045 021c 43F48022 orr r2, r3, #262144 2046 0220 FB68 ldr r3, [r7, #12] 2047 0222 5A62 str r2, [r3, #36] 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 2048 .loc 1 1294 12 2049 0224 0123 movs r3, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 60 2050 .L107: 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2051 .loc 1 1296 1 2052 0226 1846 mov r0, r3 2053 0228 2037 adds r7, r7, #32 2054 .LCFI58: 2055 .cfi_def_cfa_offset 8 2056 022a BD46 mov sp, r7 2057 .LCFI59: 2058 .cfi_def_cfa_register 13 2059 @ sp needed 2060 022c 80BD pop {r7, pc} 2061 .L109: 2062 022e 00BF .align 2 2063 .L108: 2064 0230 00000000 .word .LC0 2065 .cfi_endproc 2066 .LFE140: 2068 .section .text.HAL_CAN_AbortTxRequest,"ax",%progbits 2069 .align 1 2070 .global HAL_CAN_AbortTxRequest 2071 .syntax unified 2072 .thumb 2073 .thumb_func 2075 HAL_CAN_AbortTxRequest: 2076 .LFB141: 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Abort transmission requests 1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param TxMailboxes List of the Tx Mailboxes to abort. 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes. 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AbortTxRequest(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes) 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2077 .loc 1 1307 1 2078 .cfi_startproc 2079 @ args = 0, pretend = 0, frame = 16 2080 @ frame_needed = 1, uses_anonymous_args = 0 2081 0000 80B5 push {r7, lr} 2082 .LCFI60: 2083 .cfi_def_cfa_offset 8 2084 .cfi_offset 7, -8 2085 .cfi_offset 14, -4 2086 0002 84B0 sub sp, sp, #16 2087 .LCFI61: 2088 .cfi_def_cfa_offset 24 2089 0004 00AF add r7, sp, #0 2090 .LCFI62: 2091 .cfi_def_cfa_register 7 2092 0006 7860 str r0, [r7, #4] 2093 0008 3960 str r1, [r7] 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2094 .loc 1 1308 24 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 61 2095 000a 7B68 ldr r3, [r7, #4] 2096 000c 93F82030 ldrb r3, [r3, #32] 2097 0010 FB73 strb r3, [r7, #15] 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */ 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes)); 2098 .loc 1 1311 3 2099 0012 3B68 ldr r3, [r7] 2100 0014 072B cmp r3, #7 2101 0016 04D9 bls .L111 2102 .loc 1 1311 3 is_stmt 0 discriminator 1 2103 0018 40F21F51 movw r1, #1311 2104 001c 1E48 ldr r0, .L118 2105 001e FFF7FEFF bl assert_failed 2106 .L111: 1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2107 .loc 1 1313 6 is_stmt 1 2108 0022 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2109 0024 012B cmp r3, #1 2110 0026 02D0 beq .L112 2111 .loc 1 1313 38 discriminator 1 2112 0028 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2113 002a 022B cmp r3, #2 2114 002c 28D1 bne .L113 2115 .L112: 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 0 */ 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX0) != 0U) 2116 .loc 1 1317 22 2117 002e 3B68 ldr r3, [r7] 2118 0030 03F00103 and r3, r3, #1 2119 .loc 1 1317 8 2120 0034 002B cmp r3, #0 2121 0036 07D0 beq .L114 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 0 */ 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ0); 2122 .loc 1 1320 7 2123 0038 7B68 ldr r3, [r7, #4] 2124 003a 1B68 ldr r3, [r3] 2125 003c 9A68 ldr r2, [r3, #8] 2126 003e 7B68 ldr r3, [r7, #4] 2127 0040 1B68 ldr r3, [r3] 2128 0042 42F08002 orr r2, r2, #128 2129 0046 9A60 str r2, [r3, #8] 2130 .L114: 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 1 */ 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX1) != 0U) 2131 .loc 1 1324 22 2132 0048 3B68 ldr r3, [r7] 2133 004a 03F00203 and r3, r3, #2 2134 .loc 1 1324 8 2135 004e 002B cmp r3, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 62 2136 0050 07D0 beq .L115 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 1 */ 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ1); 2137 .loc 1 1327 7 2138 0052 7B68 ldr r3, [r7, #4] 2139 0054 1B68 ldr r3, [r3] 2140 0056 9A68 ldr r2, [r3, #8] 2141 0058 7B68 ldr r3, [r7, #4] 2142 005a 1B68 ldr r3, [r3] 2143 005c 42F40042 orr r2, r2, #32768 2144 0060 9A60 str r2, [r3, #8] 2145 .L115: 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 2 */ 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX2) != 0U) 2146 .loc 1 1331 22 2147 0062 3B68 ldr r3, [r7] 2148 0064 03F00403 and r3, r3, #4 2149 .loc 1 1331 8 2150 0068 002B cmp r3, #0 2151 006a 07D0 beq .L116 1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 2 */ 1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ2); 2152 .loc 1 1334 7 2153 006c 7B68 ldr r3, [r7, #4] 2154 006e 1B68 ldr r3, [r3] 2155 0070 9A68 ldr r2, [r3, #8] 2156 0072 7B68 ldr r3, [r7, #4] 2157 0074 1B68 ldr r3, [r3] 2158 0076 42F40002 orr r2, r2, #8388608 2159 007a 9A60 str r2, [r3, #8] 2160 .L116: 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 2161 .loc 1 1338 12 2162 007c 0023 movs r3, #0 2163 007e 06E0 b .L117 2164 .L113: 1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 2165 .loc 1 1343 21 2166 0080 7B68 ldr r3, [r7, #4] 2167 0082 5B6A ldr r3, [r3, #36] 2168 0084 43F48022 orr r2, r3, #262144 2169 0088 7B68 ldr r3, [r7, #4] 2170 008a 5A62 str r2, [r3, #36] 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 2171 .loc 1 1345 12 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 63 2172 008c 0123 movs r3, #1 2173 .L117: 1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2174 .loc 1 1347 1 2175 008e 1846 mov r0, r3 2176 0090 1037 adds r7, r7, #16 2177 .LCFI63: 2178 .cfi_def_cfa_offset 8 2179 0092 BD46 mov sp, r7 2180 .LCFI64: 2181 .cfi_def_cfa_register 13 2182 @ sp needed 2183 0094 80BD pop {r7, pc} 2184 .L119: 2185 0096 00BF .align 2 2186 .L118: 2187 0098 00000000 .word .LC0 2188 .cfi_endproc 2189 .LFE141: 2191 .section .text.HAL_CAN_GetTxMailboxesFreeLevel,"ax",%progbits 2192 .align 1 2193 .global HAL_CAN_GetTxMailboxesFreeLevel 2194 .syntax unified 2195 .thumb 2196 .thumb_func 2198 HAL_CAN_GetTxMailboxesFreeLevel: 2199 .LFB142: 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return Tx Mailboxes free level: number of free Tx Mailboxes. 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Number of free Tx Mailboxes. 1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_GetTxMailboxesFreeLevel(const CAN_HandleTypeDef *hcan) 1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2200 .loc 1 1356 1 2201 .cfi_startproc 2202 @ args = 0, pretend = 0, frame = 16 2203 @ frame_needed = 1, uses_anonymous_args = 0 2204 @ link register save eliminated. 2205 0000 80B4 push {r7} 2206 .LCFI65: 2207 .cfi_def_cfa_offset 4 2208 .cfi_offset 7, -4 2209 0002 85B0 sub sp, sp, #20 2210 .LCFI66: 2211 .cfi_def_cfa_offset 24 2212 0004 00AF add r7, sp, #0 2213 .LCFI67: 2214 .cfi_def_cfa_register 7 2215 0006 7860 str r0, [r7, #4] 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t freelevel = 0U; 2216 .loc 1 1357 12 2217 0008 0023 movs r3, #0 2218 000a FB60 str r3, [r7, #12] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 64 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2219 .loc 1 1358 24 2220 000c 7B68 ldr r3, [r7, #4] 2221 000e 93F82030 ldrb r3, [r3, #32] 2222 0012 FB72 strb r3, [r7, #11] 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2223 .loc 1 1360 6 2224 0014 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 2225 0016 012B cmp r3, #1 2226 0018 02D0 beq .L121 2227 .loc 1 1360 38 discriminator 1 2228 001a FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 2229 001c 022B cmp r3, #2 2230 001e 1DD1 bne .L122 2231 .L121: 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 0 status */ 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME0) != 0U) 2232 .loc 1 1364 14 2233 0020 7B68 ldr r3, [r7, #4] 2234 0022 1B68 ldr r3, [r3] 2235 .loc 1 1364 24 2236 0024 9B68 ldr r3, [r3, #8] 2237 .loc 1 1364 30 2238 0026 03F08063 and r3, r3, #67108864 2239 .loc 1 1364 8 2240 002a 002B cmp r3, #0 2241 002c 02D0 beq .L123 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** freelevel++; 2242 .loc 1 1366 16 2243 002e FB68 ldr r3, [r7, #12] 2244 0030 0133 adds r3, r3, #1 2245 0032 FB60 str r3, [r7, #12] 2246 .L123: 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 1 status */ 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME1) != 0U) 2247 .loc 1 1370 14 2248 0034 7B68 ldr r3, [r7, #4] 2249 0036 1B68 ldr r3, [r3] 2250 .loc 1 1370 24 2251 0038 9B68 ldr r3, [r3, #8] 2252 .loc 1 1370 30 2253 003a 03F00063 and r3, r3, #134217728 2254 .loc 1 1370 8 2255 003e 002B cmp r3, #0 2256 0040 02D0 beq .L124 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** freelevel++; 2257 .loc 1 1372 16 2258 0042 FB68 ldr r3, [r7, #12] 2259 0044 0133 adds r3, r3, #1 2260 0046 FB60 str r3, [r7, #12] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 65 2261 .L124: 1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 2 status */ 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME2) != 0U) 2262 .loc 1 1376 14 2263 0048 7B68 ldr r3, [r7, #4] 2264 004a 1B68 ldr r3, [r3] 2265 .loc 1 1376 24 2266 004c 9B68 ldr r3, [r3, #8] 2267 .loc 1 1376 30 2268 004e 03F08053 and r3, r3, #268435456 2269 .loc 1 1376 8 2270 0052 002B cmp r3, #0 2271 0054 02D0 beq .L122 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** freelevel++; 2272 .loc 1 1378 16 2273 0056 FB68 ldr r3, [r7, #12] 2274 0058 0133 adds r3, r3, #1 2275 005a FB60 str r3, [r7, #12] 2276 .L122: 1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return Tx Mailboxes free level */ 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return freelevel; 2277 .loc 1 1383 10 2278 005c FB68 ldr r3, [r7, #12] 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2279 .loc 1 1384 1 2280 005e 1846 mov r0, r3 2281 0060 1437 adds r7, r7, #20 2282 .LCFI68: 2283 .cfi_def_cfa_offset 4 2284 0062 BD46 mov sp, r7 2285 .LCFI69: 2286 .cfi_def_cfa_register 13 2287 @ sp needed 2288 0064 5DF8047B ldr r7, [sp], #4 2289 .LCFI70: 2290 .cfi_restore 7 2291 .cfi_def_cfa_offset 0 2292 0068 7047 bx lr 2293 .cfi_endproc 2294 .LFE142: 2296 .section .text.HAL_CAN_IsTxMessagePending,"ax",%progbits 2297 .align 1 2298 .global HAL_CAN_IsTxMessagePending 2299 .syntax unified 2300 .thumb 2301 .thumb_func 2303 HAL_CAN_IsTxMessagePending: 2304 .LFB143: 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Check if a transmission request is pending on the selected Tx ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 66 1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * Mailboxes. 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param TxMailboxes List of Tx Mailboxes to check. 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes. 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Status 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * - 0 : No pending transmission request on any selected Tx Mailboxes. 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * - 1 : Pending transmission request on at least one of the selected 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * Tx Mailbox. 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_IsTxMessagePending(const CAN_HandleTypeDef *hcan, uint32_t TxMailboxes) 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2305 .loc 1 1399 1 2306 .cfi_startproc 2307 @ args = 0, pretend = 0, frame = 16 2308 @ frame_needed = 1, uses_anonymous_args = 0 2309 0000 80B5 push {r7, lr} 2310 .LCFI71: 2311 .cfi_def_cfa_offset 8 2312 .cfi_offset 7, -8 2313 .cfi_offset 14, -4 2314 0002 84B0 sub sp, sp, #16 2315 .LCFI72: 2316 .cfi_def_cfa_offset 24 2317 0004 00AF add r7, sp, #0 2318 .LCFI73: 2319 .cfi_def_cfa_register 7 2320 0006 7860 str r0, [r7, #4] 2321 0008 3960 str r1, [r7] 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t status = 0U; 2322 .loc 1 1400 12 2323 000a 0023 movs r3, #0 2324 000c FB60 str r3, [r7, #12] 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2325 .loc 1 1401 24 2326 000e 7B68 ldr r3, [r7, #4] 2327 0010 93F82030 ldrb r3, [r3, #32] 2328 0014 FB72 strb r3, [r7, #11] 1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */ 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes)); 2329 .loc 1 1404 3 2330 0016 3B68 ldr r3, [r7] 2331 0018 072B cmp r3, #7 2332 001a 04D9 bls .L127 2333 .loc 1 1404 3 is_stmt 0 discriminator 1 2334 001c 40F27C51 movw r1, #1404 2335 0020 0C48 ldr r0, .L131 2336 0022 FFF7FEFF bl assert_failed 2337 .L127: 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2338 .loc 1 1406 6 is_stmt 1 2339 0026 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 2340 0028 012B cmp r3, #1 2341 002a 02D0 beq .L128 2342 .loc 1 1406 38 discriminator 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 67 2343 002c FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 2344 002e 022B cmp r3, #2 2345 0030 0BD1 bne .L129 2346 .L128: 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check pending transmission request on the selected Tx Mailboxes */ 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->TSR & (TxMailboxes << CAN_TSR_TME0_Pos)) != (TxMailboxes << CAN_TSR_TME0_P 2347 .loc 1 1410 14 2348 0032 7B68 ldr r3, [r7, #4] 2349 0034 1B68 ldr r3, [r3] 2350 .loc 1 1410 24 2351 0036 9A68 ldr r2, [r3, #8] 2352 .loc 1 1410 45 2353 0038 3B68 ldr r3, [r7] 2354 003a 9B06 lsls r3, r3, #26 2355 .loc 1 1410 30 2356 003c 1A40 ands r2, r2, r3 2357 .loc 1 1410 83 2358 003e 3B68 ldr r3, [r7] 2359 0040 9B06 lsls r3, r3, #26 2360 .loc 1 1410 8 2361 0042 9A42 cmp r2, r3 2362 0044 01D0 beq .L129 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = 1U; 2363 .loc 1 1412 14 2364 0046 0123 movs r3, #1 2365 0048 FB60 str r3, [r7, #12] 2366 .L129: 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return status */ 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status; 2367 .loc 1 1417 10 2368 004a FB68 ldr r3, [r7, #12] 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2369 .loc 1 1418 1 2370 004c 1846 mov r0, r3 2371 004e 1037 adds r7, r7, #16 2372 .LCFI74: 2373 .cfi_def_cfa_offset 8 2374 0050 BD46 mov sp, r7 2375 .LCFI75: 2376 .cfi_def_cfa_register 13 2377 @ sp needed 2378 0052 80BD pop {r7, pc} 2379 .L132: 2380 .align 2 2381 .L131: 2382 0054 00000000 .word .LC0 2383 .cfi_endproc 2384 .LFE143: 2386 .section .text.HAL_CAN_GetTxTimestamp,"ax",%progbits 2387 .align 1 2388 .global HAL_CAN_GetTxTimestamp ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 68 2389 .syntax unified 2390 .thumb 2391 .thumb_func 2393 HAL_CAN_GetTxTimestamp: 2394 .LFB144: 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return timestamp of Tx message sent, if time triggered communication 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** mode is enabled. 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param TxMailbox Tx Mailbox where the timestamp of message sent will be 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * read. 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be one value of @arg CAN_Tx_Mailboxes. 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Timestamp of message sent from Tx Mailbox. 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_GetTxTimestamp(const CAN_HandleTypeDef *hcan, uint32_t TxMailbox) 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2395 .loc 1 1431 1 2396 .cfi_startproc 2397 @ args = 0, pretend = 0, frame = 32 2398 @ frame_needed = 1, uses_anonymous_args = 0 2399 0000 80B5 push {r7, lr} 2400 .LCFI76: 2401 .cfi_def_cfa_offset 8 2402 .cfi_offset 7, -8 2403 .cfi_offset 14, -4 2404 0002 88B0 sub sp, sp, #32 2405 .LCFI77: 2406 .cfi_def_cfa_offset 40 2407 0004 00AF add r7, sp, #0 2408 .LCFI78: 2409 .cfi_def_cfa_register 7 2410 0006 7860 str r0, [r7, #4] 2411 0008 3960 str r1, [r7] 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t timestamp = 0U; 2412 .loc 1 1432 12 2413 000a 0023 movs r3, #0 2414 000c FB61 str r3, [r7, #28] 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox; 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2415 .loc 1 1434 24 2416 000e 7B68 ldr r3, [r7, #4] 2417 0010 93F82030 ldrb r3, [r3, #32] 2418 0014 FB76 strb r3, [r7, #27] 1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */ 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX(TxMailbox)); 2419 .loc 1 1437 3 2420 0016 3B68 ldr r3, [r7] 2421 0018 012B cmp r3, #1 2422 001a 0AD0 beq .L134 2423 .loc 1 1437 3 is_stmt 0 discriminator 1 2424 001c 3B68 ldr r3, [r7] 2425 001e 022B cmp r3, #2 2426 0020 07D0 beq .L134 2427 .loc 1 1437 3 discriminator 2 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 69 2428 0022 3B68 ldr r3, [r7] 2429 0024 042B cmp r3, #4 2430 0026 04D0 beq .L134 2431 .loc 1 1437 3 discriminator 3 2432 0028 40F29D51 movw r1, #1437 2433 002c 1148 ldr r0, .L139 2434 002e FFF7FEFF bl assert_failed 2435 .L134: 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2436 .loc 1 1439 6 is_stmt 1 2437 0032 FB7E ldrb r3, [r7, #27] @ zero_extendqisi2 2438 0034 012B cmp r3, #1 2439 0036 02D0 beq .L135 2440 .loc 1 1439 38 discriminator 1 2441 0038 FB7E ldrb r3, [r7, #27] @ zero_extendqisi2 2442 003a 022B cmp r3, #2 2443 003c 15D1 bne .L136 2444 .L135: 2445 003e 3B68 ldr r3, [r7] 2446 0040 3B61 str r3, [r7, #16] 2447 .LBB4: 2448 .LBB5: 2449 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" 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 **** ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 70 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 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; }; ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 71 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 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) 141:Drivers/CMSIS/Include/cmsis_gcc.h **** { 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); 143:Drivers/CMSIS/Include/cmsis_gcc.h **** } 144:Drivers/CMSIS/Include/cmsis_gcc.h **** 145:Drivers/CMSIS/Include/cmsis_gcc.h **** 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 72 148:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. 149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value 150:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) 152:Drivers/CMSIS/Include/cmsis_gcc.h **** { 153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 154:Drivers/CMSIS/Include/cmsis_gcc.h **** 155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); 156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 157:Drivers/CMSIS/Include/cmsis_gcc.h **** } 158:Drivers/CMSIS/Include/cmsis_gcc.h **** 159:Drivers/CMSIS/Include/cmsis_gcc.h **** 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) 163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. 164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value 165:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) 167:Drivers/CMSIS/Include/cmsis_gcc.h **** { 168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 169:Drivers/CMSIS/Include/cmsis_gcc.h **** 170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); 171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 172:Drivers/CMSIS/Include/cmsis_gcc.h **** } 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 174:Drivers/CMSIS/Include/cmsis_gcc.h **** 175:Drivers/CMSIS/Include/cmsis_gcc.h **** 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register 178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. 179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 180:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) 182:Drivers/CMSIS/Include/cmsis_gcc.h **** { 183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); 184:Drivers/CMSIS/Include/cmsis_gcc.h **** } 185:Drivers/CMSIS/Include/cmsis_gcc.h **** 186:Drivers/CMSIS/Include/cmsis_gcc.h **** 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) 190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. 191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 192:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) 194:Drivers/CMSIS/Include/cmsis_gcc.h **** { 195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); 196:Drivers/CMSIS/Include/cmsis_gcc.h **** } 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 198:Drivers/CMSIS/Include/cmsis_gcc.h **** 199:Drivers/CMSIS/Include/cmsis_gcc.h **** 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register 202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value 204:Drivers/CMSIS/Include/cmsis_gcc.h **** */ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 73 205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) 206:Drivers/CMSIS/Include/cmsis_gcc.h **** { 207:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 208:Drivers/CMSIS/Include/cmsis_gcc.h **** 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); 210:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 211:Drivers/CMSIS/Include/cmsis_gcc.h **** } 212:Drivers/CMSIS/Include/cmsis_gcc.h **** 213:Drivers/CMSIS/Include/cmsis_gcc.h **** 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. 217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value 218:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) 220:Drivers/CMSIS/Include/cmsis_gcc.h **** { 221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 222:Drivers/CMSIS/Include/cmsis_gcc.h **** 223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); 224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 225:Drivers/CMSIS/Include/cmsis_gcc.h **** } 226:Drivers/CMSIS/Include/cmsis_gcc.h **** 227:Drivers/CMSIS/Include/cmsis_gcc.h **** 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } 240:Drivers/CMSIS/Include/cmsis_gcc.h **** 241:Drivers/CMSIS/Include/cmsis_gcc.h **** 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 246:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) 248:Drivers/CMSIS/Include/cmsis_gcc.h **** { 249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 250:Drivers/CMSIS/Include/cmsis_gcc.h **** 251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); 252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 253:Drivers/CMSIS/Include/cmsis_gcc.h **** } 254:Drivers/CMSIS/Include/cmsis_gcc.h **** 255:Drivers/CMSIS/Include/cmsis_gcc.h **** 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) 259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s 260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 261:Drivers/CMSIS/Include/cmsis_gcc.h **** */ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 74 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) 263:Drivers/CMSIS/Include/cmsis_gcc.h **** { 264:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 265:Drivers/CMSIS/Include/cmsis_gcc.h **** 266:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); 267:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 268:Drivers/CMSIS/Include/cmsis_gcc.h **** } 269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 270:Drivers/CMSIS/Include/cmsis_gcc.h **** 271:Drivers/CMSIS/Include/cmsis_gcc.h **** 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer 274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). 275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 276:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) 278:Drivers/CMSIS/Include/cmsis_gcc.h **** { 279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); 280:Drivers/CMSIS/Include/cmsis_gcc.h **** } 281:Drivers/CMSIS/Include/cmsis_gcc.h **** 282:Drivers/CMSIS/Include/cmsis_gcc.h **** 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 288:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) 290:Drivers/CMSIS/Include/cmsis_gcc.h **** { 291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 294:Drivers/CMSIS/Include/cmsis_gcc.h **** 295:Drivers/CMSIS/Include/cmsis_gcc.h **** 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). 299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 300:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) 302:Drivers/CMSIS/Include/cmsis_gcc.h **** { 303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 304:Drivers/CMSIS/Include/cmsis_gcc.h **** 305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); 306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 307:Drivers/CMSIS/Include/cmsis_gcc.h **** } 308:Drivers/CMSIS/Include/cmsis_gcc.h **** 309:Drivers/CMSIS/Include/cmsis_gcc.h **** 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) 313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat 314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 315:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) 317:Drivers/CMSIS/Include/cmsis_gcc.h **** { 318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 75 319:Drivers/CMSIS/Include/cmsis_gcc.h **** 320:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); 321:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 322:Drivers/CMSIS/Include/cmsis_gcc.h **** } 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 324:Drivers/CMSIS/Include/cmsis_gcc.h **** 325:Drivers/CMSIS/Include/cmsis_gcc.h **** 326:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer 328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). 329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 330:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) 332:Drivers/CMSIS/Include/cmsis_gcc.h **** { 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); 334:Drivers/CMSIS/Include/cmsis_gcc.h **** } 335:Drivers/CMSIS/Include/cmsis_gcc.h **** 336:Drivers/CMSIS/Include/cmsis_gcc.h **** 337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 338:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 342:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) 344:Drivers/CMSIS/Include/cmsis_gcc.h **** { 345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); 346:Drivers/CMSIS/Include/cmsis_gcc.h **** } 347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 348:Drivers/CMSIS/Include/cmsis_gcc.h **** 349:Drivers/CMSIS/Include/cmsis_gcc.h **** 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { 358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 359:Drivers/CMSIS/Include/cmsis_gcc.h **** 360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); 361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 362:Drivers/CMSIS/Include/cmsis_gcc.h **** } 363:Drivers/CMSIS/Include/cmsis_gcc.h **** 364:Drivers/CMSIS/Include/cmsis_gcc.h **** 365:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) 367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. 368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set 369:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) 371:Drivers/CMSIS/Include/cmsis_gcc.h **** { 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); 373:Drivers/CMSIS/Include/cmsis_gcc.h **** } 374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 375:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 76 376:Drivers/CMSIS/Include/cmsis_gcc.h **** 377:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 378:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value 381:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 382:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) 383:Drivers/CMSIS/Include/cmsis_gcc.h **** { 384:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 385:Drivers/CMSIS/Include/cmsis_gcc.h **** 386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); 387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 388:Drivers/CMSIS/Include/cmsis_gcc.h **** } 389:Drivers/CMSIS/Include/cmsis_gcc.h **** 390:Drivers/CMSIS/Include/cmsis_gcc.h **** 391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 392:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value 396:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) 398:Drivers/CMSIS/Include/cmsis_gcc.h **** { 399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 400:Drivers/CMSIS/Include/cmsis_gcc.h **** 401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); 402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 403:Drivers/CMSIS/Include/cmsis_gcc.h **** } 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 405:Drivers/CMSIS/Include/cmsis_gcc.h **** 406:Drivers/CMSIS/Include/cmsis_gcc.h **** 407:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask 409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. 410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 411:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) 413:Drivers/CMSIS/Include/cmsis_gcc.h **** { 414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); 415:Drivers/CMSIS/Include/cmsis_gcc.h **** } 416:Drivers/CMSIS/Include/cmsis_gcc.h **** 417:Drivers/CMSIS/Include/cmsis_gcc.h **** 418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 419:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. 422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 423:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) 425:Drivers/CMSIS/Include/cmsis_gcc.h **** { 426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); 427:Drivers/CMSIS/Include/cmsis_gcc.h **** } 428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 429:Drivers/CMSIS/Include/cmsis_gcc.h **** 430:Drivers/CMSIS/Include/cmsis_gcc.h **** 431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 77 433:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) 434:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ 436:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. 437:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 438:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) 440:Drivers/CMSIS/Include/cmsis_gcc.h **** { 441:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); 442:Drivers/CMSIS/Include/cmsis_gcc.h **** } 443:Drivers/CMSIS/Include/cmsis_gcc.h **** 444:Drivers/CMSIS/Include/cmsis_gcc.h **** 445:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. 448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 449:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) 451:Drivers/CMSIS/Include/cmsis_gcc.h **** { 452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); 453:Drivers/CMSIS/Include/cmsis_gcc.h **** } 454:Drivers/CMSIS/Include/cmsis_gcc.h **** 455:Drivers/CMSIS/Include/cmsis_gcc.h **** 456:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority 458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. 459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value 460:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) 462:Drivers/CMSIS/Include/cmsis_gcc.h **** { 463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 464:Drivers/CMSIS/Include/cmsis_gcc.h **** 465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); 466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 467:Drivers/CMSIS/Include/cmsis_gcc.h **** } 468:Drivers/CMSIS/Include/cmsis_gcc.h **** 469:Drivers/CMSIS/Include/cmsis_gcc.h **** 470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 471:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) 473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. 474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value 475:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) 477:Drivers/CMSIS/Include/cmsis_gcc.h **** { 478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 479:Drivers/CMSIS/Include/cmsis_gcc.h **** 480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); 481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } 483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 484:Drivers/CMSIS/Include/cmsis_gcc.h **** 485:Drivers/CMSIS/Include/cmsis_gcc.h **** 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 78 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } 495:Drivers/CMSIS/Include/cmsis_gcc.h **** 496:Drivers/CMSIS/Include/cmsis_gcc.h **** 497:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 498:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) 500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. 501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 502:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) 504:Drivers/CMSIS/Include/cmsis_gcc.h **** { 505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); 506:Drivers/CMSIS/Include/cmsis_gcc.h **** } 507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 508:Drivers/CMSIS/Include/cmsis_gcc.h **** 509:Drivers/CMSIS/Include/cmsis_gcc.h **** 510:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition 512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable 513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 515:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) 517:Drivers/CMSIS/Include/cmsis_gcc.h **** { 518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); 519:Drivers/CMSIS/Include/cmsis_gcc.h **** } 520:Drivers/CMSIS/Include/cmsis_gcc.h **** 521:Drivers/CMSIS/Include/cmsis_gcc.h **** 522:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 526:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) 528:Drivers/CMSIS/Include/cmsis_gcc.h **** { 529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 530:Drivers/CMSIS/Include/cmsis_gcc.h **** 531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); 532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 533:Drivers/CMSIS/Include/cmsis_gcc.h **** } 534:Drivers/CMSIS/Include/cmsis_gcc.h **** 535:Drivers/CMSIS/Include/cmsis_gcc.h **** 536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 537:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 541:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) 543:Drivers/CMSIS/Include/cmsis_gcc.h **** { 544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 545:Drivers/CMSIS/Include/cmsis_gcc.h **** 546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 79 547:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 548:Drivers/CMSIS/Include/cmsis_gcc.h **** } 549:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 550:Drivers/CMSIS/Include/cmsis_gcc.h **** 551:Drivers/CMSIS/Include/cmsis_gcc.h **** 552:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 553:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set 556:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) 558:Drivers/CMSIS/Include/cmsis_gcc.h **** { 559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); 560:Drivers/CMSIS/Include/cmsis_gcc.h **** } 561:Drivers/CMSIS/Include/cmsis_gcc.h **** 562:Drivers/CMSIS/Include/cmsis_gcc.h **** 563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 564:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set 568:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) 570:Drivers/CMSIS/Include/cmsis_gcc.h **** { 571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); 572:Drivers/CMSIS/Include/cmsis_gcc.h **** } 573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 574:Drivers/CMSIS/Include/cmsis_gcc.h **** 575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ 578:Drivers/CMSIS/Include/cmsis_gcc.h **** 579:Drivers/CMSIS/Include/cmsis_gcc.h **** 580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) 582:Drivers/CMSIS/Include/cmsis_gcc.h **** 583:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit 585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 588:Drivers/CMSIS/Include/cmsis_gcc.h **** 589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value 591:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) 593:Drivers/CMSIS/Include/cmsis_gcc.h **** { 594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); 601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 603:Drivers/CMSIS/Include/cmsis_gcc.h **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 80 604:Drivers/CMSIS/Include/cmsis_gcc.h **** 605:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) 606:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) 608:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 609:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. 610:Drivers/CMSIS/Include/cmsis_gcc.h **** 611:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in 612:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value 613:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) 615:Drivers/CMSIS/Include/cmsis_gcc.h **** { 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); 622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 624:Drivers/CMSIS/Include/cmsis_gcc.h **** } 625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 626:Drivers/CMSIS/Include/cmsis_gcc.h **** 627:Drivers/CMSIS/Include/cmsis_gcc.h **** 628:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit 630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure 632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 633:Drivers/CMSIS/Include/cmsis_gcc.h **** 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). 635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 636:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) 638:Drivers/CMSIS/Include/cmsis_gcc.h **** { 639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; 643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); 645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 646:Drivers/CMSIS/Include/cmsis_gcc.h **** } 647:Drivers/CMSIS/Include/cmsis_gcc.h **** 648:Drivers/CMSIS/Include/cmsis_gcc.h **** 649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 654:Drivers/CMSIS/Include/cmsis_gcc.h **** 655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 657:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) 659:Drivers/CMSIS/Include/cmsis_gcc.h **** { 660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 81 661:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; 663:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 664:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 666:Drivers/CMSIS/Include/cmsis_gcc.h **** } 667:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 668:Drivers/CMSIS/Include/cmsis_gcc.h **** 669:Drivers/CMSIS/Include/cmsis_gcc.h **** 670:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit 672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 675:Drivers/CMSIS/Include/cmsis_gcc.h **** 676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). 677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 678:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) 680:Drivers/CMSIS/Include/cmsis_gcc.h **** { 681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); 688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 690:Drivers/CMSIS/Include/cmsis_gcc.h **** } 691:Drivers/CMSIS/Include/cmsis_gcc.h **** 692:Drivers/CMSIS/Include/cmsis_gcc.h **** 693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 694:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) 696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. 698:Drivers/CMSIS/Include/cmsis_gcc.h **** 699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec 700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 701:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) 703:Drivers/CMSIS/Include/cmsis_gcc.h **** { 704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); 710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 712:Drivers/CMSIS/Include/cmsis_gcc.h **** } 713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 714:Drivers/CMSIS/Include/cmsis_gcc.h **** 715:Drivers/CMSIS/Include/cmsis_gcc.h **** 716:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 82 718:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure 720:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 721:Drivers/CMSIS/Include/cmsis_gcc.h **** 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); 733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 734:Drivers/CMSIS/Include/cmsis_gcc.h **** } 735:Drivers/CMSIS/Include/cmsis_gcc.h **** 736:Drivers/CMSIS/Include/cmsis_gcc.h **** 737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 738:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 742:Drivers/CMSIS/Include/cmsis_gcc.h **** 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); 753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 754:Drivers/CMSIS/Include/cmsis_gcc.h **** } 755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 756:Drivers/CMSIS/Include/cmsis_gcc.h **** 757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ 759:Drivers/CMSIS/Include/cmsis_gcc.h **** 760:Drivers/CMSIS/Include/cmsis_gcc.h **** 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR 763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. 764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value 765:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) 767:Drivers/CMSIS/Include/cmsis_gcc.h **** { 768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) 771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 83 775:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 776:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 777:Drivers/CMSIS/Include/cmsis_gcc.h **** 778:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); 779:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 781:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 782:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); 783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 784:Drivers/CMSIS/Include/cmsis_gcc.h **** } 785:Drivers/CMSIS/Include/cmsis_gcc.h **** 786:Drivers/CMSIS/Include/cmsis_gcc.h **** 787:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) 797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed 798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); 801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); 803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; 806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 807:Drivers/CMSIS/Include/cmsis_gcc.h **** } 808:Drivers/CMSIS/Include/cmsis_gcc.h **** 809:Drivers/CMSIS/Include/cmsis_gcc.h **** 810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ 811:Drivers/CMSIS/Include/cmsis_gcc.h **** 812:Drivers/CMSIS/Include/cmsis_gcc.h **** 813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ 814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface 815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions 816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 817:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 818:Drivers/CMSIS/Include/cmsis_gcc.h **** 819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. 820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" 821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) 823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) 825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) 826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) 828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) 829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) 830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 831:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 84 832:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 833:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation 834:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. 835:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 836:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") 837:Drivers/CMSIS/Include/cmsis_gcc.h **** 838:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 839:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt 840:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o 841:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") 843:Drivers/CMSIS/Include/cmsis_gcc.h **** 844:Drivers/CMSIS/Include/cmsis_gcc.h **** 845:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event 847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter 848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. 849:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") 851:Drivers/CMSIS/Include/cmsis_gcc.h **** 852:Drivers/CMSIS/Include/cmsis_gcc.h **** 853:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. 856:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") 858:Drivers/CMSIS/Include/cmsis_gcc.h **** 859:Drivers/CMSIS/Include/cmsis_gcc.h **** 860:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier 862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, 863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, 864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. 865:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) 867:Drivers/CMSIS/Include/cmsis_gcc.h **** { 868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); 869:Drivers/CMSIS/Include/cmsis_gcc.h **** } 870:Drivers/CMSIS/Include/cmsis_gcc.h **** 871:Drivers/CMSIS/Include/cmsis_gcc.h **** 872:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier 874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. 875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. 876:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) 878:Drivers/CMSIS/Include/cmsis_gcc.h **** { 879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); 880:Drivers/CMSIS/Include/cmsis_gcc.h **** } 881:Drivers/CMSIS/Include/cmsis_gcc.h **** 882:Drivers/CMSIS/Include/cmsis_gcc.h **** 883:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier 885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before 886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. 887:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 85 889:Drivers/CMSIS/Include/cmsis_gcc.h **** { 890:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory"); 891:Drivers/CMSIS/Include/cmsis_gcc.h **** } 892:Drivers/CMSIS/Include/cmsis_gcc.h **** 893:Drivers/CMSIS/Include/cmsis_gcc.h **** 894:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 895:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit) 896:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785 897:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 899:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) 901:Drivers/CMSIS/Include/cmsis_gcc.h **** { 902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) 903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); 904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 906:Drivers/CMSIS/Include/cmsis_gcc.h **** 907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 910:Drivers/CMSIS/Include/cmsis_gcc.h **** } 911:Drivers/CMSIS/Include/cmsis_gcc.h **** 912:Drivers/CMSIS/Include/cmsis_gcc.h **** 913:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 918:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) 920:Drivers/CMSIS/Include/cmsis_gcc.h **** { 921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 922:Drivers/CMSIS/Include/cmsis_gcc.h **** 923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 925:Drivers/CMSIS/Include/cmsis_gcc.h **** } 926:Drivers/CMSIS/Include/cmsis_gcc.h **** 927:Drivers/CMSIS/Include/cmsis_gcc.h **** 928:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 930:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam 931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 933:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) 935:Drivers/CMSIS/Include/cmsis_gcc.h **** { 936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) 937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); 938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; 940:Drivers/CMSIS/Include/cmsis_gcc.h **** 941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 944:Drivers/CMSIS/Include/cmsis_gcc.h **** } 945:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 86 946:Drivers/CMSIS/Include/cmsis_gcc.h **** 947:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 948:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit) 949:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v 950:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value 953:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 954:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) 955:Drivers/CMSIS/Include/cmsis_gcc.h **** { 956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; 957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) 958:Drivers/CMSIS/Include/cmsis_gcc.h **** { 959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; 960:Drivers/CMSIS/Include/cmsis_gcc.h **** } 961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); 962:Drivers/CMSIS/Include/cmsis_gcc.h **** } 963:Drivers/CMSIS/Include/cmsis_gcc.h **** 964:Drivers/CMSIS/Include/cmsis_gcc.h **** 965:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint 967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. 968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula 969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. 970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break 971:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) 973:Drivers/CMSIS/Include/cmsis_gcc.h **** 974:Drivers/CMSIS/Include/cmsis_gcc.h **** 975:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value 977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. 978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 980:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) 982:Drivers/CMSIS/Include/cmsis_gcc.h **** { 983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 984:Drivers/CMSIS/Include/cmsis_gcc.h **** 985:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 986:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 987:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) 988:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); 2450 .loc 2 988 4 2451 0042 3B69 ldr r3, [r7, #16] 2452 .syntax unified 2453 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2454 0044 93FAA3F3 rbit r3, r3 2455 @ 0 "" 2 2456 .thumb 2457 .syntax unified 2458 0048 FB60 str r3, [r7, #12] 989:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 990:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ 991:Drivers/CMSIS/Include/cmsis_gcc.h **** 992:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */ 993:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U) ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 87 994:Drivers/CMSIS/Include/cmsis_gcc.h **** { 995:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U; 996:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U; 997:Drivers/CMSIS/Include/cmsis_gcc.h **** s--; 998:Drivers/CMSIS/Include/cmsis_gcc.h **** } 999:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */ 1000:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 1001:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 2459 .loc 2 1001 10 2460 004a FB68 ldr r3, [r7, #12] 2461 .LBE5: 2462 .LBE4: 1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Select the Tx mailbox */ 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** transmitmailbox = POSITION_VAL(TxMailbox); 2463 .loc 1 1443 23 2464 004c B3FA83F3 clz r3, r3 2465 0050 DBB2 uxtb r3, r3 2466 .loc 1 1443 21 2467 0052 7B61 str r3, [r7, #20] 1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get timestamp */ 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** timestamp = (hcan->Instance->sTxMailBox[transmitmailbox].TDTR & CAN_TDT0R_TIME) >> CAN_TDT0R_TI 2468 .loc 1 1446 22 2469 0054 7B68 ldr r3, [r7, #4] 2470 0056 1A68 ldr r2, [r3] 2471 .loc 1 1446 61 2472 0058 7B69 ldr r3, [r7, #20] 2473 005a 1833 adds r3, r3, #24 2474 005c 1B01 lsls r3, r3, #4 2475 005e 1344 add r3, r3, r2 2476 0060 0433 adds r3, r3, #4 2477 0062 1B68 ldr r3, [r3] 2478 .loc 1 1446 85 2479 0064 1B0C lsrs r3, r3, #16 2480 .loc 1 1446 15 2481 0066 9BB2 uxth r3, r3 2482 0068 FB61 str r3, [r7, #28] 2483 .L136: 1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return the timestamp */ 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return timestamp; 2484 .loc 1 1450 10 2485 006a FB69 ldr r3, [r7, #28] 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2486 .loc 1 1451 1 2487 006c 1846 mov r0, r3 2488 006e 2037 adds r7, r7, #32 2489 .LCFI79: 2490 .cfi_def_cfa_offset 8 2491 0070 BD46 mov sp, r7 2492 .LCFI80: 2493 .cfi_def_cfa_register 13 2494 @ sp needed 2495 0072 80BD pop {r7, pc} ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 88 2496 .L140: 2497 .align 2 2498 .L139: 2499 0074 00000000 .word .LC0 2500 .cfi_endproc 2501 .LFE144: 2503 .section .text.HAL_CAN_GetRxMessage,"ax",%progbits 2504 .align 1 2505 .global HAL_CAN_GetRxMessage 2506 .syntax unified 2507 .thumb 2508 .thumb_func 2510 HAL_CAN_GetRxMessage: 2511 .LFB145: 1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Get an CAN frame from the Rx FIFO zone into the message RAM. 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param RxFifo Fifo number of the received message to be read. 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number. 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param pHeader pointer to a CAN_RxHeaderTypeDef structure where the header 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * of the Rx frame will be stored. 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param aData array where the payload of the Rx frame will be stored. 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_GetRxMessage(CAN_HandleTypeDef *hcan, uint32_t RxFifo, 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CAN_RxHeaderTypeDef *pHeader, uint8_t aData[]) 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2512 .loc 1 1466 1 2513 .cfi_startproc 2514 @ args = 0, pretend = 0, frame = 24 2515 @ frame_needed = 1, uses_anonymous_args = 0 2516 0000 80B5 push {r7, lr} 2517 .LCFI81: 2518 .cfi_def_cfa_offset 8 2519 .cfi_offset 7, -8 2520 .cfi_offset 14, -4 2521 0002 86B0 sub sp, sp, #24 2522 .LCFI82: 2523 .cfi_def_cfa_offset 32 2524 0004 00AF add r7, sp, #0 2525 .LCFI83: 2526 .cfi_def_cfa_register 7 2527 0006 F860 str r0, [r7, #12] 2528 0008 B960 str r1, [r7, #8] 2529 000a 7A60 str r2, [r7, #4] 2530 000c 3B60 str r3, [r7] 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2531 .loc 1 1467 24 2532 000e FB68 ldr r3, [r7, #12] 2533 0010 93F82030 ldrb r3, [r3, #32] 2534 0014 FB75 strb r3, [r7, #23] 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo)); 2535 .loc 1 1469 3 2536 0016 BB68 ldr r3, [r7, #8] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 89 2537 0018 002B cmp r3, #0 2538 001a 07D0 beq .L142 2539 .loc 1 1469 3 is_stmt 0 discriminator 1 2540 001c BB68 ldr r3, [r7, #8] 2541 001e 012B cmp r3, #1 2542 0020 04D0 beq .L142 2543 .loc 1 1469 3 discriminator 2 2544 0022 40F2BD51 movw r1, #1469 2545 0026 8C48 ldr r0, .L154 2546 0028 FFF7FEFF bl assert_failed 2547 .L142: 1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2548 .loc 1 1471 6 is_stmt 1 2549 002c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2550 002e 012B cmp r3, #1 2551 0030 03D0 beq .L143 2552 .loc 1 1471 38 discriminator 1 2553 0032 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2554 0034 022B cmp r3, #2 2555 0036 40F00381 bne .L144 2556 .L143: 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the Rx FIFO */ 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */ 2557 .loc 1 1475 8 2558 003a BB68 ldr r3, [r7, #8] 2559 003c 002B cmp r3, #0 2560 003e 0ED1 bne .L145 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check that the Rx FIFO 0 is not empty */ 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) == 0U) 2561 .loc 1 1478 16 2562 0040 FB68 ldr r3, [r7, #12] 2563 0042 1B68 ldr r3, [r3] 2564 .loc 1 1478 26 2565 0044 DB68 ldr r3, [r3, #12] 2566 .loc 1 1478 33 2567 0046 03F00303 and r3, r3, #3 2568 .loc 1 1478 10 2569 004a 002B cmp r3, #0 2570 004c 16D1 bne .L146 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; 2571 .loc 1 1481 25 2572 004e FB68 ldr r3, [r7, #12] 2573 0050 5B6A ldr r3, [r3, #36] 2574 0052 43F40012 orr r2, r3, #2097152 2575 0056 FB68 ldr r3, [r7, #12] 2576 0058 5A62 str r2, [r3, #36] 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 2577 .loc 1 1483 16 2578 005a 0123 movs r3, #1 2579 005c F7E0 b .L147 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 90 2580 .L145: 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */ 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check that the Rx FIFO 1 is not empty */ 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) == 0U) 2581 .loc 1 1489 16 2582 005e FB68 ldr r3, [r7, #12] 2583 0060 1B68 ldr r3, [r3] 2584 .loc 1 1489 26 2585 0062 1B69 ldr r3, [r3, #16] 2586 .loc 1 1489 33 2587 0064 03F00303 and r3, r3, #3 2588 .loc 1 1489 10 2589 0068 002B cmp r3, #0 2590 006a 07D1 bne .L146 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; 2591 .loc 1 1492 25 2592 006c FB68 ldr r3, [r7, #12] 2593 006e 5B6A ldr r3, [r3, #36] 2594 0070 43F40012 orr r2, r3, #2097152 2595 0074 FB68 ldr r3, [r7, #12] 2596 0076 5A62 str r2, [r3, #36] 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 2597 .loc 1 1494 16 2598 0078 0123 movs r3, #1 2599 007a E8E0 b .L147 2600 .L146: 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get the header */ 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE = CAN_RI0R_IDE & hcan->Instance->sFIFOMailBox[RxFifo].RIR; 2601 .loc 1 1499 39 2602 007c FB68 ldr r3, [r7, #12] 2603 007e 1A68 ldr r2, [r3] 2604 .loc 1 1499 71 2605 0080 BB68 ldr r3, [r7, #8] 2606 0082 1B33 adds r3, r3, #27 2607 0084 1B01 lsls r3, r3, #4 2608 0086 1344 add r3, r3, r2 2609 0088 1B68 ldr r3, [r3] 2610 .loc 1 1499 33 2611 008a 03F00402 and r2, r3, #4 2612 .loc 1 1499 18 2613 008e 7B68 ldr r3, [r7, #4] 2614 0090 9A60 str r2, [r3, #8] 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 2615 .loc 1 1500 16 2616 0092 7B68 ldr r3, [r7, #4] 2617 0094 9B68 ldr r3, [r3, #8] 2618 .loc 1 1500 8 2619 0096 002B cmp r3, #0 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 91 2620 0098 0CD1 bne .L148 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->StdId = (CAN_RI0R_STID & hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_TI0R_STID_ 2621 .loc 1 1502 45 2622 009a FB68 ldr r3, [r7, #12] 2623 009c 1A68 ldr r2, [r3] 2624 .loc 1 1502 77 2625 009e BB68 ldr r3, [r7, #8] 2626 00a0 1B33 adds r3, r3, #27 2627 00a2 1B01 lsls r3, r3, #4 2628 00a4 1344 add r3, r3, r2 2629 00a6 1B68 ldr r3, [r3] 2630 .loc 1 1502 83 2631 00a8 5B0D lsrs r3, r3, #21 2632 00aa C3F30A02 ubfx r2, r3, #0, #11 2633 .loc 1 1502 22 2634 00ae 7B68 ldr r3, [r7, #4] 2635 00b0 1A60 str r2, [r3] 2636 00b2 0BE0 b .L149 2637 .L148: 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->ExtId = ((CAN_RI0R_EXID | CAN_RI0R_STID) & 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_RI0R_EXID_Pos; 2638 .loc 1 1507 29 2639 00b4 FB68 ldr r3, [r7, #12] 2640 00b6 1A68 ldr r2, [r3] 2641 .loc 1 1507 61 2642 00b8 BB68 ldr r3, [r7, #8] 2643 00ba 1B33 adds r3, r3, #27 2644 00bc 1B01 lsls r3, r3, #4 2645 00be 1344 add r3, r3, r2 2646 00c0 1B68 ldr r3, [r3] 2647 .loc 1 1507 67 2648 00c2 DB08 lsrs r3, r3, #3 2649 00c4 23F06042 bic r2, r3, #-536870912 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_RI0R_EXID_Pos; 2650 .loc 1 1506 22 2651 00c8 7B68 ldr r3, [r7, #4] 2652 00ca 5A60 str r2, [r3, #4] 2653 .L149: 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR = (CAN_RI0R_RTR & hcan->Instance->sFIFOMailBox[RxFifo].RIR); 2654 .loc 1 1509 40 2655 00cc FB68 ldr r3, [r7, #12] 2656 00ce 1A68 ldr r2, [r3] 2657 .loc 1 1509 72 2658 00d0 BB68 ldr r3, [r7, #8] 2659 00d2 1B33 adds r3, r3, #27 2660 00d4 1B01 lsls r3, r3, #4 2661 00d6 1344 add r3, r3, r2 2662 00d8 1B68 ldr r3, [r3] 2663 .loc 1 1509 34 2664 00da 03F00202 and r2, r3, #2 2665 .loc 1 1509 18 2666 00de 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 92 2667 00e0 DA60 str r2, [r3, #12] 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos) >= 8U) 2668 .loc 1 1510 31 2669 00e2 FB68 ldr r3, [r7, #12] 2670 00e4 1A68 ldr r2, [r3] 2671 .loc 1 1510 63 2672 00e6 BB68 ldr r3, [r7, #8] 2673 00e8 1B33 adds r3, r3, #27 2674 00ea 1B01 lsls r3, r3, #4 2675 00ec 1344 add r3, r3, r2 2676 00ee 0433 adds r3, r3, #4 2677 00f0 1B68 ldr r3, [r3] 2678 .loc 1 1510 92 2679 00f2 03F00803 and r3, r3, #8 2680 .loc 1 1510 8 2681 00f6 002B cmp r3, #0 2682 00f8 03D0 beq .L150 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Truncate DLC to 8 if received field is over range */ 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->DLC = 8U; 2683 .loc 1 1513 20 2684 00fa 7B68 ldr r3, [r7, #4] 2685 00fc 0822 movs r2, #8 2686 00fe 1A61 str r2, [r3, #16] 2687 0100 0BE0 b .L151 2688 .L150: 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->DLC = (CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_P 2689 .loc 1 1517 43 2690 0102 FB68 ldr r3, [r7, #12] 2691 0104 1A68 ldr r2, [r3] 2692 .loc 1 1517 75 2693 0106 BB68 ldr r3, [r7, #8] 2694 0108 1B33 adds r3, r3, #27 2695 010a 1B01 lsls r3, r3, #4 2696 010c 1344 add r3, r3, r2 2697 010e 0433 adds r3, r3, #4 2698 0110 1B68 ldr r3, [r3] 2699 .loc 1 1517 82 2700 0112 03F00F02 and r2, r3, #15 2701 .loc 1 1517 20 2702 0116 7B68 ldr r3, [r7, #4] 2703 0118 1A61 str r2, [r3, #16] 2704 .L151: 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->FilterMatchIndex = (CAN_RDT0R_FMI & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_ 2705 .loc 1 1519 54 2706 011a FB68 ldr r3, [r7, #12] 2707 011c 1A68 ldr r2, [r3] 2708 .loc 1 1519 86 2709 011e BB68 ldr r3, [r7, #8] 2710 0120 1B33 adds r3, r3, #27 2711 0122 1B01 lsls r3, r3, #4 2712 0124 1344 add r3, r3, r2 2713 0126 0433 adds r3, r3, #4 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 93 2714 0128 1B68 ldr r3, [r3] 2715 .loc 1 1519 93 2716 012a 1B0A lsrs r3, r3, #8 2717 012c DAB2 uxtb r2, r3 2718 .loc 1 1519 31 2719 012e 7B68 ldr r3, [r7, #4] 2720 0130 9A61 str r2, [r3, #24] 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_ 2721 .loc 1 1520 48 2722 0132 FB68 ldr r3, [r7, #12] 2723 0134 1A68 ldr r2, [r3] 2724 .loc 1 1520 80 2725 0136 BB68 ldr r3, [r7, #8] 2726 0138 1B33 adds r3, r3, #27 2727 013a 1B01 lsls r3, r3, #4 2728 013c 1344 add r3, r3, r2 2729 013e 0433 adds r3, r3, #4 2730 0140 1B68 ldr r3, [r3] 2731 .loc 1 1520 87 2732 0142 1B0C lsrs r3, r3, #16 2733 0144 9AB2 uxth r2, r3 2734 .loc 1 1520 24 2735 0146 7B68 ldr r3, [r7, #4] 2736 0148 5A61 str r2, [r3, #20] 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get the data */ 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[0] = (uint8_t)((CAN_RDL0R_DATA0 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2737 .loc 1 1523 49 2738 014a FB68 ldr r3, [r7, #12] 2739 014c 1A68 ldr r2, [r3] 2740 .loc 1 1523 81 2741 014e BB68 ldr r3, [r7, #8] 2742 0150 1B01 lsls r3, r3, #4 2743 0152 1344 add r3, r3, r2 2744 0154 03F5DC73 add r3, r3, #440 2745 0158 1B68 ldr r3, [r3] 2746 .loc 1 1523 16 2747 015a DAB2 uxtb r2, r3 2748 .loc 1 1523 14 2749 015c 3B68 ldr r3, [r7] 2750 015e 1A70 strb r2, [r3] 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2751 .loc 1 1524 49 2752 0160 FB68 ldr r3, [r7, #12] 2753 0162 1A68 ldr r2, [r3] 2754 .loc 1 1524 81 2755 0164 BB68 ldr r3, [r7, #8] 2756 0166 1B01 lsls r3, r3, #4 2757 0168 1344 add r3, r3, r2 2758 016a 03F5DC73 add r3, r3, #440 2759 016e 1B68 ldr r3, [r3] 2760 .loc 1 1524 88 2761 0170 1A0A lsrs r2, r3, #8 2762 .loc 1 1524 10 2763 0172 3B68 ldr r3, [r7] 2764 0174 0133 adds r3, r3, #1 2765 .loc 1 1524 16 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 94 2766 0176 D2B2 uxtb r2, r2 2767 .loc 1 1524 14 2768 0178 1A70 strb r2, [r3] 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2769 .loc 1 1525 49 2770 017a FB68 ldr r3, [r7, #12] 2771 017c 1A68 ldr r2, [r3] 2772 .loc 1 1525 81 2773 017e BB68 ldr r3, [r7, #8] 2774 0180 1B01 lsls r3, r3, #4 2775 0182 1344 add r3, r3, r2 2776 0184 03F5DC73 add r3, r3, #440 2777 0188 1B68 ldr r3, [r3] 2778 .loc 1 1525 88 2779 018a 1A0C lsrs r2, r3, #16 2780 .loc 1 1525 10 2781 018c 3B68 ldr r3, [r7] 2782 018e 0233 adds r3, r3, #2 2783 .loc 1 1525 16 2784 0190 D2B2 uxtb r2, r2 2785 .loc 1 1525 14 2786 0192 1A70 strb r2, [r3] 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2787 .loc 1 1526 49 2788 0194 FB68 ldr r3, [r7, #12] 2789 0196 1A68 ldr r2, [r3] 2790 .loc 1 1526 81 2791 0198 BB68 ldr r3, [r7, #8] 2792 019a 1B01 lsls r3, r3, #4 2793 019c 1344 add r3, r3, r2 2794 019e 03F5DC73 add r3, r3, #440 2795 01a2 1B68 ldr r3, [r3] 2796 .loc 1 1526 88 2797 01a4 1A0E lsrs r2, r3, #24 2798 .loc 1 1526 10 2799 01a6 3B68 ldr r3, [r7] 2800 01a8 0333 adds r3, r3, #3 2801 .loc 1 1526 16 2802 01aa D2B2 uxtb r2, r2 2803 .loc 1 1526 14 2804 01ac 1A70 strb r2, [r3] 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2805 .loc 1 1527 49 2806 01ae FB68 ldr r3, [r7, #12] 2807 01b0 1A68 ldr r2, [r3] 2808 .loc 1 1527 81 2809 01b2 BB68 ldr r3, [r7, #8] 2810 01b4 1B01 lsls r3, r3, #4 2811 01b6 1344 add r3, r3, r2 2812 01b8 03F5DE73 add r3, r3, #444 2813 01bc 1A68 ldr r2, [r3] 2814 .loc 1 1527 10 2815 01be 3B68 ldr r3, [r7] 2816 01c0 0433 adds r3, r3, #4 2817 .loc 1 1527 16 2818 01c2 D2B2 uxtb r2, r2 2819 .loc 1 1527 14 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 95 2820 01c4 1A70 strb r2, [r3] 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2821 .loc 1 1528 49 2822 01c6 FB68 ldr r3, [r7, #12] 2823 01c8 1A68 ldr r2, [r3] 2824 .loc 1 1528 81 2825 01ca BB68 ldr r3, [r7, #8] 2826 01cc 1B01 lsls r3, r3, #4 2827 01ce 1344 add r3, r3, r2 2828 01d0 03F5DE73 add r3, r3, #444 2829 01d4 1B68 ldr r3, [r3] 2830 .loc 1 1528 88 2831 01d6 1A0A lsrs r2, r3, #8 2832 .loc 1 1528 10 2833 01d8 3B68 ldr r3, [r7] 2834 01da 0533 adds r3, r3, #5 2835 .loc 1 1528 16 2836 01dc D2B2 uxtb r2, r2 2837 .loc 1 1528 14 2838 01de 1A70 strb r2, [r3] 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2839 .loc 1 1529 49 2840 01e0 FB68 ldr r3, [r7, #12] 2841 01e2 1A68 ldr r2, [r3] 2842 .loc 1 1529 81 2843 01e4 BB68 ldr r3, [r7, #8] 2844 01e6 1B01 lsls r3, r3, #4 2845 01e8 1344 add r3, r3, r2 2846 01ea 03F5DE73 add r3, r3, #444 2847 01ee 1B68 ldr r3, [r3] 2848 .loc 1 1529 88 2849 01f0 1A0C lsrs r2, r3, #16 2850 .loc 1 1529 10 2851 01f2 3B68 ldr r3, [r7] 2852 01f4 0633 adds r3, r3, #6 2853 .loc 1 1529 16 2854 01f6 D2B2 uxtb r2, r2 2855 .loc 1 1529 14 2856 01f8 1A70 strb r2, [r3] 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2857 .loc 1 1530 49 2858 01fa FB68 ldr r3, [r7, #12] 2859 01fc 1A68 ldr r2, [r3] 2860 .loc 1 1530 81 2861 01fe BB68 ldr r3, [r7, #8] 2862 0200 1B01 lsls r3, r3, #4 2863 0202 1344 add r3, r3, r2 2864 0204 03F5DE73 add r3, r3, #444 2865 0208 1B68 ldr r3, [r3] 2866 .loc 1 1530 88 2867 020a 1A0E lsrs r2, r3, #24 2868 .loc 1 1530 10 2869 020c 3B68 ldr r3, [r7] 2870 020e 0733 adds r3, r3, #7 2871 .loc 1 1530 16 2872 0210 D2B2 uxtb r2, r2 2873 .loc 1 1530 14 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 96 2874 0212 1A70 strb r2, [r3] 1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Release the FIFO */ 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */ 2875 .loc 1 1533 8 2876 0214 BB68 ldr r3, [r7, #8] 2877 0216 002B cmp r3, #0 2878 0218 08D1 bne .L152 1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Release RX FIFO 0 */ 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->RF0R, CAN_RF0R_RFOM0); 2879 .loc 1 1536 7 2880 021a FB68 ldr r3, [r7, #12] 2881 021c 1B68 ldr r3, [r3] 2882 021e DA68 ldr r2, [r3, #12] 2883 0220 FB68 ldr r3, [r7, #12] 2884 0222 1B68 ldr r3, [r3] 2885 0224 42F02002 orr r2, r2, #32 2886 0228 DA60 str r2, [r3, #12] 2887 022a 07E0 b .L153 2888 .L152: 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */ 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Release RX FIFO 1 */ 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->RF1R, CAN_RF1R_RFOM1); 2889 .loc 1 1541 7 2890 022c FB68 ldr r3, [r7, #12] 2891 022e 1B68 ldr r3, [r3] 2892 0230 1A69 ldr r2, [r3, #16] 2893 0232 FB68 ldr r3, [r7, #12] 2894 0234 1B68 ldr r3, [r3] 2895 0236 42F02002 orr r2, r2, #32 2896 023a 1A61 str r2, [r3, #16] 2897 .L153: 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 2898 .loc 1 1545 12 2899 023c 0023 movs r3, #0 2900 023e 06E0 b .L147 2901 .L144: 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 2902 .loc 1 1550 21 2903 0240 FB68 ldr r3, [r7, #12] 2904 0242 5B6A ldr r3, [r3, #36] 2905 0244 43F48022 orr r2, r3, #262144 2906 0248 FB68 ldr r3, [r7, #12] 2907 024a 5A62 str r2, [r3, #36] 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 2908 .loc 1 1552 12 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 97 2909 024c 0123 movs r3, #1 2910 .L147: 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2911 .loc 1 1554 1 2912 024e 1846 mov r0, r3 2913 0250 1837 adds r7, r7, #24 2914 .LCFI84: 2915 .cfi_def_cfa_offset 8 2916 0252 BD46 mov sp, r7 2917 .LCFI85: 2918 .cfi_def_cfa_register 13 2919 @ sp needed 2920 0254 80BD pop {r7, pc} 2921 .L155: 2922 0256 00BF .align 2 2923 .L154: 2924 0258 00000000 .word .LC0 2925 .cfi_endproc 2926 .LFE145: 2928 .section .text.HAL_CAN_GetRxFifoFillLevel,"ax",%progbits 2929 .align 1 2930 .global HAL_CAN_GetRxFifoFillLevel 2931 .syntax unified 2932 .thumb 2933 .thumb_func 2935 HAL_CAN_GetRxFifoFillLevel: 2936 .LFB146: 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return Rx FIFO fill level. 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param RxFifo Rx FIFO. 1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number. 1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Number of messages available in Rx FIFO. 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_GetRxFifoFillLevel(const CAN_HandleTypeDef *hcan, uint32_t RxFifo) 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2937 .loc 1 1565 1 2938 .cfi_startproc 2939 @ args = 0, pretend = 0, frame = 16 2940 @ frame_needed = 1, uses_anonymous_args = 0 2941 0000 80B5 push {r7, lr} 2942 .LCFI86: 2943 .cfi_def_cfa_offset 8 2944 .cfi_offset 7, -8 2945 .cfi_offset 14, -4 2946 0002 84B0 sub sp, sp, #16 2947 .LCFI87: 2948 .cfi_def_cfa_offset 24 2949 0004 00AF add r7, sp, #0 2950 .LCFI88: 2951 .cfi_def_cfa_register 7 2952 0006 7860 str r0, [r7, #4] 2953 0008 3960 str r1, [r7] 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filllevel = 0U; ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 98 2954 .loc 1 1566 12 2955 000a 0023 movs r3, #0 2956 000c FB60 str r3, [r7, #12] 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2957 .loc 1 1567 24 2958 000e 7B68 ldr r3, [r7, #4] 2959 0010 93F82030 ldrb r3, [r3, #32] 2960 0014 FB72 strb r3, [r7, #11] 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */ 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo)); 2961 .loc 1 1570 3 2962 0016 3B68 ldr r3, [r7] 2963 0018 002B cmp r3, #0 2964 001a 07D0 beq .L157 2965 .loc 1 1570 3 is_stmt 0 discriminator 1 2966 001c 3B68 ldr r3, [r7] 2967 001e 012B cmp r3, #1 2968 0020 04D0 beq .L157 2969 .loc 1 1570 3 discriminator 2 2970 0022 40F22261 movw r1, #1570 2971 0026 0F48 ldr r0, .L162 2972 0028 FFF7FEFF bl assert_failed 2973 .L157: 1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2974 .loc 1 1572 6 is_stmt 1 2975 002c FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 2976 002e 012B cmp r3, #1 2977 0030 02D0 beq .L158 2978 .loc 1 1572 38 discriminator 1 2979 0032 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 2980 0034 022B cmp r3, #2 2981 0036 0FD1 bne .L159 2982 .L158: 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) 2983 .loc 1 1575 8 2984 0038 3B68 ldr r3, [r7] 2985 003a 002B cmp r3, #0 2986 003c 06D1 bne .L160 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** filllevel = hcan->Instance->RF0R & CAN_RF0R_FMP0; 2987 .loc 1 1577 23 2988 003e 7B68 ldr r3, [r7, #4] 2989 0040 1B68 ldr r3, [r3] 2990 .loc 1 1577 33 2991 0042 DB68 ldr r3, [r3, #12] 2992 .loc 1 1577 17 2993 0044 03F00303 and r3, r3, #3 2994 0048 FB60 str r3, [r7, #12] 2995 004a 05E0 b .L159 2996 .L160: 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else /* RxFifo == CAN_RX_FIFO1 */ 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 99 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** filllevel = hcan->Instance->RF1R & CAN_RF1R_FMP1; 2997 .loc 1 1581 23 2998 004c 7B68 ldr r3, [r7, #4] 2999 004e 1B68 ldr r3, [r3] 3000 .loc 1 1581 33 3001 0050 1B69 ldr r3, [r3, #16] 3002 .loc 1 1581 17 3003 0052 03F00303 and r3, r3, #3 3004 0056 FB60 str r3, [r7, #12] 3005 .L159: 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return Rx FIFO fill level */ 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return filllevel; 3006 .loc 1 1586 10 3007 0058 FB68 ldr r3, [r7, #12] 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3008 .loc 1 1587 1 3009 005a 1846 mov r0, r3 3010 005c 1037 adds r7, r7, #16 3011 .LCFI89: 3012 .cfi_def_cfa_offset 8 3013 005e BD46 mov sp, r7 3014 .LCFI90: 3015 .cfi_def_cfa_register 13 3016 @ sp needed 3017 0060 80BD pop {r7, pc} 3018 .L163: 3019 0062 00BF .align 2 3020 .L162: 3021 0064 00000000 .word .LC0 3022 .cfi_endproc 3023 .LFE146: 3025 .section .text.HAL_CAN_ActivateNotification,"ax",%progbits 3026 .align 1 3027 .global HAL_CAN_ActivateNotification 3028 .syntax unified 3029 .thumb 3030 .thumb_func 3032 HAL_CAN_ActivateNotification: 3033 .LFB147: 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @} 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group4 Interrupts management 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Interrupts management 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Interrupts management ##### 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] This section provides functions allowing to: 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_ActivateNotification : Enable interrupts 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_DeactivateNotification : Disable interrupts ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 100 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_IRQHandler : Handles CAN interrupt request 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Enable interrupts. 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param ActiveITs indicates which interrupts will be enabled. 1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts. 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ActivateNotification(CAN_HandleTypeDef *hcan, uint32_t ActiveITs) 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3034 .loc 1 1618 1 3035 .cfi_startproc 3036 @ args = 0, pretend = 0, frame = 16 3037 @ frame_needed = 1, uses_anonymous_args = 0 3038 0000 80B5 push {r7, lr} 3039 .LCFI91: 3040 .cfi_def_cfa_offset 8 3041 .cfi_offset 7, -8 3042 .cfi_offset 14, -4 3043 0002 84B0 sub sp, sp, #16 3044 .LCFI92: 3045 .cfi_def_cfa_offset 24 3046 0004 00AF add r7, sp, #0 3047 .LCFI93: 3048 .cfi_def_cfa_register 7 3049 0006 7860 str r0, [r7, #4] 3050 0008 3960 str r1, [r7] 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3051 .loc 1 1619 24 3052 000a 7B68 ldr r3, [r7, #4] 3053 000c 93F82030 ldrb r3, [r3, #32] 3054 0010 FB73 strb r3, [r7, #15] 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */ 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_IT(ActiveITs)); 3055 .loc 1 1622 3 3056 0012 3B68 ldr r3, [r7] 3057 0014 114A ldr r2, .L169 3058 0016 9342 cmp r3, r2 3059 0018 04D9 bls .L165 3060 .loc 1 1622 3 is_stmt 0 discriminator 1 3061 001a 40F25661 movw r1, #1622 3062 001e 1048 ldr r0, .L169+4 3063 0020 FFF7FEFF bl assert_failed 3064 .L165: 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 3065 .loc 1 1624 6 is_stmt 1 3066 0024 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 3067 0026 012B cmp r3, #1 3068 0028 02D0 beq .L166 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 101 3069 .loc 1 1624 38 discriminator 1 3070 002a FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 3071 002c 022B cmp r3, #2 3072 002e 09D1 bne .L167 3073 .L166: 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Enable the selected interrupts */ 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_ENABLE_IT(hcan, ActiveITs); 3074 .loc 1 1628 5 3075 0030 7B68 ldr r3, [r7, #4] 3076 0032 1B68 ldr r3, [r3] 3077 0034 5969 ldr r1, [r3, #20] 3078 0036 7B68 ldr r3, [r7, #4] 3079 0038 1B68 ldr r3, [r3] 3080 003a 3A68 ldr r2, [r7] 3081 003c 0A43 orrs r2, r2, r1 3082 003e 5A61 str r2, [r3, #20] 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 3083 .loc 1 1631 12 3084 0040 0023 movs r3, #0 3085 0042 06E0 b .L168 3086 .L167: 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 3087 .loc 1 1636 21 3088 0044 7B68 ldr r3, [r7, #4] 3089 0046 5B6A ldr r3, [r3, #36] 3090 0048 43F48022 orr r2, r3, #262144 3091 004c 7B68 ldr r3, [r7, #4] 3092 004e 5A62 str r2, [r3, #36] 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 3093 .loc 1 1638 12 3094 0050 0123 movs r3, #1 3095 .L168: 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3096 .loc 1 1640 1 3097 0052 1846 mov r0, r3 3098 0054 1037 adds r7, r7, #16 3099 .LCFI94: 3100 .cfi_def_cfa_offset 8 3101 0056 BD46 mov sp, r7 3102 .LCFI95: 3103 .cfi_def_cfa_register 13 3104 @ sp needed 3105 0058 80BD pop {r7, pc} 3106 .L170: 3107 005a 00BF .align 2 3108 .L169: 3109 005c 7F8F0300 .word 233343 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 102 3110 0060 00000000 .word .LC0 3111 .cfi_endproc 3112 .LFE147: 3114 .section .text.HAL_CAN_DeactivateNotification,"ax",%progbits 3115 .align 1 3116 .global HAL_CAN_DeactivateNotification 3117 .syntax unified 3118 .thumb 3119 .thumb_func 3121 HAL_CAN_DeactivateNotification: 3122 .LFB148: 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Disable interrupts. 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param InactiveITs indicates which interrupts will be disabled. 1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts. 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeactivateNotification(CAN_HandleTypeDef *hcan, uint32_t InactiveITs) 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3123 .loc 1 1651 1 3124 .cfi_startproc 3125 @ args = 0, pretend = 0, frame = 16 3126 @ frame_needed = 1, uses_anonymous_args = 0 3127 0000 80B5 push {r7, lr} 3128 .LCFI96: 3129 .cfi_def_cfa_offset 8 3130 .cfi_offset 7, -8 3131 .cfi_offset 14, -4 3132 0002 84B0 sub sp, sp, #16 3133 .LCFI97: 3134 .cfi_def_cfa_offset 24 3135 0004 00AF add r7, sp, #0 3136 .LCFI98: 3137 .cfi_def_cfa_register 7 3138 0006 7860 str r0, [r7, #4] 3139 0008 3960 str r1, [r7] 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3140 .loc 1 1652 24 3141 000a 7B68 ldr r3, [r7, #4] 3142 000c 93F82030 ldrb r3, [r3, #32] 3143 0010 FB73 strb r3, [r7, #15] 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */ 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_IT(InactiveITs)); 3144 .loc 1 1655 3 3145 0012 3B68 ldr r3, [r7] 3146 0014 114A ldr r2, .L176 3147 0016 9342 cmp r3, r2 3148 0018 04D9 bls .L172 3149 .loc 1 1655 3 is_stmt 0 discriminator 1 3150 001a 40F27761 movw r1, #1655 3151 001e 1048 ldr r0, .L176+4 3152 0020 FFF7FEFF bl assert_failed 3153 .L172: ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 103 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 3154 .loc 1 1657 6 is_stmt 1 3155 0024 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 3156 0026 012B cmp r3, #1 3157 0028 02D0 beq .L173 3158 .loc 1 1657 38 discriminator 1 3159 002a FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 3160 002c 022B cmp r3, #2 3161 002e 0AD1 bne .L174 3162 .L173: 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Disable the selected interrupts */ 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_DISABLE_IT(hcan, InactiveITs); 3163 .loc 1 1661 5 3164 0030 7B68 ldr r3, [r7, #4] 3165 0032 1B68 ldr r3, [r3] 3166 0034 5969 ldr r1, [r3, #20] 3167 0036 3B68 ldr r3, [r7] 3168 0038 DA43 mvns r2, r3 3169 003a 7B68 ldr r3, [r7, #4] 3170 003c 1B68 ldr r3, [r3] 3171 003e 0A40 ands r2, r2, r1 3172 0040 5A61 str r2, [r3, #20] 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */ 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK; 3173 .loc 1 1664 12 3174 0042 0023 movs r3, #0 3175 0044 06E0 b .L175 3176 .L174: 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 3177 .loc 1 1669 21 3178 0046 7B68 ldr r3, [r7, #4] 3179 0048 5B6A ldr r3, [r3, #36] 3180 004a 43F48022 orr r2, r3, #262144 3181 004e 7B68 ldr r3, [r7, #4] 3182 0050 5A62 str r2, [r3, #36] 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 3183 .loc 1 1671 12 3184 0052 0123 movs r3, #1 3185 .L175: 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3186 .loc 1 1673 1 3187 0054 1846 mov r0, r3 3188 0056 1037 adds r7, r7, #16 3189 .LCFI99: 3190 .cfi_def_cfa_offset 8 3191 0058 BD46 mov sp, r7 3192 .LCFI100: ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 104 3193 .cfi_def_cfa_register 13 3194 @ sp needed 3195 005a 80BD pop {r7, pc} 3196 .L177: 3197 .align 2 3198 .L176: 3199 005c 7F8F0300 .word 233343 3200 0060 00000000 .word .LC0 3201 .cfi_endproc 3202 .LFE148: 3204 .section .text.HAL_CAN_IRQHandler,"ax",%progbits 3205 .align 1 3206 .global HAL_CAN_IRQHandler 3207 .syntax unified 3208 .thumb 3209 .thumb_func 3211 HAL_CAN_IRQHandler: 3212 .LFB149: 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Handles CAN interrupt request 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** void HAL_CAN_IRQHandler(CAN_HandleTypeDef *hcan) 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3213 .loc 1 1682 1 3214 .cfi_startproc 3215 @ args = 0, pretend = 0, frame = 40 3216 @ frame_needed = 1, uses_anonymous_args = 0 3217 0000 80B5 push {r7, lr} 3218 .LCFI101: 3219 .cfi_def_cfa_offset 8 3220 .cfi_offset 7, -8 3221 .cfi_offset 14, -4 3222 0002 8AB0 sub sp, sp, #40 3223 .LCFI102: 3224 .cfi_def_cfa_offset 48 3225 0004 00AF add r7, sp, #0 3226 .LCFI103: 3227 .cfi_def_cfa_register 7 3228 0006 7860 str r0, [r7, #4] 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE; 3229 .loc 1 1683 12 3230 0008 0023 movs r3, #0 3231 000a 7B62 str r3, [r7, #36] 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 3232 .loc 1 1684 25 3233 000c 7B68 ldr r3, [r7, #4] 3234 000e 1B68 ldr r3, [r3] 3235 .loc 1 1684 12 3236 0010 5B69 ldr r3, [r3, #20] 3237 0012 3B62 str r3, [r7, #32] 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR); 3238 .loc 1 1685 23 3239 0014 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 105 3240 0016 1B68 ldr r3, [r3] 3241 .loc 1 1685 12 3242 0018 5B68 ldr r3, [r3, #4] 3243 001a FB61 str r3, [r7, #28] 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR); 3244 .loc 1 1686 23 3245 001c 7B68 ldr r3, [r7, #4] 3246 001e 1B68 ldr r3, [r3] 3247 .loc 1 1686 12 3248 0020 9B68 ldr r3, [r3, #8] 3249 0022 BB61 str r3, [r7, #24] 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R); 3250 .loc 1 1687 24 3251 0024 7B68 ldr r3, [r7, #4] 3252 0026 1B68 ldr r3, [r3] 3253 .loc 1 1687 12 3254 0028 DB68 ldr r3, [r3, #12] 3255 002a 7B61 str r3, [r7, #20] 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R); 3256 .loc 1 1688 24 3257 002c 7B68 ldr r3, [r7, #4] 3258 002e 1B68 ldr r3, [r3] 3259 .loc 1 1688 12 3260 0030 1B69 ldr r3, [r3, #16] 3261 0032 3B61 str r3, [r7, #16] 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR); 3262 .loc 1 1689 23 3263 0034 7B68 ldr r3, [r7, #4] 3264 0036 1B68 ldr r3, [r3] 3265 .loc 1 1689 12 3266 0038 9B69 ldr r3, [r3, #24] 3267 003a FB60 str r3, [r7, #12] 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmit Mailbox empty interrupt management *****************************/ 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_TX_MAILBOX_EMPTY) != 0U) 3268 .loc 1 1692 19 3269 003c 3B6A ldr r3, [r7, #32] 3270 003e 03F00103 and r3, r3, #1 3271 .loc 1 1692 6 3272 0042 002B cmp r3, #0 3273 0044 7CD0 beq .L179 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmit Mailbox 0 management *****************************************/ 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP0) != 0U) 3274 .loc 1 1695 19 3275 0046 BB69 ldr r3, [r7, #24] 3276 0048 03F00103 and r3, r3, #1 3277 .loc 1 1695 8 3278 004c 002B cmp r3, #0 3279 004e 23D0 beq .L180 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK0,ALST0,TERR0 bits) */ 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP0); 3280 .loc 1 1698 7 3281 0050 7B68 ldr r3, [r7, #4] 3282 0052 1B68 ldr r3, [r3] 3283 0054 0122 movs r2, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 106 3284 0056 9A60 str r2, [r3, #8] 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK0) != 0U) 3285 .loc 1 1700 21 3286 0058 BB69 ldr r3, [r7, #24] 3287 005a 03F00203 and r3, r3, #2 3288 .loc 1 1700 10 3289 005e 002B cmp r3, #0 3290 0060 03D0 beq .L181 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 0 complete callback */ 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0CompleteCallback(hcan); 1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox0CompleteCallback(hcan); 3291 .loc 1 1708 9 3292 0062 7868 ldr r0, [r7, #4] 3293 0064 FFF7FEFF bl HAL_CAN_TxMailbox0CompleteCallback 3294 0068 16E0 b .L180 3295 .L181: 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST0) != 0U) 3296 .loc 1 1713 23 3297 006a BB69 ldr r3, [r7, #24] 3298 006c 03F00403 and r3, r3, #4 3299 .loc 1 1713 12 3300 0070 002B cmp r3, #0 3301 0072 04D0 beq .L182 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST0; 3302 .loc 1 1716 21 3303 0074 7B6A ldr r3, [r7, #36] 3304 0076 43F40063 orr r3, r3, #2048 3305 007a 7B62 str r3, [r7, #36] 3306 007c 0CE0 b .L180 3307 .L182: 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR0) != 0U) 3308 .loc 1 1718 28 3309 007e BB69 ldr r3, [r7, #24] 3310 0080 03F00803 and r3, r3, #8 3311 .loc 1 1718 17 3312 0084 002B cmp r3, #0 3313 0086 04D0 beq .L183 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR0; 3314 .loc 1 1721 21 3315 0088 7B6A ldr r3, [r7, #36] 3316 008a 43F48053 orr r3, r3, #4096 3317 008e 7B62 str r3, [r7, #36] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 107 3318 0090 02E0 b .L180 3319 .L183: 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 0 abort callback */ 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0AbortCallback(hcan); 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox0AbortCallback(hcan); 3320 .loc 1 1731 11 3321 0092 7868 ldr r0, [r7, #4] 3322 0094 FFF7FEFF bl HAL_CAN_TxMailbox0AbortCallback 3323 .L180: 1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmit Mailbox 1 management *****************************************/ 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP1) != 0U) 3324 .loc 1 1738 19 3325 0098 BB69 ldr r3, [r7, #24] 3326 009a 03F48073 and r3, r3, #256 3327 .loc 1 1738 8 3328 009e 002B cmp r3, #0 3329 00a0 24D0 beq .L184 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK1,ALST1,TERR1 bits) */ 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP1); 3330 .loc 1 1741 7 3331 00a2 7B68 ldr r3, [r7, #4] 3332 00a4 1B68 ldr r3, [r3] 3333 00a6 4FF48072 mov r2, #256 3334 00aa 9A60 str r2, [r3, #8] 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK1) != 0U) 3335 .loc 1 1743 21 3336 00ac BB69 ldr r3, [r7, #24] 3337 00ae 03F40073 and r3, r3, #512 3338 .loc 1 1743 10 3339 00b2 002B cmp r3, #0 3340 00b4 03D0 beq .L185 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 1 complete callback */ 1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1CompleteCallback(hcan); 1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox1CompleteCallback(hcan); 3341 .loc 1 1751 9 3342 00b6 7868 ldr r0, [r7, #4] 3343 00b8 FFF7FEFF bl HAL_CAN_TxMailbox1CompleteCallback 3344 00bc 16E0 b .L184 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 108 3345 .L185: 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST1) != 0U) 3346 .loc 1 1756 23 3347 00be BB69 ldr r3, [r7, #24] 3348 00c0 03F48063 and r3, r3, #1024 3349 .loc 1 1756 12 3350 00c4 002B cmp r3, #0 3351 00c6 04D0 beq .L186 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST1; 3352 .loc 1 1759 21 3353 00c8 7B6A ldr r3, [r7, #36] 3354 00ca 43F40053 orr r3, r3, #8192 3355 00ce 7B62 str r3, [r7, #36] 3356 00d0 0CE0 b .L184 3357 .L186: 1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR1) != 0U) 3358 .loc 1 1761 28 3359 00d2 BB69 ldr r3, [r7, #24] 3360 00d4 03F40063 and r3, r3, #2048 3361 .loc 1 1761 17 3362 00d8 002B cmp r3, #0 3363 00da 04D0 beq .L187 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR1; 3364 .loc 1 1764 21 3365 00dc 7B6A ldr r3, [r7, #36] 3366 00de 43F48043 orr r3, r3, #16384 3367 00e2 7B62 str r3, [r7, #36] 3368 00e4 02E0 b .L184 3369 .L187: 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 1 abort callback */ 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1AbortCallback(hcan); 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox1AbortCallback(hcan); 3370 .loc 1 1774 11 3371 00e6 7868 ldr r0, [r7, #4] 3372 00e8 FFF7FEFF bl HAL_CAN_TxMailbox1AbortCallback 3373 .L184: 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 109 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmit Mailbox 2 management *****************************************/ 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP2) != 0U) 3374 .loc 1 1781 19 3375 00ec BB69 ldr r3, [r7, #24] 3376 00ee 03F48033 and r3, r3, #65536 3377 .loc 1 1781 8 3378 00f2 002B cmp r3, #0 3379 00f4 24D0 beq .L179 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK2,ALST2,TERR2 bits) */ 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP2); 3380 .loc 1 1784 7 3381 00f6 7B68 ldr r3, [r7, #4] 3382 00f8 1B68 ldr r3, [r3] 3383 00fa 4FF48032 mov r2, #65536 3384 00fe 9A60 str r2, [r3, #8] 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK2) != 0U) 3385 .loc 1 1786 21 3386 0100 BB69 ldr r3, [r7, #24] 3387 0102 03F40033 and r3, r3, #131072 3388 .loc 1 1786 10 3389 0106 002B cmp r3, #0 3390 0108 03D0 beq .L188 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 2 complete callback */ 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2CompleteCallback(hcan); 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox2CompleteCallback(hcan); 3391 .loc 1 1794 9 3392 010a 7868 ldr r0, [r7, #4] 3393 010c FFF7FEFF bl HAL_CAN_TxMailbox2CompleteCallback 3394 0110 16E0 b .L179 3395 .L188: 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST2) != 0U) 3396 .loc 1 1799 23 3397 0112 BB69 ldr r3, [r7, #24] 3398 0114 03F48023 and r3, r3, #262144 3399 .loc 1 1799 12 3400 0118 002B cmp r3, #0 3401 011a 04D0 beq .L189 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST2; 3402 .loc 1 1802 21 3403 011c 7B6A ldr r3, [r7, #36] 3404 011e 43F40043 orr r3, r3, #32768 3405 0122 7B62 str r3, [r7, #36] 3406 0124 0CE0 b .L179 3407 .L189: ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 110 1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR2) != 0U) 3408 .loc 1 1804 28 3409 0126 BB69 ldr r3, [r7, #24] 3410 0128 03F40023 and r3, r3, #524288 3411 .loc 1 1804 17 3412 012c 002B cmp r3, #0 3413 012e 04D0 beq .L190 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR2; 3414 .loc 1 1807 21 3415 0130 7B6A ldr r3, [r7, #36] 3416 0132 43F48033 orr r3, r3, #65536 3417 0136 7B62 str r3, [r7, #36] 3418 0138 02E0 b .L179 3419 .L190: 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 2 abort callback */ 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2AbortCallback(hcan); 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox2AbortCallback(hcan); 3420 .loc 1 1817 11 3421 013a 7868 ldr r0, [r7, #4] 3422 013c FFF7FEFF bl HAL_CAN_TxMailbox2AbortCallback 3423 .L179: 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 overrun interrupt management *****************************/ 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_OVERRUN) != 0U) 3424 .loc 1 1825 19 3425 0140 3B6A ldr r3, [r7, #32] 3426 0142 03F00803 and r3, r3, #8 3427 .loc 1 1825 6 3428 0146 002B cmp r3, #0 3429 0148 0CD0 beq .L191 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FOVR0) != 0U) 3430 .loc 1 1827 20 3431 014a 7B69 ldr r3, [r7, #20] 3432 014c 03F01003 and r3, r3, #16 3433 .loc 1 1827 8 3434 0150 002B cmp r3, #0 3435 0152 07D0 beq .L191 1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Rx Fifo 0 overrun error */ 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV0; 3436 .loc 1 1830 17 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 111 3437 0154 7B6A ldr r3, [r7, #36] 3438 0156 43F40073 orr r3, r3, #512 3439 015a 7B62 str r3, [r7, #36] 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear FIFO0 Overrun Flag */ 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV0); 3440 .loc 1 1833 7 3441 015c 7B68 ldr r3, [r7, #4] 3442 015e 1B68 ldr r3, [r3] 3443 0160 1022 movs r2, #16 3444 0162 DA60 str r2, [r3, #12] 3445 .L191: 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 full interrupt management ********************************/ 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_FULL) != 0U) 3446 .loc 1 1838 19 3447 0164 3B6A ldr r3, [r7, #32] 3448 0166 03F00403 and r3, r3, #4 3449 .loc 1 1838 6 3450 016a 002B cmp r3, #0 3451 016c 0BD0 beq .L192 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FULL0) != 0U) 3452 .loc 1 1840 20 3453 016e 7B69 ldr r3, [r7, #20] 3454 0170 03F00803 and r3, r3, #8 3455 .loc 1 1840 8 3456 0174 002B cmp r3, #0 3457 0176 06D0 beq .L192 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear FIFO 0 full Flag */ 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF0); 3458 .loc 1 1843 7 3459 0178 7B68 ldr r3, [r7, #4] 3460 017a 1B68 ldr r3, [r3] 3461 017c 0822 movs r2, #8 3462 017e DA60 str r2, [r3, #12] 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 full Callback */ 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0FullCallback(hcan); 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFifo0FullCallback(hcan); 3463 .loc 1 1851 7 3464 0180 7868 ldr r0, [r7, #4] 3465 0182 FFF7FEFF bl HAL_CAN_RxFifo0FullCallback 3466 .L192: 1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 message pending interrupt management *********************/ 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_MSG_PENDING) != 0U) ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 112 3467 .loc 1 1857 19 3468 0186 3B6A ldr r3, [r7, #32] 3469 0188 03F00203 and r3, r3, #2 3470 .loc 1 1857 6 3471 018c 002B cmp r3, #0 3472 018e 09D0 beq .L193 1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check if message is still pending */ 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) != 0U) 3473 .loc 1 1860 14 3474 0190 7B68 ldr r3, [r7, #4] 3475 0192 1B68 ldr r3, [r3] 3476 .loc 1 1860 24 3477 0194 DB68 ldr r3, [r3, #12] 3478 .loc 1 1860 31 3479 0196 03F00303 and r3, r3, #3 3480 .loc 1 1860 8 3481 019a 002B cmp r3, #0 3482 019c 02D0 beq .L193 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 message pending Callback */ 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback(hcan); 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFifo0MsgPendingCallback(hcan); 3483 .loc 1 1868 7 3484 019e 7868 ldr r0, [r7, #4] 3485 01a0 FFF7FEFF bl HAL_CAN_RxFifo0MsgPendingCallback 3486 .L193: 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 overrun interrupt management *****************************/ 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_OVERRUN) != 0U) 3487 .loc 1 1874 19 3488 01a4 3B6A ldr r3, [r7, #32] 3489 01a6 03F04003 and r3, r3, #64 3490 .loc 1 1874 6 3491 01aa 002B cmp r3, #0 3492 01ac 0CD0 beq .L194 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FOVR1) != 0U) 3493 .loc 1 1876 20 3494 01ae 3B69 ldr r3, [r7, #16] 3495 01b0 03F01003 and r3, r3, #16 3496 .loc 1 1876 8 3497 01b4 002B cmp r3, #0 3498 01b6 07D0 beq .L194 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Rx Fifo 1 overrun error */ 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV1; 3499 .loc 1 1879 17 3500 01b8 7B6A ldr r3, [r7, #36] 3501 01ba 43F48063 orr r3, r3, #1024 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 113 3502 01be 7B62 str r3, [r7, #36] 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear FIFO1 Overrun Flag */ 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV1); 3503 .loc 1 1882 7 3504 01c0 7B68 ldr r3, [r7, #4] 3505 01c2 1B68 ldr r3, [r3] 3506 01c4 1022 movs r2, #16 3507 01c6 1A61 str r2, [r3, #16] 3508 .L194: 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 full interrupt management ********************************/ 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_FULL) != 0U) 3509 .loc 1 1887 19 3510 01c8 3B6A ldr r3, [r7, #32] 3511 01ca 03F02003 and r3, r3, #32 3512 .loc 1 1887 6 3513 01ce 002B cmp r3, #0 3514 01d0 0BD0 beq .L195 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FULL1) != 0U) 3515 .loc 1 1889 20 3516 01d2 3B69 ldr r3, [r7, #16] 3517 01d4 03F00803 and r3, r3, #8 3518 .loc 1 1889 8 3519 01d8 002B cmp r3, #0 3520 01da 06D0 beq .L195 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear FIFO 1 full Flag */ 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF1); 3521 .loc 1 1892 7 3522 01dc 7B68 ldr r3, [r7, #4] 3523 01de 1B68 ldr r3, [r3] 3524 01e0 0822 movs r2, #8 3525 01e2 1A61 str r2, [r3, #16] 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 full Callback */ 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1FullCallback(hcan); 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFifo1FullCallback(hcan); 3526 .loc 1 1900 7 3527 01e4 7868 ldr r0, [r7, #4] 3528 01e6 FFF7FEFF bl HAL_CAN_RxFifo1FullCallback 3529 .L195: 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 message pending interrupt management *********************/ 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_MSG_PENDING) != 0U) 3530 .loc 1 1906 19 3531 01ea 3B6A ldr r3, [r7, #32] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 114 3532 01ec 03F01003 and r3, r3, #16 3533 .loc 1 1906 6 3534 01f0 002B cmp r3, #0 3535 01f2 09D0 beq .L196 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check if message is still pending */ 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) != 0U) 3536 .loc 1 1909 14 3537 01f4 7B68 ldr r3, [r7, #4] 3538 01f6 1B68 ldr r3, [r3] 3539 .loc 1 1909 24 3540 01f8 1B69 ldr r3, [r3, #16] 3541 .loc 1 1909 31 3542 01fa 03F00303 and r3, r3, #3 3543 .loc 1 1909 8 3544 01fe 002B cmp r3, #0 3545 0200 02D0 beq .L196 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 message pending Callback */ 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback(hcan); 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFifo1MsgPendingCallback(hcan); 3546 .loc 1 1917 7 3547 0202 7868 ldr r0, [r7, #4] 3548 0204 FFF7FEFF bl HAL_CAN_RxFifo1MsgPendingCallback 3549 .L196: 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Sleep interrupt management *********************************************/ 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_SLEEP_ACK) != 0U) 3550 .loc 1 1923 19 3551 0208 3B6A ldr r3, [r7, #32] 3552 020a 03F40033 and r3, r3, #131072 3553 .loc 1 1923 6 3554 020e 002B cmp r3, #0 3555 0210 0BD0 beq .L197 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((msrflags & CAN_MSR_SLAKI) != 0U) 3556 .loc 1 1925 19 3557 0212 FB69 ldr r3, [r7, #28] 3558 0214 03F01003 and r3, r3, #16 3559 .loc 1 1925 8 3560 0218 002B cmp r3, #0 3561 021a 06D0 beq .L197 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear Sleep interrupt Flag */ 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_SLAKI); 3562 .loc 1 1928 7 3563 021c 7B68 ldr r3, [r7, #4] 3564 021e 1B68 ldr r3, [r3] 3565 0220 1022 movs r2, #16 3566 0222 5A60 str r2, [r3, #4] ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 115 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Sleep Callback */ 1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->SleepCallback(hcan); 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_SleepCallback(hcan); 3567 .loc 1 1936 7 3568 0224 7868 ldr r0, [r7, #4] 3569 0226 FFF7FEFF bl HAL_CAN_SleepCallback 3570 .L197: 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* WakeUp interrupt management *********************************************/ 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_WAKEUP) != 0U) 3571 .loc 1 1942 19 3572 022a 3B6A ldr r3, [r7, #32] 3573 022c 03F48033 and r3, r3, #65536 3574 .loc 1 1942 6 3575 0230 002B cmp r3, #0 3576 0232 0BD0 beq .L198 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((msrflags & CAN_MSR_WKUI) != 0U) 3577 .loc 1 1944 19 3578 0234 FB69 ldr r3, [r7, #28] 3579 0236 03F00803 and r3, r3, #8 3580 .loc 1 1944 8 3581 023a 002B cmp r3, #0 3582 023c 06D0 beq .L198 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear WakeUp Flag */ 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_WKU); 3583 .loc 1 1947 7 3584 023e 7B68 ldr r3, [r7, #4] 3585 0240 1B68 ldr r3, [r3] 3586 0242 0822 movs r2, #8 3587 0244 5A60 str r2, [r3, #4] 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* WakeUp Callback */ 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback(hcan); 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_WakeUpFromRxMsgCallback(hcan); 3588 .loc 1 1955 7 3589 0246 7868 ldr r0, [r7, #4] 3590 0248 FFF7FEFF bl HAL_CAN_WakeUpFromRxMsgCallback 3591 .L198: 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Error interrupts management *********************************************/ ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 116 1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_ERROR) != 0U) 3592 .loc 1 1961 19 3593 024c 3B6A ldr r3, [r7, #32] 3594 024e 03F40043 and r3, r3, #32768 3595 .loc 1 1961 6 3596 0252 002B cmp r3, #0 3597 0254 7BD0 beq .L199 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((msrflags & CAN_MSR_ERRI) != 0U) 3598 .loc 1 1963 19 3599 0256 FB69 ldr r3, [r7, #28] 3600 0258 03F00403 and r3, r3, #4 3601 .loc 1 1963 8 3602 025c 002B cmp r3, #0 3603 025e 72D0 beq .L200 1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Error Warning Flag */ 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_WARNING) != 0U) && 3604 .loc 1 1966 24 3605 0260 3B6A ldr r3, [r7, #32] 3606 0262 03F48073 and r3, r3, #256 3607 .loc 1 1966 10 3608 0266 002B cmp r3, #0 3609 0268 08D0 beq .L201 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 3610 .loc 1 1967 22 discriminator 1 3611 026a FB68 ldr r3, [r7, #12] 3612 026c 03F00103 and r3, r3, #1 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 3613 .loc 1 1966 55 discriminator 1 3614 0270 002B cmp r3, #0 3615 0272 03D0 beq .L201 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Error Warning */ 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EWG; 3616 .loc 1 1970 19 3617 0274 7B6A ldr r3, [r7, #36] 3618 0276 43F00103 orr r3, r3, #1 3619 027a 7B62 str r3, [r7, #36] 3620 .L201: 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* No need for clear of Error Warning Flag as read-only */ 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Error Passive Flag */ 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_PASSIVE) != 0U) && 3621 .loc 1 1976 24 3622 027c 3B6A ldr r3, [r7, #32] 3623 027e 03F40073 and r3, r3, #512 3624 .loc 1 1976 10 3625 0282 002B cmp r3, #0 3626 0284 08D0 beq .L202 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 3627 .loc 1 1977 22 discriminator 1 3628 0286 FB68 ldr r3, [r7, #12] 3629 0288 03F00203 and r3, r3, #2 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 117 3630 .loc 1 1976 55 discriminator 1 3631 028c 002B cmp r3, #0 3632 028e 03D0 beq .L202 1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Error Passive */ 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EPV; 3633 .loc 1 1980 19 3634 0290 7B6A ldr r3, [r7, #36] 3635 0292 43F00203 orr r3, r3, #2 3636 0296 7B62 str r3, [r7, #36] 3637 .L202: 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* No need for clear of Error Passive Flag as read-only */ 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Bus-off Flag */ 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((interrupts & CAN_IT_BUSOFF) != 0U) && 3638 .loc 1 1986 24 3639 0298 3B6A ldr r3, [r7, #32] 3640 029a 03F48063 and r3, r3, #1024 3641 .loc 1 1986 10 3642 029e 002B cmp r3, #0 3643 02a0 08D0 beq .L203 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 3644 .loc 1 1987 22 discriminator 1 3645 02a2 FB68 ldr r3, [r7, #12] 3646 02a4 03F00403 and r3, r3, #4 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 3647 .loc 1 1986 48 discriminator 1 3648 02a8 002B cmp r3, #0 3649 02aa 03D0 beq .L203 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Bus-Off */ 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BOF; 3650 .loc 1 1990 19 3651 02ac 7B6A ldr r3, [r7, #36] 3652 02ae 43F00403 orr r3, r3, #4 3653 02b2 7B62 str r3, [r7, #36] 3654 .L203: 1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* No need for clear of Error Bus-Off as read-only */ 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Last Error Code Flag */ 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((interrupts & CAN_IT_LAST_ERROR_CODE) != 0U) && 3655 .loc 1 1996 24 3656 02b4 3B6A ldr r3, [r7, #32] 3657 02b6 03F40063 and r3, r3, #2048 3658 .loc 1 1996 10 3659 02ba 002B cmp r3, #0 3660 02bc 43D0 beq .L200 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 3661 .loc 1 1997 22 discriminator 1 3662 02be FB68 ldr r3, [r7, #12] 3663 02c0 03F07003 and r3, r3, #112 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 3664 .loc 1 1996 57 discriminator 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 118 3665 02c4 002B cmp r3, #0 3666 02c6 3ED0 beq .L200 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (esrflags & CAN_ESR_LEC) 3667 .loc 1 1999 26 3668 02c8 FB68 ldr r3, [r7, #12] 3669 02ca 03F07003 and r3, r3, #112 3670 .loc 1 1999 9 3671 02ce 602B cmp r3, #96 3672 02d0 2BD0 beq .L204 3673 02d2 602B cmp r3, #96 3674 02d4 2ED8 bhi .L213 3675 02d6 502B cmp r3, #80 3676 02d8 22D0 beq .L206 3677 02da 502B cmp r3, #80 3678 02dc 2AD8 bhi .L213 3679 02de 402B cmp r3, #64 3680 02e0 19D0 beq .L207 3681 02e2 402B cmp r3, #64 3682 02e4 26D8 bhi .L213 3683 02e6 302B cmp r3, #48 3684 02e8 10D0 beq .L208 3685 02ea 302B cmp r3, #48 3686 02ec 22D8 bhi .L213 3687 02ee 102B cmp r3, #16 3688 02f0 02D0 beq .L209 3689 02f2 202B cmp r3, #32 3690 02f4 05D0 beq .L210 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_0): 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Stuff error */ 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_STF; 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1): 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Form error */ 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_FOR; 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0): 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Acknowledgement error */ 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_ACK; 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2): 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Bit recessive error */ 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BR; 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0): 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Bit Dominant error */ 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BD; 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1): 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to CRC error */ 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_CRC; 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default: 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3691 .loc 1 2026 13 3692 02f6 1DE0 b .L213 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 119 3693 .L209: 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3694 .loc 1 2003 23 3695 02f8 7B6A ldr r3, [r7, #36] 3696 02fa 43F00803 orr r3, r3, #8 3697 02fe 7B62 str r3, [r7, #36] 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1): 3698 .loc 1 2004 13 3699 0300 19E0 b .L211 3700 .L210: 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3701 .loc 1 2007 23 3702 0302 7B6A ldr r3, [r7, #36] 3703 0304 43F01003 orr r3, r3, #16 3704 0308 7B62 str r3, [r7, #36] 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0): 3705 .loc 1 2008 13 3706 030a 14E0 b .L211 3707 .L208: 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3708 .loc 1 2011 23 3709 030c 7B6A ldr r3, [r7, #36] 3710 030e 43F02003 orr r3, r3, #32 3711 0312 7B62 str r3, [r7, #36] 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2): 3712 .loc 1 2012 13 3713 0314 0FE0 b .L211 3714 .L207: 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3715 .loc 1 2015 23 3716 0316 7B6A ldr r3, [r7, #36] 3717 0318 43F04003 orr r3, r3, #64 3718 031c 7B62 str r3, [r7, #36] 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0): 3719 .loc 1 2016 13 3720 031e 0AE0 b .L211 3721 .L206: 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3722 .loc 1 2019 23 3723 0320 7B6A ldr r3, [r7, #36] 3724 0322 43F08003 orr r3, r3, #128 3725 0326 7B62 str r3, [r7, #36] 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1): 3726 .loc 1 2020 13 3727 0328 05E0 b .L211 3728 .L204: 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3729 .loc 1 2023 23 3730 032a 7B6A ldr r3, [r7, #36] 3731 032c 43F48073 orr r3, r3, #256 3732 0330 7B62 str r3, [r7, #36] 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default: 3733 .loc 1 2024 13 3734 0332 00E0 b .L211 3735 .L213: 3736 .loc 1 2026 13 3737 0334 00BF nop ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 120 3738 .L211: 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear Last error code Flag */ 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->ESR, CAN_ESR_LEC); 3739 .loc 1 2030 9 3740 0336 7B68 ldr r3, [r7, #4] 3741 0338 1B68 ldr r3, [r3] 3742 033a 9A69 ldr r2, [r3, #24] 3743 033c 7B68 ldr r3, [r7, #4] 3744 033e 1B68 ldr r3, [r3] 3745 0340 22F07002 bic r2, r2, #112 3746 0344 9A61 str r2, [r3, #24] 3747 .L200: 2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear ERRI Flag */ 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_ERRI); 3748 .loc 1 2035 5 3749 0346 7B68 ldr r3, [r7, #4] 3750 0348 1B68 ldr r3, [r3] 3751 034a 0422 movs r2, #4 3752 034c 5A60 str r2, [r3, #4] 3753 .L199: 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call the Error call Back in case of Errors */ 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (errorcode != HAL_CAN_ERROR_NONE) 3754 .loc 1 2039 6 3755 034e 7B6A ldr r3, [r7, #36] 3756 0350 002B cmp r3, #0 3757 0352 08D0 beq .L214 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code in handle */ 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= errorcode; 3758 .loc 1 2042 21 3759 0354 7B68 ldr r3, [r7, #4] 3760 0356 5A6A ldr r2, [r3, #36] 3761 0358 7B6A ldr r3, [r7, #36] 3762 035a 1A43 orrs r2, r2, r3 3763 035c 7B68 ldr r3, [r7, #4] 3764 035e 5A62 str r2, [r3, #36] 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call Error callback function */ 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/ 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCallback(hcan); 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */ 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_ErrorCallback(hcan); 3765 .loc 1 2050 5 3766 0360 7868 ldr r0, [r7, #4] 3767 0362 FFF7FEFF bl HAL_CAN_ErrorCallback 3768 .L214: 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 121 2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3769 .loc 1 2053 1 3770 0366 00BF nop 3771 0368 2837 adds r7, r7, #40 3772 .LCFI104: 3773 .cfi_def_cfa_offset 8 3774 036a BD46 mov sp, r7 3775 .LCFI105: 3776 .cfi_def_cfa_register 13 3777 @ sp needed 3778 036c 80BD pop {r7, pc} 3779 .cfi_endproc 3780 .LFE149: 3782 .section .text.HAL_CAN_TxMailbox0CompleteCallback,"ax",%progbits 3783 .align 1 3784 .weak HAL_CAN_TxMailbox0CompleteCallback 3785 .syntax unified 3786 .thumb 3787 .thumb_func 3789 HAL_CAN_TxMailbox0CompleteCallback: 3790 .LFB150: 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @} 2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group5 Callback functions 2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief CAN Callback functions 2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Callback functions ##### 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** This subsection provides the following callback functions: 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox0CompleteCallback 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox1CompleteCallback 2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox2CompleteCallback 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox0AbortCallback 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox1AbortCallback 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox2AbortCallback 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RxFifo0MsgPendingCallback 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RxFifo0FullCallback 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RxFifo1MsgPendingCallback 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RxFifo1FullCallback 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_SleepCallback 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_WakeUpFromRxMsgCallback 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_ErrorCallback 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 0 complete callback. 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 122 2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan) 2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3791 .loc 1 2093 1 3792 .cfi_startproc 3793 @ args = 0, pretend = 0, frame = 8 3794 @ frame_needed = 1, uses_anonymous_args = 0 3795 @ link register save eliminated. 3796 0000 80B4 push {r7} 3797 .LCFI106: 3798 .cfi_def_cfa_offset 4 3799 .cfi_offset 7, -4 3800 0002 83B0 sub sp, sp, #12 3801 .LCFI107: 3802 .cfi_def_cfa_offset 16 3803 0004 00AF add r7, sp, #0 3804 .LCFI108: 3805 .cfi_def_cfa_register 7 3806 0006 7860 str r0, [r7, #4] 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox0CompleteCallback could be implemented in the 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3807 .loc 1 2101 1 3808 0008 00BF nop 3809 000a 0C37 adds r7, r7, #12 3810 .LCFI109: 3811 .cfi_def_cfa_offset 4 3812 000c BD46 mov sp, r7 3813 .LCFI110: 3814 .cfi_def_cfa_register 13 3815 @ sp needed 3816 000e 5DF8047B ldr r7, [sp], #4 3817 .LCFI111: 3818 .cfi_restore 7 3819 .cfi_def_cfa_offset 0 3820 0012 7047 bx lr 3821 .cfi_endproc 3822 .LFE150: 3824 .section .text.HAL_CAN_TxMailbox1CompleteCallback,"ax",%progbits 3825 .align 1 3826 .weak HAL_CAN_TxMailbox1CompleteCallback 3827 .syntax unified 3828 .thumb 3829 .thumb_func 3831 HAL_CAN_TxMailbox1CompleteCallback: 3832 .LFB151: 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 1 complete callback. 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 123 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan) 2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3833 .loc 1 2110 1 3834 .cfi_startproc 3835 @ args = 0, pretend = 0, frame = 8 3836 @ frame_needed = 1, uses_anonymous_args = 0 3837 @ link register save eliminated. 3838 0000 80B4 push {r7} 3839 .LCFI112: 3840 .cfi_def_cfa_offset 4 3841 .cfi_offset 7, -4 3842 0002 83B0 sub sp, sp, #12 3843 .LCFI113: 3844 .cfi_def_cfa_offset 16 3845 0004 00AF add r7, sp, #0 3846 .LCFI114: 3847 .cfi_def_cfa_register 7 3848 0006 7860 str r0, [r7, #4] 2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox1CompleteCallback could be implemented in the 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3849 .loc 1 2118 1 3850 0008 00BF nop 3851 000a 0C37 adds r7, r7, #12 3852 .LCFI115: 3853 .cfi_def_cfa_offset 4 3854 000c BD46 mov sp, r7 3855 .LCFI116: 3856 .cfi_def_cfa_register 13 3857 @ sp needed 3858 000e 5DF8047B ldr r7, [sp], #4 3859 .LCFI117: 3860 .cfi_restore 7 3861 .cfi_def_cfa_offset 0 3862 0012 7047 bx lr 3863 .cfi_endproc 3864 .LFE151: 3866 .section .text.HAL_CAN_TxMailbox2CompleteCallback,"ax",%progbits 3867 .align 1 3868 .weak HAL_CAN_TxMailbox2CompleteCallback 3869 .syntax unified 3870 .thumb 3871 .thumb_func 3873 HAL_CAN_TxMailbox2CompleteCallback: 3874 .LFB152: 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 2 complete callback. 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 124 2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan) 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3875 .loc 1 2127 1 3876 .cfi_startproc 3877 @ args = 0, pretend = 0, frame = 8 3878 @ frame_needed = 1, uses_anonymous_args = 0 3879 @ link register save eliminated. 3880 0000 80B4 push {r7} 3881 .LCFI118: 3882 .cfi_def_cfa_offset 4 3883 .cfi_offset 7, -4 3884 0002 83B0 sub sp, sp, #12 3885 .LCFI119: 3886 .cfi_def_cfa_offset 16 3887 0004 00AF add r7, sp, #0 3888 .LCFI120: 3889 .cfi_def_cfa_register 7 3890 0006 7860 str r0, [r7, #4] 2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox2CompleteCallback could be implemented in the 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file 2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3891 .loc 1 2135 1 3892 0008 00BF nop 3893 000a 0C37 adds r7, r7, #12 3894 .LCFI121: 3895 .cfi_def_cfa_offset 4 3896 000c BD46 mov sp, r7 3897 .LCFI122: 3898 .cfi_def_cfa_register 13 3899 @ sp needed 3900 000e 5DF8047B ldr r7, [sp], #4 3901 .LCFI123: 3902 .cfi_restore 7 3903 .cfi_def_cfa_offset 0 3904 0012 7047 bx lr 3905 .cfi_endproc 3906 .LFE152: 3908 .section .text.HAL_CAN_TxMailbox0AbortCallback,"ax",%progbits 3909 .align 1 3910 .weak HAL_CAN_TxMailbox0AbortCallback 3911 .syntax unified 3912 .thumb 3913 .thumb_func 3915 HAL_CAN_TxMailbox0AbortCallback: 3916 .LFB153: 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 0 Cancellation callback. 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 125 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0AbortCallback(CAN_HandleTypeDef *hcan) 2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3917 .loc 1 2144 1 3918 .cfi_startproc 3919 @ args = 0, pretend = 0, frame = 8 3920 @ frame_needed = 1, uses_anonymous_args = 0 3921 @ link register save eliminated. 3922 0000 80B4 push {r7} 3923 .LCFI124: 3924 .cfi_def_cfa_offset 4 3925 .cfi_offset 7, -4 3926 0002 83B0 sub sp, sp, #12 3927 .LCFI125: 3928 .cfi_def_cfa_offset 16 3929 0004 00AF add r7, sp, #0 3930 .LCFI126: 3931 .cfi_def_cfa_register 7 3932 0006 7860 str r0, [r7, #4] 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox0AbortCallback could be implemented in the 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3933 .loc 1 2152 1 3934 0008 00BF nop 3935 000a 0C37 adds r7, r7, #12 3936 .LCFI127: 3937 .cfi_def_cfa_offset 4 3938 000c BD46 mov sp, r7 3939 .LCFI128: 3940 .cfi_def_cfa_register 13 3941 @ sp needed 3942 000e 5DF8047B ldr r7, [sp], #4 3943 .LCFI129: 3944 .cfi_restore 7 3945 .cfi_def_cfa_offset 0 3946 0012 7047 bx lr 3947 .cfi_endproc 3948 .LFE153: 3950 .section .text.HAL_CAN_TxMailbox1AbortCallback,"ax",%progbits 3951 .align 1 3952 .weak HAL_CAN_TxMailbox1AbortCallback 3953 .syntax unified 3954 .thumb 3955 .thumb_func 3957 HAL_CAN_TxMailbox1AbortCallback: 3958 .LFB154: 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 1 Cancellation callback. 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 126 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1AbortCallback(CAN_HandleTypeDef *hcan) 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3959 .loc 1 2161 1 3960 .cfi_startproc 3961 @ args = 0, pretend = 0, frame = 8 3962 @ frame_needed = 1, uses_anonymous_args = 0 3963 @ link register save eliminated. 3964 0000 80B4 push {r7} 3965 .LCFI130: 3966 .cfi_def_cfa_offset 4 3967 .cfi_offset 7, -4 3968 0002 83B0 sub sp, sp, #12 3969 .LCFI131: 3970 .cfi_def_cfa_offset 16 3971 0004 00AF add r7, sp, #0 3972 .LCFI132: 3973 .cfi_def_cfa_register 7 3974 0006 7860 str r0, [r7, #4] 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox1AbortCallback could be implemented in the 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3975 .loc 1 2169 1 3976 0008 00BF nop 3977 000a 0C37 adds r7, r7, #12 3978 .LCFI133: 3979 .cfi_def_cfa_offset 4 3980 000c BD46 mov sp, r7 3981 .LCFI134: 3982 .cfi_def_cfa_register 13 3983 @ sp needed 3984 000e 5DF8047B ldr r7, [sp], #4 3985 .LCFI135: 3986 .cfi_restore 7 3987 .cfi_def_cfa_offset 0 3988 0012 7047 bx lr 3989 .cfi_endproc 3990 .LFE154: 3992 .section .text.HAL_CAN_TxMailbox2AbortCallback,"ax",%progbits 3993 .align 1 3994 .weak HAL_CAN_TxMailbox2AbortCallback 3995 .syntax unified 3996 .thumb 3997 .thumb_func 3999 HAL_CAN_TxMailbox2AbortCallback: 4000 .LFB155: 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 2 Cancellation callback. 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 127 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2AbortCallback(CAN_HandleTypeDef *hcan) 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4001 .loc 1 2178 1 4002 .cfi_startproc 4003 @ args = 0, pretend = 0, frame = 8 4004 @ frame_needed = 1, uses_anonymous_args = 0 4005 @ link register save eliminated. 4006 0000 80B4 push {r7} 4007 .LCFI136: 4008 .cfi_def_cfa_offset 4 4009 .cfi_offset 7, -4 4010 0002 83B0 sub sp, sp, #12 4011 .LCFI137: 4012 .cfi_def_cfa_offset 16 4013 0004 00AF add r7, sp, #0 4014 .LCFI138: 4015 .cfi_def_cfa_register 7 4016 0006 7860 str r0, [r7, #4] 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox2AbortCallback could be implemented in the 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4017 .loc 1 2186 1 4018 0008 00BF nop 4019 000a 0C37 adds r7, r7, #12 4020 .LCFI139: 4021 .cfi_def_cfa_offset 4 4022 000c BD46 mov sp, r7 4023 .LCFI140: 4024 .cfi_def_cfa_register 13 4025 @ sp needed 4026 000e 5DF8047B ldr r7, [sp], #4 4027 .LCFI141: 4028 .cfi_restore 7 4029 .cfi_def_cfa_offset 0 4030 0012 7047 bx lr 4031 .cfi_endproc 4032 .LFE155: 4034 .section .text.HAL_CAN_RxFifo0MsgPendingCallback,"ax",%progbits 4035 .align 1 4036 .weak HAL_CAN_RxFifo0MsgPendingCallback 4037 .syntax unified 4038 .thumb 4039 .thumb_func 4041 HAL_CAN_RxFifo0MsgPendingCallback: 4042 .LFB156: 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Rx FIFO 0 message pending callback. 2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 128 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4043 .loc 1 2195 1 4044 .cfi_startproc 4045 @ args = 0, pretend = 0, frame = 8 4046 @ frame_needed = 1, uses_anonymous_args = 0 4047 @ link register save eliminated. 4048 0000 80B4 push {r7} 4049 .LCFI142: 4050 .cfi_def_cfa_offset 4 4051 .cfi_offset 7, -4 4052 0002 83B0 sub sp, sp, #12 4053 .LCFI143: 4054 .cfi_def_cfa_offset 16 4055 0004 00AF add r7, sp, #0 4056 .LCFI144: 4057 .cfi_def_cfa_register 7 4058 0006 7860 str r0, [r7, #4] 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_RxFifo0MsgPendingCallback could be implemented in the 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4059 .loc 1 2203 1 4060 0008 00BF nop 4061 000a 0C37 adds r7, r7, #12 4062 .LCFI145: 4063 .cfi_def_cfa_offset 4 4064 000c BD46 mov sp, r7 4065 .LCFI146: 4066 .cfi_def_cfa_register 13 4067 @ sp needed 4068 000e 5DF8047B ldr r7, [sp], #4 4069 .LCFI147: 4070 .cfi_restore 7 4071 .cfi_def_cfa_offset 0 4072 0012 7047 bx lr 4073 .cfi_endproc 4074 .LFE156: 4076 .section .text.HAL_CAN_RxFifo0FullCallback,"ax",%progbits 4077 .align 1 4078 .weak HAL_CAN_RxFifo0FullCallback 4079 .syntax unified 4080 .thumb 4081 .thumb_func 4083 HAL_CAN_RxFifo0FullCallback: 4084 .LFB157: 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Rx FIFO 0 full callback. 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 129 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_RxFifo0FullCallback(CAN_HandleTypeDef *hcan) 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4085 .loc 1 2212 1 4086 .cfi_startproc 4087 @ args = 0, pretend = 0, frame = 8 4088 @ frame_needed = 1, uses_anonymous_args = 0 4089 @ link register save eliminated. 4090 0000 80B4 push {r7} 4091 .LCFI148: 4092 .cfi_def_cfa_offset 4 4093 .cfi_offset 7, -4 4094 0002 83B0 sub sp, sp, #12 4095 .LCFI149: 4096 .cfi_def_cfa_offset 16 4097 0004 00AF add r7, sp, #0 4098 .LCFI150: 4099 .cfi_def_cfa_register 7 4100 0006 7860 str r0, [r7, #4] 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_RxFifo0FullCallback could be implemented in the user 2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** file 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4101 .loc 1 2220 1 4102 0008 00BF nop 4103 000a 0C37 adds r7, r7, #12 4104 .LCFI151: 4105 .cfi_def_cfa_offset 4 4106 000c BD46 mov sp, r7 4107 .LCFI152: 4108 .cfi_def_cfa_register 13 4109 @ sp needed 4110 000e 5DF8047B ldr r7, [sp], #4 4111 .LCFI153: 4112 .cfi_restore 7 4113 .cfi_def_cfa_offset 0 4114 0012 7047 bx lr 4115 .cfi_endproc 4116 .LFE157: 4118 .section .text.HAL_CAN_RxFifo1MsgPendingCallback,"ax",%progbits 4119 .align 1 4120 .weak HAL_CAN_RxFifo1MsgPendingCallback 4121 .syntax unified 4122 .thumb 4123 .thumb_func 4125 HAL_CAN_RxFifo1MsgPendingCallback: 4126 .LFB158: 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Rx FIFO 1 message pending callback. 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 130 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan) 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4127 .loc 1 2229 1 4128 .cfi_startproc 4129 @ args = 0, pretend = 0, frame = 8 4130 @ frame_needed = 1, uses_anonymous_args = 0 4131 @ link register save eliminated. 4132 0000 80B4 push {r7} 4133 .LCFI154: 4134 .cfi_def_cfa_offset 4 4135 .cfi_offset 7, -4 4136 0002 83B0 sub sp, sp, #12 4137 .LCFI155: 4138 .cfi_def_cfa_offset 16 4139 0004 00AF add r7, sp, #0 4140 .LCFI156: 4141 .cfi_def_cfa_register 7 4142 0006 7860 str r0, [r7, #4] 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_RxFifo1MsgPendingCallback could be implemented in the 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4143 .loc 1 2237 1 4144 0008 00BF nop 4145 000a 0C37 adds r7, r7, #12 4146 .LCFI157: 4147 .cfi_def_cfa_offset 4 4148 000c BD46 mov sp, r7 4149 .LCFI158: 4150 .cfi_def_cfa_register 13 4151 @ sp needed 4152 000e 5DF8047B ldr r7, [sp], #4 4153 .LCFI159: 4154 .cfi_restore 7 4155 .cfi_def_cfa_offset 0 4156 0012 7047 bx lr 4157 .cfi_endproc 4158 .LFE158: 4160 .section .text.HAL_CAN_RxFifo1FullCallback,"ax",%progbits 4161 .align 1 4162 .weak HAL_CAN_RxFifo1FullCallback 4163 .syntax unified 4164 .thumb 4165 .thumb_func 4167 HAL_CAN_RxFifo1FullCallback: 4168 .LFB159: 2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Rx FIFO 1 full callback. 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 131 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_RxFifo1FullCallback(CAN_HandleTypeDef *hcan) 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4169 .loc 1 2246 1 4170 .cfi_startproc 4171 @ args = 0, pretend = 0, frame = 8 4172 @ frame_needed = 1, uses_anonymous_args = 0 4173 @ link register save eliminated. 4174 0000 80B4 push {r7} 4175 .LCFI160: 4176 .cfi_def_cfa_offset 4 4177 .cfi_offset 7, -4 4178 0002 83B0 sub sp, sp, #12 4179 .LCFI161: 4180 .cfi_def_cfa_offset 16 4181 0004 00AF add r7, sp, #0 4182 .LCFI162: 4183 .cfi_def_cfa_register 7 4184 0006 7860 str r0, [r7, #4] 2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_RxFifo1FullCallback could be implemented in the user 2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** file 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4185 .loc 1 2254 1 4186 0008 00BF nop 4187 000a 0C37 adds r7, r7, #12 4188 .LCFI163: 4189 .cfi_def_cfa_offset 4 4190 000c BD46 mov sp, r7 4191 .LCFI164: 4192 .cfi_def_cfa_register 13 4193 @ sp needed 4194 000e 5DF8047B ldr r7, [sp], #4 4195 .LCFI165: 4196 .cfi_restore 7 4197 .cfi_def_cfa_offset 0 4198 0012 7047 bx lr 4199 .cfi_endproc 4200 .LFE159: 4202 .section .text.HAL_CAN_SleepCallback,"ax",%progbits 4203 .align 1 4204 .weak HAL_CAN_SleepCallback 4205 .syntax unified 4206 .thumb 4207 .thumb_func 4209 HAL_CAN_SleepCallback: 4210 .LFB160: 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Sleep callback. 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 132 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_SleepCallback(CAN_HandleTypeDef *hcan) 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4211 .loc 1 2263 1 4212 .cfi_startproc 4213 @ args = 0, pretend = 0, frame = 8 4214 @ frame_needed = 1, uses_anonymous_args = 0 4215 @ link register save eliminated. 4216 0000 80B4 push {r7} 4217 .LCFI166: 4218 .cfi_def_cfa_offset 4 4219 .cfi_offset 7, -4 4220 0002 83B0 sub sp, sp, #12 4221 .LCFI167: 4222 .cfi_def_cfa_offset 16 4223 0004 00AF add r7, sp, #0 4224 .LCFI168: 4225 .cfi_def_cfa_register 7 4226 0006 7860 str r0, [r7, #4] 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_SleepCallback could be implemented in the user file 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4227 .loc 1 2270 1 4228 0008 00BF nop 4229 000a 0C37 adds r7, r7, #12 4230 .LCFI169: 4231 .cfi_def_cfa_offset 4 4232 000c BD46 mov sp, r7 4233 .LCFI170: 4234 .cfi_def_cfa_register 13 4235 @ sp needed 4236 000e 5DF8047B ldr r7, [sp], #4 4237 .LCFI171: 4238 .cfi_restore 7 4239 .cfi_def_cfa_offset 0 4240 0012 7047 bx lr 4241 .cfi_endproc 4242 .LFE160: 4244 .section .text.HAL_CAN_WakeUpFromRxMsgCallback,"ax",%progbits 4245 .align 1 4246 .weak HAL_CAN_WakeUpFromRxMsgCallback 4247 .syntax unified 4248 .thumb 4249 .thumb_func 4251 HAL_CAN_WakeUpFromRxMsgCallback: 4252 .LFB161: 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief WakeUp from Rx message callback. 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 133 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_WakeUpFromRxMsgCallback(CAN_HandleTypeDef *hcan) 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4253 .loc 1 2279 1 4254 .cfi_startproc 4255 @ args = 0, pretend = 0, frame = 8 4256 @ frame_needed = 1, uses_anonymous_args = 0 4257 @ link register save eliminated. 4258 0000 80B4 push {r7} 4259 .LCFI172: 4260 .cfi_def_cfa_offset 4 4261 .cfi_offset 7, -4 4262 0002 83B0 sub sp, sp, #12 4263 .LCFI173: 4264 .cfi_def_cfa_offset 16 4265 0004 00AF add r7, sp, #0 4266 .LCFI174: 4267 .cfi_def_cfa_register 7 4268 0006 7860 str r0, [r7, #4] 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_WakeUpFromRxMsgCallback could be implemented in the 2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4269 .loc 1 2287 1 4270 0008 00BF nop 4271 000a 0C37 adds r7, r7, #12 4272 .LCFI175: 4273 .cfi_def_cfa_offset 4 4274 000c BD46 mov sp, r7 4275 .LCFI176: 4276 .cfi_def_cfa_register 13 4277 @ sp needed 4278 000e 5DF8047B ldr r7, [sp], #4 4279 .LCFI177: 4280 .cfi_restore 7 4281 .cfi_def_cfa_offset 0 4282 0012 7047 bx lr 4283 .cfi_endproc 4284 .LFE161: 4286 .section .text.HAL_CAN_ErrorCallback,"ax",%progbits 4287 .align 1 4288 .weak HAL_CAN_ErrorCallback 4289 .syntax unified 4290 .thumb 4291 .thumb_func 4293 HAL_CAN_ErrorCallback: 4294 .LFB162: 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Error CAN callback. 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 134 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan) 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4295 .loc 1 2296 1 4296 .cfi_startproc 4297 @ args = 0, pretend = 0, frame = 8 4298 @ frame_needed = 1, uses_anonymous_args = 0 4299 @ link register save eliminated. 4300 0000 80B4 push {r7} 4301 .LCFI178: 4302 .cfi_def_cfa_offset 4 4303 .cfi_offset 7, -4 4304 0002 83B0 sub sp, sp, #12 4305 .LCFI179: 4306 .cfi_def_cfa_offset 16 4307 0004 00AF add r7, sp, #0 4308 .LCFI180: 4309 .cfi_def_cfa_register 7 4310 0006 7860 str r0, [r7, #4] 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan); 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_ErrorCallback could be implemented in the user file 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4311 .loc 1 2303 1 4312 0008 00BF nop 4313 000a 0C37 adds r7, r7, #12 4314 .LCFI181: 4315 .cfi_def_cfa_offset 4 4316 000c BD46 mov sp, r7 4317 .LCFI182: 4318 .cfi_def_cfa_register 13 4319 @ sp needed 4320 000e 5DF8047B ldr r7, [sp], #4 4321 .LCFI183: 4322 .cfi_restore 7 4323 .cfi_def_cfa_offset 0 4324 0012 7047 bx lr 4325 .cfi_endproc 4326 .LFE162: 4328 .section .text.HAL_CAN_GetState,"ax",%progbits 4329 .align 1 4330 .global HAL_CAN_GetState 4331 .syntax unified 4332 .thumb 4333 .thumb_func 4335 HAL_CAN_GetState: 4336 .LFB163: 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @} 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group6 Peripheral State and Error functions 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief CAN Peripheral State functions ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 135 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Peripheral State and Error functions ##### 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ============================================================================== 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** This subsection provides functions allowing to : 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetState() : Return the CAN state. 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetError() : Return the CAN error codes if any. 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_ResetError(): Reset the CAN error codes if any. 2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{ 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return the CAN state. 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL state 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef HAL_CAN_GetState(const CAN_HandleTypeDef *hcan) 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4337 .loc 1 2333 1 4338 .cfi_startproc 4339 @ args = 0, pretend = 0, frame = 16 4340 @ frame_needed = 1, uses_anonymous_args = 0 4341 @ link register save eliminated. 4342 0000 80B4 push {r7} 4343 .LCFI184: 4344 .cfi_def_cfa_offset 4 4345 .cfi_offset 7, -4 4346 0002 85B0 sub sp, sp, #20 4347 .LCFI185: 4348 .cfi_def_cfa_offset 24 4349 0004 00AF add r7, sp, #0 4350 .LCFI186: 4351 .cfi_def_cfa_register 7 4352 0006 7860 str r0, [r7, #4] 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 4353 .loc 1 2334 24 4354 0008 7B68 ldr r3, [r7, #4] 4355 000a 93F82030 ldrb r3, [r3, #32] 4356 000e FB73 strb r3, [r7, #15] 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 4357 .loc 1 2336 6 4358 0010 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 4359 0012 012B cmp r3, #1 4360 0014 02D0 beq .L229 4361 .loc 1 2336 38 discriminator 1 4362 0016 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 4363 0018 022B cmp r3, #2 4364 001a 12D1 bne .L230 4365 .L229: 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 136 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check sleep mode acknowledge flag */ 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 4366 .loc 1 2340 14 4367 001c 7B68 ldr r3, [r7, #4] 4368 001e 1B68 ldr r3, [r3] 4369 .loc 1 2340 24 4370 0020 5B68 ldr r3, [r3, #4] 4371 .loc 1 2340 30 4372 0022 03F00203 and r3, r3, #2 4373 .loc 1 2340 8 4374 0026 002B cmp r3, #0 4375 0028 02D0 beq .L231 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Sleep mode is active */ 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_ACTIVE; 4376 .loc 1 2343 13 4377 002a 0423 movs r3, #4 4378 002c FB73 strb r3, [r7, #15] 4379 002e 08E0 b .L230 4380 .L231: 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check sleep mode request flag */ 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if ((hcan->Instance->MCR & CAN_MCR_SLEEP) != 0U) 4381 .loc 1 2346 19 4382 0030 7B68 ldr r3, [r7, #4] 4383 0032 1B68 ldr r3, [r3] 4384 .loc 1 2346 29 4385 0034 1B68 ldr r3, [r3] 4386 .loc 1 2346 35 4387 0036 03F00203 and r3, r3, #2 4388 .loc 1 2346 13 4389 003a 002B cmp r3, #0 4390 003c 01D0 beq .L230 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Sleep mode request is pending */ 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_PENDING; 4391 .loc 1 2349 13 4392 003e 0323 movs r3, #3 4393 0040 FB73 strb r3, [r7, #15] 4394 .L230: 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Neither sleep mode request nor sleep mode acknowledge */ 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return CAN state */ 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return state; 4395 .loc 1 2358 10 4396 0042 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4397 .loc 1 2359 1 4398 0044 1846 mov r0, r3 4399 0046 1437 adds r7, r7, #20 4400 .LCFI187: 4401 .cfi_def_cfa_offset 4 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 137 4402 0048 BD46 mov sp, r7 4403 .LCFI188: 4404 .cfi_def_cfa_register 13 4405 @ sp needed 4406 004a 5DF8047B ldr r7, [sp], #4 4407 .LCFI189: 4408 .cfi_restore 7 4409 .cfi_def_cfa_offset 0 4410 004e 7047 bx lr 4411 .cfi_endproc 4412 .LFE163: 4414 .section .text.HAL_CAN_GetError,"ax",%progbits 4415 .align 1 4416 .global HAL_CAN_GetError 4417 .syntax unified 4418 .thumb 4419 .thumb_func 4421 HAL_CAN_GetError: 4422 .LFB164: 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return the CAN error code. 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval CAN Error Code 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_GetError(const CAN_HandleTypeDef *hcan) 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4423 .loc 1 2368 1 4424 .cfi_startproc 4425 @ args = 0, pretend = 0, frame = 8 4426 @ frame_needed = 1, uses_anonymous_args = 0 4427 @ link register save eliminated. 4428 0000 80B4 push {r7} 4429 .LCFI190: 4430 .cfi_def_cfa_offset 4 4431 .cfi_offset 7, -4 4432 0002 83B0 sub sp, sp, #12 4433 .LCFI191: 4434 .cfi_def_cfa_offset 16 4435 0004 00AF add r7, sp, #0 4436 .LCFI192: 4437 .cfi_def_cfa_register 7 4438 0006 7860 str r0, [r7, #4] 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return CAN error code */ 2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return hcan->ErrorCode; 4439 .loc 1 2370 14 4440 0008 7B68 ldr r3, [r7, #4] 4441 000a 5B6A ldr r3, [r3, #36] 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4442 .loc 1 2371 1 4443 000c 1846 mov r0, r3 4444 000e 0C37 adds r7, r7, #12 4445 .LCFI193: 4446 .cfi_def_cfa_offset 4 4447 0010 BD46 mov sp, r7 4448 .LCFI194: ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 138 4449 .cfi_def_cfa_register 13 4450 @ sp needed 4451 0012 5DF8047B ldr r7, [sp], #4 4452 .LCFI195: 4453 .cfi_restore 7 4454 .cfi_def_cfa_offset 0 4455 0016 7047 bx lr 4456 .cfi_endproc 4457 .LFE164: 4459 .section .text.HAL_CAN_ResetError,"ax",%progbits 4460 .align 1 4461 .global HAL_CAN_ResetError 4462 .syntax unified 4463 .thumb 4464 .thumb_func 4466 HAL_CAN_ResetError: 4467 .LFB165: 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** 2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Reset the CAN error code. 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ResetError(CAN_HandleTypeDef *hcan) 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 4468 .loc 1 2380 1 4469 .cfi_startproc 4470 @ args = 0, pretend = 0, frame = 16 4471 @ frame_needed = 1, uses_anonymous_args = 0 4472 @ link register save eliminated. 4473 0000 80B4 push {r7} 4474 .LCFI196: 4475 .cfi_def_cfa_offset 4 4476 .cfi_offset 7, -4 4477 0002 85B0 sub sp, sp, #20 4478 .LCFI197: 4479 .cfi_def_cfa_offset 24 4480 0004 00AF add r7, sp, #0 4481 .LCFI198: 4482 .cfi_def_cfa_register 7 4483 0006 7860 str r0, [r7, #4] 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 4484 .loc 1 2381 21 4485 0008 0023 movs r3, #0 4486 000a FB73 strb r3, [r7, #15] 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 4487 .loc 1 2382 24 4488 000c 7B68 ldr r3, [r7, #4] 4489 000e 93F82030 ldrb r3, [r3, #32] 4490 0012 BB73 strb r3, [r7, #14] 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 4491 .loc 1 2384 6 4492 0014 BB7B ldrb r3, [r7, #14] @ zero_extendqisi2 4493 0016 012B cmp r3, #1 4494 0018 02D0 beq .L236 ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 139 4495 .loc 1 2384 38 discriminator 1 4496 001a BB7B ldrb r3, [r7, #14] @ zero_extendqisi2 4497 001c 022B cmp r3, #2 4498 001e 03D1 bne .L237 4499 .L236: 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset CAN error code */ 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode = 0U; 4500 .loc 1 2388 21 4501 0020 7B68 ldr r3, [r7, #4] 4502 0022 0022 movs r2, #0 4503 0024 5A62 str r2, [r3, #36] 4504 0026 07E0 b .L238 4505 .L237: 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */ 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 4506 .loc 1 2393 21 4507 0028 7B68 ldr r3, [r7, #4] 4508 002a 5B6A ldr r3, [r3, #36] 4509 002c 43F48022 orr r2, r3, #262144 4510 0030 7B68 ldr r3, [r7, #4] 4511 0032 5A62 str r2, [r3, #36] 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR; 4512 .loc 1 2395 12 4513 0034 0123 movs r3, #1 4514 0036 FB73 strb r3, [r7, #15] 4515 .L238: 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return the status */ 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status; 4516 .loc 1 2399 10 4517 0038 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 4518 .loc 1 2400 1 4519 003a 1846 mov r0, r3 4520 003c 1437 adds r7, r7, #20 4521 .LCFI199: 4522 .cfi_def_cfa_offset 4 4523 003e BD46 mov sp, r7 4524 .LCFI200: 4525 .cfi_def_cfa_register 13 4526 @ sp needed 4527 0040 5DF8047B ldr r7, [sp], #4 4528 .LCFI201: 4529 .cfi_restore 7 4530 .cfi_def_cfa_offset 0 4531 0044 7047 bx lr 4532 .cfi_endproc 4533 .LFE165: 4535 .text 4536 .Letext0: ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 140 4537 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 4538 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 4539 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 4540 .file 6 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h" 4541 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 4542 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 141 DEFINED SYMBOLS *ABS*:00000000 stm32f3xx_hal_can.c C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:20 .rodata:00000000 $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:25 .text.HAL_CAN_Init:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:31 .text.HAL_CAN_Init:00000000 HAL_CAN_Init C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:754 .text.HAL_CAN_MspInit:00000000 HAL_CAN_MspInit C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:369 .text.HAL_CAN_Init:00000254 $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:374 .text.HAL_CAN_Init:0000025c $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:661 .text.HAL_CAN_DeInit:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:667 .text.HAL_CAN_DeInit:00000000 HAL_CAN_DeInit C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1334 .text.HAL_CAN_Stop:00000000 HAL_CAN_Stop C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:796 .text.HAL_CAN_MspDeInit:00000000 HAL_CAN_MspDeInit C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:742 .text.HAL_CAN_DeInit:0000005c $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:748 .text.HAL_CAN_MspInit:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:790 .text.HAL_CAN_MspDeInit:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:832 .text.HAL_CAN_ConfigFilter:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:838 .text.HAL_CAN_ConfigFilter:00000000 HAL_CAN_ConfigFilter C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1210 .text.HAL_CAN_ConfigFilter:0000025c $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1215 .text.HAL_CAN_Start:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1221 .text.HAL_CAN_Start:00000000 HAL_CAN_Start C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1328 .text.HAL_CAN_Stop:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1445 .text.HAL_CAN_RequestSleep:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1451 .text.HAL_CAN_RequestSleep:00000000 HAL_CAN_RequestSleep C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1521 .text.HAL_CAN_WakeUp:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1527 .text.HAL_CAN_WakeUp:00000000 HAL_CAN_WakeUp C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1630 .text.HAL_CAN_WakeUp:0000007c $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1635 .text.HAL_CAN_IsSleepActive:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1641 .text.HAL_CAN_IsSleepActive:00000000 HAL_CAN_IsSleepActive C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1709 .text.HAL_CAN_AddTxMessage:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:1715 .text.HAL_CAN_AddTxMessage:00000000 HAL_CAN_AddTxMessage C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2064 .text.HAL_CAN_AddTxMessage:00000230 $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2069 .text.HAL_CAN_AbortTxRequest:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2075 .text.HAL_CAN_AbortTxRequest:00000000 HAL_CAN_AbortTxRequest C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2187 .text.HAL_CAN_AbortTxRequest:00000098 $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2192 .text.HAL_CAN_GetTxMailboxesFreeLevel:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2198 .text.HAL_CAN_GetTxMailboxesFreeLevel:00000000 HAL_CAN_GetTxMailboxesFreeLevel C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2297 .text.HAL_CAN_IsTxMessagePending:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2303 .text.HAL_CAN_IsTxMessagePending:00000000 HAL_CAN_IsTxMessagePending C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2382 .text.HAL_CAN_IsTxMessagePending:00000054 $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2387 .text.HAL_CAN_GetTxTimestamp:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2393 .text.HAL_CAN_GetTxTimestamp:00000000 HAL_CAN_GetTxTimestamp C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2499 .text.HAL_CAN_GetTxTimestamp:00000074 $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2504 .text.HAL_CAN_GetRxMessage:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2510 .text.HAL_CAN_GetRxMessage:00000000 HAL_CAN_GetRxMessage C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2924 .text.HAL_CAN_GetRxMessage:00000258 $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2929 .text.HAL_CAN_GetRxFifoFillLevel:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:2935 .text.HAL_CAN_GetRxFifoFillLevel:00000000 HAL_CAN_GetRxFifoFillLevel C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3021 .text.HAL_CAN_GetRxFifoFillLevel:00000064 $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3026 .text.HAL_CAN_ActivateNotification:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3032 .text.HAL_CAN_ActivateNotification:00000000 HAL_CAN_ActivateNotification C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3109 .text.HAL_CAN_ActivateNotification:0000005c $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3115 .text.HAL_CAN_DeactivateNotification:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3121 .text.HAL_CAN_DeactivateNotification:00000000 HAL_CAN_DeactivateNotification C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3199 .text.HAL_CAN_DeactivateNotification:0000005c $d C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3205 .text.HAL_CAN_IRQHandler:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3211 .text.HAL_CAN_IRQHandler:00000000 HAL_CAN_IRQHandler C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3789 .text.HAL_CAN_TxMailbox0CompleteCallback:00000000 HAL_CAN_TxMailbox0CompleteCallback ARM GAS C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s page 142 C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3915 .text.HAL_CAN_TxMailbox0AbortCallback:00000000 HAL_CAN_TxMailbox0AbortCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3831 .text.HAL_CAN_TxMailbox1CompleteCallback:00000000 HAL_CAN_TxMailbox1CompleteCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3957 .text.HAL_CAN_TxMailbox1AbortCallback:00000000 HAL_CAN_TxMailbox1AbortCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3873 .text.HAL_CAN_TxMailbox2CompleteCallback:00000000 HAL_CAN_TxMailbox2CompleteCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3999 .text.HAL_CAN_TxMailbox2AbortCallback:00000000 HAL_CAN_TxMailbox2AbortCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4083 .text.HAL_CAN_RxFifo0FullCallback:00000000 HAL_CAN_RxFifo0FullCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4041 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 HAL_CAN_RxFifo0MsgPendingCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4167 .text.HAL_CAN_RxFifo1FullCallback:00000000 HAL_CAN_RxFifo1FullCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4125 .text.HAL_CAN_RxFifo1MsgPendingCallback:00000000 HAL_CAN_RxFifo1MsgPendingCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4209 .text.HAL_CAN_SleepCallback:00000000 HAL_CAN_SleepCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4251 .text.HAL_CAN_WakeUpFromRxMsgCallback:00000000 HAL_CAN_WakeUpFromRxMsgCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4293 .text.HAL_CAN_ErrorCallback:00000000 HAL_CAN_ErrorCallback C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3783 .text.HAL_CAN_TxMailbox0CompleteCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3825 .text.HAL_CAN_TxMailbox1CompleteCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3867 .text.HAL_CAN_TxMailbox2CompleteCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3909 .text.HAL_CAN_TxMailbox0AbortCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3951 .text.HAL_CAN_TxMailbox1AbortCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:3993 .text.HAL_CAN_TxMailbox2AbortCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4035 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4077 .text.HAL_CAN_RxFifo0FullCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4119 .text.HAL_CAN_RxFifo1MsgPendingCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4161 .text.HAL_CAN_RxFifo1FullCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4203 .text.HAL_CAN_SleepCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4245 .text.HAL_CAN_WakeUpFromRxMsgCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4287 .text.HAL_CAN_ErrorCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4329 .text.HAL_CAN_GetState:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4335 .text.HAL_CAN_GetState:00000000 HAL_CAN_GetState C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4415 .text.HAL_CAN_GetError:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4421 .text.HAL_CAN_GetError:00000000 HAL_CAN_GetError C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4460 .text.HAL_CAN_ResetError:00000000 $t C:\Users\zl835\AppData\Local\Temp\cc4Qs4t1.s:4466 .text.HAL_CAN_ResetError:00000000 HAL_CAN_ResetError UNDEFINED SYMBOLS assert_failed HAL_GetTick