Files
2023-06-04 17:50:49 +02:00

7265 lines
468 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ARM GAS /tmp/ccj1aKCo.s page 1
1 .cpu cortex-m4
2 .arch armv7e-m
3 .fpu fpv4-sp-d16
4 .eabi_attribute 27, 1
5 .eabi_attribute 28, 1
6 .eabi_attribute 20, 1
7 .eabi_attribute 21, 1
8 .eabi_attribute 23, 3
9 .eabi_attribute 24, 1
10 .eabi_attribute 25, 1
11 .eabi_attribute 26, 1
12 .eabi_attribute 30, 1
13 .eabi_attribute 34, 1
14 .eabi_attribute 18, 4
15 .file "stm32f3xx_hal_can.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c"
20 .section .text.HAL_CAN_MspInit,"ax",%progbits
21 .align 1
22 .weak HAL_CAN_MspInit
23 .syntax unified
24 .thumb
25 .thumb_func
27 HAL_CAN_MspInit:
28 .LVL0:
29 .LFB132:
1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ******************************************************************************
3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @file stm32f3xx_hal_can.c
4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @author MCD Application Team
5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief CAN HAL module driver.
6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * functionalities of the Controller Area Network (CAN) peripheral:
8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Initialization and de-initialization functions
9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Configuration functions
10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Control functions
11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Interrupts management
12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Callbacks functions
13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * + Peripheral State and Error functions
14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim
16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### How to use this driver #####
18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..]
20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Initialize the CAN low level resources by implementing the
21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_MspInit():
22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Enable the CAN interface clock using __HAL_RCC_CANx_CLK_ENABLE()
23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Configure CAN pins
24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) Enable the clock for the CAN GPIOs
25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) Configure CAN pins as alternate function open-drain
26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) In case of using interrupts (e.g. HAL_CAN_ActivateNotification())
27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) Configure the CAN interrupt priority using
28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_NVIC_SetPriority()
29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) Enable the CAN IRQ handler using HAL_NVIC_EnableIRQ()
ARM GAS /tmp/ccj1aKCo.s page 2
30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+++) In CAN IRQ handler, call HAL_CAN_IRQHandler()
31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Initialize the CAN peripheral using HAL_CAN_Init() function. This
33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** function resorts to HAL_CAN_MspInit() for low-level initialization.
34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Configure the reception filters using the following configuration
36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** functions:
37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_ConfigFilter()
38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Start the CAN module using HAL_CAN_Start() function. At this level
40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the node is active on the bus: it receive messages, and can send
41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** messages.
42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) To manage messages transmission, the following Tx control functions
44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can be used:
45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_AddTxMessage() to request transmission of a new
46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** message.
47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_AbortTxRequest() to abort transmission of a pending
48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** message.
49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_GetTxMailboxesFreeLevel() to get the number of free Tx
50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** mailboxes.
51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_IsTxMessagePending() to check if a message is pending
52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** in a Tx mailbox.
53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) HAL_CAN_GetTxTimestamp() to get the timestamp of Tx message
54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** sent, if time triggered communication mode is enabled.
55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) When a message is received into the CAN Rx FIFOs, it can be retrieved
57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** using the HAL_CAN_GetRxMessage() function. The function
58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_GetRxFifoFillLevel() allows to know how many Rx message are
59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** stored in the Rx Fifo.
60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Calling the HAL_CAN_Stop() function stops the CAN module.
62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) The deinitialization is achieved with HAL_CAN_DeInit() function.
64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *** Polling mode operation ***
67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================
68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..]
69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Reception:
70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Monitor reception of message using HAL_CAN_GetRxFifoFillLevel()
71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** until at least one message is received.
72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Then get the message using HAL_CAN_GetRxMessage().
73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Transmission:
75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Monitor the Tx mailboxes availability until at least one Tx
76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** mailbox is free, using HAL_CAN_GetTxMailboxesFreeLevel().
77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Then request transmission of a message using
78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_AddTxMessage().
79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *** Interrupt mode operation ***
82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ================================
83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..]
84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Notifications are activated using HAL_CAN_ActivateNotification()
85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** function. Then, the process can be controlled through the
86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** available user callbacks: HAL_CAN_xxxCallback(), using same APIs
ARM GAS /tmp/ccj1aKCo.s page 3
87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_GetRxMessage() and HAL_CAN_AddTxMessage().
88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Notifications can be deactivated using
90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_DeactivateNotification() function.
91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) Special care should be taken for CAN_IT_RX_FIFO0_MSG_PENDING and
93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CAN_IT_RX_FIFO1_MSG_PENDING notifications. These notifications trig
94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the callbacks HAL_CAN_RxFIFO0MsgPendingCallback() and
95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFIFO1MsgPendingCallback(). User has two possible options
96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** here.
97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Directly get the Rx message in the callback, using
98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_GetRxMessage().
99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Or deactivate the notification in the callback without
100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** getting the Rx message. The Rx message can then be got later
101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** using HAL_CAN_GetRxMessage(). Once the Rx message have been
102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** read, the notification can be activated again.
103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *** Sleep mode ***
106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==================
107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..]
108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) The CAN peripheral can be put in sleep mode (low power), using
109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RequestSleep(). The sleep mode will be entered as soon as the
110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** current CAN activity (transmission or reception of a CAN frame) will
111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** be completed.
112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) A notification can be activated to be informed when the sleep mode
114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** will be entered.
115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) It can be checked if the sleep mode is entered using
117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_IsSleepActive().
118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Note that the CAN state (accessible from the API HAL_CAN_GetState())
119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** is HAL_CAN_STATE_SLEEP_PENDING as soon as the sleep mode request is
120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** submitted (the sleep mode is not yet entered), and become
121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_STATE_SLEEP_ACTIVE when the sleep mode is effective.
122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (#) The wake-up from sleep mode can be triggered by two ways:
124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) Using HAL_CAN_WakeUp(). When returning from this function,
125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the sleep mode is exited (if return status is HAL_OK).
126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (++) When a start of Rx CAN frame is detected by the CAN peripheral,
127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if automatic wake up mode is enabled.
128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *** Callback registration ***
130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** =============================================
131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** The compilation define USE_HAL_CAN_REGISTER_CALLBACKS when set to 1
133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** allows the user to configure dynamically the driver callbacks.
134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Use Function HAL_CAN_RegisterCallback() to register an interrupt callback.
135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Function HAL_CAN_RegisterCallback() allows to register following callbacks:
137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback.
138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback.
139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback.
140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback.
141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback.
142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback.
143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback.
ARM GAS /tmp/ccj1aKCo.s page 4
144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback.
145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback.
146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback.
147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) SleepCallback : Sleep Callback.
148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback.
149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) ErrorCallback : Error Callback.
150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) MspInitCallback : CAN MspInit.
151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit.
152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** and a pointer to the user callback function.
154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Use function HAL_CAN_UnRegisterCallback() to reset a callback to the default
156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** weak function.
157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_UnRegisterCallback takes as parameters the HAL peripheral handle,
158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** and the Callback ID.
159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** This function allows to reset following callbacks:
160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback.
161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback.
162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback.
163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback.
164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback.
165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback.
166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback.
167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback.
168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback.
169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback.
170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) SleepCallback : Sleep Callback.
171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback.
172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) ErrorCallback : Error Callback.
173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) MspInitCallback : CAN MspInit.
174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit.
175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** By default, after the HAL_CAN_Init() and when the state is HAL_CAN_STATE_RESET,
177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** all callbacks are set to the corresponding weak functions:
178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** example HAL_CAN_ErrorCallback().
179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Exception done for MspInit and MspDeInit functions that are
180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** reset to the legacy weak function in the HAL_CAN_Init()/ HAL_CAN_DeInit() only when
181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** these callbacks are null (not registered beforehand).
182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if not, MspInit or MspDeInit are not null, the HAL_CAN_Init()/ HAL_CAN_DeInit()
183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Callbacks can be registered/unregistered in HAL_CAN_STATE_READY state only.
186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** Exception done MspInit/MspDeInit that can be registered/unregistered
187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** in HAL_CAN_STATE_READY or HAL_CAN_STATE_RESET state,
188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** In that case first register the MspInit/MspDeInit user callbacks
190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** using HAL_CAN_RegisterCallback() before calling HAL_CAN_DeInit()
191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** or HAL_CAN_Init() function.
192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** When The compilation define USE_HAL_CAN_REGISTER_CALLBACKS is set to 0 or
194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** not defined, the callback registration feature is not available and all callbacks
195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** are set to the corresponding weak functions.
196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim
198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ******************************************************************************
199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @attention
200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
ARM GAS /tmp/ccj1aKCo.s page 5
201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * All rights reserved.</center></h2>
203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This software component is licensed by ST under BSD 3-Clause license,
205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the "License"; You may not use this file except in compliance with the
206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * License. You may obtain a copy of the License at:
207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * opensource.org/licenses/BSD-3-Clause
208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ******************************************************************************
210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Includes ------------------------------------------------------------------*/
213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #include "stm32f3xx_hal.h"
214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @addtogroup STM32F3xx_HAL_Driver
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if defined(CAN)
220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN CAN
222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief CAN driver modules
223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #ifdef HAL_CAN_MODULE_ENABLED
227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #ifdef HAL_CAN_LEGACY_MODULE_ENABLED
229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #error "The CAN driver cannot be used with its legacy, Please enable only one CAN module at once"
230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif
231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private typedef -----------------------------------------------------------*/
233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private define ------------------------------------------------------------*/
234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Private_Constants CAN Private Constants
235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #define CAN_TIMEOUT_VALUE 10U
238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @}
240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private macro -------------------------------------------------------------*/
242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private variables ---------------------------------------------------------*/
243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Private function prototypes -----------------------------------------------*/
244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Exported functions --------------------------------------------------------*/
245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions CAN Exported Functions
247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group1 Initialization and de-initialization functions
251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Initialization and Configuration functions
252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim
254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Initialization and de-initialization functions #####
256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] This section provides functions allowing to:
ARM GAS /tmp/ccj1aKCo.s page 6
258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_Init : Initialize and configure the CAN.
259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_DeInit : De-initialize the CAN.
260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_MspInit : Initialize the CAN MSP.
261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_MspDeInit : DeInitialize the CAN MSP.
262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim
264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Initializes the CAN peripheral according to the specified
269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * parameters in the CAN_InitStruct.
270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef *hcan)
275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart;
277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check CAN handle */
279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan == NULL)
280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */
285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance));
286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode));
287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff));
288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp));
289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission));
290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked));
291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority));
292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode));
293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth));
294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1));
295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2));
296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler));
297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET)
300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset callbacks to legacy functions */
302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; /* Legacy weak RxFifo0M
303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; /* Legacy weak RxFifo0F
304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; /* Legacy weak RxFifo1M
305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; /* Legacy weak RxFifo1F
306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; /* Legacy weak TxMailbo
307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; /* Legacy weak TxMailbo
308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; /* Legacy weak TxMailbo
309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; /* Legacy weak TxMailbo
310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; /* Legacy weak TxMailbo
311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; /* Legacy weak TxMailbo
312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback; /* Legacy weak SleepCal
313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; /* Legacy weak WakeUpFr
314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback; /* Legacy weak ErrorCal
ARM GAS /tmp/ccj1aKCo.s page 7
315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->MspInitCallback == NULL)
317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; /* Legacy weak MspInit */
319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */
322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback(hcan);
323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET)
327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */
329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_MspInit(hcan);
330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */
332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request initialisation */
334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ);
335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get tick */
337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** tickstart = HAL_GetTick();
338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wait initialisation acknowledge */
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U)
341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */
348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR;
349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Exit from sleep mode */
355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);
356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get tick */
358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** tickstart = HAL_GetTick();
359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Sleep mode leave acknowledge */
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U)
362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */
369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR;
370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
ARM GAS /tmp/ccj1aKCo.s page 8
372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the time triggered communication mode */
376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.TimeTriggeredMode == ENABLE)
377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TTCM);
379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TTCM);
383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the automatic bus-off management */
386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.AutoBusOff == ENABLE)
387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_ABOM);
389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_ABOM);
393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the automatic wake-up mode */
396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.AutoWakeUp == ENABLE)
397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_AWUM);
399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_AWUM);
403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the automatic retransmission */
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.AutoRetransmission == ENABLE)
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_NART);
409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_NART);
413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the receive FIFO locked mode */
416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.ReceiveFifoLocked == ENABLE)
417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RFLM);
419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_RFLM);
423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the transmit FIFO priority */
426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->Init.TransmitFifoPriority == ENABLE)
427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TXFP);
ARM GAS /tmp/ccj1aKCo.s page 9
429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TXFP);
433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set the bit timing register */
436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** WRITE_REG(hcan->Instance->BTR, (uint32_t)(hcan->Init.Mode |
437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Init.SyncJumpWidth |
438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Init.TimeSeg1 |
439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Init.TimeSeg2 |
440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (hcan->Init.Prescaler - 1U)));
441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Initialize the error code */
443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE;
444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Initialize the CAN state */
446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY;
447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Deinitializes the CAN peripheral registers to their default
454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * reset values.
455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeInit(CAN_HandleTypeDef *hcan)
460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check CAN handle */
462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan == NULL)
463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */
468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance));
469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Stop the CAN module */
471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (void)HAL_CAN_Stop(hcan);
472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->MspDeInitCallback == NULL)
475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; /* Legacy weak MspDeInit */
477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */
480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback(hcan);
481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */
484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_MspDeInit(hcan);
485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */
ARM GAS /tmp/ccj1aKCo.s page 10
486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset the CAN peripheral */
488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RESET);
489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset the CAN ErrorCode */
491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE;
492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */
494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_RESET;
495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Initializes the CAN MSP.
502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan)
507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
30 .loc 1 507 1 view -0
31 .cfi_startproc
32 @ args = 0, pretend = 0, frame = 0
33 @ frame_needed = 0, uses_anonymous_args = 0
34 @ link register save eliminated.
508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
35 .loc 1 509 3 view .LVU1
510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_MspInit could be implemented in the user file
513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
36 .loc 1 514 1 is_stmt 0 view .LVU2
37 0000 7047 bx lr
38 .cfi_endproc
39 .LFE132:
41 .section .text.HAL_CAN_Init,"ax",%progbits
42 .align 1
43 .global HAL_CAN_Init
44 .syntax unified
45 .thumb
46 .thumb_func
48 HAL_CAN_Init:
49 .LVL1:
50 .LFB130:
275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart;
51 .loc 1 275 1 is_stmt 1 view -0
52 .cfi_startproc
53 @ args = 0, pretend = 0, frame = 0
54 @ frame_needed = 0, uses_anonymous_args = 0
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
55 .loc 1 276 3 view .LVU4
279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
56 .loc 1 279 3 view .LVU5
ARM GAS /tmp/ccj1aKCo.s page 11
279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
57 .loc 1 279 6 is_stmt 0 view .LVU6
58 0000 0028 cmp r0, #0
59 0002 00F0A180 beq .L21
275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart;
60 .loc 1 275 1 view .LVU7
61 0006 38B5 push {r3, r4, r5, lr}
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/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode));
68 .loc 1 285 3 is_stmt 1 view .LVU8
286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff));
69 .loc 1 286 3 view .LVU9
287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp));
70 .loc 1 287 3 view .LVU10
288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission));
71 .loc 1 288 3 view .LVU11
289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked));
72 .loc 1 289 3 view .LVU12
290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority));
73 .loc 1 290 3 view .LVU13
291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode));
74 .loc 1 291 3 view .LVU14
292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth));
75 .loc 1 292 3 view .LVU15
293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1));
76 .loc 1 293 3 view .LVU16
294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2));
77 .loc 1 294 3 view .LVU17
295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler));
78 .loc 1 295 3 view .LVU18
296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
79 .loc 1 296 3 view .LVU19
326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
80 .loc 1 326 3 view .LVU20
326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
81 .loc 1 326 11 is_stmt 0 view .LVU21
82 000a 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
83 .loc 1 326 6 view .LVU22
84 000e D3B1 cbz r3, .L26
85 .LVL2:
86 .L4:
334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_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 43F00103 orr r3, r3, #1
91 0018 1360 str r3, [r2]
337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
92 .loc 1 337 3 view .LVU24
337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
93 .loc 1 337 15 is_stmt 0 view .LVU25
ARM GAS /tmp/ccj1aKCo.s page 12
94 001a FFF7FEFF bl HAL_GetTick
95 .LVL3:
96 001e 0546 mov r5, r0
97 .LVL4:
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
98 .loc 1 340 3 is_stmt 1 view .LVU26
99 .L5:
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
100 .loc 1 340 47 view .LVU27
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
101 .loc 1 340 15 is_stmt 0 view .LVU28
102 0020 2368 ldr r3, [r4]
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
103 .loc 1 340 25 view .LVU29
104 0022 5A68 ldr r2, [r3, #4]
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
105 .loc 1 340 47 view .LVU30
106 0024 12F0010F tst r2, #1
107 0028 10D1 bne .L27
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
108 .loc 1 342 5 is_stmt 1 view .LVU31
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
109 .loc 1 342 10 is_stmt 0 view .LVU32
110 002a FFF7FEFF bl HAL_GetTick
111 .LVL5:
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
112 .loc 1 342 24 view .LVU33
113 002e 401B subs r0, r0, r5
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
114 .loc 1 342 8 view .LVU34
115 0030 0A28 cmp r0, #10
116 0032 F5D9 bls .L5
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
117 .loc 1 345 7 is_stmt 1 view .LVU35
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
118 .loc 1 345 11 is_stmt 0 view .LVU36
119 0034 636A ldr r3, [r4, #36]
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
120 .loc 1 345 23 view .LVU37
121 0036 43F40033 orr r3, r3, #131072
122 003a 6362 str r3, [r4, #36]
348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
123 .loc 1 348 7 is_stmt 1 view .LVU38
348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
124 .loc 1 348 19 is_stmt 0 view .LVU39
125 003c 0523 movs r3, #5
126 003e 84F82030 strb r3, [r4, #32]
350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
127 .loc 1 350 7 is_stmt 1 view .LVU40
350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
128 .loc 1 350 14 is_stmt 0 view .LVU41
129 0042 0120 movs r0, #1
130 .L3:
450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
131 .loc 1 450 1 view .LVU42
132 0044 38BD pop {r3, r4, r5, pc}
133 .LVL6:
ARM GAS /tmp/ccj1aKCo.s page 13
134 .L26:
329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
135 .loc 1 329 5 is_stmt 1 view .LVU43
136 0046 FFF7FEFF bl HAL_CAN_MspInit
137 .LVL7:
329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
138 .loc 1 329 5 is_stmt 0 view .LVU44
139 004a E1E7 b .L4
140 .LVL8:
141 .L27:
355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
142 .loc 1 355 3 is_stmt 1 view .LVU45
143 004c 1A68 ldr r2, [r3]
144 004e 22F00202 bic r2, r2, #2
145 0052 1A60 str r2, [r3]
358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
146 .loc 1 358 3 view .LVU46
358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
147 .loc 1 358 15 is_stmt 0 view .LVU47
148 0054 FFF7FEFF bl HAL_GetTick
149 .LVL9:
150 0058 0546 mov r5, r0
151 .LVL10:
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
152 .loc 1 361 3 is_stmt 1 view .LVU48
153 .L7:
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
154 .loc 1 361 47 view .LVU49
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
155 .loc 1 361 15 is_stmt 0 view .LVU50
156 005a 2368 ldr r3, [r4]
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
157 .loc 1 361 25 view .LVU51
158 005c 5A68 ldr r2, [r3, #4]
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
159 .loc 1 361 47 view .LVU52
160 005e 12F0020F tst r2, #2
161 0062 0DD0 beq .L28
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
162 .loc 1 363 5 is_stmt 1 view .LVU53
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
163 .loc 1 363 10 is_stmt 0 view .LVU54
164 0064 FFF7FEFF bl HAL_GetTick
165 .LVL11:
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
166 .loc 1 363 24 view .LVU55
167 0068 401B subs r0, r0, r5
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
168 .loc 1 363 8 view .LVU56
169 006a 0A28 cmp r0, #10
170 006c F5D9 bls .L7
366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
171 .loc 1 366 7 is_stmt 1 view .LVU57
366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
172 .loc 1 366 11 is_stmt 0 view .LVU58
173 006e 636A ldr r3, [r4, #36]
366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
ARM GAS /tmp/ccj1aKCo.s page 14
174 .loc 1 366 23 view .LVU59
175 0070 43F40033 orr r3, r3, #131072
176 0074 6362 str r3, [r4, #36]
369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
177 .loc 1 369 7 is_stmt 1 view .LVU60
369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
178 .loc 1 369 19 is_stmt 0 view .LVU61
179 0076 0523 movs r3, #5
180 0078 84F82030 strb r3, [r4, #32]
371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
181 .loc 1 371 7 is_stmt 1 view .LVU62
371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
182 .loc 1 371 14 is_stmt 0 view .LVU63
183 007c 0120 movs r0, #1
184 007e E1E7 b .L3
185 .L28:
376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
186 .loc 1 376 3 is_stmt 1 view .LVU64
376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
187 .loc 1 376 17 is_stmt 0 view .LVU65
188 0080 227E ldrb r2, [r4, #24] @ zero_extendqisi2
376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
189 .loc 1 376 6 view .LVU66
190 0082 012A cmp r2, #1
191 0084 3DD0 beq .L29
382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
192 .loc 1 382 5 is_stmt 1 view .LVU67
193 0086 1A68 ldr r2, [r3]
194 0088 22F08002 bic r2, r2, #128
195 008c 1A60 str r2, [r3]
196 .L10:
386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
197 .loc 1 386 3 view .LVU68
386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
198 .loc 1 386 17 is_stmt 0 view .LVU69
199 008e 637E ldrb r3, [r4, #25] @ zero_extendqisi2
386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
200 .loc 1 386 6 view .LVU70
201 0090 012B cmp r3, #1
202 0092 3BD0 beq .L30
392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
203 .loc 1 392 5 is_stmt 1 view .LVU71
204 0094 2268 ldr r2, [r4]
205 0096 1368 ldr r3, [r2]
206 0098 23F04003 bic r3, r3, #64
207 009c 1360 str r3, [r2]
208 .L12:
396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
209 .loc 1 396 3 view .LVU72
396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
210 .loc 1 396 17 is_stmt 0 view .LVU73
211 009e A37E ldrb r3, [r4, #26] @ zero_extendqisi2
396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
212 .loc 1 396 6 view .LVU74
213 00a0 012B cmp r3, #1
214 00a2 39D0 beq .L31
402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
ARM GAS /tmp/ccj1aKCo.s page 15
215 .loc 1 402 5 is_stmt 1 view .LVU75
216 00a4 2268 ldr r2, [r4]
217 00a6 1368 ldr r3, [r2]
218 00a8 23F02003 bic r3, r3, #32
219 00ac 1360 str r3, [r2]
220 .L14:
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
221 .loc 1 406 3 view .LVU76
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
222 .loc 1 406 17 is_stmt 0 view .LVU77
223 00ae E37E ldrb r3, [r4, #27] @ zero_extendqisi2
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
224 .loc 1 406 6 view .LVU78
225 00b0 012B cmp r3, #1
226 00b2 37D0 beq .L32
412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
227 .loc 1 412 5 is_stmt 1 view .LVU79
228 00b4 2268 ldr r2, [r4]
229 00b6 1368 ldr r3, [r2]
230 00b8 43F01003 orr r3, r3, #16
231 00bc 1360 str r3, [r2]
232 .L16:
416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
233 .loc 1 416 3 view .LVU80
416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
234 .loc 1 416 17 is_stmt 0 view .LVU81
235 00be 237F ldrb r3, [r4, #28] @ zero_extendqisi2
416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
236 .loc 1 416 6 view .LVU82
237 00c0 012B cmp r3, #1
238 00c2 35D0 beq .L33
422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
239 .loc 1 422 5 is_stmt 1 view .LVU83
240 00c4 2268 ldr r2, [r4]
241 00c6 1368 ldr r3, [r2]
242 00c8 23F00803 bic r3, r3, #8
243 00cc 1360 str r3, [r2]
244 .L18:
426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
245 .loc 1 426 3 view .LVU84
426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
246 .loc 1 426 17 is_stmt 0 view .LVU85
247 00ce 637F ldrb r3, [r4, #29] @ zero_extendqisi2
426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
248 .loc 1 426 6 view .LVU86
249 00d0 012B cmp r3, #1
250 00d2 33D0 beq .L34
432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
251 .loc 1 432 5 is_stmt 1 view .LVU87
252 00d4 2268 ldr r2, [r4]
253 00d6 1368 ldr r3, [r2]
254 00d8 23F00403 bic r3, r3, #4
255 00dc 1360 str r3, [r2]
256 .L20:
436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Init.SyncJumpWidth |
257 .loc 1 436 3 view .LVU88
258 00de A368 ldr r3, [r4, #8]
ARM GAS /tmp/ccj1aKCo.s page 16
259 00e0 E268 ldr r2, [r4, #12]
260 00e2 1343 orrs r3, r3, r2
261 00e4 2269 ldr r2, [r4, #16]
262 00e6 1343 orrs r3, r3, r2
263 00e8 6269 ldr r2, [r4, #20]
264 00ea 1343 orrs r3, r3, r2
265 00ec 6268 ldr r2, [r4, #4]
266 00ee 013A subs r2, r2, #1
267 00f0 2168 ldr r1, [r4]
268 00f2 1343 orrs r3, r3, r2
269 00f4 CB61 str r3, [r1, #28]
443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
270 .loc 1 443 3 view .LVU89
443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
271 .loc 1 443 19 is_stmt 0 view .LVU90
272 00f6 0020 movs r0, #0
273 00f8 6062 str r0, [r4, #36]
446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
274 .loc 1 446 3 is_stmt 1 view .LVU91
446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
275 .loc 1 446 15 is_stmt 0 view .LVU92
276 00fa 0123 movs r3, #1
277 00fc 84F82030 strb r3, [r4, #32]
449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
278 .loc 1 449 3 is_stmt 1 view .LVU93
449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
279 .loc 1 449 10 is_stmt 0 view .LVU94
280 0100 A0E7 b .L3
281 .L29:
378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
282 .loc 1 378 5 is_stmt 1 view .LVU95
283 0102 1A68 ldr r2, [r3]
284 0104 42F08002 orr r2, r2, #128
285 0108 1A60 str r2, [r3]
286 010a C0E7 b .L10
287 .L30:
388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
288 .loc 1 388 5 view .LVU96
289 010c 2268 ldr r2, [r4]
290 010e 1368 ldr r3, [r2]
291 0110 43F04003 orr r3, r3, #64
292 0114 1360 str r3, [r2]
293 0116 C2E7 b .L12
294 .L31:
398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
295 .loc 1 398 5 view .LVU97
296 0118 2268 ldr r2, [r4]
297 011a 1368 ldr r3, [r2]
298 011c 43F02003 orr r3, r3, #32
299 0120 1360 str r3, [r2]
300 0122 C4E7 b .L14
301 .L32:
408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
302 .loc 1 408 5 view .LVU98
303 0124 2268 ldr r2, [r4]
304 0126 1368 ldr r3, [r2]
305 0128 23F01003 bic r3, r3, #16
ARM GAS /tmp/ccj1aKCo.s page 17
306 012c 1360 str r3, [r2]
307 012e C6E7 b .L16
308 .L33:
418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
309 .loc 1 418 5 view .LVU99
310 0130 2268 ldr r2, [r4]
311 0132 1368 ldr r3, [r2]
312 0134 43F00803 orr r3, r3, #8
313 0138 1360 str r3, [r2]
314 013a C8E7 b .L18
315 .L34:
428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
316 .loc 1 428 5 view .LVU100
317 013c 2268 ldr r2, [r4]
318 013e 1368 ldr r3, [r2]
319 0140 43F00403 orr r3, r3, #4
320 0144 1360 str r3, [r2]
321 0146 CAE7 b .L20
322 .LVL12:
323 .L21:
324 .cfi_def_cfa_offset 0
325 .cfi_restore 3
326 .cfi_restore 4
327 .cfi_restore 5
328 .cfi_restore 14
281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
329 .loc 1 281 12 is_stmt 0 view .LVU101
330 0148 0120 movs r0, #1
331 .LVL13:
450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
332 .loc 1 450 1 view .LVU102
333 014a 7047 bx lr
334 .cfi_endproc
335 .LFE130:
337 .section .text.HAL_CAN_MspDeInit,"ax",%progbits
338 .align 1
339 .weak HAL_CAN_MspDeInit
340 .syntax unified
341 .thumb
342 .thumb_func
344 HAL_CAN_MspDeInit:
345 .LVL14:
346 .LFB133:
515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief DeInitializes the CAN MSP.
518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_MspDeInit(CAN_HandleTypeDef *hcan)
523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
347 .loc 1 523 1 is_stmt 1 view -0
348 .cfi_startproc
349 @ args = 0, pretend = 0, frame = 0
350 @ frame_needed = 0, uses_anonymous_args = 0
351 @ link register save eliminated.
ARM GAS /tmp/ccj1aKCo.s page 18
524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
352 .loc 1 525 3 view .LVU104
526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_MspDeInit could be implemented in the user file
529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
353 .loc 1 530 1 is_stmt 0 view .LVU105
354 0000 7047 bx lr
355 .cfi_endproc
356 .LFE133:
358 .section .text.HAL_CAN_ConfigFilter,"ax",%progbits
359 .align 1
360 .global HAL_CAN_ConfigFilter
361 .syntax unified
362 .thumb
363 .thumb_func
365 HAL_CAN_ConfigFilter:
366 .LVL15:
367 .LFB134:
531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Register a CAN CallBack.
535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * To be used instead of the weak predefined callback
536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for CAN module
538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param CallbackID ID of the callback to be registered
539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be one of the following values:
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID Tx Mailbox 0 Complete callback ID
541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID Tx Mailbox 1 Complete callback ID
542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID Tx Mailbox 2 Complete callback ID
543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CB_ID Tx Mailbox 0 Abort callback ID
544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CB_ID Tx Mailbox 1 Abort callback ID
545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CB_ID Tx Mailbox 2 Abort callback ID
546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID Rx Fifo 0 message pending callback ID
547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CB_ID Rx Fifo 0 full callback ID
548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID Rx Fifo 1 message pending callback ID
549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CB_ID Rx Fifo 1 full callback ID
550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CB_ID Sleep callback ID
551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID Wake Up from Rx message callback ID
552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CB_ID Error callback ID
553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID
554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID
555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param pCallback pointer to the Callback function
556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Callb
559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK;
561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pCallback == NULL)
563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */
565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
ARM GAS /tmp/ccj1aKCo.s page 19
567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY)
571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (CallbackID)
573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID :
575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = pCallback;
576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID :
579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = pCallback;
580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID :
583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = pCallback;
584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID :
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0AbortCallback = pCallback;
588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID :
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1AbortCallback = pCallback;
592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID :
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2AbortCallback = pCallback;
596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID :
599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = pCallback;
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID :
603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0FullCallback = pCallback;
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID :
607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = pCallback;
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID :
611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1FullCallback = pCallback;
612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID :
615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->SleepCallback = pCallback;
616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID :
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = pCallback;
620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID :
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCallback = pCallback;
ARM GAS /tmp/ccj1aKCo.s page 20
624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID :
627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = pCallback;
628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID :
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = pCallback;
632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default :
635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */
636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */
639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR;
640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET)
644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (CallbackID)
646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID :
648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = pCallback;
649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID :
652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = pCallback;
653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default :
656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */
657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */
660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR;
661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */
667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */
670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR;
671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status;
674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Unregister a CAN CallBack.
678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * CAN callabck is redirected to the weak predefined callback
679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for CAN module
ARM GAS /tmp/ccj1aKCo.s page 21
681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param CallbackID ID of the callback to be unregistered
682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be one of the following values:
683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID Tx Mailbox 0 Complete callback ID
684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID Tx Mailbox 1 Complete callback ID
685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID Tx Mailbox 2 Complete callback ID
686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CB_ID Tx Mailbox 0 Abort callback ID
687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CB_ID Tx Mailbox 1 Abort callback ID
688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CB_ID Tx Mailbox 2 Abort callback ID
689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID Rx Fifo 0 message pending callback ID
690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CB_ID Rx Fifo 0 full callback ID
691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID Rx Fifo 1 message pending callback ID
692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CB_ID Rx Fifo 1 full callback ID
693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CB_ID Sleep callback ID
694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID Wake Up from Rx message callback ID
695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CB_ID Error callback ID
696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID
697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID
698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_UnRegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Cal
701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK;
703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY)
705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (CallbackID)
707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID :
709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback;
710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID :
713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback;
714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID :
717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback;
718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID :
721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback;
722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID :
725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback;
726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID :
729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback;
730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID :
733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback;
734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID :
737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback;
ARM GAS /tmp/ccj1aKCo.s page 22
738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID :
741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback;
742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID :
745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback;
746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID :
749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback;
750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID :
753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback;
754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID :
757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback;
758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID :
761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit;
762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID :
765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit;
766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default :
769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */
770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */
773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR;
774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET)
778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (CallbackID)
780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID :
782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit;
783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID :
786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit;
787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default :
790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */
791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */
794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR;
ARM GAS /tmp/ccj1aKCo.s page 23
795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update the error code */
801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return error status */
804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR;
805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status;
808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @}
813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group2 Configuration functions
816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Configuration functions.
817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim
819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Configuration functions #####
821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] This section provides functions allowing to:
823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_ConfigFilter : Configure the CAN reception filters
824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim
826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Configures the CAN reception filter according to the specified
831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * parameters in the CAN_FilterInitStruct.
832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param sFilterConfig pointer to a CAN_FilterTypeDef structure that
835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * contains the filter configuration information.
836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef *hcan, CAN_FilterTypeDef *sFilterConfig)
839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
368 .loc 1 839 1 is_stmt 1 view -0
369 .cfi_startproc
370 @ args = 0, pretend = 0, frame = 0
371 @ frame_needed = 0, uses_anonymous_args = 0
372 @ link register save eliminated.
840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filternbrbitpos;
373 .loc 1 840 3 view .LVU107
841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CAN_TypeDef *can_ip = hcan->Instance;
374 .loc 1 841 3 view .LVU108
375 .loc 1 841 16 is_stmt 0 view .LVU109
376 0000 0268 ldr r2, [r0]
377 .LVL16:
ARM GAS /tmp/ccj1aKCo.s page 24
842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
378 .loc 1 842 3 is_stmt 1 view .LVU110
379 .loc 1 842 24 is_stmt 0 view .LVU111
380 0002 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
381 .LVL17:
843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
382 .loc 1 844 3 is_stmt 1 view .LVU112
383 .loc 1 844 38 is_stmt 0 view .LVU113
384 0006 013B subs r3, r3, #1
385 .LVL18:
386 .loc 1 844 38 view .LVU114
387 0008 DBB2 uxtb r3, r3
388 .loc 1 844 6 view .LVU115
389 000a 012B cmp r3, #1
390 000c 05D9 bls .L50
845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */
848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdHigh));
849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow));
850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh));
851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow));
852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode));
853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale));
854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment));
855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation));
856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* CAN is single instance with 14 dedicated filters banks */
858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */
860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_SINGLE(sFilterConfig->FilterBank));
861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Initialisation mode for the filter */
863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FMR, CAN_FMR_FINIT);
864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Convert filter number into bit position */
866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** filternbrbitpos = (uint32_t)1 << (sFilterConfig->FilterBank & 0x1FU);
867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter Deactivation */
869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FA1R, filternbrbitpos);
870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter Scale */
872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_16BIT)
873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* 16-bit scale for the filter */
875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FS1R, filternbrbitpos);
876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* First 16-bit identifier and First 16-bit mask */
878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Or First 16-bit identifier and Second 16-bit identifier */
879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 =
880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) |
881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Second 16-bit identifier and Second 16-bit mask */
884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Or Third 16-bit identifier and Fourth 16-bit identifier */
885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 =
ARM GAS /tmp/ccj1aKCo.s page 25
886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh);
888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_32BIT)
891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* 32-bit scale for the filter */
893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FS1R, filternbrbitpos);
894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* 32-bit identifier or First 32-bit identifier */
896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 =
897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) |
898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* 32-bit mask or Second 32-bit identifier */
901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 =
902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow);
904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter Mode */
907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterMode == CAN_FILTERMODE_IDMASK)
908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Id/Mask mode for the filter*/
910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FM1R, filternbrbitpos);
911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else /* CAN_FilterInitStruct->CAN_FilterMode == CAN_FilterMode_IdList */
913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Identifier list mode for the filter*/
915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FM1R, filternbrbitpos);
916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter FIFO assignment */
919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterFIFOAssignment == CAN_FILTER_FIFO0)
920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* FIFO 0 assignation for the filter */
922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FFA1R, filternbrbitpos);
923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* FIFO 1 assignation for the filter */
927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FFA1R, filternbrbitpos);
928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Filter activation */
931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (sFilterConfig->FilterActivation == CAN_FILTER_ENABLE)
932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(can_ip->FA1R, filternbrbitpos);
934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Leave the initialisation mode for the filter */
937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(can_ip->FMR, CAN_FMR_FINIT);
938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
ARM GAS /tmp/ccj1aKCo.s page 26
943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
391 .loc 1 945 5 is_stmt 1 view .LVU116
392 .loc 1 945 9 is_stmt 0 view .LVU117
393 000e 436A ldr r3, [r0, #36]
394 .loc 1 945 21 view .LVU118
395 0010 43F48023 orr r3, r3, #262144
396 0014 4362 str r3, [r0, #36]
946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
397 .loc 1 947 5 is_stmt 1 view .LVU119
398 .loc 1 947 12 is_stmt 0 view .LVU120
399 0016 0120 movs r0, #1
400 .LVL19:
948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
401 .loc 1 949 1 view .LVU121
402 0018 7047 bx lr
403 .LVL20:
404 .L50:
839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filternbrbitpos;
405 .loc 1 839 1 view .LVU122
406 001a 30B4 push {r4, r5}
407 .cfi_def_cfa_offset 8
408 .cfi_offset 4, -8
409 .cfi_offset 5, -4
848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow));
410 .loc 1 848 5 is_stmt 1 view .LVU123
849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh));
411 .loc 1 849 5 view .LVU124
850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow));
412 .loc 1 850 5 view .LVU125
851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode));
413 .loc 1 851 5 view .LVU126
852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale));
414 .loc 1 852 5 view .LVU127
853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment));
415 .loc 1 853 5 view .LVU128
854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation));
416 .loc 1 854 5 view .LVU129
855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
417 .loc 1 855 5 view .LVU130
860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
418 .loc 1 860 5 view .LVU131
863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
419 .loc 1 863 5 view .LVU132
420 001c D2F80032 ldr r3, [r2, #512]
421 0020 43F00103 orr r3, r3, #1
422 0024 C2F80032 str r3, [r2, #512]
866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
423 .loc 1 866 5 view .LVU133
866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
424 .loc 1 866 52 is_stmt 0 view .LVU134
425 0028 4B69 ldr r3, [r1, #20]
866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
426 .loc 1 866 65 view .LVU135
ARM GAS /tmp/ccj1aKCo.s page 27
427 002a 03F01F03 and r3, r3, #31
866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
428 .loc 1 866 21 view .LVU136
429 002e 0120 movs r0, #1
430 .LVL21:
866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
431 .loc 1 866 21 view .LVU137
432 0030 00FA03F3 lsl r3, r0, r3
433 .LVL22:
869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
434 .loc 1 869 5 is_stmt 1 view .LVU138
435 0034 D2F81C02 ldr r0, [r2, #540]
436 0038 6FEA030C mvn ip, r3
437 003c 20EA0300 bic r0, r0, r3
438 0040 C2F81C02 str r0, [r2, #540]
872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
439 .loc 1 872 5 view .LVU139
872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
440 .loc 1 872 22 is_stmt 0 view .LVU140
441 0044 C869 ldr r0, [r1, #28]
872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
442 .loc 1 872 8 view .LVU141
443 0046 B0B9 cbnz r0, .L38
875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
444 .loc 1 875 7 is_stmt 1 view .LVU142
445 0048 D2F80C02 ldr r0, [r2, #524]
446 004c 0CEA0000 and r0, ip, r0
447 0050 C2F80C02 str r0, [r2, #524]
879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) |
448 .loc 1 879 7 view .LVU143
881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
449 .loc 1 881 22 is_stmt 0 view .LVU144
450 0054 8C88 ldrh r4, [r1, #4]
879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) |
451 .loc 1 879 44 view .LVU145
452 0056 4869 ldr r0, [r1, #20]
880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
453 .loc 1 880 75 view .LVU146
454 0058 CD68 ldr r5, [r1, #12]
455 005a 44EA0544 orr r4, r4, r5, lsl #16
879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) |
456 .loc 1 879 62 view .LVU147
457 005e 4830 adds r0, r0, #72
458 0060 42F83040 str r4, [r2, r0, lsl #3]
885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
459 .loc 1 885 7 is_stmt 1 view .LVU148
887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
460 .loc 1 887 22 is_stmt 0 view .LVU149
461 0064 0C88 ldrh r4, [r1]
885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
462 .loc 1 885 44 view .LVU150
463 0066 4869 ldr r0, [r1, #20]
886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh);
464 .loc 1 886 76 view .LVU151
465 0068 8D68 ldr r5, [r1, #8]
466 006a 44EA0544 orr r4, r4, r5, lsl #16
885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
ARM GAS /tmp/ccj1aKCo.s page 28
467 .loc 1 885 62 view .LVU152
468 006e 4830 adds r0, r0, #72
469 0070 02EBC000 add r0, r2, r0, lsl #3
470 0074 4460 str r4, [r0, #4]
471 .L38:
890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
472 .loc 1 890 5 is_stmt 1 view .LVU153
890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
473 .loc 1 890 22 is_stmt 0 view .LVU154
474 0076 C869 ldr r0, [r1, #28]
890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
475 .loc 1 890 8 view .LVU155
476 0078 0128 cmp r0, #1
477 007a 1BD0 beq .L51
478 .L39:
907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
479 .loc 1 907 5 is_stmt 1 view .LVU156
907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
480 .loc 1 907 22 is_stmt 0 view .LVU157
481 007c 8869 ldr r0, [r1, #24]
907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
482 .loc 1 907 8 view .LVU158
483 007e 80BB cbnz r0, .L40
910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
484 .loc 1 910 7 is_stmt 1 view .LVU159
485 0080 D2F80402 ldr r0, [r2, #516]
486 0084 0CEA0000 and r0, ip, r0
487 0088 C2F80402 str r0, [r2, #516]
488 .L41:
919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
489 .loc 1 919 5 view .LVU160
919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
490 .loc 1 919 22 is_stmt 0 view .LVU161
491 008c 0869 ldr r0, [r1, #16]
919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
492 .loc 1 919 8 view .LVU162
493 008e 70BB cbnz r0, .L42
922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
494 .loc 1 922 7 is_stmt 1 view .LVU163
495 0090 D2F81402 ldr r0, [r2, #532]
496 0094 0CEA0000 and r0, ip, r0
497 0098 C2F81402 str r0, [r2, #532]
498 .L43:
931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
499 .loc 1 931 5 view .LVU164
931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
500 .loc 1 931 22 is_stmt 0 view .LVU165
501 009c 096A ldr r1, [r1, #32]
502 .LVL23:
931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
503 .loc 1 931 8 view .LVU166
504 009e 0129 cmp r1, #1
505 00a0 2BD0 beq .L52
506 .LVL24:
507 .L44:
937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
508 .loc 1 937 5 is_stmt 1 view .LVU167
ARM GAS /tmp/ccj1aKCo.s page 29
509 00a2 D2F80032 ldr r3, [r2, #512]
510 00a6 23F00103 bic r3, r3, #1
511 00aa C2F80032 str r3, [r2, #512]
940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
512 .loc 1 940 5 view .LVU168
940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
513 .loc 1 940 12 is_stmt 0 view .LVU169
514 00ae 0020 movs r0, #0
515 .loc 1 949 1 view .LVU170
516 00b0 30BC pop {r4, r5}
517 .cfi_remember_state
518 .cfi_restore 5
519 .cfi_restore 4
520 .cfi_def_cfa_offset 0
521 00b2 7047 bx lr
522 .LVL25:
523 .L51:
524 .cfi_restore_state
893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
525 .loc 1 893 7 is_stmt 1 view .LVU171
526 00b4 D2F80C02 ldr r0, [r2, #524]
527 00b8 1843 orrs r0, r0, r3
528 00ba C2F80C02 str r0, [r2, #524]
896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) |
529 .loc 1 896 7 view .LVU172
898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
530 .loc 1 898 22 is_stmt 0 view .LVU173
531 00be 8C88 ldrh r4, [r1, #4]
896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) |
532 .loc 1 896 44 view .LVU174
533 00c0 4869 ldr r0, [r1, #20]
897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
534 .loc 1 897 72 view .LVU175
535 00c2 0D68 ldr r5, [r1]
536 00c4 44EA0544 orr r4, r4, r5, lsl #16
896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) |
537 .loc 1 896 62 view .LVU176
538 00c8 4830 adds r0, r0, #72
539 00ca 42F83040 str r4, [r2, r0, lsl #3]
901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
540 .loc 1 901 7 is_stmt 1 view .LVU177
903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
541 .loc 1 903 22 is_stmt 0 view .LVU178
542 00ce 8C89 ldrh r4, [r1, #12]
901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
543 .loc 1 901 44 view .LVU179
544 00d0 4869 ldr r0, [r1, #20]
902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow);
545 .loc 1 902 76 view .LVU180
546 00d2 8D68 ldr r5, [r1, #8]
547 00d4 44EA0544 orr r4, r4, r5, lsl #16
901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
548 .loc 1 901 62 view .LVU181
549 00d8 4830 adds r0, r0, #72
550 00da 02EBC000 add r0, r2, r0, lsl #3
551 00de 4460 str r4, [r0, #4]
552 00e0 CCE7 b .L39
ARM GAS /tmp/ccj1aKCo.s page 30
553 .L40:
915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
554 .loc 1 915 7 is_stmt 1 view .LVU182
555 00e2 D2F80402 ldr r0, [r2, #516]
556 00e6 1843 orrs r0, r0, r3
557 00e8 C2F80402 str r0, [r2, #516]
558 00ec CEE7 b .L41
559 .L42:
927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
560 .loc 1 927 7 view .LVU183
561 00ee D2F81402 ldr r0, [r2, #532]
562 00f2 1843 orrs r0, r0, r3
563 00f4 C2F81402 str r0, [r2, #532]
564 00f8 D0E7 b .L43
565 .LVL26:
566 .L52:
933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
567 .loc 1 933 7 view .LVU184
568 00fa D2F81C12 ldr r1, [r2, #540]
569 00fe 0B43 orrs r3, r3, r1
570 .LVL27:
933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
571 .loc 1 933 7 is_stmt 0 view .LVU185
572 0100 C2F81C32 str r3, [r2, #540]
573 0104 CDE7 b .L44
574 .cfi_endproc
575 .LFE134:
577 .section .text.HAL_CAN_Start,"ax",%progbits
578 .align 1
579 .global HAL_CAN_Start
580 .syntax unified
581 .thumb
582 .thumb_func
584 HAL_CAN_Start:
585 .LVL28:
586 .LFB135:
950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @}
953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group3 Control functions
956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Control functions
957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim
959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Control functions #####
961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] This section provides functions allowing to:
963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_Start : Start the CAN module
964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_Stop : Stop the CAN module
965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RequestSleep : Request sleep mode entry.
966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_WakeUp : Wake up from sleep mode.
967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_IsSleepActive : Check is sleep mode is active.
968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_AddTxMessage : Add a message to the Tx mailboxes
969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** and activate the corresponding
970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** transmission request
ARM GAS /tmp/ccj1aKCo.s page 31
971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_AbortTxRequest : Abort transmission request
972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetTxMailboxesFreeLevel : Return Tx mailboxes free level
973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_IsTxMessagePending : Check if a transmission request is
974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pending on the selected Tx mailbox
975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetRxMessage : Get a CAN frame from the Rx FIFO
976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetRxFifoFillLevel : Return Rx FIFO fill level
977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim
979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Start the CAN module.
984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Start(CAN_HandleTypeDef *hcan)
989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
587 .loc 1 989 1 is_stmt 1 view -0
588 .cfi_startproc
589 @ args = 0, pretend = 0, frame = 0
590 @ frame_needed = 0, uses_anonymous_args = 0
591 .loc 1 989 1 is_stmt 0 view .LVU187
592 0000 70B5 push {r4, r5, r6, lr}
593 .cfi_def_cfa_offset 16
594 .cfi_offset 4, -16
595 .cfi_offset 5, -12
596 .cfi_offset 6, -8
597 .cfi_offset 14, -4
598 0002 0446 mov r4, r0
990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart;
599 .loc 1 990 3 is_stmt 1 view .LVU188
991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY)
600 .loc 1 992 3 view .LVU189
601 .loc 1 992 11 is_stmt 0 view .LVU190
602 0004 90F82050 ldrb r5, [r0, #32] @ zero_extendqisi2
603 0008 EDB2 uxtb r5, r5
604 .loc 1 992 6 view .LVU191
605 000a 012D cmp r5, #1
606 000c 06D0 beq .L59
993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN peripheral state */
995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_LISTENING;
996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request leave initialisation */
998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_INRQ);
999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get tick */
1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** tickstart = HAL_GetTick();
1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wait the acknowledge */
1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) != 0U)
1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check for the Timeout */
1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
ARM GAS /tmp/ccj1aKCo.s page 32
1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */
1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR;
1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset the CAN ErrorCode */
1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE;
1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_READY;
607 .loc 1 1028 5 is_stmt 1 view .LVU192
608 .loc 1 1028 9 is_stmt 0 view .LVU193
609 000e 436A ldr r3, [r0, #36]
610 .loc 1 1028 21 view .LVU194
611 0010 43F40023 orr r3, r3, #524288
612 0014 4362 str r3, [r0, #36]
1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
613 .loc 1 1030 5 is_stmt 1 view .LVU195
614 .loc 1 1030 12 is_stmt 0 view .LVU196
615 0016 0125 movs r5, #1
616 .LVL29:
617 .L56:
1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
618 .loc 1 1032 1 view .LVU197
619 0018 2846 mov r0, r5
620 001a 70BD pop {r4, r5, r6, pc}
621 .LVL30:
622 .L59:
995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
623 .loc 1 995 5 is_stmt 1 view .LVU198
995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
624 .loc 1 995 17 is_stmt 0 view .LVU199
625 001c 0223 movs r3, #2
626 001e 80F82030 strb r3, [r0, #32]
998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
627 .loc 1 998 5 is_stmt 1 view .LVU200
628 0022 0268 ldr r2, [r0]
629 0024 1368 ldr r3, [r2]
630 0026 23F00103 bic r3, r3, #1
631 002a 1360 str r3, [r2]
1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
632 .loc 1 1001 5 view .LVU201
1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
633 .loc 1 1001 17 is_stmt 0 view .LVU202
ARM GAS /tmp/ccj1aKCo.s page 33
634 002c FFF7FEFF bl HAL_GetTick
635 .LVL31:
1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
636 .loc 1 1001 17 view .LVU203
637 0030 0646 mov r6, r0
638 .LVL32:
1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
639 .loc 1 1004 5 is_stmt 1 view .LVU204
640 .L55:
1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
641 .loc 1 1004 49 view .LVU205
1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
642 .loc 1 1004 17 is_stmt 0 view .LVU206
643 0032 2368 ldr r3, [r4]
1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
644 .loc 1 1004 27 view .LVU207
645 0034 5B68 ldr r3, [r3, #4]
1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
646 .loc 1 1004 49 view .LVU208
647 0036 13F0010F tst r3, #1
648 003a 0CD0 beq .L60
1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
649 .loc 1 1007 7 is_stmt 1 view .LVU209
1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
650 .loc 1 1007 12 is_stmt 0 view .LVU210
651 003c FFF7FEFF bl HAL_GetTick
652 .LVL33:
1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
653 .loc 1 1007 26 view .LVU211
654 0040 831B subs r3, r0, r6
1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
655 .loc 1 1007 10 view .LVU212
656 0042 0A2B cmp r3, #10
657 0044 F5D9 bls .L55
1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
658 .loc 1 1010 9 is_stmt 1 view .LVU213
1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
659 .loc 1 1010 13 is_stmt 0 view .LVU214
660 0046 636A ldr r3, [r4, #36]
1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
661 .loc 1 1010 25 view .LVU215
662 0048 43F40033 orr r3, r3, #131072
663 004c 6362 str r3, [r4, #36]
1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
664 .loc 1 1013 9 is_stmt 1 view .LVU216
1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
665 .loc 1 1013 21 is_stmt 0 view .LVU217
666 004e 0523 movs r3, #5
667 0050 84F82030 strb r3, [r4, #32]
1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
668 .loc 1 1015 9 is_stmt 1 view .LVU218
1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
669 .loc 1 1015 16 is_stmt 0 view .LVU219
670 0054 E0E7 b .L56
671 .L60:
1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
672 .loc 1 1020 5 is_stmt 1 view .LVU220
ARM GAS /tmp/ccj1aKCo.s page 34
1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
673 .loc 1 1020 21 is_stmt 0 view .LVU221
674 0056 0025 movs r5, #0
675 0058 6562 str r5, [r4, #36]
1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
676 .loc 1 1023 5 is_stmt 1 view .LVU222
1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
677 .loc 1 1023 12 is_stmt 0 view .LVU223
678 005a DDE7 b .L56
679 .cfi_endproc
680 .LFE135:
682 .section .text.HAL_CAN_Stop,"ax",%progbits
683 .align 1
684 .global HAL_CAN_Stop
685 .syntax unified
686 .thumb
687 .thumb_func
689 HAL_CAN_Stop:
690 .LVL34:
691 .LFB136:
1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Stop the CAN module and enable access to configuration registers.
1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Stop(CAN_HandleTypeDef *hcan)
1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
692 .loc 1 1041 1 is_stmt 1 view -0
693 .cfi_startproc
694 @ args = 0, pretend = 0, frame = 0
695 @ frame_needed = 0, uses_anonymous_args = 0
696 .loc 1 1041 1 is_stmt 0 view .LVU225
697 0000 38B5 push {r3, r4, r5, lr}
698 .cfi_def_cfa_offset 16
699 .cfi_offset 3, -16
700 .cfi_offset 4, -12
701 .cfi_offset 5, -8
702 .cfi_offset 14, -4
703 0002 0446 mov r4, r0
1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tickstart;
704 .loc 1 1042 3 is_stmt 1 view .LVU226
1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_LISTENING)
705 .loc 1 1044 3 view .LVU227
706 .loc 1 1044 11 is_stmt 0 view .LVU228
707 0004 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
708 0008 DBB2 uxtb r3, r3
709 .loc 1 1044 6 view .LVU229
710 000a 022B cmp r3, #2
711 000c 05D0 beq .L67
1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request initialisation */
1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ);
1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get tick */
ARM GAS /tmp/ccj1aKCo.s page 35
1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** tickstart = HAL_GetTick();
1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wait the acknowledge */
1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U)
1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check for the Timeout */
1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN state */
1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR;
1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Exit from sleep mode */
1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);
1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Change CAN peripheral state */
1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY;
1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_STARTED;
712 .loc 1 1080 5 is_stmt 1 view .LVU230
713 .loc 1 1080 9 is_stmt 0 view .LVU231
714 000e 436A ldr r3, [r0, #36]
715 .loc 1 1080 21 view .LVU232
716 0010 43F48013 orr r3, r3, #1048576
717 0014 4362 str r3, [r0, #36]
1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
718 .loc 1 1082 5 is_stmt 1 view .LVU233
719 .loc 1 1082 12 is_stmt 0 view .LVU234
720 0016 0120 movs r0, #1
721 .LVL35:
722 .L64:
1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
723 .loc 1 1084 1 view .LVU235
724 0018 38BD pop {r3, r4, r5, pc}
725 .LVL36:
726 .L67:
1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
727 .loc 1 1047 5 is_stmt 1 view .LVU236
728 001a 0268 ldr r2, [r0]
729 001c 1368 ldr r3, [r2]
730 001e 43F00103 orr r3, r3, #1
731 0022 1360 str r3, [r2]
1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
ARM GAS /tmp/ccj1aKCo.s page 36
732 .loc 1 1050 5 view .LVU237
1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
733 .loc 1 1050 17 is_stmt 0 view .LVU238
734 0024 FFF7FEFF bl HAL_GetTick
735 .LVL37:
1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
736 .loc 1 1050 17 view .LVU239
737 0028 0546 mov r5, r0
738 .LVL38:
1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
739 .loc 1 1053 5 is_stmt 1 view .LVU240
740 .L63:
1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
741 .loc 1 1053 49 view .LVU241
1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
742 .loc 1 1053 17 is_stmt 0 view .LVU242
743 002a 2368 ldr r3, [r4]
1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
744 .loc 1 1053 27 view .LVU243
745 002c 5A68 ldr r2, [r3, #4]
1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
746 .loc 1 1053 49 view .LVU244
747 002e 12F0010F tst r2, #1
748 0032 0DD1 bne .L68
1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
749 .loc 1 1056 7 is_stmt 1 view .LVU245
1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
750 .loc 1 1056 12 is_stmt 0 view .LVU246
751 0034 FFF7FEFF bl HAL_GetTick
752 .LVL39:
1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
753 .loc 1 1056 26 view .LVU247
754 0038 431B subs r3, r0, r5
1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
755 .loc 1 1056 10 view .LVU248
756 003a 0A2B cmp r3, #10
757 003c F5D9 bls .L63
1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
758 .loc 1 1059 9 is_stmt 1 view .LVU249
1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
759 .loc 1 1059 13 is_stmt 0 view .LVU250
760 003e 636A ldr r3, [r4, #36]
1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
761 .loc 1 1059 25 view .LVU251
762 0040 43F40033 orr r3, r3, #131072
763 0044 6362 str r3, [r4, #36]
1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
764 .loc 1 1062 9 is_stmt 1 view .LVU252
1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
765 .loc 1 1062 21 is_stmt 0 view .LVU253
766 0046 0523 movs r3, #5
767 0048 84F82030 strb r3, [r4, #32]
1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
768 .loc 1 1064 9 is_stmt 1 view .LVU254
1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
769 .loc 1 1064 16 is_stmt 0 view .LVU255
770 004c 0120 movs r0, #1
ARM GAS /tmp/ccj1aKCo.s page 37
771 004e E3E7 b .L64
772 .L68:
1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
773 .loc 1 1069 5 is_stmt 1 view .LVU256
774 0050 1A68 ldr r2, [r3]
775 0052 22F00202 bic r2, r2, #2
776 0056 1A60 str r2, [r3]
1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
777 .loc 1 1072 5 view .LVU257
1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
778 .loc 1 1072 17 is_stmt 0 view .LVU258
779 0058 0123 movs r3, #1
780 005a 84F82030 strb r3, [r4, #32]
1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
781 .loc 1 1075 5 is_stmt 1 view .LVU259
1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
782 .loc 1 1075 12 is_stmt 0 view .LVU260
783 005e 0020 movs r0, #0
784 0060 DAE7 b .L64
785 .cfi_endproc
786 .LFE136:
788 .section .text.HAL_CAN_DeInit,"ax",%progbits
789 .align 1
790 .global HAL_CAN_DeInit
791 .syntax unified
792 .thumb
793 .thumb_func
795 HAL_CAN_DeInit:
796 .LVL40:
797 .LFB131:
460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check CAN handle */
798 .loc 1 460 1 is_stmt 1 view -0
799 .cfi_startproc
800 @ args = 0, pretend = 0, frame = 0
801 @ frame_needed = 0, uses_anonymous_args = 0
462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
802 .loc 1 462 3 view .LVU262
462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
803 .loc 1 462 6 is_stmt 0 view .LVU263
804 0000 80B1 cbz r0, .L71
460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check CAN handle */
805 .loc 1 460 1 view .LVU264
806 0002 10B5 push {r4, lr}
807 .cfi_def_cfa_offset 8
808 .cfi_offset 4, -8
809 .cfi_offset 14, -4
810 0004 0446 mov r4, r0
468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
811 .loc 1 468 3 is_stmt 1 view .LVU265
471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
812 .loc 1 471 3 view .LVU266
471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
813 .loc 1 471 9 is_stmt 0 view .LVU267
814 0006 FFF7FEFF bl HAL_CAN_Stop
815 .LVL41:
484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */
816 .loc 1 484 3 is_stmt 1 view .LVU268
ARM GAS /tmp/ccj1aKCo.s page 38
817 000a 2046 mov r0, r4
818 000c FFF7FEFF bl HAL_CAN_MspDeInit
819 .LVL42:
488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
820 .loc 1 488 3 view .LVU269
821 0010 2268 ldr r2, [r4]
822 0012 1368 ldr r3, [r2]
823 0014 43F40043 orr r3, r3, #32768
824 0018 1360 str r3, [r2]
491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
825 .loc 1 491 3 view .LVU270
491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
826 .loc 1 491 19 is_stmt 0 view .LVU271
827 001a 0020 movs r0, #0
828 001c 6062 str r0, [r4, #36]
494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
829 .loc 1 494 3 is_stmt 1 view .LVU272
494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
830 .loc 1 494 15 is_stmt 0 view .LVU273
831 001e 84F82000 strb r0, [r4, #32]
497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
832 .loc 1 497 3 is_stmt 1 view .LVU274
498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
833 .loc 1 498 1 is_stmt 0 view .LVU275
834 0022 10BD pop {r4, pc}
835 .LVL43:
836 .L71:
837 .cfi_def_cfa_offset 0
838 .cfi_restore 4
839 .cfi_restore 14
464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
840 .loc 1 464 12 view .LVU276
841 0024 0120 movs r0, #1
842 .LVL44:
498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
843 .loc 1 498 1 view .LVU277
844 0026 7047 bx lr
845 .cfi_endproc
846 .LFE131:
848 .section .text.HAL_CAN_RequestSleep,"ax",%progbits
849 .align 1
850 .global HAL_CAN_RequestSleep
851 .syntax unified
852 .thumb
853 .thumb_func
855 HAL_CAN_RequestSleep:
856 .LVL45:
857 .LFB137:
1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Request the sleep mode (low power) entry.
1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * When returning from this function, Sleep mode will be entered
1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * as soon as the current CAN activity (transmission or reception
1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * of a CAN frame) has been completed.
1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status.
ARM GAS /tmp/ccj1aKCo.s page 39
1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RequestSleep(CAN_HandleTypeDef *hcan)
1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
858 .loc 1 1096 1 is_stmt 1 view -0
859 .cfi_startproc
860 @ args = 0, pretend = 0, frame = 0
861 @ frame_needed = 0, uses_anonymous_args = 0
862 @ link register save eliminated.
1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
863 .loc 1 1097 3 view .LVU279
864 .loc 1 1097 24 is_stmt 0 view .LVU280
865 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
866 .LVL46:
1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
867 .loc 1 1099 3 is_stmt 1 view .LVU281
868 .loc 1 1099 38 is_stmt 0 view .LVU282
869 0004 013B subs r3, r3, #1
870 .LVL47:
871 .loc 1 1099 38 view .LVU283
872 0006 DBB2 uxtb r3, r3
873 .loc 1 1099 6 view .LVU284
874 0008 012B cmp r3, #1
875 000a 05D9 bls .L79
1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request Sleep mode */
1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);
1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
876 .loc 1 1111 5 is_stmt 1 view .LVU285
877 .loc 1 1111 9 is_stmt 0 view .LVU286
878 000c 436A ldr r3, [r0, #36]
879 .loc 1 1111 21 view .LVU287
880 000e 43F48023 orr r3, r3, #262144
881 0012 4362 str r3, [r0, #36]
1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
882 .loc 1 1114 5 is_stmt 1 view .LVU288
883 .loc 1 1114 12 is_stmt 0 view .LVU289
884 0014 0120 movs r0, #1
885 .LVL48:
1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
886 .loc 1 1116 1 view .LVU290
887 0016 7047 bx lr
888 .LVL49:
889 .L79:
1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
890 .loc 1 1103 5 is_stmt 1 view .LVU291
ARM GAS /tmp/ccj1aKCo.s page 40
891 0018 0268 ldr r2, [r0]
892 001a 1368 ldr r3, [r2]
893 001c 43F00203 orr r3, r3, #2
894 0020 1360 str r3, [r2]
1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
895 .loc 1 1106 5 view .LVU292
1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
896 .loc 1 1106 12 is_stmt 0 view .LVU293
897 0022 0020 movs r0, #0
898 .LVL50:
1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
899 .loc 1 1106 12 view .LVU294
900 0024 7047 bx lr
901 .cfi_endproc
902 .LFE137:
904 .section .text.HAL_CAN_WakeUp,"ax",%progbits
905 .align 1
906 .global HAL_CAN_WakeUp
907 .syntax unified
908 .thumb
909 .thumb_func
911 HAL_CAN_WakeUp:
912 .LVL51:
913 .LFB138:
1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Wake up from sleep mode.
1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * When returning with HAL_OK status from this function, Sleep mode
1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * is exited.
1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status.
1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_WakeUp(CAN_HandleTypeDef *hcan)
1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
914 .loc 1 1127 1 is_stmt 1 view -0
915 .cfi_startproc
916 @ args = 0, pretend = 0, frame = 8
917 @ frame_needed = 0, uses_anonymous_args = 0
918 @ link register save eliminated.
919 .loc 1 1127 1 is_stmt 0 view .LVU296
920 0000 82B0 sub sp, sp, #8
921 .cfi_def_cfa_offset 8
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __IO uint32_t count = 0;
922 .loc 1 1128 3 is_stmt 1 view .LVU297
923 .loc 1 1128 17 is_stmt 0 view .LVU298
924 0002 0023 movs r3, #0
925 0004 0193 str r3, [sp, #4]
1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t timeout = 1000000U;
926 .loc 1 1129 3 is_stmt 1 view .LVU299
927 .LVL52:
1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
928 .loc 1 1130 3 view .LVU300
929 .loc 1 1130 24 is_stmt 0 view .LVU301
930 0006 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
931 .LVL53:
1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
ARM GAS /tmp/ccj1aKCo.s page 41
1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
932 .loc 1 1132 3 is_stmt 1 view .LVU302
933 .loc 1 1132 38 is_stmt 0 view .LVU303
934 000a 013B subs r3, r3, #1
935 .LVL54:
936 .loc 1 1132 38 view .LVU304
937 000c DBB2 uxtb r3, r3
938 .loc 1 1132 6 view .LVU305
939 000e 012B cmp r3, #1
940 0010 18D8 bhi .L81
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wake up request */
1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);
941 .loc 1 1136 5 is_stmt 1 view .LVU306
942 0012 0268 ldr r2, [r0]
943 0014 1368 ldr r3, [r2]
944 0016 23F00203 bic r3, r3, #2
945 001a 1360 str r3, [r2]
946 .L84:
1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Wait sleep mode is exited */
1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** do
947 .loc 1 1139 5 view .LVU307
1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Increment counter */
1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** count++;
948 .loc 1 1142 7 view .LVU308
949 .loc 1 1142 12 is_stmt 0 view .LVU309
950 001c 019B ldr r3, [sp, #4]
951 001e 0133 adds r3, r3, #1
952 0020 0193 str r3, [sp, #4]
1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check if timeout is reached */
1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (count > timeout)
953 .loc 1 1145 7 is_stmt 1 view .LVU310
954 .loc 1 1145 17 is_stmt 0 view .LVU311
955 0022 019A ldr r2, [sp, #4]
956 .loc 1 1145 10 view .LVU312
957 0024 0B4B ldr r3, .L87
958 0026 9A42 cmp r2, r3
959 0028 06D8 bhi .L86
1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U);
960 .loc 1 1153 49 is_stmt 1 view .LVU313
961 .loc 1 1153 17 is_stmt 0 view .LVU314
962 002a 0368 ldr r3, [r0]
963 .loc 1 1153 27 view .LVU315
964 002c 5B68 ldr r3, [r3, #4]
965 .loc 1 1153 49 view .LVU316
966 002e 13F0020F tst r3, #2
ARM GAS /tmp/ccj1aKCo.s page 42
967 0032 F3D1 bne .L84
1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
968 .loc 1 1156 12 view .LVU317
969 0034 0020 movs r0, #0
970 .LVL55:
971 .loc 1 1156 12 view .LVU318
972 0036 0AE0 b .L83
973 .LVL56:
974 .L86:
1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
975 .loc 1 1148 9 is_stmt 1 view .LVU319
1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
976 .loc 1 1148 13 is_stmt 0 view .LVU320
977 0038 436A ldr r3, [r0, #36]
1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
978 .loc 1 1148 25 view .LVU321
979 003a 43F40033 orr r3, r3, #131072
980 003e 4362 str r3, [r0, #36]
1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
981 .loc 1 1150 9 is_stmt 1 view .LVU322
1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
982 .loc 1 1150 16 is_stmt 0 view .LVU323
983 0040 0120 movs r0, #1
984 .LVL57:
1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
985 .loc 1 1150 16 view .LVU324
986 0042 04E0 b .L83
987 .LVL58:
988 .L81:
1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
989 .loc 1 1161 5 is_stmt 1 view .LVU325
990 .loc 1 1161 9 is_stmt 0 view .LVU326
991 0044 436A ldr r3, [r0, #36]
992 .loc 1 1161 21 view .LVU327
993 0046 43F48023 orr r3, r3, #262144
994 004a 4362 str r3, [r0, #36]
1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
995 .loc 1 1163 5 is_stmt 1 view .LVU328
996 .loc 1 1163 12 is_stmt 0 view .LVU329
997 004c 0120 movs r0, #1
998 .LVL59:
999 .L83:
1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1000 .loc 1 1165 1 view .LVU330
1001 004e 02B0 add sp, sp, #8
1002 .cfi_def_cfa_offset 0
1003 @ sp needed
1004 0050 7047 bx lr
1005 .L88:
ARM GAS /tmp/ccj1aKCo.s page 43
1006 0052 00BF .align 2
1007 .L87:
1008 0054 40420F00 .word 1000000
1009 .cfi_endproc
1010 .LFE138:
1012 .section .text.HAL_CAN_IsSleepActive,"ax",%progbits
1013 .align 1
1014 .global HAL_CAN_IsSleepActive
1015 .syntax unified
1016 .thumb
1017 .thumb_func
1019 HAL_CAN_IsSleepActive:
1020 .LVL60:
1021 .LFB139:
1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Check is sleep mode is active.
1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Status
1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * - 0 : Sleep mode is not active.
1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * - 1 : Sleep mode is active.
1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_IsSleepActive(CAN_HandleTypeDef *hcan)
1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1022 .loc 1 1176 1 is_stmt 1 view -0
1023 .cfi_startproc
1024 @ args = 0, pretend = 0, frame = 0
1025 @ frame_needed = 0, uses_anonymous_args = 0
1026 @ link register save eliminated.
1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t status = 0U;
1027 .loc 1 1177 3 view .LVU332
1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1028 .loc 1 1178 3 view .LVU333
1029 .loc 1 1178 24 is_stmt 0 view .LVU334
1030 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1031 .LVL61:
1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1032 .loc 1 1180 3 is_stmt 1 view .LVU335
1033 .loc 1 1180 38 is_stmt 0 view .LVU336
1034 0004 013B subs r3, r3, #1
1035 .LVL62:
1036 .loc 1 1180 38 view .LVU337
1037 0006 DBB2 uxtb r3, r3
1038 .loc 1 1180 6 view .LVU338
1039 0008 012B cmp r3, #1
1040 000a 01D9 bls .L93
1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1041 .loc 1 1177 12 view .LVU339
1042 000c 0020 movs r0, #0
1043 .LVL63:
1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1044 .loc 1 1177 12 view .LVU340
1045 000e 7047 bx lr
1046 .LVL64:
1047 .L93:
ARM GAS /tmp/ccj1aKCo.s page 44
1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Sleep mode */
1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U)
1048 .loc 1 1184 5 is_stmt 1 view .LVU341
1049 .loc 1 1184 14 is_stmt 0 view .LVU342
1050 0010 0368 ldr r3, [r0]
1051 .loc 1 1184 24 view .LVU343
1052 0012 5868 ldr r0, [r3, #4]
1053 .LVL65:
1054 .loc 1 1184 8 view .LVU344
1055 0014 10F00200 ands r0, r0, #2
1056 0018 00D1 bne .L92
1057 001a 7047 bx lr
1058 .L92:
1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = 1U;
1059 .loc 1 1186 14 view .LVU345
1060 001c 0120 movs r0, #1
1061 .LVL66:
1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status;
1062 .loc 1 1191 3 is_stmt 1 view .LVU346
1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1063 .loc 1 1192 1 is_stmt 0 view .LVU347
1064 001e 7047 bx lr
1065 .cfi_endproc
1066 .LFE139:
1068 .section .text.HAL_CAN_AddTxMessage,"ax",%progbits
1069 .align 1
1070 .global HAL_CAN_AddTxMessage
1071 .syntax unified
1072 .thumb
1073 .thumb_func
1075 HAL_CAN_AddTxMessage:
1076 .LVL67:
1077 .LFB140:
1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Add a message to the first free Tx mailbox and activate the
1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * corresponding transmission request.
1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param pHeader pointer to a CAN_TxHeaderTypeDef structure.
1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param aData array containing the payload of the Tx frame.
1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param pTxMailbox pointer to a variable where the function will return
1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the TxMailbox used to store the Tx message.
1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be a value of @arg CAN_Tx_Mailboxes.
1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AddTxMessage(CAN_HandleTypeDef *hcan, CAN_TxHeaderTypeDef *pHeader, uint8
1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1078 .loc 1 1207 1 is_stmt 1 view -0
1079 .cfi_startproc
ARM GAS /tmp/ccj1aKCo.s page 45
1080 @ args = 0, pretend = 0, frame = 0
1081 @ frame_needed = 0, uses_anonymous_args = 0
1082 .loc 1 1207 1 is_stmt 0 view .LVU349
1083 0000 30B5 push {r4, r5, lr}
1084 .cfi_def_cfa_offset 12
1085 .cfi_offset 4, -12
1086 .cfi_offset 5, -8
1087 .cfi_offset 14, -4
1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox;
1088 .loc 1 1208 3 is_stmt 1 view .LVU350
1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1089 .loc 1 1209 3 view .LVU351
1090 .loc 1 1209 24 is_stmt 0 view .LVU352
1091 0002 90F820C0 ldrb ip, [r0, #32] @ zero_extendqisi2
1092 .LVL68:
1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tsr = READ_REG(hcan->Instance->TSR);
1093 .loc 1 1210 3 is_stmt 1 view .LVU353
1094 .loc 1 1210 12 is_stmt 0 view .LVU354
1095 0006 0468 ldr r4, [r0]
1096 0008 A468 ldr r4, [r4, #8]
1097 .LVL69:
1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the parameters */
1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_IDTYPE(pHeader->IDE));
1098 .loc 1 1213 3 is_stmt 1 view .LVU355
1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_RTR(pHeader->RTR));
1099 .loc 1 1214 3 view .LVU356
1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_DLC(pHeader->DLC));
1100 .loc 1 1215 3 view .LVU357
1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD)
1101 .loc 1 1216 3 view .LVU358
1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_STDID(pHeader->StdId));
1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_EXTID(pHeader->ExtId));
1102 .loc 1 1222 5 view .LVU359
1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(pHeader->TransmitGlobalTime));
1103 .loc 1 1224 3 view .LVU360
1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1104 .loc 1 1226 3 view .LVU361
1105 .loc 1 1226 38 is_stmt 0 view .LVU362
1106 000a 0CF1FF3C add ip, ip, #-1
1107 .LVL70:
1108 .loc 1 1226 38 view .LVU363
1109 000e 5FFA8CFC uxtb ip, ip
1110 .loc 1 1226 6 view .LVU364
1111 0012 BCF1010F cmp ip, #1
1112 0016 6BD8 bhi .L95
1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check that all the Tx mailboxes are not full */
1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((tsr & CAN_TSR_TME0) != 0U) ||
1113 .loc 1 1230 5 is_stmt 1 view .LVU365
ARM GAS /tmp/ccj1aKCo.s page 46
1114 .loc 1 1230 8 is_stmt 0 view .LVU366
1115 0018 14F0E05F tst r4, #469762048
1116 001c 62D0 beq .L96
1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) ||
1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((tsr & CAN_TSR_TME2) != 0U))
1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Select an empty transmit mailbox */
1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** transmitmailbox = (tsr & CAN_TSR_CODE) >> CAN_TSR_CODE_Pos;
1117 .loc 1 1235 7 is_stmt 1 view .LVU367
1118 .loc 1 1235 23 is_stmt 0 view .LVU368
1119 001e C4F3016C ubfx ip, r4, #24, #2
1120 .LVL71:
1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check transmit mailbox value */
1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (transmitmailbox > 2U)
1121 .loc 1 1238 7 is_stmt 1 view .LVU369
1122 .loc 1 1238 10 is_stmt 0 view .LVU370
1123 0022 BCF1020F cmp ip, #2
1124 0026 05D9 bls .L97
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INTERNAL;
1125 .loc 1 1241 9 is_stmt 1 view .LVU371
1126 .loc 1 1241 13 is_stmt 0 view .LVU372
1127 0028 436A ldr r3, [r0, #36]
1128 .LVL72:
1129 .loc 1 1241 25 view .LVU373
1130 002a 43F40003 orr r3, r3, #8388608
1131 002e 4362 str r3, [r0, #36]
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1132 .loc 1 1243 9 is_stmt 1 view .LVU374
1133 .loc 1 1243 16 is_stmt 0 view .LVU375
1134 0030 0120 movs r0, #1
1135 .LVL73:
1136 .loc 1 1243 16 view .LVU376
1137 0032 62E0 b .L98
1138 .LVL74:
1139 .L97:
1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Store the Tx mailbox */
1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *pTxMailbox = (uint32_t)1 << transmitmailbox;
1140 .loc 1 1247 7 is_stmt 1 view .LVU377
1141 .loc 1 1247 33 is_stmt 0 view .LVU378
1142 0034 0124 movs r4, #1
1143 .LVL75:
1144 .loc 1 1247 33 view .LVU379
1145 0036 04FA0CF4 lsl r4, r4, ip
1146 .loc 1 1247 19 view .LVU380
1147 003a 1C60 str r4, [r3]
1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set up the Id */
1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD)
1148 .loc 1 1250 7 is_stmt 1 view .LVU381
1149 .loc 1 1250 18 is_stmt 0 view .LVU382
1150 003c 8B68 ldr r3, [r1, #8]
ARM GAS /tmp/ccj1aKCo.s page 47
1151 .LVL76:
1152 .loc 1 1250 10 view .LVU383
1153 003e 002B cmp r3, #0
1154 0040 3DD1 bne .L99
1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->StdId << CAN_TI0R_STID_Pos) |
1155 .loc 1 1252 9 is_stmt 1 view .LVU384
1156 .loc 1 1252 68 is_stmt 0 view .LVU385
1157 0042 0D68 ldr r5, [r1]
1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR);
1158 .loc 1 1253 67 view .LVU386
1159 0044 CB68 ldr r3, [r1, #12]
1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR);
1160 .loc 1 1252 13 view .LVU387
1161 0046 0468 ldr r4, [r0]
1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR);
1162 .loc 1 1252 98 view .LVU388
1163 0048 43EA4555 orr r5, r3, r5, lsl #21
1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR);
1164 .loc 1 1252 57 view .LVU389
1165 004c 0CF11803 add r3, ip, #24
1166 0050 1B01 lsls r3, r3, #4
1167 0052 E550 str r5, [r4, r3]
1168 .L100:
1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->ExtId << CAN_TI0R_EXID_Pos) |
1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE |
1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR);
1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set up the DLC */
1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TDTR = (pHeader->DLC);
1169 .loc 1 1263 7 is_stmt 1 view .LVU390
1170 .loc 1 1263 11 is_stmt 0 view .LVU391
1171 0054 0368 ldr r3, [r0]
1172 .loc 1 1263 66 view .LVU392
1173 0056 0C69 ldr r4, [r1, #16]
1174 .loc 1 1263 56 view .LVU393
1175 0058 0CF1180E add lr, ip, #24
1176 005c 03EB0E13 add r3, r3, lr, lsl #4
1177 0060 5C60 str r4, [r3, #4]
1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set up the Transmit Global Time mode */
1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->TransmitGlobalTime == ENABLE)
1178 .loc 1 1266 7 is_stmt 1 view .LVU394
1179 .loc 1 1266 18 is_stmt 0 view .LVU395
1180 0062 0B7D ldrb r3, [r1, #20] @ zero_extendqisi2
1181 .loc 1 1266 10 view .LVU396
1182 0064 012B cmp r3, #1
1183 0066 35D0 beq .L103
1184 .LVL77:
1185 .L101:
1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TDTR, CAN_TDT0R_TGT);
1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
ARM GAS /tmp/ccj1aKCo.s page 48
1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set up the data field */
1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDHR,
1186 .loc 1 1272 7 is_stmt 1 view .LVU397
1187 0068 D179 ldrb r1, [r2, #7] @ zero_extendqisi2
1188 006a 9379 ldrb r3, [r2, #6] @ zero_extendqisi2
1189 006c 1B04 lsls r3, r3, #16
1190 006e 43EA0163 orr r3, r3, r1, lsl #24
1191 0072 5179 ldrb r1, [r2, #5] @ zero_extendqisi2
1192 0074 43EA0123 orr r3, r3, r1, lsl #8
1193 0078 1479 ldrb r4, [r2, #4] @ zero_extendqisi2
1194 007a 0168 ldr r1, [r0]
1195 007c 2343 orrs r3, r3, r4
1196 007e 01EB0C11 add r1, r1, ip, lsl #4
1197 0082 C1F88C31 str r3, [r1, #396]
1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[7] << CAN_TDH0R_DATA7_Pos) |
1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[6] << CAN_TDH0R_DATA6_Pos) |
1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[5] << CAN_TDH0R_DATA5_Pos) |
1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[4] << CAN_TDH0R_DATA4_Pos));
1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDLR,
1198 .loc 1 1277 7 view .LVU398
1199 0086 D178 ldrb r1, [r2, #3] @ zero_extendqisi2
1200 0088 9378 ldrb r3, [r2, #2] @ zero_extendqisi2
1201 008a 1B04 lsls r3, r3, #16
1202 008c 43EA0163 orr r3, r3, r1, lsl #24
1203 0090 5178 ldrb r1, [r2, #1] @ zero_extendqisi2
1204 0092 43EA0123 orr r3, r3, r1, lsl #8
1205 0096 1178 ldrb r1, [r2] @ zero_extendqisi2
1206 0098 0268 ldr r2, [r0]
1207 .LVL78:
1208 .loc 1 1277 7 is_stmt 0 view .LVU399
1209 009a 0B43 orrs r3, r3, r1
1210 009c 02EB0C12 add r2, r2, ip, lsl #4
1211 00a0 C2F88831 str r3, [r2, #392]
1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[3] << CAN_TDL0R_DATA3_Pos) |
1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[2] << CAN_TDL0R_DATA2_Pos) |
1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[1] << CAN_TDL0R_DATA1_Pos) |
1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((uint32_t)aData[0] << CAN_TDL0R_DATA0_Pos));
1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Request transmission */
1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TIR, CAN_TI0R_TXRQ);
1212 .loc 1 1284 7 is_stmt 1 view .LVU400
1213 00a4 0268 ldr r2, [r0]
1214 00a6 0CF1180C add ip, ip, #24
1215 .LVL79:
1216 .loc 1 1284 7 is_stmt 0 view .LVU401
1217 00aa 4FEA0C1C lsl ip, ip, #4
1218 00ae 52F80C30 ldr r3, [r2, ip]
1219 00b2 43F00103 orr r3, r3, #1
1220 00b6 42F80C30 str r3, [r2, ip]
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
1221 .loc 1 1287 7 is_stmt 1 view .LVU402
1222 .loc 1 1287 14 is_stmt 0 view .LVU403
1223 00ba 0020 movs r0, #0
1224 .LVL80:
ARM GAS /tmp/ccj1aKCo.s page 49
1225 .loc 1 1287 14 view .LVU404
1226 00bc 1DE0 b .L98
1227 .LVL81:
1228 .L99:
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE |
1229 .loc 1 1257 9 is_stmt 1 view .LVU405
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE |
1230 .loc 1 1257 68 is_stmt 0 view .LVU406
1231 00be 4C68 ldr r4, [r1, #4]
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE |
1232 .loc 1 1257 98 view .LVU407
1233 00c0 43EAC403 orr r3, r3, r4, lsl #3
1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1234 .loc 1 1259 67 view .LVU408
1235 00c4 CC68 ldr r4, [r1, #12]
1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR);
1236 .loc 1 1258 73 view .LVU409
1237 00c6 2343 orrs r3, r3, r4
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE |
1238 .loc 1 1257 57 view .LVU410
1239 00c8 0CF11804 add r4, ip, #24
1240 00cc 2401 lsls r4, r4, #4
1241 00ce 0568 ldr r5, [r0]
1242 00d0 2B51 str r3, [r5, r4]
1243 00d2 BFE7 b .L100
1244 .L103:
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1245 .loc 1 1268 9 is_stmt 1 view .LVU411
1246 00d4 0368 ldr r3, [r0]
1247 00d6 03EB0E13 add r3, r3, lr, lsl #4
1248 00da 5968 ldr r1, [r3, #4]
1249 .LVL82:
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1250 .loc 1 1268 9 is_stmt 0 view .LVU412
1251 00dc 41F48071 orr r1, r1, #256
1252 00e0 5960 str r1, [r3, #4]
1253 00e2 C1E7 b .L101
1254 .LVL83:
1255 .L96:
1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM;
1256 .loc 1 1292 7 is_stmt 1 view .LVU413
1257 .loc 1 1292 11 is_stmt 0 view .LVU414
1258 00e4 436A ldr r3, [r0, #36]
1259 .LVL84:
1260 .loc 1 1292 23 view .LVU415
1261 00e6 43F40013 orr r3, r3, #2097152
1262 00ea 4362 str r3, [r0, #36]
1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1263 .loc 1 1294 7 is_stmt 1 view .LVU416
1264 .loc 1 1294 14 is_stmt 0 view .LVU417
1265 00ec 0120 movs r0, #1
1266 .LVL85:
ARM GAS /tmp/ccj1aKCo.s page 50
1267 .loc 1 1294 14 view .LVU418
1268 00ee 04E0 b .L98
1269 .LVL86:
1270 .L95:
1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
1271 .loc 1 1300 5 is_stmt 1 view .LVU419
1272 .loc 1 1300 9 is_stmt 0 view .LVU420
1273 00f0 436A ldr r3, [r0, #36]
1274 .LVL87:
1275 .loc 1 1300 21 view .LVU421
1276 00f2 43F48023 orr r3, r3, #262144
1277 00f6 4362 str r3, [r0, #36]
1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1278 .loc 1 1302 5 is_stmt 1 view .LVU422
1279 .loc 1 1302 12 is_stmt 0 view .LVU423
1280 00f8 0120 movs r0, #1
1281 .LVL88:
1282 .L98:
1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1283 .loc 1 1304 1 view .LVU424
1284 00fa 30BD pop {r4, r5, pc}
1285 .cfi_endproc
1286 .LFE140:
1288 .section .text.HAL_CAN_AbortTxRequest,"ax",%progbits
1289 .align 1
1290 .global HAL_CAN_AbortTxRequest
1291 .syntax unified
1292 .thumb
1293 .thumb_func
1295 HAL_CAN_AbortTxRequest:
1296 .LVL89:
1297 .LFB141:
1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Abort transmission requests
1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param TxMailboxes List of the Tx Mailboxes to abort.
1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes.
1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AbortTxRequest(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes)
1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1298 .loc 1 1315 1 is_stmt 1 view -0
1299 .cfi_startproc
1300 @ args = 0, pretend = 0, frame = 0
1301 @ frame_needed = 0, uses_anonymous_args = 0
1302 @ link register save eliminated.
1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1303 .loc 1 1316 3 view .LVU426
ARM GAS /tmp/ccj1aKCo.s page 51
1304 .loc 1 1316 24 is_stmt 0 view .LVU427
1305 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1306 .LVL90:
1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */
1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes));
1307 .loc 1 1319 3 is_stmt 1 view .LVU428
1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1308 .loc 1 1321 3 view .LVU429
1309 .loc 1 1321 38 is_stmt 0 view .LVU430
1310 0004 013B subs r3, r3, #1
1311 .LVL91:
1312 .loc 1 1321 38 view .LVU431
1313 0006 DBB2 uxtb r3, r3
1314 .loc 1 1321 6 view .LVU432
1315 0008 012B cmp r3, #1
1316 000a 05D9 bls .L110
1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 0 */
1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX0) != 0U)
1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 0 */
1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ0);
1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 1 */
1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX1) != 0U)
1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 1 */
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ1);
1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 2 */
1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX2) != 0U)
1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 2 */
1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ2);
1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
1317 .loc 1 1351 5 is_stmt 1 view .LVU433
1318 .loc 1 1351 9 is_stmt 0 view .LVU434
1319 000c 436A ldr r3, [r0, #36]
1320 .loc 1 1351 21 view .LVU435
1321 000e 43F48023 orr r3, r3, #262144
1322 0012 4362 str r3, [r0, #36]
1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1323 .loc 1 1353 5 is_stmt 1 view .LVU436
ARM GAS /tmp/ccj1aKCo.s page 52
1324 .loc 1 1353 12 is_stmt 0 view .LVU437
1325 0014 0120 movs r0, #1
1326 .LVL92:
1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1327 .loc 1 1355 1 view .LVU438
1328 0016 7047 bx lr
1329 .LVL93:
1330 .L110:
1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1331 .loc 1 1325 5 is_stmt 1 view .LVU439
1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1332 .loc 1 1325 8 is_stmt 0 view .LVU440
1333 0018 11F0010F tst r1, #1
1334 001c 04D0 beq .L106
1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1335 .loc 1 1328 7 is_stmt 1 view .LVU441
1336 001e 0268 ldr r2, [r0]
1337 0020 9368 ldr r3, [r2, #8]
1338 0022 43F08003 orr r3, r3, #128
1339 0026 9360 str r3, [r2, #8]
1340 .L106:
1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1341 .loc 1 1332 5 view .LVU442
1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1342 .loc 1 1332 8 is_stmt 0 view .LVU443
1343 0028 11F0020F tst r1, #2
1344 002c 04D0 beq .L107
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1345 .loc 1 1335 7 is_stmt 1 view .LVU444
1346 002e 0268 ldr r2, [r0]
1347 0030 9368 ldr r3, [r2, #8]
1348 0032 43F40043 orr r3, r3, #32768
1349 0036 9360 str r3, [r2, #8]
1350 .L107:
1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1351 .loc 1 1339 5 view .LVU445
1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1352 .loc 1 1339 8 is_stmt 0 view .LVU446
1353 0038 11F0040F tst r1, #4
1354 003c 04D0 beq .L108
1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1355 .loc 1 1342 7 is_stmt 1 view .LVU447
1356 003e 0268 ldr r2, [r0]
1357 0040 9368 ldr r3, [r2, #8]
1358 0042 43F40003 orr r3, r3, #8388608
1359 0046 9360 str r3, [r2, #8]
1360 .L108:
1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1361 .loc 1 1346 5 view .LVU448
1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1362 .loc 1 1346 12 is_stmt 0 view .LVU449
1363 0048 0020 movs r0, #0
1364 .LVL94:
1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1365 .loc 1 1346 12 view .LVU450
1366 004a 7047 bx lr
ARM GAS /tmp/ccj1aKCo.s page 53
1367 .cfi_endproc
1368 .LFE141:
1370 .section .text.HAL_CAN_GetTxMailboxesFreeLevel,"ax",%progbits
1371 .align 1
1372 .global HAL_CAN_GetTxMailboxesFreeLevel
1373 .syntax unified
1374 .thumb
1375 .thumb_func
1377 HAL_CAN_GetTxMailboxesFreeLevel:
1378 .LVL95:
1379 .LFB142:
1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return Tx Mailboxes free level: number of free Tx Mailboxes.
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Number of free Tx Mailboxes.
1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_GetTxMailboxesFreeLevel(CAN_HandleTypeDef *hcan)
1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1380 .loc 1 1364 1 is_stmt 1 view -0
1381 .cfi_startproc
1382 @ args = 0, pretend = 0, frame = 0
1383 @ frame_needed = 0, uses_anonymous_args = 0
1384 @ link register save eliminated.
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t freelevel = 0U;
1385 .loc 1 1365 3 view .LVU452
1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1386 .loc 1 1366 3 view .LVU453
1387 .loc 1 1366 24 is_stmt 0 view .LVU454
1388 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1389 .LVL96:
1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1390 .loc 1 1368 3 is_stmt 1 view .LVU455
1391 .loc 1 1368 38 is_stmt 0 view .LVU456
1392 0004 013B subs r3, r3, #1
1393 .LVL97:
1394 .loc 1 1368 38 view .LVU457
1395 0006 DBB2 uxtb r3, r3
1396 .loc 1 1368 6 view .LVU458
1397 0008 012B cmp r3, #1
1398 000a 01D9 bls .L117
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1399 .loc 1 1365 12 view .LVU459
1400 000c 0020 movs r0, #0
1401 .LVL98:
1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 0 status */
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME0) != 0U)
1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** freelevel++;
1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 1 status */
1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME1) != 0U)
ARM GAS /tmp/ccj1aKCo.s page 54
1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** freelevel++;
1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Tx Mailbox 2 status */
1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME2) != 0U)
1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** freelevel++;
1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return Tx Mailboxes free level */
1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return freelevel;
1402 .loc 1 1391 3 is_stmt 1 view .LVU460
1403 .L111:
1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1404 .loc 1 1392 1 is_stmt 0 view .LVU461
1405 000e 7047 bx lr
1406 .LVL99:
1407 .L117:
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1408 .loc 1 1372 5 is_stmt 1 view .LVU462
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1409 .loc 1 1372 14 is_stmt 0 view .LVU463
1410 0010 0368 ldr r3, [r0]
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1411 .loc 1 1372 24 view .LVU464
1412 0012 9868 ldr r0, [r3, #8]
1413 .LVL100:
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1414 .loc 1 1372 8 view .LVU465
1415 0014 10F08060 ands r0, r0, #67108864
1416 0018 00D0 beq .L113
1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1417 .loc 1 1374 16 view .LVU466
1418 001a 0120 movs r0, #1
1419 .L113:
1420 .LVL101:
1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1421 .loc 1 1378 5 is_stmt 1 view .LVU467
1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1422 .loc 1 1378 24 is_stmt 0 view .LVU468
1423 001c 9A68 ldr r2, [r3, #8]
1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1424 .loc 1 1378 8 view .LVU469
1425 001e 12F0006F tst r2, #134217728
1426 0022 00D0 beq .L114
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1427 .loc 1 1380 7 is_stmt 1 view .LVU470
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1428 .loc 1 1380 16 is_stmt 0 view .LVU471
1429 0024 0130 adds r0, r0, #1
1430 .LVL102:
1431 .L114:
1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1432 .loc 1 1384 5 is_stmt 1 view .LVU472
1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
ARM GAS /tmp/ccj1aKCo.s page 55
1433 .loc 1 1384 24 is_stmt 0 view .LVU473
1434 0026 9B68 ldr r3, [r3, #8]
1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1435 .loc 1 1384 8 view .LVU474
1436 0028 13F0805F tst r3, #268435456
1437 002c EFD0 beq .L111
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1438 .loc 1 1386 7 is_stmt 1 view .LVU475
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1439 .loc 1 1386 16 is_stmt 0 view .LVU476
1440 002e 0130 adds r0, r0, #1
1441 .LVL103:
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1442 .loc 1 1386 16 view .LVU477
1443 0030 7047 bx lr
1444 .cfi_endproc
1445 .LFE142:
1447 .section .text.HAL_CAN_IsTxMessagePending,"ax",%progbits
1448 .align 1
1449 .global HAL_CAN_IsTxMessagePending
1450 .syntax unified
1451 .thumb
1452 .thumb_func
1454 HAL_CAN_IsTxMessagePending:
1455 .LVL104:
1456 .LFB143:
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Check if a transmission request is pending on the selected Tx
1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * Mailboxes.
1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param TxMailboxes List of Tx Mailboxes to check.
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes.
1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Status
1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * - 0 : No pending transmission request on any selected Tx Mailboxes.
1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * - 1 : Pending transmission request on at least one of the selected
1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * Tx Mailbox.
1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_IsTxMessagePending(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes)
1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1457 .loc 1 1407 1 is_stmt 1 view -0
1458 .cfi_startproc
1459 @ args = 0, pretend = 0, frame = 0
1460 @ frame_needed = 0, uses_anonymous_args = 0
1461 @ link register save eliminated.
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t status = 0U;
1462 .loc 1 1408 3 view .LVU479
1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1463 .loc 1 1409 3 view .LVU480
1464 .loc 1 1409 24 is_stmt 0 view .LVU481
1465 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1466 .LVL105:
1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */
1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes));
1467 .loc 1 1412 3 is_stmt 1 view .LVU482
ARM GAS /tmp/ccj1aKCo.s page 56
1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1468 .loc 1 1414 3 view .LVU483
1469 .loc 1 1414 38 is_stmt 0 view .LVU484
1470 0004 013B subs r3, r3, #1
1471 .LVL106:
1472 .loc 1 1414 38 view .LVU485
1473 0006 DBB2 uxtb r3, r3
1474 .loc 1 1414 6 view .LVU486
1475 0008 012B cmp r3, #1
1476 000a 01D9 bls .L122
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1477 .loc 1 1408 12 view .LVU487
1478 000c 0020 movs r0, #0
1479 .LVL107:
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1480 .loc 1 1408 12 view .LVU488
1481 000e 7047 bx lr
1482 .LVL108:
1483 .L122:
1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check pending transmission request on the selected Tx Mailboxes */
1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->TSR & (TxMailboxes << CAN_TSR_TME0_Pos)) != (TxMailboxes << CAN_TSR_TME0_P
1484 .loc 1 1418 5 is_stmt 1 view .LVU489
1485 .loc 1 1418 14 is_stmt 0 view .LVU490
1486 0010 0368 ldr r3, [r0]
1487 .loc 1 1418 24 view .LVU491
1488 0012 9B68 ldr r3, [r3, #8]
1489 .loc 1 1418 30 view .LVU492
1490 0014 03EA8163 and r3, r3, r1, lsl #26
1491 .loc 1 1418 8 view .LVU493
1492 0018 B3EB816F cmp r3, r1, lsl #26
1493 001c 01D0 beq .L123
1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = 1U;
1494 .loc 1 1420 14 view .LVU494
1495 001e 0120 movs r0, #1
1496 .LVL109:
1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return status */
1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status;
1497 .loc 1 1425 3 is_stmt 1 view .LVU495
1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1498 .loc 1 1426 1 is_stmt 0 view .LVU496
1499 0020 7047 bx lr
1500 .LVL110:
1501 .L123:
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1502 .loc 1 1408 12 view .LVU497
1503 0022 0020 movs r0, #0
1504 .LVL111:
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1505 .loc 1 1408 12 view .LVU498
1506 0024 7047 bx lr
ARM GAS /tmp/ccj1aKCo.s page 57
1507 .cfi_endproc
1508 .LFE143:
1510 .section .text.HAL_CAN_GetTxTimestamp,"ax",%progbits
1511 .align 1
1512 .global HAL_CAN_GetTxTimestamp
1513 .syntax unified
1514 .thumb
1515 .thumb_func
1517 HAL_CAN_GetTxTimestamp:
1518 .LVL112:
1519 .LFB144:
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return timestamp of Tx message sent, if time triggered communication
1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** mode is enabled.
1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param TxMailbox Tx Mailbox where the timestamp of message sent will be
1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * read.
1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be one value of @arg CAN_Tx_Mailboxes.
1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Timestamp of message sent from Tx Mailbox.
1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_GetTxTimestamp(CAN_HandleTypeDef *hcan, uint32_t TxMailbox)
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1520 .loc 1 1439 1 is_stmt 1 view -0
1521 .cfi_startproc
1522 @ args = 0, pretend = 0, frame = 0
1523 @ frame_needed = 0, uses_anonymous_args = 0
1524 @ link register save eliminated.
1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t timestamp = 0U;
1525 .loc 1 1440 3 view .LVU500
1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox;
1526 .loc 1 1441 3 view .LVU501
1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1527 .loc 1 1442 3 view .LVU502
1528 .loc 1 1442 24 is_stmt 0 view .LVU503
1529 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1530 .LVL113:
1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX(TxMailbox));
1531 .loc 1 1445 3 is_stmt 1 view .LVU504
1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1532 .loc 1 1447 3 view .LVU505
1533 .loc 1 1447 38 is_stmt 0 view .LVU506
1534 0004 013B subs r3, r3, #1
1535 .LVL114:
1536 .loc 1 1447 38 view .LVU507
1537 0006 DBB2 uxtb r3, r3
1538 .loc 1 1447 6 view .LVU508
1539 0008 012B cmp r3, #1
1540 000a 01D9 bls .L127
1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t transmitmailbox;
1541 .loc 1 1440 12 view .LVU509
1542 000c 0020 movs r0, #0
1543 .LVL115:
ARM GAS /tmp/ccj1aKCo.s page 58
1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Select the Tx mailbox */
1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** transmitmailbox = POSITION_VAL(TxMailbox);
1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get timestamp */
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** timestamp = (hcan->Instance->sTxMailBox[transmitmailbox].TDTR & CAN_TDT0R_TIME) >> CAN_TDT0R_TI
1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return the timestamp */
1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return timestamp;
1544 .loc 1 1458 3 is_stmt 1 view .LVU510
1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1545 .loc 1 1459 1 is_stmt 0 view .LVU511
1546 000e 7047 bx lr
1547 .LVL116:
1548 .L127:
1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1549 .loc 1 1451 5 is_stmt 1 view .LVU512
1550 .LBB4:
1551 .LBI4:
1552 .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
ARM GAS /tmp/ccj1aKCo.s page 59
36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0)
37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
38:Drivers/CMSIS/Include/cmsis_gcc.h ****
39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */
40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM
41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm
42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE
44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline
45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE
47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline
48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE
50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline
51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN
53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__))
54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED
56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used))
57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK
59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak))
60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED
62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1)))
63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT
65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION
68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1)))
69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */
71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; };
75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE
79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))-
85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ
87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
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
ARM GAS /tmp/ccj1aKCo.s page 60
93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE
95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))-
101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ
103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add
109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED
111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x)))
112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT
114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict
115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
116:Drivers/CMSIS/Include/cmsis_gcc.h ****
117:Drivers/CMSIS/Include/cmsis_gcc.h ****
118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */
119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface
120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
122:Drivers/CMSIS/Include/cmsis_gcc.h **** */
123:Drivers/CMSIS/Include/cmsis_gcc.h ****
124:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts
126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
128:Drivers/CMSIS/Include/cmsis_gcc.h **** */
129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void)
130:Drivers/CMSIS/Include/cmsis_gcc.h **** {
131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory");
132:Drivers/CMSIS/Include/cmsis_gcc.h **** }
133:Drivers/CMSIS/Include/cmsis_gcc.h ****
134:Drivers/CMSIS/Include/cmsis_gcc.h ****
135:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts
137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR.
138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
139:Drivers/CMSIS/Include/cmsis_gcc.h **** */
140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
141:Drivers/CMSIS/Include/cmsis_gcc.h **** {
142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory");
143:Drivers/CMSIS/Include/cmsis_gcc.h **** }
144:Drivers/CMSIS/Include/cmsis_gcc.h ****
145:Drivers/CMSIS/Include/cmsis_gcc.h ****
146:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register
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
ARM GAS /tmp/ccj1aKCo.s page 61
150:Drivers/CMSIS/Include/cmsis_gcc.h **** */
151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
152:Drivers/CMSIS/Include/cmsis_gcc.h **** {
153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
154:Drivers/CMSIS/Include/cmsis_gcc.h ****
155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) );
156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
157:Drivers/CMSIS/Include/cmsis_gcc.h **** }
158:Drivers/CMSIS/Include/cmsis_gcc.h ****
159:Drivers/CMSIS/Include/cmsis_gcc.h ****
160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
161:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure)
163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode.
164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value
165:Drivers/CMSIS/Include/cmsis_gcc.h **** */
166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void)
167:Drivers/CMSIS/Include/cmsis_gcc.h **** {
168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
169:Drivers/CMSIS/Include/cmsis_gcc.h ****
170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) );
171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
172:Drivers/CMSIS/Include/cmsis_gcc.h **** }
173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
174:Drivers/CMSIS/Include/cmsis_gcc.h ****
175:Drivers/CMSIS/Include/cmsis_gcc.h ****
176:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register
178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register.
179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
180:Drivers/CMSIS/Include/cmsis_gcc.h **** */
181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
182:Drivers/CMSIS/Include/cmsis_gcc.h **** {
183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
184:Drivers/CMSIS/Include/cmsis_gcc.h **** }
185:Drivers/CMSIS/Include/cmsis_gcc.h ****
186:Drivers/CMSIS/Include/cmsis_gcc.h ****
187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
188:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure)
190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state.
191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
192:Drivers/CMSIS/Include/cmsis_gcc.h **** */
193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control)
194:Drivers/CMSIS/Include/cmsis_gcc.h **** {
195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory");
196:Drivers/CMSIS/Include/cmsis_gcc.h **** }
197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
198:Drivers/CMSIS/Include/cmsis_gcc.h ****
199:Drivers/CMSIS/Include/cmsis_gcc.h ****
200:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register
202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register.
203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value
204:Drivers/CMSIS/Include/cmsis_gcc.h **** */
205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
206:Drivers/CMSIS/Include/cmsis_gcc.h **** {
ARM GAS /tmp/ccj1aKCo.s page 62
207:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
208:Drivers/CMSIS/Include/cmsis_gcc.h ****
209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
210:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
211:Drivers/CMSIS/Include/cmsis_gcc.h **** }
212:Drivers/CMSIS/Include/cmsis_gcc.h ****
213:Drivers/CMSIS/Include/cmsis_gcc.h ****
214:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register
216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register.
217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value
218:Drivers/CMSIS/Include/cmsis_gcc.h **** */
219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void)
220:Drivers/CMSIS/Include/cmsis_gcc.h **** {
221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
222:Drivers/CMSIS/Include/cmsis_gcc.h ****
223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) );
224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
225:Drivers/CMSIS/Include/cmsis_gcc.h **** }
226:Drivers/CMSIS/Include/cmsis_gcc.h ****
227:Drivers/CMSIS/Include/cmsis_gcc.h ****
228:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register
230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register.
231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value
232:Drivers/CMSIS/Include/cmsis_gcc.h **** */
233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void)
234:Drivers/CMSIS/Include/cmsis_gcc.h **** {
235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
236:Drivers/CMSIS/Include/cmsis_gcc.h ****
237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
239:Drivers/CMSIS/Include/cmsis_gcc.h **** }
240:Drivers/CMSIS/Include/cmsis_gcc.h ****
241:Drivers/CMSIS/Include/cmsis_gcc.h ****
242:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer
244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP).
245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
246:Drivers/CMSIS/Include/cmsis_gcc.h **** */
247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void)
248:Drivers/CMSIS/Include/cmsis_gcc.h **** {
249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
250:Drivers/CMSIS/Include/cmsis_gcc.h ****
251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) );
252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
253:Drivers/CMSIS/Include/cmsis_gcc.h **** }
254:Drivers/CMSIS/Include/cmsis_gcc.h ****
255:Drivers/CMSIS/Include/cmsis_gcc.h ****
256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
257:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure)
259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s
260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
261:Drivers/CMSIS/Include/cmsis_gcc.h **** */
262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void)
263:Drivers/CMSIS/Include/cmsis_gcc.h **** {
ARM GAS /tmp/ccj1aKCo.s page 63
264:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
265:Drivers/CMSIS/Include/cmsis_gcc.h ****
266:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) );
267:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
268:Drivers/CMSIS/Include/cmsis_gcc.h **** }
269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
270:Drivers/CMSIS/Include/cmsis_gcc.h ****
271:Drivers/CMSIS/Include/cmsis_gcc.h ****
272:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer
274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP).
275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
276:Drivers/CMSIS/Include/cmsis_gcc.h **** */
277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
278:Drivers/CMSIS/Include/cmsis_gcc.h **** {
279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
280:Drivers/CMSIS/Include/cmsis_gcc.h **** }
281:Drivers/CMSIS/Include/cmsis_gcc.h ****
282:Drivers/CMSIS/Include/cmsis_gcc.h ****
283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
284:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta
287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
288:Drivers/CMSIS/Include/cmsis_gcc.h **** */
289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack)
290:Drivers/CMSIS/Include/cmsis_gcc.h **** {
291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : );
292:Drivers/CMSIS/Include/cmsis_gcc.h **** }
293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
294:Drivers/CMSIS/Include/cmsis_gcc.h ****
295:Drivers/CMSIS/Include/cmsis_gcc.h ****
296:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer
298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP).
299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
300:Drivers/CMSIS/Include/cmsis_gcc.h **** */
301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void)
302:Drivers/CMSIS/Include/cmsis_gcc.h **** {
303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
304:Drivers/CMSIS/Include/cmsis_gcc.h ****
305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) );
306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
307:Drivers/CMSIS/Include/cmsis_gcc.h **** }
308:Drivers/CMSIS/Include/cmsis_gcc.h ****
309:Drivers/CMSIS/Include/cmsis_gcc.h ****
310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
311:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure)
313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat
314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
315:Drivers/CMSIS/Include/cmsis_gcc.h **** */
316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void)
317:Drivers/CMSIS/Include/cmsis_gcc.h **** {
318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
319:Drivers/CMSIS/Include/cmsis_gcc.h ****
320:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) );
ARM GAS /tmp/ccj1aKCo.s page 64
321:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
322:Drivers/CMSIS/Include/cmsis_gcc.h **** }
323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
324:Drivers/CMSIS/Include/cmsis_gcc.h ****
325:Drivers/CMSIS/Include/cmsis_gcc.h ****
326:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer
328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP).
329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
330:Drivers/CMSIS/Include/cmsis_gcc.h **** */
331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
332:Drivers/CMSIS/Include/cmsis_gcc.h **** {
333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
334:Drivers/CMSIS/Include/cmsis_gcc.h **** }
335:Drivers/CMSIS/Include/cmsis_gcc.h ****
336:Drivers/CMSIS/Include/cmsis_gcc.h ****
337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
338:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure)
340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state.
341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
342:Drivers/CMSIS/Include/cmsis_gcc.h **** */
343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack)
344:Drivers/CMSIS/Include/cmsis_gcc.h **** {
345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : );
346:Drivers/CMSIS/Include/cmsis_gcc.h **** }
347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
348:Drivers/CMSIS/Include/cmsis_gcc.h ****
349:Drivers/CMSIS/Include/cmsis_gcc.h ****
350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
351:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure)
353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state.
354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value
355:Drivers/CMSIS/Include/cmsis_gcc.h **** */
356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void)
357:Drivers/CMSIS/Include/cmsis_gcc.h **** {
358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
359:Drivers/CMSIS/Include/cmsis_gcc.h ****
360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) );
361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
362:Drivers/CMSIS/Include/cmsis_gcc.h **** }
363:Drivers/CMSIS/Include/cmsis_gcc.h ****
364:Drivers/CMSIS/Include/cmsis_gcc.h ****
365:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure)
367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state.
368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set
369:Drivers/CMSIS/Include/cmsis_gcc.h **** */
370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack)
371:Drivers/CMSIS/Include/cmsis_gcc.h **** {
372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : );
373:Drivers/CMSIS/Include/cmsis_gcc.h **** }
374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
375:Drivers/CMSIS/Include/cmsis_gcc.h ****
376:Drivers/CMSIS/Include/cmsis_gcc.h ****
377:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
ARM GAS /tmp/ccj1aKCo.s page 65
378:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask
379:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register.
380:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
381:Drivers/CMSIS/Include/cmsis_gcc.h **** */
382:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
383:Drivers/CMSIS/Include/cmsis_gcc.h **** {
384:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
385:Drivers/CMSIS/Include/cmsis_gcc.h ****
386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
388:Drivers/CMSIS/Include/cmsis_gcc.h **** }
389:Drivers/CMSIS/Include/cmsis_gcc.h ****
390:Drivers/CMSIS/Include/cmsis_gcc.h ****
391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
392:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure)
394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg
395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
396:Drivers/CMSIS/Include/cmsis_gcc.h **** */
397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void)
398:Drivers/CMSIS/Include/cmsis_gcc.h **** {
399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
400:Drivers/CMSIS/Include/cmsis_gcc.h ****
401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory");
402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
403:Drivers/CMSIS/Include/cmsis_gcc.h **** }
404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
405:Drivers/CMSIS/Include/cmsis_gcc.h ****
406:Drivers/CMSIS/Include/cmsis_gcc.h ****
407:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask
409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register.
410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
411:Drivers/CMSIS/Include/cmsis_gcc.h **** */
412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
413:Drivers/CMSIS/Include/cmsis_gcc.h **** {
414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
415:Drivers/CMSIS/Include/cmsis_gcc.h **** }
416:Drivers/CMSIS/Include/cmsis_gcc.h ****
417:Drivers/CMSIS/Include/cmsis_gcc.h ****
418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
419:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure)
421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
423:Drivers/CMSIS/Include/cmsis_gcc.h **** */
424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
425:Drivers/CMSIS/Include/cmsis_gcc.h **** {
426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
427:Drivers/CMSIS/Include/cmsis_gcc.h **** }
428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
429:Drivers/CMSIS/Include/cmsis_gcc.h ****
430:Drivers/CMSIS/Include/cmsis_gcc.h ****
431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
433:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
434:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
ARM GAS /tmp/ccj1aKCo.s page 66
435:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ
436:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
437:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
438:Drivers/CMSIS/Include/cmsis_gcc.h **** */
439:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void)
440:Drivers/CMSIS/Include/cmsis_gcc.h **** {
441:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory");
442:Drivers/CMSIS/Include/cmsis_gcc.h **** }
443:Drivers/CMSIS/Include/cmsis_gcc.h ****
444:Drivers/CMSIS/Include/cmsis_gcc.h ****
445:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ
447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR.
448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
449:Drivers/CMSIS/Include/cmsis_gcc.h **** */
450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void)
451:Drivers/CMSIS/Include/cmsis_gcc.h **** {
452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory");
453:Drivers/CMSIS/Include/cmsis_gcc.h **** }
454:Drivers/CMSIS/Include/cmsis_gcc.h ****
455:Drivers/CMSIS/Include/cmsis_gcc.h ****
456:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority
458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register.
459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
460:Drivers/CMSIS/Include/cmsis_gcc.h **** */
461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
462:Drivers/CMSIS/Include/cmsis_gcc.h **** {
463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
464:Drivers/CMSIS/Include/cmsis_gcc.h ****
465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) );
466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
467:Drivers/CMSIS/Include/cmsis_gcc.h **** }
468:Drivers/CMSIS/Include/cmsis_gcc.h ****
469:Drivers/CMSIS/Include/cmsis_gcc.h ****
470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
471:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure)
473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state.
474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
475:Drivers/CMSIS/Include/cmsis_gcc.h **** */
476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void)
477:Drivers/CMSIS/Include/cmsis_gcc.h **** {
478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
479:Drivers/CMSIS/Include/cmsis_gcc.h ****
480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) );
481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
482:Drivers/CMSIS/Include/cmsis_gcc.h **** }
483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
484:Drivers/CMSIS/Include/cmsis_gcc.h ****
485:Drivers/CMSIS/Include/cmsis_gcc.h ****
486:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority
488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register.
489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
490:Drivers/CMSIS/Include/cmsis_gcc.h **** */
491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri)
ARM GAS /tmp/ccj1aKCo.s page 67
492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
494:Drivers/CMSIS/Include/cmsis_gcc.h **** }
495:Drivers/CMSIS/Include/cmsis_gcc.h ****
496:Drivers/CMSIS/Include/cmsis_gcc.h ****
497:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
498:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure)
500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state.
501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
502:Drivers/CMSIS/Include/cmsis_gcc.h **** */
503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri)
504:Drivers/CMSIS/Include/cmsis_gcc.h **** {
505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory");
506:Drivers/CMSIS/Include/cmsis_gcc.h **** }
507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
508:Drivers/CMSIS/Include/cmsis_gcc.h ****
509:Drivers/CMSIS/Include/cmsis_gcc.h ****
510:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition
512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable
513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level.
514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
515:Drivers/CMSIS/Include/cmsis_gcc.h **** */
516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri)
517:Drivers/CMSIS/Include/cmsis_gcc.h **** {
518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
519:Drivers/CMSIS/Include/cmsis_gcc.h **** }
520:Drivers/CMSIS/Include/cmsis_gcc.h ****
521:Drivers/CMSIS/Include/cmsis_gcc.h ****
522:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask
524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register.
525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
526:Drivers/CMSIS/Include/cmsis_gcc.h **** */
527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void)
528:Drivers/CMSIS/Include/cmsis_gcc.h **** {
529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
530:Drivers/CMSIS/Include/cmsis_gcc.h ****
531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
533:Drivers/CMSIS/Include/cmsis_gcc.h **** }
534:Drivers/CMSIS/Include/cmsis_gcc.h ****
535:Drivers/CMSIS/Include/cmsis_gcc.h ****
536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
537:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure)
539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state.
540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
541:Drivers/CMSIS/Include/cmsis_gcc.h **** */
542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void)
543:Drivers/CMSIS/Include/cmsis_gcc.h **** {
544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
545:Drivers/CMSIS/Include/cmsis_gcc.h ****
546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) );
547:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
548:Drivers/CMSIS/Include/cmsis_gcc.h **** }
ARM GAS /tmp/ccj1aKCo.s page 68
549:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
550:Drivers/CMSIS/Include/cmsis_gcc.h ****
551:Drivers/CMSIS/Include/cmsis_gcc.h ****
552:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
553:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask
554:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register.
555:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
556:Drivers/CMSIS/Include/cmsis_gcc.h **** */
557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
558:Drivers/CMSIS/Include/cmsis_gcc.h **** {
559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
560:Drivers/CMSIS/Include/cmsis_gcc.h **** }
561:Drivers/CMSIS/Include/cmsis_gcc.h ****
562:Drivers/CMSIS/Include/cmsis_gcc.h ****
563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
564:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure)
566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state.
567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
568:Drivers/CMSIS/Include/cmsis_gcc.h **** */
569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask)
570:Drivers/CMSIS/Include/cmsis_gcc.h **** {
571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory");
572:Drivers/CMSIS/Include/cmsis_gcc.h **** }
573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
574:Drivers/CMSIS/Include/cmsis_gcc.h ****
575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */
578:Drivers/CMSIS/Include/cmsis_gcc.h ****
579:Drivers/CMSIS/Include/cmsis_gcc.h ****
580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
582:Drivers/CMSIS/Include/cmsis_gcc.h ****
583:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit
585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
588:Drivers/CMSIS/Include/cmsis_gcc.h ****
589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM).
590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
591:Drivers/CMSIS/Include/cmsis_gcc.h **** */
592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void)
593:Drivers/CMSIS/Include/cmsis_gcc.h **** {
594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) );
601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
603:Drivers/CMSIS/Include/cmsis_gcc.h **** }
604:Drivers/CMSIS/Include/cmsis_gcc.h ****
605:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3))
ARM GAS /tmp/ccj1aKCo.s page 69
606:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
607:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure)
608:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
609:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
610:Drivers/CMSIS/Include/cmsis_gcc.h ****
611:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in
612:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
613:Drivers/CMSIS/Include/cmsis_gcc.h **** */
614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void)
615:Drivers/CMSIS/Include/cmsis_gcc.h **** {
616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) );
622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
624:Drivers/CMSIS/Include/cmsis_gcc.h **** }
625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
626:Drivers/CMSIS/Include/cmsis_gcc.h ****
627:Drivers/CMSIS/Include/cmsis_gcc.h ****
628:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit
630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
633:Drivers/CMSIS/Include/cmsis_gcc.h ****
634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM).
635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
636:Drivers/CMSIS/Include/cmsis_gcc.h **** */
637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit)
638:Drivers/CMSIS/Include/cmsis_gcc.h **** {
639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit));
645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
646:Drivers/CMSIS/Include/cmsis_gcc.h **** }
647:Drivers/CMSIS/Include/cmsis_gcc.h ****
648:Drivers/CMSIS/Include/cmsis_gcc.h ****
649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
650:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
654:Drivers/CMSIS/Include/cmsis_gcc.h ****
655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s
656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
657:Drivers/CMSIS/Include/cmsis_gcc.h **** */
658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit)
659:Drivers/CMSIS/Include/cmsis_gcc.h **** {
660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
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;
ARM GAS /tmp/ccj1aKCo.s page 70
663:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
664:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit));
665:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
666:Drivers/CMSIS/Include/cmsis_gcc.h **** }
667:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
668:Drivers/CMSIS/Include/cmsis_gcc.h ****
669:Drivers/CMSIS/Include/cmsis_gcc.h ****
670:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit
672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
675:Drivers/CMSIS/Include/cmsis_gcc.h ****
676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM).
677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
678:Drivers/CMSIS/Include/cmsis_gcc.h **** */
679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void)
680:Drivers/CMSIS/Include/cmsis_gcc.h **** {
681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) );
688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
690:Drivers/CMSIS/Include/cmsis_gcc.h **** }
691:Drivers/CMSIS/Include/cmsis_gcc.h ****
692:Drivers/CMSIS/Include/cmsis_gcc.h ****
693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
694:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure)
696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
698:Drivers/CMSIS/Include/cmsis_gcc.h ****
699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec
700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
701:Drivers/CMSIS/Include/cmsis_gcc.h **** */
702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void)
703:Drivers/CMSIS/Include/cmsis_gcc.h **** {
704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
712:Drivers/CMSIS/Include/cmsis_gcc.h **** }
713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
714:Drivers/CMSIS/Include/cmsis_gcc.h ****
715:Drivers/CMSIS/Include/cmsis_gcc.h ****
716:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit
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
ARM GAS /tmp/ccj1aKCo.s page 71
720:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
721:Drivers/CMSIS/Include/cmsis_gcc.h ****
722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM).
723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set
724:Drivers/CMSIS/Include/cmsis_gcc.h **** */
725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit)
726:Drivers/CMSIS/Include/cmsis_gcc.h **** {
727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit));
733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
734:Drivers/CMSIS/Include/cmsis_gcc.h **** }
735:Drivers/CMSIS/Include/cmsis_gcc.h ****
736:Drivers/CMSIS/Include/cmsis_gcc.h ****
737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
738:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure)
740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
742:Drivers/CMSIS/Include/cmsis_gcc.h ****
743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu
744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set
745:Drivers/CMSIS/Include/cmsis_gcc.h **** */
746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit)
747:Drivers/CMSIS/Include/cmsis_gcc.h **** {
748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit));
753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
754:Drivers/CMSIS/Include/cmsis_gcc.h **** }
755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
756:Drivers/CMSIS/Include/cmsis_gcc.h ****
757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */
759:Drivers/CMSIS/Include/cmsis_gcc.h ****
760:Drivers/CMSIS/Include/cmsis_gcc.h ****
761:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR
763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register.
764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value
765:Drivers/CMSIS/Include/cmsis_gcc.h **** */
766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
767:Drivers/CMSIS/Include/cmsis_gcc.h **** {
768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr)
771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr();
775:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
776:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
ARM GAS /tmp/ccj1aKCo.s page 72
777:Drivers/CMSIS/Include/cmsis_gcc.h ****
778:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
779:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
781:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
782:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U);
783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
784:Drivers/CMSIS/Include/cmsis_gcc.h **** }
785:Drivers/CMSIS/Include/cmsis_gcc.h ****
786:Drivers/CMSIS/Include/cmsis_gcc.h ****
787:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR
789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register.
790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set
791:Drivers/CMSIS/Include/cmsis_gcc.h **** */
792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
793:Drivers/CMSIS/Include/cmsis_gcc.h **** {
794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr)
797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr);
801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr;
806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
807:Drivers/CMSIS/Include/cmsis_gcc.h **** }
808:Drivers/CMSIS/Include/cmsis_gcc.h ****
809:Drivers/CMSIS/Include/cmsis_gcc.h ****
810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */
811:Drivers/CMSIS/Include/cmsis_gcc.h ****
812:Drivers/CMSIS/Include/cmsis_gcc.h ****
813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */
814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions
816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
817:Drivers/CMSIS/Include/cmsis_gcc.h **** */
818:Drivers/CMSIS/Include/cmsis_gcc.h ****
819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2.
820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l"
821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */
822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__)
823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
831:Drivers/CMSIS/Include/cmsis_gcc.h ****
832:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
833:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation
ARM GAS /tmp/ccj1aKCo.s page 73
834:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes.
835:Drivers/CMSIS/Include/cmsis_gcc.h **** */
836:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop")
837:Drivers/CMSIS/Include/cmsis_gcc.h ****
838:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
839:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt
840:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
841:Drivers/CMSIS/Include/cmsis_gcc.h **** */
842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi")
843:Drivers/CMSIS/Include/cmsis_gcc.h ****
844:Drivers/CMSIS/Include/cmsis_gcc.h ****
845:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event
847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter
848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs.
849:Drivers/CMSIS/Include/cmsis_gcc.h **** */
850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe")
851:Drivers/CMSIS/Include/cmsis_gcc.h ****
852:Drivers/CMSIS/Include/cmsis_gcc.h ****
853:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event
855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
856:Drivers/CMSIS/Include/cmsis_gcc.h **** */
857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev")
858:Drivers/CMSIS/Include/cmsis_gcc.h ****
859:Drivers/CMSIS/Include/cmsis_gcc.h ****
860:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier
862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor,
863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory,
864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed.
865:Drivers/CMSIS/Include/cmsis_gcc.h **** */
866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
867:Drivers/CMSIS/Include/cmsis_gcc.h **** {
868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory");
869:Drivers/CMSIS/Include/cmsis_gcc.h **** }
870:Drivers/CMSIS/Include/cmsis_gcc.h ****
871:Drivers/CMSIS/Include/cmsis_gcc.h ****
872:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier
874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier.
875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete.
876:Drivers/CMSIS/Include/cmsis_gcc.h **** */
877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void)
878:Drivers/CMSIS/Include/cmsis_gcc.h **** {
879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory");
880:Drivers/CMSIS/Include/cmsis_gcc.h **** }
881:Drivers/CMSIS/Include/cmsis_gcc.h ****
882:Drivers/CMSIS/Include/cmsis_gcc.h ****
883:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier
885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before
886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion.
887:Drivers/CMSIS/Include/cmsis_gcc.h **** */
888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void)
889:Drivers/CMSIS/Include/cmsis_gcc.h **** {
890:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory");
ARM GAS /tmp/ccj1aKCo.s page 74
891:Drivers/CMSIS/Include/cmsis_gcc.h **** }
892:Drivers/CMSIS/Include/cmsis_gcc.h ****
893:Drivers/CMSIS/Include/cmsis_gcc.h ****
894:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
895:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit)
896:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785
897:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
899:Drivers/CMSIS/Include/cmsis_gcc.h **** */
900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value)
901:Drivers/CMSIS/Include/cmsis_gcc.h **** {
902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value);
904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
906:Drivers/CMSIS/Include/cmsis_gcc.h ****
907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
910:Drivers/CMSIS/Include/cmsis_gcc.h **** }
911:Drivers/CMSIS/Include/cmsis_gcc.h ****
912:Drivers/CMSIS/Include/cmsis_gcc.h ****
913:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes
916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
918:Drivers/CMSIS/Include/cmsis_gcc.h **** */
919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value)
920:Drivers/CMSIS/Include/cmsis_gcc.h **** {
921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
922:Drivers/CMSIS/Include/cmsis_gcc.h ****
923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
925:Drivers/CMSIS/Include/cmsis_gcc.h **** }
926:Drivers/CMSIS/Include/cmsis_gcc.h ****
927:Drivers/CMSIS/Include/cmsis_gcc.h ****
928:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
930:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam
931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
933:Drivers/CMSIS/Include/cmsis_gcc.h **** */
934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value)
935:Drivers/CMSIS/Include/cmsis_gcc.h **** {
936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value);
938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result;
940:Drivers/CMSIS/Include/cmsis_gcc.h ****
941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
944:Drivers/CMSIS/Include/cmsis_gcc.h **** }
945:Drivers/CMSIS/Include/cmsis_gcc.h ****
946:Drivers/CMSIS/Include/cmsis_gcc.h ****
947:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
ARM GAS /tmp/ccj1aKCo.s page 75
948:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit)
949:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v
950:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate
951:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate
952:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value
953:Drivers/CMSIS/Include/cmsis_gcc.h **** */
954:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
955:Drivers/CMSIS/Include/cmsis_gcc.h **** {
956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U;
957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U)
958:Drivers/CMSIS/Include/cmsis_gcc.h **** {
959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1;
960:Drivers/CMSIS/Include/cmsis_gcc.h **** }
961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2));
962:Drivers/CMSIS/Include/cmsis_gcc.h **** }
963:Drivers/CMSIS/Include/cmsis_gcc.h ****
964:Drivers/CMSIS/Include/cmsis_gcc.h ****
965:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint
967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state.
968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula
969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor.
970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break
971:Drivers/CMSIS/Include/cmsis_gcc.h **** */
972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value)
973:Drivers/CMSIS/Include/cmsis_gcc.h ****
974:Drivers/CMSIS/Include/cmsis_gcc.h ****
975:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value
977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value.
978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
980:Drivers/CMSIS/Include/cmsis_gcc.h **** */
981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value)
1553 .loc 2 981 31 view .LVU513
1554 .LBB5:
982:Drivers/CMSIS/Include/cmsis_gcc.h **** {
983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
1555 .loc 2 983 3 view .LVU514
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) );
1556 .loc 2 988 4 view .LVU515
1557 .syntax unified
1558 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
1559 0010 91FAA1F1 rbit r1, r1
1560 @ 0 "" 2
1561 .LVL117:
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;
ARM GAS /tmp/ccj1aKCo.s page 76
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;
1562 .loc 2 1001 3 view .LVU516
1563 .loc 2 1001 3 is_stmt 0 view .LVU517
1564 .thumb
1565 .syntax unified
1566 .LBE5:
1567 .LBE4:
1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1568 .loc 1 1451 21 view .LVU518
1569 0014 B1FA81F1 clz r1, r1
1570 .LVL118:
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1571 .loc 1 1454 5 is_stmt 1 view .LVU519
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1572 .loc 1 1454 22 is_stmt 0 view .LVU520
1573 0018 0368 ldr r3, [r0]
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1574 .loc 1 1454 61 view .LVU521
1575 001a 1831 adds r1, r1, #24
1576 .LVL119:
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1577 .loc 1 1454 61 view .LVU522
1578 001c 03EB0113 add r3, r3, r1, lsl #4
1579 0020 5868 ldr r0, [r3, #4]
1580 .LVL120:
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1581 .loc 1 1454 85 view .LVU523
1582 0022 000C lsrs r0, r0, #16
1583 .LVL121:
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1584 .loc 1 1454 85 view .LVU524
1585 0024 7047 bx lr
1586 .cfi_endproc
1587 .LFE144:
1589 .section .text.HAL_CAN_GetRxMessage,"ax",%progbits
1590 .align 1
1591 .global HAL_CAN_GetRxMessage
1592 .syntax unified
1593 .thumb
1594 .thumb_func
1596 HAL_CAN_GetRxMessage:
1597 .LVL122:
1598 .LFB145:
1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Get an CAN frame from the Rx FIFO zone into the message RAM.
1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param RxFifo Fifo number of the received message to be read.
1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number.
1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param pHeader pointer to a CAN_RxHeaderTypeDef structure where the header
1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * of the Rx frame will be stored.
ARM GAS /tmp/ccj1aKCo.s page 77
1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param aData array where the payload of the Rx frame will be stored.
1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_GetRxMessage(CAN_HandleTypeDef *hcan, uint32_t RxFifo, CAN_RxHeaderTypeDe
1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1599 .loc 1 1473 1 is_stmt 1 view -0
1600 .cfi_startproc
1601 @ args = 0, pretend = 0, frame = 0
1602 @ frame_needed = 0, uses_anonymous_args = 0
1603 @ link register save eliminated.
1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1604 .loc 1 1474 3 view .LVU526
1605 .loc 1 1474 24 is_stmt 0 view .LVU527
1606 0000 90F820C0 ldrb ip, [r0, #32] @ zero_extendqisi2
1607 .LVL123:
1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo));
1608 .loc 1 1476 3 is_stmt 1 view .LVU528
1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1609 .loc 1 1478 3 view .LVU529
1610 .loc 1 1478 38 is_stmt 0 view .LVU530
1611 0004 0CF1FF3C add ip, ip, #-1
1612 .LVL124:
1613 .loc 1 1478 38 view .LVU531
1614 0008 5FFA8CFC uxtb ip, ip
1615 .loc 1 1478 6 view .LVU532
1616 000c BCF1010F cmp ip, #1
1617 0010 00F29580 bhi .L129
1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1618 .loc 1 1473 1 view .LVU533
1619 0014 30B4 push {r4, r5}
1620 .cfi_def_cfa_offset 8
1621 .cfi_offset 4, -8
1622 .cfi_offset 5, -4
1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check the Rx FIFO */
1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */
1623 .loc 1 1482 5 is_stmt 1 view .LVU534
1624 .loc 1 1482 8 is_stmt 0 view .LVU535
1625 0016 51B9 cbnz r1, .L130
1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check that the Rx FIFO 0 is not empty */
1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) == 0U)
1626 .loc 1 1485 7 is_stmt 1 view .LVU536
1627 .loc 1 1485 16 is_stmt 0 view .LVU537
1628 0018 0468 ldr r4, [r0]
1629 .loc 1 1485 26 view .LVU538
1630 001a E468 ldr r4, [r4, #12]
1631 .loc 1 1485 10 view .LVU539
1632 001c 14F0030F tst r4, #3
1633 0020 10D1 bne .L131
1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM;
1634 .loc 1 1488 9 is_stmt 1 view .LVU540
ARM GAS /tmp/ccj1aKCo.s page 78
1635 .loc 1 1488 13 is_stmt 0 view .LVU541
1636 0022 436A ldr r3, [r0, #36]
1637 .LVL125:
1638 .loc 1 1488 25 view .LVU542
1639 0024 43F40013 orr r3, r3, #2097152
1640 0028 4362 str r3, [r0, #36]
1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1641 .loc 1 1490 9 is_stmt 1 view .LVU543
1642 .loc 1 1490 16 is_stmt 0 view .LVU544
1643 002a 0120 movs r0, #1
1644 .LVL126:
1645 .loc 1 1490 16 view .LVU545
1646 002c 77E0 b .L132
1647 .LVL127:
1648 .L130:
1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */
1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check that the Rx FIFO 1 is not empty */
1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) == 0U)
1649 .loc 1 1496 7 is_stmt 1 view .LVU546
1650 .loc 1 1496 16 is_stmt 0 view .LVU547
1651 002e 0468 ldr r4, [r0]
1652 .loc 1 1496 26 view .LVU548
1653 0030 2469 ldr r4, [r4, #16]
1654 .loc 1 1496 10 view .LVU549
1655 0032 14F0030F tst r4, #3
1656 0036 05D1 bne .L131
1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM;
1657 .loc 1 1499 9 is_stmt 1 view .LVU550
1658 .loc 1 1499 13 is_stmt 0 view .LVU551
1659 0038 436A ldr r3, [r0, #36]
1660 .LVL128:
1661 .loc 1 1499 25 view .LVU552
1662 003a 43F40013 orr r3, r3, #2097152
1663 003e 4362 str r3, [r0, #36]
1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1664 .loc 1 1501 9 is_stmt 1 view .LVU553
1665 .loc 1 1501 16 is_stmt 0 view .LVU554
1666 0040 0120 movs r0, #1
1667 .LVL129:
1668 .loc 1 1501 16 view .LVU555
1669 0042 6CE0 b .L132
1670 .LVL130:
1671 .L131:
1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get the header */
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->IDE = CAN_RI0R_IDE & hcan->Instance->sFIFOMailBox[RxFifo].RIR;
1672 .loc 1 1506 5 is_stmt 1 view .LVU556
1673 .loc 1 1506 71 is_stmt 0 view .LVU557
ARM GAS /tmp/ccj1aKCo.s page 79
1674 0044 01F11B04 add r4, r1, #27
1675 0048 2401 lsls r4, r4, #4
1676 004a 0568 ldr r5, [r0]
1677 004c 2C59 ldr r4, [r5, r4]
1678 .loc 1 1506 33 view .LVU558
1679 004e 04F00404 and r4, r4, #4
1680 .loc 1 1506 18 view .LVU559
1681 0052 9460 str r4, [r2, #8]
1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD)
1682 .loc 1 1507 5 is_stmt 1 view .LVU560
1683 .loc 1 1507 8 is_stmt 0 view .LVU561
1684 0054 002C cmp r4, #0
1685 0056 64D1 bne .L133
1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->StdId = (CAN_RI0R_STID & hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_TI0R_STID_
1686 .loc 1 1509 7 is_stmt 1 view .LVU562
1687 .loc 1 1509 77 is_stmt 0 view .LVU563
1688 0058 01F11B04 add r4, r1, #27
1689 005c 2401 lsls r4, r4, #4
1690 005e 0568 ldr r5, [r0]
1691 0060 2C59 ldr r4, [r5, r4]
1692 .loc 1 1509 83 view .LVU564
1693 0062 640D lsrs r4, r4, #21
1694 .loc 1 1509 22 view .LVU565
1695 0064 1460 str r4, [r2]
1696 .L134:
1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->ExtId = ((CAN_RI0R_EXID | CAN_RI0R_STID) & hcan->Instance->sFIFOMailBox[RxFifo].RIR)
1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->RTR = (CAN_RI0R_RTR & hcan->Instance->sFIFOMailBox[RxFifo].RIR);
1697 .loc 1 1515 5 is_stmt 1 view .LVU566
1698 .loc 1 1515 40 is_stmt 0 view .LVU567
1699 0066 0468 ldr r4, [r0]
1700 .loc 1 1515 72 view .LVU568
1701 0068 01F11B0C add ip, r1, #27
1702 006c 4FEA0C1C lsl ip, ip, #4
1703 0070 54F80C40 ldr r4, [r4, ip]
1704 .loc 1 1515 34 view .LVU569
1705 0074 04F00204 and r4, r4, #2
1706 .loc 1 1515 18 view .LVU570
1707 0078 D460 str r4, [r2, #12]
1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->DLC = (CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos
1708 .loc 1 1516 5 is_stmt 1 view .LVU571
1709 .loc 1 1516 41 is_stmt 0 view .LVU572
1710 007a 0468 ldr r4, [r0]
1711 .loc 1 1516 73 view .LVU573
1712 007c 6444 add r4, r4, ip
1713 007e 6468 ldr r4, [r4, #4]
1714 .loc 1 1516 80 view .LVU574
1715 0080 04F00F04 and r4, r4, #15
1716 .loc 1 1516 18 view .LVU575
1717 0084 1461 str r4, [r2, #16]
1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->FilterMatchIndex = (CAN_RDT0R_FMI & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_
1718 .loc 1 1517 5 is_stmt 1 view .LVU576
1719 .loc 1 1517 54 is_stmt 0 view .LVU577
ARM GAS /tmp/ccj1aKCo.s page 80
1720 0086 0468 ldr r4, [r0]
1721 .loc 1 1517 86 view .LVU578
1722 0088 6444 add r4, r4, ip
1723 008a 6468 ldr r4, [r4, #4]
1724 .loc 1 1517 93 view .LVU579
1725 008c C4F30724 ubfx r4, r4, #8, #8
1726 .loc 1 1517 31 view .LVU580
1727 0090 9461 str r4, [r2, #24]
1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_
1728 .loc 1 1518 5 is_stmt 1 view .LVU581
1729 .loc 1 1518 48 is_stmt 0 view .LVU582
1730 0092 0468 ldr r4, [r0]
1731 .loc 1 1518 80 view .LVU583
1732 0094 6444 add r4, r4, ip
1733 0096 6468 ldr r4, [r4, #4]
1734 .loc 1 1518 87 view .LVU584
1735 0098 240C lsrs r4, r4, #16
1736 .loc 1 1518 24 view .LVU585
1737 009a 5461 str r4, [r2, #20]
1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Get the data */
1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[0] = (uint8_t)((CAN_RDL0R_DATA0 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R
1738 .loc 1 1521 5 is_stmt 1 view .LVU586
1739 .loc 1 1521 49 is_stmt 0 view .LVU587
1740 009c 0268 ldr r2, [r0]
1741 .LVL131:
1742 .loc 1 1521 81 view .LVU588
1743 009e 02EB0112 add r2, r2, r1, lsl #4
1744 00a2 D2F8B821 ldr r2, [r2, #440]
1745 .loc 1 1521 14 view .LVU589
1746 00a6 1A70 strb r2, [r3]
1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R
1747 .loc 1 1522 5 is_stmt 1 view .LVU590
1748 .loc 1 1522 49 is_stmt 0 view .LVU591
1749 00a8 0268 ldr r2, [r0]
1750 .loc 1 1522 81 view .LVU592
1751 00aa 02EB0112 add r2, r2, r1, lsl #4
1752 00ae D2F8B821 ldr r2, [r2, #440]
1753 .loc 1 1522 16 view .LVU593
1754 00b2 C2F30722 ubfx r2, r2, #8, #8
1755 .loc 1 1522 14 view .LVU594
1756 00b6 5A70 strb r2, [r3, #1]
1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R
1757 .loc 1 1523 5 is_stmt 1 view .LVU595
1758 .loc 1 1523 49 is_stmt 0 view .LVU596
1759 00b8 0268 ldr r2, [r0]
1760 .loc 1 1523 81 view .LVU597
1761 00ba 02EB0112 add r2, r2, r1, lsl #4
1762 00be D2F8B821 ldr r2, [r2, #440]
1763 .loc 1 1523 16 view .LVU598
1764 00c2 C2F30742 ubfx r2, r2, #16, #8
1765 .loc 1 1523 14 view .LVU599
1766 00c6 9A70 strb r2, [r3, #2]
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R
1767 .loc 1 1524 5 is_stmt 1 view .LVU600
1768 .loc 1 1524 49 is_stmt 0 view .LVU601
1769 00c8 0268 ldr r2, [r0]
ARM GAS /tmp/ccj1aKCo.s page 81
1770 .loc 1 1524 81 view .LVU602
1771 00ca 02EB0112 add r2, r2, r1, lsl #4
1772 00ce D2F8B821 ldr r2, [r2, #440]
1773 .loc 1 1524 16 view .LVU603
1774 00d2 120E lsrs r2, r2, #24
1775 .loc 1 1524 14 view .LVU604
1776 00d4 DA70 strb r2, [r3, #3]
1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R
1777 .loc 1 1525 5 is_stmt 1 view .LVU605
1778 .loc 1 1525 49 is_stmt 0 view .LVU606
1779 00d6 0268 ldr r2, [r0]
1780 .loc 1 1525 81 view .LVU607
1781 00d8 02EB0112 add r2, r2, r1, lsl #4
1782 00dc D2F8BC21 ldr r2, [r2, #444]
1783 .loc 1 1525 14 view .LVU608
1784 00e0 1A71 strb r2, [r3, #4]
1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R
1785 .loc 1 1526 5 is_stmt 1 view .LVU609
1786 .loc 1 1526 49 is_stmt 0 view .LVU610
1787 00e2 0268 ldr r2, [r0]
1788 .loc 1 1526 81 view .LVU611
1789 00e4 02EB0112 add r2, r2, r1, lsl #4
1790 00e8 D2F8BC21 ldr r2, [r2, #444]
1791 .loc 1 1526 16 view .LVU612
1792 00ec C2F30722 ubfx r2, r2, #8, #8
1793 .loc 1 1526 14 view .LVU613
1794 00f0 5A71 strb r2, [r3, #5]
1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R
1795 .loc 1 1527 5 is_stmt 1 view .LVU614
1796 .loc 1 1527 49 is_stmt 0 view .LVU615
1797 00f2 0268 ldr r2, [r0]
1798 .loc 1 1527 81 view .LVU616
1799 00f4 02EB0112 add r2, r2, r1, lsl #4
1800 00f8 D2F8BC21 ldr r2, [r2, #444]
1801 .loc 1 1527 16 view .LVU617
1802 00fc C2F30742 ubfx r2, r2, #16, #8
1803 .loc 1 1527 14 view .LVU618
1804 0100 9A71 strb r2, [r3, #6]
1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R
1805 .loc 1 1528 5 is_stmt 1 view .LVU619
1806 .loc 1 1528 49 is_stmt 0 view .LVU620
1807 0102 0268 ldr r2, [r0]
1808 .loc 1 1528 81 view .LVU621
1809 0104 02EB0112 add r2, r2, r1, lsl #4
1810 0108 D2F8BC21 ldr r2, [r2, #444]
1811 .loc 1 1528 16 view .LVU622
1812 010c 120E lsrs r2, r2, #24
1813 .loc 1 1528 14 view .LVU623
1814 010e DA71 strb r2, [r3, #7]
1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Release the FIFO */
1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */
1815 .loc 1 1531 5 is_stmt 1 view .LVU624
1816 .loc 1 1531 8 is_stmt 0 view .LVU625
1817 0110 79B9 cbnz r1, .L135
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Release RX FIFO 0 */
ARM GAS /tmp/ccj1aKCo.s page 82
1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->RF0R, CAN_RF0R_RFOM0);
1818 .loc 1 1534 7 is_stmt 1 view .LVU626
1819 0112 0268 ldr r2, [r0]
1820 0114 D368 ldr r3, [r2, #12]
1821 .LVL132:
1822 .loc 1 1534 7 is_stmt 0 view .LVU627
1823 0116 43F02003 orr r3, r3, #32
1824 011a D360 str r3, [r2, #12]
1825 .L136:
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */
1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Release RX FIFO 1 */
1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** SET_BIT(hcan->Instance->RF1R, CAN_RF1R_RFOM1);
1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
1826 .loc 1 1543 5 is_stmt 1 view .LVU628
1827 .loc 1 1543 12 is_stmt 0 view .LVU629
1828 011c 0020 movs r0, #0
1829 .LVL133:
1830 .L132:
1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1831 .loc 1 1552 1 view .LVU630
1832 011e 30BC pop {r4, r5}
1833 .cfi_remember_state
1834 .cfi_restore 5
1835 .cfi_restore 4
1836 .cfi_def_cfa_offset 0
1837 0120 7047 bx lr
1838 .LVL134:
1839 .L133:
1840 .cfi_restore_state
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1841 .loc 1 1513 7 is_stmt 1 view .LVU631
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1842 .loc 1 1513 95 is_stmt 0 view .LVU632
1843 0122 01F11B04 add r4, r1, #27
1844 0126 2401 lsls r4, r4, #4
1845 0128 0568 ldr r5, [r0]
1846 012a 2C59 ldr r4, [r5, r4]
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1847 .loc 1 1513 101 view .LVU633
1848 012c E408 lsrs r4, r4, #3
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1849 .loc 1 1513 22 view .LVU634
1850 012e 5460 str r4, [r2, #4]
1851 0130 99E7 b .L134
ARM GAS /tmp/ccj1aKCo.s page 83
1852 .LVL135:
1853 .L135:
1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1854 .loc 1 1539 7 is_stmt 1 view .LVU635
1855 0132 0268 ldr r2, [r0]
1856 0134 1369 ldr r3, [r2, #16]
1857 .LVL136:
1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1858 .loc 1 1539 7 is_stmt 0 view .LVU636
1859 0136 43F02003 orr r3, r3, #32
1860 013a 1361 str r3, [r2, #16]
1861 013c EEE7 b .L136
1862 .LVL137:
1863 .L129:
1864 .cfi_def_cfa_offset 0
1865 .cfi_restore 4
1866 .cfi_restore 5
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1867 .loc 1 1548 5 is_stmt 1 view .LVU637
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1868 .loc 1 1548 9 is_stmt 0 view .LVU638
1869 013e 436A ldr r3, [r0, #36]
1870 .LVL138:
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1871 .loc 1 1548 21 view .LVU639
1872 0140 43F48023 orr r3, r3, #262144
1873 0144 4362 str r3, [r0, #36]
1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1874 .loc 1 1550 5 is_stmt 1 view .LVU640
1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1875 .loc 1 1550 12 is_stmt 0 view .LVU641
1876 0146 0120 movs r0, #1
1877 .LVL139:
1878 .loc 1 1552 1 view .LVU642
1879 0148 7047 bx lr
1880 .cfi_endproc
1881 .LFE145:
1883 .section .text.HAL_CAN_GetRxFifoFillLevel,"ax",%progbits
1884 .align 1
1885 .global HAL_CAN_GetRxFifoFillLevel
1886 .syntax unified
1887 .thumb
1888 .thumb_func
1890 HAL_CAN_GetRxFifoFillLevel:
1891 .LVL140:
1892 .LFB146:
1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return Rx FIFO fill level.
1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param RxFifo Rx FIFO.
1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number.
1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval Number of messages available in Rx FIFO.
1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_GetRxFifoFillLevel(CAN_HandleTypeDef *hcan, uint32_t RxFifo)
1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
ARM GAS /tmp/ccj1aKCo.s page 84
1893 .loc 1 1563 1 is_stmt 1 view -0
1894 .cfi_startproc
1895 @ args = 0, pretend = 0, frame = 0
1896 @ frame_needed = 0, uses_anonymous_args = 0
1897 @ link register save eliminated.
1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t filllevel = 0U;
1898 .loc 1 1564 3 view .LVU644
1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1899 .loc 1 1565 3 view .LVU645
1900 .loc 1 1565 24 is_stmt 0 view .LVU646
1901 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1902 .LVL141:
1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */
1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo));
1903 .loc 1 1568 3 is_stmt 1 view .LVU647
1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1904 .loc 1 1570 3 view .LVU648
1905 .loc 1 1570 38 is_stmt 0 view .LVU649
1906 0004 013B subs r3, r3, #1
1907 .LVL142:
1908 .loc 1 1570 38 view .LVU650
1909 0006 DBB2 uxtb r3, r3
1910 .loc 1 1570 6 view .LVU651
1911 0008 012B cmp r3, #1
1912 000a 01D9 bls .L145
1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1913 .loc 1 1564 12 view .LVU652
1914 000c 0020 movs r0, #0
1915 .LVL143:
1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0)
1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** filllevel = hcan->Instance->RF0R & CAN_RF0R_FMP0;
1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else /* RxFifo == CAN_RX_FIFO1 */
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** filllevel = hcan->Instance->RF1R & CAN_RF1R_FMP1;
1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return Rx FIFO fill level */
1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return filllevel;
1916 .loc 1 1584 3 is_stmt 1 view .LVU653
1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1917 .loc 1 1585 1 is_stmt 0 view .LVU654
1918 000e 7047 bx lr
1919 .LVL144:
1920 .L145:
1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1921 .loc 1 1573 5 is_stmt 1 view .LVU655
1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1922 .loc 1 1573 8 is_stmt 0 view .LVU656
1923 0010 21B9 cbnz r1, .L143
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
ARM GAS /tmp/ccj1aKCo.s page 85
1924 .loc 1 1575 7 is_stmt 1 view .LVU657
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1925 .loc 1 1575 23 is_stmt 0 view .LVU658
1926 0012 0368 ldr r3, [r0]
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1927 .loc 1 1575 33 view .LVU659
1928 0014 D868 ldr r0, [r3, #12]
1929 .LVL145:
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1930 .loc 1 1575 17 view .LVU660
1931 0016 00F00300 and r0, r0, #3
1932 .LVL146:
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1933 .loc 1 1575 17 view .LVU661
1934 001a 7047 bx lr
1935 .LVL147:
1936 .L143:
1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1937 .loc 1 1579 7 is_stmt 1 view .LVU662
1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1938 .loc 1 1579 23 is_stmt 0 view .LVU663
1939 001c 0368 ldr r3, [r0]
1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1940 .loc 1 1579 33 view .LVU664
1941 001e 1869 ldr r0, [r3, #16]
1942 .LVL148:
1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1943 .loc 1 1579 17 view .LVU665
1944 0020 00F00300 and r0, r0, #3
1945 .LVL149:
1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1946 .loc 1 1579 17 view .LVU666
1947 0024 7047 bx lr
1948 .cfi_endproc
1949 .LFE146:
1951 .section .text.HAL_CAN_ActivateNotification,"ax",%progbits
1952 .align 1
1953 .global HAL_CAN_ActivateNotification
1954 .syntax unified
1955 .thumb
1956 .thumb_func
1958 HAL_CAN_ActivateNotification:
1959 .LVL150:
1960 .LFB147:
1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @}
1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group4 Interrupts management
1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Interrupts management
1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim
1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Interrupts management #####
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..] This section provides functions allowing to:
ARM GAS /tmp/ccj1aKCo.s page 86
1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_ActivateNotification : Enable interrupts
1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_DeactivateNotification : Disable interrupts
1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_IRQHandler : Handles CAN interrupt request
1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim
1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Enable interrupts.
1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param ActiveITs indicates which interrupts will be enabled.
1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts.
1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ActivateNotification(CAN_HandleTypeDef *hcan, uint32_t ActiveITs)
1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1961 .loc 1 1616 1 is_stmt 1 view -0
1962 .cfi_startproc
1963 @ args = 0, pretend = 0, frame = 0
1964 @ frame_needed = 0, uses_anonymous_args = 0
1965 @ link register save eliminated.
1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1966 .loc 1 1617 3 view .LVU668
1967 .loc 1 1617 24 is_stmt 0 view .LVU669
1968 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1969 .LVL151:
1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */
1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_IT(ActiveITs));
1970 .loc 1 1620 3 is_stmt 1 view .LVU670
1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1971 .loc 1 1622 3 view .LVU671
1972 .loc 1 1622 38 is_stmt 0 view .LVU672
1973 0004 013B subs r3, r3, #1
1974 .LVL152:
1975 .loc 1 1622 38 view .LVU673
1976 0006 DBB2 uxtb r3, r3
1977 .loc 1 1622 6 view .LVU674
1978 0008 012B cmp r3, #1
1979 000a 05D9 bls .L149
1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Enable the selected interrupts */
1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_ENABLE_IT(hcan, ActiveITs);
1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
1980 .loc 1 1634 5 is_stmt 1 view .LVU675
1981 .loc 1 1634 9 is_stmt 0 view .LVU676
ARM GAS /tmp/ccj1aKCo.s page 87
1982 000c 436A ldr r3, [r0, #36]
1983 .loc 1 1634 21 view .LVU677
1984 000e 43F48023 orr r3, r3, #262144
1985 0012 4362 str r3, [r0, #36]
1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
1986 .loc 1 1636 5 is_stmt 1 view .LVU678
1987 .loc 1 1636 12 is_stmt 0 view .LVU679
1988 0014 0120 movs r0, #1
1989 .LVL153:
1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1990 .loc 1 1638 1 view .LVU680
1991 0016 7047 bx lr
1992 .LVL154:
1993 .L149:
1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1994 .loc 1 1626 5 is_stmt 1 view .LVU681
1995 0018 0268 ldr r2, [r0]
1996 001a 5369 ldr r3, [r2, #20]
1997 001c 0B43 orrs r3, r3, r1
1998 001e 5361 str r3, [r2, #20]
1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1999 .loc 1 1629 5 view .LVU682
1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2000 .loc 1 1629 12 is_stmt 0 view .LVU683
2001 0020 0020 movs r0, #0
2002 .LVL155:
1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2003 .loc 1 1629 12 view .LVU684
2004 0022 7047 bx lr
2005 .cfi_endproc
2006 .LFE147:
2008 .section .text.HAL_CAN_DeactivateNotification,"ax",%progbits
2009 .align 1
2010 .global HAL_CAN_DeactivateNotification
2011 .syntax unified
2012 .thumb
2013 .thumb_func
2015 HAL_CAN_DeactivateNotification:
2016 .LVL156:
2017 .LFB148:
1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Disable interrupts.
1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param InactiveITs indicates which interrupts will be disabled.
1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts.
1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeactivateNotification(CAN_HandleTypeDef *hcan, uint32_t InactiveITs)
1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2018 .loc 1 1649 1 is_stmt 1 view -0
2019 .cfi_startproc
2020 @ args = 0, pretend = 0, frame = 0
2021 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccj1aKCo.s page 88
2022 @ link register save eliminated.
1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
2023 .loc 1 1650 3 view .LVU686
2024 .loc 1 1650 24 is_stmt 0 view .LVU687
2025 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
2026 .LVL157:
1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check function parameters */
1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** assert_param(IS_CAN_IT(InactiveITs));
2027 .loc 1 1653 3 is_stmt 1 view .LVU688
1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
2028 .loc 1 1655 3 view .LVU689
2029 .loc 1 1655 38 is_stmt 0 view .LVU690
2030 0004 013B subs r3, r3, #1
2031 .LVL158:
2032 .loc 1 1655 38 view .LVU691
2033 0006 DBB2 uxtb r3, r3
2034 .loc 1 1655 6 view .LVU692
2035 0008 012B cmp r3, #1
2036 000a 05D9 bls .L153
1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Disable the selected interrupts */
1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_DISABLE_IT(hcan, InactiveITs);
1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return function status */
1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_OK;
1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
2037 .loc 1 1667 5 is_stmt 1 view .LVU693
2038 .loc 1 1667 9 is_stmt 0 view .LVU694
2039 000c 436A ldr r3, [r0, #36]
2040 .loc 1 1667 21 view .LVU695
2041 000e 43F48023 orr r3, r3, #262144
2042 0012 4362 str r3, [r0, #36]
1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return HAL_ERROR;
2043 .loc 1 1669 5 is_stmt 1 view .LVU696
2044 .loc 1 1669 12 is_stmt 0 view .LVU697
2045 0014 0120 movs r0, #1
2046 .LVL159:
1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2047 .loc 1 1671 1 view .LVU698
2048 0016 7047 bx lr
2049 .LVL160:
2050 .L153:
1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2051 .loc 1 1659 5 is_stmt 1 view .LVU699
2052 0018 0268 ldr r2, [r0]
2053 001a 5369 ldr r3, [r2, #20]
2054 001c 23EA0103 bic r3, r3, r1
2055 0020 5361 str r3, [r2, #20]
ARM GAS /tmp/ccj1aKCo.s page 89
1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2056 .loc 1 1662 5 view .LVU700
1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2057 .loc 1 1662 12 is_stmt 0 view .LVU701
2058 0022 0020 movs r0, #0
2059 .LVL161:
1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2060 .loc 1 1662 12 view .LVU702
2061 0024 7047 bx lr
2062 .cfi_endproc
2063 .LFE148:
2065 .section .text.HAL_CAN_TxMailbox0CompleteCallback,"ax",%progbits
2066 .align 1
2067 .weak HAL_CAN_TxMailbox0CompleteCallback
2068 .syntax unified
2069 .thumb
2070 .thumb_func
2072 HAL_CAN_TxMailbox0CompleteCallback:
2073 .LVL162:
2074 .LFB150:
1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Handles CAN interrupt request
1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** void HAL_CAN_IRQHandler(CAN_HandleTypeDef *hcan)
1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE;
1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER);
1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR);
1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR);
1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R);
1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R);
1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR);
1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmit Mailbox empty interrupt management *****************************/
1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_TX_MAILBOX_EMPTY) != 0U)
1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmit Mailbox 0 management *****************************************/
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP0) != 0U)
1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK0,ALST0,TERR0 bits) */
1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP0);
1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK0) != 0U)
1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 0 complete callback */
1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0CompleteCallback(hcan);
1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox0CompleteCallback(hcan);
1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
ARM GAS /tmp/ccj1aKCo.s page 90
1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST0) != 0U)
1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST0;
1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR0) != 0U)
1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR0;
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 0 abort callback */
1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox0AbortCallback(hcan);
1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox0AbortCallback(hcan);
1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmit Mailbox 1 management *****************************************/
1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP1) != 0U)
1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK1,ALST1,TERR1 bits) */
1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP1);
1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK1) != 0U)
1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 1 complete callback */
1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1CompleteCallback(hcan);
1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox1CompleteCallback(hcan);
1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST1) != 0U)
1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST1;
1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR1) != 0U)
1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR1;
1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
ARM GAS /tmp/ccj1aKCo.s page 91
1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 1 abort callback */
1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox1AbortCallback(hcan);
1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox1AbortCallback(hcan);
1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmit Mailbox 2 management *****************************************/
1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP2) != 0U)
1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK2,ALST2,TERR2 bits) */
1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP2);
1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK2) != 0U)
1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 2 complete callback */
1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2CompleteCallback(hcan);
1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox2CompleteCallback(hcan);
1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST2) != 0U)
1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST2;
1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR2) != 0U)
1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR2;
1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Transmission Mailbox 2 abort callback */
1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->TxMailbox2AbortCallback(hcan);
1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_TxMailbox2AbortCallback(hcan);
1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 overrun interrupt management *****************************/
ARM GAS /tmp/ccj1aKCo.s page 92
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_OVERRUN) != 0U)
1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FOVR0) != 0U)
1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Rx Fifo 0 overrun error */
1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV0;
1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear FIFO0 Overrun Flag */
1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV0);
1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 full interrupt management ********************************/
1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_FULL) != 0U)
1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FULL0) != 0U)
1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear FIFO 0 full Flag */
1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF0);
1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 full Callback */
1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0FullCallback(hcan);
1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFifo0FullCallback(hcan);
1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 message pending interrupt management *********************/
1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_MSG_PENDING) != 0U)
1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check if message is still pending */
1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) != 0U)
1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 0 message pending Callback */
1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback(hcan);
1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFifo0MsgPendingCallback(hcan);
1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 overrun interrupt management *****************************/
1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_OVERRUN) != 0U)
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FOVR1) != 0U)
1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Rx Fifo 1 overrun error */
1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV1;
1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear FIFO1 Overrun Flag */
ARM GAS /tmp/ccj1aKCo.s page 93
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV1);
1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 full interrupt management ********************************/
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_FULL) != 0U)
1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FULL1) != 0U)
1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear FIFO 1 full Flag */
1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF1);
1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 full Callback */
1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1FullCallback(hcan);
1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFifo1FullCallback(hcan);
1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 message pending interrupt management *********************/
1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_MSG_PENDING) != 0U)
1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check if message is still pending */
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) != 0U)
1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Receive FIFO 1 message pending Callback */
1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback(hcan);
1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_RxFifo1MsgPendingCallback(hcan);
1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Sleep interrupt management *********************************************/
1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_SLEEP_ACK) != 0U)
1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((msrflags & CAN_MSR_SLAKI) != 0U)
1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear Sleep interrupt Flag */
1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_SLAKI);
1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Sleep Callback */
1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->SleepCallback(hcan);
1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_SleepCallback(hcan);
1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
ARM GAS /tmp/ccj1aKCo.s page 94
1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* WakeUp interrupt management *********************************************/
1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_WAKEUP) != 0U)
1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((msrflags & CAN_MSR_WKUI) != 0U)
1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear WakeUp Flag */
1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_WKU);
1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* WakeUp Callback */
1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback(hcan);
1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_WakeUpFromRxMsgCallback(hcan);
1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Error interrupts management *********************************************/
1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((interrupts & CAN_IT_ERROR) != 0U)
1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((msrflags & CAN_MSR_ERRI) != 0U)
1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Error Warning Flag */
1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_WARNING) != 0U) &&
1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U))
1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Error Warning */
1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EWG;
1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* No need for clear of Error Warning Flag as read-only */
1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Error Passive Flag */
1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_PASSIVE) != 0U) &&
1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U))
1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Error Passive */
1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EPV;
1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* No need for clear of Error Passive Flag as read-only */
1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Bus-off Flag */
1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((interrupts & CAN_IT_BUSOFF) != 0U) &&
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U))
1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Bus-Off */
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BOF;
1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* No need for clear of Error Bus-Off as read-only */
1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check Last Error Code Flag */
ARM GAS /tmp/ccj1aKCo.s page 95
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (((interrupts & CAN_IT_LAST_ERROR_CODE) != 0U) &&
1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** switch (esrflags & CAN_ESR_LEC)
1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_0):
2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Stuff error */
2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_STF;
2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1):
2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Form error */
2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_FOR;
2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0):
2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Acknowledgement error */
2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_ACK;
2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2):
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Bit recessive error */
2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BR;
2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0):
2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to Bit Dominant error */
2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BD;
2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1):
2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Set CAN error code to CRC error */
2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_CRC;
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default:
2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear Last error code Flag */
2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** CLEAR_BIT(hcan->Instance->ESR, CAN_ESR_LEC);
2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Clear ERRI Flag */
2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_ERRI);
2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call the Error call Back in case of Errors */
2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if (errorcode != HAL_CAN_ERROR_NONE)
2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code in handle */
2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= errorcode;
2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call Error callback function */
2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call registered callback*/
2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCallback(hcan);
2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #else
2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Call weak (surcharged) callback */
2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_ErrorCallback(hcan);
2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
ARM GAS /tmp/ccj1aKCo.s page 96
2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @}
2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group5 Callback functions
2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief CAN Callback functions
2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim
2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Callback functions #####
2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..]
2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** This subsection provides the following callback functions:
2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox0CompleteCallback
2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox1CompleteCallback
2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox2CompleteCallback
2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox0AbortCallback
2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox1AbortCallback
2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_TxMailbox2AbortCallback
2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RxFifo0MsgPendingCallback
2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RxFifo0FullCallback
2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RxFifo1MsgPendingCallback
2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_RxFifo1FullCallback
2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_SleepCallback
2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_WakeUpFromRxMsgCallback
2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_ErrorCallback
2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim
2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 0 complete callback.
2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan)
2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2075 .loc 1 2091 1 is_stmt 1 view -0
2076 .cfi_startproc
2077 @ args = 0, pretend = 0, frame = 0
2078 @ frame_needed = 0, uses_anonymous_args = 0
2079 @ link register save eliminated.
2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2080 .loc 1 2093 3 view .LVU704
2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox0CompleteCallback could be implemented in the
2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file
2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2081 .loc 1 2099 1 is_stmt 0 view .LVU705
2082 0000 7047 bx lr
ARM GAS /tmp/ccj1aKCo.s page 97
2083 .cfi_endproc
2084 .LFE150:
2086 .section .text.HAL_CAN_TxMailbox1CompleteCallback,"ax",%progbits
2087 .align 1
2088 .weak HAL_CAN_TxMailbox1CompleteCallback
2089 .syntax unified
2090 .thumb
2091 .thumb_func
2093 HAL_CAN_TxMailbox1CompleteCallback:
2094 .LVL163:
2095 .LFB151:
2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 1 complete callback.
2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan)
2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2096 .loc 1 2108 1 is_stmt 1 view -0
2097 .cfi_startproc
2098 @ args = 0, pretend = 0, frame = 0
2099 @ frame_needed = 0, uses_anonymous_args = 0
2100 @ link register save eliminated.
2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2101 .loc 1 2110 3 view .LVU707
2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox1CompleteCallback could be implemented in the
2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file
2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2102 .loc 1 2116 1 is_stmt 0 view .LVU708
2103 0000 7047 bx lr
2104 .cfi_endproc
2105 .LFE151:
2107 .section .text.HAL_CAN_TxMailbox2CompleteCallback,"ax",%progbits
2108 .align 1
2109 .weak HAL_CAN_TxMailbox2CompleteCallback
2110 .syntax unified
2111 .thumb
2112 .thumb_func
2114 HAL_CAN_TxMailbox2CompleteCallback:
2115 .LVL164:
2116 .LFB152:
2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 2 complete callback.
2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan)
2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2117 .loc 1 2125 1 is_stmt 1 view -0
ARM GAS /tmp/ccj1aKCo.s page 98
2118 .cfi_startproc
2119 @ args = 0, pretend = 0, frame = 0
2120 @ frame_needed = 0, uses_anonymous_args = 0
2121 @ link register save eliminated.
2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2122 .loc 1 2127 3 view .LVU710
2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox2CompleteCallback could be implemented in the
2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file
2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2123 .loc 1 2133 1 is_stmt 0 view .LVU711
2124 0000 7047 bx lr
2125 .cfi_endproc
2126 .LFE152:
2128 .section .text.HAL_CAN_TxMailbox0AbortCallback,"ax",%progbits
2129 .align 1
2130 .weak HAL_CAN_TxMailbox0AbortCallback
2131 .syntax unified
2132 .thumb
2133 .thumb_func
2135 HAL_CAN_TxMailbox0AbortCallback:
2136 .LVL165:
2137 .LFB153:
2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 0 Cancellation callback.
2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0AbortCallback(CAN_HandleTypeDef *hcan)
2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2138 .loc 1 2142 1 is_stmt 1 view -0
2139 .cfi_startproc
2140 @ args = 0, pretend = 0, frame = 0
2141 @ frame_needed = 0, uses_anonymous_args = 0
2142 @ link register save eliminated.
2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2143 .loc 1 2144 3 view .LVU713
2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox0AbortCallback could be implemented in the
2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file
2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2144 .loc 1 2150 1 is_stmt 0 view .LVU714
2145 0000 7047 bx lr
2146 .cfi_endproc
2147 .LFE153:
2149 .section .text.HAL_CAN_TxMailbox1AbortCallback,"ax",%progbits
2150 .align 1
2151 .weak HAL_CAN_TxMailbox1AbortCallback
2152 .syntax unified
ARM GAS /tmp/ccj1aKCo.s page 99
2153 .thumb
2154 .thumb_func
2156 HAL_CAN_TxMailbox1AbortCallback:
2157 .LVL166:
2158 .LFB154:
2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 1 Cancellation callback.
2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1AbortCallback(CAN_HandleTypeDef *hcan)
2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2159 .loc 1 2159 1 is_stmt 1 view -0
2160 .cfi_startproc
2161 @ args = 0, pretend = 0, frame = 0
2162 @ frame_needed = 0, uses_anonymous_args = 0
2163 @ link register save eliminated.
2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2164 .loc 1 2161 3 view .LVU716
2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox1AbortCallback could be implemented in the
2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file
2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2165 .loc 1 2167 1 is_stmt 0 view .LVU717
2166 0000 7047 bx lr
2167 .cfi_endproc
2168 .LFE154:
2170 .section .text.HAL_CAN_TxMailbox2AbortCallback,"ax",%progbits
2171 .align 1
2172 .weak HAL_CAN_TxMailbox2AbortCallback
2173 .syntax unified
2174 .thumb
2175 .thumb_func
2177 HAL_CAN_TxMailbox2AbortCallback:
2178 .LVL167:
2179 .LFB155:
2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Transmission Mailbox 2 Cancellation callback.
2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2AbortCallback(CAN_HandleTypeDef *hcan)
2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2180 .loc 1 2176 1 is_stmt 1 view -0
2181 .cfi_startproc
2182 @ args = 0, pretend = 0, frame = 0
2183 @ frame_needed = 0, uses_anonymous_args = 0
2184 @ link register save eliminated.
2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
ARM GAS /tmp/ccj1aKCo.s page 100
2185 .loc 1 2178 3 view .LVU719
2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_TxMailbox2AbortCallback could be implemented in the
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file
2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2186 .loc 1 2184 1 is_stmt 0 view .LVU720
2187 0000 7047 bx lr
2188 .cfi_endproc
2189 .LFE155:
2191 .section .text.HAL_CAN_RxFifo0MsgPendingCallback,"ax",%progbits
2192 .align 1
2193 .weak HAL_CAN_RxFifo0MsgPendingCallback
2194 .syntax unified
2195 .thumb
2196 .thumb_func
2198 HAL_CAN_RxFifo0MsgPendingCallback:
2199 .LVL168:
2200 .LFB156:
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Rx FIFO 0 message pending callback.
2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)
2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2201 .loc 1 2193 1 is_stmt 1 view -0
2202 .cfi_startproc
2203 @ args = 0, pretend = 0, frame = 0
2204 @ frame_needed = 0, uses_anonymous_args = 0
2205 @ link register save eliminated.
2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2206 .loc 1 2195 3 view .LVU722
2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_RxFifo0MsgPendingCallback could be implemented in the
2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file
2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2207 .loc 1 2201 1 is_stmt 0 view .LVU723
2208 0000 7047 bx lr
2209 .cfi_endproc
2210 .LFE156:
2212 .section .text.HAL_CAN_RxFifo0FullCallback,"ax",%progbits
2213 .align 1
2214 .weak HAL_CAN_RxFifo0FullCallback
2215 .syntax unified
2216 .thumb
2217 .thumb_func
2219 HAL_CAN_RxFifo0FullCallback:
2220 .LVL169:
2221 .LFB157:
2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
ARM GAS /tmp/ccj1aKCo.s page 101
2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Rx FIFO 0 full callback.
2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_RxFifo0FullCallback(CAN_HandleTypeDef *hcan)
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2222 .loc 1 2210 1 is_stmt 1 view -0
2223 .cfi_startproc
2224 @ args = 0, pretend = 0, frame = 0
2225 @ frame_needed = 0, uses_anonymous_args = 0
2226 @ link register save eliminated.
2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2227 .loc 1 2212 3 view .LVU725
2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_RxFifo0FullCallback could be implemented in the user
2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** file
2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2228 .loc 1 2218 1 is_stmt 0 view .LVU726
2229 0000 7047 bx lr
2230 .cfi_endproc
2231 .LFE157:
2233 .section .text.HAL_CAN_RxFifo1MsgPendingCallback,"ax",%progbits
2234 .align 1
2235 .weak HAL_CAN_RxFifo1MsgPendingCallback
2236 .syntax unified
2237 .thumb
2238 .thumb_func
2240 HAL_CAN_RxFifo1MsgPendingCallback:
2241 .LVL170:
2242 .LFB158:
2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Rx FIFO 1 message pending callback.
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan)
2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2243 .loc 1 2227 1 is_stmt 1 view -0
2244 .cfi_startproc
2245 @ args = 0, pretend = 0, frame = 0
2246 @ frame_needed = 0, uses_anonymous_args = 0
2247 @ link register save eliminated.
2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2248 .loc 1 2229 3 view .LVU728
2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_RxFifo1MsgPendingCallback could be implemented in the
2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file
2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
ARM GAS /tmp/ccj1aKCo.s page 102
2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2249 .loc 1 2235 1 is_stmt 0 view .LVU729
2250 0000 7047 bx lr
2251 .cfi_endproc
2252 .LFE158:
2254 .section .text.HAL_CAN_RxFifo1FullCallback,"ax",%progbits
2255 .align 1
2256 .weak HAL_CAN_RxFifo1FullCallback
2257 .syntax unified
2258 .thumb
2259 .thumb_func
2261 HAL_CAN_RxFifo1FullCallback:
2262 .LVL171:
2263 .LFB159:
2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Rx FIFO 1 full callback.
2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_RxFifo1FullCallback(CAN_HandleTypeDef *hcan)
2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2264 .loc 1 2244 1 is_stmt 1 view -0
2265 .cfi_startproc
2266 @ args = 0, pretend = 0, frame = 0
2267 @ frame_needed = 0, uses_anonymous_args = 0
2268 @ link register save eliminated.
2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2269 .loc 1 2246 3 view .LVU731
2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_RxFifo1FullCallback could be implemented in the user
2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** file
2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2270 .loc 1 2252 1 is_stmt 0 view .LVU732
2271 0000 7047 bx lr
2272 .cfi_endproc
2273 .LFE159:
2275 .section .text.HAL_CAN_SleepCallback,"ax",%progbits
2276 .align 1
2277 .weak HAL_CAN_SleepCallback
2278 .syntax unified
2279 .thumb
2280 .thumb_func
2282 HAL_CAN_SleepCallback:
2283 .LVL172:
2284 .LFB160:
2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Sleep callback.
2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
ARM GAS /tmp/ccj1aKCo.s page 103
2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_SleepCallback(CAN_HandleTypeDef *hcan)
2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2285 .loc 1 2261 1 is_stmt 1 view -0
2286 .cfi_startproc
2287 @ args = 0, pretend = 0, frame = 0
2288 @ frame_needed = 0, uses_anonymous_args = 0
2289 @ link register save eliminated.
2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2290 .loc 1 2263 3 view .LVU734
2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_SleepCallback could be implemented in the user file
2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2291 .loc 1 2268 1 is_stmt 0 view .LVU735
2292 0000 7047 bx lr
2293 .cfi_endproc
2294 .LFE160:
2296 .section .text.HAL_CAN_WakeUpFromRxMsgCallback,"ax",%progbits
2297 .align 1
2298 .weak HAL_CAN_WakeUpFromRxMsgCallback
2299 .syntax unified
2300 .thumb
2301 .thumb_func
2303 HAL_CAN_WakeUpFromRxMsgCallback:
2304 .LVL173:
2305 .LFB161:
2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief WakeUp from Rx message callback.
2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_WakeUpFromRxMsgCallback(CAN_HandleTypeDef *hcan)
2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2306 .loc 1 2277 1 is_stmt 1 view -0
2307 .cfi_startproc
2308 @ args = 0, pretend = 0, frame = 0
2309 @ frame_needed = 0, uses_anonymous_args = 0
2310 @ link register save eliminated.
2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2311 .loc 1 2279 3 view .LVU737
2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_WakeUpFromRxMsgCallback could be implemented in the
2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** user file
2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2312 .loc 1 2285 1 is_stmt 0 view .LVU738
2313 0000 7047 bx lr
2314 .cfi_endproc
2315 .LFE161:
2317 .section .text.HAL_CAN_ErrorCallback,"ax",%progbits
2318 .align 1
ARM GAS /tmp/ccj1aKCo.s page 104
2319 .weak HAL_CAN_ErrorCallback
2320 .syntax unified
2321 .thumb
2322 .thumb_func
2324 HAL_CAN_ErrorCallback:
2325 .LVL174:
2326 .LFB162:
2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Error CAN callback.
2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval None
2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** __weak void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan)
2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2327 .loc 1 2294 1 is_stmt 1 view -0
2328 .cfi_startproc
2329 @ args = 0, pretend = 0, frame = 0
2330 @ frame_needed = 0, uses_anonymous_args = 0
2331 @ link register save eliminated.
2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** UNUSED(hcan);
2332 .loc 1 2296 3 view .LVU740
2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** the HAL_CAN_ErrorCallback could be implemented in the user file
2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2333 .loc 1 2301 1 is_stmt 0 view .LVU741
2334 0000 7047 bx lr
2335 .cfi_endproc
2336 .LFE162:
2338 .section .text.HAL_CAN_IRQHandler,"ax",%progbits
2339 .align 1
2340 .global HAL_CAN_IRQHandler
2341 .syntax unified
2342 .thumb
2343 .thumb_func
2345 HAL_CAN_IRQHandler:
2346 .LVL175:
2347 .LFB149:
1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE;
2348 .loc 1 1680 1 is_stmt 1 view -0
2349 .cfi_startproc
2350 @ args = 0, pretend = 0, frame = 0
2351 @ frame_needed = 0, uses_anonymous_args = 0
1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE;
2352 .loc 1 1680 1 is_stmt 0 view .LVU743
2353 0000 2DE9F84F push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
2354 .cfi_def_cfa_offset 40
2355 .cfi_offset 3, -40
2356 .cfi_offset 4, -36
2357 .cfi_offset 5, -32
2358 .cfi_offset 6, -28
2359 .cfi_offset 7, -24
2360 .cfi_offset 8, -20
ARM GAS /tmp/ccj1aKCo.s page 105
2361 .cfi_offset 9, -16
2362 .cfi_offset 10, -12
2363 .cfi_offset 11, -8
2364 .cfi_offset 14, -4
2365 0004 0546 mov r5, r0
1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER);
2366 .loc 1 1681 3 is_stmt 1 view .LVU744
2367 .LVL176:
1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR);
2368 .loc 1 1682 3 view .LVU745
1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR);
2369 .loc 1 1682 25 is_stmt 0 view .LVU746
2370 0006 0368 ldr r3, [r0]
1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR);
2371 .loc 1 1682 12 view .LVU747
2372 0008 5C69 ldr r4, [r3, #20]
2373 .LVL177:
1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR);
2374 .loc 1 1683 3 is_stmt 1 view .LVU748
1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR);
2375 .loc 1 1683 12 is_stmt 0 view .LVU749
2376 000a D3F80480 ldr r8, [r3, #4]
2377 .LVL178:
1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R);
2378 .loc 1 1684 3 is_stmt 1 view .LVU750
1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R);
2379 .loc 1 1684 12 is_stmt 0 view .LVU751
2380 000e 9F68 ldr r7, [r3, #8]
2381 .LVL179:
1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R);
2382 .loc 1 1685 3 is_stmt 1 view .LVU752
1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R);
2383 .loc 1 1685 12 is_stmt 0 view .LVU753
2384 0010 D3F80CB0 ldr fp, [r3, #12]
2385 .LVL180:
1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR);
2386 .loc 1 1686 3 is_stmt 1 view .LVU754
1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR);
2387 .loc 1 1686 12 is_stmt 0 view .LVU755
2388 0014 D3F810A0 ldr r10, [r3, #16]
2389 .LVL181:
1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2390 .loc 1 1687 3 is_stmt 1 view .LVU756
1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2391 .loc 1 1687 12 is_stmt 0 view .LVU757
2392 0018 D3F81890 ldr r9, [r3, #24]
2393 .LVL182:
1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2394 .loc 1 1690 3 is_stmt 1 view .LVU758
1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2395 .loc 1 1690 6 is_stmt 0 view .LVU759
2396 001c 14F00106 ands r6, r4, #1
2397 0020 3BD0 beq .L168
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2398 .loc 1 1693 5 is_stmt 1 view .LVU760
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2399 .loc 1 1693 8 is_stmt 0 view .LVU761
ARM GAS /tmp/ccj1aKCo.s page 106
2400 0022 17F00106 ands r6, r7, #1
2401 0026 16D0 beq .L169
1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2402 .loc 1 1696 7 is_stmt 1 view .LVU762
2403 0028 0122 movs r2, #1
2404 002a 9A60 str r2, [r3, #8]
1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2405 .loc 1 1698 7 view .LVU763
1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2406 .loc 1 1698 10 is_stmt 0 view .LVU764
2407 002c 17F0020F tst r7, #2
2408 0030 08D1 bne .L203
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2409 .loc 1 1711 9 is_stmt 1 view .LVU765
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2410 .loc 1 1711 12 is_stmt 0 view .LVU766
2411 0032 17F0040F tst r7, #4
2412 0036 0CD1 bne .L200
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2413 .loc 1 1716 14 is_stmt 1 view .LVU767
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2414 .loc 1 1716 17 is_stmt 0 view .LVU768
2415 0038 17F00806 ands r6, r7, #8
2416 003c 06D0 beq .L204
1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2417 .loc 1 1719 21 view .LVU769
2418 003e 4FF48056 mov r6, #4096
2419 0042 08E0 b .L169
2420 .L203:
1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2421 .loc 1 1706 9 is_stmt 1 view .LVU770
2422 0044 FFF7FEFF bl HAL_CAN_TxMailbox0CompleteCallback
2423 .LVL183:
1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER);
2424 .loc 1 1681 12 is_stmt 0 view .LVU771
2425 0048 0026 movs r6, #0
2426 004a 04E0 b .L169
2427 .LVL184:
2428 .L204:
1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2429 .loc 1 1729 11 is_stmt 1 view .LVU772
2430 004c FFF7FEFF bl HAL_CAN_TxMailbox0AbortCallback
2431 .LVL185:
1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2432 .loc 1 1729 11 is_stmt 0 view .LVU773
2433 0050 01E0 b .L169
2434 .LVL186:
2435 .L200:
1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2436 .loc 1 1714 21 view .LVU774
2437 0052 4FF40066 mov r6, #2048
2438 .LVL187:
2439 .L169:
1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2440 .loc 1 1736 5 is_stmt 1 view .LVU775
1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2441 .loc 1 1736 8 is_stmt 0 view .LVU776
ARM GAS /tmp/ccj1aKCo.s page 107
2442 0056 17F4807F tst r7, #256
2443 005a 0DD0 beq .L171
1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2444 .loc 1 1739 7 is_stmt 1 view .LVU777
2445 005c 2B68 ldr r3, [r5]
2446 005e 4FF48072 mov r2, #256
2447 0062 9A60 str r2, [r3, #8]
1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2448 .loc 1 1741 7 view .LVU778
1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2449 .loc 1 1741 10 is_stmt 0 view .LVU779
2450 0064 17F4007F tst r7, #512
2451 0068 40F08680 bne .L205
1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2452 .loc 1 1754 9 is_stmt 1 view .LVU780
1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2453 .loc 1 1754 12 is_stmt 0 view .LVU781
2454 006c 17F4806F tst r7, #1024
2455 0070 00F08680 beq .L173
1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2456 .loc 1 1757 11 is_stmt 1 view .LVU782
1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2457 .loc 1 1757 21 is_stmt 0 view .LVU783
2458 0074 46F40056 orr r6, r6, #8192
2459 .LVL188:
2460 .L171:
1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2461 .loc 1 1779 5 is_stmt 1 view .LVU784
1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2462 .loc 1 1779 8 is_stmt 0 view .LVU785
2463 0078 17F4803F tst r7, #65536
2464 007c 0DD0 beq .L168
1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2465 .loc 1 1782 7 is_stmt 1 view .LVU786
2466 007e 2B68 ldr r3, [r5]
2467 0080 4FF48032 mov r2, #65536
2468 0084 9A60 str r2, [r3, #8]
1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2469 .loc 1 1784 7 view .LVU787
1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2470 .loc 1 1784 10 is_stmt 0 view .LVU788
2471 0086 17F4003F tst r7, #131072
2472 008a 40F08380 bne .L206
1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2473 .loc 1 1797 9 is_stmt 1 view .LVU789
1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2474 .loc 1 1797 12 is_stmt 0 view .LVU790
2475 008e 17F4802F tst r7, #262144
2476 0092 00F08380 beq .L176
1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2477 .loc 1 1800 11 is_stmt 1 view .LVU791
1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2478 .loc 1 1800 21 is_stmt 0 view .LVU792
2479 0096 46F40046 orr r6, r6, #32768
2480 .LVL189:
2481 .L168:
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
ARM GAS /tmp/ccj1aKCo.s page 108
2482 .loc 1 1823 3 is_stmt 1 view .LVU793
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2483 .loc 1 1823 6 is_stmt 0 view .LVU794
2484 009a 14F0080F tst r4, #8
2485 009e 07D0 beq .L178
1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2486 .loc 1 1825 5 is_stmt 1 view .LVU795
1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2487 .loc 1 1825 8 is_stmt 0 view .LVU796
2488 00a0 1BF0100F tst fp, #16
2489 00a4 04D0 beq .L178
1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2490 .loc 1 1828 7 is_stmt 1 view .LVU797
1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2491 .loc 1 1828 17 is_stmt 0 view .LVU798
2492 00a6 46F40076 orr r6, r6, #512
2493 .LVL190:
1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2494 .loc 1 1831 7 is_stmt 1 view .LVU799
2495 00aa 2B68 ldr r3, [r5]
2496 00ac 1022 movs r2, #16
2497 00ae DA60 str r2, [r3, #12]
2498 .L178:
1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2499 .loc 1 1836 3 view .LVU800
1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2500 .loc 1 1836 6 is_stmt 0 view .LVU801
2501 00b0 14F0040F tst r4, #4
2502 00b4 02D0 beq .L179
1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2503 .loc 1 1838 5 is_stmt 1 view .LVU802
1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2504 .loc 1 1838 8 is_stmt 0 view .LVU803
2505 00b6 1BF0080F tst fp, #8
2506 00ba 79D1 bne .L207
2507 .L179:
1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2508 .loc 1 1855 3 is_stmt 1 view .LVU804
1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2509 .loc 1 1855 6 is_stmt 0 view .LVU805
2510 00bc 14F0020F tst r4, #2
2511 00c0 04D0 beq .L180
1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2512 .loc 1 1858 5 is_stmt 1 view .LVU806
1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2513 .loc 1 1858 14 is_stmt 0 view .LVU807
2514 00c2 2B68 ldr r3, [r5]
1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2515 .loc 1 1858 24 view .LVU808
2516 00c4 DB68 ldr r3, [r3, #12]
1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2517 .loc 1 1858 8 view .LVU809
2518 00c6 13F0030F tst r3, #3
2519 00ca 78D1 bne .L208
2520 .L180:
1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2521 .loc 1 1872 3 is_stmt 1 view .LVU810
ARM GAS /tmp/ccj1aKCo.s page 109
1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2522 .loc 1 1872 6 is_stmt 0 view .LVU811
2523 00cc 14F0400F tst r4, #64
2524 00d0 07D0 beq .L181
1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2525 .loc 1 1874 5 is_stmt 1 view .LVU812
1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2526 .loc 1 1874 8 is_stmt 0 view .LVU813
2527 00d2 1AF0100F tst r10, #16
2528 00d6 04D0 beq .L181
1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2529 .loc 1 1877 7 is_stmt 1 view .LVU814
1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2530 .loc 1 1877 17 is_stmt 0 view .LVU815
2531 00d8 46F48066 orr r6, r6, #1024
2532 .LVL191:
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2533 .loc 1 1880 7 is_stmt 1 view .LVU816
2534 00dc 2B68 ldr r3, [r5]
2535 00de 1022 movs r2, #16
2536 00e0 1A61 str r2, [r3, #16]
2537 .L181:
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2538 .loc 1 1885 3 view .LVU817
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2539 .loc 1 1885 6 is_stmt 0 view .LVU818
2540 00e2 14F0200F tst r4, #32
2541 00e6 02D0 beq .L182
1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2542 .loc 1 1887 5 is_stmt 1 view .LVU819
1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2543 .loc 1 1887 8 is_stmt 0 view .LVU820
2544 00e8 1AF0080F tst r10, #8
2545 00ec 6BD1 bne .L209
2546 .L182:
1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2547 .loc 1 1904 3 is_stmt 1 view .LVU821
1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2548 .loc 1 1904 6 is_stmt 0 view .LVU822
2549 00ee 14F0100F tst r4, #16
2550 00f2 04D0 beq .L183
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2551 .loc 1 1907 5 is_stmt 1 view .LVU823
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2552 .loc 1 1907 14 is_stmt 0 view .LVU824
2553 00f4 2B68 ldr r3, [r5]
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2554 .loc 1 1907 24 view .LVU825
2555 00f6 1B69 ldr r3, [r3, #16]
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2556 .loc 1 1907 8 view .LVU826
2557 00f8 13F0030F tst r3, #3
2558 00fc 6AD1 bne .L210
2559 .L183:
1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2560 .loc 1 1921 3 is_stmt 1 view .LVU827
1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
ARM GAS /tmp/ccj1aKCo.s page 110
2561 .loc 1 1921 6 is_stmt 0 view .LVU828
2562 00fe 14F4003F tst r4, #131072
2563 0102 02D0 beq .L184
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2564 .loc 1 1923 5 is_stmt 1 view .LVU829
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2565 .loc 1 1923 8 is_stmt 0 view .LVU830
2566 0104 18F0100F tst r8, #16
2567 0108 68D1 bne .L211
2568 .L184:
1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2569 .loc 1 1940 3 is_stmt 1 view .LVU831
1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2570 .loc 1 1940 6 is_stmt 0 view .LVU832
2571 010a 14F4803F tst r4, #65536
2572 010e 02D0 beq .L185
1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2573 .loc 1 1942 5 is_stmt 1 view .LVU833
1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2574 .loc 1 1942 8 is_stmt 0 view .LVU834
2575 0110 18F0080F tst r8, #8
2576 0114 69D1 bne .L212
2577 .L185:
1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2578 .loc 1 1959 3 is_stmt 1 view .LVU835
1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2579 .loc 1 1959 6 is_stmt 0 view .LVU836
2580 0116 14F4004F tst r4, #32768
2581 011a 7AD0 beq .L186
1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2582 .loc 1 1961 5 is_stmt 1 view .LVU837
1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2583 .loc 1 1961 8 is_stmt 0 view .LVU838
2584 011c 18F0040F tst r8, #4
2585 0120 74D0 beq .L187
1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U))
2586 .loc 1 1964 7 is_stmt 1 view .LVU839
1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U))
2587 .loc 1 1964 10 is_stmt 0 view .LVU840
2588 0122 14F4807F tst r4, #256
2589 0126 04D0 beq .L188
1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U))
2590 .loc 1 1964 55 discriminator 1 view .LVU841
2591 0128 19F0010F tst r9, #1
2592 012c 01D0 beq .L188
1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2593 .loc 1 1968 9 is_stmt 1 view .LVU842
1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2594 .loc 1 1968 19 is_stmt 0 view .LVU843
2595 012e 46F00106 orr r6, r6, #1
2596 .LVL192:
2597 .L188:
1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U))
2598 .loc 1 1974 7 is_stmt 1 view .LVU844
1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U))
2599 .loc 1 1974 10 is_stmt 0 view .LVU845
2600 0132 14F4007F tst r4, #512
ARM GAS /tmp/ccj1aKCo.s page 111
2601 0136 04D0 beq .L189
1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U))
2602 .loc 1 1974 55 discriminator 1 view .LVU846
2603 0138 19F0020F tst r9, #2
2604 013c 01D0 beq .L189
1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2605 .loc 1 1978 9 is_stmt 1 view .LVU847
1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2606 .loc 1 1978 19 is_stmt 0 view .LVU848
2607 013e 46F00206 orr r6, r6, #2
2608 .LVL193:
2609 .L189:
1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U))
2610 .loc 1 1984 7 is_stmt 1 view .LVU849
1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U))
2611 .loc 1 1984 10 is_stmt 0 view .LVU850
2612 0142 14F4806F tst r4, #1024
2613 0146 04D0 beq .L190
1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U))
2614 .loc 1 1984 48 discriminator 1 view .LVU851
2615 0148 19F0040F tst r9, #4
2616 014c 01D0 beq .L190
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2617 .loc 1 1988 9 is_stmt 1 view .LVU852
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2618 .loc 1 1988 19 is_stmt 0 view .LVU853
2619 014e 46F00406 orr r6, r6, #4
2620 .LVL194:
2621 .L190:
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
2622 .loc 1 1994 7 is_stmt 1 view .LVU854
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
2623 .loc 1 1994 10 is_stmt 0 view .LVU855
2624 0152 14F4006F tst r4, #2048
2625 0156 59D0 beq .L187
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
2626 .loc 1 1994 57 discriminator 1 view .LVU856
2627 0158 19F07009 ands r9, r9, #112
2628 .LVL195:
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
2629 .loc 1 1994 57 discriminator 1 view .LVU857
2630 015c 56D0 beq .L187
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2631 .loc 1 1997 9 is_stmt 1 view .LVU858
2632 015e B9F1400F cmp r9, #64
2633 0162 65D0 beq .L191
2634 0164 58D8 bhi .L192
2635 0166 B9F1200F cmp r9, #32
2636 016a 5ED0 beq .L193
2637 016c B9F1300F cmp r9, #48
2638 0170 42D1 bne .L213
2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2639 .loc 1 2009 13 view .LVU859
2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2640 .loc 1 2009 23 is_stmt 0 view .LVU860
2641 0172 46F02006 orr r6, r6, #32
2642 .LVL196:
ARM GAS /tmp/ccj1aKCo.s page 112
2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2):
2643 .loc 1 2010 13 is_stmt 1 view .LVU861
2644 0176 44E0 b .L196
2645 .LVL197:
2646 .L205:
1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2647 .loc 1 1749 9 view .LVU862
2648 0178 2846 mov r0, r5
2649 017a FFF7FEFF bl HAL_CAN_TxMailbox1CompleteCallback
2650 .LVL198:
2651 017e 7BE7 b .L171
2652 .L173:
1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2653 .loc 1 1759 14 view .LVU863
1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2654 .loc 1 1759 17 is_stmt 0 view .LVU864
2655 0180 17F4006F tst r7, #2048
2656 0184 02D0 beq .L174
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2657 .loc 1 1762 11 is_stmt 1 view .LVU865
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2658 .loc 1 1762 21 is_stmt 0 view .LVU866
2659 0186 46F48046 orr r6, r6, #16384
2660 .LVL199:
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2661 .loc 1 1762 21 view .LVU867
2662 018a 75E7 b .L171
2663 .L174:
1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2664 .loc 1 1772 11 is_stmt 1 view .LVU868
2665 018c 2846 mov r0, r5
2666 018e FFF7FEFF bl HAL_CAN_TxMailbox1AbortCallback
2667 .LVL200:
2668 0192 71E7 b .L171
2669 .L206:
1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2670 .loc 1 1792 9 view .LVU869
2671 0194 2846 mov r0, r5
2672 0196 FFF7FEFF bl HAL_CAN_TxMailbox2CompleteCallback
2673 .LVL201:
2674 019a 7EE7 b .L168
2675 .L176:
1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2676 .loc 1 1802 14 view .LVU870
1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2677 .loc 1 1802 17 is_stmt 0 view .LVU871
2678 019c 17F4002F tst r7, #524288
2679 01a0 02D0 beq .L177
1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2680 .loc 1 1805 11 is_stmt 1 view .LVU872
1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2681 .loc 1 1805 21 is_stmt 0 view .LVU873
2682 01a2 46F48036 orr r6, r6, #65536
2683 .LVL202:
1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2684 .loc 1 1805 21 view .LVU874
2685 01a6 78E7 b .L168
ARM GAS /tmp/ccj1aKCo.s page 113
2686 .L177:
1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2687 .loc 1 1815 11 is_stmt 1 view .LVU875
2688 01a8 2846 mov r0, r5
2689 01aa FFF7FEFF bl HAL_CAN_TxMailbox2AbortCallback
2690 .LVL203:
2691 01ae 74E7 b .L168
2692 .L207:
1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2693 .loc 1 1841 7 view .LVU876
2694 01b0 2B68 ldr r3, [r5]
2695 01b2 0822 movs r2, #8
2696 01b4 DA60 str r2, [r3, #12]
1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2697 .loc 1 1849 7 view .LVU877
2698 01b6 2846 mov r0, r5
2699 01b8 FFF7FEFF bl HAL_CAN_RxFifo0FullCallback
2700 .LVL204:
2701 01bc 7EE7 b .L179
2702 .L208:
1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2703 .loc 1 1866 7 view .LVU878
2704 01be 2846 mov r0, r5
2705 01c0 FFF7FEFF bl HAL_CAN_RxFifo0MsgPendingCallback
2706 .LVL205:
2707 01c4 82E7 b .L180
2708 .L209:
1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2709 .loc 1 1890 7 view .LVU879
2710 01c6 2B68 ldr r3, [r5]
2711 01c8 0822 movs r2, #8
2712 01ca 1A61 str r2, [r3, #16]
1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2713 .loc 1 1898 7 view .LVU880
2714 01cc 2846 mov r0, r5
2715 01ce FFF7FEFF bl HAL_CAN_RxFifo1FullCallback
2716 .LVL206:
2717 01d2 8CE7 b .L182
2718 .L210:
1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2719 .loc 1 1915 7 view .LVU881
2720 01d4 2846 mov r0, r5
2721 01d6 FFF7FEFF bl HAL_CAN_RxFifo1MsgPendingCallback
2722 .LVL207:
2723 01da 90E7 b .L183
2724 .L211:
1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2725 .loc 1 1926 7 view .LVU882
2726 01dc 2B68 ldr r3, [r5]
2727 01de 1022 movs r2, #16
2728 01e0 5A60 str r2, [r3, #4]
1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2729 .loc 1 1934 7 view .LVU883
2730 01e2 2846 mov r0, r5
2731 01e4 FFF7FEFF bl HAL_CAN_SleepCallback
2732 .LVL208:
2733 01e8 8FE7 b .L184
ARM GAS /tmp/ccj1aKCo.s page 114
2734 .L212:
1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2735 .loc 1 1945 7 view .LVU884
2736 01ea 2B68 ldr r3, [r5]
2737 01ec 0822 movs r2, #8
2738 01ee 5A60 str r2, [r3, #4]
1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2739 .loc 1 1953 7 view .LVU885
2740 01f0 2846 mov r0, r5
2741 01f2 FFF7FEFF bl HAL_CAN_WakeUpFromRxMsgCallback
2742 .LVL209:
2743 01f6 8EE7 b .L185
2744 .LVL210:
2745 .L213:
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2746 .loc 1 1997 9 is_stmt 0 view .LVU886
2747 01f8 B9F1100F cmp r9, #16
2748 01fc 01D1 bne .L196
2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2749 .loc 1 2001 13 is_stmt 1 view .LVU887
2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2750 .loc 1 2001 23 is_stmt 0 view .LVU888
2751 01fe 46F00806 orr r6, r6, #8
2752 .LVL211:
2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1):
2753 .loc 1 2002 13 is_stmt 1 view .LVU889
2754 .L196:
2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2755 .loc 1 2028 9 view .LVU890
2756 0202 2A68 ldr r2, [r5]
2757 0204 9369 ldr r3, [r2, #24]
2758 0206 23F07003 bic r3, r3, #112
2759 020a 9361 str r3, [r2, #24]
2760 .L187:
2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2761 .loc 1 2033 5 view .LVU891
2762 020c 2B68 ldr r3, [r5]
2763 020e 0422 movs r2, #4
2764 0210 5A60 str r2, [r3, #4]
2765 .L186:
2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2766 .loc 1 2037 3 view .LVU892
2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2767 .loc 1 2037 6 is_stmt 0 view .LVU893
2768 0212 9EB9 cbnz r6, .L214
2769 .L167:
2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2770 .loc 1 2051 1 view .LVU894
2771 0214 BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
2772 .LVL212:
2773 .L192:
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2774 .loc 1 1997 9 view .LVU895
2775 0218 B9F1500F cmp r9, #80
2776 021c 0BD0 beq .L197
2777 021e B9F1600F cmp r9, #96
2778 0222 EED1 bne .L196
ARM GAS /tmp/ccj1aKCo.s page 115
2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2779 .loc 1 2021 13 is_stmt 1 view .LVU896
2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2780 .loc 1 2021 23 is_stmt 0 view .LVU897
2781 0224 46F48076 orr r6, r6, #256
2782 .LVL213:
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** default:
2783 .loc 1 2022 13 is_stmt 1 view .LVU898
2784 0228 EBE7 b .L196
2785 .L193:
2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2786 .loc 1 2005 13 view .LVU899
2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2787 .loc 1 2005 23 is_stmt 0 view .LVU900
2788 022a 46F01006 orr r6, r6, #16
2789 .LVL214:
2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0):
2790 .loc 1 2006 13 is_stmt 1 view .LVU901
2791 022e E8E7 b .L196
2792 .L191:
2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2793 .loc 1 2013 13 view .LVU902
2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2794 .loc 1 2013 23 is_stmt 0 view .LVU903
2795 0230 46F04006 orr r6, r6, #64
2796 .LVL215:
2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0):
2797 .loc 1 2014 13 is_stmt 1 view .LVU904
2798 0234 E5E7 b .L196
2799 .L197:
2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2800 .loc 1 2017 13 view .LVU905
2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** break;
2801 .loc 1 2017 23 is_stmt 0 view .LVU906
2802 0236 46F08006 orr r6, r6, #128
2803 .LVL216:
2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1):
2804 .loc 1 2018 13 is_stmt 1 view .LVU907
2805 023a E2E7 b .L196
2806 .L214:
2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2807 .loc 1 2040 5 view .LVU908
2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2808 .loc 1 2040 9 is_stmt 0 view .LVU909
2809 023c 6B6A ldr r3, [r5, #36]
2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2810 .loc 1 2040 21 view .LVU910
2811 023e 3343 orrs r3, r3, r6
2812 0240 6B62 str r3, [r5, #36]
2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2813 .loc 1 2048 5 is_stmt 1 view .LVU911
2814 0242 2846 mov r0, r5
2815 0244 FFF7FEFF bl HAL_CAN_ErrorCallback
2816 .LVL217:
2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2817 .loc 1 2051 1 is_stmt 0 view .LVU912
2818 0248 E4E7 b .L167
ARM GAS /tmp/ccj1aKCo.s page 116
2819 .cfi_endproc
2820 .LFE149:
2822 .section .text.HAL_CAN_GetState,"ax",%progbits
2823 .align 1
2824 .global HAL_CAN_GetState
2825 .syntax unified
2826 .thumb
2827 .thumb_func
2829 HAL_CAN_GetState:
2830 .LVL218:
2831 .LFB163:
2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @}
2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group6 Peripheral State and Error functions
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief CAN Peripheral State functions
2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** *
2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @verbatim
2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ##### Peripheral State and Error functions #####
2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** ==============================================================================
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** [..]
2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** This subsection provides functions allowing to :
2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetState() : Return the CAN state.
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_GetError() : Return the CAN error codes if any.
2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (+) HAL_CAN_ResetError(): Reset the CAN error codes if any.
2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** @endverbatim
2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @{
2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return the CAN state.
2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL state
2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef HAL_CAN_GetState(CAN_HandleTypeDef *hcan)
2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2832 .loc 1 2331 1 is_stmt 1 view -0
2833 .cfi_startproc
2834 @ args = 0, pretend = 0, frame = 0
2835 @ frame_needed = 0, uses_anonymous_args = 0
2836 @ link register save eliminated.
2837 .loc 1 2331 1 is_stmt 0 view .LVU914
2838 0000 0246 mov r2, r0
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
2839 .loc 1 2332 3 is_stmt 1 view .LVU915
2840 .loc 1 2332 24 is_stmt 0 view .LVU916
2841 0002 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
2842 0006 D8B2 uxtb r0, r3
2843 .LVL219:
2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
2844 .loc 1 2334 3 is_stmt 1 view .LVU917
ARM GAS /tmp/ccj1aKCo.s page 117
2845 .loc 1 2334 38 is_stmt 0 view .LVU918
2846 0008 013B subs r3, r3, #1
2847 000a DBB2 uxtb r3, r3
2848 .loc 1 2334 6 view .LVU919
2849 000c 012B cmp r3, #1
2850 000e 00D9 bls .L219
2851 .LVL220:
2852 .L216:
2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check sleep mode acknowledge flag */
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U)
2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Sleep mode is active */
2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_ACTIVE;
2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Check sleep mode request flag */
2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else if ((hcan->Instance->MCR & CAN_MCR_SLEEP) != 0U)
2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Sleep mode request is pending */
2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_PENDING;
2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Neither sleep mode request nor sleep mode acknowledge */
2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2853 .loc 1 2352 5 is_stmt 1 view .LVU920
2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return CAN state */
2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return state;
2854 .loc 1 2356 3 view .LVU921
2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2855 .loc 1 2357 1 is_stmt 0 view .LVU922
2856 0010 7047 bx lr
2857 .LVL221:
2858 .L219:
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2859 .loc 1 2338 5 is_stmt 1 view .LVU923
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2860 .loc 1 2338 14 is_stmt 0 view .LVU924
2861 0012 1368 ldr r3, [r2]
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2862 .loc 1 2338 24 view .LVU925
2863 0014 5A68 ldr r2, [r3, #4]
2864 .LVL222:
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2865 .loc 1 2338 8 view .LVU926
2866 0016 12F0020F tst r2, #2
2867 001a 05D1 bne .L217
2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2868 .loc 1 2344 10 is_stmt 1 view .LVU927
2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2869 .loc 1 2344 29 is_stmt 0 view .LVU928
2870 001c 1B68 ldr r3, [r3]
2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2871 .loc 1 2344 13 view .LVU929
ARM GAS /tmp/ccj1aKCo.s page 118
2872 001e 13F0020F tst r3, #2
2873 0022 F5D0 beq .L216
2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2874 .loc 1 2347 13 view .LVU930
2875 0024 0320 movs r0, #3
2876 .LVL223:
2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2877 .loc 1 2347 13 view .LVU931
2878 0026 F3E7 b .L216
2879 .LVL224:
2880 .L217:
2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2881 .loc 1 2341 13 view .LVU932
2882 0028 0420 movs r0, #4
2883 .LVL225:
2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2884 .loc 1 2341 13 view .LVU933
2885 002a 7047 bx lr
2886 .cfi_endproc
2887 .LFE163:
2889 .section .text.HAL_CAN_GetError,"ax",%progbits
2890 .align 1
2891 .global HAL_CAN_GetError
2892 .syntax unified
2893 .thumb
2894 .thumb_func
2896 HAL_CAN_GetError:
2897 .LVL226:
2898 .LFB164:
2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Return the CAN error code.
2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval CAN Error Code
2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** uint32_t HAL_CAN_GetError(CAN_HandleTypeDef *hcan)
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2899 .loc 1 2366 1 is_stmt 1 view -0
2900 .cfi_startproc
2901 @ args = 0, pretend = 0, frame = 0
2902 @ frame_needed = 0, uses_anonymous_args = 0
2903 @ link register save eliminated.
2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return CAN error code */
2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return hcan->ErrorCode;
2904 .loc 1 2368 3 view .LVU935
2905 .loc 1 2368 14 is_stmt 0 view .LVU936
2906 0000 406A ldr r0, [r0, #36]
2907 .LVL227:
2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2908 .loc 1 2369 1 view .LVU937
2909 0002 7047 bx lr
2910 .cfi_endproc
2911 .LFE164:
2913 .section .text.HAL_CAN_ResetError,"ax",%progbits
2914 .align 1
2915 .global HAL_CAN_ResetError
ARM GAS /tmp/ccj1aKCo.s page 119
2916 .syntax unified
2917 .thumb
2918 .thumb_func
2920 HAL_CAN_ResetError:
2921 .LVL228:
2922 .LFB165:
2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /**
2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @brief Reset the CAN error code.
2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * the configuration information for the specified CAN.
2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** * @retval HAL status
2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** */
2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ResetError(CAN_HandleTypeDef *hcan)
2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2923 .loc 1 2378 1 is_stmt 1 view -0
2924 .cfi_startproc
2925 @ args = 0, pretend = 0, frame = 0
2926 @ frame_needed = 0, uses_anonymous_args = 0
2927 @ link register save eliminated.
2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK;
2928 .loc 1 2379 3 view .LVU939
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
2929 .loc 1 2380 3 view .LVU940
2930 .loc 1 2380 24 is_stmt 0 view .LVU941
2931 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
2932 .LVL229:
2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
2933 .loc 1 2382 3 is_stmt 1 view .LVU942
2934 .loc 1 2382 38 is_stmt 0 view .LVU943
2935 0004 013B subs r3, r3, #1
2936 .LVL230:
2937 .loc 1 2382 38 view .LVU944
2938 0006 DBB2 uxtb r3, r3
2939 .loc 1 2382 6 view .LVU945
2940 0008 012B cmp r3, #1
2941 000a 05D9 bls .L224
2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Reset CAN error code */
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode = 0U;
2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** else
2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** {
2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Update error code */
2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
2942 .loc 1 2391 5 is_stmt 1 view .LVU946
2943 .loc 1 2391 9 is_stmt 0 view .LVU947
2944 000c 436A ldr r3, [r0, #36]
2945 .loc 1 2391 21 view .LVU948
2946 000e 43F48023 orr r3, r3, #262144
2947 0012 4362 str r3, [r0, #36]
2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** status = HAL_ERROR;
2948 .loc 1 2393 5 is_stmt 1 view .LVU949
2949 .LVL231:
ARM GAS /tmp/ccj1aKCo.s page 120
2950 .loc 1 2393 12 is_stmt 0 view .LVU950
2951 0014 0120 movs r0, #1
2952 .LVL232:
2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c ****
2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** /* Return the status */
2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** return status;
2953 .loc 1 2397 3 is_stmt 1 view .LVU951
2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2954 .loc 1 2398 1 is_stmt 0 view .LVU952
2955 0016 7047 bx lr
2956 .LVL233:
2957 .L224:
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2958 .loc 1 2386 5 is_stmt 1 view .LVU953
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** }
2959 .loc 1 2386 21 is_stmt 0 view .LVU954
2960 0018 0023 movs r3, #0
2961 001a 4362 str r3, [r0, #36]
2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
2962 .loc 1 2379 21 view .LVU955
2963 001c 1846 mov r0, r3
2964 .LVL234:
2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
2965 .loc 1 2379 21 view .LVU956
2966 001e 7047 bx lr
2967 .cfi_endproc
2968 .LFE165:
2970 .text
2971 .Letext0:
2972 .file 3 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non
2973 .file 4 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non
2974 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
2975 .file 6 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
2976 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
2977 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_can.h"
2978 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
ARM GAS /tmp/ccj1aKCo.s page 121
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f3xx_hal_can.c
/tmp/ccj1aKCo.s:21 .text.HAL_CAN_MspInit:0000000000000000 $t
/tmp/ccj1aKCo.s:27 .text.HAL_CAN_MspInit:0000000000000000 HAL_CAN_MspInit
/tmp/ccj1aKCo.s:42 .text.HAL_CAN_Init:0000000000000000 $t
/tmp/ccj1aKCo.s:48 .text.HAL_CAN_Init:0000000000000000 HAL_CAN_Init
/tmp/ccj1aKCo.s:338 .text.HAL_CAN_MspDeInit:0000000000000000 $t
/tmp/ccj1aKCo.s:344 .text.HAL_CAN_MspDeInit:0000000000000000 HAL_CAN_MspDeInit
/tmp/ccj1aKCo.s:359 .text.HAL_CAN_ConfigFilter:0000000000000000 $t
/tmp/ccj1aKCo.s:365 .text.HAL_CAN_ConfigFilter:0000000000000000 HAL_CAN_ConfigFilter
/tmp/ccj1aKCo.s:578 .text.HAL_CAN_Start:0000000000000000 $t
/tmp/ccj1aKCo.s:584 .text.HAL_CAN_Start:0000000000000000 HAL_CAN_Start
/tmp/ccj1aKCo.s:683 .text.HAL_CAN_Stop:0000000000000000 $t
/tmp/ccj1aKCo.s:689 .text.HAL_CAN_Stop:0000000000000000 HAL_CAN_Stop
/tmp/ccj1aKCo.s:789 .text.HAL_CAN_DeInit:0000000000000000 $t
/tmp/ccj1aKCo.s:795 .text.HAL_CAN_DeInit:0000000000000000 HAL_CAN_DeInit
/tmp/ccj1aKCo.s:849 .text.HAL_CAN_RequestSleep:0000000000000000 $t
/tmp/ccj1aKCo.s:855 .text.HAL_CAN_RequestSleep:0000000000000000 HAL_CAN_RequestSleep
/tmp/ccj1aKCo.s:905 .text.HAL_CAN_WakeUp:0000000000000000 $t
/tmp/ccj1aKCo.s:911 .text.HAL_CAN_WakeUp:0000000000000000 HAL_CAN_WakeUp
/tmp/ccj1aKCo.s:1008 .text.HAL_CAN_WakeUp:0000000000000054 $d
/tmp/ccj1aKCo.s:1013 .text.HAL_CAN_IsSleepActive:0000000000000000 $t
/tmp/ccj1aKCo.s:1019 .text.HAL_CAN_IsSleepActive:0000000000000000 HAL_CAN_IsSleepActive
/tmp/ccj1aKCo.s:1069 .text.HAL_CAN_AddTxMessage:0000000000000000 $t
/tmp/ccj1aKCo.s:1075 .text.HAL_CAN_AddTxMessage:0000000000000000 HAL_CAN_AddTxMessage
/tmp/ccj1aKCo.s:1289 .text.HAL_CAN_AbortTxRequest:0000000000000000 $t
/tmp/ccj1aKCo.s:1295 .text.HAL_CAN_AbortTxRequest:0000000000000000 HAL_CAN_AbortTxRequest
/tmp/ccj1aKCo.s:1371 .text.HAL_CAN_GetTxMailboxesFreeLevel:0000000000000000 $t
/tmp/ccj1aKCo.s:1377 .text.HAL_CAN_GetTxMailboxesFreeLevel:0000000000000000 HAL_CAN_GetTxMailboxesFreeLevel
/tmp/ccj1aKCo.s:1448 .text.HAL_CAN_IsTxMessagePending:0000000000000000 $t
/tmp/ccj1aKCo.s:1454 .text.HAL_CAN_IsTxMessagePending:0000000000000000 HAL_CAN_IsTxMessagePending
/tmp/ccj1aKCo.s:1511 .text.HAL_CAN_GetTxTimestamp:0000000000000000 $t
/tmp/ccj1aKCo.s:1517 .text.HAL_CAN_GetTxTimestamp:0000000000000000 HAL_CAN_GetTxTimestamp
/tmp/ccj1aKCo.s:1590 .text.HAL_CAN_GetRxMessage:0000000000000000 $t
/tmp/ccj1aKCo.s:1596 .text.HAL_CAN_GetRxMessage:0000000000000000 HAL_CAN_GetRxMessage
/tmp/ccj1aKCo.s:1884 .text.HAL_CAN_GetRxFifoFillLevel:0000000000000000 $t
/tmp/ccj1aKCo.s:1890 .text.HAL_CAN_GetRxFifoFillLevel:0000000000000000 HAL_CAN_GetRxFifoFillLevel
/tmp/ccj1aKCo.s:1952 .text.HAL_CAN_ActivateNotification:0000000000000000 $t
/tmp/ccj1aKCo.s:1958 .text.HAL_CAN_ActivateNotification:0000000000000000 HAL_CAN_ActivateNotification
/tmp/ccj1aKCo.s:2009 .text.HAL_CAN_DeactivateNotification:0000000000000000 $t
/tmp/ccj1aKCo.s:2015 .text.HAL_CAN_DeactivateNotification:0000000000000000 HAL_CAN_DeactivateNotification
/tmp/ccj1aKCo.s:2066 .text.HAL_CAN_TxMailbox0CompleteCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2072 .text.HAL_CAN_TxMailbox0CompleteCallback:0000000000000000 HAL_CAN_TxMailbox0CompleteCallback
/tmp/ccj1aKCo.s:2087 .text.HAL_CAN_TxMailbox1CompleteCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2093 .text.HAL_CAN_TxMailbox1CompleteCallback:0000000000000000 HAL_CAN_TxMailbox1CompleteCallback
/tmp/ccj1aKCo.s:2108 .text.HAL_CAN_TxMailbox2CompleteCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2114 .text.HAL_CAN_TxMailbox2CompleteCallback:0000000000000000 HAL_CAN_TxMailbox2CompleteCallback
/tmp/ccj1aKCo.s:2129 .text.HAL_CAN_TxMailbox0AbortCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2135 .text.HAL_CAN_TxMailbox0AbortCallback:0000000000000000 HAL_CAN_TxMailbox0AbortCallback
/tmp/ccj1aKCo.s:2150 .text.HAL_CAN_TxMailbox1AbortCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2156 .text.HAL_CAN_TxMailbox1AbortCallback:0000000000000000 HAL_CAN_TxMailbox1AbortCallback
/tmp/ccj1aKCo.s:2171 .text.HAL_CAN_TxMailbox2AbortCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2177 .text.HAL_CAN_TxMailbox2AbortCallback:0000000000000000 HAL_CAN_TxMailbox2AbortCallback
/tmp/ccj1aKCo.s:2192 .text.HAL_CAN_RxFifo0MsgPendingCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2198 .text.HAL_CAN_RxFifo0MsgPendingCallback:0000000000000000 HAL_CAN_RxFifo0MsgPendingCallback
/tmp/ccj1aKCo.s:2213 .text.HAL_CAN_RxFifo0FullCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2219 .text.HAL_CAN_RxFifo0FullCallback:0000000000000000 HAL_CAN_RxFifo0FullCallback
ARM GAS /tmp/ccj1aKCo.s page 122
/tmp/ccj1aKCo.s:2234 .text.HAL_CAN_RxFifo1MsgPendingCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2240 .text.HAL_CAN_RxFifo1MsgPendingCallback:0000000000000000 HAL_CAN_RxFifo1MsgPendingCallback
/tmp/ccj1aKCo.s:2255 .text.HAL_CAN_RxFifo1FullCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2261 .text.HAL_CAN_RxFifo1FullCallback:0000000000000000 HAL_CAN_RxFifo1FullCallback
/tmp/ccj1aKCo.s:2276 .text.HAL_CAN_SleepCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2282 .text.HAL_CAN_SleepCallback:0000000000000000 HAL_CAN_SleepCallback
/tmp/ccj1aKCo.s:2297 .text.HAL_CAN_WakeUpFromRxMsgCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2303 .text.HAL_CAN_WakeUpFromRxMsgCallback:0000000000000000 HAL_CAN_WakeUpFromRxMsgCallback
/tmp/ccj1aKCo.s:2318 .text.HAL_CAN_ErrorCallback:0000000000000000 $t
/tmp/ccj1aKCo.s:2324 .text.HAL_CAN_ErrorCallback:0000000000000000 HAL_CAN_ErrorCallback
/tmp/ccj1aKCo.s:2339 .text.HAL_CAN_IRQHandler:0000000000000000 $t
/tmp/ccj1aKCo.s:2345 .text.HAL_CAN_IRQHandler:0000000000000000 HAL_CAN_IRQHandler
/tmp/ccj1aKCo.s:2823 .text.HAL_CAN_GetState:0000000000000000 $t
/tmp/ccj1aKCo.s:2829 .text.HAL_CAN_GetState:0000000000000000 HAL_CAN_GetState
/tmp/ccj1aKCo.s:2890 .text.HAL_CAN_GetError:0000000000000000 $t
/tmp/ccj1aKCo.s:2896 .text.HAL_CAN_GetError:0000000000000000 HAL_CAN_GetError
/tmp/ccj1aKCo.s:2914 .text.HAL_CAN_ResetError:0000000000000000 $t
/tmp/ccj1aKCo.s:2920 .text.HAL_CAN_ResetError:0000000000000000 HAL_CAN_ResetError
UNDEFINED SYMBOLS
HAL_GetTick