ARM GAS /tmp/ccXma6Rl.s page 1 1 .cpu cortex-m3 2 .eabi_attribute 20, 1 3 .eabi_attribute 21, 1 4 .eabi_attribute 23, 3 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 1 9 .eabi_attribute 34, 1 10 .eabi_attribute 18, 4 11 .file "stm32f1xx_hal_can.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.HAL_CAN_MspInit,"ax",%progbits 16 .align 1 17 .weak HAL_CAN_MspInit 18 .arch armv7-m 19 .syntax unified 20 .thumb 21 .thumb_func 22 .fpu softvfp 24 HAL_CAN_MspInit: 25 .LVL0: 26 .LFB67: 27 .file 1 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c" 1:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ****************************************************************************** 3:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @file stm32f1xx_hal_can.c 4:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @author MCD Application Team 5:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief CAN HAL module driver. 6:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * functionalities of the Controller Area Network (CAN) peripheral: 8:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Configuration functions 10:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Control functions 11:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Interrupts management 12:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Callbacks functions 13:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Peripheral State and Error functions 14:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 15:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim 16:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 17:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### How to use this driver ##### 18:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 19:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] 20:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Initialize the CAN low level resources by implementing the 21:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_MspInit(): 22:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Enable the CAN interface clock using __HAL_RCC_CANx_CLK_ENABLE() 23:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Configure CAN pins 24:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) Enable the clock for the CAN GPIOs 25:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) Configure CAN pins as alternate function open-drain 26:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) In case of using interrupts (e.g. HAL_CAN_ActivateNotification()) 27:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) Configure the CAN interrupt priority using 28:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_NVIC_SetPriority() 29:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) Enable the CAN IRQ handler using HAL_NVIC_EnableIRQ() 30:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) In CAN IRQ handler, call HAL_CAN_IRQHandler() 31:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ARM GAS /tmp/ccXma6Rl.s page 2 32:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Initialize the CAN peripheral using HAL_CAN_Init() function. This 33:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** function resorts to HAL_CAN_MspInit() for low-level initialization. 34:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 35:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Configure the reception filters using the following configuration 36:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** functions: 37:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_ConfigFilter() 38:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 39:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Start the CAN module using HAL_CAN_Start() function. At this level 40:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the node is active on the bus: it receive messages, and can send 41:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** messages. 42:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 43:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) To manage messages transmission, the following Tx control functions 44:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can be used: 45:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_AddTxMessage() to request transmission of a new 46:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** message. 47:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_AbortTxRequest() to abort transmission of a pending 48:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** message. 49:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_GetTxMailboxesFreeLevel() to get the number of free Tx 50:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** mailboxes. 51:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_IsTxMessagePending() to check if a message is pending 52:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** in a Tx mailbox. 53:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_GetTxTimestamp() to get the timestamp of Tx message 54:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** sent, if time triggered communication mode is enabled. 55:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 56:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) When a message is received into the CAN Rx FIFOs, it can be retrieved 57:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** using the HAL_CAN_GetRxMessage() function. The function 58:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_GetRxFifoFillLevel() allows to know how many Rx message are 59:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** stored in the Rx Fifo. 60:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 61:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Calling the HAL_CAN_Stop() function stops the CAN module. 62:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 63:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) The deinitialization is achieved with HAL_CAN_DeInit() function. 64:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 65:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 66:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *** Polling mode operation *** 67:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================== 68:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] 69:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Reception: 70:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Monitor reception of message using HAL_CAN_GetRxFifoFillLevel() 71:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** until at least one message is received. 72:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Then get the message using HAL_CAN_GetRxMessage(). 73:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 74:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Transmission: 75:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Monitor the Tx mailboxes availability until at least one Tx 76:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** mailbox is free, using HAL_CAN_GetTxMailboxesFreeLevel(). 77:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Then request transmission of a message using 78:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_AddTxMessage(). 79:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 80:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 81:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *** Interrupt mode operation *** 82:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ================================ 83:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] 84:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Notifications are activated using HAL_CAN_ActivateNotification() 85:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** function. Then, the process can be controlled through the 86:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** available user callbacks: HAL_CAN_xxxCallback(), using same APIs 87:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_GetRxMessage() and HAL_CAN_AddTxMessage(). 88:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ARM GAS /tmp/ccXma6Rl.s page 3 89:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Notifications can be deactivated using 90:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_DeactivateNotification() function. 91:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 92:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Special care should be taken for CAN_IT_RX_FIFO0_MSG_PENDING and 93:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CAN_IT_RX_FIFO1_MSG_PENDING notifications. These notifications trig 94:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the callbacks HAL_CAN_RxFIFO0MsgPendingCallback() and 95:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFIFO1MsgPendingCallback(). User has two possible options 96:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** here. 97:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Directly get the Rx message in the callback, using 98:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_GetRxMessage(). 99:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Or deactivate the notification in the callback without 100:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** getting the Rx message. The Rx message can then be got later 101:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** using HAL_CAN_GetRxMessage(). Once the Rx message have been 102:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** read, the notification can be activated again. 103:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 104:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 105:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *** Sleep mode *** 106:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ================== 107:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] 108:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) The CAN peripheral can be put in sleep mode (low power), using 109:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RequestSleep(). The sleep mode will be entered as soon as the 110:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** current CAN activity (transmission or reception of a CAN frame) will 111:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** be completed. 112:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 113:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) A notification can be activated to be informed when the sleep mode 114:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** will be entered. 115:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 116:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) It can be checked if the sleep mode is entered using 117:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_IsSleepActive(). 118:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Note that the CAN state (accessible from the API HAL_CAN_GetState()) 119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** is HAL_CAN_STATE_SLEEP_PENDING as soon as the sleep mode request is 120:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** submitted (the sleep mode is not yet entered), and become 121:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_STATE_SLEEP_ACTIVE when the sleep mode is effective. 122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 123:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) The wake-up from sleep mode can be trigged by two ways: 124:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Using HAL_CAN_WakeUp(). When returning from this function, 125:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the sleep mode is exited (if return status is HAL_OK). 126:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) When a start of Rx CAN frame is detected by the CAN peripheral, 127:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if automatic wake up mode is enabled. 128:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 129:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *** Callback registration *** 130:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================= 131:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 132:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** The compilation define USE_HAL_CAN_REGISTER_CALLBACKS when set to 1 133:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** allows the user to configure dynamically the driver callbacks. 134:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Use Function @ref HAL_CAN_RegisterCallback() to register an interrupt callback. 135:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 136:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Function @ref HAL_CAN_RegisterCallback() allows to register following callbacks: 137:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback. 138:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback. 139:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback. 140:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback. 141:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback. 142:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback. 143:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback. 144:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback. 145:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback. ARM GAS /tmp/ccXma6Rl.s page 4 146:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback. 147:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) SleepCallback : Sleep Callback. 148:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback. 149:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) ErrorCallback : Error Callback. 150:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) MspInitCallback : CAN MspInit. 151:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit. 152:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 153:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** and a pointer to the user callback function. 154:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 155:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Use function @ref HAL_CAN_UnRegisterCallback() to reset a callback to the default 156:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** weak function. 157:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @ref HAL_CAN_UnRegisterCallback takes as parameters the HAL peripheral handle, 158:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** and the Callback ID. 159:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** This function allows to reset following callbacks: 160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback. 161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback. 162:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback. 163:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback. 164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback. 165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback. 166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback. 167:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback. 168:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback. 169:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback. 170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) SleepCallback : Sleep Callback. 171:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback. 172:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) ErrorCallback : Error Callback. 173:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) MspInitCallback : CAN MspInit. 174:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit. 175:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 176:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** By default, after the @ref HAL_CAN_Init() and when the state is HAL_CAN_STATE_RESET, 177:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** all callbacks are set to the corresponding weak functions: 178:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** example @ref HAL_CAN_ErrorCallback(). 179:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Exception done for MspInit and MspDeInit functions that are 180:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** reset to the legacy weak function in the @ref HAL_CAN_Init()/ @ref HAL_CAN_DeInit() only when 181:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** these callbacks are null (not registered beforehand). 182:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if not, MspInit or MspDeInit are not null, the @ref HAL_CAN_Init()/ @ref HAL_CAN_DeInit() 183:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) 184:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 185:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Callbacks can be registered/unregistered in HAL_CAN_STATE_READY state only. 186:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Exception done MspInit/MspDeInit that can be registered/unregistered 187:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** in HAL_CAN_STATE_READY or HAL_CAN_STATE_RESET state, 188:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 189:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** In that case first register the MspInit/MspDeInit user callbacks 190:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** using @ref HAL_CAN_RegisterCallback() before calling @ref HAL_CAN_DeInit() 191:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** or @ref HAL_CAN_Init() function. 192:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** When The compilation define USE_HAL_CAN_REGISTER_CALLBACKS is set to 0 or 194:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** not defined, the callback registration feature is not available and all callbacks 195:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** are set to the corresponding weak functions. 196:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 197:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim 198:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ****************************************************************************** 199:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @attention 200:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 201:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *

© Copyright (c) 2016 STMicroelectronics. 202:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * All rights reserved.

ARM GAS /tmp/ccXma6Rl.s page 5 203:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 204:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This software component is licensed by ST under BSD 3-Clause license, 205:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the "License"; You may not use this file except in compliance with the 206:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * License. You may obtain a copy of the License at: 207:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * opensource.org/licenses/BSD-3-Clause 208:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 209:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ****************************************************************************** 210:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 211:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 212:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Includes ------------------------------------------------------------------*/ 213:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #include "stm32f1xx_hal.h" 214:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 215:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @addtogroup STM32F1xx_HAL_Driver 216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 217:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 218:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 219:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if defined(CAN1) 220:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 221:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN CAN 222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief CAN driver modules 223:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 224:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 225:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 226:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #ifdef HAL_CAN_MODULE_ENABLED 227:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 228:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #ifdef HAL_CAN_LEGACY_MODULE_ENABLED 229:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #error "The CAN driver cannot be used with its legacy, Please enable only one CAN module at once" 230:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif 231:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 232:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private typedef -----------------------------------------------------------*/ 233:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private define ------------------------------------------------------------*/ 234:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Private_Constants CAN Private Constants 235:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 236:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 237:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #define CAN_TIMEOUT_VALUE 10U 238:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 239:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @} 240:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 241:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private macro -------------------------------------------------------------*/ 242:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private variables ---------------------------------------------------------*/ 243:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private function prototypes -----------------------------------------------*/ 244:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Exported functions --------------------------------------------------------*/ 245:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 246:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions CAN Exported Functions 247:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 248:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 249:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 250:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group1 Initialization and de-initialization functions 251:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Initialization and Configuration functions 252:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 253:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim 254:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 255:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Initialization and de-initialization functions ##### 256:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 257:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] This section provides functions allowing to: 258:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_Init : Initialize and configure the CAN. 259:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_DeInit : De-initialize the CAN. ARM GAS /tmp/ccXma6Rl.s page 6 260:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_MspInit : Initialize the CAN MSP. 261:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_MspDeInit : DeInitialize the CAN MSP. 262:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 263:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim 264:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 265:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 266:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 267:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Initializes the CAN peripheral according to the specified 269:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * parameters in the CAN_InitStruct. 270:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 271:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 272:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef *hcan) 275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart; 277:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 278:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check CAN handle */ 279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan == NULL) 280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 282:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 283:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */ 285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance)); 286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); 287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff)); 288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp)); 289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission)); 290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked)); 291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority)); 292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode)); 293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth)); 294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1)); 295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); 296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler)); 297:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 298:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 299:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET) 300:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 301:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset callbacks to legacy functions */ 302:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; /* Legacy weak RxFifo0M 303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; /* Legacy weak RxFifo0F 304:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; /* Legacy weak RxFifo1M 305:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; /* Legacy weak RxFifo1F 306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; /* Legacy weak TxMailbo 307:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; /* Legacy weak TxMailbo 308:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; /* Legacy weak TxMailbo 309:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; /* Legacy weak TxMailbo 310:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; /* Legacy weak TxMailbo 311:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; /* Legacy weak TxMailbo 312:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback; /* Legacy weak SleepCal 313:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; /* Legacy weak WakeUpFr 314:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback; /* Legacy weak ErrorCal 315:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 316:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->MspInitCallback == NULL) ARM GAS /tmp/ccXma6Rl.s page 7 317:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 318:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; /* Legacy weak MspInit */ 319:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 321:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */ 322:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback(hcan); 323:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 325:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET) 327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 328:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */ 329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_MspInit(hcan); 330:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 331:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */ 332:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 333:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Exit from sleep mode */ 334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 335:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 336:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get tick */ 337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** tickstart = HAL_GetTick(); 338:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 339:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Sleep mode leave acknowledge */ 340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */ 348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 349:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 352:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 353:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request initialisation */ 355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); 356:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get tick */ 358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** tickstart = HAL_GetTick(); 359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wait initialisation acknowledge */ 361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U) 362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 364:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 367:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 368:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */ 369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 370:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 372:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 373:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } ARM GAS /tmp/ccXma6Rl.s page 8 374:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 375:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the time triggered communication mode */ 376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.TimeTriggeredMode == ENABLE) 377:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TTCM); 379:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 380:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TTCM); 383:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 384:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 385:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the automatic bus-off management */ 386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.AutoBusOff == ENABLE) 387:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_ABOM); 389:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 391:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_ABOM); 393:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the automatic wake-up mode */ 396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.AutoWakeUp == ENABLE) 397:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_AWUM); 399:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 401:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_AWUM); 403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 404:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 405:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the automatic retransmission */ 406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.AutoRetransmission == ENABLE) 407:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_NART); 409:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 410:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_NART); 413:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 414:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 415:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the receive FIFO locked mode */ 416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.ReceiveFifoLocked == ENABLE) 417:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RFLM); 419:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 420:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 421:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 422:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_RFLM); 423:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 425:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the transmit FIFO priority */ 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.TransmitFifoPriority == ENABLE) 427:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 428:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TXFP); 429:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 430:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else ARM GAS /tmp/ccXma6Rl.s page 9 431:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TXFP); 433:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 434:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 435:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the bit timing register */ 436:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** WRITE_REG(hcan->Instance->BTR, (uint32_t)(hcan->Init.Mode | 437:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Init.SyncJumpWidth | 438:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Init.TimeSeg1 | 439:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Init.TimeSeg2 | 440:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (hcan->Init.Prescaler - 1U))); 441:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 442:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Initialize the error code */ 443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE; 444:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 445:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Initialize the CAN state */ 446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY; 447:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 448:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 452:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 453:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Deinitializes the CAN peripheral registers to their default 454:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * reset values. 455:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 456:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 457:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 458:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 459:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeInit(CAN_HandleTypeDef *hcan) 460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 461:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check CAN handle */ 462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan == NULL) 463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 464:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 465:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 466:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */ 468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance)); 469:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Stop the CAN module */ 471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (void)HAL_CAN_Stop(hcan); 472:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 473:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 474:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->MspDeInitCallback == NULL) 475:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 476:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; /* Legacy weak MspDeInit */ 477:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 478:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 479:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */ 480:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback(hcan); 481:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 482:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 483:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */ 484:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_MspDeInit(hcan); 485:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */ 486:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 487:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset the CAN peripheral */ ARM GAS /tmp/ccXma6Rl.s page 10 488:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RESET); 489:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 490:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset the CAN ErrorCode */ 491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE; 492:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 493:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */ 494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_RESET; 495:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 496:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 499:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 500:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 501:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Initializes the CAN MSP. 502:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 503:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 504:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 505:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 506:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan) 507:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 28 .loc 1 507 1 view -0 29 .cfi_startproc 30 @ args = 0, pretend = 0, frame = 0 31 @ frame_needed = 0, uses_anonymous_args = 0 32 @ link register save eliminated. 508:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 509:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 33 .loc 1 509 3 view .LVU1 510:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 511:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 512:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_MspInit could be implemented in the user file 513:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 514:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 34 .loc 1 514 1 is_stmt 0 view .LVU2 35 0000 7047 bx lr 36 .cfi_endproc 37 .LFE67: 39 .section .text.HAL_CAN_Init,"ax",%progbits 40 .align 1 41 .global HAL_CAN_Init 42 .syntax unified 43 .thumb 44 .thumb_func 45 .fpu softvfp 47 HAL_CAN_Init: 48 .LVL1: 49 .LFB65: 275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart; 50 .loc 1 275 1 is_stmt 1 view -0 51 .cfi_startproc 52 @ args = 0, pretend = 0, frame = 0 53 @ frame_needed = 0, uses_anonymous_args = 0 276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 54 .loc 1 276 3 view .LVU4 279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 55 .loc 1 279 3 view .LVU5 279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { ARM GAS /tmp/ccXma6Rl.s page 11 56 .loc 1 279 6 is_stmt 0 view .LVU6 57 0000 0028 cmp r0, #0 58 0002 00F0A180 beq .L21 275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart; 59 .loc 1 275 1 view .LVU7 60 0006 38B5 push {r3, r4, r5, lr} 61 .LCFI0: 62 .cfi_def_cfa_offset 16 63 .cfi_offset 3, -16 64 .cfi_offset 4, -12 65 .cfi_offset 5, -8 66 .cfi_offset 14, -4 67 0008 0446 mov r4, r0 285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode)); 68 .loc 1 285 3 is_stmt 1 view .LVU8 286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff)); 69 .loc 1 286 3 view .LVU9 287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp)); 70 .loc 1 287 3 view .LVU10 288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission)); 71 .loc 1 288 3 view .LVU11 289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked)); 72 .loc 1 289 3 view .LVU12 290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority)); 73 .loc 1 290 3 view .LVU13 291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode)); 74 .loc 1 291 3 view .LVU14 292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth)); 75 .loc 1 292 3 view .LVU15 293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1)); 76 .loc 1 293 3 view .LVU16 294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2)); 77 .loc 1 294 3 view .LVU17 295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler)); 78 .loc 1 295 3 view .LVU18 296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 79 .loc 1 296 3 view .LVU19 326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 80 .loc 1 326 3 view .LVU20 326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 81 .loc 1 326 11 is_stmt 0 view .LVU21 82 000a 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 83 .loc 1 326 6 view .LVU22 84 000e D3B1 cbz r3, .L26 85 .LVL2: 86 .L4: 334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 87 .loc 1 334 3 is_stmt 1 view .LVU23 88 0010 2268 ldr r2, [r4] 89 0012 1368 ldr r3, [r2] 90 0014 23F00203 bic r3, r3, #2 91 0018 1360 str r3, [r2] 337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 92 .loc 1 337 3 view .LVU24 337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 93 .loc 1 337 15 is_stmt 0 view .LVU25 ARM GAS /tmp/ccXma6Rl.s page 12 94 001a FFF7FEFF bl HAL_GetTick 95 .LVL3: 96 001e 0546 mov r5, r0 97 .LVL4: 340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 98 .loc 1 340 3 is_stmt 1 view .LVU26 99 .L5: 340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 100 .loc 1 340 15 is_stmt 0 view .LVU27 101 0020 2368 ldr r3, [r4] 340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 102 .loc 1 340 25 view .LVU28 103 0022 5A68 ldr r2, [r3, #4] 340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 104 .loc 1 340 9 view .LVU29 105 0024 12F0020F tst r2, #2 106 0028 10D0 beq .L27 342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 107 .loc 1 342 5 is_stmt 1 view .LVU30 342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 108 .loc 1 342 10 is_stmt 0 view .LVU31 109 002a FFF7FEFF bl HAL_GetTick 110 .LVL5: 342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 111 .loc 1 342 24 view .LVU32 112 002e 401B subs r0, r0, r5 342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 113 .loc 1 342 8 view .LVU33 114 0030 0A28 cmp r0, #10 115 0032 F5D9 bls .L5 345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 116 .loc 1 345 7 is_stmt 1 view .LVU34 345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 117 .loc 1 345 23 is_stmt 0 view .LVU35 118 0034 636A ldr r3, [r4, #36] 119 0036 43F40033 orr r3, r3, #131072 120 003a 6362 str r3, [r4, #36] 348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 121 .loc 1 348 7 is_stmt 1 view .LVU36 348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 122 .loc 1 348 19 is_stmt 0 view .LVU37 123 003c 0523 movs r3, #5 124 003e 84F82030 strb r3, [r4, #32] 350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 125 .loc 1 350 7 is_stmt 1 view .LVU38 350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 126 .loc 1 350 14 is_stmt 0 view .LVU39 127 0042 0120 movs r0, #1 128 .L3: 450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 129 .loc 1 450 1 view .LVU40 130 0044 38BD pop {r3, r4, r5, pc} 131 .LVL6: 132 .L26: 329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 133 .loc 1 329 5 is_stmt 1 view .LVU41 134 0046 FFF7FEFF bl HAL_CAN_MspInit ARM GAS /tmp/ccXma6Rl.s page 13 135 .LVL7: 329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 136 .loc 1 329 5 is_stmt 0 view .LVU42 137 004a E1E7 b .L4 138 .LVL8: 139 .L27: 355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 140 .loc 1 355 3 is_stmt 1 view .LVU43 141 004c 1A68 ldr r2, [r3] 142 004e 42F00102 orr r2, r2, #1 143 0052 1A60 str r2, [r3] 358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 144 .loc 1 358 3 view .LVU44 358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 145 .loc 1 358 15 is_stmt 0 view .LVU45 146 0054 FFF7FEFF bl HAL_GetTick 147 .LVL9: 148 0058 0546 mov r5, r0 149 .LVL10: 361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 150 .loc 1 361 3 is_stmt 1 view .LVU46 151 .L7: 361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 152 .loc 1 361 15 is_stmt 0 view .LVU47 153 005a 2368 ldr r3, [r4] 361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 154 .loc 1 361 25 view .LVU48 155 005c 5A68 ldr r2, [r3, #4] 361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 156 .loc 1 361 9 view .LVU49 157 005e 12F0010F tst r2, #1 158 0062 0DD1 bne .L28 363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 159 .loc 1 363 5 is_stmt 1 view .LVU50 363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 160 .loc 1 363 10 is_stmt 0 view .LVU51 161 0064 FFF7FEFF bl HAL_GetTick 162 .LVL11: 363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 163 .loc 1 363 24 view .LVU52 164 0068 401B subs r0, r0, r5 363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 165 .loc 1 363 8 view .LVU53 166 006a 0A28 cmp r0, #10 167 006c F5D9 bls .L7 366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 168 .loc 1 366 7 is_stmt 1 view .LVU54 366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 169 .loc 1 366 23 is_stmt 0 view .LVU55 170 006e 636A ldr r3, [r4, #36] 171 0070 43F40033 orr r3, r3, #131072 172 0074 6362 str r3, [r4, #36] 369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 173 .loc 1 369 7 is_stmt 1 view .LVU56 369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 174 .loc 1 369 19 is_stmt 0 view .LVU57 175 0076 0523 movs r3, #5 ARM GAS /tmp/ccXma6Rl.s page 14 176 0078 84F82030 strb r3, [r4, #32] 371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 177 .loc 1 371 7 is_stmt 1 view .LVU58 371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 178 .loc 1 371 14 is_stmt 0 view .LVU59 179 007c 0120 movs r0, #1 180 007e E1E7 b .L3 181 .L28: 376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 182 .loc 1 376 3 is_stmt 1 view .LVU60 376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 183 .loc 1 376 17 is_stmt 0 view .LVU61 184 0080 227E ldrb r2, [r4, #24] @ zero_extendqisi2 376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 185 .loc 1 376 6 view .LVU62 186 0082 012A cmp r2, #1 187 0084 3DD0 beq .L29 382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 188 .loc 1 382 5 is_stmt 1 view .LVU63 189 0086 1A68 ldr r2, [r3] 190 0088 22F08002 bic r2, r2, #128 191 008c 1A60 str r2, [r3] 192 .L10: 386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 193 .loc 1 386 3 view .LVU64 386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 194 .loc 1 386 17 is_stmt 0 view .LVU65 195 008e 637E ldrb r3, [r4, #25] @ zero_extendqisi2 386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 196 .loc 1 386 6 view .LVU66 197 0090 012B cmp r3, #1 198 0092 3BD0 beq .L30 392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 199 .loc 1 392 5 is_stmt 1 view .LVU67 200 0094 2268 ldr r2, [r4] 201 0096 1368 ldr r3, [r2] 202 0098 23F04003 bic r3, r3, #64 203 009c 1360 str r3, [r2] 204 .L12: 396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 205 .loc 1 396 3 view .LVU68 396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 206 .loc 1 396 17 is_stmt 0 view .LVU69 207 009e A37E ldrb r3, [r4, #26] @ zero_extendqisi2 396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 208 .loc 1 396 6 view .LVU70 209 00a0 012B cmp r3, #1 210 00a2 39D0 beq .L31 402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 211 .loc 1 402 5 is_stmt 1 view .LVU71 212 00a4 2268 ldr r2, [r4] 213 00a6 1368 ldr r3, [r2] 214 00a8 23F02003 bic r3, r3, #32 215 00ac 1360 str r3, [r2] 216 .L14: 406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 217 .loc 1 406 3 view .LVU72 ARM GAS /tmp/ccXma6Rl.s page 15 406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 218 .loc 1 406 17 is_stmt 0 view .LVU73 219 00ae E37E ldrb r3, [r4, #27] @ zero_extendqisi2 406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 220 .loc 1 406 6 view .LVU74 221 00b0 012B cmp r3, #1 222 00b2 37D0 beq .L32 412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 223 .loc 1 412 5 is_stmt 1 view .LVU75 224 00b4 2268 ldr r2, [r4] 225 00b6 1368 ldr r3, [r2] 226 00b8 43F01003 orr r3, r3, #16 227 00bc 1360 str r3, [r2] 228 .L16: 416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 229 .loc 1 416 3 view .LVU76 416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 230 .loc 1 416 17 is_stmt 0 view .LVU77 231 00be 237F ldrb r3, [r4, #28] @ zero_extendqisi2 416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 232 .loc 1 416 6 view .LVU78 233 00c0 012B cmp r3, #1 234 00c2 35D0 beq .L33 422:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 235 .loc 1 422 5 is_stmt 1 view .LVU79 236 00c4 2268 ldr r2, [r4] 237 00c6 1368 ldr r3, [r2] 238 00c8 23F00803 bic r3, r3, #8 239 00cc 1360 str r3, [r2] 240 .L18: 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 241 .loc 1 426 3 view .LVU80 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 242 .loc 1 426 17 is_stmt 0 view .LVU81 243 00ce 637F ldrb r3, [r4, #29] @ zero_extendqisi2 426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 244 .loc 1 426 6 view .LVU82 245 00d0 012B cmp r3, #1 246 00d2 33D0 beq .L34 432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 247 .loc 1 432 5 is_stmt 1 view .LVU83 248 00d4 2268 ldr r2, [r4] 249 00d6 1368 ldr r3, [r2] 250 00d8 23F00403 bic r3, r3, #4 251 00dc 1360 str r3, [r2] 252 .L20: 436:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Init.SyncJumpWidth | 253 .loc 1 436 3 view .LVU84 254 00de A368 ldr r3, [r4, #8] 255 00e0 E268 ldr r2, [r4, #12] 256 00e2 1343 orrs r3, r3, r2 257 00e4 2269 ldr r2, [r4, #16] 258 00e6 1343 orrs r3, r3, r2 259 00e8 6269 ldr r2, [r4, #20] 260 00ea 1343 orrs r3, r3, r2 261 00ec 6268 ldr r2, [r4, #4] 262 00ee 013A subs r2, r2, #1 ARM GAS /tmp/ccXma6Rl.s page 16 263 00f0 2168 ldr r1, [r4] 264 00f2 1343 orrs r3, r3, r2 265 00f4 CB61 str r3, [r1, #28] 443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 266 .loc 1 443 3 view .LVU85 443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 267 .loc 1 443 19 is_stmt 0 view .LVU86 268 00f6 0020 movs r0, #0 269 00f8 6062 str r0, [r4, #36] 446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 270 .loc 1 446 3 is_stmt 1 view .LVU87 446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 271 .loc 1 446 15 is_stmt 0 view .LVU88 272 00fa 0123 movs r3, #1 273 00fc 84F82030 strb r3, [r4, #32] 449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 274 .loc 1 449 3 is_stmt 1 view .LVU89 449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 275 .loc 1 449 10 is_stmt 0 view .LVU90 276 0100 A0E7 b .L3 277 .L29: 378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 278 .loc 1 378 5 is_stmt 1 view .LVU91 279 0102 1A68 ldr r2, [r3] 280 0104 42F08002 orr r2, r2, #128 281 0108 1A60 str r2, [r3] 282 010a C0E7 b .L10 283 .L30: 388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 284 .loc 1 388 5 view .LVU92 285 010c 2268 ldr r2, [r4] 286 010e 1368 ldr r3, [r2] 287 0110 43F04003 orr r3, r3, #64 288 0114 1360 str r3, [r2] 289 0116 C2E7 b .L12 290 .L31: 398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 291 .loc 1 398 5 view .LVU93 292 0118 2268 ldr r2, [r4] 293 011a 1368 ldr r3, [r2] 294 011c 43F02003 orr r3, r3, #32 295 0120 1360 str r3, [r2] 296 0122 C4E7 b .L14 297 .L32: 408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 298 .loc 1 408 5 view .LVU94 299 0124 2268 ldr r2, [r4] 300 0126 1368 ldr r3, [r2] 301 0128 23F01003 bic r3, r3, #16 302 012c 1360 str r3, [r2] 303 012e C6E7 b .L16 304 .L33: 418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 305 .loc 1 418 5 view .LVU95 306 0130 2268 ldr r2, [r4] 307 0132 1368 ldr r3, [r2] 308 0134 43F00803 orr r3, r3, #8 ARM GAS /tmp/ccXma6Rl.s page 17 309 0138 1360 str r3, [r2] 310 013a C8E7 b .L18 311 .L34: 428:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 312 .loc 1 428 5 view .LVU96 313 013c 2268 ldr r2, [r4] 314 013e 1368 ldr r3, [r2] 315 0140 43F00403 orr r3, r3, #4 316 0144 1360 str r3, [r2] 317 0146 CAE7 b .L20 318 .LVL12: 319 .L21: 320 .LCFI1: 321 .cfi_def_cfa_offset 0 322 .cfi_restore 3 323 .cfi_restore 4 324 .cfi_restore 5 325 .cfi_restore 14 281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 326 .loc 1 281 12 is_stmt 0 view .LVU97 327 0148 0120 movs r0, #1 328 .LVL13: 450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 329 .loc 1 450 1 view .LVU98 330 014a 7047 bx lr 331 .cfi_endproc 332 .LFE65: 334 .section .text.HAL_CAN_MspDeInit,"ax",%progbits 335 .align 1 336 .weak HAL_CAN_MspDeInit 337 .syntax unified 338 .thumb 339 .thumb_func 340 .fpu softvfp 342 HAL_CAN_MspDeInit: 343 .LVL14: 344 .LFB68: 515:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 516:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 517:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief DeInitializes the CAN MSP. 518:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 519:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 520:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 521:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 522:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_MspDeInit(CAN_HandleTypeDef *hcan) 523:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 345 .loc 1 523 1 is_stmt 1 view -0 346 .cfi_startproc 347 @ args = 0, pretend = 0, frame = 0 348 @ frame_needed = 0, uses_anonymous_args = 0 349 @ link register save eliminated. 524:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 525:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 350 .loc 1 525 3 view .LVU100 526:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 527:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 528:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_MspDeInit could be implemented in the user file ARM GAS /tmp/ccXma6Rl.s page 18 529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 530:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 351 .loc 1 530 1 is_stmt 0 view .LVU101 352 0000 7047 bx lr 353 .cfi_endproc 354 .LFE68: 356 .section .text.HAL_CAN_ConfigFilter,"ax",%progbits 357 .align 1 358 .global HAL_CAN_ConfigFilter 359 .syntax unified 360 .thumb 361 .thumb_func 362 .fpu softvfp 364 HAL_CAN_ConfigFilter: 365 .LVL15: 366 .LFB69: 531:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 532:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 533:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 534:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Register a CAN CallBack. 535:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * To be used instead of the weak predefined callback 536:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 537:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for CAN module 538:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param CallbackID ID of the callback to be registered 539:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be one of the following values: 540:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CALLBACK_CB_ID Tx Mailbox 0 Complete callback 541:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CALLBACK_CB_ID Tx Mailbox 1 Complete callback 542:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CALLBACK_CB_ID Tx Mailbox 2 Complete callback 543:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CALLBACK_CB_ID Tx Mailbox 0 Abort callback ID 544:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CALLBACK_CB_ID Tx Mailbox 1 Abort callback ID 545:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CALLBACK_CB_ID Tx Mailbox 2 Abort callback ID 546:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CALLBACK_CB_ID Rx Fifo 0 message pending callb 547:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CALLBACK_CB_ID Rx Fifo 0 full callback ID 548:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSGPENDING_CALLBACK_CB_ID Rx Fifo 1 message pending callba 549:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CALLBACK_CB_ID Rx Fifo 1 full callback ID 550:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CALLBACK_CB_ID Sleep callback ID 551:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CALLBACK_CB_ID Wake Up from Rx message callback 552:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CALLBACK_CB_ID Error callback ID 553:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID 554:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID 555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param pCallback pointer to the Callback function 556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 557:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 558:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Callb 559:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 560:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 561:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 562:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pCallback == NULL) 563:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 564:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */ 565:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 566:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 567:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 568:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 569:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 570:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY) 571:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { ARM GAS /tmp/ccXma6Rl.s page 19 572:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (CallbackID) 573:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 574:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID : 575:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = pCallback; 576:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 577:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 578:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID : 579:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = pCallback; 580:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 581:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 582:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID : 583:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = pCallback; 584:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 585:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 586:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID : 587:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0AbortCallback = pCallback; 588:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 590:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID : 591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1AbortCallback = pCallback; 592:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 593:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 594:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID : 595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2AbortCallback = pCallback; 596:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 597:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 598:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID : 599:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = pCallback; 600:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 601:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 602:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID : 603:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0FullCallback = pCallback; 604:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 605:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 606:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID : 607:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = pCallback; 608:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 609:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 610:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID : 611:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1FullCallback = pCallback; 612:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 613:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 614:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID : 615:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->SleepCallback = pCallback; 616:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 617:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 618:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID : 619:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = pCallback; 620:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 621:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 622:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID : 623:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCallback = pCallback; 624:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 625:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 626:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 627:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = pCallback; 628:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; ARM GAS /tmp/ccXma6Rl.s page 20 629:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 630:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 631:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = pCallback; 632:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 633:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 634:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default : 635:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */ 636:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 637:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 638:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */ 639:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR; 640:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 641:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 642:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 643:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET) 644:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (CallbackID) 646:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 647:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 648:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = pCallback; 649:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 650:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 651:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 652:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = pCallback; 653:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 654:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 655:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default : 656:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */ 657:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 658:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 659:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */ 660:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR; 661:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 662:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 663:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 664:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 665:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 666:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */ 667:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 668:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 669:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */ 670:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR; 671:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 672:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 673:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status; 674:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 675:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 676:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 677:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Unregister a CAN CallBack. 678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * CAN callabck is redirected to the weak predefined callback 679:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 680:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for CAN module 681:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param CallbackID ID of the callback to be unregistered 682:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be one of the following values: 683:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CALLBACK_CB_ID Tx Mailbox 0 Complete callback 684:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CALLBACK_CB_ID Tx Mailbox 1 Complete callback 685:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CALLBACK_CB_ID Tx Mailbox 2 Complete callback ARM GAS /tmp/ccXma6Rl.s page 21 686:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CALLBACK_CB_ID Tx Mailbox 0 Abort callback ID 687:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CALLBACK_CB_ID Tx Mailbox 1 Abort callback ID 688:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CALLBACK_CB_ID Tx Mailbox 2 Abort callback ID 689:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CALLBACK_CB_ID Rx Fifo 0 message pending callb 690:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CALLBACK_CB_ID Rx Fifo 0 full callback ID 691:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSGPENDING_CALLBACK_CB_ID Rx Fifo 1 message pending callba 692:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CALLBACK_CB_ID Rx Fifo 1 full callback ID 693:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CALLBACK_CB_ID Sleep callback ID 694:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CALLBACK_CB_ID Wake Up from Rx message callback 695:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CALLBACK_CB_ID Error callback ID 696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID 697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID 698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 700:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_UnRegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Cal 701:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 704:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY) 705:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (CallbackID) 707:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 708:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID : 709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; 710:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 711:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 712:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID : 713:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; 714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 715:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 716:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID : 717:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; 718:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 719:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 720:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID : 721:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; 722:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 723:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 724:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID : 725:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; 726:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 727:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 728:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID : 729:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; 730:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 731:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 732:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID : 733:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; 734:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 735:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 736:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID : 737:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; 738:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 739:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 740:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID : 741:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; 742:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; ARM GAS /tmp/ccXma6Rl.s page 22 743:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 744:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID : 745:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; 746:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 747:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 748:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID : 749:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback; 750:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 751:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 752:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID : 753:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; 754:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 755:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 756:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID : 757:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback; 758:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 759:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 760:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 761:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; 762:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 763:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 764:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 765:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; 766:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 767:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 768:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default : 769:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */ 770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 771:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 772:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */ 773:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR; 774:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 776:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 777:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET) 778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 779:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (CallbackID) 780:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 781:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID : 782:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; 783:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 784:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 785:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID : 786:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; 787:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 788:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 789:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default : 790:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */ 791:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 792:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 793:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */ 794:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR; 795:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 796:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 797:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 798:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 799:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { ARM GAS /tmp/ccXma6Rl.s page 23 800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */ 801:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK; 802:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 803:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */ 804:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR; 805:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 806:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 807:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status; 808:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 809:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 810:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 811:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 812:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @} 813:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 814:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 815:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group2 Configuration functions 816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Configuration functions. 817:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim 819:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 820:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Configuration functions ##### 821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 822:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] This section provides functions allowing to: 823:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_ConfigFilter : Configure the CAN reception filters 824:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 825:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim 826:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 827:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 828:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 829:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 830:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Configures the CAN reception filter according to the specified 831:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * parameters in the CAN_FilterInitStruct. 832:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 833:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 834:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param sFilterConfig pointer to a CAN_FilterTypeDef structure that 835:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * contains the filter configuration information. 836:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 837:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 838:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef *hcan, CAN_FilterTypeDef *sFilterConfig) 839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 367 .loc 1 839 1 is_stmt 1 view -0 368 .cfi_startproc 369 @ args = 0, pretend = 0, frame = 0 370 @ frame_needed = 0, uses_anonymous_args = 0 371 @ link register save eliminated. 840:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t filternbrbitpos; 372 .loc 1 840 3 view .LVU103 841:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CAN_TypeDef *can_ip = hcan->Instance; 373 .loc 1 841 3 view .LVU104 374 .loc 1 841 16 is_stmt 0 view .LVU105 375 0000 0368 ldr r3, [r0] 376 .LVL16: 842:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 377 .loc 1 842 3 is_stmt 1 view .LVU106 378 .loc 1 842 24 is_stmt 0 view .LVU107 379 0002 90F82020 ldrb r2, [r0, #32] @ zero_extendqisi2 380 .LVL17: ARM GAS /tmp/ccXma6Rl.s page 24 843:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 381 .loc 1 844 3 is_stmt 1 view .LVU108 382 .loc 1 844 38 is_stmt 0 view .LVU109 383 0006 013A subs r2, r2, #1 384 .LVL18: 385 .loc 1 844 38 view .LVU110 386 0008 D2B2 uxtb r2, r2 387 .loc 1 844 6 view .LVU111 388 000a 012A cmp r2, #1 389 000c 05D9 bls .L50 845:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 846:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */ 848:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdHigh)); 849:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 850:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh)); 851:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow)); 852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode)); 853:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale)); 854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment)); 855:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation)); 856:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if defined(CAN2) 858:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* CAN1 and CAN2 are dual instances with 28 common filters banks */ 859:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Select master instance to access the filter banks */ 860:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip = CAN1; 861:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 862:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */ 863:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->FilterBank)); 864:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->SlaveStartFilterBank)); 865:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 866:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* CAN1 is single instance with 14 dedicated filters banks */ 867:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 868:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */ 869:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_SINGLE(sFilterConfig->FilterBank)); 870:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif 871:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 872:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Initialisation mode for the filter */ 873:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FMR, CAN_FMR_FINIT); 874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 875:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if defined(CAN2) 876:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Select the start filter number of CAN2 slave instance */ 877:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FMR, CAN_FMR_CAN2SB); 878:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FMR, sFilterConfig->SlaveStartFilterBank << CAN_FMR_CAN2SB_Pos); 879:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 880:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif 881:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Convert filter number into bit position */ 882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** filternbrbitpos = (uint32_t)1 << (sFilterConfig->FilterBank & 0x1FU); 883:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 884:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter Deactivation */ 885:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FA1R, filternbrbitpos); 886:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 887:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter Scale */ 888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_16BIT) 889:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 890:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* 16-bit scale for the filter */ ARM GAS /tmp/ccXma6Rl.s page 25 891:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FS1R, filternbrbitpos); 892:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 893:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* First 16-bit identifier and First 16-bit mask */ 894:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Or First 16-bit identifier and Second 16-bit identifier */ 895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 = 896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 897:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 898:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 899:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Second 16-bit identifier and Second 16-bit mask */ 900:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Or Third 16-bit identifier and Fourth 16-bit identifier */ 901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 = 902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 904:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 905:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_32BIT) 907:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 908:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* 32-bit scale for the filter */ 909:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FS1R, filternbrbitpos); 910:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 911:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* 32-bit identifier or First 32-bit identifier */ 912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 = 913:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 915:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 916:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* 32-bit mask or Second 32-bit identifier */ 917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 = 918:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); 920:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 921:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 922:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter Mode */ 923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterMode == CAN_FILTERMODE_IDMASK) 924:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 925:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Id/Mask mode for the filter*/ 926:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FM1R, filternbrbitpos); 927:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 928:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else /* CAN_FilterInitStruct->CAN_FilterMode == CAN_FilterMode_IdList */ 929:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 930:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Identifier list mode for the filter*/ 931:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FM1R, filternbrbitpos); 932:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 933:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 934:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter FIFO assignment */ 935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterFIFOAssignment == CAN_FILTER_FIFO0) 936:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 937:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* FIFO 0 assignation for the filter */ 938:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FFA1R, filternbrbitpos); 939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 940:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 941:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 942:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* FIFO 1 assignation for the filter */ 943:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FFA1R, filternbrbitpos); 944:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 945:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 946:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter activation */ 947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterActivation == CAN_FILTER_ENABLE) ARM GAS /tmp/ccXma6Rl.s page 26 948:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 949:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FA1R, filternbrbitpos); 950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 951:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 952:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Leave the initialisation mode for the filter */ 953:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FMR, CAN_FMR_FINIT); 954:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 955:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 957:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 959:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 960:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 961:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 390 .loc 1 961 5 is_stmt 1 view .LVU112 391 .loc 1 961 21 is_stmt 0 view .LVU113 392 000e 436A ldr r3, [r0, #36] 393 .LVL19: 394 .loc 1 961 21 view .LVU114 395 0010 43F48023 orr r3, r3, #262144 396 0014 4362 str r3, [r0, #36] 962:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 963:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 397 .loc 1 963 5 is_stmt 1 view .LVU115 398 .loc 1 963 12 is_stmt 0 view .LVU116 399 0016 0120 movs r0, #1 400 .LVL20: 964:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 965:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 401 .loc 1 965 1 view .LVU117 402 0018 7047 bx lr 403 .LVL21: 404 .L50: 839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t filternbrbitpos; 405 .loc 1 839 1 view .LVU118 406 001a 70B4 push {r4, r5, r6} 407 .LCFI2: 408 .cfi_def_cfa_offset 12 409 .cfi_offset 4, -12 410 .cfi_offset 5, -8 411 .cfi_offset 6, -4 848:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow)); 412 .loc 1 848 5 is_stmt 1 view .LVU119 849:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh)); 413 .loc 1 849 5 view .LVU120 850:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow)); 414 .loc 1 850 5 view .LVU121 851:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode)); 415 .loc 1 851 5 view .LVU122 852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale)); 416 .loc 1 852 5 view .LVU123 853:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment)); 417 .loc 1 853 5 view .LVU124 854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation)); 418 .loc 1 854 5 view .LVU125 855:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 419 .loc 1 855 5 view .LVU126 ARM GAS /tmp/ccXma6Rl.s page 27 869:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif 420 .loc 1 869 5 view .LVU127 873:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 421 .loc 1 873 5 view .LVU128 422 001c D3F80022 ldr r2, [r3, #512] 423 0020 42F00102 orr r2, r2, #1 424 0024 C3F80022 str r2, [r3, #512] 882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 425 .loc 1 882 5 view .LVU129 882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 426 .loc 1 882 52 is_stmt 0 view .LVU130 427 0028 4A69 ldr r2, [r1, #20] 882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 428 .loc 1 882 65 view .LVU131 429 002a 02F01F02 and r2, r2, #31 882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 430 .loc 1 882 21 view .LVU132 431 002e 0120 movs r0, #1 432 .LVL22: 882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 433 .loc 1 882 21 view .LVU133 434 0030 00FA02F2 lsl r2, r0, r2 435 .LVL23: 885:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 436 .loc 1 885 5 is_stmt 1 view .LVU134 437 0034 D3F81C42 ldr r4, [r3, #540] 438 0038 D043 mvns r0, r2 439 003a 0440 ands r4, r4, r0 440 003c C3F81C42 str r4, [r3, #540] 888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 441 .loc 1 888 5 view .LVU135 888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 442 .loc 1 888 22 is_stmt 0 view .LVU136 443 0040 CC69 ldr r4, [r1, #28] 888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 444 .loc 1 888 8 view .LVU137 445 0042 ACB9 cbnz r4, .L38 891:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 446 .loc 1 891 7 is_stmt 1 view .LVU138 447 0044 D3F80C42 ldr r4, [r3, #524] 448 0048 0440 ands r4, r4, r0 449 004a C3F80C42 str r4, [r3, #524] 895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 450 .loc 1 895 7 view .LVU139 896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 451 .loc 1 896 48 is_stmt 0 view .LVU140 452 004e CE68 ldr r6, [r1, #12] 897:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 453 .loc 1 897 22 view .LVU141 454 0050 8D88 ldrh r5, [r1, #4] 895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | 455 .loc 1 895 44 view .LVU142 456 0052 4C69 ldr r4, [r1, #20] 896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 457 .loc 1 896 75 view .LVU143 458 0054 45EA0645 orr r5, r5, r6, lsl #16 895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) | ARM GAS /tmp/ccXma6Rl.s page 28 459 .loc 1 895 62 view .LVU144 460 0058 4834 adds r4, r4, #72 461 005a 43F83450 str r5, [r3, r4, lsl #3] 901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 462 .loc 1 901 7 is_stmt 1 view .LVU145 902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 463 .loc 1 902 48 is_stmt 0 view .LVU146 464 005e 8E68 ldr r6, [r1, #8] 903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 465 .loc 1 903 22 view .LVU147 466 0060 0D88 ldrh r5, [r1] 901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 467 .loc 1 901 44 view .LVU148 468 0062 4C69 ldr r4, [r1, #20] 902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh); 469 .loc 1 902 76 view .LVU149 470 0064 45EA0645 orr r5, r5, r6, lsl #16 901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 471 .loc 1 901 62 view .LVU150 472 0068 4834 adds r4, r4, #72 473 006a 03EBC404 add r4, r3, r4, lsl #3 474 006e 6560 str r5, [r4, #4] 475 .L38: 906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 476 .loc 1 906 5 is_stmt 1 view .LVU151 906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 477 .loc 1 906 22 is_stmt 0 view .LVU152 478 0070 CC69 ldr r4, [r1, #28] 906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 479 .loc 1 906 8 view .LVU153 480 0072 012C cmp r4, #1 481 0074 19D0 beq .L51 482 .L39: 923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 483 .loc 1 923 5 is_stmt 1 view .LVU154 923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 484 .loc 1 923 22 is_stmt 0 view .LVU155 485 0076 8C69 ldr r4, [r1, #24] 923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 486 .loc 1 923 8 view .LVU156 487 0078 74BB cbnz r4, .L40 926:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 488 .loc 1 926 7 is_stmt 1 view .LVU157 489 007a D3F80442 ldr r4, [r3, #516] 490 007e 0440 ands r4, r4, r0 491 0080 C3F80442 str r4, [r3, #516] 492 .L41: 935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 493 .loc 1 935 5 view .LVU158 935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 494 .loc 1 935 22 is_stmt 0 view .LVU159 495 0084 0C69 ldr r4, [r1, #16] 935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 496 .loc 1 935 8 view .LVU160 497 0086 6CBB cbnz r4, .L42 938:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 498 .loc 1 938 7 is_stmt 1 view .LVU161 ARM GAS /tmp/ccXma6Rl.s page 29 499 0088 D3F81442 ldr r4, [r3, #532] 500 008c 2040 ands r0, r0, r4 501 008e C3F81402 str r0, [r3, #532] 502 .L43: 947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 503 .loc 1 947 5 view .LVU162 947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 504 .loc 1 947 22 is_stmt 0 view .LVU163 505 0092 096A ldr r1, [r1, #32] 506 .LVL24: 947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 507 .loc 1 947 8 view .LVU164 508 0094 0129 cmp r1, #1 509 0096 2BD0 beq .L52 510 .LVL25: 511 .L44: 953:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 512 .loc 1 953 5 is_stmt 1 view .LVU165 513 0098 D3F80022 ldr r2, [r3, #512] 514 009c 22F00102 bic r2, r2, #1 515 00a0 C3F80022 str r2, [r3, #512] 956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 516 .loc 1 956 5 view .LVU166 956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 517 .loc 1 956 12 is_stmt 0 view .LVU167 518 00a4 0020 movs r0, #0 519 .loc 1 965 1 view .LVU168 520 00a6 70BC pop {r4, r5, r6} 521 .LCFI3: 522 .cfi_remember_state 523 .cfi_restore 6 524 .cfi_restore 5 525 .cfi_restore 4 526 .cfi_def_cfa_offset 0 527 00a8 7047 bx lr 528 .LVL26: 529 .L51: 530 .LCFI4: 531 .cfi_restore_state 909:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 532 .loc 1 909 7 is_stmt 1 view .LVU169 533 00aa D3F80C42 ldr r4, [r3, #524] 534 00ae 1443 orrs r4, r4, r2 535 00b0 C3F80C42 str r4, [r3, #524] 912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 536 .loc 1 912 7 view .LVU170 913:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 537 .loc 1 913 48 is_stmt 0 view .LVU171 538 00b4 0E68 ldr r6, [r1] 914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 539 .loc 1 914 22 view .LVU172 540 00b6 8D88 ldrh r5, [r1, #4] 912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 541 .loc 1 912 44 view .LVU173 542 00b8 4C69 ldr r4, [r1, #20] 913:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow); 543 .loc 1 913 72 view .LVU174 ARM GAS /tmp/ccXma6Rl.s page 30 544 00ba 45EA0645 orr r5, r5, r6, lsl #16 912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) | 545 .loc 1 912 62 view .LVU175 546 00be 4834 adds r4, r4, #72 547 00c0 43F83450 str r5, [r3, r4, lsl #3] 917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 548 .loc 1 917 7 is_stmt 1 view .LVU176 918:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); 549 .loc 1 918 48 is_stmt 0 view .LVU177 550 00c4 8E68 ldr r6, [r1, #8] 919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 551 .loc 1 919 22 view .LVU178 552 00c6 8D89 ldrh r5, [r1, #12] 917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 553 .loc 1 917 44 view .LVU179 554 00c8 4C69 ldr r4, [r1, #20] 918:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow); 555 .loc 1 918 76 view .LVU180 556 00ca 45EA0645 orr r5, r5, r6, lsl #16 917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) | 557 .loc 1 917 62 view .LVU181 558 00ce 4834 adds r4, r4, #72 559 00d0 03EBC404 add r4, r3, r4, lsl #3 560 00d4 6560 str r5, [r4, #4] 561 00d6 CEE7 b .L39 562 .L40: 931:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 563 .loc 1 931 7 is_stmt 1 view .LVU182 564 00d8 D3F80442 ldr r4, [r3, #516] 565 00dc 1443 orrs r4, r4, r2 566 00de C3F80442 str r4, [r3, #516] 567 00e2 CFE7 b .L41 568 .L42: 943:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 569 .loc 1 943 7 view .LVU183 570 00e4 D3F81402 ldr r0, [r3, #532] 571 00e8 1043 orrs r0, r0, r2 572 00ea C3F81402 str r0, [r3, #532] 573 00ee D0E7 b .L43 574 .LVL27: 575 .L52: 949:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 576 .loc 1 949 7 view .LVU184 577 00f0 D3F81C12 ldr r1, [r3, #540] 578 00f4 0A43 orrs r2, r2, r1 579 .LVL28: 949:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 580 .loc 1 949 7 is_stmt 0 view .LVU185 581 00f6 C3F81C22 str r2, [r3, #540] 582 00fa CDE7 b .L44 583 .cfi_endproc 584 .LFE69: 586 .section .text.HAL_CAN_Start,"ax",%progbits 587 .align 1 588 .global HAL_CAN_Start 589 .syntax unified 590 .thumb ARM GAS /tmp/ccXma6Rl.s page 31 591 .thumb_func 592 .fpu softvfp 594 HAL_CAN_Start: 595 .LVL29: 596 .LFB70: 966:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 967:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 968:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @} 969:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 970:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 971:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group3 Control functions 972:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Control functions 973:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 974:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim 975:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 976:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Control functions ##### 977:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 978:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] This section provides functions allowing to: 979:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_Start : Start the CAN module 980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_Stop : Stop the CAN module 981:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RequestSleep : Request sleep mode entry. 982:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_WakeUp : Wake up from sleep mode. 983:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_IsSleepActive : Check is sleep mode is active. 984:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_AddTxMessage : Add a message to the Tx mailboxes 985:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** and activate the corresponding 986:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** transmission request 987:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_AbortTxRequest : Abort transmission request 988:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetTxMailboxesFreeLevel : Return Tx mailboxes free level 989:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_IsTxMessagePending : Check if a transmission request is 990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pending on the selected Tx mailbox 991:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetRxMessage : Get a CAN frame from the Rx FIFO 992:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetRxFifoFillLevel : Return Rx FIFO fill level 993:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 994:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim 995:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 996:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 997:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 998:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 999:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Start the CAN module. 1000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1001:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1002:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 1003:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Start(CAN_HandleTypeDef *hcan) 1005:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 597 .loc 1 1005 1 is_stmt 1 view -0 598 .cfi_startproc 599 @ args = 0, pretend = 0, frame = 0 600 @ frame_needed = 0, uses_anonymous_args = 0 601 .loc 1 1005 1 is_stmt 0 view .LVU187 602 0000 38B5 push {r3, r4, r5, lr} 603 .LCFI5: 604 .cfi_def_cfa_offset 16 605 .cfi_offset 3, -16 606 .cfi_offset 4, -12 607 .cfi_offset 5, -8 608 .cfi_offset 14, -4 ARM GAS /tmp/ccXma6Rl.s page 32 1006:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart; 609 .loc 1 1006 3 is_stmt 1 view .LVU188 1007:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1008:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY) 610 .loc 1 1008 3 view .LVU189 611 .loc 1 1008 11 is_stmt 0 view .LVU190 612 0002 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 613 0006 DBB2 uxtb r3, r3 614 .loc 1 1008 6 view .LVU191 615 0008 012B cmp r3, #1 616 000a 05D0 beq .L59 1009:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN peripheral state */ 1011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_LISTENING; 1012:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1013:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request leave initialisation */ 1014:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); 1015:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1016:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get tick */ 1017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** tickstart = HAL_GetTick(); 1018:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1019:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wait the acknowledge */ 1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) != 0U) 1021:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1022:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check for the Timeout */ 1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 1024:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1025:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 1027:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1028:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */ 1029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 1030:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1031:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1032:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1033:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1034:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1035:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset the CAN ErrorCode */ 1036:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE; 1037:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1038:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1039:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 1040:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1041:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1042:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1043:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1044:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_READY; 617 .loc 1 1044 5 is_stmt 1 view .LVU192 618 .loc 1 1044 21 is_stmt 0 view .LVU193 619 000c 436A ldr r3, [r0, #36] 620 000e 43F40023 orr r3, r3, #524288 621 0012 4362 str r3, [r0, #36] 1045:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1046:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 622 .loc 1 1046 5 is_stmt 1 view .LVU194 623 .loc 1 1046 12 is_stmt 0 view .LVU195 624 0014 0120 movs r0, #1 ARM GAS /tmp/ccXma6Rl.s page 33 625 .LVL30: 626 .L56: 1047:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1048:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 627 .loc 1 1048 1 view .LVU196 628 0016 38BD pop {r3, r4, r5, pc} 629 .LVL31: 630 .L59: 631 .loc 1 1048 1 view .LVU197 632 0018 0446 mov r4, r0 1011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 633 .loc 1 1011 5 is_stmt 1 view .LVU198 1011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 634 .loc 1 1011 17 is_stmt 0 view .LVU199 635 001a 0223 movs r3, #2 636 001c 80F82030 strb r3, [r0, #32] 1014:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 637 .loc 1 1014 5 is_stmt 1 view .LVU200 638 0020 0268 ldr r2, [r0] 639 0022 1368 ldr r3, [r2] 640 0024 23F00103 bic r3, r3, #1 641 0028 1360 str r3, [r2] 1017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 642 .loc 1 1017 5 view .LVU201 1017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 643 .loc 1 1017 17 is_stmt 0 view .LVU202 644 002a FFF7FEFF bl HAL_GetTick 645 .LVL32: 1017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 646 .loc 1 1017 17 view .LVU203 647 002e 0546 mov r5, r0 648 .LVL33: 1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 649 .loc 1 1020 5 is_stmt 1 view .LVU204 650 .L55: 1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 651 .loc 1 1020 17 is_stmt 0 view .LVU205 652 0030 2368 ldr r3, [r4] 1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 653 .loc 1 1020 27 view .LVU206 654 0032 5B68 ldr r3, [r3, #4] 1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 655 .loc 1 1020 11 view .LVU207 656 0034 13F0010F tst r3, #1 657 0038 0DD0 beq .L60 1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 658 .loc 1 1023 7 is_stmt 1 view .LVU208 1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 659 .loc 1 1023 12 is_stmt 0 view .LVU209 660 003a FFF7FEFF bl HAL_GetTick 661 .LVL34: 1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 662 .loc 1 1023 26 view .LVU210 663 003e 401B subs r0, r0, r5 1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 664 .loc 1 1023 10 view .LVU211 665 0040 0A28 cmp r0, #10 ARM GAS /tmp/ccXma6Rl.s page 34 666 0042 F5D9 bls .L55 1026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 667 .loc 1 1026 9 is_stmt 1 view .LVU212 1026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 668 .loc 1 1026 25 is_stmt 0 view .LVU213 669 0044 636A ldr r3, [r4, #36] 670 0046 43F40033 orr r3, r3, #131072 671 004a 6362 str r3, [r4, #36] 1029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 672 .loc 1 1029 9 is_stmt 1 view .LVU214 1029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 673 .loc 1 1029 21 is_stmt 0 view .LVU215 674 004c 0523 movs r3, #5 675 004e 84F82030 strb r3, [r4, #32] 1031:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 676 .loc 1 1031 9 is_stmt 1 view .LVU216 1031:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 677 .loc 1 1031 16 is_stmt 0 view .LVU217 678 0052 0120 movs r0, #1 679 0054 DFE7 b .L56 680 .L60: 1036:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 681 .loc 1 1036 5 is_stmt 1 view .LVU218 1036:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 682 .loc 1 1036 21 is_stmt 0 view .LVU219 683 0056 0020 movs r0, #0 684 0058 6062 str r0, [r4, #36] 1039:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 685 .loc 1 1039 5 is_stmt 1 view .LVU220 1039:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 686 .loc 1 1039 12 is_stmt 0 view .LVU221 687 005a DCE7 b .L56 688 .cfi_endproc 689 .LFE70: 691 .section .text.HAL_CAN_Stop,"ax",%progbits 692 .align 1 693 .global HAL_CAN_Stop 694 .syntax unified 695 .thumb 696 .thumb_func 697 .fpu softvfp 699 HAL_CAN_Stop: 700 .LVL35: 701 .LFB71: 1049:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1050:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1051:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Stop the CAN module and enable access to configuration registers. 1052:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1053:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1054:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 1055:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1056:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Stop(CAN_HandleTypeDef *hcan) 1057:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 702 .loc 1 1057 1 is_stmt 1 view -0 703 .cfi_startproc 704 @ args = 0, pretend = 0, frame = 0 705 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccXma6Rl.s page 35 706 .loc 1 1057 1 is_stmt 0 view .LVU223 707 0000 38B5 push {r3, r4, r5, lr} 708 .LCFI6: 709 .cfi_def_cfa_offset 16 710 .cfi_offset 3, -16 711 .cfi_offset 4, -12 712 .cfi_offset 5, -8 713 .cfi_offset 14, -4 1058:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart; 714 .loc 1 1058 3 is_stmt 1 view .LVU224 1059:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1060:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_LISTENING) 715 .loc 1 1060 3 view .LVU225 716 .loc 1 1060 11 is_stmt 0 view .LVU226 717 0002 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 718 0006 DBB2 uxtb r3, r3 719 .loc 1 1060 6 view .LVU227 720 0008 022B cmp r3, #2 721 000a 05D0 beq .L67 1061:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1062:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request initialisation */ 1063:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ); 1064:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1065:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get tick */ 1066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** tickstart = HAL_GetTick(); 1067:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1068:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wait the acknowledge */ 1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U) 1070:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1071:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check for the Timeout */ 1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE) 1073:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1074:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1075:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 1076:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1077:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */ 1078:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR; 1079:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1080:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1081:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1082:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1083:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1084:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Exit from sleep mode */ 1085:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 1086:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1087:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN peripheral state */ 1088:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY; 1089:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1090:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1091:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 1092:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1093:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1094:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1095:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1096:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_STARTED; 722 .loc 1 1096 5 is_stmt 1 view .LVU228 723 .loc 1 1096 21 is_stmt 0 view .LVU229 ARM GAS /tmp/ccXma6Rl.s page 36 724 000c 436A ldr r3, [r0, #36] 725 000e 43F48013 orr r3, r3, #1048576 726 0012 4362 str r3, [r0, #36] 1097:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1098:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 727 .loc 1 1098 5 is_stmt 1 view .LVU230 728 .loc 1 1098 12 is_stmt 0 view .LVU231 729 0014 0120 movs r0, #1 730 .LVL36: 731 .L64: 1099:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1100:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 732 .loc 1 1100 1 view .LVU232 733 0016 38BD pop {r3, r4, r5, pc} 734 .LVL37: 735 .L67: 736 .loc 1 1100 1 view .LVU233 737 0018 0446 mov r4, r0 1063:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 738 .loc 1 1063 5 is_stmt 1 view .LVU234 739 001a 0268 ldr r2, [r0] 740 001c 1368 ldr r3, [r2] 741 001e 43F00103 orr r3, r3, #1 742 0022 1360 str r3, [r2] 1066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 743 .loc 1 1066 5 view .LVU235 1066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 744 .loc 1 1066 17 is_stmt 0 view .LVU236 745 0024 FFF7FEFF bl HAL_GetTick 746 .LVL38: 1066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 747 .loc 1 1066 17 view .LVU237 748 0028 0546 mov r5, r0 749 .LVL39: 1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 750 .loc 1 1069 5 is_stmt 1 view .LVU238 751 .L63: 1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 752 .loc 1 1069 17 is_stmt 0 view .LVU239 753 002a 2368 ldr r3, [r4] 1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 754 .loc 1 1069 27 view .LVU240 755 002c 5A68 ldr r2, [r3, #4] 1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 756 .loc 1 1069 11 view .LVU241 757 002e 12F0010F tst r2, #1 758 0032 0DD1 bne .L68 1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 759 .loc 1 1072 7 is_stmt 1 view .LVU242 1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 760 .loc 1 1072 12 is_stmt 0 view .LVU243 761 0034 FFF7FEFF bl HAL_GetTick 762 .LVL40: 1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 763 .loc 1 1072 26 view .LVU244 764 0038 401B subs r0, r0, r5 1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { ARM GAS /tmp/ccXma6Rl.s page 37 765 .loc 1 1072 10 view .LVU245 766 003a 0A28 cmp r0, #10 767 003c F5D9 bls .L63 1075:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 768 .loc 1 1075 9 is_stmt 1 view .LVU246 1075:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 769 .loc 1 1075 25 is_stmt 0 view .LVU247 770 003e 636A ldr r3, [r4, #36] 771 0040 43F40033 orr r3, r3, #131072 772 0044 6362 str r3, [r4, #36] 1078:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 773 .loc 1 1078 9 is_stmt 1 view .LVU248 1078:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 774 .loc 1 1078 21 is_stmt 0 view .LVU249 775 0046 0523 movs r3, #5 776 0048 84F82030 strb r3, [r4, #32] 1080:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 777 .loc 1 1080 9 is_stmt 1 view .LVU250 1080:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 778 .loc 1 1080 16 is_stmt 0 view .LVU251 779 004c 0120 movs r0, #1 780 004e E2E7 b .L64 781 .L68: 1085:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 782 .loc 1 1085 5 is_stmt 1 view .LVU252 783 0050 1A68 ldr r2, [r3] 784 0052 22F00202 bic r2, r2, #2 785 0056 1A60 str r2, [r3] 1088:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 786 .loc 1 1088 5 view .LVU253 1088:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 787 .loc 1 1088 17 is_stmt 0 view .LVU254 788 0058 0123 movs r3, #1 789 005a 84F82030 strb r3, [r4, #32] 1091:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 790 .loc 1 1091 5 is_stmt 1 view .LVU255 1091:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 791 .loc 1 1091 12 is_stmt 0 view .LVU256 792 005e 0020 movs r0, #0 793 0060 D9E7 b .L64 794 .cfi_endproc 795 .LFE71: 797 .section .text.HAL_CAN_DeInit,"ax",%progbits 798 .align 1 799 .global HAL_CAN_DeInit 800 .syntax unified 801 .thumb 802 .thumb_func 803 .fpu softvfp 805 HAL_CAN_DeInit: 806 .LVL41: 807 .LFB66: 460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check CAN handle */ 808 .loc 1 460 1 is_stmt 1 view -0 809 .cfi_startproc 810 @ args = 0, pretend = 0, frame = 0 811 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccXma6Rl.s page 38 462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 812 .loc 1 462 3 view .LVU258 462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 813 .loc 1 462 6 is_stmt 0 view .LVU259 814 0000 80B1 cbz r0, .L71 460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check CAN handle */ 815 .loc 1 460 1 view .LVU260 816 0002 10B5 push {r4, lr} 817 .LCFI7: 818 .cfi_def_cfa_offset 8 819 .cfi_offset 4, -8 820 .cfi_offset 14, -4 821 0004 0446 mov r4, r0 468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 822 .loc 1 468 3 is_stmt 1 view .LVU261 471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 823 .loc 1 471 3 view .LVU262 471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 824 .loc 1 471 9 is_stmt 0 view .LVU263 825 0006 FFF7FEFF bl HAL_CAN_Stop 826 .LVL42: 484:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */ 827 .loc 1 484 3 is_stmt 1 view .LVU264 828 000a 2046 mov r0, r4 829 000c FFF7FEFF bl HAL_CAN_MspDeInit 830 .LVL43: 488:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 831 .loc 1 488 3 view .LVU265 832 0010 2268 ldr r2, [r4] 833 0012 1368 ldr r3, [r2] 834 0014 43F40043 orr r3, r3, #32768 835 0018 1360 str r3, [r2] 491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 836 .loc 1 491 3 view .LVU266 491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 837 .loc 1 491 19 is_stmt 0 view .LVU267 838 001a 0020 movs r0, #0 839 001c 6062 str r0, [r4, #36] 494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 840 .loc 1 494 3 is_stmt 1 view .LVU268 494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 841 .loc 1 494 15 is_stmt 0 view .LVU269 842 001e 84F82000 strb r0, [r4, #32] 497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 843 .loc 1 497 3 is_stmt 1 view .LVU270 498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 844 .loc 1 498 1 is_stmt 0 view .LVU271 845 0022 10BD pop {r4, pc} 846 .LVL44: 847 .L71: 848 .LCFI8: 849 .cfi_def_cfa_offset 0 850 .cfi_restore 4 851 .cfi_restore 14 464:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 852 .loc 1 464 12 view .LVU272 853 0024 0120 movs r0, #1 ARM GAS /tmp/ccXma6Rl.s page 39 854 .LVL45: 498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 855 .loc 1 498 1 view .LVU273 856 0026 7047 bx lr 857 .cfi_endproc 858 .LFE66: 860 .section .text.HAL_CAN_RequestSleep,"ax",%progbits 861 .align 1 862 .global HAL_CAN_RequestSleep 863 .syntax unified 864 .thumb 865 .thumb_func 866 .fpu softvfp 868 HAL_CAN_RequestSleep: 869 .LVL46: 870 .LFB72: 1101:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1102:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1103:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Request the sleep mode (low power) entry. 1104:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * When returning from this function, Sleep mode will be entered 1105:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * as soon as the current CAN activity (transmission or reception 1106:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * of a CAN frame) has been completed. 1107:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1108:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1109:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status. 1110:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1111:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RequestSleep(CAN_HandleTypeDef *hcan) 1112:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 871 .loc 1 1112 1 is_stmt 1 view -0 872 .cfi_startproc 873 @ args = 0, pretend = 0, frame = 0 874 @ frame_needed = 0, uses_anonymous_args = 0 875 @ link register save eliminated. 1113:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 876 .loc 1 1113 3 view .LVU275 877 .loc 1 1113 24 is_stmt 0 view .LVU276 878 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 879 .LVL47: 1114:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1115:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 880 .loc 1 1115 3 is_stmt 1 view .LVU277 881 .loc 1 1115 38 is_stmt 0 view .LVU278 882 0004 013B subs r3, r3, #1 883 .LVL48: 884 .loc 1 1115 38 view .LVU279 885 0006 DBB2 uxtb r3, r3 886 .loc 1 1115 6 view .LVU280 887 0008 012B cmp r3, #1 888 000a 05D9 bls .L79 1116:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1117:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1118:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request Sleep mode */ 1119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 1120:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1121:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 1123:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } ARM GAS /tmp/ccXma6Rl.s page 40 1124:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1125:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1126:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1127:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 889 .loc 1 1127 5 is_stmt 1 view .LVU281 890 .loc 1 1127 21 is_stmt 0 view .LVU282 891 000c 436A ldr r3, [r0, #36] 892 000e 43F48023 orr r3, r3, #262144 893 0012 4362 str r3, [r0, #36] 1128:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1129:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1130:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 894 .loc 1 1130 5 is_stmt 1 view .LVU283 895 .loc 1 1130 12 is_stmt 0 view .LVU284 896 0014 0120 movs r0, #1 897 .LVL49: 1131:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1132:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 898 .loc 1 1132 1 view .LVU285 899 0016 7047 bx lr 900 .LVL50: 901 .L79: 1119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 902 .loc 1 1119 5 is_stmt 1 view .LVU286 903 0018 0268 ldr r2, [r0] 904 001a 1368 ldr r3, [r2] 905 001c 43F00203 orr r3, r3, #2 906 0020 1360 str r3, [r2] 1122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 907 .loc 1 1122 5 view .LVU287 1122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 908 .loc 1 1122 12 is_stmt 0 view .LVU288 909 0022 0020 movs r0, #0 910 .LVL51: 1122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 911 .loc 1 1122 12 view .LVU289 912 0024 7047 bx lr 913 .cfi_endproc 914 .LFE72: 916 .section .text.HAL_CAN_WakeUp,"ax",%progbits 917 .align 1 918 .global HAL_CAN_WakeUp 919 .syntax unified 920 .thumb 921 .thumb_func 922 .fpu softvfp 924 HAL_CAN_WakeUp: 925 .LVL52: 926 .LFB73: 1133:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1134:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1135:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Wake up from sleep mode. 1136:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * When returning with HAL_OK status from this function, Sleep mode 1137:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * is exited. 1138:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1139:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1140:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status. ARM GAS /tmp/ccXma6Rl.s page 41 1141:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1142:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_WakeUp(CAN_HandleTypeDef *hcan) 1143:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 927 .loc 1 1143 1 is_stmt 1 view -0 928 .cfi_startproc 929 @ args = 0, pretend = 0, frame = 8 930 @ frame_needed = 0, uses_anonymous_args = 0 931 @ link register save eliminated. 932 .loc 1 1143 1 is_stmt 0 view .LVU291 933 0000 82B0 sub sp, sp, #8 934 .LCFI9: 935 .cfi_def_cfa_offset 8 1144:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __IO uint32_t count = 0; 936 .loc 1 1144 3 is_stmt 1 view .LVU292 937 .loc 1 1144 17 is_stmt 0 view .LVU293 938 0002 0023 movs r3, #0 939 0004 0193 str r3, [sp, #4] 1145:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t timeout = 1000000U; 940 .loc 1 1145 3 is_stmt 1 view .LVU294 941 .LVL53: 1146:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 942 .loc 1 1146 3 view .LVU295 943 .loc 1 1146 24 is_stmt 0 view .LVU296 944 0006 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 945 .LVL54: 1147:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1148:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 946 .loc 1 1148 3 is_stmt 1 view .LVU297 947 .loc 1 1148 38 is_stmt 0 view .LVU298 948 000a 013B subs r3, r3, #1 949 .LVL55: 950 .loc 1 1148 38 view .LVU299 951 000c DBB2 uxtb r3, r3 952 .loc 1 1148 6 view .LVU300 953 000e 012B cmp r3, #1 954 0010 18D8 bhi .L81 1149:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1150:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1151:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wake up request */ 1152:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP); 955 .loc 1 1152 5 is_stmt 1 view .LVU301 956 0012 0268 ldr r2, [r0] 957 0014 1368 ldr r3, [r2] 958 0016 23F00203 bic r3, r3, #2 959 001a 1360 str r3, [r2] 960 .L84: 1153:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1154:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wait sleep mode is exited */ 1155:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** do 961 .loc 1 1155 5 view .LVU302 1156:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1157:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Increment counter */ 1158:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** count++; 962 .loc 1 1158 7 view .LVU303 963 .loc 1 1158 12 is_stmt 0 view .LVU304 964 001c 019B ldr r3, [sp, #4] 965 001e 0133 adds r3, r3, #1 ARM GAS /tmp/ccXma6Rl.s page 42 966 0020 0193 str r3, [sp, #4] 1159:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check if timeout is reached */ 1161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (count > timeout) 967 .loc 1 1161 7 is_stmt 1 view .LVU305 968 .loc 1 1161 17 is_stmt 0 view .LVU306 969 0022 019A ldr r2, [sp, #4] 970 .loc 1 1161 10 view .LVU307 971 0024 0B4B ldr r3, .L87 972 0026 9A42 cmp r2, r3 973 0028 06D8 bhi .L86 1162:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1163:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT; 1165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1167:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1168:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1169:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U); 974 .loc 1 1169 17 view .LVU308 975 002a 0368 ldr r3, [r0] 976 .loc 1 1169 27 view .LVU309 977 002c 5B68 ldr r3, [r3, #4] 978 .loc 1 1169 5 view .LVU310 979 002e 13F0020F tst r3, #2 980 0032 F3D1 bne .L84 1170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1171:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1172:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 981 .loc 1 1172 12 view .LVU311 982 0034 0020 movs r0, #0 983 .LVL56: 984 .loc 1 1172 12 view .LVU312 985 0036 0AE0 b .L83 986 .LVL57: 987 .L86: 1164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 988 .loc 1 1164 9 is_stmt 1 view .LVU313 1164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 989 .loc 1 1164 25 is_stmt 0 view .LVU314 990 0038 436A ldr r3, [r0, #36] 991 003a 43F40033 orr r3, r3, #131072 992 003e 4362 str r3, [r0, #36] 1166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 993 .loc 1 1166 9 is_stmt 1 view .LVU315 1166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 994 .loc 1 1166 16 is_stmt 0 view .LVU316 995 0040 0120 movs r0, #1 996 .LVL58: 1166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 997 .loc 1 1166 16 view .LVU317 998 0042 04E0 b .L83 999 .LVL59: 1000 .L81: 1173:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1174:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1175:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { ARM GAS /tmp/ccXma6Rl.s page 43 1176:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1177:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1001 .loc 1 1177 5 is_stmt 1 view .LVU318 1002 .loc 1 1177 21 is_stmt 0 view .LVU319 1003 0044 436A ldr r3, [r0, #36] 1004 0046 43F48023 orr r3, r3, #262144 1005 004a 4362 str r3, [r0, #36] 1178:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1179:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1006 .loc 1 1179 5 is_stmt 1 view .LVU320 1007 .loc 1 1179 12 is_stmt 0 view .LVU321 1008 004c 0120 movs r0, #1 1009 .LVL60: 1010 .L83: 1180:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1181:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1011 .loc 1 1181 1 view .LVU322 1012 004e 02B0 add sp, sp, #8 1013 .LCFI10: 1014 .cfi_def_cfa_offset 0 1015 @ sp needed 1016 0050 7047 bx lr 1017 .L88: 1018 0052 00BF .align 2 1019 .L87: 1020 0054 40420F00 .word 1000000 1021 .cfi_endproc 1022 .LFE73: 1024 .section .text.HAL_CAN_IsSleepActive,"ax",%progbits 1025 .align 1 1026 .global HAL_CAN_IsSleepActive 1027 .syntax unified 1028 .thumb 1029 .thumb_func 1030 .fpu softvfp 1032 HAL_CAN_IsSleepActive: 1033 .LVL61: 1034 .LFB74: 1182:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1183:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1184:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Check is sleep mode is active. 1185:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1186:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1187:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Status 1188:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * - 0 : Sleep mode is not active. 1189:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * - 1 : Sleep mode is active. 1190:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1191:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_IsSleepActive(CAN_HandleTypeDef *hcan) 1192:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1035 .loc 1 1192 1 is_stmt 1 view -0 1036 .cfi_startproc 1037 @ args = 0, pretend = 0, frame = 0 1038 @ frame_needed = 0, uses_anonymous_args = 0 1039 @ link register save eliminated. 1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t status = 0U; 1040 .loc 1 1193 3 view .LVU324 1194:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; ARM GAS /tmp/ccXma6Rl.s page 44 1041 .loc 1 1194 3 view .LVU325 1042 .loc 1 1194 24 is_stmt 0 view .LVU326 1043 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 1044 .LVL62: 1195:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1196:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1045 .loc 1 1196 3 is_stmt 1 view .LVU327 1046 .loc 1 1196 38 is_stmt 0 view .LVU328 1047 0004 013B subs r3, r3, #1 1048 .LVL63: 1049 .loc 1 1196 38 view .LVU329 1050 0006 DBB2 uxtb r3, r3 1051 .loc 1 1196 6 view .LVU330 1052 0008 012B cmp r3, #1 1053 000a 01D9 bls .L93 1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1054 .loc 1 1193 12 view .LVU331 1055 000c 0020 movs r0, #0 1056 .LVL64: 1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1057 .loc 1 1193 12 view .LVU332 1058 000e 7047 bx lr 1059 .LVL65: 1060 .L93: 1197:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1198:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1199:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Sleep mode */ 1200:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 1061 .loc 1 1200 5 is_stmt 1 view .LVU333 1062 .loc 1 1200 14 is_stmt 0 view .LVU334 1063 0010 0368 ldr r3, [r0] 1064 .loc 1 1200 24 view .LVU335 1065 0012 5B68 ldr r3, [r3, #4] 1066 .loc 1 1200 8 view .LVU336 1067 0014 13F0020F tst r3, #2 1068 0018 01D1 bne .L92 1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1069 .loc 1 1193 12 view .LVU337 1070 001a 0020 movs r0, #0 1071 .LVL66: 1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1072 .loc 1 1193 12 view .LVU338 1073 001c 7047 bx lr 1074 .LVL67: 1075 .L92: 1201:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1202:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = 1U; 1076 .loc 1 1202 14 view .LVU339 1077 001e 0120 movs r0, #1 1078 .LVL68: 1203:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1204:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1205:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1206:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1207:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status; 1079 .loc 1 1207 3 is_stmt 1 view .LVU340 1208:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } ARM GAS /tmp/ccXma6Rl.s page 45 1080 .loc 1 1208 1 is_stmt 0 view .LVU341 1081 0020 7047 bx lr 1082 .cfi_endproc 1083 .LFE74: 1085 .section .text.HAL_CAN_AddTxMessage,"ax",%progbits 1086 .align 1 1087 .global HAL_CAN_AddTxMessage 1088 .syntax unified 1089 .thumb 1090 .thumb_func 1091 .fpu softvfp 1093 HAL_CAN_AddTxMessage: 1094 .LVL69: 1095 .LFB75: 1209:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1210:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1211:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Add a message to the first free Tx mailbox and activate the 1212:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * corresponding transmission request. 1213:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1214:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1215:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param pHeader pointer to a CAN_TxHeaderTypeDef structure. 1216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param aData array containing the payload of the Tx frame. 1217:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param pTxMailbox pointer to a variable where the function will return 1218:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the TxMailbox used to store the Tx message. 1219:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be a value of @arg CAN_Tx_Mailboxes. 1220:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 1221:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AddTxMessage(CAN_HandleTypeDef *hcan, CAN_TxHeaderTypeDef *pHeader, uint8 1223:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1096 .loc 1 1223 1 is_stmt 1 view -0 1097 .cfi_startproc 1098 @ args = 0, pretend = 0, frame = 0 1099 @ frame_needed = 0, uses_anonymous_args = 0 1100 @ link register save eliminated. 1101 .loc 1 1223 1 is_stmt 0 view .LVU343 1102 0000 70B4 push {r4, r5, r6} 1103 .LCFI11: 1104 .cfi_def_cfa_offset 12 1105 .cfi_offset 4, -12 1106 .cfi_offset 5, -8 1107 .cfi_offset 6, -4 1224:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t transmitmailbox; 1108 .loc 1 1224 3 is_stmt 1 view .LVU344 1225:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1109 .loc 1 1225 3 view .LVU345 1110 .loc 1 1225 24 is_stmt 0 view .LVU346 1111 0002 90F82040 ldrb r4, [r0, #32] @ zero_extendqisi2 1112 .LVL70: 1226:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tsr = READ_REG(hcan->Instance->TSR); 1113 .loc 1 1226 3 is_stmt 1 view .LVU347 1114 .loc 1 1226 18 is_stmt 0 view .LVU348 1115 0006 0568 ldr r5, [r0] 1116 .loc 1 1226 12 view .LVU349 1117 0008 AD68 ldr r5, [r5, #8] 1118 .LVL71: 1227:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1228:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */ ARM GAS /tmp/ccXma6Rl.s page 46 1229:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_IDTYPE(pHeader->IDE)); 1119 .loc 1 1229 3 is_stmt 1 view .LVU350 1230:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_RTR(pHeader->RTR)); 1120 .loc 1 1230 3 view .LVU351 1231:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_DLC(pHeader->DLC)); 1121 .loc 1 1231 3 view .LVU352 1232:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 1122 .loc 1 1232 3 view .LVU353 1233:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1234:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_STDID(pHeader->StdId)); 1235:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1236:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1237:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1238:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_EXTID(pHeader->ExtId)); 1123 .loc 1 1238 5 view .LVU354 1239:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1240:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(pHeader->TransmitGlobalTime)); 1124 .loc 1 1240 3 view .LVU355 1241:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1242:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1125 .loc 1 1242 3 view .LVU356 1126 .loc 1 1242 38 is_stmt 0 view .LVU357 1127 000a 013C subs r4, r4, #1 1128 .LVL72: 1129 .loc 1 1242 38 view .LVU358 1130 000c E4B2 uxtb r4, r4 1131 .loc 1 1242 6 view .LVU359 1132 000e 012C cmp r4, #1 1133 0010 65D8 bhi .L95 1243:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1244:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1245:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check that all the Tx mailboxes are not full */ 1246:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((tsr & CAN_TSR_TME0) != 0U) || 1134 .loc 1 1246 5 is_stmt 1 view .LVU360 1135 .loc 1 1246 8 is_stmt 0 view .LVU361 1136 0012 15F0E05F tst r5, #469762048 1137 0016 5CD0 beq .L96 1247:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) || 1248:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((tsr & CAN_TSR_TME2) != 0U)) 1249:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1250:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Select an empty transmit mailbox */ 1251:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** transmitmailbox = (tsr & CAN_TSR_CODE) >> CAN_TSR_CODE_Pos; 1138 .loc 1 1251 7 is_stmt 1 view .LVU362 1139 .loc 1 1251 23 is_stmt 0 view .LVU363 1140 0018 C5F30165 ubfx r5, r5, #24, #2 1141 .LVL73: 1252:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1253:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check transmit mailbox value */ 1254:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (transmitmailbox > 2U) 1142 .loc 1 1254 7 is_stmt 1 view .LVU364 1143 .loc 1 1254 10 is_stmt 0 view .LVU365 1144 001c 022D cmp r5, #2 1145 001e 05D9 bls .L97 1255:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1256:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1257:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INTERNAL; 1146 .loc 1 1257 9 is_stmt 1 view .LVU366 ARM GAS /tmp/ccXma6Rl.s page 47 1147 .loc 1 1257 25 is_stmt 0 view .LVU367 1148 0020 436A ldr r3, [r0, #36] 1149 .LVL74: 1150 .loc 1 1257 25 view .LVU368 1151 0022 43F40003 orr r3, r3, #8388608 1152 0026 4362 str r3, [r0, #36] 1258:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1259:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1153 .loc 1 1259 9 is_stmt 1 view .LVU369 1154 .loc 1 1259 16 is_stmt 0 view .LVU370 1155 0028 0120 movs r0, #1 1156 .LVL75: 1157 .loc 1 1259 16 view .LVU371 1158 002a 5DE0 b .L98 1159 .LVL76: 1160 .L97: 1260:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1261:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1262:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Store the Tx mailbox */ 1263:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *pTxMailbox = (uint32_t)1 << transmitmailbox; 1161 .loc 1 1263 7 is_stmt 1 view .LVU372 1162 .loc 1 1263 33 is_stmt 0 view .LVU373 1163 002c 0124 movs r4, #1 1164 002e AC40 lsls r4, r4, r5 1165 .loc 1 1263 19 view .LVU374 1166 0030 1C60 str r4, [r3] 1264:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1265:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set up the Id */ 1266:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 1167 .loc 1 1266 7 is_stmt 1 view .LVU375 1168 .loc 1 1266 18 is_stmt 0 view .LVU376 1169 0032 8B68 ldr r3, [r1, #8] 1170 .LVL77: 1171 .loc 1 1266 10 view .LVU377 1172 0034 002B cmp r3, #0 1173 0036 39D1 bne .L99 1267:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->StdId << CAN_TI0R_STID_Pos) | 1174 .loc 1 1268 9 is_stmt 1 view .LVU378 1175 .loc 1 1268 68 is_stmt 0 view .LVU379 1176 0038 0E68 ldr r6, [r1] 1269:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR); 1177 .loc 1 1269 67 view .LVU380 1178 003a CB68 ldr r3, [r1, #12] 1268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR); 1179 .loc 1 1268 13 view .LVU381 1180 003c 0468 ldr r4, [r0] 1268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR); 1181 .loc 1 1268 98 view .LVU382 1182 003e 43EA4656 orr r6, r3, r6, lsl #21 1268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR); 1183 .loc 1 1268 57 view .LVU383 1184 0042 05F11803 add r3, r5, #24 1185 0046 1B01 lsls r3, r3, #4 1186 0048 E650 str r6, [r4, r3] 1187 .L100: 1270:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } ARM GAS /tmp/ccXma6Rl.s page 48 1271:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1272:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->ExtId << CAN_TI0R_EXID_Pos) | 1274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE | 1275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR); 1276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1277:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1278:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set up the DLC */ 1279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TDTR = (pHeader->DLC); 1188 .loc 1 1279 7 is_stmt 1 view .LVU384 1189 .loc 1 1279 11 is_stmt 0 view .LVU385 1190 004a 0368 ldr r3, [r0] 1191 .loc 1 1279 66 view .LVU386 1192 004c 0C69 ldr r4, [r1, #16] 1193 .loc 1 1279 56 view .LVU387 1194 004e 05F11806 add r6, r5, #24 1195 0052 03EB0613 add r3, r3, r6, lsl #4 1196 0056 5C60 str r4, [r3, #4] 1280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set up the Transmit Global Time mode */ 1282:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pHeader->TransmitGlobalTime == ENABLE) 1197 .loc 1 1282 7 is_stmt 1 view .LVU388 1198 .loc 1 1282 18 is_stmt 0 view .LVU389 1199 0058 0B7D ldrb r3, [r1, #20] @ zero_extendqisi2 1200 .loc 1 1282 10 view .LVU390 1201 005a 012B cmp r3, #1 1202 005c 31D0 beq .L103 1203 .LVL78: 1204 .L101: 1283:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TDTR, CAN_TDT0R_TGT); 1285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set up the data field */ 1288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDHR, 1205 .loc 1 1288 7 is_stmt 1 view .LVU391 1206 005e D179 ldrb r1, [r2, #7] @ zero_extendqisi2 1207 0060 9379 ldrb r3, [r2, #6] @ zero_extendqisi2 1208 0062 1B04 lsls r3, r3, #16 1209 0064 43EA0163 orr r3, r3, r1, lsl #24 1210 0068 5179 ldrb r1, [r2, #5] @ zero_extendqisi2 1211 006a 43EA0123 orr r3, r3, r1, lsl #8 1212 006e 1479 ldrb r4, [r2, #4] @ zero_extendqisi2 1213 0070 0168 ldr r1, [r0] 1214 0072 2343 orrs r3, r3, r4 1215 0074 2C01 lsls r4, r5, #4 1216 0076 2144 add r1, r1, r4 1217 0078 C1F88C31 str r3, [r1, #396] 1289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[7] << CAN_TDH0R_DATA7_Pos) | 1290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[6] << CAN_TDH0R_DATA6_Pos) | 1291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[5] << CAN_TDH0R_DATA5_Pos) | 1292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[4] << CAN_TDH0R_DATA4_Pos)); 1293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDLR, 1218 .loc 1 1293 7 view .LVU392 1219 007c D178 ldrb r1, [r2, #3] @ zero_extendqisi2 1220 007e 9378 ldrb r3, [r2, #2] @ zero_extendqisi2 1221 0080 1B04 lsls r3, r3, #16 ARM GAS /tmp/ccXma6Rl.s page 49 1222 0082 43EA0163 orr r3, r3, r1, lsl #24 1223 0086 5178 ldrb r1, [r2, #1] @ zero_extendqisi2 1224 0088 43EA0123 orr r3, r3, r1, lsl #8 1225 008c 1178 ldrb r1, [r2] @ zero_extendqisi2 1226 008e 0268 ldr r2, [r0] 1227 .LVL79: 1228 .loc 1 1293 7 is_stmt 0 view .LVU393 1229 0090 0B43 orrs r3, r3, r1 1230 0092 2244 add r2, r2, r4 1231 0094 C2F88831 str r3, [r2, #392] 1294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[3] << CAN_TDL0R_DATA3_Pos) | 1295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[2] << CAN_TDL0R_DATA2_Pos) | 1296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[1] << CAN_TDL0R_DATA1_Pos) | 1297:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[0] << CAN_TDL0R_DATA0_Pos)); 1298:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1299:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request transmission */ 1300:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TIR, CAN_TI0R_TXRQ); 1232 .loc 1 1300 7 is_stmt 1 view .LVU394 1233 0098 0168 ldr r1, [r0] 1234 009a 05F11803 add r3, r5, #24 1235 009e 1B01 lsls r3, r3, #4 1236 00a0 CA58 ldr r2, [r1, r3] 1237 00a2 42F00102 orr r2, r2, #1 1238 00a6 CA50 str r2, [r1, r3] 1301:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1302:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 1239 .loc 1 1303 7 view .LVU395 1240 .loc 1 1303 14 is_stmt 0 view .LVU396 1241 00a8 0020 movs r0, #0 1242 .LVL80: 1243 .loc 1 1303 14 view .LVU397 1244 00aa 1DE0 b .L98 1245 .LVL81: 1246 .L99: 1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE | 1247 .loc 1 1273 9 is_stmt 1 view .LVU398 1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE | 1248 .loc 1 1273 68 is_stmt 0 view .LVU399 1249 00ac 4C68 ldr r4, [r1, #4] 1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE | 1250 .loc 1 1273 98 view .LVU400 1251 00ae 43EAC403 orr r3, r3, r4, lsl #3 1275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1252 .loc 1 1275 67 view .LVU401 1253 00b2 CC68 ldr r4, [r1, #12] 1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE | 1254 .loc 1 1273 13 view .LVU402 1255 00b4 0668 ldr r6, [r0] 1274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR); 1256 .loc 1 1274 73 view .LVU403 1257 00b6 2343 orrs r3, r3, r4 1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE | 1258 .loc 1 1273 57 view .LVU404 1259 00b8 05F11804 add r4, r5, #24 1260 00bc 2401 lsls r4, r4, #4 1261 00be 3351 str r3, [r6, r4] ARM GAS /tmp/ccXma6Rl.s page 50 1262 00c0 C3E7 b .L100 1263 .L103: 1284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1264 .loc 1 1284 9 is_stmt 1 view .LVU405 1265 00c2 0368 ldr r3, [r0] 1266 00c4 03EB0613 add r3, r3, r6, lsl #4 1267 00c8 5968 ldr r1, [r3, #4] 1268 .LVL82: 1284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1269 .loc 1 1284 9 is_stmt 0 view .LVU406 1270 00ca 41F48071 orr r1, r1, #256 1271 00ce 5960 str r1, [r3, #4] 1272 00d0 C5E7 b .L101 1273 .LVL83: 1274 .L96: 1304:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1305:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1307:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1308:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; 1275 .loc 1 1308 7 is_stmt 1 view .LVU407 1276 .loc 1 1308 23 is_stmt 0 view .LVU408 1277 00d2 436A ldr r3, [r0, #36] 1278 .LVL84: 1279 .loc 1 1308 23 view .LVU409 1280 00d4 43F40013 orr r3, r3, #2097152 1281 00d8 4362 str r3, [r0, #36] 1309:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1310:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1282 .loc 1 1310 7 is_stmt 1 view .LVU410 1283 .loc 1 1310 14 is_stmt 0 view .LVU411 1284 00da 0120 movs r0, #1 1285 .LVL85: 1286 .loc 1 1310 14 view .LVU412 1287 00dc 04E0 b .L98 1288 .LVL86: 1289 .L95: 1311:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1312:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1313:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1314:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1315:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1316:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1290 .loc 1 1316 5 is_stmt 1 view .LVU413 1291 .loc 1 1316 21 is_stmt 0 view .LVU414 1292 00de 436A ldr r3, [r0, #36] 1293 .LVL87: 1294 .loc 1 1316 21 view .LVU415 1295 00e0 43F48023 orr r3, r3, #262144 1296 00e4 4362 str r3, [r0, #36] 1317:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1318:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1297 .loc 1 1318 5 is_stmt 1 view .LVU416 1298 .loc 1 1318 12 is_stmt 0 view .LVU417 1299 00e6 0120 movs r0, #1 1300 .LVL88: 1301 .L98: ARM GAS /tmp/ccXma6Rl.s page 51 1319:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1302 .loc 1 1320 1 view .LVU418 1303 00e8 70BC pop {r4, r5, r6} 1304 .LCFI12: 1305 .cfi_restore 6 1306 .cfi_restore 5 1307 .cfi_restore 4 1308 .cfi_def_cfa_offset 0 1309 00ea 7047 bx lr 1310 .cfi_endproc 1311 .LFE75: 1313 .section .text.HAL_CAN_AbortTxRequest,"ax",%progbits 1314 .align 1 1315 .global HAL_CAN_AbortTxRequest 1316 .syntax unified 1317 .thumb 1318 .thumb_func 1319 .fpu softvfp 1321 HAL_CAN_AbortTxRequest: 1322 .LVL89: 1323 .LFB76: 1321:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1322:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1323:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Abort transmission requests 1324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1325:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param TxMailboxes List of the Tx Mailboxes to abort. 1327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes. 1328:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 1329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1330:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AbortTxRequest(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes) 1331:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1324 .loc 1 1331 1 is_stmt 1 view -0 1325 .cfi_startproc 1326 @ args = 0, pretend = 0, frame = 0 1327 @ frame_needed = 0, uses_anonymous_args = 0 1328 @ link register save eliminated. 1332:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1329 .loc 1 1332 3 view .LVU420 1330 .loc 1 1332 24 is_stmt 0 view .LVU421 1331 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 1332 .LVL90: 1333:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */ 1335:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes)); 1333 .loc 1 1335 3 is_stmt 1 view .LVU422 1336:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1334 .loc 1 1337 3 view .LVU423 1335 .loc 1 1337 38 is_stmt 0 view .LVU424 1336 0004 013B subs r3, r3, #1 1337 .LVL91: 1338 .loc 1 1337 38 view .LVU425 1339 0006 DBB2 uxtb r3, r3 1340 .loc 1 1337 6 view .LVU426 1341 0008 012B cmp r3, #1 ARM GAS /tmp/ccXma6Rl.s page 52 1342 000a 05D9 bls .L110 1338:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1339:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 0 */ 1341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX0) != 0U) 1342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 0 */ 1344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ0); 1345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 1 */ 1348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX1) != 0U) 1349:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 1 */ 1351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ1); 1352:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1353:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 2 */ 1355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX2) != 0U) 1356:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 2 */ 1358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ2); 1359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 1363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1364:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1367:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1343 .loc 1 1367 5 is_stmt 1 view .LVU427 1344 .loc 1 1367 21 is_stmt 0 view .LVU428 1345 000c 436A ldr r3, [r0, #36] 1346 000e 43F48023 orr r3, r3, #262144 1347 0012 4362 str r3, [r0, #36] 1368:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1348 .loc 1 1369 5 is_stmt 1 view .LVU429 1349 .loc 1 1369 12 is_stmt 0 view .LVU430 1350 0014 0120 movs r0, #1 1351 .LVL92: 1370:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1352 .loc 1 1371 1 view .LVU431 1353 0016 7047 bx lr 1354 .LVL93: 1355 .L110: 1341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1356 .loc 1 1341 5 is_stmt 1 view .LVU432 1341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1357 .loc 1 1341 8 is_stmt 0 view .LVU433 1358 0018 11F0010F tst r1, #1 1359 001c 04D0 beq .L106 1344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1360 .loc 1 1344 7 is_stmt 1 view .LVU434 1361 001e 0268 ldr r2, [r0] ARM GAS /tmp/ccXma6Rl.s page 53 1362 0020 9368 ldr r3, [r2, #8] 1363 0022 43F08003 orr r3, r3, #128 1364 0026 9360 str r3, [r2, #8] 1365 .L106: 1348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1366 .loc 1 1348 5 view .LVU435 1348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1367 .loc 1 1348 8 is_stmt 0 view .LVU436 1368 0028 11F0020F tst r1, #2 1369 002c 04D0 beq .L107 1351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1370 .loc 1 1351 7 is_stmt 1 view .LVU437 1371 002e 0268 ldr r2, [r0] 1372 0030 9368 ldr r3, [r2, #8] 1373 0032 43F40043 orr r3, r3, #32768 1374 0036 9360 str r3, [r2, #8] 1375 .L107: 1355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1376 .loc 1 1355 5 view .LVU438 1355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1377 .loc 1 1355 8 is_stmt 0 view .LVU439 1378 0038 11F0040F tst r1, #4 1379 003c 04D0 beq .L108 1358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1380 .loc 1 1358 7 is_stmt 1 view .LVU440 1381 003e 0268 ldr r2, [r0] 1382 0040 9368 ldr r3, [r2, #8] 1383 0042 43F40003 orr r3, r3, #8388608 1384 0046 9360 str r3, [r2, #8] 1385 .L108: 1362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1386 .loc 1 1362 5 view .LVU441 1362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1387 .loc 1 1362 12 is_stmt 0 view .LVU442 1388 0048 0020 movs r0, #0 1389 .LVL94: 1362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1390 .loc 1 1362 12 view .LVU443 1391 004a 7047 bx lr 1392 .cfi_endproc 1393 .LFE76: 1395 .section .text.HAL_CAN_GetTxMailboxesFreeLevel,"ax",%progbits 1396 .align 1 1397 .global HAL_CAN_GetTxMailboxesFreeLevel 1398 .syntax unified 1399 .thumb 1400 .thumb_func 1401 .fpu softvfp 1403 HAL_CAN_GetTxMailboxesFreeLevel: 1404 .LVL95: 1405 .LFB77: 1372:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1373:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1374:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return Tx Mailboxes free level: number of free Tx Mailboxes. 1375:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1377:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Number of free Tx Mailboxes. ARM GAS /tmp/ccXma6Rl.s page 54 1378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1379:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_GetTxMailboxesFreeLevel(CAN_HandleTypeDef *hcan) 1380:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1406 .loc 1 1380 1 is_stmt 1 view -0 1407 .cfi_startproc 1408 @ args = 0, pretend = 0, frame = 0 1409 @ frame_needed = 0, uses_anonymous_args = 0 1410 @ link register save eliminated. 1381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t freelevel = 0U; 1411 .loc 1 1381 3 view .LVU445 1382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1412 .loc 1 1382 3 view .LVU446 1413 .loc 1 1382 24 is_stmt 0 view .LVU447 1414 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 1415 .LVL96: 1383:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1384:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1416 .loc 1 1384 3 is_stmt 1 view .LVU448 1417 .loc 1 1384 38 is_stmt 0 view .LVU449 1418 0004 013B subs r3, r3, #1 1419 .LVL97: 1420 .loc 1 1384 38 view .LVU450 1421 0006 DBB2 uxtb r3, r3 1422 .loc 1 1384 6 view .LVU451 1423 0008 012B cmp r3, #1 1424 000a 01D9 bls .L117 1381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1425 .loc 1 1381 12 view .LVU452 1426 000c 0020 movs r0, #0 1427 .LVL98: 1385:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1387:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 0 status */ 1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME0) != 0U) 1389:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** freelevel++; 1391:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1393:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 1 status */ 1394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME1) != 0U) 1395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** freelevel++; 1397:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1399:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 2 status */ 1400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME2) != 0U) 1401:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** freelevel++; 1403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1404:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1405:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return Tx Mailboxes free level */ 1407:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return freelevel; 1428 .loc 1 1407 3 is_stmt 1 view .LVU453 1429 .L111: 1408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1430 .loc 1 1408 1 is_stmt 0 view .LVU454 ARM GAS /tmp/ccXma6Rl.s page 55 1431 000e 7047 bx lr 1432 .LVL99: 1433 .L117: 1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1434 .loc 1 1388 5 is_stmt 1 view .LVU455 1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1435 .loc 1 1388 14 is_stmt 0 view .LVU456 1436 0010 0368 ldr r3, [r0] 1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1437 .loc 1 1388 24 view .LVU457 1438 0012 9A68 ldr r2, [r3, #8] 1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1439 .loc 1 1388 8 view .LVU458 1440 0014 12F0806F tst r2, #67108864 1441 0018 0BD1 bne .L116 1381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1442 .loc 1 1381 12 view .LVU459 1443 001a 0020 movs r0, #0 1444 .LVL100: 1445 .L113: 1394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1446 .loc 1 1394 5 is_stmt 1 view .LVU460 1394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1447 .loc 1 1394 24 is_stmt 0 view .LVU461 1448 001c 9A68 ldr r2, [r3, #8] 1394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1449 .loc 1 1394 8 view .LVU462 1450 001e 12F0006F tst r2, #134217728 1451 0022 00D0 beq .L114 1396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1452 .loc 1 1396 7 is_stmt 1 view .LVU463 1396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1453 .loc 1 1396 16 is_stmt 0 view .LVU464 1454 0024 0130 adds r0, r0, #1 1455 .LVL101: 1456 .L114: 1400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1457 .loc 1 1400 5 is_stmt 1 view .LVU465 1400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1458 .loc 1 1400 24 is_stmt 0 view .LVU466 1459 0026 9B68 ldr r3, [r3, #8] 1400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1460 .loc 1 1400 8 view .LVU467 1461 0028 13F0805F tst r3, #268435456 1462 002c EFD0 beq .L111 1402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1463 .loc 1 1402 7 is_stmt 1 view .LVU468 1402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1464 .loc 1 1402 16 is_stmt 0 view .LVU469 1465 002e 0130 adds r0, r0, #1 1466 .LVL102: 1402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1467 .loc 1 1402 16 view .LVU470 1468 0030 7047 bx lr 1469 .LVL103: 1470 .L116: 1390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } ARM GAS /tmp/ccXma6Rl.s page 56 1471 .loc 1 1390 16 view .LVU471 1472 0032 0120 movs r0, #1 1473 .LVL104: 1390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1474 .loc 1 1390 16 view .LVU472 1475 0034 F2E7 b .L113 1476 .cfi_endproc 1477 .LFE77: 1479 .section .text.HAL_CAN_IsTxMessagePending,"ax",%progbits 1480 .align 1 1481 .global HAL_CAN_IsTxMessagePending 1482 .syntax unified 1483 .thumb 1484 .thumb_func 1485 .fpu softvfp 1487 HAL_CAN_IsTxMessagePending: 1488 .LVL105: 1489 .LFB78: 1409:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1410:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Check if a transmission request is pending on the selected Tx 1412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * Mailboxes. 1413:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1414:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1415:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param TxMailboxes List of Tx Mailboxes to check. 1416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes. 1417:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Status 1418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * - 0 : No pending transmission request on any selected Tx Mailboxes. 1419:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * - 1 : Pending transmission request on at least one of the selected 1420:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * Tx Mailbox. 1421:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1422:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_IsTxMessagePending(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes) 1423:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1490 .loc 1 1423 1 is_stmt 1 view -0 1491 .cfi_startproc 1492 @ args = 0, pretend = 0, frame = 0 1493 @ frame_needed = 0, uses_anonymous_args = 0 1494 @ link register save eliminated. 1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t status = 0U; 1495 .loc 1 1424 3 view .LVU474 1425:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1496 .loc 1 1425 3 view .LVU475 1497 .loc 1 1425 24 is_stmt 0 view .LVU476 1498 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 1499 .LVL106: 1426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1427:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */ 1428:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes)); 1500 .loc 1 1428 3 is_stmt 1 view .LVU477 1429:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1430:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1501 .loc 1 1430 3 view .LVU478 1502 .loc 1 1430 38 is_stmt 0 view .LVU479 1503 0004 013B subs r3, r3, #1 1504 .LVL107: 1505 .loc 1 1430 38 view .LVU480 1506 0006 DBB2 uxtb r3, r3 ARM GAS /tmp/ccXma6Rl.s page 57 1507 .loc 1 1430 6 view .LVU481 1508 0008 012B cmp r3, #1 1509 000a 01D9 bls .L122 1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1510 .loc 1 1424 12 view .LVU482 1511 000c 0020 movs r0, #0 1512 .LVL108: 1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1513 .loc 1 1424 12 view .LVU483 1514 000e 7047 bx lr 1515 .LVL109: 1516 .L122: 1431:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1433:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check pending transmission request on the selected Tx Mailboxes */ 1434:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->TSR & (TxMailboxes << CAN_TSR_TME0_Pos)) != (TxMailboxes << CAN_TSR_TME0_P 1517 .loc 1 1434 5 is_stmt 1 view .LVU484 1518 .loc 1 1434 14 is_stmt 0 view .LVU485 1519 0010 0368 ldr r3, [r0] 1520 .loc 1 1434 24 view .LVU486 1521 0012 9B68 ldr r3, [r3, #8] 1522 .loc 1 1434 45 view .LVU487 1523 0014 8906 lsls r1, r1, #26 1524 .LVL110: 1525 .loc 1 1434 8 view .LVU488 1526 0016 31EA0303 bics r3, r1, r3 1527 001a 01D0 beq .L123 1435:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1436:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = 1U; 1528 .loc 1 1436 14 view .LVU489 1529 001c 0120 movs r0, #1 1530 .LVL111: 1437:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1438:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1439:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1440:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return status */ 1441:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status; 1531 .loc 1 1441 3 is_stmt 1 view .LVU490 1442:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1532 .loc 1 1442 1 is_stmt 0 view .LVU491 1533 001e 7047 bx lr 1534 .LVL112: 1535 .L123: 1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1536 .loc 1 1424 12 view .LVU492 1537 0020 0020 movs r0, #0 1538 .LVL113: 1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1539 .loc 1 1424 12 view .LVU493 1540 0022 7047 bx lr 1541 .cfi_endproc 1542 .LFE78: 1544 .section .text.HAL_CAN_GetTxTimestamp,"ax",%progbits 1545 .align 1 1546 .global HAL_CAN_GetTxTimestamp 1547 .syntax unified 1548 .thumb ARM GAS /tmp/ccXma6Rl.s page 58 1549 .thumb_func 1550 .fpu softvfp 1552 HAL_CAN_GetTxTimestamp: 1553 .LVL114: 1554 .LFB79: 1443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1444:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1445:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return timestamp of Tx message sent, if time triggered communication 1446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** mode is enabled. 1447:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1448:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param TxMailbox Tx Mailbox where the timestamp of message sent will be 1450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * read. 1451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be one value of @arg CAN_Tx_Mailboxes. 1452:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Timestamp of message sent from Tx Mailbox. 1453:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1454:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_GetTxTimestamp(CAN_HandleTypeDef *hcan, uint32_t TxMailbox) 1455:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1555 .loc 1 1455 1 is_stmt 1 view -0 1556 .cfi_startproc 1557 @ args = 0, pretend = 0, frame = 0 1558 @ frame_needed = 0, uses_anonymous_args = 0 1559 @ link register save eliminated. 1456:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t timestamp = 0U; 1560 .loc 1 1456 3 view .LVU495 1457:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t transmitmailbox; 1561 .loc 1 1457 3 view .LVU496 1458:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1562 .loc 1 1458 3 view .LVU497 1563 .loc 1 1458 24 is_stmt 0 view .LVU498 1564 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 1565 .LVL115: 1459:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */ 1461:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX(TxMailbox)); 1566 .loc 1 1461 3 is_stmt 1 view .LVU499 1462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1567 .loc 1 1463 3 view .LVU500 1568 .loc 1 1463 38 is_stmt 0 view .LVU501 1569 0004 013B subs r3, r3, #1 1570 .LVL116: 1571 .loc 1 1463 38 view .LVU502 1572 0006 DBB2 uxtb r3, r3 1573 .loc 1 1463 6 view .LVU503 1574 0008 012B cmp r3, #1 1575 000a 01D9 bls .L127 1456:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t transmitmailbox; 1576 .loc 1 1456 12 view .LVU504 1577 000c 0020 movs r0, #0 1578 .LVL117: 1464:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1465:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1466:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Select the Tx mailbox */ 1467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** transmitmailbox = POSITION_VAL(TxMailbox); 1468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1469:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get timestamp */ ARM GAS /tmp/ccXma6Rl.s page 59 1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** timestamp = (hcan->Instance->sTxMailBox[transmitmailbox].TDTR & CAN_TDT0R_TIME) >> CAN_TDT0R_TI 1471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1472:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1473:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return the timestamp */ 1474:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return timestamp; 1579 .loc 1 1474 3 is_stmt 1 view .LVU505 1475:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1580 .loc 1 1475 1 is_stmt 0 view .LVU506 1581 000e 7047 bx lr 1582 .LVL118: 1583 .L127: 1467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1584 .loc 1 1467 5 is_stmt 1 view .LVU507 1585 .LBB4: 1586 .LBI4: 1587 .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 ARM GAS /tmp/ccXma6Rl.s page 60 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; 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; }; ARM GAS /tmp/ccXma6Rl.s page 61 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 116:Drivers/CMSIS/Include/cmsis_gcc.h **** 117:Drivers/CMSIS/Include/cmsis_gcc.h **** 118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ 119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface 120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions 121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 122:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 123:Drivers/CMSIS/Include/cmsis_gcc.h **** 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. 127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 128:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) 130:Drivers/CMSIS/Include/cmsis_gcc.h **** { 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); 132:Drivers/CMSIS/Include/cmsis_gcc.h **** } 133:Drivers/CMSIS/Include/cmsis_gcc.h **** 134:Drivers/CMSIS/Include/cmsis_gcc.h **** 135:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts 137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. 138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 139:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) 141:Drivers/CMSIS/Include/cmsis_gcc.h **** { 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); 143:Drivers/CMSIS/Include/cmsis_gcc.h **** } 144:Drivers/CMSIS/Include/cmsis_gcc.h **** 145:Drivers/CMSIS/Include/cmsis_gcc.h **** 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register 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) ); ARM GAS /tmp/ccXma6Rl.s page 62 156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 157:Drivers/CMSIS/Include/cmsis_gcc.h **** } 158:Drivers/CMSIS/Include/cmsis_gcc.h **** 159:Drivers/CMSIS/Include/cmsis_gcc.h **** 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) 163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. 164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value 165:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) 167:Drivers/CMSIS/Include/cmsis_gcc.h **** { 168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 169:Drivers/CMSIS/Include/cmsis_gcc.h **** 170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); 171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 172:Drivers/CMSIS/Include/cmsis_gcc.h **** } 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 174:Drivers/CMSIS/Include/cmsis_gcc.h **** 175:Drivers/CMSIS/Include/cmsis_gcc.h **** 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register 178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. 179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 180:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) 182:Drivers/CMSIS/Include/cmsis_gcc.h **** { 183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); 184:Drivers/CMSIS/Include/cmsis_gcc.h **** } 185:Drivers/CMSIS/Include/cmsis_gcc.h **** 186:Drivers/CMSIS/Include/cmsis_gcc.h **** 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) 190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. 191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 192:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) 194:Drivers/CMSIS/Include/cmsis_gcc.h **** { 195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); 196:Drivers/CMSIS/Include/cmsis_gcc.h **** } 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 198:Drivers/CMSIS/Include/cmsis_gcc.h **** 199:Drivers/CMSIS/Include/cmsis_gcc.h **** 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register 202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value 204:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 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 **** ARM GAS /tmp/ccXma6Rl.s page 63 213:Drivers/CMSIS/Include/cmsis_gcc.h **** 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. 217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value 218:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) 220:Drivers/CMSIS/Include/cmsis_gcc.h **** { 221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 222:Drivers/CMSIS/Include/cmsis_gcc.h **** 223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); 224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 225:Drivers/CMSIS/Include/cmsis_gcc.h **** } 226:Drivers/CMSIS/Include/cmsis_gcc.h **** 227:Drivers/CMSIS/Include/cmsis_gcc.h **** 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } 240:Drivers/CMSIS/Include/cmsis_gcc.h **** 241:Drivers/CMSIS/Include/cmsis_gcc.h **** 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 246:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) 248:Drivers/CMSIS/Include/cmsis_gcc.h **** { 249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 250:Drivers/CMSIS/Include/cmsis_gcc.h **** 251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); 252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 253:Drivers/CMSIS/Include/cmsis_gcc.h **** } 254:Drivers/CMSIS/Include/cmsis_gcc.h **** 255:Drivers/CMSIS/Include/cmsis_gcc.h **** 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) 259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s 260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 261:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 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 ARM GAS /tmp/ccXma6Rl.s page 64 270:Drivers/CMSIS/Include/cmsis_gcc.h **** 271:Drivers/CMSIS/Include/cmsis_gcc.h **** 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer 274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). 275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 276:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) 278:Drivers/CMSIS/Include/cmsis_gcc.h **** { 279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); 280:Drivers/CMSIS/Include/cmsis_gcc.h **** } 281:Drivers/CMSIS/Include/cmsis_gcc.h **** 282:Drivers/CMSIS/Include/cmsis_gcc.h **** 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 288:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) 290:Drivers/CMSIS/Include/cmsis_gcc.h **** { 291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 294:Drivers/CMSIS/Include/cmsis_gcc.h **** 295:Drivers/CMSIS/Include/cmsis_gcc.h **** 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). 299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 300:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) 302:Drivers/CMSIS/Include/cmsis_gcc.h **** { 303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 304:Drivers/CMSIS/Include/cmsis_gcc.h **** 305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); 306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 307:Drivers/CMSIS/Include/cmsis_gcc.h **** } 308:Drivers/CMSIS/Include/cmsis_gcc.h **** 309:Drivers/CMSIS/Include/cmsis_gcc.h **** 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) 313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat 314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 315:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) 317:Drivers/CMSIS/Include/cmsis_gcc.h **** { 318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 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 **** /** ARM GAS /tmp/ccXma6Rl.s page 65 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer 328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). 329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 330:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) 332:Drivers/CMSIS/Include/cmsis_gcc.h **** { 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); 334:Drivers/CMSIS/Include/cmsis_gcc.h **** } 335:Drivers/CMSIS/Include/cmsis_gcc.h **** 336:Drivers/CMSIS/Include/cmsis_gcc.h **** 337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 338:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 342:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) 344:Drivers/CMSIS/Include/cmsis_gcc.h **** { 345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); 346:Drivers/CMSIS/Include/cmsis_gcc.h **** } 347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 348:Drivers/CMSIS/Include/cmsis_gcc.h **** 349:Drivers/CMSIS/Include/cmsis_gcc.h **** 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { 358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 359:Drivers/CMSIS/Include/cmsis_gcc.h **** 360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); 361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 362:Drivers/CMSIS/Include/cmsis_gcc.h **** } 363:Drivers/CMSIS/Include/cmsis_gcc.h **** 364:Drivers/CMSIS/Include/cmsis_gcc.h **** 365:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) 367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. 368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set 369:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) 371:Drivers/CMSIS/Include/cmsis_gcc.h **** { 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); 373:Drivers/CMSIS/Include/cmsis_gcc.h **** } 374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 375:Drivers/CMSIS/Include/cmsis_gcc.h **** 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 **** { ARM GAS /tmp/ccXma6Rl.s page 66 384:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 385:Drivers/CMSIS/Include/cmsis_gcc.h **** 386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); 387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 388:Drivers/CMSIS/Include/cmsis_gcc.h **** } 389:Drivers/CMSIS/Include/cmsis_gcc.h **** 390:Drivers/CMSIS/Include/cmsis_gcc.h **** 391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 392:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value 396:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) 398:Drivers/CMSIS/Include/cmsis_gcc.h **** { 399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 400:Drivers/CMSIS/Include/cmsis_gcc.h **** 401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); 402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 403:Drivers/CMSIS/Include/cmsis_gcc.h **** } 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 405:Drivers/CMSIS/Include/cmsis_gcc.h **** 406:Drivers/CMSIS/Include/cmsis_gcc.h **** 407:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask 409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. 410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 411:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) 413:Drivers/CMSIS/Include/cmsis_gcc.h **** { 414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); 415:Drivers/CMSIS/Include/cmsis_gcc.h **** } 416:Drivers/CMSIS/Include/cmsis_gcc.h **** 417:Drivers/CMSIS/Include/cmsis_gcc.h **** 418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 419:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. 422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 423:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) 425:Drivers/CMSIS/Include/cmsis_gcc.h **** { 426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); 427:Drivers/CMSIS/Include/cmsis_gcc.h **** } 428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 429:Drivers/CMSIS/Include/cmsis_gcc.h **** 430:Drivers/CMSIS/Include/cmsis_gcc.h **** 431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 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 **** { ARM GAS /tmp/ccXma6Rl.s page 67 441:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); 442:Drivers/CMSIS/Include/cmsis_gcc.h **** } 443:Drivers/CMSIS/Include/cmsis_gcc.h **** 444:Drivers/CMSIS/Include/cmsis_gcc.h **** 445:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. 448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 449:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) 451:Drivers/CMSIS/Include/cmsis_gcc.h **** { 452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); 453:Drivers/CMSIS/Include/cmsis_gcc.h **** } 454:Drivers/CMSIS/Include/cmsis_gcc.h **** 455:Drivers/CMSIS/Include/cmsis_gcc.h **** 456:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority 458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. 459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value 460:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) 462:Drivers/CMSIS/Include/cmsis_gcc.h **** { 463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 464:Drivers/CMSIS/Include/cmsis_gcc.h **** 465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); 466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 467:Drivers/CMSIS/Include/cmsis_gcc.h **** } 468:Drivers/CMSIS/Include/cmsis_gcc.h **** 469:Drivers/CMSIS/Include/cmsis_gcc.h **** 470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 471:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) 473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. 474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value 475:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) 477:Drivers/CMSIS/Include/cmsis_gcc.h **** { 478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 479:Drivers/CMSIS/Include/cmsis_gcc.h **** 480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); 481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } 483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 484:Drivers/CMSIS/Include/cmsis_gcc.h **** 485:Drivers/CMSIS/Include/cmsis_gcc.h **** 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 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)) ARM GAS /tmp/ccXma6Rl.s page 68 498:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) 500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. 501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 502:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) 504:Drivers/CMSIS/Include/cmsis_gcc.h **** { 505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); 506:Drivers/CMSIS/Include/cmsis_gcc.h **** } 507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 508:Drivers/CMSIS/Include/cmsis_gcc.h **** 509:Drivers/CMSIS/Include/cmsis_gcc.h **** 510:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition 512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable 513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 515:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) 517:Drivers/CMSIS/Include/cmsis_gcc.h **** { 518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); 519:Drivers/CMSIS/Include/cmsis_gcc.h **** } 520:Drivers/CMSIS/Include/cmsis_gcc.h **** 521:Drivers/CMSIS/Include/cmsis_gcc.h **** 522:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 526:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) 528:Drivers/CMSIS/Include/cmsis_gcc.h **** { 529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 530:Drivers/CMSIS/Include/cmsis_gcc.h **** 531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); 532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 533:Drivers/CMSIS/Include/cmsis_gcc.h **** } 534:Drivers/CMSIS/Include/cmsis_gcc.h **** 535:Drivers/CMSIS/Include/cmsis_gcc.h **** 536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 537:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 541:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) 543:Drivers/CMSIS/Include/cmsis_gcc.h **** { 544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 545:Drivers/CMSIS/Include/cmsis_gcc.h **** 546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); 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. ARM GAS /tmp/ccXma6Rl.s page 69 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set 556:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) 558:Drivers/CMSIS/Include/cmsis_gcc.h **** { 559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); 560:Drivers/CMSIS/Include/cmsis_gcc.h **** } 561:Drivers/CMSIS/Include/cmsis_gcc.h **** 562:Drivers/CMSIS/Include/cmsis_gcc.h **** 563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 564:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set 568:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) 570:Drivers/CMSIS/Include/cmsis_gcc.h **** { 571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); 572:Drivers/CMSIS/Include/cmsis_gcc.h **** } 573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 574:Drivers/CMSIS/Include/cmsis_gcc.h **** 575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ 578:Drivers/CMSIS/Include/cmsis_gcc.h **** 579:Drivers/CMSIS/Include/cmsis_gcc.h **** 580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) 582:Drivers/CMSIS/Include/cmsis_gcc.h **** 583:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit 585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 588:Drivers/CMSIS/Include/cmsis_gcc.h **** 589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value 591:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) 593:Drivers/CMSIS/Include/cmsis_gcc.h **** { 594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); 601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 603:Drivers/CMSIS/Include/cmsis_gcc.h **** } 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 ARM GAS /tmp/ccXma6Rl.s page 70 612:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value 613:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) 615:Drivers/CMSIS/Include/cmsis_gcc.h **** { 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); 622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 624:Drivers/CMSIS/Include/cmsis_gcc.h **** } 625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 626:Drivers/CMSIS/Include/cmsis_gcc.h **** 627:Drivers/CMSIS/Include/cmsis_gcc.h **** 628:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit 630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure 632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 633:Drivers/CMSIS/Include/cmsis_gcc.h **** 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). 635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 636:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) 638:Drivers/CMSIS/Include/cmsis_gcc.h **** { 639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; 643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); 645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 646:Drivers/CMSIS/Include/cmsis_gcc.h **** } 647:Drivers/CMSIS/Include/cmsis_gcc.h **** 648:Drivers/CMSIS/Include/cmsis_gcc.h **** 649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 654:Drivers/CMSIS/Include/cmsis_gcc.h **** 655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 657:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) 659:Drivers/CMSIS/Include/cmsis_gcc.h **** { 660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 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 **** ARM GAS /tmp/ccXma6Rl.s page 71 669:Drivers/CMSIS/Include/cmsis_gcc.h **** 670:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit 672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 675:Drivers/CMSIS/Include/cmsis_gcc.h **** 676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). 677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 678:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) 680:Drivers/CMSIS/Include/cmsis_gcc.h **** { 681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); 688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 690:Drivers/CMSIS/Include/cmsis_gcc.h **** } 691:Drivers/CMSIS/Include/cmsis_gcc.h **** 692:Drivers/CMSIS/Include/cmsis_gcc.h **** 693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 694:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) 696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. 698:Drivers/CMSIS/Include/cmsis_gcc.h **** 699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec 700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 701:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) 703:Drivers/CMSIS/Include/cmsis_gcc.h **** { 704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); 710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 712:Drivers/CMSIS/Include/cmsis_gcc.h **** } 713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 714:Drivers/CMSIS/Include/cmsis_gcc.h **** 715:Drivers/CMSIS/Include/cmsis_gcc.h **** 716:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit 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) ARM GAS /tmp/ccXma6Rl.s page 72 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); 733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 734:Drivers/CMSIS/Include/cmsis_gcc.h **** } 735:Drivers/CMSIS/Include/cmsis_gcc.h **** 736:Drivers/CMSIS/Include/cmsis_gcc.h **** 737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 738:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 742:Drivers/CMSIS/Include/cmsis_gcc.h **** 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); 753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 754:Drivers/CMSIS/Include/cmsis_gcc.h **** } 755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 756:Drivers/CMSIS/Include/cmsis_gcc.h **** 757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ 759:Drivers/CMSIS/Include/cmsis_gcc.h **** 760:Drivers/CMSIS/Include/cmsis_gcc.h **** 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR 763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. 764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value 765:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) 767:Drivers/CMSIS/Include/cmsis_gcc.h **** { 768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) 771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); 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); ARM GAS /tmp/ccXma6Rl.s page 73 783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 784:Drivers/CMSIS/Include/cmsis_gcc.h **** } 785:Drivers/CMSIS/Include/cmsis_gcc.h **** 786:Drivers/CMSIS/Include/cmsis_gcc.h **** 787:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) 797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed 798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); 801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); 803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; 806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 807:Drivers/CMSIS/Include/cmsis_gcc.h **** } 808:Drivers/CMSIS/Include/cmsis_gcc.h **** 809:Drivers/CMSIS/Include/cmsis_gcc.h **** 810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ 811:Drivers/CMSIS/Include/cmsis_gcc.h **** 812:Drivers/CMSIS/Include/cmsis_gcc.h **** 813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ 814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface 815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions 816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 817:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 818:Drivers/CMSIS/Include/cmsis_gcc.h **** 819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. 820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" 821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) 823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) 825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) 826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) 828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) 829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) 830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 831:Drivers/CMSIS/Include/cmsis_gcc.h **** 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 ARM GAS /tmp/ccXma6Rl.s page 74 840:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o 841:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") 843:Drivers/CMSIS/Include/cmsis_gcc.h **** 844:Drivers/CMSIS/Include/cmsis_gcc.h **** 845:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event 847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter 848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. 849:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") 851:Drivers/CMSIS/Include/cmsis_gcc.h **** 852:Drivers/CMSIS/Include/cmsis_gcc.h **** 853:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. 856:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") 858:Drivers/CMSIS/Include/cmsis_gcc.h **** 859:Drivers/CMSIS/Include/cmsis_gcc.h **** 860:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier 862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, 863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, 864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. 865:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) 867:Drivers/CMSIS/Include/cmsis_gcc.h **** { 868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); 869:Drivers/CMSIS/Include/cmsis_gcc.h **** } 870:Drivers/CMSIS/Include/cmsis_gcc.h **** 871:Drivers/CMSIS/Include/cmsis_gcc.h **** 872:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier 874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. 875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. 876:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) 878:Drivers/CMSIS/Include/cmsis_gcc.h **** { 879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); 880:Drivers/CMSIS/Include/cmsis_gcc.h **** } 881:Drivers/CMSIS/Include/cmsis_gcc.h **** 882:Drivers/CMSIS/Include/cmsis_gcc.h **** 883:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier 885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before 886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. 887:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) 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 ARM GAS /tmp/ccXma6Rl.s page 75 897:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 899:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) 901:Drivers/CMSIS/Include/cmsis_gcc.h **** { 902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) 903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); 904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 906:Drivers/CMSIS/Include/cmsis_gcc.h **** 907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 910:Drivers/CMSIS/Include/cmsis_gcc.h **** } 911:Drivers/CMSIS/Include/cmsis_gcc.h **** 912:Drivers/CMSIS/Include/cmsis_gcc.h **** 913:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 918:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) 920:Drivers/CMSIS/Include/cmsis_gcc.h **** { 921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 922:Drivers/CMSIS/Include/cmsis_gcc.h **** 923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 925:Drivers/CMSIS/Include/cmsis_gcc.h **** } 926:Drivers/CMSIS/Include/cmsis_gcc.h **** 927:Drivers/CMSIS/Include/cmsis_gcc.h **** 928:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 930:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam 931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 933:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) 935:Drivers/CMSIS/Include/cmsis_gcc.h **** { 936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) 937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); 938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; 940:Drivers/CMSIS/Include/cmsis_gcc.h **** 941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 944:Drivers/CMSIS/Include/cmsis_gcc.h **** } 945:Drivers/CMSIS/Include/cmsis_gcc.h **** 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 **** */ ARM GAS /tmp/ccXma6Rl.s page 76 954:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) 955:Drivers/CMSIS/Include/cmsis_gcc.h **** { 956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; 957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) 958:Drivers/CMSIS/Include/cmsis_gcc.h **** { 959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; 960:Drivers/CMSIS/Include/cmsis_gcc.h **** } 961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); 962:Drivers/CMSIS/Include/cmsis_gcc.h **** } 963:Drivers/CMSIS/Include/cmsis_gcc.h **** 964:Drivers/CMSIS/Include/cmsis_gcc.h **** 965:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint 967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. 968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula 969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. 970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break 971:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) 973:Drivers/CMSIS/Include/cmsis_gcc.h **** 974:Drivers/CMSIS/Include/cmsis_gcc.h **** 975:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value 977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. 978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 980:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) 1588 .loc 2 981 31 view .LVU508 1589 .LBB5: 982:Drivers/CMSIS/Include/cmsis_gcc.h **** { 983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 1590 .loc 2 983 3 view .LVU509 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) ); 1591 .loc 2 988 4 view .LVU510 1592 .syntax unified 1593 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1594 0010 91FAA1F1 rbit r1, r1 1595 @ 0 "" 2 1596 .LVL119: 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; ARM GAS /tmp/ccXma6Rl.s page 77 1597 .loc 2 1001 3 view .LVU511 1598 .loc 2 1001 3 is_stmt 0 view .LVU512 1599 .thumb 1600 .syntax unified 1601 .LBE5: 1602 .LBE4: 1467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1603 .loc 1 1467 21 view .LVU513 1604 0014 B1FA81F1 clz r1, r1 1605 .LVL120: 1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1606 .loc 1 1470 5 is_stmt 1 view .LVU514 1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1607 .loc 1 1470 22 is_stmt 0 view .LVU515 1608 0018 0368 ldr r3, [r0] 1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1609 .loc 1 1470 61 view .LVU516 1610 001a 1831 adds r1, r1, #24 1611 .LVL121: 1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1612 .loc 1 1470 61 view .LVU517 1613 001c 03EB0111 add r1, r3, r1, lsl #4 1614 .LVL122: 1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1615 .loc 1 1470 61 view .LVU518 1616 0020 4868 ldr r0, [r1, #4] 1617 .LVL123: 1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1618 .loc 1 1470 85 view .LVU519 1619 0022 000C lsrs r0, r0, #16 1620 .LVL124: 1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1621 .loc 1 1470 85 view .LVU520 1622 0024 7047 bx lr 1623 .cfi_endproc 1624 .LFE79: 1626 .section .text.HAL_CAN_GetRxMessage,"ax",%progbits 1627 .align 1 1628 .global HAL_CAN_GetRxMessage 1629 .syntax unified 1630 .thumb 1631 .thumb_func 1632 .fpu softvfp 1634 HAL_CAN_GetRxMessage: 1635 .LVL125: 1636 .LFB80: 1476:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1477:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1478:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Get an CAN frame from the Rx FIFO zone into the message RAM. 1479:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1480:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1481:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param RxFifo Fifo number of the received message to be read. 1482:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number. 1483:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param pHeader pointer to a CAN_RxHeaderTypeDef structure where the header 1484:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * of the Rx frame will be stored. 1485:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param aData array where the payload of the Rx frame will be stored. 1486:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status ARM GAS /tmp/ccXma6Rl.s page 78 1487:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1488:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_GetRxMessage(CAN_HandleTypeDef *hcan, uint32_t RxFifo, CAN_RxHeaderTypeDe 1489:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1637 .loc 1 1489 1 is_stmt 1 view -0 1638 .cfi_startproc 1639 @ args = 0, pretend = 0, frame = 0 1640 @ frame_needed = 0, uses_anonymous_args = 0 1641 @ link register save eliminated. 1642 .loc 1 1489 1 is_stmt 0 view .LVU522 1643 0000 30B4 push {r4, r5} 1644 .LCFI13: 1645 .cfi_def_cfa_offset 8 1646 .cfi_offset 4, -8 1647 .cfi_offset 5, -4 1490:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1648 .loc 1 1490 3 is_stmt 1 view .LVU523 1649 .loc 1 1490 24 is_stmt 0 view .LVU524 1650 0002 90F82040 ldrb r4, [r0, #32] @ zero_extendqisi2 1651 .LVL126: 1491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1492:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo)); 1652 .loc 1 1492 3 is_stmt 1 view .LVU525 1493:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1653 .loc 1 1494 3 view .LVU526 1654 .loc 1 1494 38 is_stmt 0 view .LVU527 1655 0006 013C subs r4, r4, #1 1656 .LVL127: 1657 .loc 1 1494 38 view .LVU528 1658 0008 E4B2 uxtb r4, r4 1659 .loc 1 1494 6 view .LVU529 1660 000a 012C cmp r4, #1 1661 000c 00F28A80 bhi .L129 1495:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1496:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the Rx FIFO */ 1498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */ 1662 .loc 1 1498 5 is_stmt 1 view .LVU530 1663 .loc 1 1498 8 is_stmt 0 view .LVU531 1664 0010 51B9 cbnz r1, .L130 1499:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1500:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check that the Rx FIFO 0 is not empty */ 1501:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) == 0U) 1665 .loc 1 1501 7 is_stmt 1 view .LVU532 1666 .loc 1 1501 16 is_stmt 0 view .LVU533 1667 0012 0468 ldr r4, [r0] 1668 .loc 1 1501 26 view .LVU534 1669 0014 E468 ldr r4, [r4, #12] 1670 .loc 1 1501 10 view .LVU535 1671 0016 14F0030F tst r4, #3 1672 001a 10D1 bne .L131 1502:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1503:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1504:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; 1673 .loc 1 1504 9 is_stmt 1 view .LVU536 1674 .loc 1 1504 25 is_stmt 0 view .LVU537 1675 001c 436A ldr r3, [r0, #36] ARM GAS /tmp/ccXma6Rl.s page 79 1676 .LVL128: 1677 .loc 1 1504 25 view .LVU538 1678 001e 43F40013 orr r3, r3, #2097152 1679 0022 4362 str r3, [r0, #36] 1505:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1506:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1680 .loc 1 1506 9 is_stmt 1 view .LVU539 1681 .loc 1 1506 16 is_stmt 0 view .LVU540 1682 0024 0120 movs r0, #1 1683 .LVL129: 1684 .loc 1 1506 16 view .LVU541 1685 0026 82E0 b .L132 1686 .LVL130: 1687 .L130: 1507:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1508:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1509:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */ 1510:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1511:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check that the Rx FIFO 1 is not empty */ 1512:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) == 0U) 1688 .loc 1 1512 7 is_stmt 1 view .LVU542 1689 .loc 1 1512 16 is_stmt 0 view .LVU543 1690 0028 0468 ldr r4, [r0] 1691 .loc 1 1512 26 view .LVU544 1692 002a 2469 ldr r4, [r4, #16] 1693 .loc 1 1512 10 view .LVU545 1694 002c 14F0030F tst r4, #3 1695 0030 05D1 bne .L131 1513:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1514:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1515:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM; 1696 .loc 1 1515 9 is_stmt 1 view .LVU546 1697 .loc 1 1515 25 is_stmt 0 view .LVU547 1698 0032 436A ldr r3, [r0, #36] 1699 .LVL131: 1700 .loc 1 1515 25 view .LVU548 1701 0034 43F40013 orr r3, r3, #2097152 1702 0038 4362 str r3, [r0, #36] 1516:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1517:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1703 .loc 1 1517 9 is_stmt 1 view .LVU549 1704 .loc 1 1517 16 is_stmt 0 view .LVU550 1705 003a 0120 movs r0, #1 1706 .LVL132: 1707 .loc 1 1517 16 view .LVU551 1708 003c 77E0 b .L132 1709 .LVL133: 1710 .L131: 1518:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1519:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1520:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1521:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get the header */ 1522:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE = CAN_RI0R_IDE & hcan->Instance->sFIFOMailBox[RxFifo].RIR; 1711 .loc 1 1522 5 is_stmt 1 view .LVU552 1712 .loc 1 1522 39 is_stmt 0 view .LVU553 1713 003e 0568 ldr r5, [r0] 1714 .loc 1 1522 71 view .LVU554 ARM GAS /tmp/ccXma6Rl.s page 80 1715 0040 01F11B04 add r4, r1, #27 1716 0044 2401 lsls r4, r4, #4 1717 0046 2C59 ldr r4, [r5, r4] 1718 .loc 1 1522 33 view .LVU555 1719 0048 04F00404 and r4, r4, #4 1720 .loc 1 1522 18 view .LVU556 1721 004c 9460 str r4, [r2, #8] 1523:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD) 1722 .loc 1 1523 5 is_stmt 1 view .LVU557 1723 .loc 1 1523 8 is_stmt 0 view .LVU558 1724 004e 002C cmp r4, #0 1725 0050 5AD1 bne .L133 1524:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1525:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->StdId = (CAN_RI0R_STID & hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_TI0R_STID_ 1726 .loc 1 1525 7 is_stmt 1 view .LVU559 1727 .loc 1 1525 45 is_stmt 0 view .LVU560 1728 0052 0568 ldr r5, [r0] 1729 .loc 1 1525 77 view .LVU561 1730 0054 01F11B04 add r4, r1, #27 1731 0058 2401 lsls r4, r4, #4 1732 005a 2C59 ldr r4, [r5, r4] 1733 .loc 1 1525 83 view .LVU562 1734 005c 640D lsrs r4, r4, #21 1735 .loc 1 1525 22 view .LVU563 1736 005e 1460 str r4, [r2] 1737 .L134: 1526:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1527:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1528:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->ExtId = ((CAN_RI0R_EXID | CAN_RI0R_STID) & hcan->Instance->sFIFOMailBox[RxFifo].RIR) 1530:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1531:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR = (CAN_RI0R_RTR & hcan->Instance->sFIFOMailBox[RxFifo].RIR); 1738 .loc 1 1531 5 is_stmt 1 view .LVU564 1739 .loc 1 1531 40 is_stmt 0 view .LVU565 1740 0060 0568 ldr r5, [r0] 1741 .loc 1 1531 72 view .LVU566 1742 0062 01F11B04 add r4, r1, #27 1743 0066 2401 lsls r4, r4, #4 1744 0068 2D59 ldr r5, [r5, r4] 1745 .loc 1 1531 34 view .LVU567 1746 006a 05F00205 and r5, r5, #2 1747 .loc 1 1531 18 view .LVU568 1748 006e D560 str r5, [r2, #12] 1532:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->DLC = (CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos 1749 .loc 1 1532 5 is_stmt 1 view .LVU569 1750 .loc 1 1532 41 is_stmt 0 view .LVU570 1751 0070 0568 ldr r5, [r0] 1752 .loc 1 1532 73 view .LVU571 1753 0072 2544 add r5, r5, r4 1754 0074 6D68 ldr r5, [r5, #4] 1755 .loc 1 1532 80 view .LVU572 1756 0076 05F00F05 and r5, r5, #15 1757 .loc 1 1532 18 view .LVU573 1758 007a 1561 str r5, [r2, #16] 1533:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->FilterMatchIndex = (CAN_RDT0R_FMI & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_ 1759 .loc 1 1533 5 is_stmt 1 view .LVU574 1760 .loc 1 1533 54 is_stmt 0 view .LVU575 ARM GAS /tmp/ccXma6Rl.s page 81 1761 007c 0568 ldr r5, [r0] 1762 .loc 1 1533 86 view .LVU576 1763 007e 2544 add r5, r5, r4 1764 0080 6D68 ldr r5, [r5, #4] 1765 .loc 1 1533 93 view .LVU577 1766 0082 C5F30725 ubfx r5, r5, #8, #8 1767 .loc 1 1533 31 view .LVU578 1768 0086 9561 str r5, [r2, #24] 1534:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_ 1769 .loc 1 1534 5 is_stmt 1 view .LVU579 1770 .loc 1 1534 48 is_stmt 0 view .LVU580 1771 0088 0568 ldr r5, [r0] 1772 .loc 1 1534 80 view .LVU581 1773 008a 2C44 add r4, r4, r5 1774 008c 6468 ldr r4, [r4, #4] 1775 .loc 1 1534 87 view .LVU582 1776 008e 240C lsrs r4, r4, #16 1777 .loc 1 1534 24 view .LVU583 1778 0090 5461 str r4, [r2, #20] 1535:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1536:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get the data */ 1537:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[0] = (uint8_t)((CAN_RDL0R_DATA0 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 1779 .loc 1 1537 5 is_stmt 1 view .LVU584 1780 .loc 1 1537 49 is_stmt 0 view .LVU585 1781 0092 0468 ldr r4, [r0] 1782 .loc 1 1537 81 view .LVU586 1783 0094 0A01 lsls r2, r1, #4 1784 .LVL134: 1785 .loc 1 1537 81 view .LVU587 1786 0096 1444 add r4, r4, r2 1787 0098 D4F8B841 ldr r4, [r4, #440] 1788 .loc 1 1537 14 view .LVU588 1789 009c 1C70 strb r4, [r3] 1538:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 1790 .loc 1 1538 5 is_stmt 1 view .LVU589 1791 .loc 1 1538 49 is_stmt 0 view .LVU590 1792 009e 0468 ldr r4, [r0] 1793 .loc 1 1538 81 view .LVU591 1794 00a0 1444 add r4, r4, r2 1795 00a2 D4F8B841 ldr r4, [r4, #440] 1796 .loc 1 1538 16 view .LVU592 1797 00a6 C4F30724 ubfx r4, r4, #8, #8 1798 .loc 1 1538 14 view .LVU593 1799 00aa 5C70 strb r4, [r3, #1] 1539:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 1800 .loc 1 1539 5 is_stmt 1 view .LVU594 1801 .loc 1 1539 49 is_stmt 0 view .LVU595 1802 00ac 0468 ldr r4, [r0] 1803 .loc 1 1539 81 view .LVU596 1804 00ae 1444 add r4, r4, r2 1805 00b0 D4F8B841 ldr r4, [r4, #440] 1806 .loc 1 1539 16 view .LVU597 1807 00b4 C4F30744 ubfx r4, r4, #16, #8 1808 .loc 1 1539 14 view .LVU598 1809 00b8 9C70 strb r4, [r3, #2] 1540:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R 1810 .loc 1 1540 5 is_stmt 1 view .LVU599 ARM GAS /tmp/ccXma6Rl.s page 82 1811 .loc 1 1540 49 is_stmt 0 view .LVU600 1812 00ba 0468 ldr r4, [r0] 1813 .loc 1 1540 81 view .LVU601 1814 00bc 1444 add r4, r4, r2 1815 00be D4F8B841 ldr r4, [r4, #440] 1816 .loc 1 1540 16 view .LVU602 1817 00c2 240E lsrs r4, r4, #24 1818 .loc 1 1540 14 view .LVU603 1819 00c4 DC70 strb r4, [r3, #3] 1541:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 1820 .loc 1 1541 5 is_stmt 1 view .LVU604 1821 .loc 1 1541 49 is_stmt 0 view .LVU605 1822 00c6 0468 ldr r4, [r0] 1823 .loc 1 1541 81 view .LVU606 1824 00c8 1444 add r4, r4, r2 1825 00ca D4F8BC41 ldr r4, [r4, #444] 1826 .loc 1 1541 14 view .LVU607 1827 00ce 1C71 strb r4, [r3, #4] 1542:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 1828 .loc 1 1542 5 is_stmt 1 view .LVU608 1829 .loc 1 1542 49 is_stmt 0 view .LVU609 1830 00d0 0468 ldr r4, [r0] 1831 .loc 1 1542 81 view .LVU610 1832 00d2 1444 add r4, r4, r2 1833 00d4 D4F8BC41 ldr r4, [r4, #444] 1834 .loc 1 1542 16 view .LVU611 1835 00d8 C4F30724 ubfx r4, r4, #8, #8 1836 .loc 1 1542 14 view .LVU612 1837 00dc 5C71 strb r4, [r3, #5] 1543:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 1838 .loc 1 1543 5 is_stmt 1 view .LVU613 1839 .loc 1 1543 49 is_stmt 0 view .LVU614 1840 00de 0468 ldr r4, [r0] 1841 .loc 1 1543 81 view .LVU615 1842 00e0 1444 add r4, r4, r2 1843 00e2 D4F8BC41 ldr r4, [r4, #444] 1844 .loc 1 1543 16 view .LVU616 1845 00e6 C4F30744 ubfx r4, r4, #16, #8 1846 .loc 1 1543 14 view .LVU617 1847 00ea 9C71 strb r4, [r3, #6] 1544:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R 1848 .loc 1 1544 5 is_stmt 1 view .LVU618 1849 .loc 1 1544 49 is_stmt 0 view .LVU619 1850 00ec 0468 ldr r4, [r0] 1851 .loc 1 1544 81 view .LVU620 1852 00ee 2244 add r2, r2, r4 1853 00f0 D2F8BC21 ldr r2, [r2, #444] 1854 .loc 1 1544 16 view .LVU621 1855 00f4 120E lsrs r2, r2, #24 1856 .loc 1 1544 14 view .LVU622 1857 00f6 DA71 strb r2, [r3, #7] 1545:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1546:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Release the FIFO */ 1547:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */ 1858 .loc 1 1547 5 is_stmt 1 view .LVU623 1859 .loc 1 1547 8 is_stmt 0 view .LVU624 1860 00f8 71B9 cbnz r1, .L135 ARM GAS /tmp/ccXma6Rl.s page 83 1548:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1549:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Release RX FIFO 0 */ 1550:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->RF0R, CAN_RF0R_RFOM0); 1861 .loc 1 1550 7 is_stmt 1 view .LVU625 1862 00fa 0268 ldr r2, [r0] 1863 00fc D368 ldr r3, [r2, #12] 1864 .LVL135: 1865 .loc 1 1550 7 is_stmt 0 view .LVU626 1866 00fe 43F02003 orr r3, r3, #32 1867 0102 D360 str r3, [r2, #12] 1868 .L136: 1551:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1552:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */ 1553:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1554:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Release RX FIFO 1 */ 1555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->RF1R, CAN_RF1R_RFOM1); 1556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1557:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1558:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1559:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 1869 .loc 1 1559 5 is_stmt 1 view .LVU627 1870 .loc 1 1559 12 is_stmt 0 view .LVU628 1871 0104 0020 movs r0, #0 1872 .LVL136: 1873 .loc 1 1559 12 view .LVU629 1874 0106 12E0 b .L132 1875 .LVL137: 1876 .L133: 1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1877 .loc 1 1529 7 is_stmt 1 view .LVU630 1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1878 .loc 1 1529 63 is_stmt 0 view .LVU631 1879 0108 0568 ldr r5, [r0] 1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1880 .loc 1 1529 95 view .LVU632 1881 010a 01F11B04 add r4, r1, #27 1882 010e 2401 lsls r4, r4, #4 1883 0110 2C59 ldr r4, [r5, r4] 1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1884 .loc 1 1529 101 view .LVU633 1885 0112 E408 lsrs r4, r4, #3 1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1886 .loc 1 1529 22 view .LVU634 1887 0114 5460 str r4, [r2, #4] 1888 0116 A3E7 b .L134 1889 .LVL138: 1890 .L135: 1555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1891 .loc 1 1555 7 is_stmt 1 view .LVU635 1892 0118 0268 ldr r2, [r0] 1893 011a 1369 ldr r3, [r2, #16] 1894 .LVL139: 1555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1895 .loc 1 1555 7 is_stmt 0 view .LVU636 1896 011c 43F02003 orr r3, r3, #32 1897 0120 1361 str r3, [r2, #16] 1898 0122 EFE7 b .L136 ARM GAS /tmp/ccXma6Rl.s page 84 1899 .LVL140: 1900 .L129: 1560:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1561:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1562:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1563:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1564:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 1901 .loc 1 1564 5 is_stmt 1 view .LVU637 1902 .loc 1 1564 21 is_stmt 0 view .LVU638 1903 0124 436A ldr r3, [r0, #36] 1904 .LVL141: 1905 .loc 1 1564 21 view .LVU639 1906 0126 43F48023 orr r3, r3, #262144 1907 012a 4362 str r3, [r0, #36] 1565:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1566:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 1908 .loc 1 1566 5 is_stmt 1 view .LVU640 1909 .loc 1 1566 12 is_stmt 0 view .LVU641 1910 012c 0120 movs r0, #1 1911 .LVL142: 1912 .L132: 1567:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1568:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1913 .loc 1 1568 1 view .LVU642 1914 012e 30BC pop {r4, r5} 1915 .LCFI14: 1916 .cfi_restore 5 1917 .cfi_restore 4 1918 .cfi_def_cfa_offset 0 1919 0130 7047 bx lr 1920 .cfi_endproc 1921 .LFE80: 1923 .section .text.HAL_CAN_GetRxFifoFillLevel,"ax",%progbits 1924 .align 1 1925 .global HAL_CAN_GetRxFifoFillLevel 1926 .syntax unified 1927 .thumb 1928 .thumb_func 1929 .fpu softvfp 1931 HAL_CAN_GetRxFifoFillLevel: 1932 .LVL143: 1933 .LFB81: 1569:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1570:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1571:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return Rx FIFO fill level. 1572:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1573:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1574:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param RxFifo Rx FIFO. 1575:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number. 1576:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Number of messages available in Rx FIFO. 1577:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1578:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_GetRxFifoFillLevel(CAN_HandleTypeDef *hcan, uint32_t RxFifo) 1579:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1934 .loc 1 1579 1 is_stmt 1 view -0 1935 .cfi_startproc 1936 @ args = 0, pretend = 0, frame = 0 1937 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccXma6Rl.s page 85 1938 @ link register save eliminated. 1580:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t filllevel = 0U; 1939 .loc 1 1580 3 view .LVU644 1581:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1940 .loc 1 1581 3 view .LVU645 1941 .loc 1 1581 24 is_stmt 0 view .LVU646 1942 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 1943 .LVL144: 1582:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1583:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */ 1584:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo)); 1944 .loc 1 1584 3 is_stmt 1 view .LVU647 1585:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1586:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 1945 .loc 1 1586 3 view .LVU648 1946 .loc 1 1586 38 is_stmt 0 view .LVU649 1947 0004 013B subs r3, r3, #1 1948 .LVL145: 1949 .loc 1 1586 38 view .LVU650 1950 0006 DBB2 uxtb r3, r3 1951 .loc 1 1586 6 view .LVU651 1952 0008 012B cmp r3, #1 1953 000a 01D9 bls .L142 1580:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 1954 .loc 1 1580 12 view .LVU652 1955 000c 0020 movs r0, #0 1956 .LVL146: 1587:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1588:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) 1590:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** filllevel = hcan->Instance->RF0R & CAN_RF0R_FMP0; 1592:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1593:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else /* RxFifo == CAN_RX_FIFO1 */ 1594:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** filllevel = hcan->Instance->RF1R & CAN_RF1R_FMP1; 1596:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1597:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1598:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1599:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return Rx FIFO fill level */ 1600:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return filllevel; 1957 .loc 1 1600 3 is_stmt 1 view .LVU653 1601:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1958 .loc 1 1601 1 is_stmt 0 view .LVU654 1959 000e 7047 bx lr 1960 .LVL147: 1961 .L142: 1589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1962 .loc 1 1589 5 is_stmt 1 view .LVU655 1589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1963 .loc 1 1589 8 is_stmt 0 view .LVU656 1964 0010 21B9 cbnz r1, .L140 1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1965 .loc 1 1591 7 is_stmt 1 view .LVU657 1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1966 .loc 1 1591 23 is_stmt 0 view .LVU658 1967 0012 0368 ldr r3, [r0] ARM GAS /tmp/ccXma6Rl.s page 86 1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1968 .loc 1 1591 33 view .LVU659 1969 0014 D868 ldr r0, [r3, #12] 1970 .LVL148: 1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1971 .loc 1 1591 17 view .LVU660 1972 0016 00F00300 and r0, r0, #3 1973 .LVL149: 1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1974 .loc 1 1591 17 view .LVU661 1975 001a 7047 bx lr 1976 .LVL150: 1977 .L140: 1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1978 .loc 1 1595 7 is_stmt 1 view .LVU662 1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1979 .loc 1 1595 23 is_stmt 0 view .LVU663 1980 001c 0368 ldr r3, [r0] 1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1981 .loc 1 1595 33 view .LVU664 1982 001e 1869 ldr r0, [r3, #16] 1983 .LVL151: 1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1984 .loc 1 1595 17 view .LVU665 1985 0020 00F00300 and r0, r0, #3 1986 .LVL152: 1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1987 .loc 1 1595 17 view .LVU666 1988 0024 7047 bx lr 1989 .cfi_endproc 1990 .LFE81: 1992 .section .text.HAL_CAN_ActivateNotification,"ax",%progbits 1993 .align 1 1994 .global HAL_CAN_ActivateNotification 1995 .syntax unified 1996 .thumb 1997 .thumb_func 1998 .fpu softvfp 2000 HAL_CAN_ActivateNotification: 2001 .LVL153: 2002 .LFB82: 1602:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1603:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1604:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @} 1605:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1606:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1607:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group4 Interrupts management 1608:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Interrupts management 1609:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 1610:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim 1611:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 1612:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Interrupts management ##### 1613:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 1614:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] This section provides functions allowing to: 1615:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_ActivateNotification : Enable interrupts 1616:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_DeactivateNotification : Disable interrupts 1617:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_IRQHandler : Handles CAN interrupt request ARM GAS /tmp/ccXma6Rl.s page 87 1618:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1619:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim 1620:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 1621:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1622:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1623:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1624:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Enable interrupts. 1625:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1626:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1627:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param ActiveITs indicates which interrupts will be enabled. 1628:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts. 1629:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 1630:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1631:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ActivateNotification(CAN_HandleTypeDef *hcan, uint32_t ActiveITs) 1632:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2003 .loc 1 1632 1 is_stmt 1 view -0 2004 .cfi_startproc 2005 @ args = 0, pretend = 0, frame = 0 2006 @ frame_needed = 0, uses_anonymous_args = 0 2007 @ link register save eliminated. 1633:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2008 .loc 1 1633 3 view .LVU668 2009 .loc 1 1633 24 is_stmt 0 view .LVU669 2010 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 2011 .LVL154: 1634:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1635:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */ 1636:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_IT(ActiveITs)); 2012 .loc 1 1636 3 is_stmt 1 view .LVU670 1637:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1638:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2013 .loc 1 1638 3 view .LVU671 2014 .loc 1 1638 38 is_stmt 0 view .LVU672 2015 0004 013B subs r3, r3, #1 2016 .LVL155: 2017 .loc 1 1638 38 view .LVU673 2018 0006 DBB2 uxtb r3, r3 2019 .loc 1 1638 6 view .LVU674 2020 0008 012B cmp r3, #1 2021 000a 05D9 bls .L146 1639:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1640:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1641:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Enable the selected interrupts */ 1642:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_ENABLE_IT(hcan, ActiveITs); 1643:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1644:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 1646:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1647:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1648:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1649:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1650:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 2022 .loc 1 1650 5 is_stmt 1 view .LVU675 2023 .loc 1 1650 21 is_stmt 0 view .LVU676 2024 000c 436A ldr r3, [r0, #36] 2025 000e 43F48023 orr r3, r3, #262144 2026 0012 4362 str r3, [r0, #36] ARM GAS /tmp/ccXma6Rl.s page 88 1651:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1652:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 2027 .loc 1 1652 5 is_stmt 1 view .LVU677 2028 .loc 1 1652 12 is_stmt 0 view .LVU678 2029 0014 0120 movs r0, #1 2030 .LVL156: 1653:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1654:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2031 .loc 1 1654 1 view .LVU679 2032 0016 7047 bx lr 2033 .LVL157: 2034 .L146: 1642:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2035 .loc 1 1642 5 is_stmt 1 view .LVU680 2036 0018 0268 ldr r2, [r0] 2037 001a 5369 ldr r3, [r2, #20] 2038 001c 0B43 orrs r3, r3, r1 2039 001e 5361 str r3, [r2, #20] 1645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2040 .loc 1 1645 5 view .LVU681 1645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2041 .loc 1 1645 12 is_stmt 0 view .LVU682 2042 0020 0020 movs r0, #0 2043 .LVL158: 1645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2044 .loc 1 1645 12 view .LVU683 2045 0022 7047 bx lr 2046 .cfi_endproc 2047 .LFE82: 2049 .section .text.HAL_CAN_DeactivateNotification,"ax",%progbits 2050 .align 1 2051 .global HAL_CAN_DeactivateNotification 2052 .syntax unified 2053 .thumb 2054 .thumb_func 2055 .fpu softvfp 2057 HAL_CAN_DeactivateNotification: 2058 .LVL159: 2059 .LFB83: 1655:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1656:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1657:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Disable interrupts. 1658:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 1659:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1660:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param InactiveITs indicates which interrupts will be disabled. 1661:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts. 1662:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 1663:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1664:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeactivateNotification(CAN_HandleTypeDef *hcan, uint32_t InactiveITs) 1665:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2060 .loc 1 1665 1 is_stmt 1 view -0 2061 .cfi_startproc 2062 @ args = 0, pretend = 0, frame = 0 2063 @ frame_needed = 0, uses_anonymous_args = 0 2064 @ link register save eliminated. 1666:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2065 .loc 1 1666 3 view .LVU685 ARM GAS /tmp/ccXma6Rl.s page 89 2066 .loc 1 1666 24 is_stmt 0 view .LVU686 2067 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 2068 .LVL160: 1667:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1668:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */ 1669:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_IT(InactiveITs)); 2069 .loc 1 1669 3 is_stmt 1 view .LVU687 1670:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1671:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2070 .loc 1 1671 3 view .LVU688 2071 .loc 1 1671 38 is_stmt 0 view .LVU689 2072 0004 013B subs r3, r3, #1 2073 .LVL161: 2074 .loc 1 1671 38 view .LVU690 2075 0006 DBB2 uxtb r3, r3 2076 .loc 1 1671 6 view .LVU691 2077 0008 012B cmp r3, #1 2078 000a 05D9 bls .L150 1672:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 1673:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1674:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Disable the selected interrupts */ 1675:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_DISABLE_IT(hcan, InactiveITs); 1676:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1677:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */ 1678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK; 1679:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1680:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1681:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1682:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1683:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 2079 .loc 1 1683 5 is_stmt 1 view .LVU692 2080 .loc 1 1683 21 is_stmt 0 view .LVU693 2081 000c 436A ldr r3, [r0, #36] 2082 000e 43F48023 orr r3, r3, #262144 2083 0012 4362 str r3, [r0, #36] 1684:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1685:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR; 2084 .loc 1 1685 5 is_stmt 1 view .LVU694 2085 .loc 1 1685 12 is_stmt 0 view .LVU695 2086 0014 0120 movs r0, #1 2087 .LVL162: 1686:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1687:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2088 .loc 1 1687 1 view .LVU696 2089 0016 7047 bx lr 2090 .LVL163: 2091 .L150: 1675:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2092 .loc 1 1675 5 is_stmt 1 view .LVU697 2093 0018 0268 ldr r2, [r0] 2094 001a 5369 ldr r3, [r2, #20] 2095 001c 23EA0103 bic r3, r3, r1 2096 0020 5361 str r3, [r2, #20] 1678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2097 .loc 1 1678 5 view .LVU698 1678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2098 .loc 1 1678 12 is_stmt 0 view .LVU699 ARM GAS /tmp/ccXma6Rl.s page 90 2099 0022 0020 movs r0, #0 2100 .LVL164: 1678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2101 .loc 1 1678 12 view .LVU700 2102 0024 7047 bx lr 2103 .cfi_endproc 2104 .LFE83: 2106 .section .text.HAL_CAN_TxMailbox0CompleteCallback,"ax",%progbits 2107 .align 1 2108 .weak HAL_CAN_TxMailbox0CompleteCallback 2109 .syntax unified 2110 .thumb 2111 .thumb_func 2112 .fpu softvfp 2114 HAL_CAN_TxMailbox0CompleteCallback: 2115 .LVL165: 2116 .LFB85: 1688:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1689:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 1690:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Handles CAN interrupt request 1691:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 1692:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 1693:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 1694:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 1695:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** void HAL_CAN_IRQHandler(CAN_HandleTypeDef *hcan) 1696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE; 1698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 1699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR); 1700:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR); 1701:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R); 1702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R); 1703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR); 1704:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1705:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmit Mailbox empty interrupt management *****************************/ 1706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_TX_MAILBOX_EMPTY) != 0U) 1707:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1708:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmit Mailbox 0 management *****************************************/ 1709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP0) != 0U) 1710:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1711:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK0,ALST0,TERR0 bits) */ 1712:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP0); 1713:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK0) != 0U) 1715:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1716:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 0 complete callback */ 1717:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1718:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1719:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0CompleteCallback(hcan); 1720:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1721:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1722:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox0CompleteCallback(hcan); 1723:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1724:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1725:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1726:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1727:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST0) != 0U) ARM GAS /tmp/ccXma6Rl.s page 91 1728:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1729:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1730:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST0; 1731:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1732:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR0) != 0U) 1733:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1734:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1735:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR0; 1736:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1737:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1738:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1739:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 0 abort callback */ 1740:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1741:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1742:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0AbortCallback(hcan); 1743:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1744:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1745:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox0AbortCallback(hcan); 1746:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1747:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1748:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1749:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1750:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1751:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmit Mailbox 1 management *****************************************/ 1752:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP1) != 0U) 1753:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1754:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK1,ALST1,TERR1 bits) */ 1755:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP1); 1756:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1757:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK1) != 0U) 1758:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1759:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 1 complete callback */ 1760:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1761:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1762:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1CompleteCallback(hcan); 1763:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1764:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1765:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox1CompleteCallback(hcan); 1766:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1767:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1768:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1769:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST1) != 0U) 1771:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1772:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1773:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST1; 1774:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR1) != 0U) 1776:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1777:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR1; 1779:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1780:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1781:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1782:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 1 abort callback */ 1783:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1784:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ ARM GAS /tmp/ccXma6Rl.s page 92 1785:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1AbortCallback(hcan); 1786:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1787:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1788:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox1AbortCallback(hcan); 1789:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1790:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1791:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1792:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1793:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1794:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmit Mailbox 2 management *****************************************/ 1795:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP2) != 0U) 1796:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1797:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK2,ALST2,TERR2 bits) */ 1798:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP2); 1799:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK2) != 0U) 1801:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1802:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 2 complete callback */ 1803:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1804:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1805:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2CompleteCallback(hcan); 1806:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1807:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1808:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox2CompleteCallback(hcan); 1809:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1810:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1811:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1812:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1813:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST2) != 0U) 1814:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1815:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST2; 1817:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR2) != 0U) 1819:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1820:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 1821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR2; 1822:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1823:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 1824:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1825:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 2 abort callback */ 1826:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1827:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1828:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2AbortCallback(hcan); 1829:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1830:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1831:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox2AbortCallback(hcan); 1832:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1833:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1834:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1835:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1836:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1837:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1838:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 overrun interrupt management *****************************/ 1839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_OVERRUN) != 0U) 1840:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1841:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FOVR0) != 0U) ARM GAS /tmp/ccXma6Rl.s page 93 1842:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1843:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Rx Fifo 0 overrun error */ 1844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV0; 1845:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1846:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear FIFO0 Overrun Flag */ 1847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV0); 1848:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1849:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1850:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1851:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 full interrupt management ********************************/ 1852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_FULL) != 0U) 1853:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FULL0) != 0U) 1855:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1856:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear FIFO 0 full Flag */ 1857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF0); 1858:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1859:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 full Callback */ 1860:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1861:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1862:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0FullCallback(hcan); 1863:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1864:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1865:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFifo0FullCallback(hcan); 1866:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1867:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1868:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1869:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1870:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 message pending interrupt management *********************/ 1871:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_MSG_PENDING) != 0U) 1872:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1873:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check if message is still pending */ 1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) != 0U) 1875:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1876:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 mesage pending Callback */ 1877:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1878:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1879:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback(hcan); 1880:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1881:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFifo0MsgPendingCallback(hcan); 1883:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1884:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1885:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1886:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1887:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 overrun interrupt management *****************************/ 1888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_OVERRUN) != 0U) 1889:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1890:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FOVR1) != 0U) 1891:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1892:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Rx Fifo 1 overrun error */ 1893:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV1; 1894:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear FIFO1 Overrun Flag */ 1896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV1); 1897:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1898:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } ARM GAS /tmp/ccXma6Rl.s page 94 1899:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1900:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 full interrupt management ********************************/ 1901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_FULL) != 0U) 1902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FULL1) != 0U) 1904:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1905:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear FIFO 1 full Flag */ 1906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF1); 1907:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1908:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 full Callback */ 1909:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1910:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1911:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1FullCallback(hcan); 1912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1913:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFifo1FullCallback(hcan); 1915:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1916:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1918:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 message pending interrupt management *********************/ 1920:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_MSG_PENDING) != 0U) 1921:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1922:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check if message is still pending */ 1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) != 0U) 1924:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1925:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 mesage pending Callback */ 1926:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1927:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1928:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback(hcan); 1929:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1930:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1931:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFifo1MsgPendingCallback(hcan); 1932:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1933:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1934:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1936:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Sleep interrupt management *********************************************/ 1937:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_SLEEP_ACK) != 0U) 1938:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((msrflags & CAN_MSR_SLAKI) != 0U) 1940:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1941:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear Sleep interrupt Flag */ 1942:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_SLAKI); 1943:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1944:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Sleep Callback */ 1945:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1946:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->SleepCallback(hcan); 1948:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1949:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_SleepCallback(hcan); 1951:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1952:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1953:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1954:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1955:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* WakeUp interrupt management *********************************************/ ARM GAS /tmp/ccXma6Rl.s page 95 1956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_WAKEUP) != 0U) 1957:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((msrflags & CAN_MSR_WKUI) != 0U) 1959:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1960:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear WakeUp Flag */ 1961:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_WKU); 1962:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1963:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* WakeUp Callback */ 1964:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 1965:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 1966:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback(hcan); 1967:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 1968:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 1969:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_WakeUpFromRxMsgCallback(hcan); 1970:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 1971:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1972:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1973:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1974:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Error interrupts management *********************************************/ 1975:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_ERROR) != 0U) 1976:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1977:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((msrflags & CAN_MSR_ERRI) != 0U) 1978:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1979:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Error Warning Flag */ 1980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_WARNING) != 0U) && 1981:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 1982:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1983:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Error Warning */ 1984:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EWG; 1985:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1986:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* No need for clear of Error Warning Flag as read-only */ 1987:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1988:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1989:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Error Passive Flag */ 1990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_PASSIVE) != 0U) && 1991:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 1992:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 1993:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Error Passive */ 1994:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EPV; 1995:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1996:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* No need for clear of Error Passive Flag as read-only */ 1997:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 1998:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 1999:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Bus-off Flag */ 2000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((interrupts & CAN_IT_BUSOFF) != 0U) && 2001:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 2002:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2003:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Bus-Off */ 2004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BOF; 2005:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2006:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* No need for clear of Error Bus-Off as read-only */ 2007:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2008:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2009:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Last Error Code Flag */ 2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((interrupts & CAN_IT_LAST_ERROR_CODE) != 0U) && 2011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 2012:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { ARM GAS /tmp/ccXma6Rl.s page 96 2013:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (esrflags & CAN_ESR_LEC) 2014:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2015:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_0): 2016:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Stuff error */ 2017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_STF; 2018:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2019:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_1): 2020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Form error */ 2021:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_FOR; 2022:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0): 2024:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Acknowledgement error */ 2025:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_ACK; 2026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2027:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2): 2028:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Bit recessive error */ 2029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BR; 2030:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2031:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0): 2032:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Bit Dominant error */ 2033:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BD; 2034:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2035:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1): 2036:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to CRC error */ 2037:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_CRC; 2038:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2039:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default: 2040:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2041:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2042:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2043:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear Last error code Flag */ 2044:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->ESR, CAN_ESR_LEC); 2045:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2046:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2047:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2048:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear ERRI Flag */ 2049:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_ERRI); 2050:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2051:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2052:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call the Error call Back in case of Errors */ 2053:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (errorcode != HAL_CAN_ERROR_NONE) 2054:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2055:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code in handle */ 2056:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= errorcode; 2057:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2058:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call Error callback function */ 2059:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1 2060:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/ 2061:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCallback(hcan); 2062:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else 2063:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */ 2064:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_ErrorCallback(hcan); 2065:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2067:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2068:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** ARM GAS /tmp/ccXma6Rl.s page 97 2070:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @} 2071:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2073:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group5 Callback functions 2074:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief CAN Callback functions 2075:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 2076:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim 2077:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 2078:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Callback functions ##### 2079:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 2080:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] 2081:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** This subsection provides the following callback functions: 2082:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox0CompleteCallback 2083:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox1CompleteCallback 2084:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox2CompleteCallback 2085:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox0AbortCallback 2086:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox1AbortCallback 2087:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox2AbortCallback 2088:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RxFifo0MsgPendingCallback 2089:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RxFifo0FullCallback 2090:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RxFifo1MsgPendingCallback 2091:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RxFifo1FullCallback 2092:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_SleepCallback 2093:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_WakeUpFromRxMsgCallback 2094:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_ErrorCallback 2095:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2096:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim 2097:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 2098:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2099:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2100:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2101:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 0 complete callback. 2102:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2103:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2104:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2105:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2106:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan) 2107:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2117 .loc 1 2107 1 is_stmt 1 view -0 2118 .cfi_startproc 2119 @ args = 0, pretend = 0, frame = 0 2120 @ frame_needed = 0, uses_anonymous_args = 0 2121 @ link register save eliminated. 2108:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2109:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2122 .loc 1 2109 3 view .LVU702 2110:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2111:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2112:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox0CompleteCallback could be implemented in the 2113:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file 2114:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2115:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2123 .loc 1 2115 1 is_stmt 0 view .LVU703 2124 0000 7047 bx lr 2125 .cfi_endproc 2126 .LFE85: 2128 .section .text.HAL_CAN_TxMailbox1CompleteCallback,"ax",%progbits ARM GAS /tmp/ccXma6Rl.s page 98 2129 .align 1 2130 .weak HAL_CAN_TxMailbox1CompleteCallback 2131 .syntax unified 2132 .thumb 2133 .thumb_func 2134 .fpu softvfp 2136 HAL_CAN_TxMailbox1CompleteCallback: 2137 .LVL166: 2138 .LFB86: 2116:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2117:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2118:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 1 complete callback. 2119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2120:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2121:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2123:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan) 2124:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2139 .loc 1 2124 1 is_stmt 1 view -0 2140 .cfi_startproc 2141 @ args = 0, pretend = 0, frame = 0 2142 @ frame_needed = 0, uses_anonymous_args = 0 2143 @ link register save eliminated. 2125:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2126:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2144 .loc 1 2126 3 view .LVU705 2127:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2128:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2129:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox1CompleteCallback could be implemented in the 2130:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file 2131:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2132:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2145 .loc 1 2132 1 is_stmt 0 view .LVU706 2146 0000 7047 bx lr 2147 .cfi_endproc 2148 .LFE86: 2150 .section .text.HAL_CAN_TxMailbox2CompleteCallback,"ax",%progbits 2151 .align 1 2152 .weak HAL_CAN_TxMailbox2CompleteCallback 2153 .syntax unified 2154 .thumb 2155 .thumb_func 2156 .fpu softvfp 2158 HAL_CAN_TxMailbox2CompleteCallback: 2159 .LVL167: 2160 .LFB87: 2133:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2134:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2135:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 2 complete callback. 2136:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2137:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2138:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2139:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2140:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan) 2141:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2161 .loc 1 2141 1 is_stmt 1 view -0 2162 .cfi_startproc ARM GAS /tmp/ccXma6Rl.s page 99 2163 @ args = 0, pretend = 0, frame = 0 2164 @ frame_needed = 0, uses_anonymous_args = 0 2165 @ link register save eliminated. 2142:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2143:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2166 .loc 1 2143 3 view .LVU708 2144:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2145:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2146:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox2CompleteCallback could be implemented in the 2147:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file 2148:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2149:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2167 .loc 1 2149 1 is_stmt 0 view .LVU709 2168 0000 7047 bx lr 2169 .cfi_endproc 2170 .LFE87: 2172 .section .text.HAL_CAN_TxMailbox0AbortCallback,"ax",%progbits 2173 .align 1 2174 .weak HAL_CAN_TxMailbox0AbortCallback 2175 .syntax unified 2176 .thumb 2177 .thumb_func 2178 .fpu softvfp 2180 HAL_CAN_TxMailbox0AbortCallback: 2181 .LVL168: 2182 .LFB88: 2150:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2151:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2152:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 0 Cancellation callback. 2153:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 2154:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2155:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2156:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2157:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0AbortCallback(CAN_HandleTypeDef *hcan) 2158:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2183 .loc 1 2158 1 is_stmt 1 view -0 2184 .cfi_startproc 2185 @ args = 0, pretend = 0, frame = 0 2186 @ frame_needed = 0, uses_anonymous_args = 0 2187 @ link register save eliminated. 2159:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2188 .loc 1 2160 3 view .LVU711 2161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2162:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2163:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox0AbortCallback could be implemented in the 2164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file 2165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2189 .loc 1 2166 1 is_stmt 0 view .LVU712 2190 0000 7047 bx lr 2191 .cfi_endproc 2192 .LFE88: 2194 .section .text.HAL_CAN_TxMailbox1AbortCallback,"ax",%progbits 2195 .align 1 2196 .weak HAL_CAN_TxMailbox1AbortCallback 2197 .syntax unified ARM GAS /tmp/ccXma6Rl.s page 100 2198 .thumb 2199 .thumb_func 2200 .fpu softvfp 2202 HAL_CAN_TxMailbox1AbortCallback: 2203 .LVL169: 2204 .LFB89: 2167:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2168:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2169:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 1 Cancellation callback. 2170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 2171:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2172:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2173:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2174:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1AbortCallback(CAN_HandleTypeDef *hcan) 2175:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2205 .loc 1 2175 1 is_stmt 1 view -0 2206 .cfi_startproc 2207 @ args = 0, pretend = 0, frame = 0 2208 @ frame_needed = 0, uses_anonymous_args = 0 2209 @ link register save eliminated. 2176:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2177:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2210 .loc 1 2177 3 view .LVU714 2178:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2179:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2180:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox1AbortCallback could be implemented in the 2181:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file 2182:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2183:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2211 .loc 1 2183 1 is_stmt 0 view .LVU715 2212 0000 7047 bx lr 2213 .cfi_endproc 2214 .LFE89: 2216 .section .text.HAL_CAN_TxMailbox2AbortCallback,"ax",%progbits 2217 .align 1 2218 .weak HAL_CAN_TxMailbox2AbortCallback 2219 .syntax unified 2220 .thumb 2221 .thumb_func 2222 .fpu softvfp 2224 HAL_CAN_TxMailbox2AbortCallback: 2225 .LVL170: 2226 .LFB90: 2184:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2185:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2186:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 2 Cancellation callback. 2187:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains 2188:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2189:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2190:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2191:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2AbortCallback(CAN_HandleTypeDef *hcan) 2192:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2227 .loc 1 2192 1 is_stmt 1 view -0 2228 .cfi_startproc 2229 @ args = 0, pretend = 0, frame = 0 2230 @ frame_needed = 0, uses_anonymous_args = 0 2231 @ link register save eliminated. ARM GAS /tmp/ccXma6Rl.s page 101 2193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2194:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2232 .loc 1 2194 3 view .LVU717 2195:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2196:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2197:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox2AbortCallback could be implemented in the 2198:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file 2199:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2200:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2233 .loc 1 2200 1 is_stmt 0 view .LVU718 2234 0000 7047 bx lr 2235 .cfi_endproc 2236 .LFE90: 2238 .section .text.HAL_CAN_RxFifo0MsgPendingCallback,"ax",%progbits 2239 .align 1 2240 .weak HAL_CAN_RxFifo0MsgPendingCallback 2241 .syntax unified 2242 .thumb 2243 .thumb_func 2244 .fpu softvfp 2246 HAL_CAN_RxFifo0MsgPendingCallback: 2247 .LVL171: 2248 .LFB91: 2201:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2202:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2203:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Rx FIFO 0 message pending callback. 2204:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2205:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2206:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2207:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2208:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) 2209:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2249 .loc 1 2209 1 is_stmt 1 view -0 2250 .cfi_startproc 2251 @ args = 0, pretend = 0, frame = 0 2252 @ frame_needed = 0, uses_anonymous_args = 0 2253 @ link register save eliminated. 2210:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2211:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2254 .loc 1 2211 3 view .LVU720 2212:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2213:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2214:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_RxFifo0MsgPendingCallback could be implemented in the 2215:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file 2216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2217:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2255 .loc 1 2217 1 is_stmt 0 view .LVU721 2256 0000 7047 bx lr 2257 .cfi_endproc 2258 .LFE91: 2260 .section .text.HAL_CAN_RxFifo0FullCallback,"ax",%progbits 2261 .align 1 2262 .weak HAL_CAN_RxFifo0FullCallback 2263 .syntax unified 2264 .thumb 2265 .thumb_func 2266 .fpu softvfp ARM GAS /tmp/ccXma6Rl.s page 102 2268 HAL_CAN_RxFifo0FullCallback: 2269 .LVL172: 2270 .LFB92: 2218:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2219:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2220:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Rx FIFO 0 full callback. 2221:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2223:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2224:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2225:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_RxFifo0FullCallback(CAN_HandleTypeDef *hcan) 2226:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2271 .loc 1 2226 1 is_stmt 1 view -0 2272 .cfi_startproc 2273 @ args = 0, pretend = 0, frame = 0 2274 @ frame_needed = 0, uses_anonymous_args = 0 2275 @ link register save eliminated. 2227:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2228:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2276 .loc 1 2228 3 view .LVU723 2229:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2230:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2231:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_RxFifo0FullCallback could be implemented in the user 2232:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** file 2233:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2234:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2277 .loc 1 2234 1 is_stmt 0 view .LVU724 2278 0000 7047 bx lr 2279 .cfi_endproc 2280 .LFE92: 2282 .section .text.HAL_CAN_RxFifo1MsgPendingCallback,"ax",%progbits 2283 .align 1 2284 .weak HAL_CAN_RxFifo1MsgPendingCallback 2285 .syntax unified 2286 .thumb 2287 .thumb_func 2288 .fpu softvfp 2290 HAL_CAN_RxFifo1MsgPendingCallback: 2291 .LVL173: 2292 .LFB93: 2235:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2236:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2237:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Rx FIFO 1 message pending callback. 2238:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2239:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2240:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2241:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2242:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan) 2243:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2293 .loc 1 2243 1 is_stmt 1 view -0 2294 .cfi_startproc 2295 @ args = 0, pretend = 0, frame = 0 2296 @ frame_needed = 0, uses_anonymous_args = 0 2297 @ link register save eliminated. 2244:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2245:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2298 .loc 1 2245 3 view .LVU726 ARM GAS /tmp/ccXma6Rl.s page 103 2246:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2247:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2248:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_RxFifo1MsgPendingCallback could be implemented in the 2249:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file 2250:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2251:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2299 .loc 1 2251 1 is_stmt 0 view .LVU727 2300 0000 7047 bx lr 2301 .cfi_endproc 2302 .LFE93: 2304 .section .text.HAL_CAN_RxFifo1FullCallback,"ax",%progbits 2305 .align 1 2306 .weak HAL_CAN_RxFifo1FullCallback 2307 .syntax unified 2308 .thumb 2309 .thumb_func 2310 .fpu softvfp 2312 HAL_CAN_RxFifo1FullCallback: 2313 .LVL174: 2314 .LFB94: 2252:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2253:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2254:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Rx FIFO 1 full callback. 2255:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2256:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2257:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2258:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2259:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_RxFifo1FullCallback(CAN_HandleTypeDef *hcan) 2260:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2315 .loc 1 2260 1 is_stmt 1 view -0 2316 .cfi_startproc 2317 @ args = 0, pretend = 0, frame = 0 2318 @ frame_needed = 0, uses_anonymous_args = 0 2319 @ link register save eliminated. 2261:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2262:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2320 .loc 1 2262 3 view .LVU729 2263:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2264:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2265:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_RxFifo1FullCallback could be implemented in the user 2266:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** file 2267:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2321 .loc 1 2268 1 is_stmt 0 view .LVU730 2322 0000 7047 bx lr 2323 .cfi_endproc 2324 .LFE94: 2326 .section .text.HAL_CAN_SleepCallback,"ax",%progbits 2327 .align 1 2328 .weak HAL_CAN_SleepCallback 2329 .syntax unified 2330 .thumb 2331 .thumb_func 2332 .fpu softvfp 2334 HAL_CAN_SleepCallback: 2335 .LVL175: 2336 .LFB95: ARM GAS /tmp/ccXma6Rl.s page 104 2269:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2270:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2271:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Sleep callback. 2272:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_SleepCallback(CAN_HandleTypeDef *hcan) 2277:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2337 .loc 1 2277 1 is_stmt 1 view -0 2338 .cfi_startproc 2339 @ args = 0, pretend = 0, frame = 0 2340 @ frame_needed = 0, uses_anonymous_args = 0 2341 @ link register save eliminated. 2278:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2342 .loc 1 2279 3 view .LVU732 2280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2282:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_SleepCallback could be implemented in the user file 2283:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2343 .loc 1 2284 1 is_stmt 0 view .LVU733 2344 0000 7047 bx lr 2345 .cfi_endproc 2346 .LFE95: 2348 .section .text.HAL_CAN_WakeUpFromRxMsgCallback,"ax",%progbits 2349 .align 1 2350 .weak HAL_CAN_WakeUpFromRxMsgCallback 2351 .syntax unified 2352 .thumb 2353 .thumb_func 2354 .fpu softvfp 2356 HAL_CAN_WakeUpFromRxMsgCallback: 2357 .LVL176: 2358 .LFB96: 2285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief WakeUp from Rx message callback. 2288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_WakeUpFromRxMsgCallback(CAN_HandleTypeDef *hcan) 2293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2359 .loc 1 2293 1 is_stmt 1 view -0 2360 .cfi_startproc 2361 @ args = 0, pretend = 0, frame = 0 2362 @ frame_needed = 0, uses_anonymous_args = 0 2363 @ link register save eliminated. 2294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2364 .loc 1 2295 3 view .LVU735 2296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2297:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2298:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_WakeUpFromRxMsgCallback could be implemented in the 2299:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file ARM GAS /tmp/ccXma6Rl.s page 105 2300:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2301:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2365 .loc 1 2301 1 is_stmt 0 view .LVU736 2366 0000 7047 bx lr 2367 .cfi_endproc 2368 .LFE96: 2370 .section .text.HAL_CAN_ErrorCallback,"ax",%progbits 2371 .align 1 2372 .weak HAL_CAN_ErrorCallback 2373 .syntax unified 2374 .thumb 2375 .thumb_func 2376 .fpu softvfp 2378 HAL_CAN_ErrorCallback: 2379 .LVL177: 2380 .LFB97: 2302:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2304:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Error CAN callback. 2305:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2307:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None 2308:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2309:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan) 2310:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2381 .loc 1 2310 1 is_stmt 1 view -0 2382 .cfi_startproc 2383 @ args = 0, pretend = 0, frame = 0 2384 @ frame_needed = 0, uses_anonymous_args = 0 2385 @ link register save eliminated. 2311:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */ 2312:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan); 2386 .loc 1 2312 3 view .LVU738 2313:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2314:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed, 2315:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_ErrorCallback could be implemented in the user file 2316:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2317:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2387 .loc 1 2317 1 is_stmt 0 view .LVU739 2388 0000 7047 bx lr 2389 .cfi_endproc 2390 .LFE97: 2392 .section .text.HAL_CAN_IRQHandler,"ax",%progbits 2393 .align 1 2394 .global HAL_CAN_IRQHandler 2395 .syntax unified 2396 .thumb 2397 .thumb_func 2398 .fpu softvfp 2400 HAL_CAN_IRQHandler: 2401 .LVL178: 2402 .LFB84: 1696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE; 2403 .loc 1 1696 1 is_stmt 1 view -0 2404 .cfi_startproc 2405 @ args = 0, pretend = 0, frame = 0 2406 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccXma6Rl.s page 106 1696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE; 2407 .loc 1 1696 1 is_stmt 0 view .LVU741 2408 0000 2DE9F84F push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 2409 .LCFI15: 2410 .cfi_def_cfa_offset 40 2411 .cfi_offset 3, -40 2412 .cfi_offset 4, -36 2413 .cfi_offset 5, -32 2414 .cfi_offset 6, -28 2415 .cfi_offset 7, -24 2416 .cfi_offset 8, -20 2417 .cfi_offset 9, -16 2418 .cfi_offset 10, -12 2419 .cfi_offset 11, -8 2420 .cfi_offset 14, -4 2421 0004 0546 mov r5, r0 1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 2422 .loc 1 1697 3 is_stmt 1 view .LVU742 2423 .LVL179: 1698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR); 2424 .loc 1 1698 3 view .LVU743 1698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR); 2425 .loc 1 1698 25 is_stmt 0 view .LVU744 2426 0006 0368 ldr r3, [r0] 1698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR); 2427 .loc 1 1698 12 view .LVU745 2428 0008 5C69 ldr r4, [r3, #20] 2429 .LVL180: 1699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR); 2430 .loc 1 1699 3 is_stmt 1 view .LVU746 1699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR); 2431 .loc 1 1699 12 is_stmt 0 view .LVU747 2432 000a 5F68 ldr r7, [r3, #4] 2433 .LVL181: 1700:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R); 2434 .loc 1 1700 3 is_stmt 1 view .LVU748 1700:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R); 2435 .loc 1 1700 12 is_stmt 0 view .LVU749 2436 000c 9E68 ldr r6, [r3, #8] 2437 .LVL182: 1701:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R); 2438 .loc 1 1701 3 is_stmt 1 view .LVU750 1701:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R); 2439 .loc 1 1701 12 is_stmt 0 view .LVU751 2440 000e D3F80CA0 ldr r10, [r3, #12] 2441 .LVL183: 1702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR); 2442 .loc 1 1702 3 is_stmt 1 view .LVU752 1702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR); 2443 .loc 1 1702 12 is_stmt 0 view .LVU753 2444 0012 D3F81090 ldr r9, [r3, #16] 2445 .LVL184: 1703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2446 .loc 1 1703 3 is_stmt 1 view .LVU754 1703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2447 .loc 1 1703 12 is_stmt 0 view .LVU755 2448 0016 D3F81880 ldr r8, [r3, #24] ARM GAS /tmp/ccXma6Rl.s page 107 2449 .LVL185: 1706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2450 .loc 1 1706 3 is_stmt 1 view .LVU756 1706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2451 .loc 1 1706 6 is_stmt 0 view .LVU757 2452 001a 14F0010F tst r4, #1 2453 001e 5AD0 beq .L197 1709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2454 .loc 1 1709 5 is_stmt 1 view .LVU758 1709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2455 .loc 1 1709 8 is_stmt 0 view .LVU759 2456 0020 16F0010F tst r6, #1 2457 0024 17D0 beq .L198 1712:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2458 .loc 1 1712 7 is_stmt 1 view .LVU760 2459 0026 0122 movs r2, #1 2460 0028 9A60 str r2, [r3, #8] 1714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2461 .loc 1 1714 7 view .LVU761 1714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2462 .loc 1 1714 10 is_stmt 0 view .LVU762 2463 002a 16F0020F tst r6, #2 2464 002e 08D1 bne .L202 1727:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2465 .loc 1 1727 9 is_stmt 1 view .LVU763 1727:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2466 .loc 1 1727 12 is_stmt 0 view .LVU764 2467 0030 16F0040F tst r6, #4 2468 0034 30D1 bne .L199 1732:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2469 .loc 1 1732 14 is_stmt 1 view .LVU765 1732:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2470 .loc 1 1732 17 is_stmt 0 view .LVU766 2471 0036 16F0080F tst r6, #8 2472 003a 07D0 beq .L203 1735:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2473 .loc 1 1735 21 view .LVU767 2474 003c 4FF4805B mov fp, #4096 2475 0040 0BE0 b .L166 2476 .L202: 1722:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2477 .loc 1 1722 9 is_stmt 1 view .LVU768 2478 0042 FFF7FEFF bl HAL_CAN_TxMailbox0CompleteCallback 2479 .LVL186: 1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 2480 .loc 1 1697 12 is_stmt 0 view .LVU769 2481 0046 4FF0000B mov fp, #0 2482 004a 06E0 b .L166 2483 .LVL187: 2484 .L203: 1745:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2485 .loc 1 1745 11 is_stmt 1 view .LVU770 2486 004c FFF7FEFF bl HAL_CAN_TxMailbox0AbortCallback 2487 .LVL188: 1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 2488 .loc 1 1697 12 is_stmt 0 view .LVU771 2489 0050 4FF0000B mov fp, #0 ARM GAS /tmp/ccXma6Rl.s page 108 2490 0054 01E0 b .L166 2491 .LVL189: 2492 .L198: 1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 2493 .loc 1 1697 12 view .LVU772 2494 0056 4FF0000B mov fp, #0 2495 .LVL190: 2496 .L166: 1752:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2497 .loc 1 1752 5 is_stmt 1 view .LVU773 1752:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2498 .loc 1 1752 8 is_stmt 0 view .LVU774 2499 005a 16F4807F tst r6, #256 2500 005e 0BD0 beq .L168 1755:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2501 .loc 1 1755 7 is_stmt 1 view .LVU775 2502 0060 2B68 ldr r3, [r5] 2503 0062 4FF48072 mov r2, #256 2504 0066 9A60 str r2, [r3, #8] 1757:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2505 .loc 1 1757 7 view .LVU776 1757:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2506 .loc 1 1757 10 is_stmt 0 view .LVU777 2507 0068 16F4007F tst r6, #512 2508 006c 17D1 bne .L204 1770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2509 .loc 1 1770 9 is_stmt 1 view .LVU778 1770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2510 .loc 1 1770 12 is_stmt 0 view .LVU779 2511 006e 16F4806F tst r6, #1024 2512 0072 18D0 beq .L170 1773:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2513 .loc 1 1773 11 is_stmt 1 view .LVU780 1773:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2514 .loc 1 1773 21 is_stmt 0 view .LVU781 2515 0074 4BF4005B orr fp, fp, #8192 2516 .LVL191: 2517 .L168: 1795:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2518 .loc 1 1795 5 is_stmt 1 view .LVU782 1795:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2519 .loc 1 1795 8 is_stmt 0 view .LVU783 2520 0078 16F4803F tst r6, #65536 2521 007c 2DD0 beq .L165 1798:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2522 .loc 1 1798 7 is_stmt 1 view .LVU784 2523 007e 2B68 ldr r3, [r5] 2524 0080 4FF48032 mov r2, #65536 2525 0084 9A60 str r2, [r3, #8] 1800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2526 .loc 1 1800 7 view .LVU785 1800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2527 .loc 1 1800 10 is_stmt 0 view .LVU786 2528 0086 16F4003F tst r6, #131072 2529 008a 16D1 bne .L205 1813:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2530 .loc 1 1813 9 is_stmt 1 view .LVU787 ARM GAS /tmp/ccXma6Rl.s page 109 1813:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2531 .loc 1 1813 12 is_stmt 0 view .LVU788 2532 008c 16F4802F tst r6, #262144 2533 0090 17D0 beq .L173 1816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2534 .loc 1 1816 11 is_stmt 1 view .LVU789 1816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2535 .loc 1 1816 21 is_stmt 0 view .LVU790 2536 0092 4BF4004B orr fp, fp, #32768 2537 .LVL192: 1816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2538 .loc 1 1816 21 view .LVU791 2539 0096 20E0 b .L165 2540 .LVL193: 2541 .L199: 1730:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2542 .loc 1 1730 21 view .LVU792 2543 0098 4FF4006B mov fp, #2048 2544 009c DDE7 b .L166 2545 .LVL194: 2546 .L204: 1765:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2547 .loc 1 1765 9 is_stmt 1 view .LVU793 2548 009e 2846 mov r0, r5 2549 00a0 FFF7FEFF bl HAL_CAN_TxMailbox1CompleteCallback 2550 .LVL195: 2551 00a4 E8E7 b .L168 2552 .L170: 1775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2553 .loc 1 1775 14 view .LVU794 1775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2554 .loc 1 1775 17 is_stmt 0 view .LVU795 2555 00a6 16F4006F tst r6, #2048 2556 00aa 02D0 beq .L171 1778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2557 .loc 1 1778 11 is_stmt 1 view .LVU796 1778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2558 .loc 1 1778 21 is_stmt 0 view .LVU797 2559 00ac 4BF4804B orr fp, fp, #16384 2560 .LVL196: 1778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2561 .loc 1 1778 21 view .LVU798 2562 00b0 E2E7 b .L168 2563 .L171: 1788:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2564 .loc 1 1788 11 is_stmt 1 view .LVU799 2565 00b2 2846 mov r0, r5 2566 00b4 FFF7FEFF bl HAL_CAN_TxMailbox1AbortCallback 2567 .LVL197: 2568 00b8 DEE7 b .L168 2569 .L205: 1808:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2570 .loc 1 1808 9 view .LVU800 2571 00ba 2846 mov r0, r5 2572 00bc FFF7FEFF bl HAL_CAN_TxMailbox2CompleteCallback 2573 .LVL198: 2574 00c0 0BE0 b .L165 ARM GAS /tmp/ccXma6Rl.s page 110 2575 .L173: 1818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2576 .loc 1 1818 14 view .LVU801 1818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2577 .loc 1 1818 17 is_stmt 0 view .LVU802 2578 00c2 16F4002F tst r6, #524288 2579 00c6 02D0 beq .L174 1821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2580 .loc 1 1821 11 is_stmt 1 view .LVU803 1821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2581 .loc 1 1821 21 is_stmt 0 view .LVU804 2582 00c8 4BF4803B orr fp, fp, #65536 2583 .LVL199: 1821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2584 .loc 1 1821 21 view .LVU805 2585 00cc 05E0 b .L165 2586 .L174: 1831:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2587 .loc 1 1831 11 is_stmt 1 view .LVU806 2588 00ce 2846 mov r0, r5 2589 00d0 FFF7FEFF bl HAL_CAN_TxMailbox2AbortCallback 2590 .LVL200: 2591 00d4 01E0 b .L165 2592 .LVL201: 2593 .L197: 1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER); 2594 .loc 1 1697 12 is_stmt 0 view .LVU807 2595 00d6 4FF0000B mov fp, #0 2596 .LVL202: 2597 .L165: 1839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2598 .loc 1 1839 3 is_stmt 1 view .LVU808 1839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2599 .loc 1 1839 6 is_stmt 0 view .LVU809 2600 00da 14F0080F tst r4, #8 2601 00de 07D0 beq .L175 1841:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2602 .loc 1 1841 5 is_stmt 1 view .LVU810 1841:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2603 .loc 1 1841 8 is_stmt 0 view .LVU811 2604 00e0 1AF0100F tst r10, #16 2605 00e4 04D0 beq .L175 1844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2606 .loc 1 1844 7 is_stmt 1 view .LVU812 1844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2607 .loc 1 1844 17 is_stmt 0 view .LVU813 2608 00e6 4BF4007B orr fp, fp, #512 2609 .LVL203: 1847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2610 .loc 1 1847 7 is_stmt 1 view .LVU814 2611 00ea 2B68 ldr r3, [r5] 2612 00ec 1022 movs r2, #16 2613 00ee DA60 str r2, [r3, #12] 2614 .L175: 1852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2615 .loc 1 1852 3 view .LVU815 1852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { ARM GAS /tmp/ccXma6Rl.s page 111 2616 .loc 1 1852 6 is_stmt 0 view .LVU816 2617 00f0 14F0040F tst r4, #4 2618 00f4 02D0 beq .L176 1854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2619 .loc 1 1854 5 is_stmt 1 view .LVU817 1854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2620 .loc 1 1854 8 is_stmt 0 view .LVU818 2621 00f6 1AF0080F tst r10, #8 2622 00fa 6AD1 bne .L206 2623 .L176: 1871:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2624 .loc 1 1871 3 is_stmt 1 view .LVU819 1871:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2625 .loc 1 1871 6 is_stmt 0 view .LVU820 2626 00fc 14F0020F tst r4, #2 2627 0100 04D0 beq .L177 1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2628 .loc 1 1874 5 is_stmt 1 view .LVU821 1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2629 .loc 1 1874 14 is_stmt 0 view .LVU822 2630 0102 2B68 ldr r3, [r5] 1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2631 .loc 1 1874 24 view .LVU823 2632 0104 DB68 ldr r3, [r3, #12] 1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2633 .loc 1 1874 8 view .LVU824 2634 0106 13F0030F tst r3, #3 2635 010a 69D1 bne .L207 2636 .L177: 1888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2637 .loc 1 1888 3 is_stmt 1 view .LVU825 1888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2638 .loc 1 1888 6 is_stmt 0 view .LVU826 2639 010c 14F0400F tst r4, #64 2640 0110 07D0 beq .L178 1890:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2641 .loc 1 1890 5 is_stmt 1 view .LVU827 1890:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2642 .loc 1 1890 8 is_stmt 0 view .LVU828 2643 0112 19F0100F tst r9, #16 2644 0116 04D0 beq .L178 1893:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2645 .loc 1 1893 7 is_stmt 1 view .LVU829 1893:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2646 .loc 1 1893 17 is_stmt 0 view .LVU830 2647 0118 4BF4806B orr fp, fp, #1024 2648 .LVL204: 1896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2649 .loc 1 1896 7 is_stmt 1 view .LVU831 2650 011c 2B68 ldr r3, [r5] 2651 011e 1022 movs r2, #16 2652 0120 1A61 str r2, [r3, #16] 2653 .L178: 1901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2654 .loc 1 1901 3 view .LVU832 1901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2655 .loc 1 1901 6 is_stmt 0 view .LVU833 ARM GAS /tmp/ccXma6Rl.s page 112 2656 0122 14F0200F tst r4, #32 2657 0126 02D0 beq .L179 1903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2658 .loc 1 1903 5 is_stmt 1 view .LVU834 1903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2659 .loc 1 1903 8 is_stmt 0 view .LVU835 2660 0128 19F0080F tst r9, #8 2661 012c 5CD1 bne .L208 2662 .L179: 1920:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2663 .loc 1 1920 3 is_stmt 1 view .LVU836 1920:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2664 .loc 1 1920 6 is_stmt 0 view .LVU837 2665 012e 14F0100F tst r4, #16 2666 0132 04D0 beq .L180 1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2667 .loc 1 1923 5 is_stmt 1 view .LVU838 1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2668 .loc 1 1923 14 is_stmt 0 view .LVU839 2669 0134 2B68 ldr r3, [r5] 1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2670 .loc 1 1923 24 view .LVU840 2671 0136 1B69 ldr r3, [r3, #16] 1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2672 .loc 1 1923 8 view .LVU841 2673 0138 13F0030F tst r3, #3 2674 013c 5BD1 bne .L209 2675 .L180: 1937:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2676 .loc 1 1937 3 is_stmt 1 view .LVU842 1937:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2677 .loc 1 1937 6 is_stmt 0 view .LVU843 2678 013e 14F4003F tst r4, #131072 2679 0142 02D0 beq .L181 1939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2680 .loc 1 1939 5 is_stmt 1 view .LVU844 1939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2681 .loc 1 1939 8 is_stmt 0 view .LVU845 2682 0144 17F0100F tst r7, #16 2683 0148 59D1 bne .L210 2684 .L181: 1956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2685 .loc 1 1956 3 is_stmt 1 view .LVU846 1956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2686 .loc 1 1956 6 is_stmt 0 view .LVU847 2687 014a 14F4803F tst r4, #65536 2688 014e 02D0 beq .L182 1958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2689 .loc 1 1958 5 is_stmt 1 view .LVU848 1958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2690 .loc 1 1958 8 is_stmt 0 view .LVU849 2691 0150 17F0080F tst r7, #8 2692 0154 5AD1 bne .L211 2693 .L182: 1975:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2694 .loc 1 1975 3 is_stmt 1 view .LVU850 1975:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { ARM GAS /tmp/ccXma6Rl.s page 113 2695 .loc 1 1975 6 is_stmt 0 view .LVU851 2696 0156 14F4004F tst r4, #32768 2697 015a 35D0 beq .L183 1977:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2698 .loc 1 1977 5 is_stmt 1 view .LVU852 1977:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2699 .loc 1 1977 8 is_stmt 0 view .LVU853 2700 015c 17F0040F tst r7, #4 2701 0160 2FD0 beq .L184 1980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 2702 .loc 1 1980 7 is_stmt 1 view .LVU854 1980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 2703 .loc 1 1980 10 is_stmt 0 view .LVU855 2704 0162 14F4807F tst r4, #256 2705 0166 04D0 beq .L185 1980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U)) 2706 .loc 1 1980 55 discriminator 1 view .LVU856 2707 0168 18F0010F tst r8, #1 2708 016c 01D0 beq .L185 1984:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2709 .loc 1 1984 9 is_stmt 1 view .LVU857 1984:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2710 .loc 1 1984 19 is_stmt 0 view .LVU858 2711 016e 4BF0010B orr fp, fp, #1 2712 .LVL205: 2713 .L185: 1990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 2714 .loc 1 1990 7 is_stmt 1 view .LVU859 1990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 2715 .loc 1 1990 10 is_stmt 0 view .LVU860 2716 0172 14F4007F tst r4, #512 2717 0176 04D0 beq .L186 1990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U)) 2718 .loc 1 1990 55 discriminator 1 view .LVU861 2719 0178 18F0020F tst r8, #2 2720 017c 01D0 beq .L186 1994:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2721 .loc 1 1994 9 is_stmt 1 view .LVU862 1994:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2722 .loc 1 1994 19 is_stmt 0 view .LVU863 2723 017e 4BF0020B orr fp, fp, #2 2724 .LVL206: 2725 .L186: 2000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 2726 .loc 1 2000 7 is_stmt 1 view .LVU864 2000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 2727 .loc 1 2000 10 is_stmt 0 view .LVU865 2728 0182 14F4806F tst r4, #1024 2729 0186 04D0 beq .L187 2000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U)) 2730 .loc 1 2000 48 discriminator 1 view .LVU866 2731 0188 18F0040F tst r8, #4 2732 018c 01D0 beq .L187 2004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2733 .loc 1 2004 9 is_stmt 1 view .LVU867 2004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2734 .loc 1 2004 19 is_stmt 0 view .LVU868 ARM GAS /tmp/ccXma6Rl.s page 114 2735 018e 4BF0040B orr fp, fp, #4 2736 .LVL207: 2737 .L187: 2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 2738 .loc 1 2010 7 is_stmt 1 view .LVU869 2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 2739 .loc 1 2010 10 is_stmt 0 view .LVU870 2740 0192 14F4006F tst r4, #2048 2741 0196 14D0 beq .L184 2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 2742 .loc 1 2010 57 discriminator 1 view .LVU871 2743 0198 18F07008 ands r8, r8, #112 2744 .LVL208: 2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U)) 2745 .loc 1 2010 57 discriminator 1 view .LVU872 2746 019c 11D0 beq .L184 2013:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2747 .loc 1 2013 9 is_stmt 1 view .LVU873 2748 019e B8F1300F cmp r8, #48 2749 01a2 46D0 beq .L188 2750 01a4 39D9 bls .L212 2751 01a6 B8F1500F cmp r8, #80 2752 01aa 48D0 beq .L193 2753 01ac B8F1600F cmp r8, #96 2754 01b0 48D0 beq .L194 2755 01b2 B8F1400F cmp r8, #64 2756 01b6 3FD0 beq .L213 2757 .L192: 2044:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2758 .loc 1 2044 9 view .LVU874 2759 01b8 2A68 ldr r2, [r5] 2760 01ba 9369 ldr r3, [r2, #24] 2761 01bc 23F07003 bic r3, r3, #112 2762 01c0 9361 str r3, [r2, #24] 2763 .L184: 2049:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2764 .loc 1 2049 5 view .LVU875 2765 01c2 2B68 ldr r3, [r5] 2766 01c4 0422 movs r2, #4 2767 01c6 5A60 str r2, [r3, #4] 2768 .L183: 2053:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2769 .loc 1 2053 3 view .LVU876 2053:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2770 .loc 1 2053 6 is_stmt 0 view .LVU877 2771 01c8 BBF1000F cmp fp, #0 2772 01cc 3DD1 bne .L214 2773 .L164: 2067:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2774 .loc 1 2067 1 view .LVU878 2775 01ce BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 2776 .LVL209: 2777 .L206: 1857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2778 .loc 1 1857 7 is_stmt 1 view .LVU879 2779 01d2 2B68 ldr r3, [r5] 2780 01d4 0822 movs r2, #8 ARM GAS /tmp/ccXma6Rl.s page 115 2781 01d6 DA60 str r2, [r3, #12] 1865:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2782 .loc 1 1865 7 view .LVU880 2783 01d8 2846 mov r0, r5 2784 01da FFF7FEFF bl HAL_CAN_RxFifo0FullCallback 2785 .LVL210: 2786 01de 8DE7 b .L176 2787 .L207: 1882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2788 .loc 1 1882 7 view .LVU881 2789 01e0 2846 mov r0, r5 2790 01e2 FFF7FEFF bl HAL_CAN_RxFifo0MsgPendingCallback 2791 .LVL211: 2792 01e6 91E7 b .L177 2793 .L208: 1906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2794 .loc 1 1906 7 view .LVU882 2795 01e8 2B68 ldr r3, [r5] 2796 01ea 0822 movs r2, #8 2797 01ec 1A61 str r2, [r3, #16] 1914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2798 .loc 1 1914 7 view .LVU883 2799 01ee 2846 mov r0, r5 2800 01f0 FFF7FEFF bl HAL_CAN_RxFifo1FullCallback 2801 .LVL212: 2802 01f4 9BE7 b .L179 2803 .L209: 1931:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2804 .loc 1 1931 7 view .LVU884 2805 01f6 2846 mov r0, r5 2806 01f8 FFF7FEFF bl HAL_CAN_RxFifo1MsgPendingCallback 2807 .LVL213: 2808 01fc 9FE7 b .L180 2809 .L210: 1942:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2810 .loc 1 1942 7 view .LVU885 2811 01fe 2B68 ldr r3, [r5] 2812 0200 1022 movs r2, #16 2813 0202 5A60 str r2, [r3, #4] 1950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2814 .loc 1 1950 7 view .LVU886 2815 0204 2846 mov r0, r5 2816 0206 FFF7FEFF bl HAL_CAN_SleepCallback 2817 .LVL214: 2818 020a 9EE7 b .L181 2819 .L211: 1961:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2820 .loc 1 1961 7 view .LVU887 2821 020c 2B68 ldr r3, [r5] 2822 020e 0822 movs r2, #8 2823 0210 5A60 str r2, [r3, #4] 1969:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2824 .loc 1 1969 7 view .LVU888 2825 0212 2846 mov r0, r5 2826 0214 FFF7FEFF bl HAL_CAN_WakeUpFromRxMsgCallback 2827 .LVL215: 2828 0218 9DE7 b .L182 ARM GAS /tmp/ccXma6Rl.s page 116 2829 .LVL216: 2830 .L212: 2013:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2831 .loc 1 2013 9 is_stmt 0 view .LVU889 2832 021a B8F1100F cmp r8, #16 2833 021e 05D0 beq .L190 2834 0220 B8F1200F cmp r8, #32 2835 0224 C8D1 bne .L192 2021:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2836 .loc 1 2021 13 is_stmt 1 view .LVU890 2021:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2837 .loc 1 2021 23 is_stmt 0 view .LVU891 2838 0226 4BF0100B orr fp, fp, #16 2839 .LVL217: 2022:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0): 2840 .loc 1 2022 13 is_stmt 1 view .LVU892 2841 022a C5E7 b .L192 2842 .L190: 2017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2843 .loc 1 2017 13 view .LVU893 2017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2844 .loc 1 2017 23 is_stmt 0 view .LVU894 2845 022c 4BF0080B orr fp, fp, #8 2846 .LVL218: 2018:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_1): 2847 .loc 1 2018 13 is_stmt 1 view .LVU895 2848 0230 C2E7 b .L192 2849 .L188: 2025:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2850 .loc 1 2025 13 view .LVU896 2025:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2851 .loc 1 2025 23 is_stmt 0 view .LVU897 2852 0232 4BF0200B orr fp, fp, #32 2853 .LVL219: 2026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2): 2854 .loc 1 2026 13 is_stmt 1 view .LVU898 2855 0236 BFE7 b .L192 2856 .L213: 2029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2857 .loc 1 2029 13 view .LVU899 2029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2858 .loc 1 2029 23 is_stmt 0 view .LVU900 2859 0238 4BF0400B orr fp, fp, #64 2860 .LVL220: 2030:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0): 2861 .loc 1 2030 13 is_stmt 1 view .LVU901 2862 023c BCE7 b .L192 2863 .L193: 2033:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2864 .loc 1 2033 13 view .LVU902 2033:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2865 .loc 1 2033 23 is_stmt 0 view .LVU903 2866 023e 4BF0800B orr fp, fp, #128 2867 .LVL221: 2034:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1): 2868 .loc 1 2034 13 is_stmt 1 view .LVU904 2869 0242 B9E7 b .L192 ARM GAS /tmp/ccXma6Rl.s page 117 2870 .L194: 2037:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2871 .loc 1 2037 13 view .LVU905 2037:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break; 2872 .loc 1 2037 23 is_stmt 0 view .LVU906 2873 0244 4BF4807B orr fp, fp, #256 2874 .LVL222: 2038:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default: 2875 .loc 1 2038 13 is_stmt 1 view .LVU907 2876 0248 B6E7 b .L192 2877 .L214: 2056:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2878 .loc 1 2056 5 view .LVU908 2056:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2879 .loc 1 2056 21 is_stmt 0 view .LVU909 2880 024a 6B6A ldr r3, [r5, #36] 2881 024c 43EA0B03 orr r3, r3, fp 2882 0250 6B62 str r3, [r5, #36] 2064:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */ 2883 .loc 1 2064 5 is_stmt 1 view .LVU910 2884 0252 2846 mov r0, r5 2885 0254 FFF7FEFF bl HAL_CAN_ErrorCallback 2886 .LVL223: 2067:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2887 .loc 1 2067 1 is_stmt 0 view .LVU911 2888 0258 B9E7 b .L164 2889 .cfi_endproc 2890 .LFE84: 2892 .section .text.HAL_CAN_GetState,"ax",%progbits 2893 .align 1 2894 .global HAL_CAN_GetState 2895 .syntax unified 2896 .thumb 2897 .thumb_func 2898 .fpu softvfp 2900 HAL_CAN_GetState: 2901 .LVL224: 2902 .LFB98: 2318:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2319:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @} 2321:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2322:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2323:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group6 Peripheral State and Error functions 2324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief CAN Peripheral State functions 2325:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * 2326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim 2327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 2328:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Peripheral State and Error functions ##### 2329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ============================================================================== 2330:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] 2331:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** This subsection provides functions allowing to : 2332:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetState() : Return the CAN state. 2333:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetError() : Return the CAN error codes if any. 2334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_ResetError(): Reset the CAN error codes if any. 2335:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2336:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim ARM GAS /tmp/ccXma6Rl.s page 118 2337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{ 2338:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2339:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return the CAN state. 2342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL state 2345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef HAL_CAN_GetState(CAN_HandleTypeDef *hcan) 2347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2903 .loc 1 2347 1 is_stmt 1 view -0 2904 .cfi_startproc 2905 @ args = 0, pretend = 0, frame = 0 2906 @ frame_needed = 0, uses_anonymous_args = 0 2907 @ link register save eliminated. 2348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 2908 .loc 1 2348 3 view .LVU913 2909 .loc 1 2348 24 is_stmt 0 view .LVU914 2910 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 2911 0004 DBB2 uxtb r3, r3 2912 .LVL225: 2349:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 2913 .loc 1 2350 3 is_stmt 1 view .LVU915 2914 .loc 1 2350 38 is_stmt 0 view .LVU916 2915 0006 5A1E subs r2, r3, #1 2916 0008 D2B2 uxtb r2, r2 2917 .loc 1 2350 6 view .LVU917 2918 000a 012A cmp r2, #1 2919 000c 01D9 bls .L219 2920 .LVL226: 2921 .L216: 2351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2352:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2353:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check sleep mode acknowledge flag */ 2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U) 2355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2356:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Sleep mode is active */ 2357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_ACTIVE; 2358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check sleep mode request flag */ 2360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if ((hcan->Instance->MCR & CAN_MCR_SLEEP) != 0U) 2361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Sleep mode request is pending */ 2363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_PENDING; 2364:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 2366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2367:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Neither sleep mode request nor sleep mode acknowledge */ 2368:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2922 .loc 1 2368 5 is_stmt 1 view .LVU918 2369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2370:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return CAN state */ 2372:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return state; 2923 .loc 1 2372 3 view .LVU919 ARM GAS /tmp/ccXma6Rl.s page 119 2373:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2924 .loc 1 2373 1 is_stmt 0 view .LVU920 2925 000e 1846 mov r0, r3 2926 .LVL227: 2927 .loc 1 2373 1 view .LVU921 2928 0010 7047 bx lr 2929 .LVL228: 2930 .L219: 2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2931 .loc 1 2354 5 is_stmt 1 view .LVU922 2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2932 .loc 1 2354 14 is_stmt 0 view .LVU923 2933 0012 0268 ldr r2, [r0] 2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2934 .loc 1 2354 24 view .LVU924 2935 0014 5168 ldr r1, [r2, #4] 2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2936 .loc 1 2354 8 view .LVU925 2937 0016 11F0020F tst r1, #2 2938 001a 05D1 bne .L217 2360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2939 .loc 1 2360 10 is_stmt 1 view .LVU926 2360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2940 .loc 1 2360 29 is_stmt 0 view .LVU927 2941 001c 1268 ldr r2, [r2] 2360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2942 .loc 1 2360 13 view .LVU928 2943 001e 12F0020F tst r2, #2 2944 0022 F4D0 beq .L216 2363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2945 .loc 1 2363 13 view .LVU929 2946 0024 0323 movs r3, #3 2947 .LVL229: 2363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2948 .loc 1 2363 13 view .LVU930 2949 0026 F2E7 b .L216 2950 .LVL230: 2951 .L217: 2357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2952 .loc 1 2357 13 view .LVU931 2953 0028 0423 movs r3, #4 2954 .LVL231: 2357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2955 .loc 1 2357 13 view .LVU932 2956 002a F0E7 b .L216 2957 .cfi_endproc 2958 .LFE98: 2960 .section .text.HAL_CAN_GetError,"ax",%progbits 2961 .align 1 2962 .global HAL_CAN_GetError 2963 .syntax unified 2964 .thumb 2965 .thumb_func 2966 .fpu softvfp 2968 HAL_CAN_GetError: 2969 .LVL232: 2970 .LFB99: ARM GAS /tmp/ccXma6Rl.s page 120 2374:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2375:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return the CAN error code. 2377:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2379:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval CAN Error Code 2380:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_GetError(CAN_HandleTypeDef *hcan) 2382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2971 .loc 1 2382 1 is_stmt 1 view -0 2972 .cfi_startproc 2973 @ args = 0, pretend = 0, frame = 0 2974 @ frame_needed = 0, uses_anonymous_args = 0 2975 @ link register save eliminated. 2383:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return CAN error code */ 2384:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return hcan->ErrorCode; 2976 .loc 1 2384 3 view .LVU934 2977 .loc 1 2384 14 is_stmt 0 view .LVU935 2978 0000 406A ldr r0, [r0, #36] 2979 .LVL233: 2385:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2980 .loc 1 2385 1 view .LVU936 2981 0002 7047 bx lr 2982 .cfi_endproc 2983 .LFE99: 2985 .section .text.HAL_CAN_ResetError,"ax",%progbits 2986 .align 1 2987 .global HAL_CAN_ResetError 2988 .syntax unified 2989 .thumb 2990 .thumb_func 2991 .fpu softvfp 2993 HAL_CAN_ResetError: 2994 .LVL234: 2995 .LFB100: 2386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2387:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** 2388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Reset the CAN error code. 2389:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains 2390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN. 2391:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status 2392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */ 2393:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ResetError(CAN_HandleTypeDef *hcan) 2394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2996 .loc 1 2394 1 is_stmt 1 view -0 2997 .cfi_startproc 2998 @ args = 0, pretend = 0, frame = 0 2999 @ frame_needed = 0, uses_anonymous_args = 0 3000 @ link register save eliminated. 2395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK; 3001 .loc 1 2395 3 view .LVU938 2396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3002 .loc 1 2396 3 view .LVU939 3003 .loc 1 2396 24 is_stmt 0 view .LVU940 3004 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2 3005 .LVL235: 2397:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ARM GAS /tmp/ccXma6Rl.s page 121 2398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) || 3006 .loc 1 2398 3 is_stmt 1 view .LVU941 3007 .loc 1 2398 38 is_stmt 0 view .LVU942 3008 0004 013B subs r3, r3, #1 3009 .LVL236: 3010 .loc 1 2398 38 view .LVU943 3011 0006 DBB2 uxtb r3, r3 3012 .loc 1 2398 6 view .LVU944 3013 0008 012B cmp r3, #1 3014 000a 05D9 bls .L224 2399:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING)) 2400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2401:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset CAN error code */ 2402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode = 0U; 2403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2404:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else 2405:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** { 2406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */ 2407:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED; 3015 .loc 1 2407 5 is_stmt 1 view .LVU945 3016 .loc 1 2407 21 is_stmt 0 view .LVU946 3017 000c 436A ldr r3, [r0, #36] 3018 000e 43F48023 orr r3, r3, #262144 3019 0012 4362 str r3, [r0, #36] 2408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2409:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR; 3020 .loc 1 2409 5 is_stmt 1 view .LVU947 3021 .LVL237: 3022 .loc 1 2409 12 is_stmt 0 view .LVU948 3023 0014 0120 movs r0, #1 3024 .LVL238: 2410:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 2411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** 2412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return the status */ 2413:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status; 3025 .loc 1 2413 3 is_stmt 1 view .LVU949 2414:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 3026 .loc 1 2414 1 is_stmt 0 view .LVU950 3027 0016 7047 bx lr 3028 .LVL239: 3029 .L224: 2402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 3030 .loc 1 2402 5 is_stmt 1 view .LVU951 2402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** } 3031 .loc 1 2402 21 is_stmt 0 view .LVU952 3032 0018 0023 movs r3, #0 3033 001a 4362 str r3, [r0, #36] 2395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3034 .loc 1 2395 21 view .LVU953 3035 001c 1846 mov r0, r3 3036 .LVL240: 2395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State; 3037 .loc 1 2395 21 view .LVU954 3038 001e 7047 bx lr 3039 .cfi_endproc 3040 .LFE100: 3042 .text ARM GAS /tmp/ccXma6Rl.s page 122 3043 .Letext0: 3044 .file 3 "/usr/arm-none-eabi/include/machine/_default_types.h" 3045 .file 4 "/usr/arm-none-eabi/include/sys/_stdint.h" 3046 .file 5 "Drivers/CMSIS/Include/core_cm3.h" 3047 .file 6 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h" 3048 .file 7 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h" 3049 .file 8 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h" 3050 .file 9 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h" 3051 .file 10 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_can.h" 3052 .file 11 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h" ARM GAS /tmp/ccXma6Rl.s page 123 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f1xx_hal_can.c /tmp/ccXma6Rl.s:16 .text.HAL_CAN_MspInit:0000000000000000 $t /tmp/ccXma6Rl.s:24 .text.HAL_CAN_MspInit:0000000000000000 HAL_CAN_MspInit /tmp/ccXma6Rl.s:40 .text.HAL_CAN_Init:0000000000000000 $t /tmp/ccXma6Rl.s:47 .text.HAL_CAN_Init:0000000000000000 HAL_CAN_Init /tmp/ccXma6Rl.s:335 .text.HAL_CAN_MspDeInit:0000000000000000 $t /tmp/ccXma6Rl.s:342 .text.HAL_CAN_MspDeInit:0000000000000000 HAL_CAN_MspDeInit /tmp/ccXma6Rl.s:357 .text.HAL_CAN_ConfigFilter:0000000000000000 $t /tmp/ccXma6Rl.s:364 .text.HAL_CAN_ConfigFilter:0000000000000000 HAL_CAN_ConfigFilter /tmp/ccXma6Rl.s:587 .text.HAL_CAN_Start:0000000000000000 $t /tmp/ccXma6Rl.s:594 .text.HAL_CAN_Start:0000000000000000 HAL_CAN_Start /tmp/ccXma6Rl.s:692 .text.HAL_CAN_Stop:0000000000000000 $t /tmp/ccXma6Rl.s:699 .text.HAL_CAN_Stop:0000000000000000 HAL_CAN_Stop /tmp/ccXma6Rl.s:798 .text.HAL_CAN_DeInit:0000000000000000 $t /tmp/ccXma6Rl.s:805 .text.HAL_CAN_DeInit:0000000000000000 HAL_CAN_DeInit /tmp/ccXma6Rl.s:861 .text.HAL_CAN_RequestSleep:0000000000000000 $t /tmp/ccXma6Rl.s:868 .text.HAL_CAN_RequestSleep:0000000000000000 HAL_CAN_RequestSleep /tmp/ccXma6Rl.s:917 .text.HAL_CAN_WakeUp:0000000000000000 $t /tmp/ccXma6Rl.s:924 .text.HAL_CAN_WakeUp:0000000000000000 HAL_CAN_WakeUp /tmp/ccXma6Rl.s:1020 .text.HAL_CAN_WakeUp:0000000000000054 $d /tmp/ccXma6Rl.s:1025 .text.HAL_CAN_IsSleepActive:0000000000000000 $t /tmp/ccXma6Rl.s:1032 .text.HAL_CAN_IsSleepActive:0000000000000000 HAL_CAN_IsSleepActive /tmp/ccXma6Rl.s:1086 .text.HAL_CAN_AddTxMessage:0000000000000000 $t /tmp/ccXma6Rl.s:1093 .text.HAL_CAN_AddTxMessage:0000000000000000 HAL_CAN_AddTxMessage /tmp/ccXma6Rl.s:1314 .text.HAL_CAN_AbortTxRequest:0000000000000000 $t /tmp/ccXma6Rl.s:1321 .text.HAL_CAN_AbortTxRequest:0000000000000000 HAL_CAN_AbortTxRequest /tmp/ccXma6Rl.s:1396 .text.HAL_CAN_GetTxMailboxesFreeLevel:0000000000000000 $t /tmp/ccXma6Rl.s:1403 .text.HAL_CAN_GetTxMailboxesFreeLevel:0000000000000000 HAL_CAN_GetTxMailboxesFreeLevel /tmp/ccXma6Rl.s:1480 .text.HAL_CAN_IsTxMessagePending:0000000000000000 $t /tmp/ccXma6Rl.s:1487 .text.HAL_CAN_IsTxMessagePending:0000000000000000 HAL_CAN_IsTxMessagePending /tmp/ccXma6Rl.s:1545 .text.HAL_CAN_GetTxTimestamp:0000000000000000 $t /tmp/ccXma6Rl.s:1552 .text.HAL_CAN_GetTxTimestamp:0000000000000000 HAL_CAN_GetTxTimestamp /tmp/ccXma6Rl.s:1627 .text.HAL_CAN_GetRxMessage:0000000000000000 $t /tmp/ccXma6Rl.s:1634 .text.HAL_CAN_GetRxMessage:0000000000000000 HAL_CAN_GetRxMessage /tmp/ccXma6Rl.s:1924 .text.HAL_CAN_GetRxFifoFillLevel:0000000000000000 $t /tmp/ccXma6Rl.s:1931 .text.HAL_CAN_GetRxFifoFillLevel:0000000000000000 HAL_CAN_GetRxFifoFillLevel /tmp/ccXma6Rl.s:1993 .text.HAL_CAN_ActivateNotification:0000000000000000 $t /tmp/ccXma6Rl.s:2000 .text.HAL_CAN_ActivateNotification:0000000000000000 HAL_CAN_ActivateNotification /tmp/ccXma6Rl.s:2050 .text.HAL_CAN_DeactivateNotification:0000000000000000 $t /tmp/ccXma6Rl.s:2057 .text.HAL_CAN_DeactivateNotification:0000000000000000 HAL_CAN_DeactivateNotification /tmp/ccXma6Rl.s:2107 .text.HAL_CAN_TxMailbox0CompleteCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2114 .text.HAL_CAN_TxMailbox0CompleteCallback:0000000000000000 HAL_CAN_TxMailbox0CompleteCallback /tmp/ccXma6Rl.s:2129 .text.HAL_CAN_TxMailbox1CompleteCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2136 .text.HAL_CAN_TxMailbox1CompleteCallback:0000000000000000 HAL_CAN_TxMailbox1CompleteCallback /tmp/ccXma6Rl.s:2151 .text.HAL_CAN_TxMailbox2CompleteCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2158 .text.HAL_CAN_TxMailbox2CompleteCallback:0000000000000000 HAL_CAN_TxMailbox2CompleteCallback /tmp/ccXma6Rl.s:2173 .text.HAL_CAN_TxMailbox0AbortCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2180 .text.HAL_CAN_TxMailbox0AbortCallback:0000000000000000 HAL_CAN_TxMailbox0AbortCallback /tmp/ccXma6Rl.s:2195 .text.HAL_CAN_TxMailbox1AbortCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2202 .text.HAL_CAN_TxMailbox1AbortCallback:0000000000000000 HAL_CAN_TxMailbox1AbortCallback /tmp/ccXma6Rl.s:2217 .text.HAL_CAN_TxMailbox2AbortCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2224 .text.HAL_CAN_TxMailbox2AbortCallback:0000000000000000 HAL_CAN_TxMailbox2AbortCallback /tmp/ccXma6Rl.s:2239 .text.HAL_CAN_RxFifo0MsgPendingCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2246 .text.HAL_CAN_RxFifo0MsgPendingCallback:0000000000000000 HAL_CAN_RxFifo0MsgPendingCallback /tmp/ccXma6Rl.s:2261 .text.HAL_CAN_RxFifo0FullCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2268 .text.HAL_CAN_RxFifo0FullCallback:0000000000000000 HAL_CAN_RxFifo0FullCallback ARM GAS /tmp/ccXma6Rl.s page 124 /tmp/ccXma6Rl.s:2283 .text.HAL_CAN_RxFifo1MsgPendingCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2290 .text.HAL_CAN_RxFifo1MsgPendingCallback:0000000000000000 HAL_CAN_RxFifo1MsgPendingCallback /tmp/ccXma6Rl.s:2305 .text.HAL_CAN_RxFifo1FullCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2312 .text.HAL_CAN_RxFifo1FullCallback:0000000000000000 HAL_CAN_RxFifo1FullCallback /tmp/ccXma6Rl.s:2327 .text.HAL_CAN_SleepCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2334 .text.HAL_CAN_SleepCallback:0000000000000000 HAL_CAN_SleepCallback /tmp/ccXma6Rl.s:2349 .text.HAL_CAN_WakeUpFromRxMsgCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2356 .text.HAL_CAN_WakeUpFromRxMsgCallback:0000000000000000 HAL_CAN_WakeUpFromRxMsgCallback /tmp/ccXma6Rl.s:2371 .text.HAL_CAN_ErrorCallback:0000000000000000 $t /tmp/ccXma6Rl.s:2378 .text.HAL_CAN_ErrorCallback:0000000000000000 HAL_CAN_ErrorCallback /tmp/ccXma6Rl.s:2393 .text.HAL_CAN_IRQHandler:0000000000000000 $t /tmp/ccXma6Rl.s:2400 .text.HAL_CAN_IRQHandler:0000000000000000 HAL_CAN_IRQHandler /tmp/ccXma6Rl.s:2893 .text.HAL_CAN_GetState:0000000000000000 $t /tmp/ccXma6Rl.s:2900 .text.HAL_CAN_GetState:0000000000000000 HAL_CAN_GetState /tmp/ccXma6Rl.s:2961 .text.HAL_CAN_GetError:0000000000000000 $t /tmp/ccXma6Rl.s:2968 .text.HAL_CAN_GetError:0000000000000000 HAL_CAN_GetError /tmp/ccXma6Rl.s:2986 .text.HAL_CAN_ResetError:0000000000000000 $t /tmp/ccXma6Rl.s:2993 .text.HAL_CAN_ResetError:0000000000000000 HAL_CAN_ResetError UNDEFINED SYMBOLS HAL_GetTick