ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 6 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "stm32f4xx_hal_can.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .section .text.HAL_CAN_Init,"ax",%progbits 20 .align 1 21 .global HAL_CAN_Init 22 .syntax unified 23 .thumb 24 .thumb_func 26 HAL_CAN_Init: 27 .LFB235: 28 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c" 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ****************************************************************************** 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @file stm32f4xx_hal_can.c 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @author MCD Application Team 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief CAN HAL module driver. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * functionalities of the Controller Area Network (CAN) peripheral: 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * + Configuration functions 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * + Control functions 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * + Interrupts management 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * + Callbacks functions 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * + Peripheral State and Error functions 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ****************************************************************************** 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @attention 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * Copyright (c) 2016 STMicroelectronics. 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * All rights reserved. 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This software is licensed under terms that can be found in the LICENSE file 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * in the root directory of this software component. 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ****************************************************************************** 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @verbatim 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ##### How to use this driver ##### 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 2 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Initialize the CAN low level resources by implementing the 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_MspInit(): 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) Enable the CAN interface clock using __HAL_RCC_CANx_CLK_ENABLE() 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) Configure CAN pins 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+++) Enable the clock for the CAN GPIOs 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+++) Configure CAN pins as alternate function open-drain 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) In case of using interrupts (e.g. HAL_CAN_ActivateNotification()) 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+++) Configure the CAN interrupt priority using 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_NVIC_SetPriority() 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+++) Enable the CAN IRQ handler using HAL_NVIC_EnableIRQ() 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+++) In CAN IRQ handler, call HAL_CAN_IRQHandler() 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Initialize the CAN peripheral using HAL_CAN_Init() function. This 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** function resorts to HAL_CAN_MspInit() for low-level initialization. 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Configure the reception filters using the following configuration 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** functions: 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) HAL_CAN_ConfigFilter() 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Start the CAN module using HAL_CAN_Start() function. At this level 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the node is active on the bus: it receive messages, and can send 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** messages. 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) To manage messages transmission, the following Tx control functions 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** can be used: 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) HAL_CAN_AddTxMessage() to request transmission of a new 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** message. 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) HAL_CAN_AbortTxRequest() to abort transmission of a pending 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** message. 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) HAL_CAN_GetTxMailboxesFreeLevel() to get the number of free Tx 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** mailboxes. 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) HAL_CAN_IsTxMessagePending() to check if a message is pending 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** in a Tx mailbox. 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) HAL_CAN_GetTxTimestamp() to get the timestamp of Tx message 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** sent, if time triggered communication mode is enabled. 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) When a message is received into the CAN Rx FIFOs, it can be retrieved 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** using the HAL_CAN_GetRxMessage() function. The function 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_GetRxFifoFillLevel() allows to know how many Rx message are 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** stored in the Rx Fifo. 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Calling the HAL_CAN_Stop() function stops the CAN module. 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) The deinitialization is achieved with HAL_CAN_DeInit() function. 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** *** Polling mode operation *** 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================== 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Reception: 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) Monitor reception of message using HAL_CAN_GetRxFifoFillLevel() 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** until at least one message is received. 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) Then get the message using HAL_CAN_GetRxMessage(). 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Transmission: 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) Monitor the Tx mailboxes availability until at least one Tx 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** mailbox is free, using HAL_CAN_GetTxMailboxesFreeLevel(). ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 3 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) Then request transmission of a message using 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_AddTxMessage(). 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** *** Interrupt mode operation *** 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ================================ 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Notifications are activated using HAL_CAN_ActivateNotification() 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** function. Then, the process can be controlled through the 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** available user callbacks: HAL_CAN_xxxCallback(), using same APIs 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_GetRxMessage() and HAL_CAN_AddTxMessage(). 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Notifications can be deactivated using 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_DeactivateNotification() function. 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) Special care should be taken for CAN_IT_RX_FIFO0_MSG_PENDING and 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CAN_IT_RX_FIFO1_MSG_PENDING notifications. These notifications trig 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the callbacks HAL_CAN_RxFIFO0MsgPendingCallback() and 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_RxFIFO1MsgPendingCallback(). User has two possible options 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** here. 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) Directly get the Rx message in the callback, using 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_GetRxMessage(). 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) Or deactivate the notification in the callback without 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** getting the Rx message. The Rx message can then be got later 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** using HAL_CAN_GetRxMessage(). Once the Rx message have been 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** read, the notification can be activated again. 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** *** Sleep mode *** 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ================== 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) The CAN peripheral can be put in sleep mode (low power), using 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_RequestSleep(). The sleep mode will be entered as soon as the 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** current CAN activity (transmission or reception of a CAN frame) will 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** be completed. 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) A notification can be activated to be informed when the sleep mode 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** will be entered. 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) It can be checked if the sleep mode is entered using 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_IsSleepActive(). 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** Note that the CAN state (accessible from the API HAL_CAN_GetState()) 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** is HAL_CAN_STATE_SLEEP_PENDING as soon as the sleep mode request is 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** submitted (the sleep mode is not yet entered), and become 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_STATE_SLEEP_ACTIVE when the sleep mode is effective. 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (#) The wake-up from sleep mode can be triggered by two ways: 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) Using HAL_CAN_WakeUp(). When returning from this function, 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the sleep mode is exited (if return status is HAL_OK). 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (++) When a start of Rx CAN frame is detected by the CAN peripheral, 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if automatic wake up mode is enabled. 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** *** Callback registration *** 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================= 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** The compilation define USE_HAL_CAN_REGISTER_CALLBACKS when set to 1 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** allows the user to configure dynamically the driver callbacks. ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 4 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** Use Function HAL_CAN_RegisterCallback() to register an interrupt callback. 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** Function HAL_CAN_RegisterCallback() allows to register following callbacks: 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback. 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback. 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback. 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback. 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback. 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback. 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback. 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback. 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback. 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback. 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) SleepCallback : Sleep Callback. 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback. 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) ErrorCallback : Error Callback. 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) MspInitCallback : CAN MspInit. 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit. 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** and a pointer to the user callback function. 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** Use function HAL_CAN_UnRegisterCallback() to reset a callback to the default 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** weak function. 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_UnRegisterCallback takes as parameters the HAL peripheral handle, 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** and the Callback ID. 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** This function allows to reset following callbacks: 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback. 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback. 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback. 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback. 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback. 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback. 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback. 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback. 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback. 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback. 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) SleepCallback : Sleep Callback. 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback. 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) ErrorCallback : Error Callback. 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) MspInitCallback : CAN MspInit. 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit. 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** By default, after the HAL_CAN_Init() and when the state is HAL_CAN_STATE_RESET, 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** all callbacks are set to the corresponding weak functions: 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** example HAL_CAN_ErrorCallback(). 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** Exception done for MspInit and MspDeInit functions that are 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** reset to the legacy weak function in the HAL_CAN_Init()/ HAL_CAN_DeInit() only when 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** these callbacks are null (not registered beforehand). 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if not, MspInit or MspDeInit are not null, the HAL_CAN_Init()/ HAL_CAN_DeInit() 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** Callbacks can be registered/unregistered in HAL_CAN_STATE_READY state only. 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** Exception done MspInit/MspDeInit that can be registered/unregistered 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** in HAL_CAN_STATE_READY or HAL_CAN_STATE_RESET state, 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** In that case first register the MspInit/MspDeInit user callbacks 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** using HAL_CAN_RegisterCallback() before calling HAL_CAN_DeInit() ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 5 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** or HAL_CAN_Init() function. 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** When The compilation define USE_HAL_CAN_REGISTER_CALLBACKS is set to 0 or 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** not defined, the callback registration feature is not available and all callbacks 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** are set to the corresponding weak functions. 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @endverbatim 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ****************************************************************************** 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Includes ------------------------------------------------------------------*/ 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #include "stm32f4xx_hal.h" 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @addtogroup STM32F4xx_HAL_Driver 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if defined(CAN1) 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @defgroup CAN CAN 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief CAN driver modules 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #ifdef HAL_CAN_MODULE_ENABLED 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #ifdef HAL_CAN_LEGACY_MODULE_ENABLED 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #error "The CAN driver cannot be used with its legacy, Please enable only one CAN module at once" 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Private typedef -----------------------------------------------------------*/ 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Private define ------------------------------------------------------------*/ 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @defgroup CAN_Private_Constants CAN Private Constants 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #define CAN_TIMEOUT_VALUE 10U 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @} 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Private macro -------------------------------------------------------------*/ 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Private variables ---------------------------------------------------------*/ 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Private function prototypes -----------------------------------------------*/ 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Exported functions --------------------------------------------------------*/ 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @defgroup CAN_Exported_Functions CAN Exported Functions 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group1 Initialization and de-initialization functions 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Initialization and Configuration functions 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @verbatim 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ##### Initialization and de-initialization functions ##### 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] This section provides functions allowing to: 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_Init : Initialize and configure the CAN. ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 6 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_DeInit : De-initialize the CAN. 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_MspInit : Initialize the CAN MSP. 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_MspDeInit : DeInitialize the CAN MSP. 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @endverbatim 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Initializes the CAN peripheral according to the specified 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * parameters in the CAN_InitStruct. 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef *hcan) 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 29 .loc 1 275 1 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 16 32 @ frame_needed = 1, uses_anonymous_args = 0 33 0000 80B5 push {r7, lr} 34 .LCFI0: 35 .cfi_def_cfa_offset 8 36 .cfi_offset 7, -8 37 .cfi_offset 14, -4 38 0002 84B0 sub sp, sp, #16 39 .LCFI1: 40 .cfi_def_cfa_offset 24 41 0004 00AF add r7, sp, #0 42 .LCFI2: 43 .cfi_def_cfa_register 7 44 0006 7860 str r0, [r7, #4] 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t tickstart; 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check CAN handle */ 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan == NULL) 45 .loc 1 279 6 46 0008 7B68 ldr r3, [r7, #4] 47 000a 002B cmp r3, #0 48 000c 01D1 bne .L2 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 49 .loc 1 281 12 50 000e 0123 movs r3, #1 51 0010 EDE0 b .L3 52 .L2: 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the parameters */ 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance)); 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff)); 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp)); 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission)); 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked)); 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority)); ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 7 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode)); 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth)); 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1)); 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler)); 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET) 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Reset callbacks to legacy functions */ 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; /* Legacy weak RxFifo0M 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; /* Legacy weak RxFifo0F 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; /* Legacy weak RxFifo1M 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; /* Legacy weak RxFifo1F 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; /* Legacy weak TxMailbo 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; /* Legacy weak TxMailbo 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; /* Legacy weak TxMailbo 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; /* Legacy weak TxMailbo 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; /* Legacy weak TxMailbo 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; /* Legacy weak TxMailbo 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback; /* Legacy weak SleepCal 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; /* Legacy weak WakeUpFr 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback; /* Legacy weak ErrorCal 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->MspInitCallback == NULL) 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; /* Legacy weak MspInit */ 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */ 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspInitCallback(hcan); 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET) 53 .loc 1 326 11 54 0012 7B68 ldr r3, [r7, #4] 55 0014 93F82030 ldrb r3, [r3, #32] 56 0018 DBB2 uxtb r3, r3 57 .loc 1 326 6 58 001a 002B cmp r3, #0 59 001c 02D1 bne .L4 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */ 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_MspInit(hcan); 60 .loc 1 329 5 61 001e 7868 ldr r0, [r7, #4] 62 0020 FFF7FEFF bl HAL_CAN_MspInit 63 .L4: 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */ 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Request initialisation */ 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); 64 .loc 1 334 3 65 0024 7B68 ldr r3, [r7, #4] 66 0026 1B68 ldr r3, [r3] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 8 67 0028 1A68 ldr r2, [r3] 68 002a 7B68 ldr r3, [r7, #4] 69 002c 1B68 ldr r3, [r3] 70 002e 42F00102 orr r2, r2, #1 71 0032 1A60 str r2, [r3] 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Get tick */ 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** tickstart = HAL_GetTick(); 72 .loc 1 337 15 73 0034 FFF7FEFF bl HAL_GetTick 74 0038 F860 str r0, [r7, #12] 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Wait initialisation acknowledge */ 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U) 75 .loc 1 340 9 76 003a 12E0 b .L5 77 .L6: 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 78 .loc 1 342 10 79 003c FFF7FEFF bl HAL_GetTick 80 0040 0246 mov r2, r0 81 .loc 1 342 24 82 0042 FB68 ldr r3, [r7, #12] 83 0044 D31A subs r3, r2, r3 84 .loc 1 342 8 85 0046 0A2B cmp r3, #10 86 0048 0BD9 bls .L5 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 87 .loc 1 345 23 88 004a 7B68 ldr r3, [r7, #4] 89 004c 5B6A ldr r3, [r3, #36] 90 004e 43F40032 orr r2, r3, #131072 91 0052 7B68 ldr r3, [r7, #4] 92 0054 5A62 str r2, [r3, #36] 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Change CAN state */ 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 93 .loc 1 348 19 94 0056 7B68 ldr r3, [r7, #4] 95 0058 0522 movs r2, #5 96 005a 83F82020 strb r2, [r3, #32] 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 97 .loc 1 350 14 98 005e 0123 movs r3, #1 99 0060 C5E0 b .L3 100 .L5: 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 101 .loc 1 340 15 102 0062 7B68 ldr r3, [r7, #4] 103 0064 1B68 ldr r3, [r3] 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 104 .loc 1 340 25 105 0066 5B68 ldr r3, [r3, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 9 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 106 .loc 1 340 31 107 0068 03F00103 and r3, r3, #1 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 108 .loc 1 340 9 109 006c 002B cmp r3, #0 110 006e E5D0 beq .L6 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Exit from sleep mode */ 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 111 .loc 1 355 3 112 0070 7B68 ldr r3, [r7, #4] 113 0072 1B68 ldr r3, [r3] 114 0074 1A68 ldr r2, [r3] 115 0076 7B68 ldr r3, [r7, #4] 116 0078 1B68 ldr r3, [r3] 117 007a 22F00202 bic r2, r2, #2 118 007e 1A60 str r2, [r3] 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Get tick */ 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** tickstart = HAL_GetTick(); 119 .loc 1 358 15 120 0080 FFF7FEFF bl HAL_GetTick 121 0084 F860 str r0, [r7, #12] 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Sleep mode leave acknowledge */ 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 122 .loc 1 361 9 123 0086 12E0 b .L7 124 .L8: 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 125 .loc 1 363 10 126 0088 FFF7FEFF bl HAL_GetTick 127 008c 0246 mov r2, r0 128 .loc 1 363 24 129 008e FB68 ldr r3, [r7, #12] 130 0090 D31A subs r3, r2, r3 131 .loc 1 363 8 132 0092 0A2B cmp r3, #10 133 0094 0BD9 bls .L7 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 134 .loc 1 366 23 135 0096 7B68 ldr r3, [r7, #4] 136 0098 5B6A ldr r3, [r3, #36] 137 009a 43F40032 orr r2, r3, #131072 138 009e 7B68 ldr r3, [r7, #4] 139 00a0 5A62 str r2, [r3, #36] 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Change CAN state */ 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 140 .loc 1 369 19 141 00a2 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 10 142 00a4 0522 movs r2, #5 143 00a6 83F82020 strb r2, [r3, #32] 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 144 .loc 1 371 14 145 00aa 0123 movs r3, #1 146 00ac 9FE0 b .L3 147 .L7: 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 148 .loc 1 361 15 149 00ae 7B68 ldr r3, [r7, #4] 150 00b0 1B68 ldr r3, [r3] 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 151 .loc 1 361 25 152 00b2 5B68 ldr r3, [r3, #4] 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 153 .loc 1 361 31 154 00b4 03F00203 and r3, r3, #2 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 155 .loc 1 361 9 156 00b8 002B cmp r3, #0 157 00ba E5D1 bne .L8 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set the time triggered communication mode */ 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->Init.TimeTriggeredMode == ENABLE) 158 .loc 1 376 17 159 00bc 7B68 ldr r3, [r7, #4] 160 00be 1B7E ldrb r3, [r3, #24] @ zero_extendqisi2 161 .loc 1 376 6 162 00c0 012B cmp r3, #1 163 00c2 08D1 bne .L9 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TTCM); 164 .loc 1 378 5 165 00c4 7B68 ldr r3, [r7, #4] 166 00c6 1B68 ldr r3, [r3] 167 00c8 1A68 ldr r2, [r3] 168 00ca 7B68 ldr r3, [r7, #4] 169 00cc 1B68 ldr r3, [r3] 170 00ce 42F08002 orr r2, r2, #128 171 00d2 1A60 str r2, [r3] 172 00d4 07E0 b .L10 173 .L9: 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TTCM); 174 .loc 1 382 5 175 00d6 7B68 ldr r3, [r7, #4] 176 00d8 1B68 ldr r3, [r3] 177 00da 1A68 ldr r2, [r3] 178 00dc 7B68 ldr r3, [r7, #4] 179 00de 1B68 ldr r3, [r3] 180 00e0 22F08002 bic r2, r2, #128 181 00e4 1A60 str r2, [r3] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 11 182 .L10: 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set the automatic bus-off management */ 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->Init.AutoBusOff == ENABLE) 183 .loc 1 386 17 184 00e6 7B68 ldr r3, [r7, #4] 185 00e8 5B7E ldrb r3, [r3, #25] @ zero_extendqisi2 186 .loc 1 386 6 187 00ea 012B cmp r3, #1 188 00ec 08D1 bne .L11 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_ABOM); 189 .loc 1 388 5 190 00ee 7B68 ldr r3, [r7, #4] 191 00f0 1B68 ldr r3, [r3] 192 00f2 1A68 ldr r2, [r3] 193 00f4 7B68 ldr r3, [r7, #4] 194 00f6 1B68 ldr r3, [r3] 195 00f8 42F04002 orr r2, r2, #64 196 00fc 1A60 str r2, [r3] 197 00fe 07E0 b .L12 198 .L11: 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_ABOM); 199 .loc 1 392 5 200 0100 7B68 ldr r3, [r7, #4] 201 0102 1B68 ldr r3, [r3] 202 0104 1A68 ldr r2, [r3] 203 0106 7B68 ldr r3, [r7, #4] 204 0108 1B68 ldr r3, [r3] 205 010a 22F04002 bic r2, r2, #64 206 010e 1A60 str r2, [r3] 207 .L12: 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set the automatic wake-up mode */ 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->Init.AutoWakeUp == ENABLE) 208 .loc 1 396 17 209 0110 7B68 ldr r3, [r7, #4] 210 0112 9B7E ldrb r3, [r3, #26] @ zero_extendqisi2 211 .loc 1 396 6 212 0114 012B cmp r3, #1 213 0116 08D1 bne .L13 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_AWUM); 214 .loc 1 398 5 215 0118 7B68 ldr r3, [r7, #4] 216 011a 1B68 ldr r3, [r3] 217 011c 1A68 ldr r2, [r3] 218 011e 7B68 ldr r3, [r7, #4] 219 0120 1B68 ldr r3, [r3] 220 0122 42F02002 orr r2, r2, #32 221 0126 1A60 str r2, [r3] 222 0128 07E0 b .L14 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 12 223 .L13: 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_AWUM); 224 .loc 1 402 5 225 012a 7B68 ldr r3, [r7, #4] 226 012c 1B68 ldr r3, [r3] 227 012e 1A68 ldr r2, [r3] 228 0130 7B68 ldr r3, [r7, #4] 229 0132 1B68 ldr r3, [r3] 230 0134 22F02002 bic r2, r2, #32 231 0138 1A60 str r2, [r3] 232 .L14: 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set the automatic retransmission */ 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->Init.AutoRetransmission == ENABLE) 233 .loc 1 406 17 234 013a 7B68 ldr r3, [r7, #4] 235 013c DB7E ldrb r3, [r3, #27] @ zero_extendqisi2 236 .loc 1 406 6 237 013e 012B cmp r3, #1 238 0140 08D1 bne .L15 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_NART); 239 .loc 1 408 5 240 0142 7B68 ldr r3, [r7, #4] 241 0144 1B68 ldr r3, [r3] 242 0146 1A68 ldr r2, [r3] 243 0148 7B68 ldr r3, [r7, #4] 244 014a 1B68 ldr r3, [r3] 245 014c 22F01002 bic r2, r2, #16 246 0150 1A60 str r2, [r3] 247 0152 07E0 b .L16 248 .L15: 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_NART); 249 .loc 1 412 5 250 0154 7B68 ldr r3, [r7, #4] 251 0156 1B68 ldr r3, [r3] 252 0158 1A68 ldr r2, [r3] 253 015a 7B68 ldr r3, [r7, #4] 254 015c 1B68 ldr r3, [r3] 255 015e 42F01002 orr r2, r2, #16 256 0162 1A60 str r2, [r3] 257 .L16: 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set the receive FIFO locked mode */ 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->Init.ReceiveFifoLocked == ENABLE) 258 .loc 1 416 17 259 0164 7B68 ldr r3, [r7, #4] 260 0166 1B7F ldrb r3, [r3, #28] @ zero_extendqisi2 261 .loc 1 416 6 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 13 262 0168 012B cmp r3, #1 263 016a 08D1 bne .L17 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RFLM); 264 .loc 1 418 5 265 016c 7B68 ldr r3, [r7, #4] 266 016e 1B68 ldr r3, [r3] 267 0170 1A68 ldr r2, [r3] 268 0172 7B68 ldr r3, [r7, #4] 269 0174 1B68 ldr r3, [r3] 270 0176 42F00802 orr r2, r2, #8 271 017a 1A60 str r2, [r3] 272 017c 07E0 b .L18 273 .L17: 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_RFLM); 274 .loc 1 422 5 275 017e 7B68 ldr r3, [r7, #4] 276 0180 1B68 ldr r3, [r3] 277 0182 1A68 ldr r2, [r3] 278 0184 7B68 ldr r3, [r7, #4] 279 0186 1B68 ldr r3, [r3] 280 0188 22F00802 bic r2, r2, #8 281 018c 1A60 str r2, [r3] 282 .L18: 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set the transmit FIFO priority */ 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->Init.TransmitFifoPriority == ENABLE) 283 .loc 1 426 17 284 018e 7B68 ldr r3, [r7, #4] 285 0190 5B7F ldrb r3, [r3, #29] @ zero_extendqisi2 286 .loc 1 426 6 287 0192 012B cmp r3, #1 288 0194 08D1 bne .L19 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TXFP); 289 .loc 1 428 5 290 0196 7B68 ldr r3, [r7, #4] 291 0198 1B68 ldr r3, [r3] 292 019a 1A68 ldr r2, [r3] 293 019c 7B68 ldr r3, [r7, #4] 294 019e 1B68 ldr r3, [r3] 295 01a0 42F00402 orr r2, r2, #4 296 01a4 1A60 str r2, [r3] 297 01a6 07E0 b .L20 298 .L19: 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TXFP); 299 .loc 1 432 5 300 01a8 7B68 ldr r3, [r7, #4] 301 01aa 1B68 ldr r3, [r3] 302 01ac 1A68 ldr r2, [r3] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 14 303 01ae 7B68 ldr r3, [r7, #4] 304 01b0 1B68 ldr r3, [r3] 305 01b2 22F00402 bic r2, r2, #4 306 01b6 1A60 str r2, [r3] 307 .L20: 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set the bit timing register */ 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** WRITE_REG(hcan->Instance->BTR, (uint32_t)(hcan->Init.Mode | 308 .loc 1 436 3 309 01b8 7B68 ldr r3, [r7, #4] 310 01ba 9A68 ldr r2, [r3, #8] 311 01bc 7B68 ldr r3, [r7, #4] 312 01be DB68 ldr r3, [r3, #12] 313 01c0 1A43 orrs r2, r2, r3 314 01c2 7B68 ldr r3, [r7, #4] 315 01c4 1B69 ldr r3, [r3, #16] 316 01c6 1A43 orrs r2, r2, r3 317 01c8 7B68 ldr r3, [r7, #4] 318 01ca 5B69 ldr r3, [r3, #20] 319 01cc 42EA0301 orr r1, r2, r3 320 01d0 7B68 ldr r3, [r7, #4] 321 01d2 5B68 ldr r3, [r3, #4] 322 01d4 5A1E subs r2, r3, #1 323 01d6 7B68 ldr r3, [r7, #4] 324 01d8 1B68 ldr r3, [r3] 325 01da 0A43 orrs r2, r2, r1 326 01dc DA61 str r2, [r3, #28] 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->Init.SyncJumpWidth | 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->Init.TimeSeg1 | 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->Init.TimeSeg2 | 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (hcan->Init.Prescaler - 1U))); 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Initialize the error code */ 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE; 327 .loc 1 443 19 328 01de 7B68 ldr r3, [r7, #4] 329 01e0 0022 movs r2, #0 330 01e2 5A62 str r2, [r3, #36] 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Initialize the CAN state */ 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY; 331 .loc 1 446 15 332 01e4 7B68 ldr r3, [r7, #4] 333 01e6 0122 movs r2, #1 334 01e8 83F82020 strb r2, [r3, #32] 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 335 .loc 1 449 10 336 01ec 0023 movs r3, #0 337 .L3: 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 338 .loc 1 450 1 339 01ee 1846 mov r0, r3 340 01f0 1037 adds r7, r7, #16 341 .LCFI3: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 15 342 .cfi_def_cfa_offset 8 343 01f2 BD46 mov sp, r7 344 .LCFI4: 345 .cfi_def_cfa_register 13 346 @ sp needed 347 01f4 80BD pop {r7, pc} 348 .cfi_endproc 349 .LFE235: 351 .section .text.HAL_CAN_DeInit,"ax",%progbits 352 .align 1 353 .global HAL_CAN_DeInit 354 .syntax unified 355 .thumb 356 .thumb_func 358 HAL_CAN_DeInit: 359 .LFB236: 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Deinitializes the CAN peripheral registers to their default 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * reset values. 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeInit(CAN_HandleTypeDef *hcan) 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 360 .loc 1 460 1 361 .cfi_startproc 362 @ args = 0, pretend = 0, frame = 8 363 @ frame_needed = 1, uses_anonymous_args = 0 364 0000 80B5 push {r7, lr} 365 .LCFI5: 366 .cfi_def_cfa_offset 8 367 .cfi_offset 7, -8 368 .cfi_offset 14, -4 369 0002 82B0 sub sp, sp, #8 370 .LCFI6: 371 .cfi_def_cfa_offset 16 372 0004 00AF add r7, sp, #0 373 .LCFI7: 374 .cfi_def_cfa_register 7 375 0006 7860 str r0, [r7, #4] 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check CAN handle */ 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan == NULL) 376 .loc 1 462 6 377 0008 7B68 ldr r3, [r7, #4] 378 000a 002B cmp r3, #0 379 000c 01D1 bne .L22 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 380 .loc 1 464 12 381 000e 0123 movs r3, #1 382 0010 15E0 b .L23 383 .L22: 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the parameters */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 16 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance)); 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Stop the CAN module */ 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (void)HAL_CAN_Stop(hcan); 384 .loc 1 471 9 385 0012 7868 ldr r0, [r7, #4] 386 0014 FFF7FEFF bl HAL_CAN_Stop 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->MspDeInitCallback == NULL) 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; /* Legacy weak MspDeInit */ 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */ 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspDeInitCallback(hcan); 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */ 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_MspDeInit(hcan); 387 .loc 1 484 3 388 0018 7868 ldr r0, [r7, #4] 389 001a FFF7FEFF bl HAL_CAN_MspDeInit 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */ 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Reset the CAN peripheral */ 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RESET); 390 .loc 1 488 3 391 001e 7B68 ldr r3, [r7, #4] 392 0020 1B68 ldr r3, [r3] 393 0022 1A68 ldr r2, [r3] 394 0024 7B68 ldr r3, [r7, #4] 395 0026 1B68 ldr r3, [r3] 396 0028 42F40042 orr r2, r2, #32768 397 002c 1A60 str r2, [r3] 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Reset the CAN ErrorCode */ 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE; 398 .loc 1 491 19 399 002e 7B68 ldr r3, [r7, #4] 400 0030 0022 movs r2, #0 401 0032 5A62 str r2, [r3, #36] 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Change CAN state */ 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->State = HAL_CAN_STATE_RESET; 402 .loc 1 494 15 403 0034 7B68 ldr r3, [r7, #4] 404 0036 0022 movs r2, #0 405 0038 83F82020 strb r2, [r3, #32] 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 406 .loc 1 497 10 407 003c 0023 movs r3, #0 408 .L23: 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 409 .loc 1 498 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 17 410 003e 1846 mov r0, r3 411 0040 0837 adds r7, r7, #8 412 .LCFI8: 413 .cfi_def_cfa_offset 8 414 0042 BD46 mov sp, r7 415 .LCFI9: 416 .cfi_def_cfa_register 13 417 @ sp needed 418 0044 80BD pop {r7, pc} 419 .cfi_endproc 420 .LFE236: 422 .section .text.HAL_CAN_MspInit,"ax",%progbits 423 .align 1 424 .weak HAL_CAN_MspInit 425 .syntax unified 426 .thumb 427 .thumb_func 429 HAL_CAN_MspInit: 430 .LFB237: 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Initializes the CAN MSP. 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan) 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 431 .loc 1 507 1 432 .cfi_startproc 433 @ args = 0, pretend = 0, frame = 8 434 @ frame_needed = 1, uses_anonymous_args = 0 435 @ link register save eliminated. 436 0000 80B4 push {r7} 437 .LCFI10: 438 .cfi_def_cfa_offset 4 439 .cfi_offset 7, -4 440 0002 83B0 sub sp, sp, #12 441 .LCFI11: 442 .cfi_def_cfa_offset 16 443 0004 00AF add r7, sp, #0 444 .LCFI12: 445 .cfi_def_cfa_register 7 446 0006 7860 str r0, [r7, #4] 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_MspInit could be implemented in the user file 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 447 .loc 1 514 1 448 0008 00BF nop 449 000a 0C37 adds r7, r7, #12 450 .LCFI13: 451 .cfi_def_cfa_offset 4 452 000c BD46 mov sp, r7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 18 453 .LCFI14: 454 .cfi_def_cfa_register 13 455 @ sp needed 456 000e 5DF8047B ldr r7, [sp], #4 457 .LCFI15: 458 .cfi_restore 7 459 .cfi_def_cfa_offset 0 460 0012 7047 bx lr 461 .cfi_endproc 462 .LFE237: 464 .section .text.HAL_CAN_MspDeInit,"ax",%progbits 465 .align 1 466 .weak HAL_CAN_MspDeInit 467 .syntax unified 468 .thumb 469 .thumb_func 471 HAL_CAN_MspDeInit: 472 .LFB238: 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief DeInitializes the CAN MSP. 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_MspDeInit(CAN_HandleTypeDef *hcan) 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 473 .loc 1 523 1 474 .cfi_startproc 475 @ args = 0, pretend = 0, frame = 8 476 @ frame_needed = 1, uses_anonymous_args = 0 477 @ link register save eliminated. 478 0000 80B4 push {r7} 479 .LCFI16: 480 .cfi_def_cfa_offset 4 481 .cfi_offset 7, -4 482 0002 83B0 sub sp, sp, #12 483 .LCFI17: 484 .cfi_def_cfa_offset 16 485 0004 00AF add r7, sp, #0 486 .LCFI18: 487 .cfi_def_cfa_register 7 488 0006 7860 str r0, [r7, #4] 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_MspDeInit could be implemented in the user file 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 489 .loc 1 530 1 490 0008 00BF nop 491 000a 0C37 adds r7, r7, #12 492 .LCFI19: 493 .cfi_def_cfa_offset 4 494 000c BD46 mov sp, r7 495 .LCFI20: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 19 496 .cfi_def_cfa_register 13 497 @ sp needed 498 000e 5DF8047B ldr r7, [sp], #4 499 .LCFI21: 500 .cfi_restore 7 501 .cfi_def_cfa_offset 0 502 0012 7047 bx lr 503 .cfi_endproc 504 .LFE238: 506 .section .text.HAL_CAN_ConfigFilter,"ax",%progbits 507 .align 1 508 .global HAL_CAN_ConfigFilter 509 .syntax unified 510 .thumb 511 .thumb_func 513 HAL_CAN_ConfigFilter: 514 .LFB239: 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Register a CAN CallBack. 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * To be used instead of the weak predefined callback 536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for CAN module 538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param CallbackID ID of the callback to be registered 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be one of the following values: 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID Tx Mailbox 0 Complete callback ID 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID Tx Mailbox 1 Complete callback ID 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID Tx Mailbox 2 Complete callback ID 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CB_ID Tx Mailbox 0 Abort callback ID 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CB_ID Tx Mailbox 1 Abort callback ID 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CB_ID Tx Mailbox 2 Abort callback ID 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID Rx Fifo 0 message pending callback ID 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CB_ID Rx Fifo 0 full callback ID 548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID Rx Fifo 1 message pending callback ID 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CB_ID Rx Fifo 1 full callback ID 550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CB_ID Sleep callback ID 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID Wake Up from Rx message callback ID 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CB_ID Error callback ID 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param pCallback pointer to the Callback function 556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Callb 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (pCallback == NULL) 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update the error code */ 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY) ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 20 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** switch (CallbackID) 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID : 575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = pCallback; 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID : 579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = pCallback; 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID : 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = pCallback; 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID : 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox0AbortCallback = pCallback; 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID : 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox1AbortCallback = pCallback; 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID : 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox2AbortCallback = pCallback; 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID : 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = pCallback; 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID : 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo0FullCallback = pCallback; 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID : 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = pCallback; 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID : 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo1FullCallback = pCallback; 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID : 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->SleepCallback = pCallback; 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID : 619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = pCallback; 620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID : 623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCallback = pCallback; 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspInitCallback = pCallback; ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 21 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspDeInitCallback = pCallback; 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** default : 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update the error code */ 636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return error status */ 639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** status = HAL_ERROR; 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET) 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** switch (CallbackID) 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspInitCallback = pCallback; 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspDeInitCallback = pCallback; 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** default : 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update the error code */ 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return error status */ 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** status = HAL_ERROR; 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update the error code */ 667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return error status */ 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** status = HAL_ERROR; 671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return status; 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Unregister a CAN CallBack. 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * CAN callback is redirected to the weak predefined callback 679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for CAN module 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param CallbackID ID of the callback to be unregistered 682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be one of the following values: 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID Tx Mailbox 0 Complete callback ID 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID Tx Mailbox 1 Complete callback ID ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 22 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID Tx Mailbox 2 Complete callback ID 686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CB_ID Tx Mailbox 0 Abort callback ID 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CB_ID Tx Mailbox 1 Abort callback ID 688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CB_ID Tx Mailbox 2 Abort callback ID 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID Rx Fifo 0 message pending callback ID 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CB_ID Rx Fifo 0 full callback ID 691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID Rx Fifo 1 message pending callback ID 692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CB_ID Rx Fifo 1 full callback ID 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CB_ID Sleep callback ID 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID Wake Up from Rx message callback ID 695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CB_ID Error callback ID 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_UnRegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Cal 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY) 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** switch (CallbackID) 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID : 709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID : 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; 714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID : 717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID : 721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID : 725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID : 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; 730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID : 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; 734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID : 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; 738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID : 741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 23 742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID : 745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; 746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID : 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback; 750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID : 753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; 754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID : 757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback; 758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; 762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; 766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** default : 769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update the error code */ 770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return error status */ 773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** status = HAL_ERROR; 774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET) 778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** switch (CallbackID) 780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; 783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; 787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** default : 790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update the error code */ 791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return error status */ 794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** status = HAL_ERROR; 795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 24 799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update the error code */ 801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return error status */ 804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** status = HAL_ERROR; 805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return status; 808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @} 813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group2 Configuration functions 816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Configuration functions. 817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @verbatim 819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ##### Configuration functions ##### 821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] This section provides functions allowing to: 823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_ConfigFilter : Configure the CAN reception filters 824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @endverbatim 826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Configures the CAN reception filter according to the specified 831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * parameters in the CAN_FilterInitStruct. 832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param sFilterConfig pointer to a CAN_FilterTypeDef structure that 835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * contains the filter configuration information. 836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef *hcan, CAN_FilterTypeDef *sFilterConfig) 839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 515 .loc 1 839 1 516 .cfi_startproc 517 @ args = 0, pretend = 0, frame = 24 518 @ frame_needed = 1, uses_anonymous_args = 0 519 @ link register save eliminated. 520 0000 80B4 push {r7} 521 .LCFI22: 522 .cfi_def_cfa_offset 4 523 .cfi_offset 7, -4 524 0002 87B0 sub sp, sp, #28 525 .LCFI23: 526 .cfi_def_cfa_offset 32 527 0004 00AF add r7, sp, #0 528 .LCFI24: 529 .cfi_def_cfa_register 7 530 0006 7860 str r0, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 25 531 0008 3960 str r1, [r7] 840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t filternbrbitpos; 841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CAN_TypeDef *can_ip = hcan->Instance; 532 .loc 1 841 16 533 000a 7B68 ldr r3, [r7, #4] 534 000c 1B68 ldr r3, [r3] 535 000e 7B61 str r3, [r7, #20] 842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 536 .loc 1 842 24 537 0010 7B68 ldr r3, [r7, #4] 538 0012 93F82030 ldrb r3, [r3, #32] 539 0016 FB74 strb r3, [r7, #19] 843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 540 .loc 1 844 6 541 0018 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2 542 001a 012B cmp r3, #1 543 001c 03D0 beq .L27 544 .loc 1 844 38 discriminator 1 545 001e FB7C ldrb r3, [r7, #19] @ zero_extendqisi2 546 0020 022B cmp r3, #2 547 0022 40F0BE80 bne .L28 548 .L27: 845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the parameters */ 848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdHigh)); 849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh)); 851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow)); 852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode)); 853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale)); 854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment)); 855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation)); 856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if defined(CAN3) 858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the CAN instance */ 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->Instance == CAN3) 860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* CAN3 is single instance with 14 dedicated filters banks */ 862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the parameters */ 864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_SINGLE(sFilterConfig->FilterBank)); 865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* CAN1 and CAN2 are dual instances with 28 common filters banks */ 869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Select master instance to access the filter banks */ 870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** can_ip = CAN1; 871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the parameters */ 873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->FilterBank)); 874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->SlaveStartFilterBank)); 875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #elif defined(CAN2) 877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* CAN1 and CAN2 are dual instances with 28 common filters banks */ 878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Select master instance to access the filter banks */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 26 879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** can_ip = CAN1; 549 .loc 1 879 12 550 0026 654B ldr r3, .L37 551 0028 7B61 str r3, [r7, #20] 880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the parameters */ 882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->FilterBank)); 883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->SlaveStartFilterBank)); 884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* CAN1 is single instance with 14 dedicated filters banks */ 886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the parameters */ 888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_SINGLE(sFilterConfig->FilterBank)); 889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif 890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Initialisation mode for the filter */ 892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(can_ip->FMR, CAN_FMR_FINIT); 552 .loc 1 892 5 553 002a 7B69 ldr r3, [r7, #20] 554 002c D3F80032 ldr r3, [r3, #512] 555 0030 43F00102 orr r2, r3, #1 556 0034 7B69 ldr r3, [r7, #20] 557 0036 C3F80022 str r2, [r3, #512] 893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if defined(CAN3) 895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the CAN instance */ 896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (can_ip == CAN1) 897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Select the start filter number of CAN2 slave instance */ 899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(can_ip->FMR, CAN_FMR_CAN2SB); 900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(can_ip->FMR, sFilterConfig->SlaveStartFilterBank << CAN_FMR_CAN2SB_Pos); 901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #elif defined(CAN2) 904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Select the start filter number of CAN2 slave instance */ 905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(can_ip->FMR, CAN_FMR_CAN2SB); 558 .loc 1 905 5 559 003a 7B69 ldr r3, [r7, #20] 560 003c D3F80032 ldr r3, [r3, #512] 561 0040 23F47C52 bic r2, r3, #16128 562 0044 7B69 ldr r3, [r7, #20] 563 0046 C3F80022 str r2, [r3, #512] 906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(can_ip->FMR, sFilterConfig->SlaveStartFilterBank << CAN_FMR_CAN2SB_Pos); 564 .loc 1 906 5 565 004a 7B69 ldr r3, [r7, #20] 566 004c D3F80022 ldr r2, [r3, #512] 567 0050 3B68 ldr r3, [r7] 568 0052 5B6A ldr r3, [r3, #36] 569 0054 1B02 lsls r3, r3, #8 570 0056 1A43 orrs r2, r2, r3 571 0058 7B69 ldr r3, [r7, #20] 572 005a C3F80022 str r2, [r3, #512] 907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif 909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Convert filter number into bit position */ 910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** filternbrbitpos = (uint32_t)1 << (sFilterConfig->FilterBank & 0x1FU); 573 .loc 1 910 52 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 27 574 005e 3B68 ldr r3, [r7] 575 0060 5B69 ldr r3, [r3, #20] 576 .loc 1 910 65 577 0062 03F01F03 and r3, r3, #31 578 .loc 1 910 21 579 0066 0122 movs r2, #1 580 0068 02FA03F3 lsl r3, r2, r3 581 006c FB60 str r3, [r7, #12] 911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Filter Deactivation */ 913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(can_ip->FA1R, filternbrbitpos); 582 .loc 1 913 5 583 006e 7B69 ldr r3, [r7, #20] 584 0070 D3F81C22 ldr r2, [r3, #540] 585 0074 FB68 ldr r3, [r7, #12] 586 0076 DB43 mvns r3, r3 587 0078 1A40 ands r2, r2, r3 588 007a 7B69 ldr r3, [r7, #20] 589 007c C3F81C22 str r2, [r3, #540] 914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Filter Scale */ 916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_16BIT) 590 .loc 1 916 22 591 0080 3B68 ldr r3, [r7] 592 0082 DB69 ldr r3, [r3, #28] 593 .loc 1 916 8 594 0084 002B cmp r3, #0 595 0086 23D1 bne .L29 917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* 16-bit scale for the filter */ 919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(can_ip->FS1R, filternbrbitpos); 596 .loc 1 919 7 597 0088 7B69 ldr r3, [r7, #20] 598 008a D3F80C22 ldr r2, [r3, #524] 599 008e FB68 ldr r3, [r7, #12] 600 0090 DB43 mvns r3, r3 601 0092 1A40 ands r2, r2, r3 602 0094 7B69 ldr r3, [r7, #20] 603 0096 C3F80C22 str r2, [r3, #524] 920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* First 16-bit identifier and First 16-bit mask */ 922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Or First 16-bit identifier and Second 16-bit identifier */ 923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 = 924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 604 .loc 1 924 48 605 009a 3B68 ldr r3, [r7] 606 009c DB68 ldr r3, [r3, #12] 607 .loc 1 924 67 608 009e 1904 lsls r1, r3, #16 925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 609 .loc 1 925 47 610 00a0 3B68 ldr r3, [r7] 611 00a2 5B68 ldr r3, [r3, #4] 612 .loc 1 925 22 613 00a4 9BB2 uxth r3, r3 923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 614 .loc 1 923 44 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 28 615 00a6 3A68 ldr r2, [r7] 616 00a8 5269 ldr r2, [r2, #20] 924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 617 .loc 1 924 75 618 00aa 1943 orrs r1, r1, r3 923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 619 .loc 1 923 62 620 00ac 7B69 ldr r3, [r7, #20] 621 00ae 4832 adds r2, r2, #72 622 00b0 43F83210 str r1, [r3, r2, lsl #3] 926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Second 16-bit identifier and Second 16-bit mask */ 928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Or Third 16-bit identifier and Fourth 16-bit identifier */ 929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 = 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 623 .loc 1 930 48 624 00b4 3B68 ldr r3, [r7] 625 00b6 9B68 ldr r3, [r3, #8] 626 .loc 1 930 68 627 00b8 1904 lsls r1, r3, #16 931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 628 .loc 1 931 47 629 00ba 3B68 ldr r3, [r7] 630 00bc 1B68 ldr r3, [r3] 631 .loc 1 931 22 632 00be 9AB2 uxth r2, r3 929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 633 .loc 1 929 44 634 00c0 3B68 ldr r3, [r7] 635 00c2 5B69 ldr r3, [r3, #20] 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 636 .loc 1 930 76 637 00c4 0A43 orrs r2, r2, r1 929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 638 .loc 1 929 62 639 00c6 7969 ldr r1, [r7, #20] 640 00c8 4833 adds r3, r3, #72 641 00ca DB00 lsls r3, r3, #3 642 00cc 0B44 add r3, r3, r1 643 00ce 5A60 str r2, [r3, #4] 644 .L29: 932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_32BIT) 645 .loc 1 934 22 646 00d0 3B68 ldr r3, [r7] 647 00d2 DB69 ldr r3, [r3, #28] 648 .loc 1 934 8 649 00d4 012B cmp r3, #1 650 00d6 22D1 bne .L30 935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* 32-bit scale for the filter */ 937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(can_ip->FS1R, filternbrbitpos); 651 .loc 1 937 7 652 00d8 7B69 ldr r3, [r7, #20] 653 00da D3F80C22 ldr r2, [r3, #524] 654 00de FB68 ldr r3, [r7, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 29 655 00e0 1A43 orrs r2, r2, r3 656 00e2 7B69 ldr r3, [r7, #20] 657 00e4 C3F80C22 str r2, [r3, #524] 938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* 32-bit identifier or First 32-bit identifier */ 940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 = 941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 658 .loc 1 941 48 659 00e8 3B68 ldr r3, [r7] 660 00ea 1B68 ldr r3, [r3] 661 .loc 1 941 64 662 00ec 1904 lsls r1, r3, #16 942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 663 .loc 1 942 47 664 00ee 3B68 ldr r3, [r7] 665 00f0 5B68 ldr r3, [r3, #4] 666 .loc 1 942 22 667 00f2 9BB2 uxth r3, r3 940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 668 .loc 1 940 44 669 00f4 3A68 ldr r2, [r7] 670 00f6 5269 ldr r2, [r2, #20] 941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 671 .loc 1 941 72 672 00f8 1943 orrs r1, r1, r3 940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 673 .loc 1 940 62 674 00fa 7B69 ldr r3, [r7, #20] 675 00fc 4832 adds r2, r2, #72 676 00fe 43F83210 str r1, [r3, r2, lsl #3] 943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* 32-bit mask or Second 32-bit identifier */ 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 = 946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 677 .loc 1 946 48 678 0102 3B68 ldr r3, [r7] 679 0104 9B68 ldr r3, [r3, #8] 680 .loc 1 946 68 681 0106 1904 lsls r1, r3, #16 947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); 682 .loc 1 947 47 683 0108 3B68 ldr r3, [r7] 684 010a DB68 ldr r3, [r3, #12] 685 .loc 1 947 22 686 010c 9AB2 uxth r2, r3 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 687 .loc 1 945 44 688 010e 3B68 ldr r3, [r7] 689 0110 5B69 ldr r3, [r3, #20] 946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); 690 .loc 1 946 76 691 0112 0A43 orrs r2, r2, r1 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 692 .loc 1 945 62 693 0114 7969 ldr r1, [r7, #20] 694 0116 4833 adds r3, r3, #72 695 0118 DB00 lsls r3, r3, #3 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 30 696 011a 0B44 add r3, r3, r1 697 011c 5A60 str r2, [r3, #4] 698 .L30: 948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Filter Mode */ 951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (sFilterConfig->FilterMode == CAN_FILTERMODE_IDMASK) 699 .loc 1 951 22 700 011e 3B68 ldr r3, [r7] 701 0120 9B69 ldr r3, [r3, #24] 702 .loc 1 951 8 703 0122 002B cmp r3, #0 704 0124 09D1 bne .L31 952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Id/Mask mode for the filter*/ 954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(can_ip->FM1R, filternbrbitpos); 705 .loc 1 954 7 706 0126 7B69 ldr r3, [r7, #20] 707 0128 D3F80422 ldr r2, [r3, #516] 708 012c FB68 ldr r3, [r7, #12] 709 012e DB43 mvns r3, r3 710 0130 1A40 ands r2, r2, r3 711 0132 7B69 ldr r3, [r7, #20] 712 0134 C3F80422 str r2, [r3, #516] 713 0138 07E0 b .L32 714 .L31: 955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else /* CAN_FilterInitStruct->CAN_FilterMode == CAN_FilterMode_IdList */ 957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Identifier list mode for the filter*/ 959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(can_ip->FM1R, filternbrbitpos); 715 .loc 1 959 7 716 013a 7B69 ldr r3, [r7, #20] 717 013c D3F80422 ldr r2, [r3, #516] 718 0140 FB68 ldr r3, [r7, #12] 719 0142 1A43 orrs r2, r2, r3 720 0144 7B69 ldr r3, [r7, #20] 721 0146 C3F80422 str r2, [r3, #516] 722 .L32: 960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Filter FIFO assignment */ 963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (sFilterConfig->FilterFIFOAssignment == CAN_FILTER_FIFO0) 723 .loc 1 963 22 724 014a 3B68 ldr r3, [r7] 725 014c 1B69 ldr r3, [r3, #16] 726 .loc 1 963 8 727 014e 002B cmp r3, #0 728 0150 09D1 bne .L33 964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* FIFO 0 assignation for the filter */ 966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(can_ip->FFA1R, filternbrbitpos); 729 .loc 1 966 7 730 0152 7B69 ldr r3, [r7, #20] 731 0154 D3F81422 ldr r2, [r3, #532] 732 0158 FB68 ldr r3, [r7, #12] 733 015a DB43 mvns r3, r3 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 31 734 015c 1A40 ands r2, r2, r3 735 015e 7B69 ldr r3, [r7, #20] 736 0160 C3F81422 str r2, [r3, #532] 737 0164 07E0 b .L34 738 .L33: 967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* FIFO 1 assignation for the filter */ 971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(can_ip->FFA1R, filternbrbitpos); 739 .loc 1 971 7 740 0166 7B69 ldr r3, [r7, #20] 741 0168 D3F81422 ldr r2, [r3, #532] 742 016c FB68 ldr r3, [r7, #12] 743 016e 1A43 orrs r2, r2, r3 744 0170 7B69 ldr r3, [r7, #20] 745 0172 C3F81422 str r2, [r3, #532] 746 .L34: 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Filter activation */ 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (sFilterConfig->FilterActivation == CAN_FILTER_ENABLE) 747 .loc 1 975 22 748 0176 3B68 ldr r3, [r7] 749 0178 1B6A ldr r3, [r3, #32] 750 .loc 1 975 8 751 017a 012B cmp r3, #1 752 017c 07D1 bne .L35 976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(can_ip->FA1R, filternbrbitpos); 753 .loc 1 977 7 754 017e 7B69 ldr r3, [r7, #20] 755 0180 D3F81C22 ldr r2, [r3, #540] 756 0184 FB68 ldr r3, [r7, #12] 757 0186 1A43 orrs r2, r2, r3 758 0188 7B69 ldr r3, [r7, #20] 759 018a C3F81C22 str r2, [r3, #540] 760 .L35: 978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Leave the initialisation mode for the filter */ 981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(can_ip->FMR, CAN_FMR_FINIT); 761 .loc 1 981 5 762 018e 7B69 ldr r3, [r7, #20] 763 0190 D3F80032 ldr r3, [r3, #512] 764 0194 23F00102 bic r2, r3, #1 765 0198 7B69 ldr r3, [r7, #20] 766 019a C3F80022 str r2, [r3, #512] 982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 767 .loc 1 984 12 768 019e 0023 movs r3, #0 769 01a0 06E0 b .L36 770 .L28: 985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 32 987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 771 .loc 1 989 21 772 01a2 7B68 ldr r3, [r7, #4] 773 01a4 5B6A ldr r3, [r3, #36] 774 01a6 43F48022 orr r2, r3, #262144 775 01aa 7B68 ldr r3, [r7, #4] 776 01ac 5A62 str r2, [r3, #36] 990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 777 .loc 1 991 12 778 01ae 0123 movs r3, #1 779 .L36: 992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 780 .loc 1 993 1 781 01b0 1846 mov r0, r3 782 01b2 1C37 adds r7, r7, #28 783 .LCFI25: 784 .cfi_def_cfa_offset 4 785 01b4 BD46 mov sp, r7 786 .LCFI26: 787 .cfi_def_cfa_register 13 788 @ sp needed 789 01b6 5DF8047B ldr r7, [sp], #4 790 .LCFI27: 791 .cfi_restore 7 792 .cfi_def_cfa_offset 0 793 01ba 7047 bx lr 794 .L38: 795 .align 2 796 .L37: 797 01bc 00640040 .word 1073767424 798 .cfi_endproc 799 .LFE239: 801 .section .text.HAL_CAN_Start,"ax",%progbits 802 .align 1 803 .global HAL_CAN_Start 804 .syntax unified 805 .thumb 806 .thumb_func 808 HAL_CAN_Start: 809 .LFB240: 994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @} 997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group3 Control functions 1000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Control functions 1001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @verbatim 1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 1004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ##### Control functions ##### 1005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] This section provides functions allowing to: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 33 1007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_Start : Start the CAN module 1008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_Stop : Stop the CAN module 1009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_RequestSleep : Request sleep mode entry. 1010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_WakeUp : Wake up from sleep mode. 1011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_IsSleepActive : Check is sleep mode is active. 1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_AddTxMessage : Add a message to the Tx mailboxes 1013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** and activate the corresponding 1014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** transmission request 1015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_AbortTxRequest : Abort transmission request 1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_GetTxMailboxesFreeLevel : Return Tx mailboxes free level 1017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_IsTxMessagePending : Check if a transmission request is 1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pending on the selected Tx mailbox 1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_GetRxMessage : Get a CAN frame from the Rx FIFO 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_GetRxFifoFillLevel : Return Rx FIFO fill level 1021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @endverbatim 1023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 1024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Start the CAN module. 1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 1031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Start(CAN_HandleTypeDef *hcan) 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 810 .loc 1 1033 1 811 .cfi_startproc 812 @ args = 0, pretend = 0, frame = 16 813 @ frame_needed = 1, uses_anonymous_args = 0 814 0000 80B5 push {r7, lr} 815 .LCFI28: 816 .cfi_def_cfa_offset 8 817 .cfi_offset 7, -8 818 .cfi_offset 14, -4 819 0002 84B0 sub sp, sp, #16 820 .LCFI29: 821 .cfi_def_cfa_offset 24 822 0004 00AF add r7, sp, #0 823 .LCFI30: 824 .cfi_def_cfa_register 7 825 0006 7860 str r0, [r7, #4] 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t tickstart; 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY) 826 .loc 1 1036 11 827 0008 7B68 ldr r3, [r7, #4] 828 000a 93F82030 ldrb r3, [r3, #32] 829 000e DBB2 uxtb r3, r3 830 .loc 1 1036 6 831 0010 012B cmp r3, #1 832 0012 2ED1 bne .L40 1037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Change CAN peripheral state */ 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->State = HAL_CAN_STATE_LISTENING; 833 .loc 1 1039 17 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 34 834 0014 7B68 ldr r3, [r7, #4] 835 0016 0222 movs r2, #2 836 0018 83F82020 strb r2, [r3, #32] 1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Request leave initialisation */ 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); 837 .loc 1 1042 5 838 001c 7B68 ldr r3, [r7, #4] 839 001e 1B68 ldr r3, [r3] 840 0020 1A68 ldr r2, [r3] 841 0022 7B68 ldr r3, [r7, #4] 842 0024 1B68 ldr r3, [r3] 843 0026 22F00102 bic r2, r2, #1 844 002a 1A60 str r2, [r3] 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Get tick */ 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** tickstart = HAL_GetTick(); 845 .loc 1 1045 17 846 002c FFF7FEFF bl HAL_GetTick 847 0030 F860 str r0, [r7, #12] 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Wait the acknowledge */ 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) != 0U) 848 .loc 1 1048 11 849 0032 12E0 b .L41 850 .L43: 1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check for the Timeout */ 1051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 851 .loc 1 1051 12 852 0034 FFF7FEFF bl HAL_GetTick 853 0038 0246 mov r2, r0 854 .loc 1 1051 26 855 003a FB68 ldr r3, [r7, #12] 856 003c D31A subs r3, r2, r3 857 .loc 1 1051 10 858 003e 0A2B cmp r3, #10 859 0040 0BD9 bls .L41 1052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 860 .loc 1 1054 25 861 0042 7B68 ldr r3, [r7, #4] 862 0044 5B6A ldr r3, [r3, #36] 863 0046 43F40032 orr r2, r3, #131072 864 004a 7B68 ldr r3, [r7, #4] 865 004c 5A62 str r2, [r3, #36] 1055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Change CAN state */ 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 866 .loc 1 1057 21 867 004e 7B68 ldr r3, [r7, #4] 868 0050 0522 movs r2, #5 869 0052 83F82020 strb r2, [r3, #32] 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 870 .loc 1 1059 16 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 35 871 0056 0123 movs r3, #1 872 0058 12E0 b .L42 873 .L41: 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 874 .loc 1 1048 17 875 005a 7B68 ldr r3, [r7, #4] 876 005c 1B68 ldr r3, [r3] 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 877 .loc 1 1048 27 878 005e 5B68 ldr r3, [r3, #4] 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 879 .loc 1 1048 33 880 0060 03F00103 and r3, r3, #1 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 881 .loc 1 1048 11 882 0064 002B cmp r3, #0 883 0066 E5D1 bne .L43 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Reset the CAN ErrorCode */ 1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE; 884 .loc 1 1064 21 885 0068 7B68 ldr r3, [r7, #4] 886 006a 0022 movs r2, #0 887 006c 5A62 str r2, [r3, #36] 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 888 .loc 1 1067 12 889 006e 0023 movs r3, #0 890 0070 06E0 b .L42 891 .L40: 1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_READY; 892 .loc 1 1072 21 893 0072 7B68 ldr r3, [r7, #4] 894 0074 5B6A ldr r3, [r3, #36] 895 0076 43F40022 orr r2, r3, #524288 896 007a 7B68 ldr r3, [r7, #4] 897 007c 5A62 str r2, [r3, #36] 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 898 .loc 1 1074 12 899 007e 0123 movs r3, #1 900 .L42: 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 901 .loc 1 1076 1 902 0080 1846 mov r0, r3 903 0082 1037 adds r7, r7, #16 904 .LCFI31: 905 .cfi_def_cfa_offset 8 906 0084 BD46 mov sp, r7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 36 907 .LCFI32: 908 .cfi_def_cfa_register 13 909 @ sp needed 910 0086 80BD pop {r7, pc} 911 .cfi_endproc 912 .LFE240: 914 .section .text.HAL_CAN_Stop,"ax",%progbits 915 .align 1 916 .global HAL_CAN_Stop 917 .syntax unified 918 .thumb 919 .thumb_func 921 HAL_CAN_Stop: 922 .LFB241: 1077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Stop the CAN module and enable access to configuration registers. 1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 1083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Stop(CAN_HandleTypeDef *hcan) 1085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 923 .loc 1 1085 1 924 .cfi_startproc 925 @ args = 0, pretend = 0, frame = 16 926 @ frame_needed = 1, uses_anonymous_args = 0 927 0000 80B5 push {r7, lr} 928 .LCFI33: 929 .cfi_def_cfa_offset 8 930 .cfi_offset 7, -8 931 .cfi_offset 14, -4 932 0002 84B0 sub sp, sp, #16 933 .LCFI34: 934 .cfi_def_cfa_offset 24 935 0004 00AF add r7, sp, #0 936 .LCFI35: 937 .cfi_def_cfa_register 7 938 0006 7860 str r0, [r7, #4] 1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t tickstart; 1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_LISTENING) 939 .loc 1 1088 11 940 0008 7B68 ldr r3, [r7, #4] 941 000a 93F82030 ldrb r3, [r3, #32] 942 000e DBB2 uxtb r3, r3 943 .loc 1 1088 6 944 0010 022B cmp r3, #2 945 0012 33D1 bne .L45 1089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Request initialisation */ 1091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); 946 .loc 1 1091 5 947 0014 7B68 ldr r3, [r7, #4] 948 0016 1B68 ldr r3, [r3] 949 0018 1A68 ldr r2, [r3] 950 001a 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 37 951 001c 1B68 ldr r3, [r3] 952 001e 42F00102 orr r2, r2, #1 953 0022 1A60 str r2, [r3] 1092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Get tick */ 1094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** tickstart = HAL_GetTick(); 954 .loc 1 1094 17 955 0024 FFF7FEFF bl HAL_GetTick 956 0028 F860 str r0, [r7, #12] 1095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Wait the acknowledge */ 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U) 957 .loc 1 1097 11 958 002a 12E0 b .L46 959 .L48: 1098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check for the Timeout */ 1100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 960 .loc 1 1100 12 961 002c FFF7FEFF bl HAL_GetTick 962 0030 0246 mov r2, r0 963 .loc 1 1100 26 964 0032 FB68 ldr r3, [r7, #12] 965 0034 D31A subs r3, r2, r3 966 .loc 1 1100 10 967 0036 0A2B cmp r3, #10 968 0038 0BD9 bls .L46 1101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 969 .loc 1 1103 25 970 003a 7B68 ldr r3, [r7, #4] 971 003c 5B6A ldr r3, [r3, #36] 972 003e 43F40032 orr r2, r3, #131072 973 0042 7B68 ldr r3, [r7, #4] 974 0044 5A62 str r2, [r3, #36] 1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Change CAN state */ 1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 975 .loc 1 1106 21 976 0046 7B68 ldr r3, [r7, #4] 977 0048 0522 movs r2, #5 978 004a 83F82020 strb r2, [r3, #32] 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 979 .loc 1 1108 16 980 004e 0123 movs r3, #1 981 0050 1BE0 b .L47 982 .L46: 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 983 .loc 1 1097 17 984 0052 7B68 ldr r3, [r7, #4] 985 0054 1B68 ldr r3, [r3] 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 986 .loc 1 1097 27 987 0056 5B68 ldr r3, [r3, #4] 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 38 988 .loc 1 1097 33 989 0058 03F00103 and r3, r3, #1 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 990 .loc 1 1097 11 991 005c 002B cmp r3, #0 992 005e E5D0 beq .L48 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Exit from sleep mode */ 1113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 993 .loc 1 1113 5 994 0060 7B68 ldr r3, [r7, #4] 995 0062 1B68 ldr r3, [r3] 996 0064 1A68 ldr r2, [r3] 997 0066 7B68 ldr r3, [r7, #4] 998 0068 1B68 ldr r3, [r3] 999 006a 22F00202 bic r2, r2, #2 1000 006e 1A60 str r2, [r3] 1114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Change CAN peripheral state */ 1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY; 1001 .loc 1 1116 17 1002 0070 7B68 ldr r3, [r7, #4] 1003 0072 0122 movs r2, #1 1004 0074 83F82020 strb r2, [r3, #32] 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 1005 .loc 1 1119 12 1006 0078 0023 movs r3, #0 1007 007a 06E0 b .L47 1008 .L45: 1120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_STARTED; 1009 .loc 1 1124 21 1010 007c 7B68 ldr r3, [r7, #4] 1011 007e 5B6A ldr r3, [r3, #36] 1012 0080 43F48012 orr r2, r3, #1048576 1013 0084 7B68 ldr r3, [r7, #4] 1014 0086 5A62 str r2, [r3, #36] 1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 1015 .loc 1 1126 12 1016 0088 0123 movs r3, #1 1017 .L47: 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1018 .loc 1 1128 1 1019 008a 1846 mov r0, r3 1020 008c 1037 adds r7, r7, #16 1021 .LCFI36: 1022 .cfi_def_cfa_offset 8 1023 008e BD46 mov sp, r7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 39 1024 .LCFI37: 1025 .cfi_def_cfa_register 13 1026 @ sp needed 1027 0090 80BD pop {r7, pc} 1028 .cfi_endproc 1029 .LFE241: 1031 .section .text.HAL_CAN_RequestSleep,"ax",%progbits 1032 .align 1 1033 .global HAL_CAN_RequestSleep 1034 .syntax unified 1035 .thumb 1036 .thumb_func 1038 HAL_CAN_RequestSleep: 1039 .LFB242: 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Request the sleep mode (low power) entry. 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * When returning from this function, Sleep mode will be entered 1133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * as soon as the current CAN activity (transmission or reception 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * of a CAN frame) has been completed. 1135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status. 1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RequestSleep(CAN_HandleTypeDef *hcan) 1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1040 .loc 1 1140 1 1041 .cfi_startproc 1042 @ args = 0, pretend = 0, frame = 16 1043 @ frame_needed = 1, uses_anonymous_args = 0 1044 @ link register save eliminated. 1045 0000 80B4 push {r7} 1046 .LCFI38: 1047 .cfi_def_cfa_offset 4 1048 .cfi_offset 7, -4 1049 0002 85B0 sub sp, sp, #20 1050 .LCFI39: 1051 .cfi_def_cfa_offset 24 1052 0004 00AF add r7, sp, #0 1053 .LCFI40: 1054 .cfi_def_cfa_register 7 1055 0006 7860 str r0, [r7, #4] 1141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1056 .loc 1 1141 24 1057 0008 7B68 ldr r3, [r7, #4] 1058 000a 93F82030 ldrb r3, [r3, #32] 1059 000e FB73 strb r3, [r7, #15] 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1060 .loc 1 1143 6 1061 0010 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 1062 0012 012B cmp r3, #1 1063 0014 02D0 beq .L50 1064 .loc 1 1143 38 discriminator 1 1065 0016 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 1066 0018 022B cmp r3, #2 1067 001a 09D1 bne .L51 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 40 1068 .L50: 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Request Sleep mode */ 1147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 1069 .loc 1 1147 5 1070 001c 7B68 ldr r3, [r7, #4] 1071 001e 1B68 ldr r3, [r3] 1072 0020 1A68 ldr r2, [r3] 1073 0022 7B68 ldr r3, [r7, #4] 1074 0024 1B68 ldr r3, [r3] 1075 0026 42F00202 orr r2, r2, #2 1076 002a 1A60 str r2, [r3] 1148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 1077 .loc 1 1150 12 1078 002c 0023 movs r3, #0 1079 002e 06E0 b .L52 1080 .L51: 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1081 .loc 1 1155 21 1082 0030 7B68 ldr r3, [r7, #4] 1083 0032 5B6A ldr r3, [r3, #36] 1084 0034 43F48022 orr r2, r3, #262144 1085 0038 7B68 ldr r3, [r7, #4] 1086 003a 5A62 str r2, [r3, #36] 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 1087 .loc 1 1158 12 1088 003c 0123 movs r3, #1 1089 .L52: 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1090 .loc 1 1160 1 1091 003e 1846 mov r0, r3 1092 0040 1437 adds r7, r7, #20 1093 .LCFI41: 1094 .cfi_def_cfa_offset 4 1095 0042 BD46 mov sp, r7 1096 .LCFI42: 1097 .cfi_def_cfa_register 13 1098 @ sp needed 1099 0044 5DF8047B ldr r7, [sp], #4 1100 .LCFI43: 1101 .cfi_restore 7 1102 .cfi_def_cfa_offset 0 1103 0048 7047 bx lr 1104 .cfi_endproc 1105 .LFE242: 1107 .section .text.HAL_CAN_WakeUp,"ax",%progbits 1108 .align 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 41 1109 .global HAL_CAN_WakeUp 1110 .syntax unified 1111 .thumb 1112 .thumb_func 1114 HAL_CAN_WakeUp: 1115 .LFB243: 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Wake up from sleep mode. 1164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * When returning with HAL_OK status from this function, Sleep mode 1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * is exited. 1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status. 1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_WakeUp(CAN_HandleTypeDef *hcan) 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1116 .loc 1 1171 1 1117 .cfi_startproc 1118 @ args = 0, pretend = 0, frame = 24 1119 @ frame_needed = 1, uses_anonymous_args = 0 1120 @ link register save eliminated. 1121 0000 80B4 push {r7} 1122 .LCFI44: 1123 .cfi_def_cfa_offset 4 1124 .cfi_offset 7, -4 1125 0002 87B0 sub sp, sp, #28 1126 .LCFI45: 1127 .cfi_def_cfa_offset 32 1128 0004 00AF add r7, sp, #0 1129 .LCFI46: 1130 .cfi_def_cfa_register 7 1131 0006 7860 str r0, [r7, #4] 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __IO uint32_t count = 0; 1132 .loc 1 1172 17 1133 0008 0023 movs r3, #0 1134 000a FB60 str r3, [r7, #12] 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t timeout = 1000000U; 1135 .loc 1 1173 12 1136 000c 1C4B ldr r3, .L59 1137 000e 7B61 str r3, [r7, #20] 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1138 .loc 1 1174 24 1139 0010 7B68 ldr r3, [r7, #4] 1140 0012 93F82030 ldrb r3, [r3, #32] 1141 0016 FB74 strb r3, [r7, #19] 1175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1142 .loc 1 1176 6 1143 0018 FB7C ldrb r3, [r7, #19] @ zero_extendqisi2 1144 001a 012B cmp r3, #1 1145 001c 02D0 beq .L54 1146 .loc 1 1176 38 discriminator 1 1147 001e FB7C ldrb r3, [r7, #19] @ zero_extendqisi2 1148 0020 022B cmp r3, #2 1149 0022 1FD1 bne .L55 1150 .L54: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 42 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Wake up request */ 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 1151 .loc 1 1180 5 1152 0024 7B68 ldr r3, [r7, #4] 1153 0026 1B68 ldr r3, [r3] 1154 0028 1A68 ldr r2, [r3] 1155 002a 7B68 ldr r3, [r7, #4] 1156 002c 1B68 ldr r3, [r3] 1157 002e 22F00202 bic r2, r2, #2 1158 0032 1A60 str r2, [r3] 1159 .L58: 1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Wait sleep mode is exited */ 1183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** do 1184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Increment counter */ 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** count++; 1160 .loc 1 1186 12 1161 0034 FB68 ldr r3, [r7, #12] 1162 0036 0133 adds r3, r3, #1 1163 0038 FB60 str r3, [r7, #12] 1187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check if timeout is reached */ 1189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (count > timeout) 1164 .loc 1 1189 17 1165 003a FB68 ldr r3, [r7, #12] 1166 .loc 1 1189 10 1167 003c 7A69 ldr r2, [r7, #20] 1168 003e 9A42 cmp r2, r3 1169 0040 07D2 bcs .L56 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 1170 .loc 1 1192 25 1171 0042 7B68 ldr r3, [r7, #4] 1172 0044 5B6A ldr r3, [r3, #36] 1173 0046 43F40032 orr r2, r3, #131072 1174 004a 7B68 ldr r3, [r7, #4] 1175 004c 5A62 str r2, [r3, #36] 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 1176 .loc 1 1194 16 1177 004e 0123 movs r3, #1 1178 0050 0FE0 b .L57 1179 .L56: 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U); 1180 .loc 1 1197 17 1181 0052 7B68 ldr r3, [r7, #4] 1182 0054 1B68 ldr r3, [r3] 1183 .loc 1 1197 27 1184 0056 5B68 ldr r3, [r3, #4] 1185 .loc 1 1197 33 1186 0058 03F00203 and r3, r3, #2 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 43 1187 .loc 1 1197 5 1188 005c 002B cmp r3, #0 1189 005e E9D1 bne .L58 1198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 1190 .loc 1 1200 12 1191 0060 0023 movs r3, #0 1192 0062 06E0 b .L57 1193 .L55: 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1194 .loc 1 1205 21 1195 0064 7B68 ldr r3, [r7, #4] 1196 0066 5B6A ldr r3, [r3, #36] 1197 0068 43F48022 orr r2, r3, #262144 1198 006c 7B68 ldr r3, [r7, #4] 1199 006e 5A62 str r2, [r3, #36] 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 1200 .loc 1 1207 12 1201 0070 0123 movs r3, #1 1202 .L57: 1208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1203 .loc 1 1209 1 1204 0072 1846 mov r0, r3 1205 0074 1C37 adds r7, r7, #28 1206 .LCFI47: 1207 .cfi_def_cfa_offset 4 1208 0076 BD46 mov sp, r7 1209 .LCFI48: 1210 .cfi_def_cfa_register 13 1211 @ sp needed 1212 0078 5DF8047B ldr r7, [sp], #4 1213 .LCFI49: 1214 .cfi_restore 7 1215 .cfi_def_cfa_offset 0 1216 007c 7047 bx lr 1217 .L60: 1218 007e 00BF .align 2 1219 .L59: 1220 0080 40420F00 .word 1000000 1221 .cfi_endproc 1222 .LFE243: 1224 .section .text.HAL_CAN_IsSleepActive,"ax",%progbits 1225 .align 1 1226 .global HAL_CAN_IsSleepActive 1227 .syntax unified 1228 .thumb 1229 .thumb_func 1231 HAL_CAN_IsSleepActive: 1232 .LFB244: 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 44 1211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Check is sleep mode is active. 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval Status 1216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * - 0 : Sleep mode is not active. 1217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * - 1 : Sleep mode is active. 1218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t HAL_CAN_IsSleepActive(CAN_HandleTypeDef *hcan) 1220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1233 .loc 1 1220 1 1234 .cfi_startproc 1235 @ args = 0, pretend = 0, frame = 16 1236 @ frame_needed = 1, uses_anonymous_args = 0 1237 @ link register save eliminated. 1238 0000 80B4 push {r7} 1239 .LCFI50: 1240 .cfi_def_cfa_offset 4 1241 .cfi_offset 7, -4 1242 0002 85B0 sub sp, sp, #20 1243 .LCFI51: 1244 .cfi_def_cfa_offset 24 1245 0004 00AF add r7, sp, #0 1246 .LCFI52: 1247 .cfi_def_cfa_register 7 1248 0006 7860 str r0, [r7, #4] 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t status = 0U; 1249 .loc 1 1221 12 1250 0008 0023 movs r3, #0 1251 000a FB60 str r3, [r7, #12] 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1252 .loc 1 1222 24 1253 000c 7B68 ldr r3, [r7, #4] 1254 000e 93F82030 ldrb r3, [r3, #32] 1255 0012 FB72 strb r3, [r7, #11] 1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1256 .loc 1 1224 6 1257 0014 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 1258 0016 012B cmp r3, #1 1259 0018 02D0 beq .L62 1260 .loc 1 1224 38 discriminator 1 1261 001a FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 1262 001c 022B cmp r3, #2 1263 001e 08D1 bne .L63 1264 .L62: 1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Sleep mode */ 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 1265 .loc 1 1228 14 1266 0020 7B68 ldr r3, [r7, #4] 1267 0022 1B68 ldr r3, [r3] 1268 .loc 1 1228 24 1269 0024 5B68 ldr r3, [r3, #4] 1270 .loc 1 1228 30 1271 0026 03F00203 and r3, r3, #2 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 45 1272 .loc 1 1228 8 1273 002a 002B cmp r3, #0 1274 002c 01D0 beq .L63 1229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** status = 1U; 1275 .loc 1 1230 14 1276 002e 0123 movs r3, #1 1277 0030 FB60 str r3, [r7, #12] 1278 .L63: 1231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return status; 1279 .loc 1 1235 10 1280 0032 FB68 ldr r3, [r7, #12] 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1281 .loc 1 1236 1 1282 0034 1846 mov r0, r3 1283 0036 1437 adds r7, r7, #20 1284 .LCFI53: 1285 .cfi_def_cfa_offset 4 1286 0038 BD46 mov sp, r7 1287 .LCFI54: 1288 .cfi_def_cfa_register 13 1289 @ sp needed 1290 003a 5DF8047B ldr r7, [sp], #4 1291 .LCFI55: 1292 .cfi_restore 7 1293 .cfi_def_cfa_offset 0 1294 003e 7047 bx lr 1295 .cfi_endproc 1296 .LFE244: 1298 .section .text.HAL_CAN_AddTxMessage,"ax",%progbits 1299 .align 1 1300 .global HAL_CAN_AddTxMessage 1301 .syntax unified 1302 .thumb 1303 .thumb_func 1305 HAL_CAN_AddTxMessage: 1306 .LFB245: 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Add a message to the first free Tx mailbox and activate the 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * corresponding transmission request. 1241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param pHeader pointer to a CAN_TxHeaderTypeDef structure. 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param aData array containing the payload of the Tx frame. 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param pTxMailbox pointer to a variable where the function will return 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the TxMailbox used to store the Tx message. 1247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be a value of @arg CAN_Tx_Mailboxes. 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AddTxMessage(CAN_HandleTypeDef *hcan, CAN_TxHeaderTypeDef *pHeader, uint8 1251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1307 .loc 1 1251 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 46 1308 .cfi_startproc 1309 @ args = 0, pretend = 0, frame = 32 1310 @ frame_needed = 1, uses_anonymous_args = 0 1311 @ link register save eliminated. 1312 0000 80B4 push {r7} 1313 .LCFI56: 1314 .cfi_def_cfa_offset 4 1315 .cfi_offset 7, -4 1316 0002 89B0 sub sp, sp, #36 1317 .LCFI57: 1318 .cfi_def_cfa_offset 40 1319 0004 00AF add r7, sp, #0 1320 .LCFI58: 1321 .cfi_def_cfa_register 7 1322 0006 F860 str r0, [r7, #12] 1323 0008 B960 str r1, [r7, #8] 1324 000a 7A60 str r2, [r7, #4] 1325 000c 3B60 str r3, [r7] 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t transmitmailbox; 1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1326 .loc 1 1253 24 1327 000e FB68 ldr r3, [r7, #12] 1328 0010 93F82030 ldrb r3, [r3, #32] 1329 0014 FB77 strb r3, [r7, #31] 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t tsr = READ_REG(hcan->Instance->TSR); 1330 .loc 1 1254 18 1331 0016 FB68 ldr r3, [r7, #12] 1332 0018 1B68 ldr r3, [r3] 1333 .loc 1 1254 12 1334 001a 9B68 ldr r3, [r3, #8] 1335 001c BB61 str r3, [r7, #24] 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the parameters */ 1257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_IDTYPE(pHeader->IDE)); 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_RTR(pHeader->RTR)); 1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_DLC(pHeader->DLC)); 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_STDID(pHeader->StdId)); 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_EXTID(pHeader->ExtId)); 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(pHeader->TransmitGlobalTime)); 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1336 .loc 1 1270 6 1337 001e FB7F ldrb r3, [r7, #31] @ zero_extendqisi2 1338 0020 012B cmp r3, #1 1339 0022 03D0 beq .L66 1340 .loc 1 1270 38 discriminator 1 1341 0024 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2 1342 0026 022B cmp r3, #2 1343 0028 40F0B880 bne .L67 1344 .L66: 1271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 47 1272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check that all the Tx mailboxes are not full */ 1274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (((tsr & CAN_TSR_TME0) != 0U) || 1345 .loc 1 1274 15 1346 002c BB69 ldr r3, [r7, #24] 1347 002e 03F08063 and r3, r3, #67108864 1348 .loc 1 1274 8 1349 0032 002B cmp r3, #0 1350 0034 0AD1 bne .L68 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) || 1351 .loc 1 1275 15 discriminator 1 1352 0036 BB69 ldr r3, [r7, #24] 1353 0038 03F00063 and r3, r3, #134217728 1274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) || 1354 .loc 1 1274 38 discriminator 1 1355 003c 002B cmp r3, #0 1356 003e 05D1 bne .L68 1276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((tsr & CAN_TSR_TME2) != 0U)) 1357 .loc 1 1276 15 1358 0040 BB69 ldr r3, [r7, #24] 1359 0042 03F08053 and r3, r3, #268435456 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) || 1360 .loc 1 1275 38 1361 0046 002B cmp r3, #0 1362 0048 00F0A080 beq .L69 1363 .L68: 1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Select an empty transmit mailbox */ 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** transmitmailbox = (tsr & CAN_TSR_CODE) >> CAN_TSR_CODE_Pos; 1364 .loc 1 1279 46 1365 004c BB69 ldr r3, [r7, #24] 1366 004e 1B0E lsrs r3, r3, #24 1367 .loc 1 1279 23 1368 0050 03F00303 and r3, r3, #3 1369 0054 7B61 str r3, [r7, #20] 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check transmit mailbox value */ 1282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (transmitmailbox > 2U) 1370 .loc 1 1282 10 1371 0056 7B69 ldr r3, [r7, #20] 1372 0058 022B cmp r3, #2 1373 005a 07D9 bls .L70 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INTERNAL; 1374 .loc 1 1285 25 1375 005c FB68 ldr r3, [r7, #12] 1376 005e 5B6A ldr r3, [r3, #36] 1377 0060 43F40002 orr r2, r3, #8388608 1378 0064 FB68 ldr r3, [r7, #12] 1379 0066 5A62 str r2, [r3, #36] 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 1380 .loc 1 1287 16 1381 0068 0123 movs r3, #1 1382 006a 9EE0 b .L71 1383 .L70: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 48 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Store the Tx mailbox */ 1291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** *pTxMailbox = (uint32_t)1 << transmitmailbox; 1384 .loc 1 1291 33 1385 006c 0122 movs r2, #1 1386 006e 7B69 ldr r3, [r7, #20] 1387 0070 9A40 lsls r2, r2, r3 1388 .loc 1 1291 19 1389 0072 3B68 ldr r3, [r7] 1390 0074 1A60 str r2, [r3] 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set up the Id */ 1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 1391 .loc 1 1294 18 1392 0076 BB68 ldr r3, [r7, #8] 1393 0078 9B68 ldr r3, [r3, #8] 1394 .loc 1 1294 10 1395 007a 002B cmp r3, #0 1396 007c 0DD1 bne .L72 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->StdId << CAN_TI0R_STID_Pos) | 1397 .loc 1 1296 68 1398 007e BB68 ldr r3, [r7, #8] 1399 0080 1B68 ldr r3, [r3] 1400 .loc 1 1296 76 1401 0082 5A05 lsls r2, r3, #21 1297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->RTR); 1402 .loc 1 1297 67 1403 0084 BB68 ldr r3, [r7, #8] 1404 0086 DB68 ldr r3, [r3, #12] 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->RTR); 1405 .loc 1 1296 13 1406 0088 F968 ldr r1, [r7, #12] 1407 008a 0968 ldr r1, [r1] 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->RTR); 1408 .loc 1 1296 98 1409 008c 1A43 orrs r2, r2, r3 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->RTR); 1410 .loc 1 1296 57 1411 008e 7B69 ldr r3, [r7, #20] 1412 0090 1833 adds r3, r3, #24 1413 0092 1B01 lsls r3, r3, #4 1414 0094 0B44 add r3, r3, r1 1415 0096 1A60 str r2, [r3] 1416 0098 0FE0 b .L73 1417 .L72: 1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->ExtId << CAN_TI0R_EXID_Pos) | 1418 .loc 1 1301 68 1419 009a BB68 ldr r3, [r7, #8] 1420 009c 5B68 ldr r3, [r3, #4] 1421 .loc 1 1301 76 1422 009e DA00 lsls r2, r3, #3 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->IDE | ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 49 1423 .loc 1 1302 67 1424 00a0 BB68 ldr r3, [r7, #8] 1425 00a2 9B68 ldr r3, [r3, #8] 1301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->IDE | 1426 .loc 1 1301 98 1427 00a4 1A43 orrs r2, r2, r3 1303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->RTR); 1428 .loc 1 1303 67 1429 00a6 BB68 ldr r3, [r7, #8] 1430 00a8 DB68 ldr r3, [r3, #12] 1301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->IDE | 1431 .loc 1 1301 13 1432 00aa F968 ldr r1, [r7, #12] 1433 00ac 0968 ldr r1, [r1] 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->IDE | 1434 .loc 1 1302 73 1435 00ae 1A43 orrs r2, r2, r3 1301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->IDE | 1436 .loc 1 1301 57 1437 00b0 7B69 ldr r3, [r7, #20] 1438 00b2 1833 adds r3, r3, #24 1439 00b4 1B01 lsls r3, r3, #4 1440 00b6 0B44 add r3, r3, r1 1441 00b8 1A60 str r2, [r3] 1442 .L73: 1304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set up the DLC */ 1307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TDTR = (pHeader->DLC); 1443 .loc 1 1307 11 1444 00ba FB68 ldr r3, [r7, #12] 1445 00bc 1968 ldr r1, [r3] 1446 .loc 1 1307 66 1447 00be BB68 ldr r3, [r7, #8] 1448 00c0 1A69 ldr r2, [r3, #16] 1449 .loc 1 1307 56 1450 00c2 7B69 ldr r3, [r7, #20] 1451 00c4 1833 adds r3, r3, #24 1452 00c6 1B01 lsls r3, r3, #4 1453 00c8 0B44 add r3, r3, r1 1454 00ca 0433 adds r3, r3, #4 1455 00cc 1A60 str r2, [r3] 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set up the Transmit Global Time mode */ 1310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (pHeader->TransmitGlobalTime == ENABLE) 1456 .loc 1 1310 18 1457 00ce BB68 ldr r3, [r7, #8] 1458 00d0 1B7D ldrb r3, [r3, #20] @ zero_extendqisi2 1459 .loc 1 1310 10 1460 00d2 012B cmp r3, #1 1461 00d4 11D1 bne .L74 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TDTR, CAN_TDT0R_TGT); 1462 .loc 1 1312 9 1463 00d6 FB68 ldr r3, [r7, #12] 1464 00d8 1A68 ldr r2, [r3] 1465 00da 7B69 ldr r3, [r7, #20] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 50 1466 00dc 1833 adds r3, r3, #24 1467 00de 1B01 lsls r3, r3, #4 1468 00e0 1344 add r3, r3, r2 1469 00e2 0433 adds r3, r3, #4 1470 00e4 1B68 ldr r3, [r3] 1471 00e6 FA68 ldr r2, [r7, #12] 1472 00e8 1168 ldr r1, [r2] 1473 00ea 43F48072 orr r2, r3, #256 1474 00ee 7B69 ldr r3, [r7, #20] 1475 00f0 1833 adds r3, r3, #24 1476 00f2 1B01 lsls r3, r3, #4 1477 00f4 0B44 add r3, r3, r1 1478 00f6 0433 adds r3, r3, #4 1479 00f8 1A60 str r2, [r3] 1480 .L74: 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set up the data field */ 1316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDHR, 1481 .loc 1 1316 7 1482 00fa 7B68 ldr r3, [r7, #4] 1483 00fc 0733 adds r3, r3, #7 1484 00fe 1B78 ldrb r3, [r3] @ zero_extendqisi2 1485 0100 1A06 lsls r2, r3, #24 1486 0102 7B68 ldr r3, [r7, #4] 1487 0104 0633 adds r3, r3, #6 1488 0106 1B78 ldrb r3, [r3] @ zero_extendqisi2 1489 0108 1B04 lsls r3, r3, #16 1490 010a 1A43 orrs r2, r2, r3 1491 010c 7B68 ldr r3, [r7, #4] 1492 010e 0533 adds r3, r3, #5 1493 0110 1B78 ldrb r3, [r3] @ zero_extendqisi2 1494 0112 1B02 lsls r3, r3, #8 1495 0114 1343 orrs r3, r3, r2 1496 0116 7A68 ldr r2, [r7, #4] 1497 0118 0432 adds r2, r2, #4 1498 011a 1278 ldrb r2, [r2] @ zero_extendqisi2 1499 011c 1046 mov r0, r2 1500 011e FA68 ldr r2, [r7, #12] 1501 0120 1168 ldr r1, [r2] 1502 0122 43EA0002 orr r2, r3, r0 1503 0126 7B69 ldr r3, [r7, #20] 1504 0128 1B01 lsls r3, r3, #4 1505 012a 0B44 add r3, r3, r1 1506 012c 03F5C673 add r3, r3, #396 1507 0130 1A60 str r2, [r3] 1317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((uint32_t)aData[7] << CAN_TDH0R_DATA7_Pos) | 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((uint32_t)aData[6] << CAN_TDH0R_DATA6_Pos) | 1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((uint32_t)aData[5] << CAN_TDH0R_DATA5_Pos) | 1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((uint32_t)aData[4] << CAN_TDH0R_DATA4_Pos)); 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDLR, 1508 .loc 1 1321 7 1509 0132 7B68 ldr r3, [r7, #4] 1510 0134 0333 adds r3, r3, #3 1511 0136 1B78 ldrb r3, [r3] @ zero_extendqisi2 1512 0138 1A06 lsls r2, r3, #24 1513 013a 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 51 1514 013c 0233 adds r3, r3, #2 1515 013e 1B78 ldrb r3, [r3] @ zero_extendqisi2 1516 0140 1B04 lsls r3, r3, #16 1517 0142 1A43 orrs r2, r2, r3 1518 0144 7B68 ldr r3, [r7, #4] 1519 0146 0133 adds r3, r3, #1 1520 0148 1B78 ldrb r3, [r3] @ zero_extendqisi2 1521 014a 1B02 lsls r3, r3, #8 1522 014c 1343 orrs r3, r3, r2 1523 014e 7A68 ldr r2, [r7, #4] 1524 0150 1278 ldrb r2, [r2] @ zero_extendqisi2 1525 0152 1046 mov r0, r2 1526 0154 FA68 ldr r2, [r7, #12] 1527 0156 1168 ldr r1, [r2] 1528 0158 43EA0002 orr r2, r3, r0 1529 015c 7B69 ldr r3, [r7, #20] 1530 015e 1B01 lsls r3, r3, #4 1531 0160 0B44 add r3, r3, r1 1532 0162 03F5C473 add r3, r3, #392 1533 0166 1A60 str r2, [r3] 1322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((uint32_t)aData[3] << CAN_TDL0R_DATA3_Pos) | 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((uint32_t)aData[2] << CAN_TDL0R_DATA2_Pos) | 1324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((uint32_t)aData[1] << CAN_TDL0R_DATA1_Pos) | 1325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((uint32_t)aData[0] << CAN_TDL0R_DATA0_Pos)); 1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Request transmission */ 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TIR, CAN_TI0R_TXRQ); 1534 .loc 1 1328 7 1535 0168 FB68 ldr r3, [r7, #12] 1536 016a 1A68 ldr r2, [r3] 1537 016c 7B69 ldr r3, [r7, #20] 1538 016e 1833 adds r3, r3, #24 1539 0170 1B01 lsls r3, r3, #4 1540 0172 1344 add r3, r3, r2 1541 0174 1B68 ldr r3, [r3] 1542 0176 FA68 ldr r2, [r7, #12] 1543 0178 1168 ldr r1, [r2] 1544 017a 43F00102 orr r2, r3, #1 1545 017e 7B69 ldr r3, [r7, #20] 1546 0180 1833 adds r3, r3, #24 1547 0182 1B01 lsls r3, r3, #4 1548 0184 0B44 add r3, r3, r1 1549 0186 1A60 str r2, [r3] 1329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 1550 .loc 1 1331 14 1551 0188 0023 movs r3, #0 1552 018a 0EE0 b .L71 1553 .L69: 1332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; 1554 .loc 1 1336 23 1555 018c FB68 ldr r3, [r7, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 52 1556 018e 5B6A ldr r3, [r3, #36] 1557 0190 43F40012 orr r2, r3, #2097152 1558 0194 FB68 ldr r3, [r7, #12] 1559 0196 5A62 str r2, [r3, #36] 1337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 1560 .loc 1 1338 14 1561 0198 0123 movs r3, #1 1562 019a 06E0 b .L71 1563 .L67: 1339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1564 .loc 1 1344 21 1565 019c FB68 ldr r3, [r7, #12] 1566 019e 5B6A ldr r3, [r3, #36] 1567 01a0 43F48022 orr r2, r3, #262144 1568 01a4 FB68 ldr r3, [r7, #12] 1569 01a6 5A62 str r2, [r3, #36] 1345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 1570 .loc 1 1346 12 1571 01a8 0123 movs r3, #1 1572 .L71: 1347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1573 .loc 1 1348 1 1574 01aa 1846 mov r0, r3 1575 01ac 2437 adds r7, r7, #36 1576 .LCFI59: 1577 .cfi_def_cfa_offset 4 1578 01ae BD46 mov sp, r7 1579 .LCFI60: 1580 .cfi_def_cfa_register 13 1581 @ sp needed 1582 01b0 5DF8047B ldr r7, [sp], #4 1583 .LCFI61: 1584 .cfi_restore 7 1585 .cfi_def_cfa_offset 0 1586 01b4 7047 bx lr 1587 .cfi_endproc 1588 .LFE245: 1590 .section .text.HAL_CAN_AbortTxRequest,"ax",%progbits 1591 .align 1 1592 .global HAL_CAN_AbortTxRequest 1593 .syntax unified 1594 .thumb 1595 .thumb_func 1597 HAL_CAN_AbortTxRequest: 1598 .LFB246: 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Abort transmission requests 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 53 1353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param TxMailboxes List of the Tx Mailboxes to abort. 1355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes. 1356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AbortTxRequest(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes) 1359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1599 .loc 1 1359 1 1600 .cfi_startproc 1601 @ args = 0, pretend = 0, frame = 16 1602 @ frame_needed = 1, uses_anonymous_args = 0 1603 @ link register save eliminated. 1604 0000 80B4 push {r7} 1605 .LCFI62: 1606 .cfi_def_cfa_offset 4 1607 .cfi_offset 7, -4 1608 0002 85B0 sub sp, sp, #20 1609 .LCFI63: 1610 .cfi_def_cfa_offset 24 1611 0004 00AF add r7, sp, #0 1612 .LCFI64: 1613 .cfi_def_cfa_register 7 1614 0006 7860 str r0, [r7, #4] 1615 0008 3960 str r1, [r7] 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1616 .loc 1 1360 24 1617 000a 7B68 ldr r3, [r7, #4] 1618 000c 93F82030 ldrb r3, [r3, #32] 1619 0010 FB73 strb r3, [r7, #15] 1361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check function parameters */ 1363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes)); 1364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1620 .loc 1 1365 6 1621 0012 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 1622 0014 012B cmp r3, #1 1623 0016 02D0 beq .L76 1624 .loc 1 1365 38 discriminator 1 1625 0018 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 1626 001a 022B cmp r3, #2 1627 001c 28D1 bne .L77 1628 .L76: 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Tx Mailbox 0 */ 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX0) != 0U) 1629 .loc 1 1369 22 1630 001e 3B68 ldr r3, [r7] 1631 0020 03F00103 and r3, r3, #1 1632 .loc 1 1369 8 1633 0024 002B cmp r3, #0 1634 0026 07D0 beq .L78 1370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 0 */ 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ0); 1635 .loc 1 1372 7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 54 1636 0028 7B68 ldr r3, [r7, #4] 1637 002a 1B68 ldr r3, [r3] 1638 002c 9A68 ldr r2, [r3, #8] 1639 002e 7B68 ldr r3, [r7, #4] 1640 0030 1B68 ldr r3, [r3] 1641 0032 42F08002 orr r2, r2, #128 1642 0036 9A60 str r2, [r3, #8] 1643 .L78: 1373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Tx Mailbox 1 */ 1376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX1) != 0U) 1644 .loc 1 1376 22 1645 0038 3B68 ldr r3, [r7] 1646 003a 03F00203 and r3, r3, #2 1647 .loc 1 1376 8 1648 003e 002B cmp r3, #0 1649 0040 07D0 beq .L79 1377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 1 */ 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ1); 1650 .loc 1 1379 7 1651 0042 7B68 ldr r3, [r7, #4] 1652 0044 1B68 ldr r3, [r3] 1653 0046 9A68 ldr r2, [r3, #8] 1654 0048 7B68 ldr r3, [r7, #4] 1655 004a 1B68 ldr r3, [r3] 1656 004c 42F40042 orr r2, r2, #32768 1657 0050 9A60 str r2, [r3, #8] 1658 .L79: 1380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Tx Mailbox 2 */ 1383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX2) != 0U) 1659 .loc 1 1383 22 1660 0052 3B68 ldr r3, [r7] 1661 0054 03F00403 and r3, r3, #4 1662 .loc 1 1383 8 1663 0058 002B cmp r3, #0 1664 005a 07D0 beq .L80 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 2 */ 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ2); 1665 .loc 1 1386 7 1666 005c 7B68 ldr r3, [r7, #4] 1667 005e 1B68 ldr r3, [r3] 1668 0060 9A68 ldr r2, [r3, #8] 1669 0062 7B68 ldr r3, [r7, #4] 1670 0064 1B68 ldr r3, [r3] 1671 0066 42F40002 orr r2, r2, #8388608 1672 006a 9A60 str r2, [r3, #8] 1673 .L80: 1387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 1674 .loc 1 1390 12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 55 1675 006c 0023 movs r3, #0 1676 006e 06E0 b .L81 1677 .L77: 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1678 .loc 1 1395 21 1679 0070 7B68 ldr r3, [r7, #4] 1680 0072 5B6A ldr r3, [r3, #36] 1681 0074 43F48022 orr r2, r3, #262144 1682 0078 7B68 ldr r3, [r7, #4] 1683 007a 5A62 str r2, [r3, #36] 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 1684 .loc 1 1397 12 1685 007c 0123 movs r3, #1 1686 .L81: 1398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1687 .loc 1 1399 1 1688 007e 1846 mov r0, r3 1689 0080 1437 adds r7, r7, #20 1690 .LCFI65: 1691 .cfi_def_cfa_offset 4 1692 0082 BD46 mov sp, r7 1693 .LCFI66: 1694 .cfi_def_cfa_register 13 1695 @ sp needed 1696 0084 5DF8047B ldr r7, [sp], #4 1697 .LCFI67: 1698 .cfi_restore 7 1699 .cfi_def_cfa_offset 0 1700 0088 7047 bx lr 1701 .cfi_endproc 1702 .LFE246: 1704 .section .text.HAL_CAN_GetTxMailboxesFreeLevel,"ax",%progbits 1705 .align 1 1706 .global HAL_CAN_GetTxMailboxesFreeLevel 1707 .syntax unified 1708 .thumb 1709 .thumb_func 1711 HAL_CAN_GetTxMailboxesFreeLevel: 1712 .LFB247: 1400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Return Tx Mailboxes free level: number of free Tx Mailboxes. 1403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval Number of free Tx Mailboxes. 1406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t HAL_CAN_GetTxMailboxesFreeLevel(CAN_HandleTypeDef *hcan) 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1713 .loc 1 1408 1 1714 .cfi_startproc 1715 @ args = 0, pretend = 0, frame = 16 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 56 1716 @ frame_needed = 1, uses_anonymous_args = 0 1717 @ link register save eliminated. 1718 0000 80B4 push {r7} 1719 .LCFI68: 1720 .cfi_def_cfa_offset 4 1721 .cfi_offset 7, -4 1722 0002 85B0 sub sp, sp, #20 1723 .LCFI69: 1724 .cfi_def_cfa_offset 24 1725 0004 00AF add r7, sp, #0 1726 .LCFI70: 1727 .cfi_def_cfa_register 7 1728 0006 7860 str r0, [r7, #4] 1409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t freelevel = 0U; 1729 .loc 1 1409 12 1730 0008 0023 movs r3, #0 1731 000a FB60 str r3, [r7, #12] 1410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1732 .loc 1 1410 24 1733 000c 7B68 ldr r3, [r7, #4] 1734 000e 93F82030 ldrb r3, [r3, #32] 1735 0012 FB72 strb r3, [r7, #11] 1411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1736 .loc 1 1412 6 1737 0014 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 1738 0016 012B cmp r3, #1 1739 0018 02D0 beq .L83 1740 .loc 1 1412 38 discriminator 1 1741 001a FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 1742 001c 022B cmp r3, #2 1743 001e 1DD1 bne .L84 1744 .L83: 1413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Tx Mailbox 0 status */ 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME0) != 0U) 1745 .loc 1 1416 14 1746 0020 7B68 ldr r3, [r7, #4] 1747 0022 1B68 ldr r3, [r3] 1748 .loc 1 1416 24 1749 0024 9B68 ldr r3, [r3, #8] 1750 .loc 1 1416 30 1751 0026 03F08063 and r3, r3, #67108864 1752 .loc 1 1416 8 1753 002a 002B cmp r3, #0 1754 002c 02D0 beq .L85 1417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** freelevel++; 1755 .loc 1 1418 16 1756 002e FB68 ldr r3, [r7, #12] 1757 0030 0133 adds r3, r3, #1 1758 0032 FB60 str r3, [r7, #12] 1759 .L85: 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Tx Mailbox 1 status */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 57 1422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME1) != 0U) 1760 .loc 1 1422 14 1761 0034 7B68 ldr r3, [r7, #4] 1762 0036 1B68 ldr r3, [r3] 1763 .loc 1 1422 24 1764 0038 9B68 ldr r3, [r3, #8] 1765 .loc 1 1422 30 1766 003a 03F00063 and r3, r3, #134217728 1767 .loc 1 1422 8 1768 003e 002B cmp r3, #0 1769 0040 02D0 beq .L86 1423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** freelevel++; 1770 .loc 1 1424 16 1771 0042 FB68 ldr r3, [r7, #12] 1772 0044 0133 adds r3, r3, #1 1773 0046 FB60 str r3, [r7, #12] 1774 .L86: 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Tx Mailbox 2 status */ 1428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME2) != 0U) 1775 .loc 1 1428 14 1776 0048 7B68 ldr r3, [r7, #4] 1777 004a 1B68 ldr r3, [r3] 1778 .loc 1 1428 24 1779 004c 9B68 ldr r3, [r3, #8] 1780 .loc 1 1428 30 1781 004e 03F08053 and r3, r3, #268435456 1782 .loc 1 1428 8 1783 0052 002B cmp r3, #0 1784 0054 02D0 beq .L84 1429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** freelevel++; 1785 .loc 1 1430 16 1786 0056 FB68 ldr r3, [r7, #12] 1787 0058 0133 adds r3, r3, #1 1788 005a FB60 str r3, [r7, #12] 1789 .L84: 1431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return Tx Mailboxes free level */ 1435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return freelevel; 1790 .loc 1 1435 10 1791 005c FB68 ldr r3, [r7, #12] 1436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1792 .loc 1 1436 1 1793 005e 1846 mov r0, r3 1794 0060 1437 adds r7, r7, #20 1795 .LCFI71: 1796 .cfi_def_cfa_offset 4 1797 0062 BD46 mov sp, r7 1798 .LCFI72: 1799 .cfi_def_cfa_register 13 1800 @ sp needed 1801 0064 5DF8047B ldr r7, [sp], #4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 58 1802 .LCFI73: 1803 .cfi_restore 7 1804 .cfi_def_cfa_offset 0 1805 0068 7047 bx lr 1806 .cfi_endproc 1807 .LFE247: 1809 .section .text.HAL_CAN_IsTxMessagePending,"ax",%progbits 1810 .align 1 1811 .global HAL_CAN_IsTxMessagePending 1812 .syntax unified 1813 .thumb 1814 .thumb_func 1816 HAL_CAN_IsTxMessagePending: 1817 .LFB248: 1437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Check if a transmission request is pending on the selected Tx 1440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * Mailboxes. 1441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param TxMailboxes List of Tx Mailboxes to check. 1444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes. 1445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval Status 1446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * - 0 : No pending transmission request on any selected Tx Mailboxes. 1447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * - 1 : Pending transmission request on at least one of the selected 1448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * Tx Mailbox. 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t HAL_CAN_IsTxMessagePending(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes) 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1818 .loc 1 1451 1 1819 .cfi_startproc 1820 @ args = 0, pretend = 0, frame = 16 1821 @ frame_needed = 1, uses_anonymous_args = 0 1822 @ link register save eliminated. 1823 0000 80B4 push {r7} 1824 .LCFI74: 1825 .cfi_def_cfa_offset 4 1826 .cfi_offset 7, -4 1827 0002 85B0 sub sp, sp, #20 1828 .LCFI75: 1829 .cfi_def_cfa_offset 24 1830 0004 00AF add r7, sp, #0 1831 .LCFI76: 1832 .cfi_def_cfa_register 7 1833 0006 7860 str r0, [r7, #4] 1834 0008 3960 str r1, [r7] 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t status = 0U; 1835 .loc 1 1452 12 1836 000a 0023 movs r3, #0 1837 000c FB60 str r3, [r7, #12] 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1838 .loc 1 1453 24 1839 000e 7B68 ldr r3, [r7, #4] 1840 0010 93F82030 ldrb r3, [r3, #32] 1841 0014 FB72 strb r3, [r7, #11] 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check function parameters */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 59 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes)); 1457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1842 .loc 1 1458 6 1843 0016 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 1844 0018 012B cmp r3, #1 1845 001a 02D0 beq .L89 1846 .loc 1 1458 38 discriminator 1 1847 001c FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 1848 001e 022B cmp r3, #2 1849 0020 0BD1 bne .L90 1850 .L89: 1459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check pending transmission request on the selected Tx Mailboxes */ 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->TSR & (TxMailboxes << CAN_TSR_TME0_Pos)) != (TxMailboxes << CAN_TSR_TME0_P 1851 .loc 1 1462 14 1852 0022 7B68 ldr r3, [r7, #4] 1853 0024 1B68 ldr r3, [r3] 1854 .loc 1 1462 24 1855 0026 9A68 ldr r2, [r3, #8] 1856 .loc 1 1462 45 1857 0028 3B68 ldr r3, [r7] 1858 002a 9B06 lsls r3, r3, #26 1859 .loc 1 1462 30 1860 002c 1A40 ands r2, r2, r3 1861 .loc 1 1462 83 1862 002e 3B68 ldr r3, [r7] 1863 0030 9B06 lsls r3, r3, #26 1864 .loc 1 1462 8 1865 0032 9A42 cmp r2, r3 1866 0034 01D0 beq .L90 1463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** status = 1U; 1867 .loc 1 1464 14 1868 0036 0123 movs r3, #1 1869 0038 FB60 str r3, [r7, #12] 1870 .L90: 1465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return status */ 1469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return status; 1871 .loc 1 1469 10 1872 003a FB68 ldr r3, [r7, #12] 1470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1873 .loc 1 1470 1 1874 003c 1846 mov r0, r3 1875 003e 1437 adds r7, r7, #20 1876 .LCFI77: 1877 .cfi_def_cfa_offset 4 1878 0040 BD46 mov sp, r7 1879 .LCFI78: 1880 .cfi_def_cfa_register 13 1881 @ sp needed 1882 0042 5DF8047B ldr r7, [sp], #4 1883 .LCFI79: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 60 1884 .cfi_restore 7 1885 .cfi_def_cfa_offset 0 1886 0046 7047 bx lr 1887 .cfi_endproc 1888 .LFE248: 1890 .section .text.HAL_CAN_GetTxTimestamp,"ax",%progbits 1891 .align 1 1892 .global HAL_CAN_GetTxTimestamp 1893 .syntax unified 1894 .thumb 1895 .thumb_func 1897 HAL_CAN_GetTxTimestamp: 1898 .LFB249: 1471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Return timestamp of Tx message sent, if time triggered communication 1474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** mode is enabled. 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param TxMailbox Tx Mailbox where the timestamp of message sent will be 1478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * read. 1479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be one value of @arg CAN_Tx_Mailboxes. 1480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval Timestamp of message sent from Tx Mailbox. 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t HAL_CAN_GetTxTimestamp(CAN_HandleTypeDef *hcan, uint32_t TxMailbox) 1483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1899 .loc 1 1483 1 1900 .cfi_startproc 1901 @ args = 0, pretend = 0, frame = 32 1902 @ frame_needed = 1, uses_anonymous_args = 0 1903 @ link register save eliminated. 1904 0000 80B4 push {r7} 1905 .LCFI80: 1906 .cfi_def_cfa_offset 4 1907 .cfi_offset 7, -4 1908 0002 89B0 sub sp, sp, #36 1909 .LCFI81: 1910 .cfi_def_cfa_offset 40 1911 0004 00AF add r7, sp, #0 1912 .LCFI82: 1913 .cfi_def_cfa_register 7 1914 0006 7860 str r0, [r7, #4] 1915 0008 3960 str r1, [r7] 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t timestamp = 0U; 1916 .loc 1 1484 12 1917 000a 0023 movs r3, #0 1918 000c FB61 str r3, [r7, #28] 1485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t transmitmailbox; 1486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1919 .loc 1 1486 24 1920 000e 7B68 ldr r3, [r7, #4] 1921 0010 93F82030 ldrb r3, [r3, #32] 1922 0014 FB76 strb r3, [r7, #27] 1487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check function parameters */ 1489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX(TxMailbox)); 1490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 61 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1923 .loc 1 1491 6 1924 0016 FB7E ldrb r3, [r7, #27] @ zero_extendqisi2 1925 0018 012B cmp r3, #1 1926 001a 02D0 beq .L93 1927 .loc 1 1491 38 discriminator 1 1928 001c FB7E ldrb r3, [r7, #27] @ zero_extendqisi2 1929 001e 022B cmp r3, #2 1930 0020 15D1 bne .L94 1931 .L93: 1932 0022 3B68 ldr r3, [r7] 1933 0024 3B61 str r3, [r7, #16] 1934 .LBB4: 1935 .LBB5: 1936 .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 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 62 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; 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 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 63 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 116:Drivers/CMSIS/Include/cmsis_gcc.h **** 117:Drivers/CMSIS/Include/cmsis_gcc.h **** 118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ 119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface 120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions 121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 122:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 123:Drivers/CMSIS/Include/cmsis_gcc.h **** 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. 127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 128:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) 130:Drivers/CMSIS/Include/cmsis_gcc.h **** { 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); 132:Drivers/CMSIS/Include/cmsis_gcc.h **** } 133:Drivers/CMSIS/Include/cmsis_gcc.h **** 134:Drivers/CMSIS/Include/cmsis_gcc.h **** 135:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts 137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. 138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 139:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) 141:Drivers/CMSIS/Include/cmsis_gcc.h **** { 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); 143:Drivers/CMSIS/Include/cmsis_gcc.h **** } 144:Drivers/CMSIS/Include/cmsis_gcc.h **** 145:Drivers/CMSIS/Include/cmsis_gcc.h **** 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register 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); ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 64 157:Drivers/CMSIS/Include/cmsis_gcc.h **** } 158:Drivers/CMSIS/Include/cmsis_gcc.h **** 159:Drivers/CMSIS/Include/cmsis_gcc.h **** 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) 163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. 164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value 165:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) 167:Drivers/CMSIS/Include/cmsis_gcc.h **** { 168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 169:Drivers/CMSIS/Include/cmsis_gcc.h **** 170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); 171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 172:Drivers/CMSIS/Include/cmsis_gcc.h **** } 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 174:Drivers/CMSIS/Include/cmsis_gcc.h **** 175:Drivers/CMSIS/Include/cmsis_gcc.h **** 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register 178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. 179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 180:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) 182:Drivers/CMSIS/Include/cmsis_gcc.h **** { 183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); 184:Drivers/CMSIS/Include/cmsis_gcc.h **** } 185:Drivers/CMSIS/Include/cmsis_gcc.h **** 186:Drivers/CMSIS/Include/cmsis_gcc.h **** 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) 190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. 191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 192:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) 194:Drivers/CMSIS/Include/cmsis_gcc.h **** { 195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); 196:Drivers/CMSIS/Include/cmsis_gcc.h **** } 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 198:Drivers/CMSIS/Include/cmsis_gcc.h **** 199:Drivers/CMSIS/Include/cmsis_gcc.h **** 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register 202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value 204:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 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 **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 65 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. 217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value 218:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) 220:Drivers/CMSIS/Include/cmsis_gcc.h **** { 221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 222:Drivers/CMSIS/Include/cmsis_gcc.h **** 223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); 224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 225:Drivers/CMSIS/Include/cmsis_gcc.h **** } 226:Drivers/CMSIS/Include/cmsis_gcc.h **** 227:Drivers/CMSIS/Include/cmsis_gcc.h **** 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } 240:Drivers/CMSIS/Include/cmsis_gcc.h **** 241:Drivers/CMSIS/Include/cmsis_gcc.h **** 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 246:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) 248:Drivers/CMSIS/Include/cmsis_gcc.h **** { 249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 250:Drivers/CMSIS/Include/cmsis_gcc.h **** 251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); 252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 253:Drivers/CMSIS/Include/cmsis_gcc.h **** } 254:Drivers/CMSIS/Include/cmsis_gcc.h **** 255:Drivers/CMSIS/Include/cmsis_gcc.h **** 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) 259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s 260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 261:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 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 **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 66 271:Drivers/CMSIS/Include/cmsis_gcc.h **** 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer 274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). 275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 276:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) 278:Drivers/CMSIS/Include/cmsis_gcc.h **** { 279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); 280:Drivers/CMSIS/Include/cmsis_gcc.h **** } 281:Drivers/CMSIS/Include/cmsis_gcc.h **** 282:Drivers/CMSIS/Include/cmsis_gcc.h **** 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 288:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) 290:Drivers/CMSIS/Include/cmsis_gcc.h **** { 291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 294:Drivers/CMSIS/Include/cmsis_gcc.h **** 295:Drivers/CMSIS/Include/cmsis_gcc.h **** 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). 299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 300:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) 302:Drivers/CMSIS/Include/cmsis_gcc.h **** { 303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 304:Drivers/CMSIS/Include/cmsis_gcc.h **** 305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); 306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 307:Drivers/CMSIS/Include/cmsis_gcc.h **** } 308:Drivers/CMSIS/Include/cmsis_gcc.h **** 309:Drivers/CMSIS/Include/cmsis_gcc.h **** 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) 313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat 314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 315:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) 317:Drivers/CMSIS/Include/cmsis_gcc.h **** { 318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 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 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 67 328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). 329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 330:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) 332:Drivers/CMSIS/Include/cmsis_gcc.h **** { 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); 334:Drivers/CMSIS/Include/cmsis_gcc.h **** } 335:Drivers/CMSIS/Include/cmsis_gcc.h **** 336:Drivers/CMSIS/Include/cmsis_gcc.h **** 337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 338:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 342:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) 344:Drivers/CMSIS/Include/cmsis_gcc.h **** { 345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); 346:Drivers/CMSIS/Include/cmsis_gcc.h **** } 347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 348:Drivers/CMSIS/Include/cmsis_gcc.h **** 349:Drivers/CMSIS/Include/cmsis_gcc.h **** 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { 358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 359:Drivers/CMSIS/Include/cmsis_gcc.h **** 360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); 361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 362:Drivers/CMSIS/Include/cmsis_gcc.h **** } 363:Drivers/CMSIS/Include/cmsis_gcc.h **** 364:Drivers/CMSIS/Include/cmsis_gcc.h **** 365:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) 367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. 368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set 369:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) 371:Drivers/CMSIS/Include/cmsis_gcc.h **** { 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); 373:Drivers/CMSIS/Include/cmsis_gcc.h **** } 374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 375:Drivers/CMSIS/Include/cmsis_gcc.h **** 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; ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 68 385:Drivers/CMSIS/Include/cmsis_gcc.h **** 386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); 387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 388:Drivers/CMSIS/Include/cmsis_gcc.h **** } 389:Drivers/CMSIS/Include/cmsis_gcc.h **** 390:Drivers/CMSIS/Include/cmsis_gcc.h **** 391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 392:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value 396:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) 398:Drivers/CMSIS/Include/cmsis_gcc.h **** { 399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 400:Drivers/CMSIS/Include/cmsis_gcc.h **** 401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); 402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 403:Drivers/CMSIS/Include/cmsis_gcc.h **** } 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 405:Drivers/CMSIS/Include/cmsis_gcc.h **** 406:Drivers/CMSIS/Include/cmsis_gcc.h **** 407:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask 409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. 410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 411:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) 413:Drivers/CMSIS/Include/cmsis_gcc.h **** { 414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); 415:Drivers/CMSIS/Include/cmsis_gcc.h **** } 416:Drivers/CMSIS/Include/cmsis_gcc.h **** 417:Drivers/CMSIS/Include/cmsis_gcc.h **** 418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 419:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. 422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 423:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) 425:Drivers/CMSIS/Include/cmsis_gcc.h **** { 426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); 427:Drivers/CMSIS/Include/cmsis_gcc.h **** } 428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 429:Drivers/CMSIS/Include/cmsis_gcc.h **** 430:Drivers/CMSIS/Include/cmsis_gcc.h **** 431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 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"); ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 69 442:Drivers/CMSIS/Include/cmsis_gcc.h **** } 443:Drivers/CMSIS/Include/cmsis_gcc.h **** 444:Drivers/CMSIS/Include/cmsis_gcc.h **** 445:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. 448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 449:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) 451:Drivers/CMSIS/Include/cmsis_gcc.h **** { 452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); 453:Drivers/CMSIS/Include/cmsis_gcc.h **** } 454:Drivers/CMSIS/Include/cmsis_gcc.h **** 455:Drivers/CMSIS/Include/cmsis_gcc.h **** 456:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority 458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. 459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value 460:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) 462:Drivers/CMSIS/Include/cmsis_gcc.h **** { 463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 464:Drivers/CMSIS/Include/cmsis_gcc.h **** 465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); 466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 467:Drivers/CMSIS/Include/cmsis_gcc.h **** } 468:Drivers/CMSIS/Include/cmsis_gcc.h **** 469:Drivers/CMSIS/Include/cmsis_gcc.h **** 470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 471:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) 473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. 474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value 475:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) 477:Drivers/CMSIS/Include/cmsis_gcc.h **** { 478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 479:Drivers/CMSIS/Include/cmsis_gcc.h **** 480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); 481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } 483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 484:Drivers/CMSIS/Include/cmsis_gcc.h **** 485:Drivers/CMSIS/Include/cmsis_gcc.h **** 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 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 **** /** ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 70 499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) 500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. 501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 502:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) 504:Drivers/CMSIS/Include/cmsis_gcc.h **** { 505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); 506:Drivers/CMSIS/Include/cmsis_gcc.h **** } 507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 508:Drivers/CMSIS/Include/cmsis_gcc.h **** 509:Drivers/CMSIS/Include/cmsis_gcc.h **** 510:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition 512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable 513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 515:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) 517:Drivers/CMSIS/Include/cmsis_gcc.h **** { 518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); 519:Drivers/CMSIS/Include/cmsis_gcc.h **** } 520:Drivers/CMSIS/Include/cmsis_gcc.h **** 521:Drivers/CMSIS/Include/cmsis_gcc.h **** 522:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 526:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) 528:Drivers/CMSIS/Include/cmsis_gcc.h **** { 529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 530:Drivers/CMSIS/Include/cmsis_gcc.h **** 531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); 532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 533:Drivers/CMSIS/Include/cmsis_gcc.h **** } 534:Drivers/CMSIS/Include/cmsis_gcc.h **** 535:Drivers/CMSIS/Include/cmsis_gcc.h **** 536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 537:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 541:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) 543:Drivers/CMSIS/Include/cmsis_gcc.h **** { 544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 545:Drivers/CMSIS/Include/cmsis_gcc.h **** 546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); 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 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 71 556:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) 558:Drivers/CMSIS/Include/cmsis_gcc.h **** { 559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); 560:Drivers/CMSIS/Include/cmsis_gcc.h **** } 561:Drivers/CMSIS/Include/cmsis_gcc.h **** 562:Drivers/CMSIS/Include/cmsis_gcc.h **** 563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 564:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set 568:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) 570:Drivers/CMSIS/Include/cmsis_gcc.h **** { 571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); 572:Drivers/CMSIS/Include/cmsis_gcc.h **** } 573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 574:Drivers/CMSIS/Include/cmsis_gcc.h **** 575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ 578:Drivers/CMSIS/Include/cmsis_gcc.h **** 579:Drivers/CMSIS/Include/cmsis_gcc.h **** 580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) 582:Drivers/CMSIS/Include/cmsis_gcc.h **** 583:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit 585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 588:Drivers/CMSIS/Include/cmsis_gcc.h **** 589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value 591:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) 593:Drivers/CMSIS/Include/cmsis_gcc.h **** { 594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); 601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 603:Drivers/CMSIS/Include/cmsis_gcc.h **** } 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 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 72 613:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) 615:Drivers/CMSIS/Include/cmsis_gcc.h **** { 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); 622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 624:Drivers/CMSIS/Include/cmsis_gcc.h **** } 625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 626:Drivers/CMSIS/Include/cmsis_gcc.h **** 627:Drivers/CMSIS/Include/cmsis_gcc.h **** 628:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit 630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure 632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 633:Drivers/CMSIS/Include/cmsis_gcc.h **** 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). 635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 636:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) 638:Drivers/CMSIS/Include/cmsis_gcc.h **** { 639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; 643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); 645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 646:Drivers/CMSIS/Include/cmsis_gcc.h **** } 647:Drivers/CMSIS/Include/cmsis_gcc.h **** 648:Drivers/CMSIS/Include/cmsis_gcc.h **** 649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 654:Drivers/CMSIS/Include/cmsis_gcc.h **** 655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 657:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) 659:Drivers/CMSIS/Include/cmsis_gcc.h **** { 660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 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 **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 73 670:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit 672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 675:Drivers/CMSIS/Include/cmsis_gcc.h **** 676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). 677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 678:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) 680:Drivers/CMSIS/Include/cmsis_gcc.h **** { 681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); 688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 690:Drivers/CMSIS/Include/cmsis_gcc.h **** } 691:Drivers/CMSIS/Include/cmsis_gcc.h **** 692:Drivers/CMSIS/Include/cmsis_gcc.h **** 693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 694:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) 696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. 698:Drivers/CMSIS/Include/cmsis_gcc.h **** 699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec 700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 701:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) 703:Drivers/CMSIS/Include/cmsis_gcc.h **** { 704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); 710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 712:Drivers/CMSIS/Include/cmsis_gcc.h **** } 713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 714:Drivers/CMSIS/Include/cmsis_gcc.h **** 715:Drivers/CMSIS/Include/cmsis_gcc.h **** 716:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit 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 **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 74 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); 733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 734:Drivers/CMSIS/Include/cmsis_gcc.h **** } 735:Drivers/CMSIS/Include/cmsis_gcc.h **** 736:Drivers/CMSIS/Include/cmsis_gcc.h **** 737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 738:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 742:Drivers/CMSIS/Include/cmsis_gcc.h **** 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); 753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 754:Drivers/CMSIS/Include/cmsis_gcc.h **** } 755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 756:Drivers/CMSIS/Include/cmsis_gcc.h **** 757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ 759:Drivers/CMSIS/Include/cmsis_gcc.h **** 760:Drivers/CMSIS/Include/cmsis_gcc.h **** 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR 763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. 764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value 765:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) 767:Drivers/CMSIS/Include/cmsis_gcc.h **** { 768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) 771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); 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 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 75 784:Drivers/CMSIS/Include/cmsis_gcc.h **** } 785:Drivers/CMSIS/Include/cmsis_gcc.h **** 786:Drivers/CMSIS/Include/cmsis_gcc.h **** 787:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) 797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed 798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); 801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); 803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; 806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 807:Drivers/CMSIS/Include/cmsis_gcc.h **** } 808:Drivers/CMSIS/Include/cmsis_gcc.h **** 809:Drivers/CMSIS/Include/cmsis_gcc.h **** 810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ 811:Drivers/CMSIS/Include/cmsis_gcc.h **** 812:Drivers/CMSIS/Include/cmsis_gcc.h **** 813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ 814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface 815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions 816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 817:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 818:Drivers/CMSIS/Include/cmsis_gcc.h **** 819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. 820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" 821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) 823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) 825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) 826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) 828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) 829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) 830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 831:Drivers/CMSIS/Include/cmsis_gcc.h **** 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 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 76 841:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") 843:Drivers/CMSIS/Include/cmsis_gcc.h **** 844:Drivers/CMSIS/Include/cmsis_gcc.h **** 845:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event 847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter 848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. 849:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") 851:Drivers/CMSIS/Include/cmsis_gcc.h **** 852:Drivers/CMSIS/Include/cmsis_gcc.h **** 853:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. 856:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") 858:Drivers/CMSIS/Include/cmsis_gcc.h **** 859:Drivers/CMSIS/Include/cmsis_gcc.h **** 860:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier 862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, 863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, 864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. 865:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) 867:Drivers/CMSIS/Include/cmsis_gcc.h **** { 868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); 869:Drivers/CMSIS/Include/cmsis_gcc.h **** } 870:Drivers/CMSIS/Include/cmsis_gcc.h **** 871:Drivers/CMSIS/Include/cmsis_gcc.h **** 872:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier 874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. 875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. 876:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) 878:Drivers/CMSIS/Include/cmsis_gcc.h **** { 879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); 880:Drivers/CMSIS/Include/cmsis_gcc.h **** } 881:Drivers/CMSIS/Include/cmsis_gcc.h **** 882:Drivers/CMSIS/Include/cmsis_gcc.h **** 883:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier 885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before 886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. 887:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) 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 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 77 898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 899:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) 901:Drivers/CMSIS/Include/cmsis_gcc.h **** { 902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) 903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); 904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 906:Drivers/CMSIS/Include/cmsis_gcc.h **** 907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 910:Drivers/CMSIS/Include/cmsis_gcc.h **** } 911:Drivers/CMSIS/Include/cmsis_gcc.h **** 912:Drivers/CMSIS/Include/cmsis_gcc.h **** 913:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 918:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) 920:Drivers/CMSIS/Include/cmsis_gcc.h **** { 921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 922:Drivers/CMSIS/Include/cmsis_gcc.h **** 923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 925:Drivers/CMSIS/Include/cmsis_gcc.h **** } 926:Drivers/CMSIS/Include/cmsis_gcc.h **** 927:Drivers/CMSIS/Include/cmsis_gcc.h **** 928:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 930:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam 931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 933:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) 935:Drivers/CMSIS/Include/cmsis_gcc.h **** { 936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) 937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); 938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; 940:Drivers/CMSIS/Include/cmsis_gcc.h **** 941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 944:Drivers/CMSIS/Include/cmsis_gcc.h **** } 945:Drivers/CMSIS/Include/cmsis_gcc.h **** 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) ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 78 955:Drivers/CMSIS/Include/cmsis_gcc.h **** { 956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; 957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) 958:Drivers/CMSIS/Include/cmsis_gcc.h **** { 959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; 960:Drivers/CMSIS/Include/cmsis_gcc.h **** } 961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); 962:Drivers/CMSIS/Include/cmsis_gcc.h **** } 963:Drivers/CMSIS/Include/cmsis_gcc.h **** 964:Drivers/CMSIS/Include/cmsis_gcc.h **** 965:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint 967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. 968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula 969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. 970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break 971:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) 973:Drivers/CMSIS/Include/cmsis_gcc.h **** 974:Drivers/CMSIS/Include/cmsis_gcc.h **** 975:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value 977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. 978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 980:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) 982:Drivers/CMSIS/Include/cmsis_gcc.h **** { 983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 984:Drivers/CMSIS/Include/cmsis_gcc.h **** 985:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 986:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 987:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) 988:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); 1937 .loc 2 988 4 1938 0026 3B69 ldr r3, [r7, #16] 1939 .syntax unified 1940 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1941 0028 93FAA3F3 rbit r3, r3 1942 @ 0 "" 2 1943 .thumb 1944 .syntax unified 1945 002c FB60 str r3, [r7, #12] 989:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 990:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ 991:Drivers/CMSIS/Include/cmsis_gcc.h **** 992:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */ 993:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U) 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; 1946 .loc 2 1001 10 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 79 1947 002e FB68 ldr r3, [r7, #12] 1948 .LBE5: 1949 .LBE4: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Select the Tx mailbox */ 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** transmitmailbox = POSITION_VAL(TxMailbox); 1950 .loc 1 1495 23 1951 0030 B3FA83F3 clz r3, r3 1952 0034 DBB2 uxtb r3, r3 1953 .loc 1 1495 21 1954 0036 7B61 str r3, [r7, #20] 1496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Get timestamp */ 1498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** timestamp = (hcan->Instance->sTxMailBox[transmitmailbox].TDTR & CAN_TDT0R_TIME) >> CAN_TDT0R_TI 1955 .loc 1 1498 22 1956 0038 7B68 ldr r3, [r7, #4] 1957 003a 1A68 ldr r2, [r3] 1958 .loc 1 1498 61 1959 003c 7B69 ldr r3, [r7, #20] 1960 003e 1833 adds r3, r3, #24 1961 0040 1B01 lsls r3, r3, #4 1962 0042 1344 add r3, r3, r2 1963 0044 0433 adds r3, r3, #4 1964 0046 1B68 ldr r3, [r3] 1965 .loc 1 1498 85 1966 0048 1B0C lsrs r3, r3, #16 1967 .loc 1 1498 15 1968 004a 9BB2 uxth r3, r3 1969 004c FB61 str r3, [r7, #28] 1970 .L94: 1499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return the timestamp */ 1502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return timestamp; 1971 .loc 1 1502 10 1972 004e FB69 ldr r3, [r7, #28] 1503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1973 .loc 1 1503 1 1974 0050 1846 mov r0, r3 1975 0052 2437 adds r7, r7, #36 1976 .LCFI83: 1977 .cfi_def_cfa_offset 4 1978 0054 BD46 mov sp, r7 1979 .LCFI84: 1980 .cfi_def_cfa_register 13 1981 @ sp needed 1982 0056 5DF8047B ldr r7, [sp], #4 1983 .LCFI85: 1984 .cfi_restore 7 1985 .cfi_def_cfa_offset 0 1986 005a 7047 bx lr 1987 .cfi_endproc 1988 .LFE249: 1990 .section .text.HAL_CAN_GetRxMessage,"ax",%progbits 1991 .align 1 1992 .global HAL_CAN_GetRxMessage ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 80 1993 .syntax unified 1994 .thumb 1995 .thumb_func 1997 HAL_CAN_GetRxMessage: 1998 .LFB250: 1504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Get an CAN frame from the Rx FIFO zone into the message RAM. 1507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param RxFifo Fifo number of the received message to be read. 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number. 1511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param pHeader pointer to a CAN_RxHeaderTypeDef structure where the header 1512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * of the Rx frame will be stored. 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param aData array where the payload of the Rx frame will be stored. 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 1515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_GetRxMessage(CAN_HandleTypeDef *hcan, uint32_t RxFifo, CAN_RxHeaderTypeDe 1517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1999 .loc 1 1517 1 2000 .cfi_startproc 2001 @ args = 0, pretend = 0, frame = 24 2002 @ frame_needed = 1, uses_anonymous_args = 0 2003 @ link register save eliminated. 2004 0000 80B4 push {r7} 2005 .LCFI86: 2006 .cfi_def_cfa_offset 4 2007 .cfi_offset 7, -4 2008 0002 87B0 sub sp, sp, #28 2009 .LCFI87: 2010 .cfi_def_cfa_offset 32 2011 0004 00AF add r7, sp, #0 2012 .LCFI88: 2013 .cfi_def_cfa_register 7 2014 0006 F860 str r0, [r7, #12] 2015 0008 B960 str r1, [r7, #8] 2016 000a 7A60 str r2, [r7, #4] 2017 000c 3B60 str r3, [r7] 1518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2018 .loc 1 1518 24 2019 000e FB68 ldr r3, [r7, #12] 2020 0010 93F82030 ldrb r3, [r3, #32] 2021 0014 FB75 strb r3, [r7, #23] 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo)); 1521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2022 .loc 1 1522 6 2023 0016 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2024 0018 012B cmp r3, #1 2025 001a 03D0 beq .L98 2026 .loc 1 1522 38 discriminator 1 2027 001c FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2028 001e 022B cmp r3, #2 2029 0020 40F0F380 bne .L99 2030 .L98: 1523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 81 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check the Rx FIFO */ 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */ 2031 .loc 1 1526 8 2032 0024 BB68 ldr r3, [r7, #8] 2033 0026 002B cmp r3, #0 2034 0028 0ED1 bne .L100 1527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check that the Rx FIFO 0 is not empty */ 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) == 0U) 2035 .loc 1 1529 16 2036 002a FB68 ldr r3, [r7, #12] 2037 002c 1B68 ldr r3, [r3] 2038 .loc 1 1529 26 2039 002e DB68 ldr r3, [r3, #12] 2040 .loc 1 1529 33 2041 0030 03F00303 and r3, r3, #3 2042 .loc 1 1529 10 2043 0034 002B cmp r3, #0 2044 0036 16D1 bne .L101 1530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; 2045 .loc 1 1532 25 2046 0038 FB68 ldr r3, [r7, #12] 2047 003a 5B6A ldr r3, [r3, #36] 2048 003c 43F40012 orr r2, r3, #2097152 2049 0040 FB68 ldr r3, [r7, #12] 2050 0042 5A62 str r2, [r3, #36] 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 2051 .loc 1 1534 16 2052 0044 0123 movs r3, #1 2053 0046 E7E0 b .L102 2054 .L100: 1535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */ 1538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check that the Rx FIFO 1 is not empty */ 1540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) == 0U) 2055 .loc 1 1540 16 2056 0048 FB68 ldr r3, [r7, #12] 2057 004a 1B68 ldr r3, [r3] 2058 .loc 1 1540 26 2059 004c 1B69 ldr r3, [r3, #16] 2060 .loc 1 1540 33 2061 004e 03F00303 and r3, r3, #3 2062 .loc 1 1540 10 2063 0052 002B cmp r3, #0 2064 0054 07D1 bne .L101 1541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; 2065 .loc 1 1543 25 2066 0056 FB68 ldr r3, [r7, #12] 2067 0058 5B6A ldr r3, [r3, #36] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 82 2068 005a 43F40012 orr r2, r3, #2097152 2069 005e FB68 ldr r3, [r7, #12] 2070 0060 5A62 str r2, [r3, #36] 1544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 2071 .loc 1 1545 16 2072 0062 0123 movs r3, #1 2073 0064 D8E0 b .L102 2074 .L101: 1546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Get the header */ 1550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->IDE = CAN_RI0R_IDE & hcan->Instance->sFIFOMailBox[RxFifo].RIR; 2075 .loc 1 1550 39 2076 0066 FB68 ldr r3, [r7, #12] 2077 0068 1A68 ldr r2, [r3] 2078 .loc 1 1550 71 2079 006a BB68 ldr r3, [r7, #8] 2080 006c 1B33 adds r3, r3, #27 2081 006e 1B01 lsls r3, r3, #4 2082 0070 1344 add r3, r3, r2 2083 0072 1B68 ldr r3, [r3] 2084 .loc 1 1550 33 2085 0074 03F00402 and r2, r3, #4 2086 .loc 1 1550 18 2087 0078 7B68 ldr r3, [r7, #4] 2088 007a 9A60 str r2, [r3, #8] 1551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 2089 .loc 1 1551 16 2090 007c 7B68 ldr r3, [r7, #4] 2091 007e 9B68 ldr r3, [r3, #8] 2092 .loc 1 1551 8 2093 0080 002B cmp r3, #0 2094 0082 0CD1 bne .L103 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->StdId = (CAN_RI0R_STID & hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_TI0R_STID_ 2095 .loc 1 1553 45 2096 0084 FB68 ldr r3, [r7, #12] 2097 0086 1A68 ldr r2, [r3] 2098 .loc 1 1553 77 2099 0088 BB68 ldr r3, [r7, #8] 2100 008a 1B33 adds r3, r3, #27 2101 008c 1B01 lsls r3, r3, #4 2102 008e 1344 add r3, r3, r2 2103 0090 1B68 ldr r3, [r3] 2104 .loc 1 1553 83 2105 0092 5B0D lsrs r3, r3, #21 2106 0094 C3F30A02 ubfx r2, r3, #0, #11 2107 .loc 1 1553 22 2108 0098 7B68 ldr r3, [r7, #4] 2109 009a 1A60 str r2, [r3] 2110 009c 0BE0 b .L104 2111 .L103: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 83 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->ExtId = ((CAN_RI0R_EXID | CAN_RI0R_STID) & hcan->Instance->sFIFOMailBox[RxFifo].RIR) 2112 .loc 1 1557 63 2113 009e FB68 ldr r3, [r7, #12] 2114 00a0 1A68 ldr r2, [r3] 2115 .loc 1 1557 95 2116 00a2 BB68 ldr r3, [r7, #8] 2117 00a4 1B33 adds r3, r3, #27 2118 00a6 1B01 lsls r3, r3, #4 2119 00a8 1344 add r3, r3, r2 2120 00aa 1B68 ldr r3, [r3] 2121 .loc 1 1557 101 2122 00ac DB08 lsrs r3, r3, #3 2123 00ae 23F06042 bic r2, r3, #-536870912 2124 .loc 1 1557 22 2125 00b2 7B68 ldr r3, [r7, #4] 2126 00b4 5A60 str r2, [r3, #4] 2127 .L104: 1558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->RTR = (CAN_RI0R_RTR & hcan->Instance->sFIFOMailBox[RxFifo].RIR); 2128 .loc 1 1559 40 2129 00b6 FB68 ldr r3, [r7, #12] 2130 00b8 1A68 ldr r2, [r3] 2131 .loc 1 1559 72 2132 00ba BB68 ldr r3, [r7, #8] 2133 00bc 1B33 adds r3, r3, #27 2134 00be 1B01 lsls r3, r3, #4 2135 00c0 1344 add r3, r3, r2 2136 00c2 1B68 ldr r3, [r3] 2137 .loc 1 1559 34 2138 00c4 03F00202 and r2, r3, #2 2139 .loc 1 1559 18 2140 00c8 7B68 ldr r3, [r7, #4] 2141 00ca DA60 str r2, [r3, #12] 1560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->DLC = (CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos 2142 .loc 1 1560 41 2143 00cc FB68 ldr r3, [r7, #12] 2144 00ce 1A68 ldr r2, [r3] 2145 .loc 1 1560 73 2146 00d0 BB68 ldr r3, [r7, #8] 2147 00d2 1B33 adds r3, r3, #27 2148 00d4 1B01 lsls r3, r3, #4 2149 00d6 1344 add r3, r3, r2 2150 00d8 0433 adds r3, r3, #4 2151 00da 1B68 ldr r3, [r3] 2152 .loc 1 1560 80 2153 00dc 03F00F02 and r2, r3, #15 2154 .loc 1 1560 18 2155 00e0 7B68 ldr r3, [r7, #4] 2156 00e2 1A61 str r2, [r3, #16] 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->FilterMatchIndex = (CAN_RDT0R_FMI & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_ 2157 .loc 1 1561 54 2158 00e4 FB68 ldr r3, [r7, #12] 2159 00e6 1A68 ldr r2, [r3] 2160 .loc 1 1561 86 2161 00e8 BB68 ldr r3, [r7, #8] 2162 00ea 1B33 adds r3, r3, #27 2163 00ec 1B01 lsls r3, r3, #4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 84 2164 00ee 1344 add r3, r3, r2 2165 00f0 0433 adds r3, r3, #4 2166 00f2 1B68 ldr r3, [r3] 2167 .loc 1 1561 93 2168 00f4 1B0A lsrs r3, r3, #8 2169 00f6 DAB2 uxtb r2, r3 2170 .loc 1 1561 31 2171 00f8 7B68 ldr r3, [r7, #4] 2172 00fa 9A61 str r2, [r3, #24] 1562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_ 2173 .loc 1 1562 48 2174 00fc FB68 ldr r3, [r7, #12] 2175 00fe 1A68 ldr r2, [r3] 2176 .loc 1 1562 80 2177 0100 BB68 ldr r3, [r7, #8] 2178 0102 1B33 adds r3, r3, #27 2179 0104 1B01 lsls r3, r3, #4 2180 0106 1344 add r3, r3, r2 2181 0108 0433 adds r3, r3, #4 2182 010a 1B68 ldr r3, [r3] 2183 .loc 1 1562 87 2184 010c 1B0C lsrs r3, r3, #16 2185 010e 9AB2 uxth r2, r3 2186 .loc 1 1562 24 2187 0110 7B68 ldr r3, [r7, #4] 2188 0112 5A61 str r2, [r3, #20] 1563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Get the data */ 1565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** aData[0] = (uint8_t)((CAN_RDL0R_DATA0 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2189 .loc 1 1565 49 2190 0114 FB68 ldr r3, [r7, #12] 2191 0116 1A68 ldr r2, [r3] 2192 .loc 1 1565 81 2193 0118 BB68 ldr r3, [r7, #8] 2194 011a 1B01 lsls r3, r3, #4 2195 011c 1344 add r3, r3, r2 2196 011e 03F5DC73 add r3, r3, #440 2197 0122 1B68 ldr r3, [r3] 2198 .loc 1 1565 16 2199 0124 DAB2 uxtb r2, r3 2200 .loc 1 1565 14 2201 0126 3B68 ldr r3, [r7] 2202 0128 1A70 strb r2, [r3] 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2203 .loc 1 1566 49 2204 012a FB68 ldr r3, [r7, #12] 2205 012c 1A68 ldr r2, [r3] 2206 .loc 1 1566 81 2207 012e BB68 ldr r3, [r7, #8] 2208 0130 1B01 lsls r3, r3, #4 2209 0132 1344 add r3, r3, r2 2210 0134 03F5DC73 add r3, r3, #440 2211 0138 1B68 ldr r3, [r3] 2212 .loc 1 1566 88 2213 013a 1A0A lsrs r2, r3, #8 2214 .loc 1 1566 10 2215 013c 3B68 ldr r3, [r7] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 85 2216 013e 0133 adds r3, r3, #1 2217 .loc 1 1566 16 2218 0140 D2B2 uxtb r2, r2 2219 .loc 1 1566 14 2220 0142 1A70 strb r2, [r3] 1567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2221 .loc 1 1567 49 2222 0144 FB68 ldr r3, [r7, #12] 2223 0146 1A68 ldr r2, [r3] 2224 .loc 1 1567 81 2225 0148 BB68 ldr r3, [r7, #8] 2226 014a 1B01 lsls r3, r3, #4 2227 014c 1344 add r3, r3, r2 2228 014e 03F5DC73 add r3, r3, #440 2229 0152 1B68 ldr r3, [r3] 2230 .loc 1 1567 88 2231 0154 1A0C lsrs r2, r3, #16 2232 .loc 1 1567 10 2233 0156 3B68 ldr r3, [r7] 2234 0158 0233 adds r3, r3, #2 2235 .loc 1 1567 16 2236 015a D2B2 uxtb r2, r2 2237 .loc 1 1567 14 2238 015c 1A70 strb r2, [r3] 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 2239 .loc 1 1568 49 2240 015e FB68 ldr r3, [r7, #12] 2241 0160 1A68 ldr r2, [r3] 2242 .loc 1 1568 81 2243 0162 BB68 ldr r3, [r7, #8] 2244 0164 1B01 lsls r3, r3, #4 2245 0166 1344 add r3, r3, r2 2246 0168 03F5DC73 add r3, r3, #440 2247 016c 1B68 ldr r3, [r3] 2248 .loc 1 1568 88 2249 016e 1A0E lsrs r2, r3, #24 2250 .loc 1 1568 10 2251 0170 3B68 ldr r3, [r7] 2252 0172 0333 adds r3, r3, #3 2253 .loc 1 1568 16 2254 0174 D2B2 uxtb r2, r2 2255 .loc 1 1568 14 2256 0176 1A70 strb r2, [r3] 1569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2257 .loc 1 1569 49 2258 0178 FB68 ldr r3, [r7, #12] 2259 017a 1A68 ldr r2, [r3] 2260 .loc 1 1569 81 2261 017c BB68 ldr r3, [r7, #8] 2262 017e 1B01 lsls r3, r3, #4 2263 0180 1344 add r3, r3, r2 2264 0182 03F5DE73 add r3, r3, #444 2265 0186 1A68 ldr r2, [r3] 2266 .loc 1 1569 10 2267 0188 3B68 ldr r3, [r7] 2268 018a 0433 adds r3, r3, #4 2269 .loc 1 1569 16 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 86 2270 018c D2B2 uxtb r2, r2 2271 .loc 1 1569 14 2272 018e 1A70 strb r2, [r3] 1570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2273 .loc 1 1570 49 2274 0190 FB68 ldr r3, [r7, #12] 2275 0192 1A68 ldr r2, [r3] 2276 .loc 1 1570 81 2277 0194 BB68 ldr r3, [r7, #8] 2278 0196 1B01 lsls r3, r3, #4 2279 0198 1344 add r3, r3, r2 2280 019a 03F5DE73 add r3, r3, #444 2281 019e 1B68 ldr r3, [r3] 2282 .loc 1 1570 88 2283 01a0 1A0A lsrs r2, r3, #8 2284 .loc 1 1570 10 2285 01a2 3B68 ldr r3, [r7] 2286 01a4 0533 adds r3, r3, #5 2287 .loc 1 1570 16 2288 01a6 D2B2 uxtb r2, r2 2289 .loc 1 1570 14 2290 01a8 1A70 strb r2, [r3] 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2291 .loc 1 1571 49 2292 01aa FB68 ldr r3, [r7, #12] 2293 01ac 1A68 ldr r2, [r3] 2294 .loc 1 1571 81 2295 01ae BB68 ldr r3, [r7, #8] 2296 01b0 1B01 lsls r3, r3, #4 2297 01b2 1344 add r3, r3, r2 2298 01b4 03F5DE73 add r3, r3, #444 2299 01b8 1B68 ldr r3, [r3] 2300 .loc 1 1571 88 2301 01ba 1A0C lsrs r2, r3, #16 2302 .loc 1 1571 10 2303 01bc 3B68 ldr r3, [r7] 2304 01be 0633 adds r3, r3, #6 2305 .loc 1 1571 16 2306 01c0 D2B2 uxtb r2, r2 2307 .loc 1 1571 14 2308 01c2 1A70 strb r2, [r3] 1572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 2309 .loc 1 1572 49 2310 01c4 FB68 ldr r3, [r7, #12] 2311 01c6 1A68 ldr r2, [r3] 2312 .loc 1 1572 81 2313 01c8 BB68 ldr r3, [r7, #8] 2314 01ca 1B01 lsls r3, r3, #4 2315 01cc 1344 add r3, r3, r2 2316 01ce 03F5DE73 add r3, r3, #444 2317 01d2 1B68 ldr r3, [r3] 2318 .loc 1 1572 88 2319 01d4 1A0E lsrs r2, r3, #24 2320 .loc 1 1572 10 2321 01d6 3B68 ldr r3, [r7] 2322 01d8 0733 adds r3, r3, #7 2323 .loc 1 1572 16 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 87 2324 01da D2B2 uxtb r2, r2 2325 .loc 1 1572 14 2326 01dc 1A70 strb r2, [r3] 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Release the FIFO */ 1575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */ 2327 .loc 1 1575 8 2328 01de BB68 ldr r3, [r7, #8] 2329 01e0 002B cmp r3, #0 2330 01e2 08D1 bne .L105 1576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Release RX FIFO 0 */ 1578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->RF0R, CAN_RF0R_RFOM0); 2331 .loc 1 1578 7 2332 01e4 FB68 ldr r3, [r7, #12] 2333 01e6 1B68 ldr r3, [r3] 2334 01e8 DA68 ldr r2, [r3, #12] 2335 01ea FB68 ldr r3, [r7, #12] 2336 01ec 1B68 ldr r3, [r3] 2337 01ee 42F02002 orr r2, r2, #32 2338 01f2 DA60 str r2, [r3, #12] 2339 01f4 07E0 b .L106 2340 .L105: 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */ 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Release RX FIFO 1 */ 1583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** SET_BIT(hcan->Instance->RF1R, CAN_RF1R_RFOM1); 2341 .loc 1 1583 7 2342 01f6 FB68 ldr r3, [r7, #12] 2343 01f8 1B68 ldr r3, [r3] 2344 01fa 1A69 ldr r2, [r3, #16] 2345 01fc FB68 ldr r3, [r7, #12] 2346 01fe 1B68 ldr r3, [r3] 2347 0200 42F02002 orr r2, r2, #32 2348 0204 1A61 str r2, [r3, #16] 2349 .L106: 1584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 2350 .loc 1 1587 12 2351 0206 0023 movs r3, #0 2352 0208 06E0 b .L102 2353 .L99: 1588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 2354 .loc 1 1592 21 2355 020a FB68 ldr r3, [r7, #12] 2356 020c 5B6A ldr r3, [r3, #36] 2357 020e 43F48022 orr r2, r3, #262144 2358 0212 FB68 ldr r3, [r7, #12] 2359 0214 5A62 str r2, [r3, #36] 1593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 88 1594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 2360 .loc 1 1594 12 2361 0216 0123 movs r3, #1 2362 .L102: 1595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2363 .loc 1 1596 1 2364 0218 1846 mov r0, r3 2365 021a 1C37 adds r7, r7, #28 2366 .LCFI89: 2367 .cfi_def_cfa_offset 4 2368 021c BD46 mov sp, r7 2369 .LCFI90: 2370 .cfi_def_cfa_register 13 2371 @ sp needed 2372 021e 5DF8047B ldr r7, [sp], #4 2373 .LCFI91: 2374 .cfi_restore 7 2375 .cfi_def_cfa_offset 0 2376 0222 7047 bx lr 2377 .cfi_endproc 2378 .LFE250: 2380 .section .text.HAL_CAN_GetRxFifoFillLevel,"ax",%progbits 2381 .align 1 2382 .global HAL_CAN_GetRxFifoFillLevel 2383 .syntax unified 2384 .thumb 2385 .thumb_func 2387 HAL_CAN_GetRxFifoFillLevel: 2388 .LFB251: 1597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Return Rx FIFO fill level. 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param RxFifo Rx FIFO. 1603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number. 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval Number of messages available in Rx FIFO. 1605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t HAL_CAN_GetRxFifoFillLevel(CAN_HandleTypeDef *hcan, uint32_t RxFifo) 1607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2389 .loc 1 1607 1 2390 .cfi_startproc 2391 @ args = 0, pretend = 0, frame = 16 2392 @ frame_needed = 1, uses_anonymous_args = 0 2393 @ link register save eliminated. 2394 0000 80B4 push {r7} 2395 .LCFI92: 2396 .cfi_def_cfa_offset 4 2397 .cfi_offset 7, -4 2398 0002 85B0 sub sp, sp, #20 2399 .LCFI93: 2400 .cfi_def_cfa_offset 24 2401 0004 00AF add r7, sp, #0 2402 .LCFI94: 2403 .cfi_def_cfa_register 7 2404 0006 7860 str r0, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 89 2405 0008 3960 str r1, [r7] 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t filllevel = 0U; 2406 .loc 1 1608 12 2407 000a 0023 movs r3, #0 2408 000c FB60 str r3, [r7, #12] 1609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2409 .loc 1 1609 24 2410 000e 7B68 ldr r3, [r7, #4] 2411 0010 93F82030 ldrb r3, [r3, #32] 2412 0014 FB72 strb r3, [r7, #11] 1610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check function parameters */ 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo)); 1613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2413 .loc 1 1614 6 2414 0016 FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 2415 0018 012B cmp r3, #1 2416 001a 02D0 beq .L108 2417 .loc 1 1614 38 discriminator 1 2418 001c FB7A ldrb r3, [r7, #11] @ zero_extendqisi2 2419 001e 022B cmp r3, #2 2420 0020 0FD1 bne .L109 2421 .L108: 1615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) 2422 .loc 1 1617 8 2423 0022 3B68 ldr r3, [r7] 2424 0024 002B cmp r3, #0 2425 0026 06D1 bne .L110 1618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** filllevel = hcan->Instance->RF0R & CAN_RF0R_FMP0; 2426 .loc 1 1619 23 2427 0028 7B68 ldr r3, [r7, #4] 2428 002a 1B68 ldr r3, [r3] 2429 .loc 1 1619 33 2430 002c DB68 ldr r3, [r3, #12] 2431 .loc 1 1619 17 2432 002e 03F00303 and r3, r3, #3 2433 0032 FB60 str r3, [r7, #12] 2434 0034 05E0 b .L109 2435 .L110: 1620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else /* RxFifo == CAN_RX_FIFO1 */ 1622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** filllevel = hcan->Instance->RF1R & CAN_RF1R_FMP1; 2436 .loc 1 1623 23 2437 0036 7B68 ldr r3, [r7, #4] 2438 0038 1B68 ldr r3, [r3] 2439 .loc 1 1623 33 2440 003a 1B69 ldr r3, [r3, #16] 2441 .loc 1 1623 17 2442 003c 03F00303 and r3, r3, #3 2443 0040 FB60 str r3, [r7, #12] 2444 .L109: 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 90 1625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return Rx FIFO fill level */ 1628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return filllevel; 2445 .loc 1 1628 10 2446 0042 FB68 ldr r3, [r7, #12] 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2447 .loc 1 1629 1 2448 0044 1846 mov r0, r3 2449 0046 1437 adds r7, r7, #20 2450 .LCFI95: 2451 .cfi_def_cfa_offset 4 2452 0048 BD46 mov sp, r7 2453 .LCFI96: 2454 .cfi_def_cfa_register 13 2455 @ sp needed 2456 004a 5DF8047B ldr r7, [sp], #4 2457 .LCFI97: 2458 .cfi_restore 7 2459 .cfi_def_cfa_offset 0 2460 004e 7047 bx lr 2461 .cfi_endproc 2462 .LFE251: 2464 .section .text.HAL_CAN_ActivateNotification,"ax",%progbits 2465 .align 1 2466 .global HAL_CAN_ActivateNotification 2467 .syntax unified 2468 .thumb 2469 .thumb_func 2471 HAL_CAN_ActivateNotification: 2472 .LFB252: 1630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @} 1633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group4 Interrupts management 1636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Interrupts management 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @verbatim 1639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 1640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ##### Interrupts management ##### 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 1642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] This section provides functions allowing to: 1643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_ActivateNotification : Enable interrupts 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_DeactivateNotification : Disable interrupts 1645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_IRQHandler : Handles CAN interrupt request 1646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @endverbatim 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 1649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Enable interrupts. 1653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param ActiveITs indicates which interrupts will be enabled. ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 91 1656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts. 1657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ActivateNotification(CAN_HandleTypeDef *hcan, uint32_t ActiveITs) 1660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2473 .loc 1 1660 1 2474 .cfi_startproc 2475 @ args = 0, pretend = 0, frame = 16 2476 @ frame_needed = 1, uses_anonymous_args = 0 2477 @ link register save eliminated. 2478 0000 80B4 push {r7} 2479 .LCFI98: 2480 .cfi_def_cfa_offset 4 2481 .cfi_offset 7, -4 2482 0002 85B0 sub sp, sp, #20 2483 .LCFI99: 2484 .cfi_def_cfa_offset 24 2485 0004 00AF add r7, sp, #0 2486 .LCFI100: 2487 .cfi_def_cfa_register 7 2488 0006 7860 str r0, [r7, #4] 2489 0008 3960 str r1, [r7] 1661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2490 .loc 1 1661 24 2491 000a 7B68 ldr r3, [r7, #4] 2492 000c 93F82030 ldrb r3, [r3, #32] 2493 0010 FB73 strb r3, [r7, #15] 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check function parameters */ 1664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_IT(ActiveITs)); 1665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2494 .loc 1 1666 6 2495 0012 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2496 0014 012B cmp r3, #1 2497 0016 02D0 beq .L113 2498 .loc 1 1666 38 discriminator 1 2499 0018 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2500 001a 022B cmp r3, #2 2501 001c 09D1 bne .L114 2502 .L113: 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Enable the selected interrupts */ 1670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_ENABLE_IT(hcan, ActiveITs); 2503 .loc 1 1670 5 2504 001e 7B68 ldr r3, [r7, #4] 2505 0020 1B68 ldr r3, [r3] 2506 0022 5969 ldr r1, [r3, #20] 2507 0024 7B68 ldr r3, [r7, #4] 2508 0026 1B68 ldr r3, [r3] 2509 0028 3A68 ldr r2, [r7] 2510 002a 0A43 orrs r2, r2, r1 2511 002c 5A61 str r2, [r3, #20] 1671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 92 2512 .loc 1 1673 12 2513 002e 0023 movs r3, #0 2514 0030 06E0 b .L115 2515 .L114: 1674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 2516 .loc 1 1678 21 2517 0032 7B68 ldr r3, [r7, #4] 2518 0034 5B6A ldr r3, [r3, #36] 2519 0036 43F48022 orr r2, r3, #262144 2520 003a 7B68 ldr r3, [r7, #4] 2521 003c 5A62 str r2, [r3, #36] 1679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 2522 .loc 1 1680 12 2523 003e 0123 movs r3, #1 2524 .L115: 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2525 .loc 1 1682 1 2526 0040 1846 mov r0, r3 2527 0042 1437 adds r7, r7, #20 2528 .LCFI101: 2529 .cfi_def_cfa_offset 4 2530 0044 BD46 mov sp, r7 2531 .LCFI102: 2532 .cfi_def_cfa_register 13 2533 @ sp needed 2534 0046 5DF8047B ldr r7, [sp], #4 2535 .LCFI103: 2536 .cfi_restore 7 2537 .cfi_def_cfa_offset 0 2538 004a 7047 bx lr 2539 .cfi_endproc 2540 .LFE252: 2542 .section .text.HAL_CAN_DeactivateNotification,"ax",%progbits 2543 .align 1 2544 .global HAL_CAN_DeactivateNotification 2545 .syntax unified 2546 .thumb 2547 .thumb_func 2549 HAL_CAN_DeactivateNotification: 2550 .LFB253: 1683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Disable interrupts. 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param InactiveITs indicates which interrupts will be disabled. 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts. 1690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 1691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeactivateNotification(CAN_HandleTypeDef *hcan, uint32_t InactiveITs) 1693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 93 2551 .loc 1 1693 1 2552 .cfi_startproc 2553 @ args = 0, pretend = 0, frame = 16 2554 @ frame_needed = 1, uses_anonymous_args = 0 2555 @ link register save eliminated. 2556 0000 80B4 push {r7} 2557 .LCFI104: 2558 .cfi_def_cfa_offset 4 2559 .cfi_offset 7, -4 2560 0002 85B0 sub sp, sp, #20 2561 .LCFI105: 2562 .cfi_def_cfa_offset 24 2563 0004 00AF add r7, sp, #0 2564 .LCFI106: 2565 .cfi_def_cfa_register 7 2566 0006 7860 str r0, [r7, #4] 2567 0008 3960 str r1, [r7] 1694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2568 .loc 1 1694 24 2569 000a 7B68 ldr r3, [r7, #4] 2570 000c 93F82030 ldrb r3, [r3, #32] 2571 0010 FB73 strb r3, [r7, #15] 1695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check function parameters */ 1697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** assert_param(IS_CAN_IT(InactiveITs)); 1698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2572 .loc 1 1699 6 2573 0012 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2574 0014 012B cmp r3, #1 2575 0016 02D0 beq .L117 2576 .loc 1 1699 38 discriminator 1 2577 0018 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2578 001a 022B cmp r3, #2 2579 001c 0AD1 bne .L118 2580 .L117: 1700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Disable the selected interrupts */ 1703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_DISABLE_IT(hcan, InactiveITs); 2581 .loc 1 1703 5 2582 001e 7B68 ldr r3, [r7, #4] 2583 0020 1B68 ldr r3, [r3] 2584 0022 5969 ldr r1, [r3, #20] 2585 0024 3B68 ldr r3, [r7] 2586 0026 DA43 mvns r2, r3 2587 0028 7B68 ldr r3, [r7, #4] 2588 002a 1B68 ldr r3, [r3] 2589 002c 0A40 ands r2, r2, r1 2590 002e 5A61 str r2, [r3, #20] 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return function status */ 1706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_OK; 2591 .loc 1 1706 12 2592 0030 0023 movs r3, #0 2593 0032 06E0 b .L119 2594 .L118: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 94 1707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 2595 .loc 1 1711 21 2596 0034 7B68 ldr r3, [r7, #4] 2597 0036 5B6A ldr r3, [r3, #36] 2598 0038 43F48022 orr r2, r3, #262144 2599 003c 7B68 ldr r3, [r7, #4] 2600 003e 5A62 str r2, [r3, #36] 1712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return HAL_ERROR; 2601 .loc 1 1713 12 2602 0040 0123 movs r3, #1 2603 .L119: 1714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2604 .loc 1 1715 1 2605 0042 1846 mov r0, r3 2606 0044 1437 adds r7, r7, #20 2607 .LCFI107: 2608 .cfi_def_cfa_offset 4 2609 0046 BD46 mov sp, r7 2610 .LCFI108: 2611 .cfi_def_cfa_register 13 2612 @ sp needed 2613 0048 5DF8047B ldr r7, [sp], #4 2614 .LCFI109: 2615 .cfi_restore 7 2616 .cfi_def_cfa_offset 0 2617 004c 7047 bx lr 2618 .cfi_endproc 2619 .LFE253: 2621 .section .text.HAL_CAN_IRQHandler,"ax",%progbits 2622 .align 1 2623 .global HAL_CAN_IRQHandler 2624 .syntax unified 2625 .thumb 2626 .thumb_func 2628 HAL_CAN_IRQHandler: 2629 .LFB254: 1716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 1718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Handles CAN interrupt request 1719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 1721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 1722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 1723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** void HAL_CAN_IRQHandler(CAN_HandleTypeDef *hcan) 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2630 .loc 1 1724 1 2631 .cfi_startproc 2632 @ args = 0, pretend = 0, frame = 40 2633 @ frame_needed = 1, uses_anonymous_args = 0 2634 0000 80B5 push {r7, lr} 2635 .LCFI110: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 95 2636 .cfi_def_cfa_offset 8 2637 .cfi_offset 7, -8 2638 .cfi_offset 14, -4 2639 0002 8AB0 sub sp, sp, #40 2640 .LCFI111: 2641 .cfi_def_cfa_offset 48 2642 0004 00AF add r7, sp, #0 2643 .LCFI112: 2644 .cfi_def_cfa_register 7 2645 0006 7860 str r0, [r7, #4] 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE; 2646 .loc 1 1725 12 2647 0008 0023 movs r3, #0 2648 000a 7B62 str r3, [r7, #36] 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 2649 .loc 1 1726 25 2650 000c 7B68 ldr r3, [r7, #4] 2651 000e 1B68 ldr r3, [r3] 2652 .loc 1 1726 12 2653 0010 5B69 ldr r3, [r3, #20] 2654 0012 3B62 str r3, [r7, #32] 1727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR); 2655 .loc 1 1727 23 2656 0014 7B68 ldr r3, [r7, #4] 2657 0016 1B68 ldr r3, [r3] 2658 .loc 1 1727 12 2659 0018 5B68 ldr r3, [r3, #4] 2660 001a FB61 str r3, [r7, #28] 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR); 2661 .loc 1 1728 23 2662 001c 7B68 ldr r3, [r7, #4] 2663 001e 1B68 ldr r3, [r3] 2664 .loc 1 1728 12 2665 0020 9B68 ldr r3, [r3, #8] 2666 0022 BB61 str r3, [r7, #24] 1729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R); 2667 .loc 1 1729 24 2668 0024 7B68 ldr r3, [r7, #4] 2669 0026 1B68 ldr r3, [r3] 2670 .loc 1 1729 12 2671 0028 DB68 ldr r3, [r3, #12] 2672 002a 7B61 str r3, [r7, #20] 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R); 2673 .loc 1 1730 24 2674 002c 7B68 ldr r3, [r7, #4] 2675 002e 1B68 ldr r3, [r3] 2676 .loc 1 1730 12 2677 0030 1B69 ldr r3, [r3, #16] 2678 0032 3B61 str r3, [r7, #16] 1731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR); 2679 .loc 1 1731 23 2680 0034 7B68 ldr r3, [r7, #4] 2681 0036 1B68 ldr r3, [r3] 2682 .loc 1 1731 12 2683 0038 9B69 ldr r3, [r3, #24] 2684 003a FB60 str r3, [r7, #12] 1732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 96 1733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmit Mailbox empty interrupt management *****************************/ 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_TX_MAILBOX_EMPTY) != 0U) 2685 .loc 1 1734 19 2686 003c 3B6A ldr r3, [r7, #32] 2687 003e 03F00103 and r3, r3, #1 2688 .loc 1 1734 6 2689 0042 002B cmp r3, #0 2690 0044 7CD0 beq .L121 1735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmit Mailbox 0 management *****************************************/ 1737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP0) != 0U) 2691 .loc 1 1737 19 2692 0046 BB69 ldr r3, [r7, #24] 2693 0048 03F00103 and r3, r3, #1 2694 .loc 1 1737 8 2695 004c 002B cmp r3, #0 2696 004e 23D0 beq .L122 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK0,ALST0,TERR0 bits) */ 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP0); 2697 .loc 1 1740 7 2698 0050 7B68 ldr r3, [r7, #4] 2699 0052 1B68 ldr r3, [r3] 2700 0054 0122 movs r2, #1 2701 0056 9A60 str r2, [r3, #8] 1741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK0) != 0U) 2702 .loc 1 1742 21 2703 0058 BB69 ldr r3, [r7, #24] 2704 005a 03F00203 and r3, r3, #2 2705 .loc 1 1742 10 2706 005e 002B cmp r3, #0 2707 0060 03D0 beq .L123 1743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmission Mailbox 0 complete callback */ 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox0CompleteCallback(hcan); 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_TxMailbox0CompleteCallback(hcan); 2708 .loc 1 1750 9 2709 0062 7868 ldr r0, [r7, #4] 2710 0064 FFF7FEFF bl HAL_CAN_TxMailbox0CompleteCallback 2711 0068 16E0 b .L122 2712 .L123: 1751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST0) != 0U) 2713 .loc 1 1755 23 2714 006a BB69 ldr r3, [r7, #24] 2715 006c 03F00403 and r3, r3, #4 2716 .loc 1 1755 12 2717 0070 002B cmp r3, #0 2718 0072 04D0 beq .L124 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 97 1756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST0; 2719 .loc 1 1758 21 2720 0074 7B6A ldr r3, [r7, #36] 2721 0076 43F40063 orr r3, r3, #2048 2722 007a 7B62 str r3, [r7, #36] 2723 007c 0CE0 b .L122 2724 .L124: 1759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR0) != 0U) 2725 .loc 1 1760 28 2726 007e BB69 ldr r3, [r7, #24] 2727 0080 03F00803 and r3, r3, #8 2728 .loc 1 1760 17 2729 0084 002B cmp r3, #0 2730 0086 04D0 beq .L125 1761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR0; 2731 .loc 1 1763 21 2732 0088 7B6A ldr r3, [r7, #36] 2733 008a 43F48053 orr r3, r3, #4096 2734 008e 7B62 str r3, [r7, #36] 2735 0090 02E0 b .L122 2736 .L125: 1764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmission Mailbox 0 abort callback */ 1768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox0AbortCallback(hcan); 1771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_TxMailbox0AbortCallback(hcan); 2737 .loc 1 1773 11 2738 0092 7868 ldr r0, [r7, #4] 2739 0094 FFF7FEFF bl HAL_CAN_TxMailbox0AbortCallback 2740 .L122: 1774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmit Mailbox 1 management *****************************************/ 1780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP1) != 0U) 2741 .loc 1 1780 19 2742 0098 BB69 ldr r3, [r7, #24] 2743 009a 03F48073 and r3, r3, #256 2744 .loc 1 1780 8 2745 009e 002B cmp r3, #0 2746 00a0 24D0 beq .L126 1781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK1,ALST1,TERR1 bits) */ 1783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP1); 2747 .loc 1 1783 7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 98 2748 00a2 7B68 ldr r3, [r7, #4] 2749 00a4 1B68 ldr r3, [r3] 2750 00a6 4FF48072 mov r2, #256 2751 00aa 9A60 str r2, [r3, #8] 1784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK1) != 0U) 2752 .loc 1 1785 21 2753 00ac BB69 ldr r3, [r7, #24] 2754 00ae 03F40073 and r3, r3, #512 2755 .loc 1 1785 10 2756 00b2 002B cmp r3, #0 2757 00b4 03D0 beq .L127 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmission Mailbox 1 complete callback */ 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox1CompleteCallback(hcan); 1791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_TxMailbox1CompleteCallback(hcan); 2758 .loc 1 1793 9 2759 00b6 7868 ldr r0, [r7, #4] 2760 00b8 FFF7FEFF bl HAL_CAN_TxMailbox1CompleteCallback 2761 00bc 16E0 b .L126 2762 .L127: 1794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST1) != 0U) 2763 .loc 1 1798 23 2764 00be BB69 ldr r3, [r7, #24] 2765 00c0 03F48063 and r3, r3, #1024 2766 .loc 1 1798 12 2767 00c4 002B cmp r3, #0 2768 00c6 04D0 beq .L128 1799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST1; 2769 .loc 1 1801 21 2770 00c8 7B6A ldr r3, [r7, #36] 2771 00ca 43F40053 orr r3, r3, #8192 2772 00ce 7B62 str r3, [r7, #36] 2773 00d0 0CE0 b .L126 2774 .L128: 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR1) != 0U) 2775 .loc 1 1803 28 2776 00d2 BB69 ldr r3, [r7, #24] 2777 00d4 03F40063 and r3, r3, #2048 2778 .loc 1 1803 17 2779 00d8 002B cmp r3, #0 2780 00da 04D0 beq .L129 1804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR1; 2781 .loc 1 1806 21 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 99 2782 00dc 7B6A ldr r3, [r7, #36] 2783 00de 43F48043 orr r3, r3, #16384 2784 00e2 7B62 str r3, [r7, #36] 2785 00e4 02E0 b .L126 2786 .L129: 1807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmission Mailbox 1 abort callback */ 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox1AbortCallback(hcan); 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_TxMailbox1AbortCallback(hcan); 2787 .loc 1 1816 11 2788 00e6 7868 ldr r0, [r7, #4] 2789 00e8 FFF7FEFF bl HAL_CAN_TxMailbox1AbortCallback 2790 .L126: 1817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmit Mailbox 2 management *****************************************/ 1823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP2) != 0U) 2791 .loc 1 1823 19 2792 00ec BB69 ldr r3, [r7, #24] 2793 00ee 03F48033 and r3, r3, #65536 2794 .loc 1 1823 8 2795 00f2 002B cmp r3, #0 2796 00f4 24D0 beq .L121 1824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK2,ALST2,TERR2 bits) */ 1826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP2); 2797 .loc 1 1826 7 2798 00f6 7B68 ldr r3, [r7, #4] 2799 00f8 1B68 ldr r3, [r3] 2800 00fa 4FF48032 mov r2, #65536 2801 00fe 9A60 str r2, [r3, #8] 1827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK2) != 0U) 2802 .loc 1 1828 21 2803 0100 BB69 ldr r3, [r7, #24] 2804 0102 03F40033 and r3, r3, #131072 2805 .loc 1 1828 10 2806 0106 002B cmp r3, #0 2807 0108 03D0 beq .L130 1829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmission Mailbox 2 complete callback */ 1831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox2CompleteCallback(hcan); 1834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_TxMailbox2CompleteCallback(hcan); 2808 .loc 1 1836 9 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 100 2809 010a 7868 ldr r0, [r7, #4] 2810 010c FFF7FEFF bl HAL_CAN_TxMailbox2CompleteCallback 2811 0110 16E0 b .L121 2812 .L130: 1837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST2) != 0U) 2813 .loc 1 1841 23 2814 0112 BB69 ldr r3, [r7, #24] 2815 0114 03F48023 and r3, r3, #262144 2816 .loc 1 1841 12 2817 0118 002B cmp r3, #0 2818 011a 04D0 beq .L131 1842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST2; 2819 .loc 1 1844 21 2820 011c 7B6A ldr r3, [r7, #36] 2821 011e 43F40043 orr r3, r3, #32768 2822 0122 7B62 str r3, [r7, #36] 2823 0124 0CE0 b .L121 2824 .L131: 1845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR2) != 0U) 2825 .loc 1 1846 28 2826 0126 BB69 ldr r3, [r7, #24] 2827 0128 03F40023 and r3, r3, #524288 2828 .loc 1 1846 17 2829 012c 002B cmp r3, #0 2830 012e 04D0 beq .L132 1847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 1849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR2; 2831 .loc 1 1849 21 2832 0130 7B6A ldr r3, [r7, #36] 2833 0132 43F48033 orr r3, r3, #65536 2834 0136 7B62 str r3, [r7, #36] 2835 0138 02E0 b .L121 2836 .L132: 1850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Transmission Mailbox 2 abort callback */ 1854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->TxMailbox2AbortCallback(hcan); 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_TxMailbox2AbortCallback(hcan); 2837 .loc 1 1859 11 2838 013a 7868 ldr r0, [r7, #4] 2839 013c FFF7FEFF bl HAL_CAN_TxMailbox2AbortCallback 2840 .L121: 1860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 101 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 0 overrun interrupt management *****************************/ 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_OVERRUN) != 0U) 2841 .loc 1 1867 19 2842 0140 3B6A ldr r3, [r7, #32] 2843 0142 03F00803 and r3, r3, #8 2844 .loc 1 1867 6 2845 0146 002B cmp r3, #0 2846 0148 0CD0 beq .L133 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FOVR0) != 0U) 2847 .loc 1 1869 20 2848 014a 7B69 ldr r3, [r7, #20] 2849 014c 03F01003 and r3, r3, #16 2850 .loc 1 1869 8 2851 0150 002B cmp r3, #0 2852 0152 07D0 beq .L133 1870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Rx Fifo 0 overrun error */ 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV0; 2853 .loc 1 1872 17 2854 0154 7B6A ldr r3, [r7, #36] 2855 0156 43F40073 orr r3, r3, #512 2856 015a 7B62 str r3, [r7, #36] 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear FIFO0 Overrun Flag */ 1875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV0); 2857 .loc 1 1875 7 2858 015c 7B68 ldr r3, [r7, #4] 2859 015e 1B68 ldr r3, [r3] 2860 0160 1022 movs r2, #16 2861 0162 DA60 str r2, [r3, #12] 2862 .L133: 1876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 0 full interrupt management ********************************/ 1880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_FULL) != 0U) 2863 .loc 1 1880 19 2864 0164 3B6A ldr r3, [r7, #32] 2865 0166 03F00403 and r3, r3, #4 2866 .loc 1 1880 6 2867 016a 002B cmp r3, #0 2868 016c 0BD0 beq .L134 1881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FULL0) != 0U) 2869 .loc 1 1882 20 2870 016e 7B69 ldr r3, [r7, #20] 2871 0170 03F00803 and r3, r3, #8 2872 .loc 1 1882 8 2873 0174 002B cmp r3, #0 2874 0176 06D0 beq .L134 1883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear FIFO 0 full Flag */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 102 1885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF0); 2875 .loc 1 1885 7 2876 0178 7B68 ldr r3, [r7, #4] 2877 017a 1B68 ldr r3, [r3] 2878 017c 0822 movs r2, #8 2879 017e DA60 str r2, [r3, #12] 1886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 0 full Callback */ 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo0FullCallback(hcan); 1891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_RxFifo0FullCallback(hcan); 2880 .loc 1 1893 7 2881 0180 7868 ldr r0, [r7, #4] 2882 0182 FFF7FEFF bl HAL_CAN_RxFifo0FullCallback 2883 .L134: 1894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 0 message pending interrupt management *********************/ 1899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_MSG_PENDING) != 0U) 2884 .loc 1 1899 19 2885 0186 3B6A ldr r3, [r7, #32] 2886 0188 03F00203 and r3, r3, #2 2887 .loc 1 1899 6 2888 018c 002B cmp r3, #0 2889 018e 09D0 beq .L135 1900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check if message is still pending */ 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) != 0U) 2890 .loc 1 1902 14 2891 0190 7B68 ldr r3, [r7, #4] 2892 0192 1B68 ldr r3, [r3] 2893 .loc 1 1902 24 2894 0194 DB68 ldr r3, [r3, #12] 2895 .loc 1 1902 31 2896 0196 03F00303 and r3, r3, #3 2897 .loc 1 1902 8 2898 019a 002B cmp r3, #0 2899 019c 02D0 beq .L135 1903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 0 message pending Callback */ 1905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback(hcan); 1908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_RxFifo0MsgPendingCallback(hcan); 2900 .loc 1 1910 7 2901 019e 7868 ldr r0, [r7, #4] 2902 01a0 FFF7FEFF bl HAL_CAN_RxFifo0MsgPendingCallback 2903 .L135: 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 103 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 1 overrun interrupt management *****************************/ 1916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_OVERRUN) != 0U) 2904 .loc 1 1916 19 2905 01a4 3B6A ldr r3, [r7, #32] 2906 01a6 03F04003 and r3, r3, #64 2907 .loc 1 1916 6 2908 01aa 002B cmp r3, #0 2909 01ac 0CD0 beq .L136 1917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FOVR1) != 0U) 2910 .loc 1 1918 20 2911 01ae 3B69 ldr r3, [r7, #16] 2912 01b0 03F01003 and r3, r3, #16 2913 .loc 1 1918 8 2914 01b4 002B cmp r3, #0 2915 01b6 07D0 beq .L136 1919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Rx Fifo 1 overrun error */ 1921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV1; 2916 .loc 1 1921 17 2917 01b8 7B6A ldr r3, [r7, #36] 2918 01ba 43F48063 orr r3, r3, #1024 2919 01be 7B62 str r3, [r7, #36] 1922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear FIFO1 Overrun Flag */ 1924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV1); 2920 .loc 1 1924 7 2921 01c0 7B68 ldr r3, [r7, #4] 2922 01c2 1B68 ldr r3, [r3] 2923 01c4 1022 movs r2, #16 2924 01c6 1A61 str r2, [r3, #16] 2925 .L136: 1925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 1 full interrupt management ********************************/ 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_FULL) != 0U) 2926 .loc 1 1929 19 2927 01c8 3B6A ldr r3, [r7, #32] 2928 01ca 03F02003 and r3, r3, #32 2929 .loc 1 1929 6 2930 01ce 002B cmp r3, #0 2931 01d0 0BD0 beq .L137 1930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FULL1) != 0U) 2932 .loc 1 1931 20 2933 01d2 3B69 ldr r3, [r7, #16] 2934 01d4 03F00803 and r3, r3, #8 2935 .loc 1 1931 8 2936 01d8 002B cmp r3, #0 2937 01da 06D0 beq .L137 1932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear FIFO 1 full Flag */ 1934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF1); 2938 .loc 1 1934 7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 104 2939 01dc 7B68 ldr r3, [r7, #4] 2940 01de 1B68 ldr r3, [r3] 2941 01e0 0822 movs r2, #8 2942 01e2 1A61 str r2, [r3, #16] 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 1 full Callback */ 1937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo1FullCallback(hcan); 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_RxFifo1FullCallback(hcan); 2943 .loc 1 1942 7 2944 01e4 7868 ldr r0, [r7, #4] 2945 01e6 FFF7FEFF bl HAL_CAN_RxFifo1FullCallback 2946 .L137: 1943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 1 message pending interrupt management *********************/ 1948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_MSG_PENDING) != 0U) 2947 .loc 1 1948 19 2948 01ea 3B6A ldr r3, [r7, #32] 2949 01ec 03F01003 and r3, r3, #16 2950 .loc 1 1948 6 2951 01f0 002B cmp r3, #0 2952 01f2 09D0 beq .L138 1949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check if message is still pending */ 1951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) != 0U) 2953 .loc 1 1951 14 2954 01f4 7B68 ldr r3, [r7, #4] 2955 01f6 1B68 ldr r3, [r3] 2956 .loc 1 1951 24 2957 01f8 1B69 ldr r3, [r3, #16] 2958 .loc 1 1951 31 2959 01fa 03F00303 and r3, r3, #3 2960 .loc 1 1951 8 2961 01fe 002B cmp r3, #0 2962 0200 02D0 beq .L138 1952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Receive FIFO 1 message pending Callback */ 1954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback(hcan); 1957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_RxFifo1MsgPendingCallback(hcan); 2963 .loc 1 1959 7 2964 0202 7868 ldr r0, [r7, #4] 2965 0204 FFF7FEFF bl HAL_CAN_RxFifo1MsgPendingCallback 2966 .L138: 1960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 105 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Sleep interrupt management *********************************************/ 1965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_SLEEP_ACK) != 0U) 2967 .loc 1 1965 19 2968 0208 3B6A ldr r3, [r7, #32] 2969 020a 03F40033 and r3, r3, #131072 2970 .loc 1 1965 6 2971 020e 002B cmp r3, #0 2972 0210 0BD0 beq .L139 1966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((msrflags & CAN_MSR_SLAKI) != 0U) 2973 .loc 1 1967 19 2974 0212 FB69 ldr r3, [r7, #28] 2975 0214 03F01003 and r3, r3, #16 2976 .loc 1 1967 8 2977 0218 002B cmp r3, #0 2978 021a 06D0 beq .L139 1968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear Sleep interrupt Flag */ 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_SLAKI); 2979 .loc 1 1970 7 2980 021c 7B68 ldr r3, [r7, #4] 2981 021e 1B68 ldr r3, [r3] 2982 0220 1022 movs r2, #16 2983 0222 5A60 str r2, [r3, #4] 1971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Sleep Callback */ 1973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->SleepCallback(hcan); 1976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_SleepCallback(hcan); 2984 .loc 1 1978 7 2985 0224 7868 ldr r0, [r7, #4] 2986 0226 FFF7FEFF bl HAL_CAN_SleepCallback 2987 .L139: 1979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 1982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* WakeUp interrupt management *********************************************/ 1984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_WAKEUP) != 0U) 2988 .loc 1 1984 19 2989 022a 3B6A ldr r3, [r7, #32] 2990 022c 03F48033 and r3, r3, #65536 2991 .loc 1 1984 6 2992 0230 002B cmp r3, #0 2993 0232 0BD0 beq .L140 1985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 1986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((msrflags & CAN_MSR_WKUI) != 0U) 2994 .loc 1 1986 19 2995 0234 FB69 ldr r3, [r7, #28] 2996 0236 03F00803 and r3, r3, #8 2997 .loc 1 1986 8 2998 023a 002B cmp r3, #0 2999 023c 06D0 beq .L140 1987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 106 1988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear WakeUp Flag */ 1989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_WKU); 3000 .loc 1 1989 7 3001 023e 7B68 ldr r3, [r7, #4] 3002 0240 1B68 ldr r3, [r3] 3003 0242 0822 movs r2, #8 3004 0244 5A60 str r2, [r3, #4] 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 1991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* WakeUp Callback */ 1992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 1994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback(hcan); 1995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 1996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 1997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_WakeUpFromRxMsgCallback(hcan); 3005 .loc 1 1997 7 3006 0246 7868 ldr r0, [r7, #4] 3007 0248 FFF7FEFF bl HAL_CAN_WakeUpFromRxMsgCallback 3008 .L140: 1998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Error interrupts management *********************************************/ 2003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((interrupts & CAN_IT_ERROR) != 0U) 3009 .loc 1 2003 19 3010 024c 3B6A ldr r3, [r7, #32] 3011 024e 03F40043 and r3, r3, #32768 3012 .loc 1 2003 6 3013 0252 002B cmp r3, #0 3014 0254 7BD0 beq .L141 2004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((msrflags & CAN_MSR_ERRI) != 0U) 3015 .loc 1 2005 19 3016 0256 FB69 ldr r3, [r7, #28] 3017 0258 03F00403 and r3, r3, #4 3018 .loc 1 2005 8 3019 025c 002B cmp r3, #0 3020 025e 72D0 beq .L142 2006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Error Warning Flag */ 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_WARNING) != 0U) && 3021 .loc 1 2008 24 3022 0260 3B6A ldr r3, [r7, #32] 3023 0262 03F48073 and r3, r3, #256 3024 .loc 1 2008 10 3025 0266 002B cmp r3, #0 3026 0268 08D0 beq .L143 2009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 3027 .loc 1 2009 22 discriminator 1 3028 026a FB68 ldr r3, [r7, #12] 3029 026c 03F00103 and r3, r3, #1 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 3030 .loc 1 2008 55 discriminator 1 3031 0270 002B cmp r3, #0 3032 0272 03D0 beq .L143 2010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 107 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Error Warning */ 2012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EWG; 3033 .loc 1 2012 19 3034 0274 7B6A ldr r3, [r7, #36] 3035 0276 43F00103 orr r3, r3, #1 3036 027a 7B62 str r3, [r7, #36] 3037 .L143: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* No need for clear of Error Warning Flag as read-only */ 2015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Error Passive Flag */ 2018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_PASSIVE) != 0U) && 3038 .loc 1 2018 24 3039 027c 3B6A ldr r3, [r7, #32] 3040 027e 03F40073 and r3, r3, #512 3041 .loc 1 2018 10 3042 0282 002B cmp r3, #0 3043 0284 08D0 beq .L144 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 3044 .loc 1 2019 22 discriminator 1 3045 0286 FB68 ldr r3, [r7, #12] 3046 0288 03F00203 and r3, r3, #2 2018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 3047 .loc 1 2018 55 discriminator 1 3048 028c 002B cmp r3, #0 3049 028e 03D0 beq .L144 2020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Error Passive */ 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EPV; 3050 .loc 1 2022 19 3051 0290 7B6A ldr r3, [r7, #36] 3052 0292 43F00203 orr r3, r3, #2 3053 0296 7B62 str r3, [r7, #36] 3054 .L144: 2023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* No need for clear of Error Passive Flag as read-only */ 2025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Bus-off Flag */ 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (((interrupts & CAN_IT_BUSOFF) != 0U) && 3055 .loc 1 2028 24 3056 0298 3B6A ldr r3, [r7, #32] 3057 029a 03F48063 and r3, r3, #1024 3058 .loc 1 2028 10 3059 029e 002B cmp r3, #0 3060 02a0 08D0 beq .L145 2029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 3061 .loc 1 2029 22 discriminator 1 3062 02a2 FB68 ldr r3, [r7, #12] 3063 02a4 03F00403 and r3, r3, #4 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 3064 .loc 1 2028 48 discriminator 1 3065 02a8 002B cmp r3, #0 3066 02aa 03D0 beq .L145 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Bus-Off */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 108 2032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BOF; 3067 .loc 1 2032 19 3068 02ac 7B6A ldr r3, [r7, #36] 3069 02ae 43F00403 orr r3, r3, #4 3070 02b2 7B62 str r3, [r7, #36] 3071 .L145: 2033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* No need for clear of Error Bus-Off as read-only */ 2035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check Last Error Code Flag */ 2038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (((interrupts & CAN_IT_LAST_ERROR_CODE) != 0U) && 3072 .loc 1 2038 24 3073 02b4 3B6A ldr r3, [r7, #32] 3074 02b6 03F40063 and r3, r3, #2048 3075 .loc 1 2038 10 3076 02ba 002B cmp r3, #0 3077 02bc 43D0 beq .L142 2039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 3078 .loc 1 2039 22 discriminator 1 3079 02be FB68 ldr r3, [r7, #12] 3080 02c0 03F07003 and r3, r3, #112 2038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 3081 .loc 1 2038 57 discriminator 1 3082 02c4 002B cmp r3, #0 3083 02c6 3ED0 beq .L142 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** switch (esrflags & CAN_ESR_LEC) 3084 .loc 1 2041 26 3085 02c8 FB68 ldr r3, [r7, #12] 3086 02ca 03F07003 and r3, r3, #112 3087 .loc 1 2041 9 3088 02ce 602B cmp r3, #96 3089 02d0 2BD0 beq .L146 3090 02d2 602B cmp r3, #96 3091 02d4 2ED8 bhi .L155 3092 02d6 502B cmp r3, #80 3093 02d8 22D0 beq .L148 3094 02da 502B cmp r3, #80 3095 02dc 2AD8 bhi .L155 3096 02de 402B cmp r3, #64 3097 02e0 19D0 beq .L149 3098 02e2 402B cmp r3, #64 3099 02e4 26D8 bhi .L155 3100 02e6 302B cmp r3, #48 3101 02e8 10D0 beq .L150 3102 02ea 302B cmp r3, #48 3103 02ec 22D8 bhi .L155 3104 02ee 102B cmp r3, #16 3105 02f0 02D0 beq .L151 3106 02f2 202B cmp r3, #32 3107 02f4 05D0 beq .L152 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_0): 2044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Stuff error */ 2045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_STF; 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 109 2047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_1): 2048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Form error */ 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_FOR; 2050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 2051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0): 2052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Acknowledgement error */ 2053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_ACK; 2054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 2055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_2): 2056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Bit recessive error */ 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BR; 2058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 2059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0): 2060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to Bit Dominant error */ 2061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BD; 2062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 2063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1): 2064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Set CAN error code to CRC error */ 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_CRC; 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** default: 2068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 3108 .loc 1 2068 13 3109 02f6 1DE0 b .L155 3110 .L151: 2045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 3111 .loc 1 2045 23 3112 02f8 7B6A ldr r3, [r7, #36] 3113 02fa 43F00803 orr r3, r3, #8 3114 02fe 7B62 str r3, [r7, #36] 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_1): 3115 .loc 1 2046 13 3116 0300 19E0 b .L153 3117 .L152: 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 3118 .loc 1 2049 23 3119 0302 7B6A ldr r3, [r7, #36] 3120 0304 43F01003 orr r3, r3, #16 3121 0308 7B62 str r3, [r7, #36] 2050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0): 3122 .loc 1 2050 13 3123 030a 14E0 b .L153 3124 .L150: 2053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 3125 .loc 1 2053 23 3126 030c 7B6A ldr r3, [r7, #36] 3127 030e 43F02003 orr r3, r3, #32 3128 0312 7B62 str r3, [r7, #36] 2054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_2): 3129 .loc 1 2054 13 3130 0314 0FE0 b .L153 3131 .L149: 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 3132 .loc 1 2057 23 3133 0316 7B6A ldr r3, [r7, #36] 3134 0318 43F04003 orr r3, r3, #64 3135 031c 7B62 str r3, [r7, #36] ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 110 2058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0): 3136 .loc 1 2058 13 3137 031e 0AE0 b .L153 3138 .L148: 2061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 3139 .loc 1 2061 23 3140 0320 7B6A ldr r3, [r7, #36] 3141 0322 43F08003 orr r3, r3, #128 3142 0326 7B62 str r3, [r7, #36] 2062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1): 3143 .loc 1 2062 13 3144 0328 05E0 b .L153 3145 .L146: 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** break; 3146 .loc 1 2065 23 3147 032a 7B6A ldr r3, [r7, #36] 3148 032c 43F48073 orr r3, r3, #256 3149 0330 7B62 str r3, [r7, #36] 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** default: 3150 .loc 1 2066 13 3151 0332 00E0 b .L153 3152 .L155: 3153 .loc 1 2068 13 3154 0334 00BF nop 3155 .L153: 2069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear Last error code Flag */ 2072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** CLEAR_BIT(hcan->Instance->ESR, CAN_ESR_LEC); 3156 .loc 1 2072 9 3157 0336 7B68 ldr r3, [r7, #4] 3158 0338 1B68 ldr r3, [r3] 3159 033a 9A69 ldr r2, [r3, #24] 3160 033c 7B68 ldr r3, [r7, #4] 3161 033e 1B68 ldr r3, [r3] 3162 0340 22F07002 bic r2, r2, #112 3163 0344 9A61 str r2, [r3, #24] 3164 .L142: 2073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Clear ERRI Flag */ 2077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_ERRI); 3165 .loc 1 2077 5 3166 0346 7B68 ldr r3, [r7, #4] 3167 0348 1B68 ldr r3, [r3] 3168 034a 0422 movs r2, #4 3169 034c 5A60 str r2, [r3, #4] 3170 .L141: 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call the Error call Back in case of Errors */ 2081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if (errorcode != HAL_CAN_ERROR_NONE) 3171 .loc 1 2081 6 3172 034e 7B6A ldr r3, [r7, #36] 3173 0350 002B cmp r3, #0 3174 0352 08D0 beq .L156 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 111 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code in handle */ 2084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= errorcode; 3175 .loc 1 2084 21 3176 0354 7B68 ldr r3, [r7, #4] 3177 0356 5A6A ldr r2, [r3, #36] 3178 0358 7B6A ldr r3, [r7, #36] 3179 035a 1A43 orrs r2, r2, r3 3180 035c 7B68 ldr r3, [r7, #4] 3181 035e 5A62 str r2, [r3, #36] 2085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call Error callback function */ 2087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 2088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call registered callback*/ 2089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCallback(hcan); 2090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #else 2091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Call weak (surcharged) callback */ 2092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_ErrorCallback(hcan); 3182 .loc 1 2092 5 3183 0360 7868 ldr r0, [r7, #4] 3184 0362 FFF7FEFF bl HAL_CAN_ErrorCallback 3185 .L156: 2093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3186 .loc 1 2095 1 3187 0366 00BF nop 3188 0368 2837 adds r7, r7, #40 3189 .LCFI113: 3190 .cfi_def_cfa_offset 8 3191 036a BD46 mov sp, r7 3192 .LCFI114: 3193 .cfi_def_cfa_register 13 3194 @ sp needed 3195 036c 80BD pop {r7, pc} 3196 .cfi_endproc 3197 .LFE254: 3199 .section .text.HAL_CAN_TxMailbox0CompleteCallback,"ax",%progbits 3200 .align 1 3201 .weak HAL_CAN_TxMailbox0CompleteCallback 3202 .syntax unified 3203 .thumb 3204 .thumb_func 3206 HAL_CAN_TxMailbox0CompleteCallback: 3207 .LFB255: 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @} 2099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group5 Callback functions 2102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief CAN Callback functions 2103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 2104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @verbatim 2105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 2106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ##### Callback functions ##### 2107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 112 2108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] 2109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** This subsection provides the following callback functions: 2110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_TxMailbox0CompleteCallback 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_TxMailbox1CompleteCallback 2112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_TxMailbox2CompleteCallback 2113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_TxMailbox0AbortCallback 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_TxMailbox1AbortCallback 2115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_TxMailbox2AbortCallback 2116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_RxFifo0MsgPendingCallback 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_RxFifo0FullCallback 2118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_RxFifo1MsgPendingCallback 2119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_RxFifo1FullCallback 2120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_SleepCallback 2121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_WakeUpFromRxMsgCallback 2122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_ErrorCallback 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @endverbatim 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 2126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Transmission Mailbox 0 complete callback. 2130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan) 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3208 .loc 1 2135 1 3209 .cfi_startproc 3210 @ args = 0, pretend = 0, frame = 8 3211 @ frame_needed = 1, uses_anonymous_args = 0 3212 @ link register save eliminated. 3213 0000 80B4 push {r7} 3214 .LCFI115: 3215 .cfi_def_cfa_offset 4 3216 .cfi_offset 7, -4 3217 0002 83B0 sub sp, sp, #12 3218 .LCFI116: 3219 .cfi_def_cfa_offset 16 3220 0004 00AF add r7, sp, #0 3221 .LCFI117: 3222 .cfi_def_cfa_register 7 3223 0006 7860 str r0, [r7, #4] 2136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_TxMailbox0CompleteCallback could be implemented in the 2141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** user file 2142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3224 .loc 1 2143 1 3225 0008 00BF nop 3226 000a 0C37 adds r7, r7, #12 3227 .LCFI118: 3228 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 113 3229 000c BD46 mov sp, r7 3230 .LCFI119: 3231 .cfi_def_cfa_register 13 3232 @ sp needed 3233 000e 5DF8047B ldr r7, [sp], #4 3234 .LCFI120: 3235 .cfi_restore 7 3236 .cfi_def_cfa_offset 0 3237 0012 7047 bx lr 3238 .cfi_endproc 3239 .LFE255: 3241 .section .text.HAL_CAN_TxMailbox1CompleteCallback,"ax",%progbits 3242 .align 1 3243 .weak HAL_CAN_TxMailbox1CompleteCallback 3244 .syntax unified 3245 .thumb 3246 .thumb_func 3248 HAL_CAN_TxMailbox1CompleteCallback: 3249 .LFB256: 2144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Transmission Mailbox 1 complete callback. 2147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan) 2152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3250 .loc 1 2152 1 3251 .cfi_startproc 3252 @ args = 0, pretend = 0, frame = 8 3253 @ frame_needed = 1, uses_anonymous_args = 0 3254 @ link register save eliminated. 3255 0000 80B4 push {r7} 3256 .LCFI121: 3257 .cfi_def_cfa_offset 4 3258 .cfi_offset 7, -4 3259 0002 83B0 sub sp, sp, #12 3260 .LCFI122: 3261 .cfi_def_cfa_offset 16 3262 0004 00AF add r7, sp, #0 3263 .LCFI123: 3264 .cfi_def_cfa_register 7 3265 0006 7860 str r0, [r7, #4] 2153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_TxMailbox1CompleteCallback could be implemented in the 2158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** user file 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3266 .loc 1 2160 1 3267 0008 00BF nop 3268 000a 0C37 adds r7, r7, #12 3269 .LCFI124: 3270 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 114 3271 000c BD46 mov sp, r7 3272 .LCFI125: 3273 .cfi_def_cfa_register 13 3274 @ sp needed 3275 000e 5DF8047B ldr r7, [sp], #4 3276 .LCFI126: 3277 .cfi_restore 7 3278 .cfi_def_cfa_offset 0 3279 0012 7047 bx lr 3280 .cfi_endproc 3281 .LFE256: 3283 .section .text.HAL_CAN_TxMailbox2CompleteCallback,"ax",%progbits 3284 .align 1 3285 .weak HAL_CAN_TxMailbox2CompleteCallback 3286 .syntax unified 3287 .thumb 3288 .thumb_func 3290 HAL_CAN_TxMailbox2CompleteCallback: 3291 .LFB257: 2161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Transmission Mailbox 2 complete callback. 2164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan) 2169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3292 .loc 1 2169 1 3293 .cfi_startproc 3294 @ args = 0, pretend = 0, frame = 8 3295 @ frame_needed = 1, uses_anonymous_args = 0 3296 @ link register save eliminated. 3297 0000 80B4 push {r7} 3298 .LCFI127: 3299 .cfi_def_cfa_offset 4 3300 .cfi_offset 7, -4 3301 0002 83B0 sub sp, sp, #12 3302 .LCFI128: 3303 .cfi_def_cfa_offset 16 3304 0004 00AF add r7, sp, #0 3305 .LCFI129: 3306 .cfi_def_cfa_register 7 3307 0006 7860 str r0, [r7, #4] 2170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_TxMailbox2CompleteCallback could be implemented in the 2175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** user file 2176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3308 .loc 1 2177 1 3309 0008 00BF nop 3310 000a 0C37 adds r7, r7, #12 3311 .LCFI130: 3312 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 115 3313 000c BD46 mov sp, r7 3314 .LCFI131: 3315 .cfi_def_cfa_register 13 3316 @ sp needed 3317 000e 5DF8047B ldr r7, [sp], #4 3318 .LCFI132: 3319 .cfi_restore 7 3320 .cfi_def_cfa_offset 0 3321 0012 7047 bx lr 3322 .cfi_endproc 3323 .LFE257: 3325 .section .text.HAL_CAN_TxMailbox0AbortCallback,"ax",%progbits 3326 .align 1 3327 .weak HAL_CAN_TxMailbox0AbortCallback 3328 .syntax unified 3329 .thumb 3330 .thumb_func 3332 HAL_CAN_TxMailbox0AbortCallback: 3333 .LFB258: 2178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Transmission Mailbox 0 Cancellation callback. 2181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 2182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0AbortCallback(CAN_HandleTypeDef *hcan) 2186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3334 .loc 1 2186 1 3335 .cfi_startproc 3336 @ args = 0, pretend = 0, frame = 8 3337 @ frame_needed = 1, uses_anonymous_args = 0 3338 @ link register save eliminated. 3339 0000 80B4 push {r7} 3340 .LCFI133: 3341 .cfi_def_cfa_offset 4 3342 .cfi_offset 7, -4 3343 0002 83B0 sub sp, sp, #12 3344 .LCFI134: 3345 .cfi_def_cfa_offset 16 3346 0004 00AF add r7, sp, #0 3347 .LCFI135: 3348 .cfi_def_cfa_register 7 3349 0006 7860 str r0, [r7, #4] 2187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_TxMailbox0AbortCallback could be implemented in the 2192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** user file 2193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3350 .loc 1 2194 1 3351 0008 00BF nop 3352 000a 0C37 adds r7, r7, #12 3353 .LCFI136: 3354 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 116 3355 000c BD46 mov sp, r7 3356 .LCFI137: 3357 .cfi_def_cfa_register 13 3358 @ sp needed 3359 000e 5DF8047B ldr r7, [sp], #4 3360 .LCFI138: 3361 .cfi_restore 7 3362 .cfi_def_cfa_offset 0 3363 0012 7047 bx lr 3364 .cfi_endproc 3365 .LFE258: 3367 .section .text.HAL_CAN_TxMailbox1AbortCallback,"ax",%progbits 3368 .align 1 3369 .weak HAL_CAN_TxMailbox1AbortCallback 3370 .syntax unified 3371 .thumb 3372 .thumb_func 3374 HAL_CAN_TxMailbox1AbortCallback: 3375 .LFB259: 2195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Transmission Mailbox 1 Cancellation callback. 2198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 2199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1AbortCallback(CAN_HandleTypeDef *hcan) 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3376 .loc 1 2203 1 3377 .cfi_startproc 3378 @ args = 0, pretend = 0, frame = 8 3379 @ frame_needed = 1, uses_anonymous_args = 0 3380 @ link register save eliminated. 3381 0000 80B4 push {r7} 3382 .LCFI139: 3383 .cfi_def_cfa_offset 4 3384 .cfi_offset 7, -4 3385 0002 83B0 sub sp, sp, #12 3386 .LCFI140: 3387 .cfi_def_cfa_offset 16 3388 0004 00AF add r7, sp, #0 3389 .LCFI141: 3390 .cfi_def_cfa_register 7 3391 0006 7860 str r0, [r7, #4] 2204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_TxMailbox1AbortCallback could be implemented in the 2209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** user file 2210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3392 .loc 1 2211 1 3393 0008 00BF nop 3394 000a 0C37 adds r7, r7, #12 3395 .LCFI142: 3396 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 117 3397 000c BD46 mov sp, r7 3398 .LCFI143: 3399 .cfi_def_cfa_register 13 3400 @ sp needed 3401 000e 5DF8047B ldr r7, [sp], #4 3402 .LCFI144: 3403 .cfi_restore 7 3404 .cfi_def_cfa_offset 0 3405 0012 7047 bx lr 3406 .cfi_endproc 3407 .LFE259: 3409 .section .text.HAL_CAN_TxMailbox2AbortCallback,"ax",%progbits 3410 .align 1 3411 .weak HAL_CAN_TxMailbox2AbortCallback 3412 .syntax unified 3413 .thumb 3414 .thumb_func 3416 HAL_CAN_TxMailbox2AbortCallback: 3417 .LFB260: 2212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Transmission Mailbox 2 Cancellation callback. 2215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 2216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2AbortCallback(CAN_HandleTypeDef *hcan) 2220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3418 .loc 1 2220 1 3419 .cfi_startproc 3420 @ args = 0, pretend = 0, frame = 8 3421 @ frame_needed = 1, uses_anonymous_args = 0 3422 @ link register save eliminated. 3423 0000 80B4 push {r7} 3424 .LCFI145: 3425 .cfi_def_cfa_offset 4 3426 .cfi_offset 7, -4 3427 0002 83B0 sub sp, sp, #12 3428 .LCFI146: 3429 .cfi_def_cfa_offset 16 3430 0004 00AF add r7, sp, #0 3431 .LCFI147: 3432 .cfi_def_cfa_register 7 3433 0006 7860 str r0, [r7, #4] 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_TxMailbox2AbortCallback could be implemented in the 2226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** user file 2227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3434 .loc 1 2228 1 3435 0008 00BF nop 3436 000a 0C37 adds r7, r7, #12 3437 .LCFI148: 3438 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 118 3439 000c BD46 mov sp, r7 3440 .LCFI149: 3441 .cfi_def_cfa_register 13 3442 @ sp needed 3443 000e 5DF8047B ldr r7, [sp], #4 3444 .LCFI150: 3445 .cfi_restore 7 3446 .cfi_def_cfa_offset 0 3447 0012 7047 bx lr 3448 .cfi_endproc 3449 .LFE260: 3451 .section .text.HAL_CAN_RxFifo0MsgPendingCallback,"ax",%progbits 3452 .align 1 3453 .weak HAL_CAN_RxFifo0MsgPendingCallback 3454 .syntax unified 3455 .thumb 3456 .thumb_func 3458 HAL_CAN_RxFifo0MsgPendingCallback: 3459 .LFB261: 2229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Rx FIFO 0 message pending callback. 2232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) 2237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3460 .loc 1 2237 1 3461 .cfi_startproc 3462 @ args = 0, pretend = 0, frame = 8 3463 @ frame_needed = 1, uses_anonymous_args = 0 3464 @ link register save eliminated. 3465 0000 80B4 push {r7} 3466 .LCFI151: 3467 .cfi_def_cfa_offset 4 3468 .cfi_offset 7, -4 3469 0002 83B0 sub sp, sp, #12 3470 .LCFI152: 3471 .cfi_def_cfa_offset 16 3472 0004 00AF add r7, sp, #0 3473 .LCFI153: 3474 .cfi_def_cfa_register 7 3475 0006 7860 str r0, [r7, #4] 2238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_RxFifo0MsgPendingCallback could be implemented in the 2243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** user file 2244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3476 .loc 1 2245 1 3477 0008 00BF nop 3478 000a 0C37 adds r7, r7, #12 3479 .LCFI154: 3480 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 119 3481 000c BD46 mov sp, r7 3482 .LCFI155: 3483 .cfi_def_cfa_register 13 3484 @ sp needed 3485 000e 5DF8047B ldr r7, [sp], #4 3486 .LCFI156: 3487 .cfi_restore 7 3488 .cfi_def_cfa_offset 0 3489 0012 7047 bx lr 3490 .cfi_endproc 3491 .LFE261: 3493 .section .text.HAL_CAN_RxFifo0FullCallback,"ax",%progbits 3494 .align 1 3495 .weak HAL_CAN_RxFifo0FullCallback 3496 .syntax unified 3497 .thumb 3498 .thumb_func 3500 HAL_CAN_RxFifo0FullCallback: 3501 .LFB262: 2246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Rx FIFO 0 full callback. 2249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_RxFifo0FullCallback(CAN_HandleTypeDef *hcan) 2254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3502 .loc 1 2254 1 3503 .cfi_startproc 3504 @ args = 0, pretend = 0, frame = 8 3505 @ frame_needed = 1, uses_anonymous_args = 0 3506 @ link register save eliminated. 3507 0000 80B4 push {r7} 3508 .LCFI157: 3509 .cfi_def_cfa_offset 4 3510 .cfi_offset 7, -4 3511 0002 83B0 sub sp, sp, #12 3512 .LCFI158: 3513 .cfi_def_cfa_offset 16 3514 0004 00AF add r7, sp, #0 3515 .LCFI159: 3516 .cfi_def_cfa_register 7 3517 0006 7860 str r0, [r7, #4] 2255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_RxFifo0FullCallback could be implemented in the user 2260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** file 2261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3518 .loc 1 2262 1 3519 0008 00BF nop 3520 000a 0C37 adds r7, r7, #12 3521 .LCFI160: 3522 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 120 3523 000c BD46 mov sp, r7 3524 .LCFI161: 3525 .cfi_def_cfa_register 13 3526 @ sp needed 3527 000e 5DF8047B ldr r7, [sp], #4 3528 .LCFI162: 3529 .cfi_restore 7 3530 .cfi_def_cfa_offset 0 3531 0012 7047 bx lr 3532 .cfi_endproc 3533 .LFE262: 3535 .section .text.HAL_CAN_RxFifo1MsgPendingCallback,"ax",%progbits 3536 .align 1 3537 .weak HAL_CAN_RxFifo1MsgPendingCallback 3538 .syntax unified 3539 .thumb 3540 .thumb_func 3542 HAL_CAN_RxFifo1MsgPendingCallback: 3543 .LFB263: 2263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Rx FIFO 1 message pending callback. 2266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan) 2271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3544 .loc 1 2271 1 3545 .cfi_startproc 3546 @ args = 0, pretend = 0, frame = 8 3547 @ frame_needed = 1, uses_anonymous_args = 0 3548 @ link register save eliminated. 3549 0000 80B4 push {r7} 3550 .LCFI163: 3551 .cfi_def_cfa_offset 4 3552 .cfi_offset 7, -4 3553 0002 83B0 sub sp, sp, #12 3554 .LCFI164: 3555 .cfi_def_cfa_offset 16 3556 0004 00AF add r7, sp, #0 3557 .LCFI165: 3558 .cfi_def_cfa_register 7 3559 0006 7860 str r0, [r7, #4] 2272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_RxFifo1MsgPendingCallback could be implemented in the 2277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** user file 2278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3560 .loc 1 2279 1 3561 0008 00BF nop 3562 000a 0C37 adds r7, r7, #12 3563 .LCFI166: 3564 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 121 3565 000c BD46 mov sp, r7 3566 .LCFI167: 3567 .cfi_def_cfa_register 13 3568 @ sp needed 3569 000e 5DF8047B ldr r7, [sp], #4 3570 .LCFI168: 3571 .cfi_restore 7 3572 .cfi_def_cfa_offset 0 3573 0012 7047 bx lr 3574 .cfi_endproc 3575 .LFE263: 3577 .section .text.HAL_CAN_RxFifo1FullCallback,"ax",%progbits 3578 .align 1 3579 .weak HAL_CAN_RxFifo1FullCallback 3580 .syntax unified 3581 .thumb 3582 .thumb_func 3584 HAL_CAN_RxFifo1FullCallback: 3585 .LFB264: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Rx FIFO 1 full callback. 2283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_RxFifo1FullCallback(CAN_HandleTypeDef *hcan) 2288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3586 .loc 1 2288 1 3587 .cfi_startproc 3588 @ args = 0, pretend = 0, frame = 8 3589 @ frame_needed = 1, uses_anonymous_args = 0 3590 @ link register save eliminated. 3591 0000 80B4 push {r7} 3592 .LCFI169: 3593 .cfi_def_cfa_offset 4 3594 .cfi_offset 7, -4 3595 0002 83B0 sub sp, sp, #12 3596 .LCFI170: 3597 .cfi_def_cfa_offset 16 3598 0004 00AF add r7, sp, #0 3599 .LCFI171: 3600 .cfi_def_cfa_register 7 3601 0006 7860 str r0, [r7, #4] 2289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_RxFifo1FullCallback could be implemented in the user 2294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** file 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3602 .loc 1 2296 1 3603 0008 00BF nop 3604 000a 0C37 adds r7, r7, #12 3605 .LCFI172: 3606 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 122 3607 000c BD46 mov sp, r7 3608 .LCFI173: 3609 .cfi_def_cfa_register 13 3610 @ sp needed 3611 000e 5DF8047B ldr r7, [sp], #4 3612 .LCFI174: 3613 .cfi_restore 7 3614 .cfi_def_cfa_offset 0 3615 0012 7047 bx lr 3616 .cfi_endproc 3617 .LFE264: 3619 .section .text.HAL_CAN_SleepCallback,"ax",%progbits 3620 .align 1 3621 .weak HAL_CAN_SleepCallback 3622 .syntax unified 3623 .thumb 3624 .thumb_func 3626 HAL_CAN_SleepCallback: 3627 .LFB265: 2297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Sleep callback. 2300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_SleepCallback(CAN_HandleTypeDef *hcan) 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3628 .loc 1 2305 1 3629 .cfi_startproc 3630 @ args = 0, pretend = 0, frame = 8 3631 @ frame_needed = 1, uses_anonymous_args = 0 3632 @ link register save eliminated. 3633 0000 80B4 push {r7} 3634 .LCFI175: 3635 .cfi_def_cfa_offset 4 3636 .cfi_offset 7, -4 3637 0002 83B0 sub sp, sp, #12 3638 .LCFI176: 3639 .cfi_def_cfa_offset 16 3640 0004 00AF add r7, sp, #0 3641 .LCFI177: 3642 .cfi_def_cfa_register 7 3643 0006 7860 str r0, [r7, #4] 2306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_SleepCallback could be implemented in the user file 2311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3644 .loc 1 2312 1 3645 0008 00BF nop 3646 000a 0C37 adds r7, r7, #12 3647 .LCFI178: 3648 .cfi_def_cfa_offset 4 3649 000c BD46 mov sp, r7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 123 3650 .LCFI179: 3651 .cfi_def_cfa_register 13 3652 @ sp needed 3653 000e 5DF8047B ldr r7, [sp], #4 3654 .LCFI180: 3655 .cfi_restore 7 3656 .cfi_def_cfa_offset 0 3657 0012 7047 bx lr 3658 .cfi_endproc 3659 .LFE265: 3661 .section .text.HAL_CAN_WakeUpFromRxMsgCallback,"ax",%progbits 3662 .align 1 3663 .weak HAL_CAN_WakeUpFromRxMsgCallback 3664 .syntax unified 3665 .thumb 3666 .thumb_func 3668 HAL_CAN_WakeUpFromRxMsgCallback: 3669 .LFB266: 2313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief WakeUp from Rx message callback. 2316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_WakeUpFromRxMsgCallback(CAN_HandleTypeDef *hcan) 2321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3670 .loc 1 2321 1 3671 .cfi_startproc 3672 @ args = 0, pretend = 0, frame = 8 3673 @ frame_needed = 1, uses_anonymous_args = 0 3674 @ link register save eliminated. 3675 0000 80B4 push {r7} 3676 .LCFI181: 3677 .cfi_def_cfa_offset 4 3678 .cfi_offset 7, -4 3679 0002 83B0 sub sp, sp, #12 3680 .LCFI182: 3681 .cfi_def_cfa_offset 16 3682 0004 00AF add r7, sp, #0 3683 .LCFI183: 3684 .cfi_def_cfa_register 7 3685 0006 7860 str r0, [r7, #4] 2322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_WakeUpFromRxMsgCallback could be implemented in the 2327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** user file 2328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3686 .loc 1 2329 1 3687 0008 00BF nop 3688 000a 0C37 adds r7, r7, #12 3689 .LCFI184: 3690 .cfi_def_cfa_offset 4 3691 000c BD46 mov sp, r7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 124 3692 .LCFI185: 3693 .cfi_def_cfa_register 13 3694 @ sp needed 3695 000e 5DF8047B ldr r7, [sp], #4 3696 .LCFI186: 3697 .cfi_restore 7 3698 .cfi_def_cfa_offset 0 3699 0012 7047 bx lr 3700 .cfi_endproc 3701 .LFE266: 3703 .section .text.HAL_CAN_ErrorCallback,"ax",%progbits 3704 .align 1 3705 .weak HAL_CAN_ErrorCallback 3706 .syntax unified 3707 .thumb 3708 .thumb_func 3710 HAL_CAN_ErrorCallback: 3711 .LFB267: 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Error CAN callback. 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval None 2336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** __weak void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan) 2338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3712 .loc 1 2338 1 3713 .cfi_startproc 3714 @ args = 0, pretend = 0, frame = 8 3715 @ frame_needed = 1, uses_anonymous_args = 0 3716 @ link register save eliminated. 3717 0000 80B4 push {r7} 3718 .LCFI187: 3719 .cfi_def_cfa_offset 4 3720 .cfi_offset 7, -4 3721 0002 83B0 sub sp, sp, #12 3722 .LCFI188: 3723 .cfi_def_cfa_offset 16 3724 0004 00AF add r7, sp, #0 3725 .LCFI189: 3726 .cfi_def_cfa_register 7 3727 0006 7860 str r0, [r7, #4] 2339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** UNUSED(hcan); 2341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** the HAL_CAN_ErrorCallback could be implemented in the user file 2344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3728 .loc 1 2345 1 3729 0008 00BF nop 3730 000a 0C37 adds r7, r7, #12 3731 .LCFI190: 3732 .cfi_def_cfa_offset 4 3733 000c BD46 mov sp, r7 3734 .LCFI191: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 125 3735 .cfi_def_cfa_register 13 3736 @ sp needed 3737 000e 5DF8047B ldr r7, [sp], #4 3738 .LCFI192: 3739 .cfi_restore 7 3740 .cfi_def_cfa_offset 0 3741 0012 7047 bx lr 3742 .cfi_endproc 3743 .LFE267: 3745 .section .text.HAL_CAN_GetState,"ax",%progbits 3746 .align 1 3747 .global HAL_CAN_GetState 3748 .syntax unified 3749 .thumb 3750 .thumb_func 3752 HAL_CAN_GetState: 3753 .LFB268: 2346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @} 2349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group6 Peripheral State and Error functions 2352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief CAN Peripheral State functions 2353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * 2354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @verbatim 2355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 2356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ##### Peripheral State and Error functions ##### 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** ============================================================================== 2358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** [..] 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** This subsection provides functions allowing to : 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_GetState() : Return the CAN state. 2361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_GetError() : Return the CAN error codes if any. 2362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (+) HAL_CAN_ResetError(): Reset the CAN error codes if any. 2363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** @endverbatim 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @{ 2366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Return the CAN state. 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL state 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef HAL_CAN_GetState(CAN_HandleTypeDef *hcan) 2375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3754 .loc 1 2375 1 3755 .cfi_startproc 3756 @ args = 0, pretend = 0, frame = 16 3757 @ frame_needed = 1, uses_anonymous_args = 0 3758 @ link register save eliminated. 3759 0000 80B4 push {r7} 3760 .LCFI193: 3761 .cfi_def_cfa_offset 4 3762 .cfi_offset 7, -4 3763 0002 85B0 sub sp, sp, #20 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 126 3764 .LCFI194: 3765 .cfi_def_cfa_offset 24 3766 0004 00AF add r7, sp, #0 3767 .LCFI195: 3768 .cfi_def_cfa_register 7 3769 0006 7860 str r0, [r7, #4] 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3770 .loc 1 2376 24 3771 0008 7B68 ldr r3, [r7, #4] 3772 000a 93F82030 ldrb r3, [r3, #32] 3773 000e FB73 strb r3, [r7, #15] 2377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 3774 .loc 1 2378 6 3775 0010 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 3776 0012 012B cmp r3, #1 3777 0014 02D0 beq .L171 3778 .loc 1 2378 38 discriminator 1 3779 0016 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 3780 0018 022B cmp r3, #2 3781 001a 12D1 bne .L172 3782 .L171: 2379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check sleep mode acknowledge flag */ 2382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 3783 .loc 1 2382 14 3784 001c 7B68 ldr r3, [r7, #4] 3785 001e 1B68 ldr r3, [r3] 3786 .loc 1 2382 24 3787 0020 5B68 ldr r3, [r3, #4] 3788 .loc 1 2382 30 3789 0022 03F00203 and r3, r3, #2 3790 .loc 1 2382 8 3791 0026 002B cmp r3, #0 3792 0028 02D0 beq .L173 2383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Sleep mode is active */ 2385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_ACTIVE; 3793 .loc 1 2385 13 3794 002a 0423 movs r3, #4 3795 002c FB73 strb r3, [r7, #15] 3796 002e 08E0 b .L172 3797 .L173: 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Check sleep mode request flag */ 2388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else if ((hcan->Instance->MCR & CAN_MCR_SLEEP) != 0U) 3798 .loc 1 2388 19 3799 0030 7B68 ldr r3, [r7, #4] 3800 0032 1B68 ldr r3, [r3] 3801 .loc 1 2388 29 3802 0034 1B68 ldr r3, [r3] 3803 .loc 1 2388 35 3804 0036 03F00203 and r3, r3, #2 3805 .loc 1 2388 13 3806 003a 002B cmp r3, #0 3807 003c 01D0 beq .L172 ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 127 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Sleep mode request is pending */ 2391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_PENDING; 3808 .loc 1 2391 13 3809 003e 0323 movs r3, #3 3810 0040 FB73 strb r3, [r7, #15] 3811 .L172: 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Neither sleep mode request nor sleep mode acknowledge */ 2396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return CAN state */ 2400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return state; 3812 .loc 1 2400 10 3813 0042 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3814 .loc 1 2401 1 3815 0044 1846 mov r0, r3 3816 0046 1437 adds r7, r7, #20 3817 .LCFI196: 3818 .cfi_def_cfa_offset 4 3819 0048 BD46 mov sp, r7 3820 .LCFI197: 3821 .cfi_def_cfa_register 13 3822 @ sp needed 3823 004a 5DF8047B ldr r7, [sp], #4 3824 .LCFI198: 3825 .cfi_restore 7 3826 .cfi_def_cfa_offset 0 3827 004e 7047 bx lr 3828 .cfi_endproc 3829 .LFE268: 3831 .section .text.HAL_CAN_GetError,"ax",%progbits 3832 .align 1 3833 .global HAL_CAN_GetError 3834 .syntax unified 3835 .thumb 3836 .thumb_func 3838 HAL_CAN_GetError: 3839 .LFB269: 2402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Return the CAN error code. 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval CAN Error Code 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** uint32_t HAL_CAN_GetError(CAN_HandleTypeDef *hcan) 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3840 .loc 1 2410 1 3841 .cfi_startproc 3842 @ args = 0, pretend = 0, frame = 8 3843 @ frame_needed = 1, uses_anonymous_args = 0 3844 @ link register save eliminated. ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 128 3845 0000 80B4 push {r7} 3846 .LCFI199: 3847 .cfi_def_cfa_offset 4 3848 .cfi_offset 7, -4 3849 0002 83B0 sub sp, sp, #12 3850 .LCFI200: 3851 .cfi_def_cfa_offset 16 3852 0004 00AF add r7, sp, #0 3853 .LCFI201: 3854 .cfi_def_cfa_register 7 3855 0006 7860 str r0, [r7, #4] 2411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return CAN error code */ 2412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return hcan->ErrorCode; 3856 .loc 1 2412 14 3857 0008 7B68 ldr r3, [r7, #4] 3858 000a 5B6A ldr r3, [r3, #36] 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3859 .loc 1 2413 1 3860 000c 1846 mov r0, r3 3861 000e 0C37 adds r7, r7, #12 3862 .LCFI202: 3863 .cfi_def_cfa_offset 4 3864 0010 BD46 mov sp, r7 3865 .LCFI203: 3866 .cfi_def_cfa_register 13 3867 @ sp needed 3868 0012 5DF8047B ldr r7, [sp], #4 3869 .LCFI204: 3870 .cfi_restore 7 3871 .cfi_def_cfa_offset 0 3872 0016 7047 bx lr 3873 .cfi_endproc 3874 .LFE269: 3876 .section .text.HAL_CAN_ResetError,"ax",%progbits 3877 .align 1 3878 .global HAL_CAN_ResetError 3879 .syntax unified 3880 .thumb 3881 .thumb_func 3883 HAL_CAN_ResetError: 3884 .LFB270: 2414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /** 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @brief Reset the CAN error code. 2417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * the configuration information for the specified CAN. 2419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** * @retval HAL status 2420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** */ 2421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ResetError(CAN_HandleTypeDef *hcan) 2422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 3885 .loc 1 2422 1 3886 .cfi_startproc 3887 @ args = 0, pretend = 0, frame = 16 3888 @ frame_needed = 1, uses_anonymous_args = 0 3889 @ link register save eliminated. 3890 0000 80B4 push {r7} 3891 .LCFI205: ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 129 3892 .cfi_def_cfa_offset 4 3893 .cfi_offset 7, -4 3894 0002 85B0 sub sp, sp, #20 3895 .LCFI206: 3896 .cfi_def_cfa_offset 24 3897 0004 00AF add r7, sp, #0 3898 .LCFI207: 3899 .cfi_def_cfa_register 7 3900 0006 7860 str r0, [r7, #4] 2423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 3901 .loc 1 2423 21 3902 0008 0023 movs r3, #0 3903 000a FB73 strb r3, [r7, #15] 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3904 .loc 1 2424 24 3905 000c 7B68 ldr r3, [r7, #4] 3906 000e 93F82030 ldrb r3, [r3, #32] 3907 0012 BB73 strb r3, [r7, #14] 2425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 3908 .loc 1 2426 6 3909 0014 BB7B ldrb r3, [r7, #14] @ zero_extendqisi2 3910 0016 012B cmp r3, #1 3911 0018 02D0 beq .L178 3912 .loc 1 2426 38 discriminator 1 3913 001a BB7B ldrb r3, [r7, #14] @ zero_extendqisi2 3914 001c 022B cmp r3, #2 3915 001e 03D1 bne .L179 3916 .L178: 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Reset CAN error code */ 2430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode = 0U; 3917 .loc 1 2430 21 3918 0020 7B68 ldr r3, [r7, #4] 3919 0022 0022 movs r2, #0 3920 0024 5A62 str r2, [r3, #36] 3921 0026 07E0 b .L180 3922 .L179: 2431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 2432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** else 2433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** { 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Update error code */ 2435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 3923 .loc 1 2435 21 3924 0028 7B68 ldr r3, [r7, #4] 3925 002a 5B6A ldr r3, [r3, #36] 3926 002c 43F48022 orr r2, r3, #262144 3927 0030 7B68 ldr r3, [r7, #4] 3928 0032 5A62 str r2, [r3, #36] 2436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** status = HAL_ERROR; 3929 .loc 1 2437 12 3930 0034 0123 movs r3, #1 3931 0036 FB73 strb r3, [r7, #15] 3932 .L180: 2438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 130 2439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** 2440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** /* Return the status */ 2441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** return status; 3933 .loc 1 2441 10 3934 0038 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c **** } 3935 .loc 1 2442 1 3936 003a 1846 mov r0, r3 3937 003c 1437 adds r7, r7, #20 3938 .LCFI208: 3939 .cfi_def_cfa_offset 4 3940 003e BD46 mov sp, r7 3941 .LCFI209: 3942 .cfi_def_cfa_register 13 3943 @ sp needed 3944 0040 5DF8047B ldr r7, [sp], #4 3945 .LCFI210: 3946 .cfi_restore 7 3947 .cfi_def_cfa_offset 0 3948 0044 7047 bx lr 3949 .cfi_endproc 3950 .LFE270: 3952 .text 3953 .Letext0: 3954 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 3955 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 3956 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f405xx.h" 3957 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h" 3958 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h" 3959 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h" ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 131 DEFINED SYMBOLS *ABS*:00000000 stm32f4xx_hal_can.c C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:20 .text.HAL_CAN_Init:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:26 .text.HAL_CAN_Init:00000000 HAL_CAN_Init C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:429 .text.HAL_CAN_MspInit:00000000 HAL_CAN_MspInit C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:352 .text.HAL_CAN_DeInit:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:358 .text.HAL_CAN_DeInit:00000000 HAL_CAN_DeInit C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:921 .text.HAL_CAN_Stop:00000000 HAL_CAN_Stop C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:471 .text.HAL_CAN_MspDeInit:00000000 HAL_CAN_MspDeInit C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:423 .text.HAL_CAN_MspInit:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:465 .text.HAL_CAN_MspDeInit:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:507 .text.HAL_CAN_ConfigFilter:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:513 .text.HAL_CAN_ConfigFilter:00000000 HAL_CAN_ConfigFilter C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:797 .text.HAL_CAN_ConfigFilter:000001bc $d C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:802 .text.HAL_CAN_Start:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:808 .text.HAL_CAN_Start:00000000 HAL_CAN_Start C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:915 .text.HAL_CAN_Stop:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1032 .text.HAL_CAN_RequestSleep:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1038 .text.HAL_CAN_RequestSleep:00000000 HAL_CAN_RequestSleep C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1108 .text.HAL_CAN_WakeUp:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1114 .text.HAL_CAN_WakeUp:00000000 HAL_CAN_WakeUp C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1220 .text.HAL_CAN_WakeUp:00000080 $d C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1225 .text.HAL_CAN_IsSleepActive:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1231 .text.HAL_CAN_IsSleepActive:00000000 HAL_CAN_IsSleepActive C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1299 .text.HAL_CAN_AddTxMessage:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1305 .text.HAL_CAN_AddTxMessage:00000000 HAL_CAN_AddTxMessage C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1591 .text.HAL_CAN_AbortTxRequest:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1597 .text.HAL_CAN_AbortTxRequest:00000000 HAL_CAN_AbortTxRequest C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1705 .text.HAL_CAN_GetTxMailboxesFreeLevel:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1711 .text.HAL_CAN_GetTxMailboxesFreeLevel:00000000 HAL_CAN_GetTxMailboxesFreeLevel C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1810 .text.HAL_CAN_IsTxMessagePending:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1816 .text.HAL_CAN_IsTxMessagePending:00000000 HAL_CAN_IsTxMessagePending C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1891 .text.HAL_CAN_GetTxTimestamp:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1897 .text.HAL_CAN_GetTxTimestamp:00000000 HAL_CAN_GetTxTimestamp C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1991 .text.HAL_CAN_GetRxMessage:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:1997 .text.HAL_CAN_GetRxMessage:00000000 HAL_CAN_GetRxMessage C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:2381 .text.HAL_CAN_GetRxFifoFillLevel:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:2387 .text.HAL_CAN_GetRxFifoFillLevel:00000000 HAL_CAN_GetRxFifoFillLevel C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:2465 .text.HAL_CAN_ActivateNotification:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:2471 .text.HAL_CAN_ActivateNotification:00000000 HAL_CAN_ActivateNotification C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:2543 .text.HAL_CAN_DeactivateNotification:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:2549 .text.HAL_CAN_DeactivateNotification:00000000 HAL_CAN_DeactivateNotification C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:2622 .text.HAL_CAN_IRQHandler:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:2628 .text.HAL_CAN_IRQHandler:00000000 HAL_CAN_IRQHandler C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3206 .text.HAL_CAN_TxMailbox0CompleteCallback:00000000 HAL_CAN_TxMailbox0CompleteCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3332 .text.HAL_CAN_TxMailbox0AbortCallback:00000000 HAL_CAN_TxMailbox0AbortCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3248 .text.HAL_CAN_TxMailbox1CompleteCallback:00000000 HAL_CAN_TxMailbox1CompleteCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3374 .text.HAL_CAN_TxMailbox1AbortCallback:00000000 HAL_CAN_TxMailbox1AbortCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3290 .text.HAL_CAN_TxMailbox2CompleteCallback:00000000 HAL_CAN_TxMailbox2CompleteCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3416 .text.HAL_CAN_TxMailbox2AbortCallback:00000000 HAL_CAN_TxMailbox2AbortCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3500 .text.HAL_CAN_RxFifo0FullCallback:00000000 HAL_CAN_RxFifo0FullCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3458 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 HAL_CAN_RxFifo0MsgPendingCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3584 .text.HAL_CAN_RxFifo1FullCallback:00000000 HAL_CAN_RxFifo1FullCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3542 .text.HAL_CAN_RxFifo1MsgPendingCallback:00000000 HAL_CAN_RxFifo1MsgPendingCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3626 .text.HAL_CAN_SleepCallback:00000000 HAL_CAN_SleepCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3668 .text.HAL_CAN_WakeUpFromRxMsgCallback:00000000 HAL_CAN_WakeUpFromRxMsgCallback C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3710 .text.HAL_CAN_ErrorCallback:00000000 HAL_CAN_ErrorCallback ARM GAS C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s page 132 C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3200 .text.HAL_CAN_TxMailbox0CompleteCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3242 .text.HAL_CAN_TxMailbox1CompleteCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3284 .text.HAL_CAN_TxMailbox2CompleteCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3326 .text.HAL_CAN_TxMailbox0AbortCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3368 .text.HAL_CAN_TxMailbox1AbortCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3410 .text.HAL_CAN_TxMailbox2AbortCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3452 .text.HAL_CAN_RxFifo0MsgPendingCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3494 .text.HAL_CAN_RxFifo0FullCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3536 .text.HAL_CAN_RxFifo1MsgPendingCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3578 .text.HAL_CAN_RxFifo1FullCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3620 .text.HAL_CAN_SleepCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3662 .text.HAL_CAN_WakeUpFromRxMsgCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3704 .text.HAL_CAN_ErrorCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3746 .text.HAL_CAN_GetState:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3752 .text.HAL_CAN_GetState:00000000 HAL_CAN_GetState C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3832 .text.HAL_CAN_GetError:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3838 .text.HAL_CAN_GetError:00000000 HAL_CAN_GetError C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3877 .text.HAL_CAN_ResetError:00000000 $t C:\Users\10728\AppData\Local\Temp\cc8XaJQR.s:3883 .text.HAL_CAN_ResetError:00000000 HAL_CAN_ResetError UNDEFINED SYMBOLS HAL_GetTick