ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.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, 2 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 .text.HAL_CAN_MspInit,"ax",%progbits 20 .align 1 21 .p2align 2,,3 22 .weak HAL_CAN_MspInit 23 .syntax unified 24 .thumb 25 .thumb_func 27 HAL_CAN_MspInit: 28 .LVL0: 29 .LFB132: 30 .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 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 ##### ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 2 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 **** ============================== 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: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 3 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, 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 **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 4 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). 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. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 5 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 **** */ 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 ##### ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 6 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 **** { 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) 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 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)); 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff)); 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp)); 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission)); 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked)); 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority)); 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode)); 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth)); 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1)); 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler)); 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 7 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) 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); 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); 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(); 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) 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) 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; 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; 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 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); 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(); 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 */ 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 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) 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; 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; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 8 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 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) 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); 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); 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) 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); 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); 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) 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); 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); 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) 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); 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); 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) 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); 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); 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 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) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 9 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); 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); 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 | 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; 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; 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; 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 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 **** { 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) 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 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)); 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); 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 **** 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 */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 10 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_MspDeInit(hcan); 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); 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; 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; 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; 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 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 **** { 31 .loc 1 508 1 view -0 32 .cfi_startproc 33 @ args = 0, pretend = 0, frame = 0 34 @ frame_needed = 0, uses_anonymous_args = 0 35 @ link register save eliminated. 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); 36 .loc 1 510 3 view .LVU1 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 **** } 37 .loc 1 515 1 is_stmt 0 view .LVU2 38 0000 7047 bx lr 39 .cfi_endproc 40 .LFE132: 42 0002 00BF .section .rodata.HAL_CAN_Init.str1.4,"aMS",%progbits,1 43 .align 2 44 .LC0: 45 0000 44726976 .ascii "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can." 45 6572732F 45 53544D33 45 32463378 45 785F4841 46 0033 6300 .ascii "c\000" 47 .section .text.HAL_CAN_Init,"ax",%progbits 48 .align 1 49 .p2align 2,,3 50 .global HAL_CAN_Init 51 .syntax unified 52 .thumb 53 .thumb_func ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 11 55 HAL_CAN_Init: 56 .LVL1: 57 .LFB130: 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 58 .loc 1 276 1 is_stmt 1 view -0 59 .cfi_startproc 60 @ args = 0, pretend = 0, frame = 0 61 @ frame_needed = 0, uses_anonymous_args = 0 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 62 .loc 1 277 3 view .LVU4 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 63 .loc 1 280 3 view .LVU5 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 64 .loc 1 280 6 is_stmt 0 view .LVU6 65 0000 0028 cmp r0, #0 66 0002 00F01B81 beq .L34 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 67 .loc 1 276 1 view .LVU7 68 0006 38B5 push {r3, r4, r5, lr} 69 .LCFI0: 70 .cfi_def_cfa_offset 16 71 .cfi_offset 3, -16 72 .cfi_offset 4, -12 73 .cfi_offset 5, -8 74 .cfi_offset 14, -4 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); 75 .loc 1 286 3 view .LVU8 76 0008 0268 ldr r2, [r0] 77 000a 8D4B ldr r3, .L76 78 000c 9A42 cmp r2, r3 79 000e 0446 mov r4, r0 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); 80 .loc 1 286 3 is_stmt 1 view .LVU9 81 0010 04D0 beq .L5 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); 82 .loc 1 286 3 is_stmt 0 discriminator 1 view .LVU10 83 0012 8C48 ldr r0, .L76+4 84 .LVL2: 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); 85 .loc 1 286 3 discriminator 1 view .LVU11 86 0014 4FF48F71 mov r1, #286 87 0018 FFF7FEFF bl assert_failed 88 .LVL3: 89 .L5: 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff)); 90 .loc 1 287 3 is_stmt 1 view .LVU12 91 001c 237E ldrb r3, [r4, #24] @ zero_extendqisi2 92 001e 012B cmp r3, #1 93 0020 00F2EE80 bhi .L66 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp)); 94 .loc 1 288 3 view .LVU13 95 0024 637E ldrb r3, [r4, #25] @ zero_extendqisi2 96 0026 012B cmp r3, #1 97 0028 00F2E080 bhi .L67 98 .L7: 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission)); 99 .loc 1 289 3 view .LVU14 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 12 100 002c A37E ldrb r3, [r4, #26] @ zero_extendqisi2 101 002e 012B cmp r3, #1 102 0030 00F2D280 bhi .L68 103 .L8: 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked)); 104 .loc 1 290 3 view .LVU15 105 0034 E37E ldrb r3, [r4, #27] @ zero_extendqisi2 106 0036 012B cmp r3, #1 107 0038 00F2C480 bhi .L69 108 .L9: 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority)); 109 .loc 1 291 3 view .LVU16 110 003c 237F ldrb r3, [r4, #28] @ zero_extendqisi2 111 003e 012B cmp r3, #1 112 0040 00F2B680 bhi .L70 113 .L10: 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode)); 114 .loc 1 292 3 view .LVU17 115 0044 637F ldrb r3, [r4, #29] @ zero_extendqisi2 116 0046 012B cmp r3, #1 117 0048 00F2A780 bhi .L71 118 .L11: 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth)); 119 .loc 1 293 3 view .LVU18 120 004c A368 ldr r3, [r4, #8] 121 004e 33F04043 bics r3, r3, #-1073741824 122 0052 04D0 beq .L12 123 .L75: 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth)); 124 .loc 1 293 3 is_stmt 0 discriminator 4 view .LVU19 125 0054 7B48 ldr r0, .L76+4 126 0056 40F22511 movw r1, #293 127 005a FFF7FEFF bl assert_failed 128 .LVL4: 129 .L12: 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1)); 130 .loc 1 294 3 is_stmt 1 view .LVU20 131 005e E368 ldr r3, [r4, #12] 132 0060 33F04073 bics r3, r3, #50331648 133 0064 04D0 beq .L13 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1)); 134 .loc 1 294 3 is_stmt 0 discriminator 4 view .LVU21 135 0066 7748 ldr r0, .L76+4 136 0068 4FF49371 mov r1, #294 137 006c FFF7FEFF bl assert_failed 138 .LVL5: 139 .L13: 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); 140 .loc 1 295 3 is_stmt 1 view .LVU22 141 0070 2369 ldr r3, [r4, #16] 142 0072 33F44033 bics r3, r3, #196608 143 0076 0DD0 beq .L14 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); 144 .loc 1 295 3 is_stmt 0 discriminator 4 view .LVU23 145 0078 B3F5802F cmp r3, #262144 146 007c 0AD0 beq .L14 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 13 147 .loc 1 295 3 discriminator 8 view .LVU24 148 007e B3F5002F cmp r3, #524288 149 0082 07D0 beq .L14 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); 150 .loc 1 295 3 discriminator 12 view .LVU25 151 0084 B3F5402F cmp r3, #786432 152 0088 04D0 beq .L14 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); 153 .loc 1 295 3 discriminator 16 view .LVU26 154 008a 6E48 ldr r0, .L76+4 155 008c 40F22711 movw r1, #295 156 0090 FFF7FEFF bl assert_failed 157 .LVL6: 158 .L14: 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler)); 159 .loc 1 296 3 is_stmt 1 view .LVU27 160 0094 6369 ldr r3, [r4, #20] 161 0096 33F44013 bics r3, r3, #3145728 162 009a 40F0C580 bne .L72 163 .L15: 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 164 .loc 1 297 3 view .LVU28 165 009e 6368 ldr r3, [r4, #4] 166 00a0 013B subs r3, r3, #1 167 00a2 B3F5806F cmp r3, #1024 168 00a6 80F0B980 bcs .L73 169 .L16: 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 170 .loc 1 327 3 view .LVU29 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 171 .loc 1 327 11 is_stmt 0 view .LVU30 172 00aa 94F82030 ldrb r3, [r4, #32] @ zero_extendqisi2 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 173 .loc 1 327 6 view .LVU31 174 00ae 002B cmp r3, #0 175 00b0 00F0B080 beq .L74 176 .L17: 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 177 .loc 1 335 3 is_stmt 1 view .LVU32 178 00b4 2268 ldr r2, [r4] 179 00b6 1368 ldr r3, [r2] 180 00b8 43F00103 orr r3, r3, #1 181 00bc 1360 str r3, [r2] 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 182 .loc 1 338 3 view .LVU33 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 183 .loc 1 338 15 is_stmt 0 view .LVU34 184 00be FFF7FEFF bl HAL_GetTick 185 .LVL7: 186 00c2 0546 mov r5, r0 187 .LVL8: 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 188 .loc 1 341 3 is_stmt 1 view .LVU35 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 189 .loc 1 341 9 is_stmt 0 view .LVU36 190 00c4 04E0 b .L18 191 .LVL9: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 14 192 .L19: 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 193 .loc 1 343 10 view .LVU37 194 00c6 FFF7FEFF bl HAL_GetTick 195 .LVL10: 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 196 .loc 1 343 24 view .LVU38 197 00ca 401B subs r0, r0, r5 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 198 .loc 1 343 8 view .LVU39 199 00cc 0A28 cmp r0, #10 200 00ce 5BD8 bhi .L65 201 .L18: 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 202 .loc 1 343 5 is_stmt 1 view .LVU40 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 203 .loc 1 341 9 view .LVU41 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 204 .loc 1 341 15 is_stmt 0 view .LVU42 205 00d0 2368 ldr r3, [r4] 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 206 .loc 1 341 25 view .LVU43 207 00d2 5A68 ldr r2, [r3, #4] 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 208 .loc 1 341 9 view .LVU44 209 00d4 D107 lsls r1, r2, #31 210 00d6 F6D5 bpl .L19 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 211 .loc 1 356 3 is_stmt 1 view .LVU45 212 00d8 1A68 ldr r2, [r3] 213 00da 22F00202 bic r2, r2, #2 214 00de 1A60 str r2, [r3] 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 215 .loc 1 359 3 view .LVU46 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 216 .loc 1 359 15 is_stmt 0 view .LVU47 217 00e0 FFF7FEFF bl HAL_GetTick 218 .LVL11: 219 00e4 0546 mov r5, r0 220 .LVL12: 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 221 .loc 1 362 3 is_stmt 1 view .LVU48 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 222 .loc 1 362 9 is_stmt 0 view .LVU49 223 00e6 04E0 b .L20 224 .LVL13: 225 .L21: 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 226 .loc 1 364 10 view .LVU50 227 00e8 FFF7FEFF bl HAL_GetTick 228 .LVL14: 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 229 .loc 1 364 24 view .LVU51 230 00ec 401B subs r0, r0, r5 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 231 .loc 1 364 8 view .LVU52 232 00ee 0A28 cmp r0, #10 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 15 233 00f0 4AD8 bhi .L65 234 .L20: 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 235 .loc 1 364 5 is_stmt 1 view .LVU53 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 236 .loc 1 362 9 view .LVU54 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 237 .loc 1 362 15 is_stmt 0 view .LVU55 238 00f2 2368 ldr r3, [r4] 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 239 .loc 1 362 25 view .LVU56 240 00f4 5A68 ldr r2, [r3, #4] 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 241 .loc 1 362 9 view .LVU57 242 00f6 9207 lsls r2, r2, #30 243 00f8 F6D4 bmi .L21 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 244 .loc 1 377 3 is_stmt 1 view .LVU58 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 245 .loc 1 377 6 is_stmt 0 view .LVU59 246 00fa 227E ldrb r2, [r4, #24] @ zero_extendqisi2 247 00fc 012A cmp r2, #1 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 248 .loc 1 379 5 view .LVU60 249 00fe 1A68 ldr r2, [r3] 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 250 .loc 1 379 5 is_stmt 1 view .LVU61 251 0100 0CBF ite eq 252 0102 42F08002 orreq r2, r2, #128 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 253 .loc 1 383 5 view .LVU62 254 0106 22F08002 bicne r2, r2, #128 255 010a 1A60 str r2, [r3] 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 256 .loc 1 387 3 view .LVU63 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 257 .loc 1 387 6 is_stmt 0 view .LVU64 258 010c 627E ldrb r2, [r4, #25] @ zero_extendqisi2 259 010e 012A cmp r2, #1 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 260 .loc 1 389 5 view .LVU65 261 0110 1A68 ldr r2, [r3] 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 262 .loc 1 389 5 is_stmt 1 view .LVU66 263 0112 0CBF ite eq 264 0114 42F04002 orreq r2, r2, #64 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 265 .loc 1 393 5 view .LVU67 266 0118 22F04002 bicne r2, r2, #64 267 011c 1A60 str r2, [r3] 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 268 .loc 1 397 3 view .LVU68 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 269 .loc 1 397 6 is_stmt 0 view .LVU69 270 011e A27E ldrb r2, [r4, #26] @ zero_extendqisi2 271 0120 012A cmp r2, #1 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 16 272 .loc 1 399 5 view .LVU70 273 0122 1A68 ldr r2, [r3] 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 274 .loc 1 399 5 is_stmt 1 view .LVU71 275 0124 0CBF ite eq 276 0126 42F02002 orreq r2, r2, #32 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 277 .loc 1 403 5 view .LVU72 278 012a 22F02002 bicne r2, r2, #32 279 012e 1A60 str r2, [r3] 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 280 .loc 1 407 3 view .LVU73 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 281 .loc 1 407 6 is_stmt 0 view .LVU74 282 0130 E27E ldrb r2, [r4, #27] @ zero_extendqisi2 283 0132 012A cmp r2, #1 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 284 .loc 1 409 5 view .LVU75 285 0134 1A68 ldr r2, [r3] 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 286 .loc 1 409 5 is_stmt 1 view .LVU76 287 0136 0CBF ite eq 288 0138 22F01002 biceq r2, r2, #16 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 289 .loc 1 413 5 view .LVU77 290 013c 42F01002 orrne r2, r2, #16 291 0140 1A60 str r2, [r3] 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 292 .loc 1 417 3 view .LVU78 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 293 .loc 1 417 6 is_stmt 0 view .LVU79 294 0142 227F ldrb r2, [r4, #28] @ zero_extendqisi2 295 0144 012A cmp r2, #1 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 296 .loc 1 419 5 view .LVU80 297 0146 1A68 ldr r2, [r3] 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 298 .loc 1 419 5 is_stmt 1 view .LVU81 299 0148 0CBF ite eq 300 014a 42F00802 orreq r2, r2, #8 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 301 .loc 1 423 5 view .LVU82 302 014e 22F00802 bicne r2, r2, #8 303 0152 1A60 str r2, [r3] 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 304 .loc 1 427 3 view .LVU83 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 305 .loc 1 427 6 is_stmt 0 view .LVU84 306 0154 627F ldrb r2, [r4, #29] @ zero_extendqisi2 307 0156 012A cmp r2, #1 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 308 .loc 1 429 5 view .LVU85 309 0158 1A68 ldr r2, [r3] 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 310 .loc 1 429 5 is_stmt 1 view .LVU86 311 015a 0CBF ite eq 312 015c 42F00402 orreq r2, r2, #4 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 17 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 313 .loc 1 433 5 view .LVU87 314 0160 22F00402 bicne r2, r2, #4 315 0164 1A60 str r2, [r3] 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Init.SyncJumpWidth | 316 .loc 1 437 3 view .LVU88 317 0166 D4E90220 ldrd r2, r0, [r4, #8] 318 016a 2169 ldr r1, [r4, #16] 319 016c 0243 orrs r2, r2, r0 320 016e 0A43 orrs r2, r2, r1 321 0170 6069 ldr r0, [r4, #20] 322 0172 6168 ldr r1, [r4, #4] 323 0174 0243 orrs r2, r2, r0 324 0176 0139 subs r1, r1, #1 325 0178 0A43 orrs r2, r2, r1 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 326 .loc 1 444 19 is_stmt 0 view .LVU89 327 017a 0020 movs r0, #0 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 328 .loc 1 447 15 view .LVU90 329 017c 0121 movs r1, #1 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Init.SyncJumpWidth | 330 .loc 1 437 3 view .LVU91 331 017e DA61 str r2, [r3, #28] 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 332 .loc 1 444 3 is_stmt 1 view .LVU92 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 333 .loc 1 444 19 is_stmt 0 view .LVU93 334 0180 6062 str r0, [r4, #36] 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 335 .loc 1 447 3 is_stmt 1 view .LVU94 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 336 .loc 1 447 15 is_stmt 0 view .LVU95 337 0182 84F82010 strb r1, [r4, #32] 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 338 .loc 1 450 3 is_stmt 1 view .LVU96 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 339 .loc 1 451 1 is_stmt 0 view .LVU97 340 0186 38BD pop {r3, r4, r5, pc} 341 .LVL15: 342 .L65: 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 343 .loc 1 367 7 is_stmt 1 view .LVU98 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 344 .loc 1 367 23 is_stmt 0 view .LVU99 345 0188 636A ldr r3, [r4, #36] 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 346 .loc 1 370 19 view .LVU100 347 018a 0522 movs r2, #5 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 348 .loc 1 367 23 view .LVU101 349 018c 43F40033 orr r3, r3, #131072 350 0190 6362 str r3, [r4, #36] 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 351 .loc 1 370 7 is_stmt 1 view .LVU102 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 352 .loc 1 370 19 is_stmt 0 view .LVU103 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 18 353 0192 84F82020 strb r2, [r4, #32] 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 354 .loc 1 372 7 is_stmt 1 view .LVU104 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 355 .loc 1 372 14 is_stmt 0 view .LVU105 356 0196 0120 movs r0, #1 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 357 .loc 1 451 1 view .LVU106 358 0198 38BD pop {r3, r4, r5, pc} 359 .LVL16: 360 .L71: 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode)); 361 .loc 1 292 3 discriminator 1 view .LVU107 362 019a 2A48 ldr r0, .L76+4 363 019c 4FF49271 mov r1, #292 364 01a0 FFF7FEFF bl assert_failed 365 .LVL17: 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth)); 366 .loc 1 293 3 is_stmt 1 discriminator 1 view .LVU108 367 01a4 A368 ldr r3, [r4, #8] 368 01a6 33F04043 bics r3, r3, #-1073741824 369 01aa 3FF458AF beq .L12 370 01ae 51E7 b .L75 371 .L70: 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority)); 372 .loc 1 291 3 is_stmt 0 discriminator 1 view .LVU109 373 01b0 2448 ldr r0, .L76+4 374 01b2 40F22311 movw r1, #291 375 01b6 FFF7FEFF bl assert_failed 376 .LVL18: 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode)); 377 .loc 1 292 3 is_stmt 1 discriminator 1 view .LVU110 378 01ba 637F ldrb r3, [r4, #29] @ zero_extendqisi2 379 01bc 012B cmp r3, #1 380 01be 7FF645AF bls .L11 381 01c2 EAE7 b .L71 382 .L69: 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked)); 383 .loc 1 290 3 is_stmt 0 discriminator 1 view .LVU111 384 01c4 1F48 ldr r0, .L76+4 385 01c6 4FF49171 mov r1, #290 386 01ca FFF7FEFF bl assert_failed 387 .LVL19: 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority)); 388 .loc 1 291 3 is_stmt 1 discriminator 1 view .LVU112 389 01ce 237F ldrb r3, [r4, #28] @ zero_extendqisi2 390 01d0 012B cmp r3, #1 391 01d2 7FF637AF bls .L10 392 01d6 EBE7 b .L70 393 .L68: 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission)); 394 .loc 1 289 3 is_stmt 0 discriminator 1 view .LVU113 395 01d8 1A48 ldr r0, .L76+4 396 01da 40F22111 movw r1, #289 397 01de FFF7FEFF bl assert_failed 398 .LVL20: 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked)); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 19 399 .loc 1 290 3 is_stmt 1 discriminator 1 view .LVU114 400 01e2 E37E ldrb r3, [r4, #27] @ zero_extendqisi2 401 01e4 012B cmp r3, #1 402 01e6 7FF629AF bls .L9 403 01ea EBE7 b .L69 404 .L67: 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp)); 405 .loc 1 288 3 is_stmt 0 discriminator 1 view .LVU115 406 01ec 1548 ldr r0, .L76+4 407 01ee 4FF49071 mov r1, #288 408 01f2 FFF7FEFF bl assert_failed 409 .LVL21: 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission)); 410 .loc 1 289 3 is_stmt 1 discriminator 1 view .LVU116 411 01f6 A37E ldrb r3, [r4, #26] @ zero_extendqisi2 412 01f8 012B cmp r3, #1 413 01fa 7FF61BAF bls .L8 414 01fe EBE7 b .L68 415 .L66: 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff)); 416 .loc 1 287 3 is_stmt 0 discriminator 1 view .LVU117 417 0200 1048 ldr r0, .L76+4 418 0202 40F21F11 movw r1, #287 419 0206 FFF7FEFF bl assert_failed 420 .LVL22: 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp)); 421 .loc 1 288 3 is_stmt 1 discriminator 1 view .LVU118 422 020a 637E ldrb r3, [r4, #25] @ zero_extendqisi2 423 020c 012B cmp r3, #1 424 020e 7FF60DAF bls .L7 425 0212 EBE7 b .L67 426 .L74: 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 427 .loc 1 330 5 view .LVU119 428 0214 2046 mov r0, r4 429 0216 FFF7FEFF bl HAL_CAN_MspInit 430 .LVL23: 431 021a 4BE7 b .L17 432 .L73: 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 433 .loc 1 297 3 is_stmt 0 discriminator 1 view .LVU120 434 021c 0948 ldr r0, .L76+4 435 021e 40F22911 movw r1, #297 436 0222 FFF7FEFF bl assert_failed 437 .LVL24: 438 0226 40E7 b .L16 439 .L72: 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler)); 440 .loc 1 296 3 discriminator 4 view .LVU121 441 0228 B3F5800F cmp r3, #4194304 442 022c 3FF437AF beq .L15 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler)); 443 .loc 1 296 3 discriminator 8 view .LVU122 444 0230 0448 ldr r0, .L76+4 445 0232 4FF49471 mov r1, #296 446 0236 FFF7FEFF bl assert_failed 447 .LVL25: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 20 448 023a 30E7 b .L15 449 .LVL26: 450 .L34: 451 .LCFI1: 452 .cfi_def_cfa_offset 0 453 .cfi_restore 3 454 .cfi_restore 4 455 .cfi_restore 5 456 .cfi_restore 14 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 457 .loc 1 282 12 view .LVU123 458 023c 0120 movs r0, #1 459 .LVL27: 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 460 .loc 1 451 1 view .LVU124 461 023e 7047 bx lr 462 .L77: 463 .align 2 464 .L76: 465 0240 00640040 .word 1073767424 466 0244 00000000 .word .LC0 467 .cfi_endproc 468 .LFE130: 470 .section .text.HAL_CAN_MspDeInit,"ax",%progbits 471 .align 1 472 .p2align 2,,3 473 .weak HAL_CAN_MspDeInit 474 .syntax unified 475 .thumb 476 .thumb_func 478 HAL_CAN_MspDeInit: 479 .LFB168: 480 .cfi_startproc 481 @ args = 0, pretend = 0, frame = 0 482 @ frame_needed = 0, uses_anonymous_args = 0 483 @ link register save eliminated. 484 0000 7047 bx lr 485 .cfi_endproc 486 .LFE168: 488 0002 00BF .section .text.HAL_CAN_ConfigFilter,"ax",%progbits 489 .align 1 490 .p2align 2,,3 491 .global HAL_CAN_ConfigFilter 492 .syntax unified 493 .thumb 494 .thumb_func 496 HAL_CAN_ConfigFilter: 497 .LVL28: 498 .LFB134: 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) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 21 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 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 **** } 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 : ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 22 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 **** 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 */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 23 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 */ 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 24 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 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; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 25 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 : 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 **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 26 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 */ 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 **** { 499 .loc 1 841 1 is_stmt 1 view -0 500 .cfi_startproc 501 @ args = 0, pretend = 0, frame = 0 502 @ frame_needed = 0, uses_anonymous_args = 0 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filternbrbitpos; 503 .loc 1 842 3 view .LVU126 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CAN_TypeDef *can_ip = hcan->Instance; 504 .loc 1 843 3 view .LVU127 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 505 .loc 1 844 24 is_stmt 0 view .LVU128 506 0000 90F82020 ldrb r2, [r0, #32] @ zero_extendqisi2 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) || 507 .loc 1 846 6 view .LVU129 508 0004 013A subs r2, r2, #1 509 0006 012A cmp r2, #1 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filternbrbitpos; 510 .loc 1 841 1 view .LVU130 511 0008 0346 mov r3, r0 512 .LVL29: 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 513 .loc 1 844 3 is_stmt 1 view .LVU131 514 .loc 1 846 3 view .LVU132 515 .loc 1 846 6 is_stmt 0 view .LVU133 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 27 516 000a 05D9 bls .L102 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)); 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh)); 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow)); 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode)); 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale)); 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment)); 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation)); 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)); 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); 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); 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); 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 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) 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); 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) | 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 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) | 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 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) 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); 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) | 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 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 */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 28 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) | 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); 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) 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); 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); 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) 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); 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); 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 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) 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); 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); 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; 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; 517 .loc 1 947 5 is_stmt 1 view .LVU134 518 .loc 1 947 21 is_stmt 0 view .LVU135 519 000c 426A ldr r2, [r0, #36] 520 000e 42F48022 orr r2, r2, #262144 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 521 .loc 1 949 12 view .LVU136 522 0012 0120 movs r0, #1 523 .LVL30: 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 524 .loc 1 947 21 view .LVU137 525 0014 5A62 str r2, [r3, #36] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 29 526 .loc 1 949 5 is_stmt 1 view .LVU138 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 527 .loc 1 951 1 is_stmt 0 view .LVU139 528 0016 7047 bx lr 529 .LVL31: 530 .L102: 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 531 .loc 1 850 5 view .LVU140 532 0018 0A68 ldr r2, [r1] 533 001a B2F5803F cmp r2, #65536 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filternbrbitpos; 534 .loc 1 841 1 view .LVU141 535 001e 70B5 push {r4, r5, r6, lr} 536 .LCFI2: 537 .cfi_def_cfa_offset 16 538 .cfi_offset 4, -16 539 .cfi_offset 5, -12 540 .cfi_offset 6, -8 541 .cfi_offset 14, -4 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 542 .loc 1 843 16 view .LVU142 543 0020 0568 ldr r5, [r0] 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 544 .loc 1 850 5 is_stmt 1 view .LVU143 545 0022 0C46 mov r4, r1 546 0024 80F0B380 bcs .L103 547 .LVL32: 548 .L81: 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh)); 549 .loc 1 851 5 view .LVU144 550 0028 6368 ldr r3, [r4, #4] 551 002a B3F5803F cmp r3, #65536 552 002e 80F0A880 bcs .L104 553 .L82: 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow)); 554 .loc 1 852 5 view .LVU145 555 0032 A368 ldr r3, [r4, #8] 556 0034 B3F5803F cmp r3, #65536 557 0038 80F09D80 bcs .L105 558 .L83: 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode)); 559 .loc 1 853 5 view .LVU146 560 003c E368 ldr r3, [r4, #12] 561 003e B3F5803F cmp r3, #65536 562 0042 80F09280 bcs .L106 563 .L84: 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale)); 564 .loc 1 854 5 view .LVU147 565 0046 A369 ldr r3, [r4, #24] 566 0048 012B cmp r3, #1 567 004a 04D9 bls .L85 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale)); 568 .loc 1 854 5 is_stmt 0 discriminator 1 view .LVU148 569 004c 5348 ldr r0, .L108 570 004e 40F25631 movw r1, #854 571 0052 FFF7FEFF bl assert_failed ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 30 572 .LVL33: 573 .L85: 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment)); 574 .loc 1 855 5 is_stmt 1 view .LVU149 575 0056 E369 ldr r3, [r4, #28] 576 0058 012B cmp r3, #1 577 005a 04D9 bls .L86 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment)); 578 .loc 1 855 5 is_stmt 0 discriminator 1 view .LVU150 579 005c 4F48 ldr r0, .L108 580 005e 40F25731 movw r1, #855 581 0062 FFF7FEFF bl assert_failed 582 .LVL34: 583 .L86: 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation)); 584 .loc 1 856 5 is_stmt 1 view .LVU151 585 0066 2369 ldr r3, [r4, #16] 586 0068 012B cmp r3, #1 587 006a 04D9 bls .L87 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation)); 588 .loc 1 856 5 is_stmt 0 discriminator 1 view .LVU152 589 006c 4B48 ldr r0, .L108 590 006e 4FF45671 mov r1, #856 591 0072 FFF7FEFF bl assert_failed 592 .LVL35: 593 .L87: 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 594 .loc 1 857 5 is_stmt 1 view .LVU153 595 0076 236A ldr r3, [r4, #32] 596 0078 012B cmp r3, #1 597 007a 04D9 bls .L88 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 598 .loc 1 857 5 is_stmt 0 discriminator 1 view .LVU154 599 007c 4748 ldr r0, .L108 600 007e 40F25931 movw r1, #857 601 0082 FFF7FEFF bl assert_failed 602 .LVL36: 603 .L88: 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 604 .loc 1 862 5 is_stmt 1 view .LVU155 605 0086 6369 ldr r3, [r4, #20] 606 0088 0D2B cmp r3, #13 607 008a 67D8 bhi .L107 608 .L89: 865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 609 .loc 1 865 5 view .LVU156 610 008c D5F80012 ldr r1, [r5, #512] 611 0090 41F00101 orr r1, r1, #1 612 0094 C5F80012 str r1, [r5, #512] 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 613 .loc 1 868 5 view .LVU157 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 614 .loc 1 871 5 is_stmt 0 view .LVU158 615 0098 D5F81C12 ldr r1, [r5, #540] 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 616 .loc 1 868 21 view .LVU159 617 009c 0120 movs r0, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 31 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 618 .loc 1 868 65 view .LVU160 619 009e 03F01F02 and r2, r3, #31 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 620 .loc 1 868 21 view .LVU161 621 00a2 00FA02F2 lsl r2, r0, r2 622 .LVL37: 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 623 .loc 1 871 5 is_stmt 1 view .LVU162 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 624 .loc 1 874 22 is_stmt 0 view .LVU163 625 00a6 E069 ldr r0, [r4, #28] 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 626 .loc 1 871 5 view .LVU164 627 00a8 21EA0201 bic r1, r1, r2 628 00ac C5F81C12 str r1, [r5, #540] 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 629 .loc 1 874 5 is_stmt 1 view .LVU165 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 630 .loc 1 871 5 is_stmt 0 view .LVU166 631 00b0 D143 mvns r1, r2 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 632 .loc 1 874 8 view .LVU167 633 00b2 0028 cmp r0, #0 634 00b4 3CD1 bne .L90 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 635 .loc 1 877 7 is_stmt 1 view .LVU168 636 00b6 D5F80C02 ldr r0, [r5, #524] 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 637 .loc 1 882 75 is_stmt 0 view .LVU169 638 00ba E668 ldr r6, [r4, #12] 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 639 .loc 1 877 7 view .LVU170 640 00bc 0840 ands r0, r0, r1 641 00be C5F80C02 str r0, [r5, #524] 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 642 .loc 1 881 7 is_stmt 1 view .LVU171 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 643 .loc 1 883 22 is_stmt 0 view .LVU172 644 00c2 A088 ldrh r0, [r4, #4] 645 00c4 05EBC303 add r3, r5, r3, lsl #3 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 646 .loc 1 882 75 view .LVU173 647 00c8 40EA0640 orr r0, r0, r6, lsl #16 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 648 .loc 1 881 62 view .LVU174 649 00cc C3F84002 str r0, [r3, #576] 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 650 .loc 1 887 7 is_stmt 1 view .LVU175 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 651 .loc 1 888 76 is_stmt 0 view .LVU176 652 00d0 A668 ldr r6, [r4, #8] 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 653 .loc 1 889 22 view .LVU177 654 00d2 2088 ldrh r0, [r4] 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 655 .loc 1 888 76 view .LVU178 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 32 656 00d4 40EA0640 orr r0, r0, r6, lsl #16 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 657 .loc 1 887 62 view .LVU179 658 00d8 C3F84402 str r0, [r3, #580] 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 659 .loc 1 892 5 is_stmt 1 view .LVU180 660 .L91: 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 661 .loc 1 909 5 view .LVU181 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 662 .loc 1 909 8 is_stmt 0 view .LVU182 663 00dc A369 ldr r3, [r4, #24] 664 00de 0BBB cbnz r3, .L92 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 665 .loc 1 912 7 is_stmt 1 view .LVU183 666 00e0 D5F80432 ldr r3, [r5, #516] 667 00e4 0B40 ands r3, r3, r1 668 00e6 C5F80432 str r3, [r5, #516] 669 .L93: 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 670 .loc 1 921 5 view .LVU184 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 671 .loc 1 921 8 is_stmt 0 view .LVU185 672 00ea 2369 ldr r3, [r4, #16] 673 00ec A3B9 cbnz r3, .L94 924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 674 .loc 1 924 7 is_stmt 1 view .LVU186 675 00ee D5F81432 ldr r3, [r5, #532] 676 00f2 1940 ands r1, r1, r3 677 00f4 C5F81412 str r1, [r5, #532] 678 .L95: 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 679 .loc 1 933 5 view .LVU187 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 680 .loc 1 933 8 is_stmt 0 view .LVU188 681 00f8 236A ldr r3, [r4, #32] 682 00fa 012B cmp r3, #1 683 00fc 04D1 bne .L96 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 684 .loc 1 935 7 is_stmt 1 view .LVU189 685 00fe D5F81C32 ldr r3, [r5, #540] 686 0102 1A43 orrs r2, r2, r3 687 .LVL38: 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 688 .loc 1 935 7 is_stmt 0 view .LVU190 689 0104 C5F81C22 str r2, [r5, #540] 690 .L96: 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 691 .loc 1 939 5 is_stmt 1 view .LVU191 692 0108 D5F80032 ldr r3, [r5, #512] 693 010c 23F00103 bic r3, r3, #1 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 694 .loc 1 942 12 is_stmt 0 view .LVU192 695 0110 0020 movs r0, #0 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 696 .loc 1 939 5 view .LVU193 697 0112 C5F80032 str r3, [r5, #512] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 33 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 698 .loc 1 942 5 is_stmt 1 view .LVU194 699 .loc 1 951 1 is_stmt 0 view .LVU195 700 0116 70BD pop {r4, r5, r6, pc} 701 .LVL39: 702 .L94: 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 703 .loc 1 929 7 is_stmt 1 view .LVU196 704 0118 D5F81432 ldr r3, [r5, #532] 705 011c 1343 orrs r3, r3, r2 706 011e C5F81432 str r3, [r5, #532] 707 0122 E9E7 b .L95 708 .L92: 917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 709 .loc 1 917 7 view .LVU197 710 0124 D5F80432 ldr r3, [r5, #516] 711 0128 1343 orrs r3, r3, r2 712 012a C5F80432 str r3, [r5, #516] 713 012e DCE7 b .L93 714 .L90: 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 715 .loc 1 892 5 view .LVU198 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 716 .loc 1 892 8 is_stmt 0 view .LVU199 717 0130 0128 cmp r0, #1 718 0132 D3D1 bne .L91 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 719 .loc 1 895 7 is_stmt 1 view .LVU200 720 0134 D5F80C02 ldr r0, [r5, #524] 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 721 .loc 1 899 72 is_stmt 0 view .LVU201 722 0138 2668 ldr r6, [r4] 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 723 .loc 1 895 7 view .LVU202 724 013a 1043 orrs r0, r0, r2 725 013c C5F80C02 str r0, [r5, #524] 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 726 .loc 1 898 7 is_stmt 1 view .LVU203 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 727 .loc 1 900 22 is_stmt 0 view .LVU204 728 0140 A088 ldrh r0, [r4, #4] 729 0142 05EBC303 add r3, r5, r3, lsl #3 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 730 .loc 1 899 72 view .LVU205 731 0146 40EA0640 orr r0, r0, r6, lsl #16 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 732 .loc 1 898 62 view .LVU206 733 014a C3F84002 str r0, [r3, #576] 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 734 .loc 1 903 7 is_stmt 1 view .LVU207 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); 735 .loc 1 904 76 is_stmt 0 view .LVU208 736 014e A668 ldr r6, [r4, #8] 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 737 .loc 1 905 22 view .LVU209 738 0150 A089 ldrh r0, [r4, #12] 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 34 739 .loc 1 904 76 view .LVU210 740 0152 40EA0640 orr r0, r0, r6, lsl #16 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 741 .loc 1 903 62 view .LVU211 742 0156 C3F84402 str r0, [r3, #580] 743 015a BFE7 b .L91 744 .LVL40: 745 .L107: 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 746 .loc 1 862 5 discriminator 1 view .LVU212 747 015c 0F48 ldr r0, .L108 748 015e 40F25E31 movw r1, #862 749 0162 FFF7FEFF bl assert_failed 750 .LVL41: 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 751 .loc 1 868 52 discriminator 1 view .LVU213 752 0166 6369 ldr r3, [r4, #20] 753 0168 90E7 b .L89 754 .L106: 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode)); 755 .loc 1 853 5 discriminator 1 view .LVU214 756 016a 0C48 ldr r0, .L108 757 016c 40F25531 movw r1, #853 758 0170 FFF7FEFF bl assert_failed 759 .LVL42: 760 0174 67E7 b .L84 761 .L105: 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow)); 762 .loc 1 852 5 discriminator 1 view .LVU215 763 0176 0948 ldr r0, .L108 764 0178 4FF45571 mov r1, #852 765 017c FFF7FEFF bl assert_failed 766 .LVL43: 767 0180 5CE7 b .L83 768 .L104: 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh)); 769 .loc 1 851 5 discriminator 1 view .LVU216 770 0182 0648 ldr r0, .L108 771 0184 40F25331 movw r1, #851 772 0188 FFF7FEFF bl assert_failed 773 .LVL44: 774 018c 51E7 b .L82 775 .LVL45: 776 .L103: 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 777 .loc 1 850 5 discriminator 1 view .LVU217 778 018e 0348 ldr r0, .L108 779 .LVL46: 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 780 .loc 1 850 5 discriminator 1 view .LVU218 781 0190 40F25231 movw r1, #850 782 .LVL47: 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 783 .loc 1 850 5 discriminator 1 view .LVU219 784 0194 FFF7FEFF bl assert_failed 785 .LVL48: 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 35 786 .loc 1 850 5 discriminator 1 view .LVU220 787 0198 46E7 b .L81 788 .L109: 789 019a 00BF .align 2 790 .L108: 791 019c 00000000 .word .LC0 792 .cfi_endproc 793 .LFE134: 795 .section .text.HAL_CAN_Start,"ax",%progbits 796 .align 1 797 .p2align 2,,3 798 .global HAL_CAN_Start 799 .syntax unified 800 .thumb 801 .thumb_func 803 HAL_CAN_Start: 804 .LVL49: 805 .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 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) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 36 991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 806 .loc 1 991 1 is_stmt 1 view -0 807 .cfi_startproc 808 @ args = 0, pretend = 0, frame = 0 809 @ frame_needed = 0, uses_anonymous_args = 0 992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 810 .loc 1 992 3 view .LVU222 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) 811 .loc 1 994 3 view .LVU223 991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 812 .loc 1 991 1 is_stmt 0 view .LVU224 813 0000 70B5 push {r4, r5, r6, lr} 814 .LCFI3: 815 .cfi_def_cfa_offset 16 816 .cfi_offset 4, -16 817 .cfi_offset 5, -12 818 .cfi_offset 6, -8 819 .cfi_offset 14, -4 820 .loc 1 994 11 view .LVU225 821 0002 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 822 .loc 1 994 6 view .LVU226 823 0006 012B cmp r3, #1 991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 824 .loc 1 991 1 view .LVU227 825 0008 0446 mov r4, r0 826 .loc 1 994 6 view .LVU228 827 000a 06D0 beq .L117 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; 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); 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(); 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) 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) 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; 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; 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 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; 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 37 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; 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; 828 .loc 1 1030 5 is_stmt 1 view .LVU229 829 .loc 1 1030 21 is_stmt 0 view .LVU230 830 000c 436A ldr r3, [r0, #36] 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 831 .loc 1 1032 12 view .LVU231 832 000e 0126 movs r6, #1 1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 833 .loc 1 1030 21 view .LVU232 834 0010 43F40023 orr r3, r3, #524288 835 0014 4362 str r3, [r0, #36] 836 .loc 1 1032 5 is_stmt 1 view .LVU233 1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 837 .loc 1 1034 1 is_stmt 0 view .LVU234 838 0016 3046 mov r0, r6 839 .LVL50: 840 .loc 1 1034 1 view .LVU235 841 0018 70BD pop {r4, r5, r6, pc} 842 .LVL51: 843 .L117: 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 844 .loc 1 1000 5 view .LVU236 845 001a 0268 ldr r2, [r0] 846 001c DEB2 uxtb r6, r3 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 847 .loc 1 997 5 is_stmt 1 view .LVU237 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 848 .loc 1 997 17 is_stmt 0 view .LVU238 849 001e 0223 movs r3, #2 850 0020 80F82030 strb r3, [r0, #32] 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 851 .loc 1 1000 5 is_stmt 1 view .LVU239 852 0024 1368 ldr r3, [r2] 853 0026 23F00103 bic r3, r3, #1 854 002a 1360 str r3, [r2] 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 855 .loc 1 1003 5 view .LVU240 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 856 .loc 1 1003 17 is_stmt 0 view .LVU241 857 002c FFF7FEFF bl HAL_GetTick 858 .LVL52: 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 859 .loc 1 1003 17 view .LVU242 860 0030 0546 mov r5, r0 861 .LVL53: 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 862 .loc 1 1006 5 is_stmt 1 view .LVU243 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 863 .loc 1 1006 11 is_stmt 0 view .LVU244 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 38 864 0032 04E0 b .L112 865 .LVL54: 866 .L114: 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 867 .loc 1 1009 12 view .LVU245 868 0034 FFF7FEFF bl HAL_GetTick 869 .LVL55: 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 870 .loc 1 1009 26 view .LVU246 871 0038 431B subs r3, r0, r5 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 872 .loc 1 1009 10 view .LVU247 873 003a 0A2B cmp r3, #10 874 003c 08D8 bhi .L118 875 .L112: 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 876 .loc 1 1009 7 is_stmt 1 view .LVU248 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 877 .loc 1 1006 11 view .LVU249 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 878 .loc 1 1006 17 is_stmt 0 view .LVU250 879 003e 2368 ldr r3, [r4] 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 880 .loc 1 1006 27 view .LVU251 881 0040 5B68 ldr r3, [r3, #4] 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 882 .loc 1 1006 11 view .LVU252 883 0042 13F00103 ands r3, r3, #1 884 0046 F5D1 bne .L114 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 885 .loc 1 1022 5 is_stmt 1 view .LVU253 1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 886 .loc 1 1025 12 is_stmt 0 view .LVU254 887 0048 1E46 mov r6, r3 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 888 .loc 1 1022 21 view .LVU255 889 004a 6362 str r3, [r4, #36] 1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 890 .loc 1 1025 5 is_stmt 1 view .LVU256 891 .loc 1 1034 1 is_stmt 0 view .LVU257 892 004c 3046 mov r0, r6 893 004e 70BD pop {r4, r5, r6, pc} 894 .LVL56: 895 .L118: 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 896 .loc 1 1012 9 is_stmt 1 view .LVU258 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 897 .loc 1 1012 25 is_stmt 0 view .LVU259 898 0050 636A ldr r3, [r4, #36] 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 899 .loc 1 1015 21 view .LVU260 900 0052 0522 movs r2, #5 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 901 .loc 1 1012 25 view .LVU261 902 0054 43F40033 orr r3, r3, #131072 903 0058 6362 str r3, [r4, #36] 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 39 904 .loc 1 1015 9 is_stmt 1 view .LVU262 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 905 .loc 1 1015 21 is_stmt 0 view .LVU263 906 005a 84F82020 strb r2, [r4, #32] 1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 907 .loc 1 1017 9 is_stmt 1 view .LVU264 908 .loc 1 1034 1 is_stmt 0 view .LVU265 909 005e 3046 mov r0, r6 910 0060 70BD pop {r4, r5, r6, pc} 911 .loc 1 1034 1 view .LVU266 912 .cfi_endproc 913 .LFE135: 915 0062 00BF .section .text.HAL_CAN_Stop,"ax",%progbits 916 .align 1 917 .p2align 2,,3 918 .global HAL_CAN_Stop 919 .syntax unified 920 .thumb 921 .thumb_func 923 HAL_CAN_Stop: 924 .LVL57: 925 .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 **** { 926 .loc 1 1043 1 is_stmt 1 view -0 927 .cfi_startproc 928 @ args = 0, pretend = 0, frame = 0 929 @ frame_needed = 0, uses_anonymous_args = 0 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 930 .loc 1 1044 3 view .LVU268 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) 931 .loc 1 1046 3 view .LVU269 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 932 .loc 1 1043 1 is_stmt 0 view .LVU270 933 0000 38B5 push {r3, r4, r5, lr} 934 .LCFI4: 935 .cfi_def_cfa_offset 16 936 .cfi_offset 3, -16 937 .cfi_offset 4, -12 938 .cfi_offset 5, -8 939 .cfi_offset 14, -4 940 .loc 1 1046 11 view .LVU271 941 0002 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 942 .loc 1 1046 6 view .LVU272 943 0006 022B cmp r3, #2 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart; 944 .loc 1 1043 1 view .LVU273 945 0008 0446 mov r4, r0 946 .loc 1 1046 6 view .LVU274 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 40 947 000a 05D0 beq .L126 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); 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(); 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) 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) 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; 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; 1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 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); 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; 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; 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; 948 .loc 1 1082 5 is_stmt 1 view .LVU275 949 .loc 1 1082 21 is_stmt 0 view .LVU276 950 000c 436A ldr r3, [r0, #36] 951 000e 43F48013 orr r3, r3, #1048576 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 952 .loc 1 1084 12 view .LVU277 953 0012 0120 movs r0, #1 954 .LVL58: 1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 955 .loc 1 1082 21 view .LVU278 956 0014 6362 str r3, [r4, #36] 957 .loc 1 1084 5 is_stmt 1 view .LVU279 1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 958 .loc 1 1086 1 is_stmt 0 view .LVU280 959 0016 38BD pop {r3, r4, r5, pc} 960 .LVL59: 961 .L126: 962 .LBB6: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 41 963 .LBI6: 1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 964 .loc 1 1042 19 is_stmt 1 view .LVU281 965 .LBB7: 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 966 .loc 1 1049 5 view .LVU282 967 0018 0268 ldr r2, [r0] 968 001a 1368 ldr r3, [r2] 969 001c 43F00103 orr r3, r3, #1 970 0020 1360 str r3, [r2] 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 971 .loc 1 1052 5 view .LVU283 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 972 .loc 1 1052 17 is_stmt 0 view .LVU284 973 0022 FFF7FEFF bl HAL_GetTick 974 .LVL60: 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 975 .loc 1 1052 17 view .LVU285 976 0026 0546 mov r5, r0 977 .LVL61: 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 978 .loc 1 1055 5 is_stmt 1 view .LVU286 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 979 .loc 1 1055 11 is_stmt 0 view .LVU287 980 0028 04E0 b .L121 981 .LVL62: 982 .L123: 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 983 .loc 1 1058 12 view .LVU288 984 002a FFF7FEFF bl HAL_GetTick 985 .LVL63: 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 986 .loc 1 1058 26 view .LVU289 987 002e 431B subs r3, r0, r5 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 988 .loc 1 1058 10 view .LVU290 989 0030 0A2B cmp r3, #10 990 0032 0CD8 bhi .L127 991 .L121: 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 992 .loc 1 1058 7 is_stmt 1 view .LVU291 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 993 .loc 1 1055 11 view .LVU292 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 994 .loc 1 1055 17 is_stmt 0 view .LVU293 995 0034 2368 ldr r3, [r4] 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 996 .loc 1 1055 27 view .LVU294 997 0036 5A68 ldr r2, [r3, #4] 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 998 .loc 1 1055 11 view .LVU295 999 0038 D207 lsls r2, r2, #31 1000 003a F6D5 bpl .L123 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1001 .loc 1 1071 5 is_stmt 1 view .LVU296 1002 003c 1A68 ldr r2, [r3] 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 42 1003 .loc 1 1074 17 is_stmt 0 view .LVU297 1004 003e 0121 movs r1, #1 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1005 .loc 1 1071 5 view .LVU298 1006 0040 22F00202 bic r2, r2, #2 1007 0044 1A60 str r2, [r3] 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1008 .loc 1 1074 5 is_stmt 1 view .LVU299 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1009 .loc 1 1074 17 is_stmt 0 view .LVU300 1010 0046 84F82010 strb r1, [r4, #32] 1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1011 .loc 1 1077 5 is_stmt 1 view .LVU301 1012 .LVL64: 1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1013 .loc 1 1077 12 is_stmt 0 view .LVU302 1014 004a 0020 movs r0, #0 1015 .LBE7: 1016 .LBE6: 1017 .loc 1 1086 1 view .LVU303 1018 004c 38BD pop {r3, r4, r5, pc} 1019 .LVL65: 1020 .L127: 1021 .LBB9: 1022 .LBB8: 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1023 .loc 1 1061 9 is_stmt 1 view .LVU304 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1024 .loc 1 1061 25 is_stmt 0 view .LVU305 1025 004e 636A ldr r3, [r4, #36] 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1026 .loc 1 1064 21 view .LVU306 1027 0050 0522 movs r2, #5 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1028 .loc 1 1061 25 view .LVU307 1029 0052 43F40033 orr r3, r3, #131072 1030 0056 6362 str r3, [r4, #36] 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1031 .loc 1 1064 9 is_stmt 1 view .LVU308 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1032 .loc 1 1064 21 is_stmt 0 view .LVU309 1033 0058 84F82020 strb r2, [r4, #32] 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1034 .loc 1 1066 9 is_stmt 1 view .LVU310 1035 .LVL66: 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1036 .loc 1 1066 16 is_stmt 0 view .LVU311 1037 005c 0120 movs r0, #1 1038 .LBE8: 1039 .LBE9: 1040 .loc 1 1086 1 view .LVU312 1041 005e 38BD pop {r3, r4, r5, pc} 1042 .loc 1 1086 1 view .LVU313 1043 .cfi_endproc 1044 .LFE136: 1046 .section .text.HAL_CAN_DeInit,"ax",%progbits 1047 .align 1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 43 1048 .p2align 2,,3 1049 .global HAL_CAN_DeInit 1050 .syntax unified 1051 .thumb 1052 .thumb_func 1054 HAL_CAN_DeInit: 1055 .LVL67: 1056 .LFB131: 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check CAN handle */ 1057 .loc 1 461 1 is_stmt 1 view -0 1058 .cfi_startproc 1059 @ args = 0, pretend = 0, frame = 0 1060 @ frame_needed = 0, uses_anonymous_args = 0 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1061 .loc 1 463 3 view .LVU315 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1062 .loc 1 463 6 is_stmt 0 view .LVU316 1063 0000 D8B1 cbz r0, .L131 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1064 .loc 1 469 3 view .LVU317 1065 0002 0F4B ldr r3, .L136 1066 0004 0268 ldr r2, [r0] 1067 0006 9A42 cmp r2, r3 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check CAN handle */ 1068 .loc 1 461 1 view .LVU318 1069 0008 10B5 push {r4, lr} 1070 .LCFI5: 1071 .cfi_def_cfa_offset 8 1072 .cfi_offset 4, -8 1073 .cfi_offset 14, -4 1074 000a 0446 mov r4, r0 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1075 .loc 1 469 3 is_stmt 1 view .LVU319 1076 000c 04D0 beq .L130 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1077 .loc 1 469 3 is_stmt 0 discriminator 1 view .LVU320 1078 000e 0D48 ldr r0, .L136+4 1079 .LVL68: 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1080 .loc 1 469 3 discriminator 1 view .LVU321 1081 0010 40F2D511 movw r1, #469 1082 0014 FFF7FEFF bl assert_failed 1083 .LVL69: 1084 .L130: 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1085 .loc 1 472 3 is_stmt 1 view .LVU322 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1086 .loc 1 472 9 is_stmt 0 view .LVU323 1087 0018 2046 mov r0, r4 1088 001a FFF7FEFF bl HAL_CAN_Stop 1089 .LVL70: 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1090 .loc 1 485 3 is_stmt 1 view .LVU324 1091 001e 2046 mov r0, r4 1092 0020 FFF7FEFF bl HAL_CAN_MspDeInit 1093 .LVL71: 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 44 1094 .loc 1 489 3 view .LVU325 1095 0024 2168 ldr r1, [r4] 1096 0026 0A68 ldr r2, [r1] 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1097 .loc 1 492 19 is_stmt 0 view .LVU326 1098 0028 0023 movs r3, #0 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1099 .loc 1 489 3 view .LVU327 1100 002a 42F40042 orr r2, r2, #32768 1101 002e 0A60 str r2, [r1] 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1102 .loc 1 492 3 is_stmt 1 view .LVU328 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1103 .loc 1 492 19 is_stmt 0 view .LVU329 1104 0030 6362 str r3, [r4, #36] 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1105 .loc 1 495 3 is_stmt 1 view .LVU330 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1106 .loc 1 495 15 is_stmt 0 view .LVU331 1107 0032 84F82030 strb r3, [r4, #32] 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1108 .loc 1 498 3 is_stmt 1 view .LVU332 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1109 .loc 1 498 10 is_stmt 0 view .LVU333 1110 0036 1846 mov r0, r3 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1111 .loc 1 499 1 view .LVU334 1112 0038 10BD pop {r4, pc} 1113 .LVL72: 1114 .L131: 1115 .LCFI6: 1116 .cfi_def_cfa_offset 0 1117 .cfi_restore 4 1118 .cfi_restore 14 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1119 .loc 1 465 12 view .LVU335 1120 003a 0120 movs r0, #1 1121 .LVL73: 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1122 .loc 1 499 1 view .LVU336 1123 003c 7047 bx lr 1124 .L137: 1125 003e 00BF .align 2 1126 .L136: 1127 0040 00640040 .word 1073767424 1128 0044 00000000 .word .LC0 1129 .cfi_endproc 1130 .LFE131: 1132 .section .text.HAL_CAN_RequestSleep,"ax",%progbits 1133 .align 1 1134 .p2align 2,,3 1135 .global HAL_CAN_RequestSleep 1136 .syntax unified 1137 .thumb 1138 .thumb_func 1140 HAL_CAN_RequestSleep: 1141 .LVL74: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 45 1142 .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 **** */ 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 **** { 1143 .loc 1 1098 1 is_stmt 1 view -0 1144 .cfi_startproc 1145 @ args = 0, pretend = 0, frame = 0 1146 @ frame_needed = 0, uses_anonymous_args = 0 1147 @ link register save eliminated. 1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1148 .loc 1 1099 3 view .LVU338 1149 .loc 1 1099 24 is_stmt 0 view .LVU339 1150 0000 90F82020 ldrb r2, [r0, #32] @ zero_extendqisi2 1151 .LVL75: 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) || 1152 .loc 1 1101 3 is_stmt 1 view .LVU340 1153 .loc 1 1101 6 is_stmt 0 view .LVU341 1154 0004 013A subs r2, r2, #1 1155 .LVL76: 1156 .loc 1 1101 6 view .LVU342 1157 0006 012A cmp r2, #1 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1158 .loc 1 1098 1 view .LVU343 1159 0008 0346 mov r3, r0 1160 .loc 1 1101 6 view .LVU344 1161 000a 05D9 bls .L141 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); 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; 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 */ 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1162 .loc 1 1113 5 is_stmt 1 view .LVU345 1163 .loc 1 1113 21 is_stmt 0 view .LVU346 1164 000c 426A ldr r2, [r0, #36] 1165 000e 42F48022 orr r2, r2, #262144 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; 1166 .loc 1 1116 12 view .LVU347 1167 0012 0120 movs r0, #1 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 46 1168 .LVL77: 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1169 .loc 1 1113 21 view .LVU348 1170 0014 5A62 str r2, [r3, #36] 1171 .loc 1 1116 5 is_stmt 1 view .LVU349 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1172 .loc 1 1118 1 is_stmt 0 view .LVU350 1173 0016 7047 bx lr 1174 .LVL78: 1175 .L141: 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1176 .loc 1 1105 5 is_stmt 1 view .LVU351 1177 0018 0268 ldr r2, [r0] 1178 001a 1368 ldr r3, [r2] 1179 001c 43F00203 orr r3, r3, #2 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1180 .loc 1 1108 12 is_stmt 0 view .LVU352 1181 0020 0020 movs r0, #0 1182 .LVL79: 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1183 .loc 1 1105 5 view .LVU353 1184 0022 1360 str r3, [r2] 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1185 .loc 1 1108 5 is_stmt 1 view .LVU354 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1186 .loc 1 1108 12 is_stmt 0 view .LVU355 1187 0024 7047 bx lr 1188 .cfi_endproc 1189 .LFE137: 1191 0026 00BF .section .text.HAL_CAN_WakeUp,"ax",%progbits 1192 .align 1 1193 .p2align 2,,3 1194 .global HAL_CAN_WakeUp 1195 .syntax unified 1196 .thumb 1197 .thumb_func 1199 HAL_CAN_WakeUp: 1200 .LVL80: 1201 .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 **** { 1202 .loc 1 1129 1 is_stmt 1 view -0 1203 .cfi_startproc 1204 @ args = 0, pretend = 0, frame = 8 1205 @ frame_needed = 0, uses_anonymous_args = 0 1206 @ link register save eliminated. 1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __IO uint32_t count = 0; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 47 1207 .loc 1 1130 3 view .LVU357 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __IO uint32_t count = 0; 1208 .loc 1 1129 1 is_stmt 0 view .LVU358 1209 0000 82B0 sub sp, sp, #8 1210 .LCFI7: 1211 .cfi_def_cfa_offset 8 1212 .loc 1 1130 17 view .LVU359 1213 0002 0023 movs r3, #0 1214 0004 0193 str r3, [sp, #4] 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1215 .loc 1 1131 3 is_stmt 1 view .LVU360 1216 .loc 1 1131 24 is_stmt 0 view .LVU361 1217 0006 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 1218 .LVL81: 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) || 1219 .loc 1 1133 3 is_stmt 1 view .LVU362 1220 .loc 1 1133 6 is_stmt 0 view .LVU363 1221 000a 013B subs r3, r3, #1 1222 .LVL82: 1223 .loc 1 1133 6 view .LVU364 1224 000c 012B cmp r3, #1 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __IO uint32_t count = 0; 1225 .loc 1 1129 1 view .LVU365 1226 000e 0146 mov r1, r0 1227 .loc 1 1133 6 view .LVU366 1228 0010 17D8 bhi .L143 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); 1229 .loc 1 1137 5 is_stmt 1 view .LVU367 1230 0012 0268 ldr r2, [r0] 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++; 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) 1231 .loc 1 1146 10 is_stmt 0 view .LVU368 1232 0014 1048 ldr r0, .L150 1233 .LVL83: 1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1234 .loc 1 1137 5 view .LVU369 1235 0016 1368 ldr r3, [r2] 1236 0018 23F00203 bic r3, r3, #2 1237 001c 1360 str r3, [r2] 1238 001e 03E0 b .L146 1239 .L144: 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; 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 48 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); 1240 .loc 1 1153 29 view .LVU370 1241 0020 5368 ldr r3, [r2, #4] 1242 .loc 1 1153 5 view .LVU371 1243 0022 13F00203 ands r3, r3, #2 1244 0026 13D0 beq .L149 1245 .L146: 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1246 .loc 1 1140 5 is_stmt 1 view .LVU372 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1247 .loc 1 1143 7 view .LVU373 1248 .loc 1 1153 13 view .LVU374 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1249 .loc 1 1143 12 is_stmt 0 view .LVU375 1250 0028 019B ldr r3, [sp, #4] 1251 002a 0133 adds r3, r3, #1 1252 002c 0193 str r3, [sp, #4] 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1253 .loc 1 1146 7 is_stmt 1 view .LVU376 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1254 .loc 1 1146 17 is_stmt 0 view .LVU377 1255 002e 019B ldr r3, [sp, #4] 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1256 .loc 1 1146 10 view .LVU378 1257 0030 8342 cmp r3, r0 1258 0032 F5D9 bls .L144 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1259 .loc 1 1149 9 is_stmt 1 view .LVU379 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1260 .loc 1 1149 25 is_stmt 0 view .LVU380 1261 0034 4B6A ldr r3, [r1, #36] 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1262 .loc 1 1151 16 view .LVU381 1263 0036 0120 movs r0, #1 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1264 .loc 1 1149 25 view .LVU382 1265 0038 43F40033 orr r3, r3, #131072 1266 003c 4B62 str r3, [r1, #36] 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1267 .loc 1 1151 9 is_stmt 1 view .LVU383 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; 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; 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1268 .loc 1 1165 1 is_stmt 0 view .LVU384 1269 003e 02B0 add sp, sp, #8 1270 .LCFI8: 1271 .cfi_remember_state ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 49 1272 .cfi_def_cfa_offset 0 1273 @ sp needed 1274 0040 7047 bx lr 1275 .LVL84: 1276 .L143: 1277 .LCFI9: 1278 .cfi_restore_state 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1279 .loc 1 1161 5 is_stmt 1 view .LVU385 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1280 .loc 1 1161 21 is_stmt 0 view .LVU386 1281 0042 436A ldr r3, [r0, #36] 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1282 .loc 1 1163 12 view .LVU387 1283 0044 0120 movs r0, #1 1284 .LVL85: 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1285 .loc 1 1161 21 view .LVU388 1286 0046 43F48023 orr r3, r3, #262144 1287 004a 4B62 str r3, [r1, #36] 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1288 .loc 1 1163 5 is_stmt 1 view .LVU389 1289 .loc 1 1165 1 is_stmt 0 view .LVU390 1290 004c 02B0 add sp, sp, #8 1291 .LCFI10: 1292 .cfi_remember_state 1293 .cfi_def_cfa_offset 0 1294 @ sp needed 1295 004e 7047 bx lr 1296 .L149: 1297 .LCFI11: 1298 .cfi_restore_state 1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1299 .loc 1 1156 12 view .LVU391 1300 0050 1846 mov r0, r3 1301 .loc 1 1165 1 view .LVU392 1302 0052 02B0 add sp, sp, #8 1303 .LCFI12: 1304 .cfi_def_cfa_offset 0 1305 @ sp needed 1306 0054 7047 bx lr 1307 .L151: 1308 0056 00BF .align 2 1309 .L150: 1310 0058 40420F00 .word 1000000 1311 .cfi_endproc 1312 .LFE138: 1314 .section .text.HAL_CAN_IsSleepActive,"ax",%progbits 1315 .align 1 1316 .p2align 2,,3 1317 .global HAL_CAN_IsSleepActive 1318 .syntax unified 1319 .thumb 1320 .thumb_func 1322 HAL_CAN_IsSleepActive: 1323 .LVL86: 1324 .LFB139: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 50 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 **** { 1325 .loc 1 1176 1 is_stmt 1 view -0 1326 .cfi_startproc 1327 @ args = 0, pretend = 0, frame = 0 1328 @ frame_needed = 0, uses_anonymous_args = 0 1329 @ link register save eliminated. 1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t status = 0U; 1330 .loc 1 1177 3 view .LVU394 1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1331 .loc 1 1178 3 view .LVU395 1332 .loc 1 1178 24 is_stmt 0 view .LVU396 1333 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 1334 .LVL87: 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) || 1335 .loc 1 1180 3 is_stmt 1 view .LVU397 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) 1336 .loc 1 1184 5 view .LVU398 1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1337 .loc 1 1180 6 is_stmt 0 view .LVU399 1338 0004 013B subs r3, r3, #1 1339 .LVL88: 1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1340 .loc 1 1180 6 view .LVU400 1341 0006 012B cmp r3, #1 1342 .loc 1 1184 14 view .LVU401 1343 0008 9DBF ittte ls 1344 000a 0368 ldrls r3, [r0] 1345 .loc 1 1184 24 view .LVU402 1346 000c 5868 ldrls r0, [r3, #4] 1347 .LVL89: 1348 .loc 1 1184 8 view .LVU403 1349 000e C0F34000 ubfxls r0, r0, #1, #1 1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1350 .loc 1 1177 12 view .LVU404 1351 0012 0020 movhi r0, #0 1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = 1U; 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; 1352 .loc 1 1191 3 is_stmt 1 view .LVU405 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 51 1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1353 .loc 1 1192 1 is_stmt 0 view .LVU406 1354 0014 7047 bx lr 1355 .cfi_endproc 1356 .LFE139: 1358 0016 00BF .section .text.HAL_CAN_AddTxMessage,"ax",%progbits 1359 .align 1 1360 .p2align 2,,3 1361 .global HAL_CAN_AddTxMessage 1362 .syntax unified 1363 .thumb 1364 .thumb_func 1366 HAL_CAN_AddTxMessage: 1367 .LVL90: 1368 .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 **** { 1369 .loc 1 1208 1 is_stmt 1 view -0 1370 .cfi_startproc 1371 @ args = 0, pretend = 0, frame = 0 1372 @ frame_needed = 0, uses_anonymous_args = 0 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox; 1373 .loc 1 1209 3 view .LVU408 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1374 .loc 1 1210 3 view .LVU409 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox; 1375 .loc 1 1208 1 is_stmt 0 view .LVU410 1376 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 1377 .LCFI13: 1378 .cfi_def_cfa_offset 32 1379 .cfi_offset 3, -32 1380 .cfi_offset 4, -28 1381 .cfi_offset 5, -24 1382 .cfi_offset 6, -20 1383 .cfi_offset 7, -16 1384 .cfi_offset 8, -12 1385 .cfi_offset 9, -8 1386 .cfi_offset 14, -4 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox; 1387 .loc 1 1208 1 view .LVU411 1388 0004 9946 mov r9, r3 1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tsr = READ_REG(hcan->Instance->TSR); 1389 .loc 1 1211 18 view .LVU412 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 52 1390 0006 0368 ldr r3, [r0] 1391 .LVL91: 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1392 .loc 1 1210 24 view .LVU413 1393 0008 90F82060 ldrb r6, [r0, #32] @ zero_extendqisi2 1394 .loc 1 1211 12 view .LVU414 1395 000c 9F68 ldr r7, [r3, #8] 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)); 1396 .loc 1 1214 3 view .LVU415 1397 000e 8B68 ldr r3, [r1, #8] 1398 0010 33F00403 bics r3, r3, #4 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox; 1399 .loc 1 1208 1 view .LVU416 1400 0014 0546 mov r5, r0 1401 0016 0C46 mov r4, r1 1402 0018 9046 mov r8, r2 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tsr = READ_REG(hcan->Instance->TSR); 1403 .loc 1 1210 24 view .LVU417 1404 001a F6B2 uxtb r6, r6 1405 .LVL92: 1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1406 .loc 1 1211 3 is_stmt 1 view .LVU418 1407 .loc 1 1214 3 view .LVU419 1408 001c 04D0 beq .L156 1409 .loc 1 1214 3 is_stmt 0 discriminator 2 view .LVU420 1410 001e 4448 ldr r0, .L179 1411 .LVL93: 1412 .loc 1 1214 3 discriminator 2 view .LVU421 1413 0020 40F2BE41 movw r1, #1214 1414 .LVL94: 1415 .loc 1 1214 3 discriminator 2 view .LVU422 1416 0024 FFF7FEFF bl assert_failed 1417 .LVL95: 1418 .L156: 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_RTR(pHeader->RTR)); 1419 .loc 1 1215 3 is_stmt 1 view .LVU423 1420 0028 E368 ldr r3, [r4, #12] 1421 002a 33F00203 bics r3, r3, #2 1422 002e 04D0 beq .L157 1423 .loc 1 1215 3 is_stmt 0 discriminator 2 view .LVU424 1424 0030 3F48 ldr r0, .L179 1425 0032 40F2BF41 movw r1, #1215 1426 0036 FFF7FEFF bl assert_failed 1427 .LVL96: 1428 .L157: 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_DLC(pHeader->DLC)); 1429 .loc 1 1216 3 is_stmt 1 view .LVU425 1430 003a 2369 ldr r3, [r4, #16] 1431 003c 082B cmp r3, #8 1432 003e 61D8 bhi .L175 1433 .L158: 1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 1434 .loc 1 1217 3 view .LVU426 1435 .loc 1 1217 6 is_stmt 0 view .LVU427 1436 0040 A368 ldr r3, [r4, #8] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 53 1437 0042 002B cmp r3, #0 1438 0044 4DD1 bne .L159 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)); 1439 .loc 1 1219 5 is_stmt 1 view .LVU428 1440 0046 2368 ldr r3, [r4] 1441 0048 B3F5006F cmp r3, #2048 1442 004c 60D2 bcs .L176 1443 .L160: 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)); 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)); 1444 .loc 1 1225 3 view .LVU429 1445 004e 237D ldrb r3, [r4, #20] @ zero_extendqisi2 1446 0050 012B cmp r3, #1 1447 0052 04D9 bls .L161 1448 .loc 1 1225 3 is_stmt 0 discriminator 1 view .LVU430 1449 0054 3648 ldr r0, .L179 1450 0056 40F2C941 movw r1, #1225 1451 005a FFF7FEFF bl assert_failed 1452 .LVL97: 1453 .L161: 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) || 1454 .loc 1 1227 3 is_stmt 1 view .LVU431 1455 .loc 1 1227 6 is_stmt 0 view .LVU432 1456 005e 013E subs r6, r6, #1 1457 .LVL98: 1458 .loc 1 1227 6 view .LVU433 1459 0060 012E cmp r6, #1 1460 0062 48D8 bhi .L162 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) || 1461 .loc 1 1231 5 is_stmt 1 view .LVU434 1462 .loc 1 1231 8 is_stmt 0 view .LVU435 1463 0064 17F0E05F tst r7, #469762048 1464 0068 06D1 bne .L177 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) || 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((tsr & CAN_TSR_TME2) != 0U)) 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; 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; 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) 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) | 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 54 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) | 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 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); 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) 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); 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, 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, 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 */ 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TIR, CAN_TI0R_TXRQ); 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; 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; 1465 .loc 1 1284 7 is_stmt 1 view .LVU436 1466 .loc 1 1284 23 is_stmt 0 view .LVU437 1467 006a 6B6A ldr r3, [r5, #36] 1468 006c 43F40013 orr r3, r3, #2097152 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1469 .loc 1 1286 14 view .LVU438 1470 0070 0120 movs r0, #1 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1471 .loc 1 1284 23 view .LVU439 1472 0072 6B62 str r3, [r5, #36] 1473 .loc 1 1286 7 is_stmt 1 view .LVU440 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; 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 55 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1474 .loc 1 1296 1 is_stmt 0 view .LVU441 1475 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1476 .LVL99: 1477 .L177: 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1478 .loc 1 1236 7 is_stmt 1 view .LVU442 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1479 .loc 1 1236 23 is_stmt 0 view .LVU443 1480 0078 C7F30167 ubfx r7, r7, #24, #2 1481 .LVL100: 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1482 .loc 1 1239 7 is_stmt 1 view .LVU444 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1483 .loc 1 1239 33 is_stmt 0 view .LVU445 1484 007c 0123 movs r3, #1 1485 007e BB40 lsls r3, r3, r7 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1486 .loc 1 1239 19 view .LVU446 1487 0080 C9F80030 str r3, [r9] 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1488 .loc 1 1242 7 is_stmt 1 view .LVU447 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1489 .loc 1 1242 18 is_stmt 0 view .LVU448 1490 0084 A268 ldr r2, [r4, #8] 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1491 .loc 1 1242 10 view .LVU449 1492 0086 002A cmp r2, #0 1493 0088 48D0 beq .L178 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1494 .loc 1 1249 9 is_stmt 1 view .LVU450 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1495 .loc 1 1250 73 is_stmt 0 view .LVU451 1496 008a E168 ldr r1, [r4, #12] 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1497 .loc 1 1249 13 view .LVU452 1498 008c 2B68 ldr r3, [r5] 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1499 .loc 1 1250 73 view .LVU453 1500 008e 0A43 orrs r2, r2, r1 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1501 .loc 1 1249 76 view .LVU454 1502 0090 6168 ldr r1, [r4, #4] 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1503 .loc 1 1250 73 view .LVU455 1504 0092 42EAC102 orr r2, r2, r1, lsl #3 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE | 1505 .loc 1 1249 57 view .LVU456 1506 0096 07F11801 add r1, r7, #24 1507 009a 0901 lsls r1, r1, #4 1508 009c 5A50 str r2, [r3, r1] 1509 .L165: 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1510 .loc 1 1255 7 is_stmt 1 view .LVU457 1511 009e 03EB0712 add r2, r3, r7, lsl #4 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 56 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1512 .loc 1 1255 66 is_stmt 0 view .LVU458 1513 00a2 2169 ldr r1, [r4, #16] 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1514 .loc 1 1255 56 view .LVU459 1515 00a4 C2F88411 str r1, [r2, #388] 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1516 .loc 1 1258 7 is_stmt 1 view .LVU460 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1517 .loc 1 1258 10 is_stmt 0 view .LVU461 1518 00a8 217D ldrb r1, [r4, #20] @ zero_extendqisi2 1519 00aa 0129 cmp r1, #1 1520 00ac 4FEA0717 lsl r7, r7, #4 1521 .LVL101: 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1522 .loc 1 1258 10 view .LVU462 1523 00b0 05D1 bne .L166 1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1524 .loc 1 1260 9 is_stmt 1 view .LVU463 1525 00b2 D2F88411 ldr r1, [r2, #388] 1526 00b6 41F48071 orr r1, r1, #256 1527 00ba C2F88411 str r1, [r2, #388] 1528 .L166: 1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[7] << CAN_TDH0R_DATA7_Pos) | 1529 .loc 1 1264 7 view .LVU464 1530 00be 1F44 add r7, r7, r3 1531 00c0 D8F80430 ldr r3, [r8, #4] @ unaligned 1532 00c4 C7F88C31 str r3, [r7, #396] 1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[3] << CAN_TDL0R_DATA3_Pos) | 1533 .loc 1 1269 7 view .LVU465 1534 00c8 D8F80030 ldr r3, [r8] @ unaligned 1535 00cc C7F88831 str r3, [r7, #392] 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1536 .loc 1 1276 7 view .LVU466 1537 00d0 D2F88031 ldr r3, [r2, #384] 1538 00d4 43F00103 orr r3, r3, #1 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1539 .loc 1 1279 14 is_stmt 0 view .LVU467 1540 00d8 0020 movs r0, #0 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1541 .loc 1 1276 7 view .LVU468 1542 00da C2F88031 str r3, [r2, #384] 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1543 .loc 1 1279 7 is_stmt 1 view .LVU469 1544 .loc 1 1296 1 is_stmt 0 view .LVU470 1545 00de BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1546 .LVL102: 1547 .L159: 1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1548 .loc 1 1223 5 is_stmt 1 view .LVU471 1549 00e2 6368 ldr r3, [r4, #4] 1550 00e4 B3F1005F cmp r3, #536870912 1551 00e8 B1D3 bcc .L160 1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1552 .loc 1 1223 5 is_stmt 0 discriminator 1 view .LVU472 1553 00ea 1148 ldr r0, .L179 1554 00ec 40F2C741 movw r1, #1223 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 57 1555 00f0 FFF7FEFF bl assert_failed 1556 .LVL103: 1557 00f4 ABE7 b .L160 1558 .LVL104: 1559 .L162: 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1560 .loc 1 1292 5 is_stmt 1 view .LVU473 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1561 .loc 1 1292 21 is_stmt 0 view .LVU474 1562 00f6 6B6A ldr r3, [r5, #36] 1563 00f8 43F48023 orr r3, r3, #262144 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1564 .loc 1 1294 12 view .LVU475 1565 00fc 0120 movs r0, #1 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1566 .loc 1 1292 21 view .LVU476 1567 00fe 6B62 str r3, [r5, #36] 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1568 .loc 1 1294 5 is_stmt 1 view .LVU477 1569 .loc 1 1296 1 is_stmt 0 view .LVU478 1570 0100 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1571 .LVL105: 1572 .L175: 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 1573 .loc 1 1216 3 discriminator 1 view .LVU479 1574 0104 0A48 ldr r0, .L179 1575 0106 4FF49861 mov r1, #1216 1576 010a FFF7FEFF bl assert_failed 1577 .LVL106: 1578 010e 97E7 b .L158 1579 .L176: 1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1580 .loc 1 1219 5 discriminator 1 view .LVU480 1581 0110 0748 ldr r0, .L179 1582 0112 40F2C341 movw r1, #1219 1583 0116 FFF7FEFF bl assert_failed 1584 .LVL107: 1585 011a 98E7 b .L160 1586 .LVL108: 1587 .L178: 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1588 .loc 1 1244 9 is_stmt 1 view .LVU481 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1589 .loc 1 1244 98 is_stmt 0 view .LVU482 1590 011c E268 ldr r2, [r4, #12] 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1591 .loc 1 1244 76 view .LVU483 1592 011e 2168 ldr r1, [r4] 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1593 .loc 1 1244 13 view .LVU484 1594 0120 2B68 ldr r3, [r5] 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1595 .loc 1 1244 98 view .LVU485 1596 0122 42EA4151 orr r1, r2, r1, lsl #21 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR); 1597 .loc 1 1244 57 view .LVU486 1598 0126 07F11802 add r2, r7, #24 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 58 1599 012a 1201 lsls r2, r2, #4 1600 012c 9950 str r1, [r3, r2] 1601 012e B6E7 b .L165 1602 .L180: 1603 .align 2 1604 .L179: 1605 0130 00000000 .word .LC0 1606 .cfi_endproc 1607 .LFE140: 1609 .section .text.HAL_CAN_AbortTxRequest,"ax",%progbits 1610 .align 1 1611 .p2align 2,,3 1612 .global HAL_CAN_AbortTxRequest 1613 .syntax unified 1614 .thumb 1615 .thumb_func 1617 HAL_CAN_AbortTxRequest: 1618 .LVL109: 1619 .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 **** { 1620 .loc 1 1307 1 is_stmt 1 view -0 1621 .cfi_startproc 1622 @ args = 0, pretend = 0, frame = 0 1623 @ frame_needed = 0, uses_anonymous_args = 0 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1624 .loc 1 1308 3 view .LVU488 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1625 .loc 1 1307 1 is_stmt 0 view .LVU489 1626 0000 70B5 push {r4, r5, r6, lr} 1627 .LCFI14: 1628 .cfi_def_cfa_offset 16 1629 .cfi_offset 4, -16 1630 .cfi_offset 5, -12 1631 .cfi_offset 6, -8 1632 .cfi_offset 14, -4 1633 .loc 1 1308 24 view .LVU490 1634 0002 90F82050 ldrb r5, [r0, #32] @ zero_extendqisi2 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)); 1635 .loc 1 1311 3 view .LVU491 1636 0006 0729 cmp r1, #7 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1637 .loc 1 1307 1 view .LVU492 1638 0008 0646 mov r6, r0 1639 000a 0C46 mov r4, r1 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 59 1640 .loc 1 1308 24 view .LVU493 1641 000c EDB2 uxtb r5, r5 1642 .LVL110: 1643 .loc 1 1311 3 is_stmt 1 view .LVU494 1644 000e 20D8 bhi .L195 1645 .LVL111: 1646 .L182: 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) || 1647 .loc 1 1313 3 view .LVU495 1648 .loc 1 1313 6 is_stmt 0 view .LVU496 1649 0010 013D subs r5, r5, #1 1650 .LVL112: 1651 .loc 1 1313 6 view .LVU497 1652 0012 012D cmp r5, #1 1653 0014 05D9 bls .L196 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) 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); 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) 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); 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) 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); 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; 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; 1654 .loc 1 1343 5 is_stmt 1 view .LVU498 1655 .loc 1 1343 21 is_stmt 0 view .LVU499 1656 0016 736A ldr r3, [r6, #36] 1657 0018 43F48023 orr r3, r3, #262144 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1658 .loc 1 1345 12 view .LVU500 1659 001c 0120 movs r0, #1 1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1660 .loc 1 1343 21 view .LVU501 1661 001e 7362 str r3, [r6, #36] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 60 1662 .loc 1 1345 5 is_stmt 1 view .LVU502 1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1663 .loc 1 1347 1 is_stmt 0 view .LVU503 1664 0020 70BD pop {r4, r5, r6, pc} 1665 .LVL113: 1666 .L196: 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1667 .loc 1 1317 5 is_stmt 1 view .LVU504 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1668 .loc 1 1317 8 is_stmt 0 view .LVU505 1669 0022 E207 lsls r2, r4, #31 1670 0024 04D5 bpl .L184 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1671 .loc 1 1320 7 is_stmt 1 view .LVU506 1672 0026 3268 ldr r2, [r6] 1673 0028 9368 ldr r3, [r2, #8] 1674 002a 43F08003 orr r3, r3, #128 1675 002e 9360 str r3, [r2, #8] 1676 .L184: 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1677 .loc 1 1324 5 view .LVU507 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1678 .loc 1 1324 8 is_stmt 0 view .LVU508 1679 0030 A307 lsls r3, r4, #30 1680 0032 04D5 bpl .L185 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1681 .loc 1 1327 7 is_stmt 1 view .LVU509 1682 0034 3268 ldr r2, [r6] 1683 0036 9368 ldr r3, [r2, #8] 1684 0038 43F40043 orr r3, r3, #32768 1685 003c 9360 str r3, [r2, #8] 1686 .L185: 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1687 .loc 1 1331 5 view .LVU510 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1688 .loc 1 1331 8 is_stmt 0 view .LVU511 1689 003e 14F00404 ands r4, r4, #4 1690 .LVL114: 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1691 .loc 1 1331 8 view .LVU512 1692 0042 0CD0 beq .L187 1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1693 .loc 1 1334 7 is_stmt 1 view .LVU513 1694 0044 3268 ldr r2, [r6] 1695 0046 9368 ldr r3, [r2, #8] 1696 0048 43F40003 orr r3, r3, #8388608 1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1697 .loc 1 1338 12 is_stmt 0 view .LVU514 1698 004c 0020 movs r0, #0 1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1699 .loc 1 1334 7 view .LVU515 1700 004e 9360 str r3, [r2, #8] 1701 .loc 1 1347 1 view .LVU516 1702 0050 70BD pop {r4, r5, r6, pc} 1703 .LVL115: 1704 .L195: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 61 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1705 .loc 1 1311 3 discriminator 1 view .LVU517 1706 0052 0448 ldr r0, .L197 1707 .LVL116: 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1708 .loc 1 1311 3 discriminator 1 view .LVU518 1709 0054 40F21F51 movw r1, #1311 1710 .LVL117: 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1711 .loc 1 1311 3 discriminator 1 view .LVU519 1712 0058 FFF7FEFF bl assert_failed 1713 .LVL118: 1714 005c D8E7 b .L182 1715 .LVL119: 1716 .L187: 1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1717 .loc 1 1338 12 view .LVU520 1718 005e 2046 mov r0, r4 1719 .loc 1 1347 1 view .LVU521 1720 0060 70BD pop {r4, r5, r6, pc} 1721 .LVL120: 1722 .L198: 1723 .loc 1 1347 1 view .LVU522 1724 0062 00BF .align 2 1725 .L197: 1726 0064 00000000 .word .LC0 1727 .cfi_endproc 1728 .LFE141: 1730 .section .text.HAL_CAN_GetTxMailboxesFreeLevel,"ax",%progbits 1731 .align 1 1732 .p2align 2,,3 1733 .global HAL_CAN_GetTxMailboxesFreeLevel 1734 .syntax unified 1735 .thumb 1736 .thumb_func 1738 HAL_CAN_GetTxMailboxesFreeLevel: 1739 .LVL121: 1740 .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 **** { 1741 .loc 1 1356 1 is_stmt 1 view -0 1742 .cfi_startproc 1743 @ args = 0, pretend = 0, frame = 0 1744 @ frame_needed = 0, uses_anonymous_args = 0 1745 @ link register save eliminated. 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t freelevel = 0U; 1746 .loc 1 1357 3 view .LVU524 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1747 .loc 1 1358 3 view .LVU525 1748 .loc 1 1358 24 is_stmt 0 view .LVU526 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 62 1749 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 1750 .LVL122: 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) || 1751 .loc 1 1360 3 is_stmt 1 view .LVU527 1752 .loc 1 1360 6 is_stmt 0 view .LVU528 1753 0004 013B subs r3, r3, #1 1754 .LVL123: 1755 .loc 1 1360 6 view .LVU529 1756 0006 012B cmp r3, #1 1757 0008 01D9 bls .L209 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1758 .loc 1 1357 12 view .LVU530 1759 000a 0020 movs r0, #0 1760 .LVL124: 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) 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** freelevel++; 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) 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** freelevel++; 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) 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** freelevel++; 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; 1761 .loc 1 1383 3 is_stmt 1 view .LVU531 1762 .L199: 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1763 .loc 1 1384 1 is_stmt 0 view .LVU532 1764 000c 7047 bx lr 1765 .LVL125: 1766 .L209: 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1767 .loc 1 1364 5 is_stmt 1 view .LVU533 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1768 .loc 1 1364 14 is_stmt 0 view .LVU534 1769 000e 0368 ldr r3, [r0] 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1770 .loc 1 1364 24 view .LVU535 1771 0010 9868 ldr r0, [r3, #8] 1772 .LVL126: 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1773 .loc 1 1370 24 view .LVU536 1774 0012 9A68 ldr r2, [r3, #8] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 63 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1775 .loc 1 1376 24 view .LVU537 1776 0014 9B68 ldr r3, [r3, #8] 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1777 .loc 1 1370 8 view .LVU538 1778 0016 1201 lsls r2, r2, #4 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1779 .loc 1 1364 8 view .LVU539 1780 0018 C0F38060 ubfx r0, r0, #26, #1 1781 .LVL127: 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1782 .loc 1 1370 5 is_stmt 1 view .LVU540 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1783 .loc 1 1372 7 view .LVU541 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1784 .loc 1 1372 16 is_stmt 0 view .LVU542 1785 001c 48BF it mi 1786 001e 0130 addmi r0, r0, #1 1787 .LVL128: 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1788 .loc 1 1376 5 is_stmt 1 view .LVU543 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1789 .loc 1 1376 8 is_stmt 0 view .LVU544 1790 0020 DB00 lsls r3, r3, #3 1791 0022 F3D5 bpl .L199 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1792 .loc 1 1378 7 is_stmt 1 view .LVU545 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1793 .loc 1 1378 16 is_stmt 0 view .LVU546 1794 0024 0130 adds r0, r0, #1 1795 .LVL129: 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1796 .loc 1 1378 16 view .LVU547 1797 0026 7047 bx lr 1798 .cfi_endproc 1799 .LFE142: 1801 .section .text.HAL_CAN_IsTxMessagePending,"ax",%progbits 1802 .align 1 1803 .p2align 2,,3 1804 .global HAL_CAN_IsTxMessagePending 1805 .syntax unified 1806 .thumb 1807 .thumb_func 1809 HAL_CAN_IsTxMessagePending: 1810 .LVL130: 1811 .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 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 64 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 **** { 1812 .loc 1 1399 1 is_stmt 1 view -0 1813 .cfi_startproc 1814 @ args = 0, pretend = 0, frame = 0 1815 @ frame_needed = 0, uses_anonymous_args = 0 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t status = 0U; 1816 .loc 1 1400 3 view .LVU549 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1817 .loc 1 1401 3 view .LVU550 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t status = 0U; 1818 .loc 1 1399 1 is_stmt 0 view .LVU551 1819 0000 70B5 push {r4, r5, r6, lr} 1820 .LCFI15: 1821 .cfi_def_cfa_offset 16 1822 .cfi_offset 4, -16 1823 .cfi_offset 5, -12 1824 .cfi_offset 6, -8 1825 .cfi_offset 14, -4 1826 .loc 1 1401 24 view .LVU552 1827 0002 90F82040 ldrb r4, [r0, #32] @ zero_extendqisi2 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)); 1828 .loc 1 1404 3 view .LVU553 1829 0006 0729 cmp r1, #7 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t status = 0U; 1830 .loc 1 1399 1 view .LVU554 1831 0008 0646 mov r6, r0 1832 000a 0D46 mov r5, r1 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1833 .loc 1 1401 24 view .LVU555 1834 000c E4B2 uxtb r4, r4 1835 .LVL131: 1836 .loc 1 1404 3 is_stmt 1 view .LVU556 1837 000e 0ED8 bhi .L215 1838 .LVL132: 1839 .L211: 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) || 1840 .loc 1 1406 3 view .LVU557 1841 .loc 1 1406 6 is_stmt 0 view .LVU558 1842 0010 013C subs r4, r4, #1 1843 .LVL133: 1844 .loc 1 1406 6 view .LVU559 1845 0012 012C cmp r4, #1 1846 0014 01D9 bls .L216 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1847 .loc 1 1400 12 view .LVU560 1848 0016 0020 movs r0, #0 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 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 65 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = 1U; 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; 1849 .loc 1 1417 3 is_stmt 1 view .LVU561 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1850 .loc 1 1418 1 is_stmt 0 view .LVU562 1851 0018 70BD pop {r4, r5, r6, pc} 1852 .LVL134: 1853 .L216: 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1854 .loc 1 1410 5 is_stmt 1 view .LVU563 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1855 .loc 1 1410 14 is_stmt 0 view .LVU564 1856 001a 3368 ldr r3, [r6] 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1857 .loc 1 1410 24 view .LVU565 1858 001c 9B68 ldr r3, [r3, #8] 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1859 .loc 1 1410 30 view .LVU566 1860 001e 03EA8563 and r3, r3, r5, lsl #26 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 1861 .loc 1 1410 8 view .LVU567 1862 0022 B3EB856F cmp r3, r5, lsl #26 1863 0026 14BF ite ne 1864 0028 0120 movne r0, #1 1865 002a 0020 moveq r0, #0 1866 .loc 1 1418 1 view .LVU568 1867 002c 70BD pop {r4, r5, r6, pc} 1868 .LVL135: 1869 .L215: 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1870 .loc 1 1404 3 discriminator 1 view .LVU569 1871 002e 0348 ldr r0, .L217 1872 .LVL136: 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1873 .loc 1 1404 3 discriminator 1 view .LVU570 1874 0030 40F27C51 movw r1, #1404 1875 .LVL137: 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1876 .loc 1 1404 3 discriminator 1 view .LVU571 1877 0034 FFF7FEFF bl assert_failed 1878 .LVL138: 1879 0038 EAE7 b .L211 1880 .L218: 1881 003a 00BF .align 2 1882 .L217: 1883 003c 00000000 .word .LC0 1884 .cfi_endproc 1885 .LFE143: 1887 .section .text.HAL_CAN_GetTxTimestamp,"ax",%progbits 1888 .align 1 1889 .p2align 2,,3 1890 .global HAL_CAN_GetTxTimestamp 1891 .syntax unified ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 66 1892 .thumb 1893 .thumb_func 1895 HAL_CAN_GetTxTimestamp: 1896 .LVL139: 1897 .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 **** { 1898 .loc 1 1431 1 is_stmt 1 view -0 1899 .cfi_startproc 1900 @ args = 0, pretend = 0, frame = 0 1901 @ frame_needed = 0, uses_anonymous_args = 0 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t timestamp = 0U; 1902 .loc 1 1432 3 view .LVU573 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox; 1903 .loc 1 1433 3 view .LVU574 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1904 .loc 1 1434 3 view .LVU575 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t timestamp = 0U; 1905 .loc 1 1431 1 is_stmt 0 view .LVU576 1906 0000 70B5 push {r4, r5, r6, lr} 1907 .LCFI16: 1908 .cfi_def_cfa_offset 16 1909 .cfi_offset 4, -16 1910 .cfi_offset 5, -12 1911 .cfi_offset 6, -8 1912 .cfi_offset 14, -4 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)); 1913 .loc 1 1437 3 view .LVU577 1914 0002 4B1E subs r3, r1, #1 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1915 .loc 1 1434 24 view .LVU578 1916 0004 90F82050 ldrb r5, [r0, #32] @ zero_extendqisi2 1917 .loc 1 1437 3 view .LVU579 1918 0008 012B cmp r3, #1 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t timestamp = 0U; 1919 .loc 1 1431 1 view .LVU580 1920 000a 0646 mov r6, r0 1921 000c 0C46 mov r4, r1 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1922 .loc 1 1434 24 view .LVU581 1923 000e EDB2 uxtb r5, r5 1924 .LVL140: 1925 .loc 1 1437 3 is_stmt 1 view .LVU582 1926 0010 01D9 bls .L220 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 67 1927 .loc 1 1437 3 is_stmt 0 discriminator 1 view .LVU583 1928 0012 0429 cmp r1, #4 1929 0014 04D1 bne .L227 1930 .L220: 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) || 1931 .loc 1 1439 3 is_stmt 1 view .LVU584 1932 .loc 1 1439 6 is_stmt 0 view .LVU585 1933 0016 013D subs r5, r5, #1 1934 .LVL141: 1935 .loc 1 1439 6 view .LVU586 1936 0018 012D cmp r5, #1 1937 001a 09D9 bls .L228 1938 .LVL142: 1939 .L222: 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox; 1940 .loc 1 1432 12 view .LVU587 1941 001c 0020 movs r0, #0 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); 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 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; 1942 .loc 1 1450 3 is_stmt 1 view .LVU588 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1943 .loc 1 1451 1 is_stmt 0 view .LVU589 1944 001e 70BD pop {r4, r5, r6, pc} 1945 .LVL143: 1946 .L227: 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1947 .loc 1 1437 3 discriminator 2 view .LVU590 1948 0020 0948 ldr r0, .L229 1949 .LVL144: 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1950 .loc 1 1437 3 discriminator 2 view .LVU591 1951 0022 40F29D51 movw r1, #1437 1952 .LVL145: 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1953 .loc 1 1439 6 discriminator 2 view .LVU592 1954 0026 013D subs r5, r5, #1 1955 .LVL146: 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1956 .loc 1 1437 3 discriminator 2 view .LVU593 1957 0028 FFF7FEFF bl assert_failed 1958 .LVL147: 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1959 .loc 1 1439 3 is_stmt 1 discriminator 2 view .LVU594 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1960 .loc 1 1439 6 is_stmt 0 discriminator 2 view .LVU595 1961 002c 012D cmp r5, #1 1962 002e F5D8 bhi .L222 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 68 1963 .LVL148: 1964 .L228: 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1965 .loc 1 1443 5 is_stmt 1 view .LVU596 1966 .LBB10: 1967 .LBI10: 1968 .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 **** 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 69 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; }; 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 70 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 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 71 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 **** */ 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; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 72 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 **** */ 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 **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 73 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; 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 **** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 74 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 **** 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 **** /** ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 75 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)) || \ 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 **** */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 76 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 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 **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 77 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) ); 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)) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 78 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 **** } 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; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 79 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))) 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 80 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 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 **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 81 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(); 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 **** */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 82 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 **** 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. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 83 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) 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; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 84 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 **** 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 **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 85 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) 1969 .loc 2 981 31 view .LVU597 1970 .LBB11: 982:Drivers/CMSIS/Include/cmsis_gcc.h **** { 983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 1971 .loc 2 983 3 view .LVU598 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) ); 1972 .loc 2 988 4 view .LVU599 1973 .syntax unified 1974 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1975 0030 94FAA4F4 rbit r4, r4 1976 @ 0 "" 2 1977 .LVL149: 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) 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; 1978 .loc 2 1001 3 view .LVU600 1979 .loc 2 1001 3 is_stmt 0 view .LVU601 1980 .thumb 1981 .syntax unified 1982 .LBE11: 1983 .LBE10: 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1984 .loc 1 1446 22 view .LVU602 1985 0034 3368 ldr r3, [r6] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 86 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1986 .loc 1 1443 23 view .LVU603 1987 0036 B4FA84F4 clz r4, r4 1988 .LVL150: 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1989 .loc 1 1446 5 is_stmt 1 view .LVU604 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1990 .loc 1 1446 61 is_stmt 0 view .LVU605 1991 003a 1834 adds r4, r4, #24 1992 .LVL151: 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1993 .loc 1 1446 61 view .LVU606 1994 003c 03EB0414 add r4, r3, r4, lsl #4 1995 .LVL152: 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1996 .loc 1 1446 61 view .LVU607 1997 0040 6068 ldr r0, [r4, #4] 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1998 .loc 1 1446 85 view .LVU608 1999 0042 000C lsrs r0, r0, #16 2000 .LVL153: 2001 .loc 1 1451 1 view .LVU609 2002 0044 70BD pop {r4, r5, r6, pc} 2003 .LVL154: 2004 .L230: 2005 .loc 1 1451 1 view .LVU610 2006 0046 00BF .align 2 2007 .L229: 2008 0048 00000000 .word .LC0 2009 .cfi_endproc 2010 .LFE144: 2012 .section .text.HAL_CAN_GetRxMessage,"ax",%progbits 2013 .align 1 2014 .p2align 2,,3 2015 .global HAL_CAN_GetRxMessage 2016 .syntax unified 2017 .thumb 2018 .thumb_func 2020 HAL_CAN_GetRxMessage: 2021 .LVL155: 2022 .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 **** { 2023 .loc 1 1466 1 is_stmt 1 view -0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 87 2024 .cfi_startproc 2025 @ args = 0, pretend = 0, frame = 0 2026 @ frame_needed = 0, uses_anonymous_args = 0 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2027 .loc 1 1467 3 view .LVU612 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2028 .loc 1 1466 1 is_stmt 0 view .LVU613 2029 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2030 .LCFI17: 2031 .cfi_def_cfa_offset 24 2032 .cfi_offset 4, -24 2033 .cfi_offset 5, -20 2034 .cfi_offset 6, -16 2035 .cfi_offset 7, -12 2036 .cfi_offset 8, -8 2037 .cfi_offset 14, -4 2038 .loc 1 1467 24 view .LVU614 2039 0004 90F820C0 ldrb ip, [r0, #32] @ zero_extendqisi2 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)); 2040 .loc 1 1469 3 view .LVU615 2041 0008 0129 cmp r1, #1 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2042 .loc 1 1466 1 view .LVU616 2043 000a 0446 mov r4, r0 2044 000c 0D46 mov r5, r1 2045 000e 9046 mov r8, r2 2046 0010 1F46 mov r7, r3 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2047 .loc 1 1467 24 view .LVU617 2048 0012 5FFA8CF6 uxtb r6, ip 2049 .LVL156: 2050 .loc 1 1469 3 is_stmt 1 view .LVU618 2051 0016 17D8 bhi .L244 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) || 2052 .loc 1 1471 3 view .LVU619 2053 .loc 1 1471 6 is_stmt 0 view .LVU620 2054 0018 06F1FF3C add ip, r6, #-1 2055 001c BCF1010F cmp ip, #1 2056 0020 0BD8 bhi .L234 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 */ 2057 .loc 1 1475 5 is_stmt 1 view .LVU621 2058 .loc 1 1475 8 is_stmt 0 view .LVU622 2059 0022 D9B9 cbnz r1, .L233 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) 2060 .loc 1 1478 7 is_stmt 1 view .LVU623 2061 .loc 1 1478 16 is_stmt 0 view .LVU624 2062 0024 0268 ldr r2, [r0] 2063 .LVL157: 2064 .loc 1 1478 26 view .LVU625 2065 0026 D368 ldr r3, [r2, #12] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 88 2066 .LVL158: 2067 .loc 1 1478 10 view .LVU626 2068 0028 9B07 lsls r3, r3, #30 2069 002a 1BD1 bne .L235 2070 .LVL159: 2071 .L243: 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; 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 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) 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; 2072 .loc 1 1492 9 is_stmt 1 view .LVU627 2073 .loc 1 1492 25 is_stmt 0 view .LVU628 2074 002c 636A ldr r3, [r4, #36] 2075 002e 43F40013 orr r3, r3, #2097152 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 2076 .loc 1 1494 16 view .LVU629 2077 0032 0120 movs r0, #1 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2078 .loc 1 1492 25 view .LVU630 2079 0034 6362 str r3, [r4, #36] 2080 .loc 1 1494 9 is_stmt 1 view .LVU631 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; 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 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_ 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; 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); 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos) >= 8U) 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; 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 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_ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 89 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_ 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 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 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 */ 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); 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); 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; 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; 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2081 .loc 1 1554 1 is_stmt 0 view .LVU632 2082 0036 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2083 .LVL160: 2084 .L234: 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2085 .loc 1 1550 5 is_stmt 1 view .LVU633 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2086 .loc 1 1550 21 is_stmt 0 view .LVU634 2087 003a 636A ldr r3, [r4, #36] 2088 003c 43F48023 orr r3, r3, #262144 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2089 .loc 1 1552 12 view .LVU635 2090 0040 0120 movs r0, #1 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2091 .loc 1 1550 21 view .LVU636 2092 0042 6362 str r3, [r4, #36] 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2093 .loc 1 1552 5 is_stmt 1 view .LVU637 2094 .loc 1 1554 1 is_stmt 0 view .LVU638 2095 0044 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2096 .LVL161: 2097 .L244: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 90 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2098 .loc 1 1469 3 discriminator 1 view .LVU639 2099 0048 3E48 ldr r0, .L246 2100 .LVL162: 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2101 .loc 1 1469 3 discriminator 1 view .LVU640 2102 004a 40F2BD51 movw r1, #1469 2103 .LVL163: 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2104 .loc 1 1469 3 discriminator 1 view .LVU641 2105 004e FFF7FEFF bl assert_failed 2106 .LVL164: 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2107 .loc 1 1471 3 is_stmt 1 discriminator 1 view .LVU642 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2108 .loc 1 1471 6 is_stmt 0 discriminator 1 view .LVU643 2109 0052 06F1FF3C add ip, r6, #-1 2110 0056 BCF1010F cmp ip, #1 2111 005a EED8 bhi .L234 2112 .L233: 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2113 .loc 1 1489 7 is_stmt 1 view .LVU644 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2114 .loc 1 1489 16 is_stmt 0 view .LVU645 2115 005c 2268 ldr r2, [r4] 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2116 .loc 1 1489 26 view .LVU646 2117 005e 1369 ldr r3, [r2, #16] 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2118 .loc 1 1489 10 view .LVU647 2119 0060 9E07 lsls r6, r3, #30 2120 .LVL165: 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2121 .loc 1 1489 10 view .LVU648 2122 0062 E3D0 beq .L243 2123 .L235: 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 2124 .loc 1 1499 5 is_stmt 1 view .LVU649 2125 0064 02EB0511 add r1, r2, r5, lsl #4 2126 0068 2B01 lsls r3, r5, #4 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 2127 .loc 1 1499 71 is_stmt 0 view .LVU650 2128 006a D1F8B001 ldr r0, [r1, #432] 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 2129 .loc 1 1499 33 view .LVU651 2130 006e 00F00400 and r0, r0, #4 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 2131 .loc 1 1499 18 view .LVU652 2132 0072 C8F80800 str r0, [r8, #8] 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2133 .loc 1 1500 5 is_stmt 1 view .LVU653 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2134 .loc 1 1500 8 is_stmt 0 view .LVU654 2135 0076 0028 cmp r0, #0 2136 0078 56D0 beq .L245 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_RI0R_EXID_Pos; 2137 .loc 1 1506 7 is_stmt 1 view .LVU655 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 91 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2138 .loc 1 1507 61 is_stmt 0 view .LVU656 2139 007a D1F8B001 ldr r0, [r1, #432] 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2140 .loc 1 1507 67 view .LVU657 2141 007e C008 lsrs r0, r0, #3 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_RI0R_EXID_Pos; 2142 .loc 1 1506 22 view .LVU658 2143 0080 C8F80400 str r0, [r8, #4] 2144 .L238: 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos) >= 8U) 2145 .loc 1 1509 5 is_stmt 1 view .LVU659 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos) >= 8U) 2146 .loc 1 1509 72 is_stmt 0 view .LVU660 2147 0084 D1F8B001 ldr r0, [r1, #432] 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos) >= 8U) 2148 .loc 1 1509 34 view .LVU661 2149 0088 00F00200 and r0, r0, #2 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos) >= 8U) 2150 .loc 1 1509 18 view .LVU662 2151 008c C8F80C00 str r0, [r8, #12] 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2152 .loc 1 1510 5 is_stmt 1 view .LVU663 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2153 .loc 1 1510 63 is_stmt 0 view .LVU664 2154 0090 D1F8B401 ldr r0, [r1, #436] 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2155 .loc 1 1510 8 view .LVU665 2156 0094 0007 lsls r0, r0, #28 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2157 .loc 1 1517 7 is_stmt 1 view .LVU666 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2158 .loc 1 1517 75 is_stmt 0 view .LVU667 2159 0096 56BF itet pl 2160 0098 D1F8B401 ldrpl r0, [r1, #436] 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2161 .loc 1 1513 20 view .LVU668 2162 009c 0820 movmi r0, #8 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2163 .loc 1 1517 82 view .LVU669 2164 009e 00F00F00 andpl r0, r0, #15 2165 00a2 C8F81000 str r0, [r8, #16] 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_ 2166 .loc 1 1519 5 is_stmt 1 view .LVU670 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_ 2167 .loc 1 1519 86 is_stmt 0 view .LVU671 2168 00a6 D1F8B401 ldr r0, [r1, #436] 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2169 .loc 1 1520 80 view .LVU672 2170 00aa D1F8B411 ldr r1, [r1, #436] 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2171 .loc 1 1523 81 view .LVU673 2172 00ae 1A44 add r2, r2, r3 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_ 2173 .loc 1 1519 93 view .LVU674 2174 00b0 C0F30720 ubfx r0, r0, #8, #8 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 92 2175 .loc 1 1519 31 view .LVU675 2176 00b4 C8F81800 str r0, [r8, #24] 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2177 .loc 1 1520 5 is_stmt 1 view .LVU676 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2178 .loc 1 1520 87 is_stmt 0 view .LVU677 2179 00b8 090C lsrs r1, r1, #16 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2180 .loc 1 1523 81 view .LVU678 2181 00ba D2F8B801 ldr r0, [r2, #440] 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2182 .loc 1 1520 24 view .LVU679 2183 00be C8F81410 str r1, [r8, #20] 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2184 .loc 1 1523 5 is_stmt 1 view .LVU680 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2185 .loc 1 1523 16 is_stmt 0 view .LVU681 2186 00c2 3870 strb r0, [r7] 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2187 .loc 1 1524 5 is_stmt 1 view .LVU682 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2188 .loc 1 1524 49 is_stmt 0 view .LVU683 2189 00c4 2268 ldr r2, [r4] 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2190 .loc 1 1524 81 view .LVU684 2191 00c6 1A44 add r2, r2, r3 2192 00c8 D2F8B821 ldr r2, [r2, #440] 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2193 .loc 1 1524 88 view .LVU685 2194 00cc 120A lsrs r2, r2, #8 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2195 .loc 1 1524 16 view .LVU686 2196 00ce 7A70 strb r2, [r7, #1] 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2197 .loc 1 1525 5 is_stmt 1 view .LVU687 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2198 .loc 1 1525 49 is_stmt 0 view .LVU688 2199 00d0 2268 ldr r2, [r4] 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2200 .loc 1 1525 81 view .LVU689 2201 00d2 1A44 add r2, r2, r3 2202 00d4 D2F8B821 ldr r2, [r2, #440] 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2203 .loc 1 1525 88 view .LVU690 2204 00d8 120C lsrs r2, r2, #16 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2205 .loc 1 1525 16 view .LVU691 2206 00da BA70 strb r2, [r7, #2] 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2207 .loc 1 1526 5 is_stmt 1 view .LVU692 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2208 .loc 1 1526 49 is_stmt 0 view .LVU693 2209 00dc 2268 ldr r2, [r4] 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2210 .loc 1 1526 81 view .LVU694 2211 00de 1A44 add r2, r2, r3 2212 00e0 D2F8B821 ldr r2, [r2, #440] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 93 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2213 .loc 1 1526 88 view .LVU695 2214 00e4 120E lsrs r2, r2, #24 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2215 .loc 1 1526 16 view .LVU696 2216 00e6 FA70 strb r2, [r7, #3] 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2217 .loc 1 1527 5 is_stmt 1 view .LVU697 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2218 .loc 1 1527 49 is_stmt 0 view .LVU698 2219 00e8 2268 ldr r2, [r4] 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2220 .loc 1 1527 81 view .LVU699 2221 00ea 1A44 add r2, r2, r3 2222 00ec D2F8BC21 ldr r2, [r2, #444] 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2223 .loc 1 1527 16 view .LVU700 2224 00f0 3A71 strb r2, [r7, #4] 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2225 .loc 1 1528 5 is_stmt 1 view .LVU701 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2226 .loc 1 1528 49 is_stmt 0 view .LVU702 2227 00f2 2268 ldr r2, [r4] 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2228 .loc 1 1528 81 view .LVU703 2229 00f4 1A44 add r2, r2, r3 2230 00f6 D2F8BC21 ldr r2, [r2, #444] 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2231 .loc 1 1528 88 view .LVU704 2232 00fa 120A lsrs r2, r2, #8 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2233 .loc 1 1528 16 view .LVU705 2234 00fc 7A71 strb r2, [r7, #5] 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2235 .loc 1 1529 5 is_stmt 1 view .LVU706 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2236 .loc 1 1529 49 is_stmt 0 view .LVU707 2237 00fe 2268 ldr r2, [r4] 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2238 .loc 1 1529 81 view .LVU708 2239 0100 1A44 add r2, r2, r3 2240 0102 D2F8BC21 ldr r2, [r2, #444] 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2241 .loc 1 1529 88 view .LVU709 2242 0106 120C lsrs r2, r2, #16 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2243 .loc 1 1529 16 view .LVU710 2244 0108 BA71 strb r2, [r7, #6] 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2245 .loc 1 1530 5 is_stmt 1 view .LVU711 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2246 .loc 1 1530 49 is_stmt 0 view .LVU712 2247 010a 2268 ldr r2, [r4] 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2248 .loc 1 1530 81 view .LVU713 2249 010c 1344 add r3, r3, r2 2250 010e D3F8BC31 ldr r3, [r3, #444] ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 94 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2251 .loc 1 1530 88 view .LVU714 2252 0112 1B0E lsrs r3, r3, #24 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2253 .loc 1 1530 16 view .LVU715 2254 0114 FB71 strb r3, [r7, #7] 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2255 .loc 1 1533 5 is_stmt 1 view .LVU716 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2256 .loc 1 1536 7 is_stmt 0 view .LVU717 2257 0116 2268 ldr r2, [r4] 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2258 .loc 1 1533 8 view .LVU718 2259 0118 65B9 cbnz r5, .L240 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2260 .loc 1 1536 7 is_stmt 1 view .LVU719 2261 011a D368 ldr r3, [r2, #12] 2262 011c 43F02003 orr r3, r3, #32 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2263 .loc 1 1545 12 is_stmt 0 view .LVU720 2264 0120 2846 mov r0, r5 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2265 .loc 1 1536 7 view .LVU721 2266 0122 D360 str r3, [r2, #12] 2267 .loc 1 1554 1 view .LVU722 2268 0124 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2269 .LVL166: 2270 .L245: 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2271 .loc 1 1502 7 is_stmt 1 view .LVU723 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2272 .loc 1 1502 77 is_stmt 0 view .LVU724 2273 0128 D1F8B001 ldr r0, [r1, #432] 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2274 .loc 1 1502 83 view .LVU725 2275 012c 400D lsrs r0, r0, #21 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2276 .loc 1 1502 22 view .LVU726 2277 012e C8F80000 str r0, [r8] 2278 0132 A7E7 b .L238 2279 .L240: 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2280 .loc 1 1541 7 is_stmt 1 view .LVU727 2281 0134 1369 ldr r3, [r2, #16] 2282 0136 43F02003 orr r3, r3, #32 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2283 .loc 1 1545 12 is_stmt 0 view .LVU728 2284 013a 0020 movs r0, #0 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2285 .loc 1 1541 7 view .LVU729 2286 013c 1361 str r3, [r2, #16] 2287 .loc 1 1554 1 view .LVU730 2288 013e BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2289 .LVL167: 2290 .L247: 2291 .loc 1 1554 1 view .LVU731 2292 0142 00BF .align 2 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 95 2293 .L246: 2294 0144 00000000 .word .LC0 2295 .cfi_endproc 2296 .LFE145: 2298 .section .text.HAL_CAN_GetRxFifoFillLevel,"ax",%progbits 2299 .align 1 2300 .p2align 2,,3 2301 .global HAL_CAN_GetRxFifoFillLevel 2302 .syntax unified 2303 .thumb 2304 .thumb_func 2306 HAL_CAN_GetRxFifoFillLevel: 2307 .LVL168: 2308 .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 **** { 2309 .loc 1 1565 1 is_stmt 1 view -0 2310 .cfi_startproc 2311 @ args = 0, pretend = 0, frame = 0 2312 @ frame_needed = 0, uses_anonymous_args = 0 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filllevel = 0U; 2313 .loc 1 1566 3 view .LVU733 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2314 .loc 1 1567 3 view .LVU734 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filllevel = 0U; 2315 .loc 1 1565 1 is_stmt 0 view .LVU735 2316 0000 38B5 push {r3, r4, r5, lr} 2317 .LCFI18: 2318 .cfi_def_cfa_offset 16 2319 .cfi_offset 3, -16 2320 .cfi_offset 4, -12 2321 .cfi_offset 5, -8 2322 .cfi_offset 14, -4 2323 .loc 1 1567 24 view .LVU736 2324 0002 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 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)); 2325 .loc 1 1570 3 view .LVU737 2326 0006 0129 cmp r1, #1 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filllevel = 0U; 2327 .loc 1 1565 1 view .LVU738 2328 0008 0546 mov r5, r0 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2329 .loc 1 1567 24 view .LVU739 2330 000a DCB2 uxtb r4, r3 2331 .LVL169: 2332 .loc 1 1570 3 is_stmt 1 view .LVU740 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 96 2333 000c 0AD8 bhi .L254 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) || 2334 .loc 1 1572 3 view .LVU741 2335 .loc 1 1572 6 is_stmt 0 view .LVU742 2336 000e 631E subs r3, r4, #1 2337 0010 012B cmp r3, #1 2338 0012 01D9 bls .L255 2339 .LVL170: 2340 .L252: 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2341 .loc 1 1566 12 view .LVU743 2342 0014 0020 movs r0, #0 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) 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; 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 **** { 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** filllevel = hcan->Instance->RF1R & CAN_RF1R_FMP1; 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; 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2343 .loc 1 1587 1 view .LVU744 2344 0016 38BD pop {r3, r4, r5, pc} 2345 .LVL171: 2346 .L255: 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2347 .loc 1 1575 5 is_stmt 1 view .LVU745 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 2348 .loc 1 1575 8 is_stmt 0 view .LVU746 2349 0018 61B9 cbnz r1, .L250 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2350 .loc 1 1577 7 is_stmt 1 view .LVU747 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2351 .loc 1 1577 23 is_stmt 0 view .LVU748 2352 001a 0368 ldr r3, [r0] 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2353 .loc 1 1577 33 view .LVU749 2354 001c D868 ldr r0, [r3, #12] 2355 .LVL172: 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2356 .loc 1 1577 17 view .LVU750 2357 001e 00F00300 and r0, r0, #3 2358 .LVL173: 2359 .loc 1 1587 1 view .LVU751 2360 0022 38BD pop {r3, r4, r5, pc} 2361 .LVL174: 2362 .L254: 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2363 .loc 1 1570 3 discriminator 1 view .LVU752 2364 0024 0648 ldr r0, .L256 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 97 2365 .LVL175: 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2366 .loc 1 1570 3 discriminator 1 view .LVU753 2367 0026 40F22261 movw r1, #1570 2368 .LVL176: 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2369 .loc 1 1570 3 discriminator 1 view .LVU754 2370 002a FFF7FEFF bl assert_failed 2371 .LVL177: 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2372 .loc 1 1572 3 is_stmt 1 discriminator 1 view .LVU755 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2373 .loc 1 1572 6 is_stmt 0 discriminator 1 view .LVU756 2374 002e 631E subs r3, r4, #1 2375 0030 012B cmp r3, #1 2376 0032 EFD8 bhi .L252 2377 .L250: 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2378 .loc 1 1581 7 is_stmt 1 view .LVU757 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2379 .loc 1 1581 23 is_stmt 0 view .LVU758 2380 0034 2B68 ldr r3, [r5] 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2381 .loc 1 1581 33 view .LVU759 2382 0036 1869 ldr r0, [r3, #16] 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2383 .loc 1 1581 17 view .LVU760 2384 0038 00F00300 and r0, r0, #3 2385 .LVL178: 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2386 .loc 1 1586 3 is_stmt 1 view .LVU761 2387 .loc 1 1587 1 is_stmt 0 view .LVU762 2388 003c 38BD pop {r3, r4, r5, pc} 2389 .LVL179: 2390 .L257: 2391 .loc 1 1587 1 view .LVU763 2392 003e 00BF .align 2 2393 .L256: 2394 0040 00000000 .word .LC0 2395 .cfi_endproc 2396 .LFE146: 2398 .section .text.HAL_CAN_ActivateNotification,"ax",%progbits 2399 .align 1 2400 .p2align 2,,3 2401 .global HAL_CAN_ActivateNotification 2402 .syntax unified 2403 .thumb 2404 .thumb_func 2406 HAL_CAN_ActivateNotification: 2407 .LVL180: 2408 .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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 98 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 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 **** { 2409 .loc 1 1618 1 is_stmt 1 view -0 2410 .cfi_startproc 2411 @ args = 0, pretend = 0, frame = 0 2412 @ frame_needed = 0, uses_anonymous_args = 0 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2413 .loc 1 1619 3 view .LVU765 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2414 .loc 1 1618 1 is_stmt 0 view .LVU766 2415 0000 70B5 push {r4, r5, r6, lr} 2416 .LCFI19: 2417 .cfi_def_cfa_offset 16 2418 .cfi_offset 4, -16 2419 .cfi_offset 5, -12 2420 .cfi_offset 6, -8 2421 .cfi_offset 14, -4 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)); 2422 .loc 1 1622 3 view .LVU767 2423 0002 0E4B ldr r3, .L265 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2424 .loc 1 1619 24 view .LVU768 2425 0004 90F82040 ldrb r4, [r0, #32] @ zero_extendqisi2 2426 .loc 1 1622 3 view .LVU769 2427 0008 9942 cmp r1, r3 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2428 .loc 1 1618 1 view .LVU770 2429 000a 0546 mov r5, r0 2430 000c 0E46 mov r6, r1 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2431 .loc 1 1619 24 view .LVU771 2432 000e E4B2 uxtb r4, r4 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 99 2433 .LVL181: 2434 .loc 1 1622 3 is_stmt 1 view .LVU772 2435 0010 0ED8 bhi .L263 2436 .LVL182: 2437 .L259: 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) || 2438 .loc 1 1624 3 view .LVU773 2439 .loc 1 1624 6 is_stmt 0 view .LVU774 2440 0012 013C subs r4, r4, #1 2441 .LVL183: 2442 .loc 1 1624 6 view .LVU775 2443 0014 012C cmp r4, #1 2444 0016 05D9 bls .L264 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); 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; 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; 2445 .loc 1 1636 5 is_stmt 1 view .LVU776 2446 .loc 1 1636 21 is_stmt 0 view .LVU777 2447 0018 6B6A ldr r3, [r5, #36] 2448 001a 43F48023 orr r3, r3, #262144 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 2449 .loc 1 1638 12 view .LVU778 2450 001e 0120 movs r0, #1 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2451 .loc 1 1636 21 view .LVU779 2452 0020 6B62 str r3, [r5, #36] 2453 .loc 1 1638 5 is_stmt 1 view .LVU780 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2454 .loc 1 1640 1 is_stmt 0 view .LVU781 2455 0022 70BD pop {r4, r5, r6, pc} 2456 .LVL184: 2457 .L264: 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2458 .loc 1 1628 5 is_stmt 1 view .LVU782 2459 0024 2B68 ldr r3, [r5] 2460 0026 5969 ldr r1, [r3, #20] 2461 0028 0E43 orrs r6, r6, r1 2462 .LVL185: 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2463 .loc 1 1631 12 is_stmt 0 view .LVU783 2464 002a 0020 movs r0, #0 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2465 .loc 1 1628 5 view .LVU784 2466 002c 5E61 str r6, [r3, #20] 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 100 2467 .loc 1 1631 5 is_stmt 1 view .LVU785 2468 .loc 1 1640 1 is_stmt 0 view .LVU786 2469 002e 70BD pop {r4, r5, r6, pc} 2470 .LVL186: 2471 .L263: 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2472 .loc 1 1622 3 discriminator 1 view .LVU787 2473 0030 0348 ldr r0, .L265+4 2474 .LVL187: 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2475 .loc 1 1622 3 discriminator 1 view .LVU788 2476 0032 40F25661 movw r1, #1622 2477 .LVL188: 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2478 .loc 1 1622 3 discriminator 1 view .LVU789 2479 0036 FFF7FEFF bl assert_failed 2480 .LVL189: 2481 003a EAE7 b .L259 2482 .L266: 2483 .align 2 2484 .L265: 2485 003c 7F8F0300 .word 233343 2486 0040 00000000 .word .LC0 2487 .cfi_endproc 2488 .LFE147: 2490 .section .text.HAL_CAN_DeactivateNotification,"ax",%progbits 2491 .align 1 2492 .p2align 2,,3 2493 .global HAL_CAN_DeactivateNotification 2494 .syntax unified 2495 .thumb 2496 .thumb_func 2498 HAL_CAN_DeactivateNotification: 2499 .LVL190: 2500 .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 **** { 2501 .loc 1 1651 1 is_stmt 1 view -0 2502 .cfi_startproc 2503 @ args = 0, pretend = 0, frame = 0 2504 @ frame_needed = 0, uses_anonymous_args = 0 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2505 .loc 1 1652 3 view .LVU791 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2506 .loc 1 1651 1 is_stmt 0 view .LVU792 2507 0000 70B5 push {r4, r5, r6, lr} 2508 .LCFI20: 2509 .cfi_def_cfa_offset 16 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 101 2510 .cfi_offset 4, -16 2511 .cfi_offset 5, -12 2512 .cfi_offset 6, -8 2513 .cfi_offset 14, -4 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)); 2514 .loc 1 1655 3 view .LVU793 2515 0002 0F4B ldr r3, .L274 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2516 .loc 1 1652 24 view .LVU794 2517 0004 90F82040 ldrb r4, [r0, #32] @ zero_extendqisi2 2518 .loc 1 1655 3 view .LVU795 2519 0008 9942 cmp r1, r3 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2520 .loc 1 1651 1 view .LVU796 2521 000a 0546 mov r5, r0 2522 000c 0E46 mov r6, r1 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2523 .loc 1 1652 24 view .LVU797 2524 000e E4B2 uxtb r4, r4 2525 .LVL191: 2526 .loc 1 1655 3 is_stmt 1 view .LVU798 2527 0010 0FD8 bhi .L272 2528 .LVL192: 2529 .L268: 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) || 2530 .loc 1 1657 3 view .LVU799 2531 .loc 1 1657 6 is_stmt 0 view .LVU800 2532 0012 013C subs r4, r4, #1 2533 .LVL193: 2534 .loc 1 1657 6 view .LVU801 2535 0014 012C cmp r4, #1 2536 0016 05D9 bls .L273 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); 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; 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; 2537 .loc 1 1669 5 is_stmt 1 view .LVU802 2538 .loc 1 1669 21 is_stmt 0 view .LVU803 2539 0018 6B6A ldr r3, [r5, #36] 2540 001a 43F48023 orr r3, r3, #262144 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR; 2541 .loc 1 1671 12 view .LVU804 2542 001e 0120 movs r0, #1 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2543 .loc 1 1669 21 view .LVU805 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 102 2544 0020 6B62 str r3, [r5, #36] 2545 .loc 1 1671 5 is_stmt 1 view .LVU806 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2546 .loc 1 1673 1 is_stmt 0 view .LVU807 2547 0022 70BD pop {r4, r5, r6, pc} 2548 .LVL194: 2549 .L273: 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2550 .loc 1 1661 5 is_stmt 1 view .LVU808 2551 0024 2B68 ldr r3, [r5] 2552 0026 5969 ldr r1, [r3, #20] 2553 0028 21EA0606 bic r6, r1, r6 2554 .LVL195: 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2555 .loc 1 1664 12 is_stmt 0 view .LVU809 2556 002c 0020 movs r0, #0 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2557 .loc 1 1661 5 view .LVU810 2558 002e 5E61 str r6, [r3, #20] 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 2559 .loc 1 1664 5 is_stmt 1 view .LVU811 2560 .loc 1 1673 1 is_stmt 0 view .LVU812 2561 0030 70BD pop {r4, r5, r6, pc} 2562 .LVL196: 2563 .L272: 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2564 .loc 1 1655 3 discriminator 1 view .LVU813 2565 0032 0448 ldr r0, .L274+4 2566 .LVL197: 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2567 .loc 1 1655 3 discriminator 1 view .LVU814 2568 0034 40F27761 movw r1, #1655 2569 .LVL198: 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2570 .loc 1 1655 3 discriminator 1 view .LVU815 2571 0038 FFF7FEFF bl assert_failed 2572 .LVL199: 2573 003c E9E7 b .L268 2574 .L275: 2575 003e 00BF .align 2 2576 .L274: 2577 0040 7F8F0300 .word 233343 2578 0044 00000000 .word .LC0 2579 .cfi_endproc 2580 .LFE148: 2582 .section .text.HAL_CAN_TxMailbox0CompleteCallback,"ax",%progbits 2583 .align 1 2584 .p2align 2,,3 2585 .weak HAL_CAN_TxMailbox0CompleteCallback 2586 .syntax unified 2587 .thumb 2588 .thumb_func 2590 HAL_CAN_TxMailbox0CompleteCallback: 2591 .LFB170: 2592 .cfi_startproc 2593 @ args = 0, pretend = 0, frame = 0 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 103 2594 @ frame_needed = 0, uses_anonymous_args = 0 2595 @ link register save eliminated. 2596 0000 7047 bx lr 2597 .cfi_endproc 2598 .LFE170: 2600 0002 00BF .section .text.HAL_CAN_TxMailbox1CompleteCallback,"ax",%progbits 2601 .align 1 2602 .p2align 2,,3 2603 .weak HAL_CAN_TxMailbox1CompleteCallback 2604 .syntax unified 2605 .thumb 2606 .thumb_func 2608 HAL_CAN_TxMailbox1CompleteCallback: 2609 .LFB172: 2610 .cfi_startproc 2611 @ args = 0, pretend = 0, frame = 0 2612 @ frame_needed = 0, uses_anonymous_args = 0 2613 @ link register save eliminated. 2614 0000 7047 bx lr 2615 .cfi_endproc 2616 .LFE172: 2618 0002 00BF .section .text.HAL_CAN_TxMailbox2CompleteCallback,"ax",%progbits 2619 .align 1 2620 .p2align 2,,3 2621 .weak HAL_CAN_TxMailbox2CompleteCallback 2622 .syntax unified 2623 .thumb 2624 .thumb_func 2626 HAL_CAN_TxMailbox2CompleteCallback: 2627 .LFB174: 2628 .cfi_startproc 2629 @ args = 0, pretend = 0, frame = 0 2630 @ frame_needed = 0, uses_anonymous_args = 0 2631 @ link register save eliminated. 2632 0000 7047 bx lr 2633 .cfi_endproc 2634 .LFE174: 2636 0002 00BF .section .text.HAL_CAN_TxMailbox0AbortCallback,"ax",%progbits 2637 .align 1 2638 .p2align 2,,3 2639 .weak HAL_CAN_TxMailbox0AbortCallback 2640 .syntax unified 2641 .thumb 2642 .thumb_func 2644 HAL_CAN_TxMailbox0AbortCallback: 2645 .LFB176: 2646 .cfi_startproc 2647 @ args = 0, pretend = 0, frame = 0 2648 @ frame_needed = 0, uses_anonymous_args = 0 2649 @ link register save eliminated. 2650 0000 7047 bx lr 2651 .cfi_endproc 2652 .LFE176: 2654 0002 00BF .section .text.HAL_CAN_TxMailbox1AbortCallback,"ax",%progbits 2655 .align 1 2656 .p2align 2,,3 2657 .weak HAL_CAN_TxMailbox1AbortCallback ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 104 2658 .syntax unified 2659 .thumb 2660 .thumb_func 2662 HAL_CAN_TxMailbox1AbortCallback: 2663 .LFB178: 2664 .cfi_startproc 2665 @ args = 0, pretend = 0, frame = 0 2666 @ frame_needed = 0, uses_anonymous_args = 0 2667 @ link register save eliminated. 2668 0000 7047 bx lr 2669 .cfi_endproc 2670 .LFE178: 2672 0002 00BF .section .text.HAL_CAN_TxMailbox2AbortCallback,"ax",%progbits 2673 .align 1 2674 .p2align 2,,3 2675 .weak HAL_CAN_TxMailbox2AbortCallback 2676 .syntax unified 2677 .thumb 2678 .thumb_func 2680 HAL_CAN_TxMailbox2AbortCallback: 2681 .LFB180: 2682 .cfi_startproc 2683 @ args = 0, pretend = 0, frame = 0 2684 @ frame_needed = 0, uses_anonymous_args = 0 2685 @ link register save eliminated. 2686 0000 7047 bx lr 2687 .cfi_endproc 2688 .LFE180: 2690 0002 00BF .section .text.HAL_CAN_RxFifo0MsgPendingCallback,"ax",%progbits 2691 .align 1 2692 .p2align 2,,3 2693 .weak HAL_CAN_RxFifo0MsgPendingCallback 2694 .syntax unified 2695 .thumb 2696 .thumb_func 2698 HAL_CAN_RxFifo0MsgPendingCallback: 2699 .LFB182: 2700 .cfi_startproc 2701 @ args = 0, pretend = 0, frame = 0 2702 @ frame_needed = 0, uses_anonymous_args = 0 2703 @ link register save eliminated. 2704 0000 7047 bx lr 2705 .cfi_endproc 2706 .LFE182: 2708 0002 00BF .section .text.HAL_CAN_RxFifo0FullCallback,"ax",%progbits 2709 .align 1 2710 .p2align 2,,3 2711 .weak HAL_CAN_RxFifo0FullCallback 2712 .syntax unified 2713 .thumb 2714 .thumb_func 2716 HAL_CAN_RxFifo0FullCallback: 2717 .LFB184: 2718 .cfi_startproc 2719 @ args = 0, pretend = 0, frame = 0 2720 @ frame_needed = 0, uses_anonymous_args = 0 2721 @ link register save eliminated. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 105 2722 0000 7047 bx lr 2723 .cfi_endproc 2724 .LFE184: 2726 0002 00BF .section .text.HAL_CAN_RxFifo1MsgPendingCallback,"ax",%progbits 2727 .align 1 2728 .p2align 2,,3 2729 .weak HAL_CAN_RxFifo1MsgPendingCallback 2730 .syntax unified 2731 .thumb 2732 .thumb_func 2734 HAL_CAN_RxFifo1MsgPendingCallback: 2735 .LFB186: 2736 .cfi_startproc 2737 @ args = 0, pretend = 0, frame = 0 2738 @ frame_needed = 0, uses_anonymous_args = 0 2739 @ link register save eliminated. 2740 0000 7047 bx lr 2741 .cfi_endproc 2742 .LFE186: 2744 0002 00BF .section .text.HAL_CAN_RxFifo1FullCallback,"ax",%progbits 2745 .align 1 2746 .p2align 2,,3 2747 .weak HAL_CAN_RxFifo1FullCallback 2748 .syntax unified 2749 .thumb 2750 .thumb_func 2752 HAL_CAN_RxFifo1FullCallback: 2753 .LFB188: 2754 .cfi_startproc 2755 @ args = 0, pretend = 0, frame = 0 2756 @ frame_needed = 0, uses_anonymous_args = 0 2757 @ link register save eliminated. 2758 0000 7047 bx lr 2759 .cfi_endproc 2760 .LFE188: 2762 0002 00BF .section .text.HAL_CAN_SleepCallback,"ax",%progbits 2763 .align 1 2764 .p2align 2,,3 2765 .weak HAL_CAN_SleepCallback 2766 .syntax unified 2767 .thumb 2768 .thumb_func 2770 HAL_CAN_SleepCallback: 2771 .LFB190: 2772 .cfi_startproc 2773 @ args = 0, pretend = 0, frame = 0 2774 @ frame_needed = 0, uses_anonymous_args = 0 2775 @ link register save eliminated. 2776 0000 7047 bx lr 2777 .cfi_endproc 2778 .LFE190: 2780 0002 00BF .section .text.HAL_CAN_WakeUpFromRxMsgCallback,"ax",%progbits 2781 .align 1 2782 .p2align 2,,3 2783 .weak HAL_CAN_WakeUpFromRxMsgCallback 2784 .syntax unified 2785 .thumb ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 106 2786 .thumb_func 2788 HAL_CAN_WakeUpFromRxMsgCallback: 2789 .LFB192: 2790 .cfi_startproc 2791 @ args = 0, pretend = 0, frame = 0 2792 @ frame_needed = 0, uses_anonymous_args = 0 2793 @ link register save eliminated. 2794 0000 7047 bx lr 2795 .cfi_endproc 2796 .LFE192: 2798 0002 00BF .section .text.HAL_CAN_ErrorCallback,"ax",%progbits 2799 .align 1 2800 .p2align 2,,3 2801 .weak HAL_CAN_ErrorCallback 2802 .syntax unified 2803 .thumb 2804 .thumb_func 2806 HAL_CAN_ErrorCallback: 2807 .LFB194: 2808 .cfi_startproc 2809 @ args = 0, pretend = 0, frame = 0 2810 @ frame_needed = 0, uses_anonymous_args = 0 2811 @ link register save eliminated. 2812 0000 7047 bx lr 2813 .cfi_endproc 2814 .LFE194: 2816 0002 00BF .section .text.HAL_CAN_IRQHandler,"ax",%progbits 2817 .align 1 2818 .p2align 2,,3 2819 .global HAL_CAN_IRQHandler 2820 .syntax unified 2821 .thumb 2822 .thumb_func 2824 HAL_CAN_IRQHandler: 2825 .LVL200: 2826 .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 **** { 2827 .loc 1 1682 1 is_stmt 1 view -0 2828 .cfi_startproc 2829 @ args = 0, pretend = 0, frame = 0 2830 @ frame_needed = 0, uses_anonymous_args = 0 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE; 2831 .loc 1 1683 3 view .LVU817 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 2832 .loc 1 1684 3 view .LVU818 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE; 2833 .loc 1 1682 1 is_stmt 0 view .LVU819 2834 0000 2DE9F84F push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 2835 .LCFI21: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 107 2836 .cfi_def_cfa_offset 40 2837 .cfi_offset 3, -40 2838 .cfi_offset 4, -36 2839 .cfi_offset 5, -32 2840 .cfi_offset 6, -28 2841 .cfi_offset 7, -24 2842 .cfi_offset 8, -20 2843 .cfi_offset 9, -16 2844 .cfi_offset 10, -12 2845 .cfi_offset 11, -8 2846 .cfi_offset 14, -4 2847 .loc 1 1684 25 view .LVU820 2848 0004 0368 ldr r3, [r0] 2849 .loc 1 1684 12 view .LVU821 2850 0006 5C69 ldr r4, [r3, #20] 2851 .LVL201: 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR); 2852 .loc 1 1685 3 is_stmt 1 view .LVU822 2853 .loc 1 1685 12 is_stmt 0 view .LVU823 2854 0008 D3F80480 ldr r8, [r3, #4] 2855 .LVL202: 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR); 2856 .loc 1 1686 3 is_stmt 1 view .LVU824 2857 .loc 1 1686 12 is_stmt 0 view .LVU825 2858 000c 9F68 ldr r7, [r3, #8] 2859 .LVL203: 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R); 2860 .loc 1 1687 3 is_stmt 1 view .LVU826 2861 .loc 1 1687 12 is_stmt 0 view .LVU827 2862 000e D3F80CB0 ldr fp, [r3, #12] 2863 .LVL204: 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R); 2864 .loc 1 1688 3 is_stmt 1 view .LVU828 2865 .loc 1 1688 12 is_stmt 0 view .LVU829 2866 0012 D3F810A0 ldr r10, [r3, #16] 2867 .LVL205: 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR); 2868 .loc 1 1689 3 is_stmt 1 view .LVU830 2869 .loc 1 1689 12 is_stmt 0 view .LVU831 2870 0016 D3F81890 ldr r9, [r3, #24] 2871 .LVL206: 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) 2872 .loc 1 1692 3 is_stmt 1 view .LVU832 2873 .loc 1 1692 6 is_stmt 0 view .LVU833 2874 001a 14F00106 ands r6, r4, #1 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE; 2875 .loc 1 1682 1 view .LVU834 2876 001e 0546 mov r5, r0 2877 .loc 1 1692 6 view .LVU835 2878 0020 20D0 beq .L290 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) 2879 .loc 1 1695 5 is_stmt 1 view .LVU836 2880 .loc 1 1695 8 is_stmt 0 view .LVU837 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 108 2881 0022 17F00106 ands r6, r7, #1 2882 0026 0DD0 beq .L291 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); 2883 .loc 1 1698 7 is_stmt 1 view .LVU838 2884 0028 0122 movs r2, #1 2885 002a 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) 2886 .loc 1 1700 7 view .LVU839 2887 .loc 1 1700 10 is_stmt 0 view .LVU840 2888 002c BB07 lsls r3, r7, #30 2889 002e 00F1C480 bmi .L413 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); 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) 2890 .loc 1 1713 9 is_stmt 1 view .LVU841 2891 .loc 1 1713 12 is_stmt 0 view .LVU842 2892 0032 7E07 lsls r6, r7, #29 2893 0034 00F1E380 bmi .L325 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; 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) 2894 .loc 1 1718 14 is_stmt 1 view .LVU843 2895 .loc 1 1718 17 is_stmt 0 view .LVU844 2896 0038 17F00806 ands r6, r7, #8 2897 003c 00F0E880 beq .L414 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; 2898 .loc 1 1721 21 view .LVU845 2899 0040 4FF48056 mov r6, #4096 2900 .LVL207: 2901 .L291: 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); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 109 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) 2902 .loc 1 1738 5 is_stmt 1 view .LVU846 2903 .loc 1 1738 8 is_stmt 0 view .LVU847 2904 0044 F805 lsls r0, r7, #23 2905 0046 0BD5 bpl .L293 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); 2906 .loc 1 1741 7 is_stmt 1 view .LVU848 2907 0048 2B68 ldr r3, [r5] 2908 004a 4FF48072 mov r2, #256 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) 2909 .loc 1 1743 10 is_stmt 0 view .LVU849 2910 004e B905 lsls r1, r7, #22 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2911 .loc 1 1741 7 view .LVU850 2912 0050 9A60 str r2, [r3, #8] 2913 .loc 1 1743 7 is_stmt 1 view .LVU851 2914 .loc 1 1743 10 is_stmt 0 view .LVU852 2915 0052 00F1AE80 bmi .L415 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); 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) 2916 .loc 1 1756 9 is_stmt 1 view .LVU853 2917 .loc 1 1756 12 is_stmt 0 view .LVU854 2918 0056 7A05 lsls r2, r7, #21 2919 0058 40F1CC80 bpl .L295 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; 2920 .loc 1 1759 11 is_stmt 1 view .LVU855 2921 .loc 1 1759 21 is_stmt 0 view .LVU856 2922 005c 46F40056 orr r6, r6, #8192 2923 .LVL208: 2924 .L293: 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) 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; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 110 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); 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 **** 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) 2925 .loc 1 1781 5 is_stmt 1 view .LVU857 2926 .loc 1 1781 8 is_stmt 0 view .LVU858 2927 0060 F803 lsls r0, r7, #15 2928 0062 65D4 bmi .L416 2929 .LVL209: 2930 .L290: 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); 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) 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); 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) 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; 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) 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; 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 111 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); 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) 2931 .loc 1 1825 3 is_stmt 1 view .LVU859 2932 .loc 1 1825 6 is_stmt 0 view .LVU860 2933 0064 2707 lsls r7, r4, #28 2934 .LVL210: 2935 .loc 1 1825 6 view .LVU861 2936 0066 02D5 bpl .L300 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) 2937 .loc 1 1827 5 is_stmt 1 view .LVU862 2938 .loc 1 1827 8 is_stmt 0 view .LVU863 2939 0068 1BF0100F tst fp, #16 2940 006c 6BD1 bne .L417 2941 .L300: 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; 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); 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) 2942 .loc 1 1838 3 is_stmt 1 view .LVU864 2943 .loc 1 1838 6 is_stmt 0 view .LVU865 2944 006e 6007 lsls r0, r4, #29 2945 0070 03D5 bpl .L301 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) 2946 .loc 1 1840 5 is_stmt 1 view .LVU866 2947 .loc 1 1840 8 is_stmt 0 view .LVU867 2948 0072 1BF0080F tst fp, #8 2949 0076 40F08D80 bne .L418 2950 .L301: 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); 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); 1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 112 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) 2951 .loc 1 1857 3 is_stmt 1 view .LVU868 2952 .loc 1 1857 6 is_stmt 0 view .LVU869 2953 007a A107 lsls r1, r4, #30 2954 007c 04D5 bpl .L302 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) 2955 .loc 1 1860 5 is_stmt 1 view .LVU870 2956 .loc 1 1860 14 is_stmt 0 view .LVU871 2957 007e 2B68 ldr r3, [r5] 2958 .loc 1 1860 24 view .LVU872 2959 0080 DB68 ldr r3, [r3, #12] 2960 .loc 1 1860 8 view .LVU873 2961 0082 9A07 lsls r2, r3, #30 2962 0084 40F08280 bne .L419 2963 .L302: 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); 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) 2964 .loc 1 1874 3 is_stmt 1 view .LVU874 2965 .loc 1 1874 6 is_stmt 0 view .LVU875 2966 0088 6306 lsls r3, r4, #25 2967 008a 02D5 bpl .L303 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) 2968 .loc 1 1876 5 is_stmt 1 view .LVU876 2969 .loc 1 1876 8 is_stmt 0 view .LVU877 2970 008c 1AF0100F tst r10, #16 2971 0090 48D1 bne .L420 2972 .L303: 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; 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); 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) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 113 2973 .loc 1 1887 3 is_stmt 1 view .LVU878 2974 .loc 1 1887 6 is_stmt 0 view .LVU879 2975 0092 A706 lsls r7, r4, #26 2976 0094 02D5 bpl .L304 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) 2977 .loc 1 1889 5 is_stmt 1 view .LVU880 2978 .loc 1 1889 8 is_stmt 0 view .LVU881 2979 0096 1AF0080F tst r10, #8 2980 009a 62D1 bne .L421 2981 .L304: 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); 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); 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) 2982 .loc 1 1906 3 is_stmt 1 view .LVU882 2983 .loc 1 1906 6 is_stmt 0 view .LVU883 2984 009c E006 lsls r0, r4, #27 2985 009e 03D5 bpl .L305 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) 2986 .loc 1 1909 5 is_stmt 1 view .LVU884 2987 .loc 1 1909 14 is_stmt 0 view .LVU885 2988 00a0 2B68 ldr r3, [r5] 2989 .loc 1 1909 24 view .LVU886 2990 00a2 1B69 ldr r3, [r3, #16] 2991 .loc 1 1909 8 view .LVU887 2992 00a4 9907 lsls r1, r3, #30 2993 00a6 7CD1 bne .L422 2994 .L305: 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); 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 *********************************************/ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 114 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_SLEEP_ACK) != 0U) 2995 .loc 1 1923 3 is_stmt 1 view .LVU888 2996 .loc 1 1923 6 is_stmt 0 view .LVU889 2997 00a8 A203 lsls r2, r4, #14 2998 00aa 02D5 bpl .L306 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) 2999 .loc 1 1925 5 is_stmt 1 view .LVU890 3000 .loc 1 1925 8 is_stmt 0 view .LVU891 3001 00ac 18F0100F tst r8, #16 3002 00b0 5ED1 bne .L423 3003 .L306: 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); 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); 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) 3004 .loc 1 1942 3 is_stmt 1 view .LVU892 3005 .loc 1 1942 6 is_stmt 0 view .LVU893 3006 00b2 E303 lsls r3, r4, #15 3007 00b4 02D5 bpl .L307 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) 3008 .loc 1 1944 5 is_stmt 1 view .LVU894 3009 .loc 1 1944 8 is_stmt 0 view .LVU895 3010 00b6 18F0080F tst r8, #8 3011 00ba 60D1 bne .L424 3012 .L307: 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); 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); 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 *********************************************/ 1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_ERROR) != 0U) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 115 3013 .loc 1 1961 3 is_stmt 1 view .LVU896 3014 .loc 1 1961 6 is_stmt 0 view .LVU897 3015 00bc 2704 lsls r7, r4, #16 3016 00be 05D5 bpl .L308 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) 3017 .loc 1 1963 5 is_stmt 1 view .LVU898 3018 .loc 1 1963 8 is_stmt 0 view .LVU899 3019 00c0 18F0040F tst r8, #4 3020 00c4 06D1 bne .L309 3021 .LVL211: 3022 .L412: 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) && 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 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; 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) && 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 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; 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) && 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 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; 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) && 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 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) 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; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 116 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; 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); 3023 .loc 1 2030 9 view .LVU900 3024 00c6 2B68 ldr r3, [r5] 3025 .L310: 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); 3026 .loc 1 2035 5 is_stmt 1 view .LVU901 3027 00c8 0422 movs r2, #4 3028 00ca 5A60 str r2, [r3, #4] 3029 .L308: 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) 3030 .loc 1 2039 3 view .LVU902 3031 .loc 1 2039 6 is_stmt 0 view .LVU903 3032 00cc 002E cmp r6, #0 3033 00ce 40D1 bne .L425 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; 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); 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 **** } 2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3034 .loc 1 2053 1 view .LVU904 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 117 3035 00d0 BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 3036 .LVL212: 3037 .L309: 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 3038 .loc 1 1966 7 is_stmt 1 view .LVU905 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 3039 .loc 1 1966 10 is_stmt 0 view .LVU906 3040 00d4 E005 lsls r0, r4, #23 3041 00d6 04D5 bpl .L311 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 3042 .loc 1 1966 55 discriminator 1 view .LVU907 3043 00d8 19F0010F tst r9, #1 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3044 .loc 1 1970 9 is_stmt 1 discriminator 1 view .LVU908 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3045 .loc 1 1970 19 is_stmt 0 discriminator 1 view .LVU909 3046 00dc 18BF it ne 3047 00de 46F00106 orrne r6, r6, #1 3048 .LVL213: 3049 .L311: 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 3050 .loc 1 1976 7 is_stmt 1 view .LVU910 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 3051 .loc 1 1976 10 is_stmt 0 view .LVU911 3052 00e2 A105 lsls r1, r4, #22 3053 00e4 04D5 bpl .L312 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 3054 .loc 1 1976 55 discriminator 1 view .LVU912 3055 00e6 19F0020F tst r9, #2 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3056 .loc 1 1980 9 is_stmt 1 discriminator 1 view .LVU913 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3057 .loc 1 1980 19 is_stmt 0 discriminator 1 view .LVU914 3058 00ea 18BF it ne 3059 00ec 46F00206 orrne r6, r6, #2 3060 .LVL214: 3061 .L312: 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 3062 .loc 1 1986 7 is_stmt 1 view .LVU915 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 3063 .loc 1 1986 10 is_stmt 0 view .LVU916 3064 00f0 6205 lsls r2, r4, #21 3065 00f2 04D5 bpl .L313 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 3066 .loc 1 1986 48 discriminator 1 view .LVU917 3067 00f4 19F0040F tst r9, #4 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3068 .loc 1 1990 9 is_stmt 1 discriminator 1 view .LVU918 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3069 .loc 1 1990 19 is_stmt 0 discriminator 1 view .LVU919 3070 00f8 18BF it ne 3071 00fa 46F00406 orrne r6, r6, #4 3072 .LVL215: 3073 .L313: 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 3074 .loc 1 1996 7 is_stmt 1 view .LVU920 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 118 3075 .loc 1 1996 10 is_stmt 0 view .LVU921 3076 00fe 2305 lsls r3, r4, #20 3077 0100 E1D5 bpl .L412 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 3078 .loc 1 1996 57 discriminator 1 view .LVU922 3079 0102 19F07009 ands r9, r9, #112 3080 .LVL216: 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 3081 .loc 1 1996 57 discriminator 1 view .LVU923 3082 0106 DED0 beq .L412 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3083 .loc 1 1999 9 is_stmt 1 view .LVU924 3084 0108 B9F1400F cmp r9, #64 3085 010c 00F08B80 beq .L316 3086 0110 57D8 bhi .L317 3087 0112 B9F1200F cmp r9, #32 3088 0116 78D0 beq .L318 3089 0118 B9F1300F cmp r9, #48 3090 011c 5FD1 bne .L426 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3091 .loc 1 2011 13 view .LVU925 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3092 .loc 1 2011 23 is_stmt 0 view .LVU926 3093 011e 46F02006 orr r6, r6, #32 3094 .LVL217: 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2): 3095 .loc 1 2012 13 is_stmt 1 view .LVU927 3096 0122 56E0 b .L321 3097 .LVL218: 3098 .L420: 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3099 .loc 1 1879 7 view .LVU928 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3100 .loc 1 1882 7 is_stmt 0 view .LVU929 3101 0124 2B68 ldr r3, [r5] 3102 0126 1022 movs r2, #16 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3103 .loc 1 1879 17 view .LVU930 3104 0128 46F48066 orr r6, r6, #1024 3105 .LVL219: 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3106 .loc 1 1882 7 is_stmt 1 view .LVU931 3107 012c 1A61 str r2, [r3, #16] 3108 012e B0E7 b .L303 3109 .LVL220: 3110 .L416: 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3111 .loc 1 1784 7 view .LVU932 3112 0130 2B68 ldr r3, [r5] 3113 0132 4FF48032 mov r2, #65536 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3114 .loc 1 1786 10 is_stmt 0 view .LVU933 3115 0136 B903 lsls r1, r7, #14 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3116 .loc 1 1784 7 view .LVU934 3117 0138 9A60 str r2, [r3, #8] 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 119 3118 .loc 1 1786 7 is_stmt 1 view .LVU935 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3119 .loc 1 1786 10 is_stmt 0 view .LVU936 3120 013a 36D4 bmi .L427 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3121 .loc 1 1799 9 is_stmt 1 view .LVU937 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3122 .loc 1 1799 12 is_stmt 0 view .LVU938 3123 013c 7A03 lsls r2, r7, #13 3124 013e 54D5 bpl .L298 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3125 .loc 1 1802 11 is_stmt 1 view .LVU939 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3126 .loc 1 1802 21 is_stmt 0 view .LVU940 3127 0140 46F40046 orr r6, r6, #32768 3128 .LVL221: 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3129 .loc 1 1802 21 view .LVU941 3130 0144 8EE7 b .L290 3131 .LVL222: 3132 .L417: 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3133 .loc 1 1830 7 is_stmt 1 view .LVU942 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3134 .loc 1 1833 7 is_stmt 0 view .LVU943 3135 0146 2B68 ldr r3, [r5] 3136 0148 1022 movs r2, #16 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3137 .loc 1 1830 17 view .LVU944 3138 014a 46F40076 orr r6, r6, #512 3139 .LVL223: 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3140 .loc 1 1833 7 is_stmt 1 view .LVU945 3141 014e DA60 str r2, [r3, #12] 3142 0150 8DE7 b .L300 3143 .LVL224: 3144 .L425: 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3145 .loc 1 2042 5 view .LVU946 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3146 .loc 1 2042 21 is_stmt 0 view .LVU947 3147 0152 6B6A ldr r3, [r5, #36] 3148 0154 1E43 orrs r6, r6, r3 3149 .LVL225: 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3150 .loc 1 2050 5 view .LVU948 3151 0156 2846 mov r0, r5 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3152 .loc 1 2042 21 view .LVU949 3153 0158 6E62 str r6, [r5, #36] 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3154 .loc 1 2050 5 is_stmt 1 view .LVU950 3155 015a FFF7FEFF bl HAL_CAN_ErrorCallback 3156 .LVL226: 3157 .loc 1 2053 1 is_stmt 0 view .LVU951 3158 015e BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 3159 .LVL227: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 120 3160 .L421: 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3161 .loc 1 1892 7 is_stmt 1 view .LVU952 3162 0162 2B68 ldr r3, [r5] 3163 0164 0822 movs r2, #8 3164 0166 1A61 str r2, [r3, #16] 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3165 .loc 1 1900 7 view .LVU953 3166 0168 2846 mov r0, r5 3167 016a FFF7FEFF bl HAL_CAN_RxFifo1FullCallback 3168 .LVL228: 3169 016e 95E7 b .L304 3170 .L423: 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3171 .loc 1 1928 7 view .LVU954 3172 0170 2B68 ldr r3, [r5] 3173 0172 1022 movs r2, #16 3174 0174 5A60 str r2, [r3, #4] 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3175 .loc 1 1936 7 view .LVU955 3176 0176 2846 mov r0, r5 3177 0178 FFF7FEFF bl HAL_CAN_SleepCallback 3178 .LVL229: 3179 017c 99E7 b .L306 3180 .L424: 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3181 .loc 1 1947 7 view .LVU956 3182 017e 2B68 ldr r3, [r5] 3183 0180 0822 movs r2, #8 3184 0182 5A60 str r2, [r3, #4] 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3185 .loc 1 1955 7 view .LVU957 3186 0184 2846 mov r0, r5 3187 0186 FFF7FEFF bl HAL_CAN_WakeUpFromRxMsgCallback 3188 .LVL230: 3189 018a 97E7 b .L307 3190 .L419: 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3191 .loc 1 1868 7 view .LVU958 3192 018c 2846 mov r0, r5 3193 018e FFF7FEFF bl HAL_CAN_RxFifo0MsgPendingCallback 3194 .LVL231: 3195 0192 79E7 b .L302 3196 .L418: 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3197 .loc 1 1843 7 view .LVU959 3198 0194 2B68 ldr r3, [r5] 3199 0196 0822 movs r2, #8 3200 0198 DA60 str r2, [r3, #12] 1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3201 .loc 1 1851 7 view .LVU960 3202 019a 2846 mov r0, r5 3203 019c FFF7FEFF bl HAL_CAN_RxFifo0FullCallback 3204 .LVL232: 3205 01a0 6BE7 b .L301 3206 .L422: 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 121 3207 .loc 1 1917 7 view .LVU961 3208 01a2 2846 mov r0, r5 3209 01a4 FFF7FEFF bl HAL_CAN_RxFifo1MsgPendingCallback 3210 .LVL233: 3211 01a8 7EE7 b .L305 3212 .LVL234: 3213 .L427: 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3214 .loc 1 1794 9 view .LVU962 3215 01aa 2846 mov r0, r5 3216 01ac FFF7FEFF bl HAL_CAN_TxMailbox2CompleteCallback 3217 .LVL235: 3218 01b0 58E7 b .L290 3219 .L415: 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3220 .loc 1 1751 9 view .LVU963 3221 01b2 2846 mov r0, r5 3222 01b4 FFF7FEFF bl HAL_CAN_TxMailbox1CompleteCallback 3223 .LVL236: 3224 01b8 52E7 b .L293 3225 .LVL237: 3226 .L413: 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3227 .loc 1 1708 9 view .LVU964 3228 01ba FFF7FEFF bl HAL_CAN_TxMailbox0CompleteCallback 3229 .LVL238: 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 3230 .loc 1 1683 12 is_stmt 0 view .LVU965 3231 01be 0026 movs r6, #0 3232 01c0 40E7 b .L291 3233 .LVL239: 3234 .L317: 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3235 .loc 1 1999 9 view .LVU966 3236 01c2 B9F1500F cmp r9, #80 3237 01c6 1DD0 beq .L322 3238 01c8 B9F1600F cmp r9, #96 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3239 .loc 1 2023 23 view .LVU967 3240 01cc 08BF it eq 3241 01ce 46F48076 orreq r6, r6, #256 3242 .LVL240: 3243 .L321: 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3244 .loc 1 2030 9 is_stmt 1 view .LVU968 3245 01d2 2B68 ldr r3, [r5] 3246 01d4 9A69 ldr r2, [r3, #24] 3247 01d6 22F07002 bic r2, r2, #112 3248 01da 9A61 str r2, [r3, #24] 3249 01dc 74E7 b .L310 3250 .L426: 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3251 .loc 1 1999 9 is_stmt 0 view .LVU969 3252 01de B9F1100F cmp r9, #16 3253 01e2 F6D1 bne .L321 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3254 .loc 1 2003 13 is_stmt 1 view .LVU970 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 122 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3255 .loc 1 2003 23 is_stmt 0 view .LVU971 3256 01e4 46F00806 orr r6, r6, #8 3257 .LVL241: 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1): 3258 .loc 1 2004 13 is_stmt 1 view .LVU972 3259 01e8 F3E7 b .L321 3260 .LVL242: 3261 .L298: 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3262 .loc 1 1804 14 view .LVU973 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3263 .loc 1 1804 17 is_stmt 0 view .LVU974 3264 01ea 3B03 lsls r3, r7, #12 3265 01ec 17D5 bpl .L299 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3266 .loc 1 1807 11 is_stmt 1 view .LVU975 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3267 .loc 1 1807 21 is_stmt 0 view .LVU976 3268 01ee 46F48036 orr r6, r6, #65536 3269 .LVL243: 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3270 .loc 1 1807 21 view .LVU977 3271 01f2 37E7 b .L290 3272 .L295: 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3273 .loc 1 1761 14 is_stmt 1 view .LVU978 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3274 .loc 1 1761 17 is_stmt 0 view .LVU979 3275 01f4 3B05 lsls r3, r7, #20 3276 01f6 0ED5 bpl .L296 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3277 .loc 1 1764 11 is_stmt 1 view .LVU980 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3278 .loc 1 1764 21 is_stmt 0 view .LVU981 3279 01f8 46F48046 orr r6, r6, #16384 3280 .LVL244: 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3281 .loc 1 1764 21 view .LVU982 3282 01fc 30E7 b .L293 3283 .LVL245: 3284 .L325: 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3285 .loc 1 1716 21 view .LVU983 3286 01fe 4FF40066 mov r6, #2048 3287 0202 1FE7 b .L291 3288 .LVL246: 3289 .L322: 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3290 .loc 1 2019 13 is_stmt 1 view .LVU984 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3291 .loc 1 2019 23 is_stmt 0 view .LVU985 3292 0204 46F08006 orr r6, r6, #128 3293 .LVL247: 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1): 3294 .loc 1 2020 13 is_stmt 1 view .LVU986 3295 0208 E3E7 b .L321 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 123 3296 .L318: 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3297 .loc 1 2007 13 view .LVU987 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3298 .loc 1 2007 23 is_stmt 0 view .LVU988 3299 020a 46F01006 orr r6, r6, #16 3300 .LVL248: 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0): 3301 .loc 1 2008 13 is_stmt 1 view .LVU989 3302 020e E0E7 b .L321 3303 .LVL249: 3304 .L414: 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3305 .loc 1 1731 11 view .LVU990 3306 0210 FFF7FEFF bl HAL_CAN_TxMailbox0AbortCallback 3307 .LVL250: 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3308 .loc 1 1731 11 is_stmt 0 view .LVU991 3309 0214 16E7 b .L291 3310 .LVL251: 3311 .L296: 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3312 .loc 1 1774 11 is_stmt 1 view .LVU992 3313 0216 2846 mov r0, r5 3314 0218 FFF7FEFF bl HAL_CAN_TxMailbox1AbortCallback 3315 .LVL252: 3316 021c 20E7 b .L293 3317 .L299: 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 3318 .loc 1 1817 11 view .LVU993 3319 021e 2846 mov r0, r5 3320 0220 FFF7FEFF bl HAL_CAN_TxMailbox2AbortCallback 3321 .LVL253: 3322 0224 1EE7 b .L290 3323 .LVL254: 3324 .L316: 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3325 .loc 1 2015 13 view .LVU994 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break; 3326 .loc 1 2015 23 is_stmt 0 view .LVU995 3327 0226 46F04006 orr r6, r6, #64 3328 .LVL255: 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0): 3329 .loc 1 2016 13 is_stmt 1 view .LVU996 3330 022a D2E7 b .L321 3331 .cfi_endproc 3332 .LFE149: 3334 .section .text.HAL_CAN_GetState,"ax",%progbits 3335 .align 1 3336 .p2align 2,,3 3337 .global HAL_CAN_GetState 3338 .syntax unified 3339 .thumb 3340 .thumb_func 3342 HAL_CAN_GetState: 3343 .LVL256: 3344 .LFB163: ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 124 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. 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 **** { 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 **** } 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. 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 **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 125 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 **** } 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. 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 **** { 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 **** } 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. 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 **** { 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 **** } 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. 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 **** { 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 126 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */ 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 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. 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 **** { 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 **** } 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. 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 **** { 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 **** } 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. 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 **** { 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 **** } 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 ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 127 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN. 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 **** { 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 **** } 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. 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 **** { 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 **** } 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. 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 **** { 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 **** } 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 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 **** { 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); ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 128 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 **** } 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 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 **** { 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 **** } 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 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 **** { 3345 .loc 1 2333 1 view -0 3346 .cfi_startproc 3347 @ args = 0, pretend = 0, frame = 0 3348 @ frame_needed = 0, uses_anonymous_args = 0 3349 @ link register save eliminated. ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 129 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3350 .loc 1 2334 3 view .LVU998 3351 .loc 1 2334 24 is_stmt 0 view .LVU999 3352 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 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) || 3353 .loc 1 2336 6 view .LVU1000 3354 0004 591E subs r1, r3, #1 3355 0006 0129 cmp r1, #1 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3356 .loc 1 2333 1 view .LVU1001 3357 0008 0246 mov r2, r0 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3358 .loc 1 2334 24 view .LVU1002 3359 000a D8B2 uxtb r0, r3 3360 .LVL257: 3361 .loc 1 2336 3 is_stmt 1 view .LVU1003 3362 .loc 1 2336 6 is_stmt 0 view .LVU1004 3363 000c 00D9 bls .L433 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 **** { 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) 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; 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) 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; 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 **** } 3364 .loc 1 2354 5 is_stmt 1 view .LVU1005 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; 3365 .loc 1 2358 3 view .LVU1006 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3366 .loc 1 2359 1 is_stmt 0 view .LVU1007 3367 000e 7047 bx lr 3368 .L433: 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3369 .loc 1 2340 5 is_stmt 1 view .LVU1008 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3370 .loc 1 2340 14 is_stmt 0 view .LVU1009 3371 0010 1368 ldr r3, [r2] 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3372 .loc 1 2340 24 view .LVU1010 3373 0012 5A68 ldr r2, [r3, #4] 3374 .LVL258: 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 130 3375 .loc 1 2340 8 view .LVU1011 3376 0014 9207 lsls r2, r2, #30 3377 0016 05D4 bmi .L430 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3378 .loc 1 2346 10 is_stmt 1 view .LVU1012 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** { 3379 .loc 1 2346 29 is_stmt 0 view .LVU1013 3380 0018 1B68 ldr r3, [r3] 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3381 .loc 1 2349 13 view .LVU1014 3382 001a 13F0020F tst r3, #2 3383 001e 18BF it ne 3384 0020 0320 movne r0, #3 3385 .LVL259: 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3386 .loc 1 2349 13 view .LVU1015 3387 0022 7047 bx lr 3388 .LVL260: 3389 .L430: 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3390 .loc 1 2343 13 view .LVU1016 3391 0024 0420 movs r0, #4 3392 .LVL261: 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3393 .loc 1 2354 5 is_stmt 1 view .LVU1017 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3394 .loc 1 2358 3 view .LVU1018 3395 .loc 1 2359 1 is_stmt 0 view .LVU1019 3396 0026 7047 bx lr 3397 .cfi_endproc 3398 .LFE163: 3400 .section .text.HAL_CAN_GetError,"ax",%progbits 3401 .align 1 3402 .p2align 2,,3 3403 .global HAL_CAN_GetError 3404 .syntax unified 3405 .thumb 3406 .thumb_func 3408 HAL_CAN_GetError: 3409 .LVL262: 3410 .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 **** { 3411 .loc 1 2368 1 is_stmt 1 view -0 3412 .cfi_startproc 3413 @ args = 0, pretend = 0, frame = 0 3414 @ frame_needed = 0, uses_anonymous_args = 0 3415 @ link register save eliminated. 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; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 131 3416 .loc 1 2370 3 view .LVU1021 3417 .loc 1 2370 14 is_stmt 0 view .LVU1022 3418 0000 406A ldr r0, [r0, #36] 3419 .LVL263: 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3420 .loc 1 2371 1 view .LVU1023 3421 0002 7047 bx lr 3422 .cfi_endproc 3423 .LFE164: 3425 .section .text.HAL_CAN_ResetError,"ax",%progbits 3426 .align 1 3427 .p2align 2,,3 3428 .global HAL_CAN_ResetError 3429 .syntax unified 3430 .thumb 3431 .thumb_func 3433 HAL_CAN_ResetError: 3434 .LVL264: 3435 .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 **** { 3436 .loc 1 2380 1 is_stmt 1 view -0 3437 .cfi_startproc 3438 @ args = 0, pretend = 0, frame = 0 3439 @ frame_needed = 0, uses_anonymous_args = 0 3440 @ link register save eliminated. 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 3441 .loc 1 2381 3 view .LVU1025 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3442 .loc 1 2382 3 view .LVU1026 3443 .loc 1 2382 24 is_stmt 0 view .LVU1027 3444 0000 90F82020 ldrb r2, [r0, #32] @ zero_extendqisi2 3445 .LVL265: 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) || 3446 .loc 1 2384 3 is_stmt 1 view .LVU1028 3447 .loc 1 2384 6 is_stmt 0 view .LVU1029 3448 0004 013A subs r2, r2, #1 3449 .LVL266: 3450 .loc 1 2384 6 view .LVU1030 3451 0006 012A cmp r2, #1 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 3452 .loc 1 2380 1 view .LVU1031 3453 0008 0346 mov r3, r0 3454 .loc 1 2384 6 view .LVU1032 3455 000a 05D9 bls .L438 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; ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 132 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; 3456 .loc 1 2393 5 is_stmt 1 view .LVU1033 3457 .loc 1 2393 21 is_stmt 0 view .LVU1034 3458 000c 426A ldr r2, [r0, #36] 3459 000e 42F48022 orr r2, r2, #262144 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR; 3460 .loc 1 2395 12 view .LVU1035 3461 0012 0120 movs r0, #1 3462 .LVL267: 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** 3463 .loc 1 2393 21 view .LVU1036 3464 0014 5A62 str r2, [r3, #36] 3465 .loc 1 2395 5 is_stmt 1 view .LVU1037 3466 .LVL268: 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; 3467 .loc 1 2399 3 view .LVU1038 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3468 .loc 1 2400 1 is_stmt 0 view .LVU1039 3469 0016 7047 bx lr 3470 .LVL269: 3471 .L438: 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3472 .loc 1 2388 5 is_stmt 1 view .LVU1040 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3473 .loc 1 2388 21 is_stmt 0 view .LVU1041 3474 0018 0020 movs r0, #0 3475 .LVL270: 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** } 3476 .loc 1 2388 21 view .LVU1042 3477 001a 5862 str r0, [r3, #36] 3478 001c 7047 bx lr 3479 .cfi_endproc 3480 .LFE165: 3482 001e 00BF .text 3483 .Letext0: 3484 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 3485 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 3486 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 3487 .file 6 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h" 3488 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 3489 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h" 3490 .file 9 "Core/Inc/stm32f3xx_hal_conf.h" 3491 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h" ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 133 DEFINED SYMBOLS *ABS*:00000000 stm32f3xx_hal_can.c C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:20 .text.HAL_CAN_MspInit:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:27 .text.HAL_CAN_MspInit:00000000 HAL_CAN_MspInit C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:43 .rodata.HAL_CAN_Init.str1.4:00000000 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:48 .text.HAL_CAN_Init:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:55 .text.HAL_CAN_Init:00000000 HAL_CAN_Init C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:465 .text.HAL_CAN_Init:00000240 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:471 .text.HAL_CAN_MspDeInit:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:478 .text.HAL_CAN_MspDeInit:00000000 HAL_CAN_MspDeInit C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:489 .text.HAL_CAN_ConfigFilter:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:496 .text.HAL_CAN_ConfigFilter:00000000 HAL_CAN_ConfigFilter C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:791 .text.HAL_CAN_ConfigFilter:0000019c $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:796 .text.HAL_CAN_Start:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:803 .text.HAL_CAN_Start:00000000 HAL_CAN_Start C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:916 .text.HAL_CAN_Stop:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:923 .text.HAL_CAN_Stop:00000000 HAL_CAN_Stop C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1047 .text.HAL_CAN_DeInit:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1054 .text.HAL_CAN_DeInit:00000000 HAL_CAN_DeInit C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1127 .text.HAL_CAN_DeInit:00000040 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1133 .text.HAL_CAN_RequestSleep:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1140 .text.HAL_CAN_RequestSleep:00000000 HAL_CAN_RequestSleep C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1192 .text.HAL_CAN_WakeUp:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1199 .text.HAL_CAN_WakeUp:00000000 HAL_CAN_WakeUp C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1310 .text.HAL_CAN_WakeUp:00000058 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1315 .text.HAL_CAN_IsSleepActive:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1322 .text.HAL_CAN_IsSleepActive:00000000 HAL_CAN_IsSleepActive C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1359 .text.HAL_CAN_AddTxMessage:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1366 .text.HAL_CAN_AddTxMessage:00000000 HAL_CAN_AddTxMessage C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1605 .text.HAL_CAN_AddTxMessage:00000130 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1610 .text.HAL_CAN_AbortTxRequest:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1617 .text.HAL_CAN_AbortTxRequest:00000000 HAL_CAN_AbortTxRequest C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1726 .text.HAL_CAN_AbortTxRequest:00000064 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1731 .text.HAL_CAN_GetTxMailboxesFreeLevel:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1738 .text.HAL_CAN_GetTxMailboxesFreeLevel:00000000 HAL_CAN_GetTxMailboxesFreeLevel C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1802 .text.HAL_CAN_IsTxMessagePending:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1809 .text.HAL_CAN_IsTxMessagePending:00000000 HAL_CAN_IsTxMessagePending C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1883 .text.HAL_CAN_IsTxMessagePending:0000003c $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1888 .text.HAL_CAN_GetTxTimestamp:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:1895 .text.HAL_CAN_GetTxTimestamp:00000000 HAL_CAN_GetTxTimestamp C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2008 .text.HAL_CAN_GetTxTimestamp:00000048 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2013 .text.HAL_CAN_GetRxMessage:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2020 .text.HAL_CAN_GetRxMessage:00000000 HAL_CAN_GetRxMessage C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2294 .text.HAL_CAN_GetRxMessage:00000144 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2299 .text.HAL_CAN_GetRxFifoFillLevel:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2306 .text.HAL_CAN_GetRxFifoFillLevel:00000000 HAL_CAN_GetRxFifoFillLevel C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2394 .text.HAL_CAN_GetRxFifoFillLevel:00000040 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2399 .text.HAL_CAN_ActivateNotification:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2406 .text.HAL_CAN_ActivateNotification:00000000 HAL_CAN_ActivateNotification C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2485 .text.HAL_CAN_ActivateNotification:0000003c $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2491 .text.HAL_CAN_DeactivateNotification:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2498 .text.HAL_CAN_DeactivateNotification:00000000 HAL_CAN_DeactivateNotification C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2577 .text.HAL_CAN_DeactivateNotification:00000040 $d C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2583 .text.HAL_CAN_TxMailbox0CompleteCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2590 .text.HAL_CAN_TxMailbox0CompleteCallback:00000000 HAL_CAN_TxMailbox0CompleteCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2601 .text.HAL_CAN_TxMailbox1CompleteCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2608 .text.HAL_CAN_TxMailbox1CompleteCallback:00000000 HAL_CAN_TxMailbox1CompleteCallback ARM GAS C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s page 134 C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2619 .text.HAL_CAN_TxMailbox2CompleteCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2626 .text.HAL_CAN_TxMailbox2CompleteCallback:00000000 HAL_CAN_TxMailbox2CompleteCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2637 .text.HAL_CAN_TxMailbox0AbortCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2644 .text.HAL_CAN_TxMailbox0AbortCallback:00000000 HAL_CAN_TxMailbox0AbortCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2655 .text.HAL_CAN_TxMailbox1AbortCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2662 .text.HAL_CAN_TxMailbox1AbortCallback:00000000 HAL_CAN_TxMailbox1AbortCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2673 .text.HAL_CAN_TxMailbox2AbortCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2680 .text.HAL_CAN_TxMailbox2AbortCallback:00000000 HAL_CAN_TxMailbox2AbortCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2691 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2698 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 HAL_CAN_RxFifo0MsgPendingCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2709 .text.HAL_CAN_RxFifo0FullCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2716 .text.HAL_CAN_RxFifo0FullCallback:00000000 HAL_CAN_RxFifo0FullCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2727 .text.HAL_CAN_RxFifo1MsgPendingCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2734 .text.HAL_CAN_RxFifo1MsgPendingCallback:00000000 HAL_CAN_RxFifo1MsgPendingCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2745 .text.HAL_CAN_RxFifo1FullCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2752 .text.HAL_CAN_RxFifo1FullCallback:00000000 HAL_CAN_RxFifo1FullCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2763 .text.HAL_CAN_SleepCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2770 .text.HAL_CAN_SleepCallback:00000000 HAL_CAN_SleepCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2781 .text.HAL_CAN_WakeUpFromRxMsgCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2788 .text.HAL_CAN_WakeUpFromRxMsgCallback:00000000 HAL_CAN_WakeUpFromRxMsgCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2799 .text.HAL_CAN_ErrorCallback:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2806 .text.HAL_CAN_ErrorCallback:00000000 HAL_CAN_ErrorCallback C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2817 .text.HAL_CAN_IRQHandler:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:2824 .text.HAL_CAN_IRQHandler:00000000 HAL_CAN_IRQHandler C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:3335 .text.HAL_CAN_GetState:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:3342 .text.HAL_CAN_GetState:00000000 HAL_CAN_GetState C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:3401 .text.HAL_CAN_GetError:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:3408 .text.HAL_CAN_GetError:00000000 HAL_CAN_GetError C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:3426 .text.HAL_CAN_ResetError:00000000 $t C:\Users\zl835\AppData\Local\Temp\ccj8PKlf.s:3433 .text.HAL_CAN_ResetError:00000000 HAL_CAN_ResetError UNDEFINED SYMBOLS assert_failed HAL_GetTick