ARM GAS /tmp/ccXma6Rl.s page 1
1 .cpu cortex-m3
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 1
10 .eabi_attribute 18, 4
11 .file "stm32f1xx_hal_can.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.HAL_CAN_MspInit,"ax",%progbits
16 .align 1
17 .weak HAL_CAN_MspInit
18 .arch armv7-m
19 .syntax unified
20 .thumb
21 .thumb_func
22 .fpu softvfp
24 HAL_CAN_MspInit:
25 .LVL0:
26 .LFB67:
27 .file 1 "Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c"
1:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ******************************************************************************
3:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @file stm32f1xx_hal_can.c
4:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @author MCD Application Team
5:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief CAN HAL module driver.
6:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * functionalities of the Controller Area Network (CAN) peripheral:
8:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Initialization and de-initialization functions
9:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Configuration functions
10:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Control functions
11:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Interrupts management
12:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Callbacks functions
13:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * + Peripheral State and Error functions
14:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
15:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim
16:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
17:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### How to use this driver #####
18:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
19:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..]
20:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Initialize the CAN low level resources by implementing the
21:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_MspInit():
22:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Enable the CAN interface clock using __HAL_RCC_CANx_CLK_ENABLE()
23:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Configure CAN pins
24:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) Enable the clock for the CAN GPIOs
25:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) Configure CAN pins as alternate function open-drain
26:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) In case of using interrupts (e.g. HAL_CAN_ActivateNotification())
27:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) Configure the CAN interrupt priority using
28:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_NVIC_SetPriority()
29:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) Enable the CAN IRQ handler using HAL_NVIC_EnableIRQ()
30:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+++) In CAN IRQ handler, call HAL_CAN_IRQHandler()
31:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
ARM GAS /tmp/ccXma6Rl.s page 2
32:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Initialize the CAN peripheral using HAL_CAN_Init() function. This
33:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** function resorts to HAL_CAN_MspInit() for low-level initialization.
34:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
35:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Configure the reception filters using the following configuration
36:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** functions:
37:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_ConfigFilter()
38:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
39:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Start the CAN module using HAL_CAN_Start() function. At this level
40:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the node is active on the bus: it receive messages, and can send
41:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** messages.
42:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
43:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) To manage messages transmission, the following Tx control functions
44:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can be used:
45:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_AddTxMessage() to request transmission of a new
46:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** message.
47:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_AbortTxRequest() to abort transmission of a pending
48:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** message.
49:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_GetTxMailboxesFreeLevel() to get the number of free Tx
50:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** mailboxes.
51:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_IsTxMessagePending() to check if a message is pending
52:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** in a Tx mailbox.
53:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) HAL_CAN_GetTxTimestamp() to get the timestamp of Tx message
54:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** sent, if time triggered communication mode is enabled.
55:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
56:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) When a message is received into the CAN Rx FIFOs, it can be retrieved
57:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** using the HAL_CAN_GetRxMessage() function. The function
58:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_GetRxFifoFillLevel() allows to know how many Rx message are
59:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** stored in the Rx Fifo.
60:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
61:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Calling the HAL_CAN_Stop() function stops the CAN module.
62:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
63:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) The deinitialization is achieved with HAL_CAN_DeInit() function.
64:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
65:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
66:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *** Polling mode operation ***
67:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================
68:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..]
69:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Reception:
70:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Monitor reception of message using HAL_CAN_GetRxFifoFillLevel()
71:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** until at least one message is received.
72:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Then get the message using HAL_CAN_GetRxMessage().
73:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
74:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Transmission:
75:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Monitor the Tx mailboxes availability until at least one Tx
76:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** mailbox is free, using HAL_CAN_GetTxMailboxesFreeLevel().
77:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Then request transmission of a message using
78:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_AddTxMessage().
79:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
80:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
81:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *** Interrupt mode operation ***
82:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ================================
83:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..]
84:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Notifications are activated using HAL_CAN_ActivateNotification()
85:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** function. Then, the process can be controlled through the
86:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** available user callbacks: HAL_CAN_xxxCallback(), using same APIs
87:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_GetRxMessage() and HAL_CAN_AddTxMessage().
88:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
ARM GAS /tmp/ccXma6Rl.s page 3
89:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Notifications can be deactivated using
90:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_DeactivateNotification() function.
91:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
92:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) Special care should be taken for CAN_IT_RX_FIFO0_MSG_PENDING and
93:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CAN_IT_RX_FIFO1_MSG_PENDING notifications. These notifications trig
94:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the callbacks HAL_CAN_RxFIFO0MsgPendingCallback() and
95:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFIFO1MsgPendingCallback(). User has two possible options
96:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** here.
97:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Directly get the Rx message in the callback, using
98:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_GetRxMessage().
99:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Or deactivate the notification in the callback without
100:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** getting the Rx message. The Rx message can then be got later
101:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** using HAL_CAN_GetRxMessage(). Once the Rx message have been
102:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** read, the notification can be activated again.
103:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
104:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
105:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *** Sleep mode ***
106:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==================
107:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..]
108:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) The CAN peripheral can be put in sleep mode (low power), using
109:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RequestSleep(). The sleep mode will be entered as soon as the
110:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** current CAN activity (transmission or reception of a CAN frame) will
111:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** be completed.
112:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
113:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) A notification can be activated to be informed when the sleep mode
114:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** will be entered.
115:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
116:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) It can be checked if the sleep mode is entered using
117:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_IsSleepActive().
118:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Note that the CAN state (accessible from the API HAL_CAN_GetState())
119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** is HAL_CAN_STATE_SLEEP_PENDING as soon as the sleep mode request is
120:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** submitted (the sleep mode is not yet entered), and become
121:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_STATE_SLEEP_ACTIVE when the sleep mode is effective.
122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
123:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (#) The wake-up from sleep mode can be trigged by two ways:
124:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) Using HAL_CAN_WakeUp(). When returning from this function,
125:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the sleep mode is exited (if return status is HAL_OK).
126:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (++) When a start of Rx CAN frame is detected by the CAN peripheral,
127:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if automatic wake up mode is enabled.
128:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
129:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *** Callback registration ***
130:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** =============================================
131:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
132:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** The compilation define USE_HAL_CAN_REGISTER_CALLBACKS when set to 1
133:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** allows the user to configure dynamically the driver callbacks.
134:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Use Function @ref HAL_CAN_RegisterCallback() to register an interrupt callback.
135:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
136:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Function @ref HAL_CAN_RegisterCallback() allows to register following callbacks:
137:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback.
138:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback.
139:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback.
140:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback.
141:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback.
142:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback.
143:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback.
144:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback.
145:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback.
ARM GAS /tmp/ccXma6Rl.s page 4
146:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback.
147:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) SleepCallback : Sleep Callback.
148:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback.
149:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) ErrorCallback : Error Callback.
150:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) MspInitCallback : CAN MspInit.
151:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit.
152:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
153:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** and a pointer to the user callback function.
154:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
155:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Use function @ref HAL_CAN_UnRegisterCallback() to reset a callback to the default
156:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** weak function.
157:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @ref HAL_CAN_UnRegisterCallback takes as parameters the HAL peripheral handle,
158:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** and the Callback ID.
159:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** This function allows to reset following callbacks:
160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox0CompleteCallback : Tx Mailbox 0 Complete Callback.
161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox1CompleteCallback : Tx Mailbox 1 Complete Callback.
162:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox2CompleteCallback : Tx Mailbox 2 Complete Callback.
163:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox0AbortCallback : Tx Mailbox 0 Abort Callback.
164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox1AbortCallback : Tx Mailbox 1 Abort Callback.
165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) TxMailbox2AbortCallback : Tx Mailbox 2 Abort Callback.
166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo0MsgPendingCallback : Rx Fifo 0 Message Pending Callback.
167:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo0FullCallback : Rx Fifo 0 Full Callback.
168:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo1MsgPendingCallback : Rx Fifo 1 Message Pending Callback.
169:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) RxFifo1FullCallback : Rx Fifo 1 Full Callback.
170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) SleepCallback : Sleep Callback.
171:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) WakeUpFromRxMsgCallback : Wake Up From Rx Message Callback.
172:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) ErrorCallback : Error Callback.
173:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) MspInitCallback : CAN MspInit.
174:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) MspDeInitCallback : CAN MspDeInit.
175:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
176:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** By default, after the @ref HAL_CAN_Init() and when the state is HAL_CAN_STATE_RESET,
177:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** all callbacks are set to the corresponding weak functions:
178:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** example @ref HAL_CAN_ErrorCallback().
179:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Exception done for MspInit and MspDeInit functions that are
180:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** reset to the legacy weak function in the @ref HAL_CAN_Init()/ @ref HAL_CAN_DeInit() only when
181:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** these callbacks are null (not registered beforehand).
182:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if not, MspInit or MspDeInit are not null, the @ref HAL_CAN_Init()/ @ref HAL_CAN_DeInit()
183:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand)
184:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
185:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Callbacks can be registered/unregistered in HAL_CAN_STATE_READY state only.
186:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** Exception done MspInit/MspDeInit that can be registered/unregistered
187:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** in HAL_CAN_STATE_READY or HAL_CAN_STATE_RESET state,
188:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
189:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** In that case first register the MspInit/MspDeInit user callbacks
190:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** using @ref HAL_CAN_RegisterCallback() before calling @ref HAL_CAN_DeInit()
191:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** or @ref HAL_CAN_Init() function.
192:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** When The compilation define USE_HAL_CAN_REGISTER_CALLBACKS is set to 0 or
194:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** not defined, the callback registration feature is not available and all callbacks
195:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** are set to the corresponding weak functions.
196:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
197:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim
198:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ******************************************************************************
199:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @attention
200:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
201:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
© Copyright (c) 2016 STMicroelectronics.
202:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * All rights reserved.
ARM GAS /tmp/ccXma6Rl.s page 5
203:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
204:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This software component is licensed by ST under BSD 3-Clause license,
205:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the "License"; You may not use this file except in compliance with the
206:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * License. You may obtain a copy of the License at:
207:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * opensource.org/licenses/BSD-3-Clause
208:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
209:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ******************************************************************************
210:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
211:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
212:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Includes ------------------------------------------------------------------*/
213:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #include "stm32f1xx_hal.h"
214:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
215:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @addtogroup STM32F1xx_HAL_Driver
216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
217:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
218:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
219:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if defined(CAN1)
220:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
221:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN CAN
222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief CAN driver modules
223:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
224:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
225:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
226:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #ifdef HAL_CAN_MODULE_ENABLED
227:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
228:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #ifdef HAL_CAN_LEGACY_MODULE_ENABLED
229:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #error "The CAN driver cannot be used with its legacy, Please enable only one CAN module at once"
230:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif
231:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
232:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private typedef -----------------------------------------------------------*/
233:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private define ------------------------------------------------------------*/
234:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Private_Constants CAN Private Constants
235:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
236:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
237:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #define CAN_TIMEOUT_VALUE 10U
238:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
239:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @}
240:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
241:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private macro -------------------------------------------------------------*/
242:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private variables ---------------------------------------------------------*/
243:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Private function prototypes -----------------------------------------------*/
244:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Exported functions --------------------------------------------------------*/
245:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
246:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions CAN Exported Functions
247:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
248:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
249:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
250:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group1 Initialization and de-initialization functions
251:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Initialization and Configuration functions
252:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
253:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim
254:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
255:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Initialization and de-initialization functions #####
256:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
257:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] This section provides functions allowing to:
258:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_Init : Initialize and configure the CAN.
259:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_DeInit : De-initialize the CAN.
ARM GAS /tmp/ccXma6Rl.s page 6
260:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_MspInit : Initialize the CAN MSP.
261:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_MspDeInit : DeInitialize the CAN MSP.
262:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
263:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim
264:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
265:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
266:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
267:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Initializes the CAN peripheral according to the specified
269:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * parameters in the CAN_InitStruct.
270:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
271:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
272:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Init(CAN_HandleTypeDef *hcan)
275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart;
277:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
278:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check CAN handle */
279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan == NULL)
280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
282:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
283:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */
285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance));
286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode));
287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff));
288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp));
289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission));
290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked));
291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority));
292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode));
293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth));
294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1));
295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2));
296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler));
297:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
298:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
299:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET)
300:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
301:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset callbacks to legacy functions */
302:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback; /* Legacy weak RxFifo0M
303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback; /* Legacy weak RxFifo0F
304:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback; /* Legacy weak RxFifo1M
305:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback; /* Legacy weak RxFifo1F
306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback; /* Legacy weak TxMailbo
307:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback; /* Legacy weak TxMailbo
308:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback; /* Legacy weak TxMailbo
309:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback; /* Legacy weak TxMailbo
310:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback; /* Legacy weak TxMailbo
311:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback; /* Legacy weak TxMailbo
312:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback; /* Legacy weak SleepCal
313:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback; /* Legacy weak WakeUpFr
314:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback; /* Legacy weak ErrorCal
315:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
316:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->MspInitCallback == NULL)
ARM GAS /tmp/ccXma6Rl.s page 7
317:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
318:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit; /* Legacy weak MspInit */
319:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
321:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */
322:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback(hcan);
323:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
325:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_RESET)
327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
328:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Init the low level hardware: CLOCK, NVIC */
329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_MspInit(hcan);
330:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
331:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */
332:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
333:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Exit from sleep mode */
334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);
335:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
336:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get tick */
337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** tickstart = HAL_GetTick();
338:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
339:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Sleep mode leave acknowledge */
340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U)
341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */
348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR;
349:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
352:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
353:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request initialisation */
355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ);
356:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get tick */
358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** tickstart = HAL_GetTick();
359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wait initialisation acknowledge */
361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U)
362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
364:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
367:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
368:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */
369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR;
370:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
372:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
373:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
ARM GAS /tmp/ccXma6Rl.s page 8
374:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
375:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the time triggered communication mode */
376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.TimeTriggeredMode == ENABLE)
377:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TTCM);
379:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
380:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TTCM);
383:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
384:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
385:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the automatic bus-off management */
386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.AutoBusOff == ENABLE)
387:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_ABOM);
389:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
391:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_ABOM);
393:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the automatic wake-up mode */
396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.AutoWakeUp == ENABLE)
397:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_AWUM);
399:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
401:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_AWUM);
403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
404:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
405:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the automatic retransmission */
406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.AutoRetransmission == ENABLE)
407:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_NART);
409:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
410:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_NART);
413:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
414:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
415:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the receive FIFO locked mode */
416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.ReceiveFifoLocked == ENABLE)
417:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RFLM);
419:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
420:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
421:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
422:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_RFLM);
423:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
425:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the transmit FIFO priority */
426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->Init.TransmitFifoPriority == ENABLE)
427:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
428:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_TXFP);
429:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
430:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
ARM GAS /tmp/ccXma6Rl.s page 9
431:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_TXFP);
433:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
434:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
435:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set the bit timing register */
436:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** WRITE_REG(hcan->Instance->BTR, (uint32_t)(hcan->Init.Mode |
437:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Init.SyncJumpWidth |
438:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Init.TimeSeg1 |
439:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Init.TimeSeg2 |
440:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (hcan->Init.Prescaler - 1U)));
441:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
442:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Initialize the error code */
443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE;
444:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
445:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Initialize the CAN state */
446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY;
447:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
448:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
452:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
453:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Deinitializes the CAN peripheral registers to their default
454:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * reset values.
455:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
456:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
457:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
458:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
459:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeInit(CAN_HandleTypeDef *hcan)
460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
461:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check CAN handle */
462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan == NULL)
463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
464:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
465:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
466:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */
468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_ALL_INSTANCE(hcan->Instance));
469:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Stop the CAN module */
471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (void)HAL_CAN_Stop(hcan);
472:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
473:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
474:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->MspDeInitCallback == NULL)
475:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
476:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit; /* Legacy weak MspDeInit */
477:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
478:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
479:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */
480:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback(hcan);
481:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
482:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
483:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* DeInit the low level hardware: CLOCK, NVIC */
484:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_MspDeInit(hcan);
485:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */
486:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
487:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset the CAN peripheral */
ARM GAS /tmp/ccXma6Rl.s page 10
488:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_RESET);
489:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
490:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset the CAN ErrorCode */
491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE;
492:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
493:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */
494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_RESET;
495:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
496:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
499:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
500:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
501:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Initializes the CAN MSP.
502:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
503:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
504:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
505:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
506:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan)
507:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
28 .loc 1 507 1 view -0
29 .cfi_startproc
30 @ args = 0, pretend = 0, frame = 0
31 @ frame_needed = 0, uses_anonymous_args = 0
32 @ link register save eliminated.
508:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
509:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
33 .loc 1 509 3 view .LVU1
510:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
511:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
512:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_MspInit could be implemented in the user file
513:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
514:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
34 .loc 1 514 1 is_stmt 0 view .LVU2
35 0000 7047 bx lr
36 .cfi_endproc
37 .LFE67:
39 .section .text.HAL_CAN_Init,"ax",%progbits
40 .align 1
41 .global HAL_CAN_Init
42 .syntax unified
43 .thumb
44 .thumb_func
45 .fpu softvfp
47 HAL_CAN_Init:
48 .LVL1:
49 .LFB65:
275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart;
50 .loc 1 275 1 is_stmt 1 view -0
51 .cfi_startproc
52 @ args = 0, pretend = 0, frame = 0
53 @ frame_needed = 0, uses_anonymous_args = 0
276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
54 .loc 1 276 3 view .LVU4
279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
55 .loc 1 279 3 view .LVU5
279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
ARM GAS /tmp/ccXma6Rl.s page 11
56 .loc 1 279 6 is_stmt 0 view .LVU6
57 0000 0028 cmp r0, #0
58 0002 00F0A180 beq .L21
275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart;
59 .loc 1 275 1 view .LVU7
60 0006 38B5 push {r3, r4, r5, lr}
61 .LCFI0:
62 .cfi_def_cfa_offset 16
63 .cfi_offset 3, -16
64 .cfi_offset 4, -12
65 .cfi_offset 5, -8
66 .cfi_offset 14, -4
67 0008 0446 mov r4, r0
285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TimeTriggeredMode));
68 .loc 1 285 3 is_stmt 1 view .LVU8
286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoBusOff));
69 .loc 1 286 3 view .LVU9
287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoWakeUp));
70 .loc 1 287 3 view .LVU10
288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.AutoRetransmission));
71 .loc 1 288 3 view .LVU11
289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.ReceiveFifoLocked));
72 .loc 1 289 3 view .LVU12
290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(hcan->Init.TransmitFifoPriority));
73 .loc 1 290 3 view .LVU13
291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_MODE(hcan->Init.Mode));
74 .loc 1 291 3 view .LVU14
292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_SJW(hcan->Init.SyncJumpWidth));
75 .loc 1 292 3 view .LVU15
293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_BS1(hcan->Init.TimeSeg1));
76 .loc 1 293 3 view .LVU16
294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_BS2(hcan->Init.TimeSeg2));
77 .loc 1 294 3 view .LVU17
295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_PRESCALER(hcan->Init.Prescaler));
78 .loc 1 295 3 view .LVU18
296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
79 .loc 1 296 3 view .LVU19
326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
80 .loc 1 326 3 view .LVU20
326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
81 .loc 1 326 11 is_stmt 0 view .LVU21
82 000a 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
83 .loc 1 326 6 view .LVU22
84 000e D3B1 cbz r3, .L26
85 .LVL2:
86 .L4:
334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
87 .loc 1 334 3 is_stmt 1 view .LVU23
88 0010 2268 ldr r2, [r4]
89 0012 1368 ldr r3, [r2]
90 0014 23F00203 bic r3, r3, #2
91 0018 1360 str r3, [r2]
337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
92 .loc 1 337 3 view .LVU24
337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
93 .loc 1 337 15 is_stmt 0 view .LVU25
ARM GAS /tmp/ccXma6Rl.s page 12
94 001a FFF7FEFF bl HAL_GetTick
95 .LVL3:
96 001e 0546 mov r5, r0
97 .LVL4:
340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
98 .loc 1 340 3 is_stmt 1 view .LVU26
99 .L5:
340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
100 .loc 1 340 15 is_stmt 0 view .LVU27
101 0020 2368 ldr r3, [r4]
340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
102 .loc 1 340 25 view .LVU28
103 0022 5A68 ldr r2, [r3, #4]
340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
104 .loc 1 340 9 view .LVU29
105 0024 12F0020F tst r2, #2
106 0028 10D0 beq .L27
342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
107 .loc 1 342 5 is_stmt 1 view .LVU30
342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
108 .loc 1 342 10 is_stmt 0 view .LVU31
109 002a FFF7FEFF bl HAL_GetTick
110 .LVL5:
342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
111 .loc 1 342 24 view .LVU32
112 002e 401B subs r0, r0, r5
342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
113 .loc 1 342 8 view .LVU33
114 0030 0A28 cmp r0, #10
115 0032 F5D9 bls .L5
345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
116 .loc 1 345 7 is_stmt 1 view .LVU34
345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
117 .loc 1 345 23 is_stmt 0 view .LVU35
118 0034 636A ldr r3, [r4, #36]
119 0036 43F40033 orr r3, r3, #131072
120 003a 6362 str r3, [r4, #36]
348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
121 .loc 1 348 7 is_stmt 1 view .LVU36
348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
122 .loc 1 348 19 is_stmt 0 view .LVU37
123 003c 0523 movs r3, #5
124 003e 84F82030 strb r3, [r4, #32]
350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
125 .loc 1 350 7 is_stmt 1 view .LVU38
350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
126 .loc 1 350 14 is_stmt 0 view .LVU39
127 0042 0120 movs r0, #1
128 .L3:
450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
129 .loc 1 450 1 view .LVU40
130 0044 38BD pop {r3, r4, r5, pc}
131 .LVL6:
132 .L26:
329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
133 .loc 1 329 5 is_stmt 1 view .LVU41
134 0046 FFF7FEFF bl HAL_CAN_MspInit
ARM GAS /tmp/ccXma6Rl.s page 13
135 .LVL7:
329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
136 .loc 1 329 5 is_stmt 0 view .LVU42
137 004a E1E7 b .L4
138 .LVL8:
139 .L27:
355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
140 .loc 1 355 3 is_stmt 1 view .LVU43
141 004c 1A68 ldr r2, [r3]
142 004e 42F00102 orr r2, r2, #1
143 0052 1A60 str r2, [r3]
358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
144 .loc 1 358 3 view .LVU44
358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
145 .loc 1 358 15 is_stmt 0 view .LVU45
146 0054 FFF7FEFF bl HAL_GetTick
147 .LVL9:
148 0058 0546 mov r5, r0
149 .LVL10:
361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
150 .loc 1 361 3 is_stmt 1 view .LVU46
151 .L7:
361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
152 .loc 1 361 15 is_stmt 0 view .LVU47
153 005a 2368 ldr r3, [r4]
361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
154 .loc 1 361 25 view .LVU48
155 005c 5A68 ldr r2, [r3, #4]
361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
156 .loc 1 361 9 view .LVU49
157 005e 12F0010F tst r2, #1
158 0062 0DD1 bne .L28
363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
159 .loc 1 363 5 is_stmt 1 view .LVU50
363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
160 .loc 1 363 10 is_stmt 0 view .LVU51
161 0064 FFF7FEFF bl HAL_GetTick
162 .LVL11:
363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
163 .loc 1 363 24 view .LVU52
164 0068 401B subs r0, r0, r5
363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
165 .loc 1 363 8 view .LVU53
166 006a 0A28 cmp r0, #10
167 006c F5D9 bls .L7
366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
168 .loc 1 366 7 is_stmt 1 view .LVU54
366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
169 .loc 1 366 23 is_stmt 0 view .LVU55
170 006e 636A ldr r3, [r4, #36]
171 0070 43F40033 orr r3, r3, #131072
172 0074 6362 str r3, [r4, #36]
369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
173 .loc 1 369 7 is_stmt 1 view .LVU56
369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
174 .loc 1 369 19 is_stmt 0 view .LVU57
175 0076 0523 movs r3, #5
ARM GAS /tmp/ccXma6Rl.s page 14
176 0078 84F82030 strb r3, [r4, #32]
371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
177 .loc 1 371 7 is_stmt 1 view .LVU58
371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
178 .loc 1 371 14 is_stmt 0 view .LVU59
179 007c 0120 movs r0, #1
180 007e E1E7 b .L3
181 .L28:
376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
182 .loc 1 376 3 is_stmt 1 view .LVU60
376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
183 .loc 1 376 17 is_stmt 0 view .LVU61
184 0080 227E ldrb r2, [r4, #24] @ zero_extendqisi2
376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
185 .loc 1 376 6 view .LVU62
186 0082 012A cmp r2, #1
187 0084 3DD0 beq .L29
382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
188 .loc 1 382 5 is_stmt 1 view .LVU63
189 0086 1A68 ldr r2, [r3]
190 0088 22F08002 bic r2, r2, #128
191 008c 1A60 str r2, [r3]
192 .L10:
386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
193 .loc 1 386 3 view .LVU64
386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
194 .loc 1 386 17 is_stmt 0 view .LVU65
195 008e 637E ldrb r3, [r4, #25] @ zero_extendqisi2
386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
196 .loc 1 386 6 view .LVU66
197 0090 012B cmp r3, #1
198 0092 3BD0 beq .L30
392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
199 .loc 1 392 5 is_stmt 1 view .LVU67
200 0094 2268 ldr r2, [r4]
201 0096 1368 ldr r3, [r2]
202 0098 23F04003 bic r3, r3, #64
203 009c 1360 str r3, [r2]
204 .L12:
396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
205 .loc 1 396 3 view .LVU68
396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
206 .loc 1 396 17 is_stmt 0 view .LVU69
207 009e A37E ldrb r3, [r4, #26] @ zero_extendqisi2
396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
208 .loc 1 396 6 view .LVU70
209 00a0 012B cmp r3, #1
210 00a2 39D0 beq .L31
402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
211 .loc 1 402 5 is_stmt 1 view .LVU71
212 00a4 2268 ldr r2, [r4]
213 00a6 1368 ldr r3, [r2]
214 00a8 23F02003 bic r3, r3, #32
215 00ac 1360 str r3, [r2]
216 .L14:
406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
217 .loc 1 406 3 view .LVU72
ARM GAS /tmp/ccXma6Rl.s page 15
406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
218 .loc 1 406 17 is_stmt 0 view .LVU73
219 00ae E37E ldrb r3, [r4, #27] @ zero_extendqisi2
406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
220 .loc 1 406 6 view .LVU74
221 00b0 012B cmp r3, #1
222 00b2 37D0 beq .L32
412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
223 .loc 1 412 5 is_stmt 1 view .LVU75
224 00b4 2268 ldr r2, [r4]
225 00b6 1368 ldr r3, [r2]
226 00b8 43F01003 orr r3, r3, #16
227 00bc 1360 str r3, [r2]
228 .L16:
416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
229 .loc 1 416 3 view .LVU76
416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
230 .loc 1 416 17 is_stmt 0 view .LVU77
231 00be 237F ldrb r3, [r4, #28] @ zero_extendqisi2
416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
232 .loc 1 416 6 view .LVU78
233 00c0 012B cmp r3, #1
234 00c2 35D0 beq .L33
422:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
235 .loc 1 422 5 is_stmt 1 view .LVU79
236 00c4 2268 ldr r2, [r4]
237 00c6 1368 ldr r3, [r2]
238 00c8 23F00803 bic r3, r3, #8
239 00cc 1360 str r3, [r2]
240 .L18:
426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
241 .loc 1 426 3 view .LVU80
426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
242 .loc 1 426 17 is_stmt 0 view .LVU81
243 00ce 637F ldrb r3, [r4, #29] @ zero_extendqisi2
426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
244 .loc 1 426 6 view .LVU82
245 00d0 012B cmp r3, #1
246 00d2 33D0 beq .L34
432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
247 .loc 1 432 5 is_stmt 1 view .LVU83
248 00d4 2268 ldr r2, [r4]
249 00d6 1368 ldr r3, [r2]
250 00d8 23F00403 bic r3, r3, #4
251 00dc 1360 str r3, [r2]
252 .L20:
436:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Init.SyncJumpWidth |
253 .loc 1 436 3 view .LVU84
254 00de A368 ldr r3, [r4, #8]
255 00e0 E268 ldr r2, [r4, #12]
256 00e2 1343 orrs r3, r3, r2
257 00e4 2269 ldr r2, [r4, #16]
258 00e6 1343 orrs r3, r3, r2
259 00e8 6269 ldr r2, [r4, #20]
260 00ea 1343 orrs r3, r3, r2
261 00ec 6268 ldr r2, [r4, #4]
262 00ee 013A subs r2, r2, #1
ARM GAS /tmp/ccXma6Rl.s page 16
263 00f0 2168 ldr r1, [r4]
264 00f2 1343 orrs r3, r3, r2
265 00f4 CB61 str r3, [r1, #28]
443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
266 .loc 1 443 3 view .LVU85
443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
267 .loc 1 443 19 is_stmt 0 view .LVU86
268 00f6 0020 movs r0, #0
269 00f8 6062 str r0, [r4, #36]
446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
270 .loc 1 446 3 is_stmt 1 view .LVU87
446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
271 .loc 1 446 15 is_stmt 0 view .LVU88
272 00fa 0123 movs r3, #1
273 00fc 84F82030 strb r3, [r4, #32]
449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
274 .loc 1 449 3 is_stmt 1 view .LVU89
449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
275 .loc 1 449 10 is_stmt 0 view .LVU90
276 0100 A0E7 b .L3
277 .L29:
378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
278 .loc 1 378 5 is_stmt 1 view .LVU91
279 0102 1A68 ldr r2, [r3]
280 0104 42F08002 orr r2, r2, #128
281 0108 1A60 str r2, [r3]
282 010a C0E7 b .L10
283 .L30:
388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
284 .loc 1 388 5 view .LVU92
285 010c 2268 ldr r2, [r4]
286 010e 1368 ldr r3, [r2]
287 0110 43F04003 orr r3, r3, #64
288 0114 1360 str r3, [r2]
289 0116 C2E7 b .L12
290 .L31:
398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
291 .loc 1 398 5 view .LVU93
292 0118 2268 ldr r2, [r4]
293 011a 1368 ldr r3, [r2]
294 011c 43F02003 orr r3, r3, #32
295 0120 1360 str r3, [r2]
296 0122 C4E7 b .L14
297 .L32:
408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
298 .loc 1 408 5 view .LVU94
299 0124 2268 ldr r2, [r4]
300 0126 1368 ldr r3, [r2]
301 0128 23F01003 bic r3, r3, #16
302 012c 1360 str r3, [r2]
303 012e C6E7 b .L16
304 .L33:
418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
305 .loc 1 418 5 view .LVU95
306 0130 2268 ldr r2, [r4]
307 0132 1368 ldr r3, [r2]
308 0134 43F00803 orr r3, r3, #8
ARM GAS /tmp/ccXma6Rl.s page 17
309 0138 1360 str r3, [r2]
310 013a C8E7 b .L18
311 .L34:
428:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
312 .loc 1 428 5 view .LVU96
313 013c 2268 ldr r2, [r4]
314 013e 1368 ldr r3, [r2]
315 0140 43F00403 orr r3, r3, #4
316 0144 1360 str r3, [r2]
317 0146 CAE7 b .L20
318 .LVL12:
319 .L21:
320 .LCFI1:
321 .cfi_def_cfa_offset 0
322 .cfi_restore 3
323 .cfi_restore 4
324 .cfi_restore 5
325 .cfi_restore 14
281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
326 .loc 1 281 12 is_stmt 0 view .LVU97
327 0148 0120 movs r0, #1
328 .LVL13:
450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
329 .loc 1 450 1 view .LVU98
330 014a 7047 bx lr
331 .cfi_endproc
332 .LFE65:
334 .section .text.HAL_CAN_MspDeInit,"ax",%progbits
335 .align 1
336 .weak HAL_CAN_MspDeInit
337 .syntax unified
338 .thumb
339 .thumb_func
340 .fpu softvfp
342 HAL_CAN_MspDeInit:
343 .LVL14:
344 .LFB68:
515:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
516:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
517:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief DeInitializes the CAN MSP.
518:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
519:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
520:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
521:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
522:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_MspDeInit(CAN_HandleTypeDef *hcan)
523:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
345 .loc 1 523 1 is_stmt 1 view -0
346 .cfi_startproc
347 @ args = 0, pretend = 0, frame = 0
348 @ frame_needed = 0, uses_anonymous_args = 0
349 @ link register save eliminated.
524:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
525:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
350 .loc 1 525 3 view .LVU100
526:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
527:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
528:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_MspDeInit could be implemented in the user file
ARM GAS /tmp/ccXma6Rl.s page 18
529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
530:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
351 .loc 1 530 1 is_stmt 0 view .LVU101
352 0000 7047 bx lr
353 .cfi_endproc
354 .LFE68:
356 .section .text.HAL_CAN_ConfigFilter,"ax",%progbits
357 .align 1
358 .global HAL_CAN_ConfigFilter
359 .syntax unified
360 .thumb
361 .thumb_func
362 .fpu softvfp
364 HAL_CAN_ConfigFilter:
365 .LVL15:
366 .LFB69:
531:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
532:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
533:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
534:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Register a CAN CallBack.
535:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * To be used instead of the weak predefined callback
536:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
537:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for CAN module
538:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param CallbackID ID of the callback to be registered
539:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be one of the following values:
540:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CALLBACK_CB_ID Tx Mailbox 0 Complete callback
541:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CALLBACK_CB_ID Tx Mailbox 1 Complete callback
542:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CALLBACK_CB_ID Tx Mailbox 2 Complete callback
543:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CALLBACK_CB_ID Tx Mailbox 0 Abort callback ID
544:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CALLBACK_CB_ID Tx Mailbox 1 Abort callback ID
545:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CALLBACK_CB_ID Tx Mailbox 2 Abort callback ID
546:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CALLBACK_CB_ID Rx Fifo 0 message pending callb
547:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CALLBACK_CB_ID Rx Fifo 0 full callback ID
548:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSGPENDING_CALLBACK_CB_ID Rx Fifo 1 message pending callba
549:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CALLBACK_CB_ID Rx Fifo 1 full callback ID
550:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CALLBACK_CB_ID Sleep callback ID
551:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CALLBACK_CB_ID Wake Up from Rx message callback
552:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CALLBACK_CB_ID Error callback ID
553:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID
554:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID
555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param pCallback pointer to the Callback function
556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
557:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
558:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Callb
559:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
560:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK;
561:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
562:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pCallback == NULL)
563:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
564:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */
565:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
566:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
567:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
568:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
569:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
570:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY)
571:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
ARM GAS /tmp/ccXma6Rl.s page 19
572:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (CallbackID)
573:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
574:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID :
575:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = pCallback;
576:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
577:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
578:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID :
579:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = pCallback;
580:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
581:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
582:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID :
583:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = pCallback;
584:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
585:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
586:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID :
587:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0AbortCallback = pCallback;
588:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
590:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID :
591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1AbortCallback = pCallback;
592:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
593:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
594:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID :
595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2AbortCallback = pCallback;
596:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
597:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
598:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID :
599:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = pCallback;
600:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
601:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
602:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID :
603:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0FullCallback = pCallback;
604:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
605:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
606:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID :
607:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = pCallback;
608:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
609:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
610:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID :
611:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1FullCallback = pCallback;
612:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
613:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
614:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID :
615:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->SleepCallback = pCallback;
616:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
617:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
618:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID :
619:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = pCallback;
620:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
621:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
622:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID :
623:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCallback = pCallback;
624:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
625:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
626:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID :
627:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = pCallback;
628:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
ARM GAS /tmp/ccXma6Rl.s page 20
629:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
630:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID :
631:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = pCallback;
632:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
633:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
634:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default :
635:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */
636:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
637:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
638:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */
639:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR;
640:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
641:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
642:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
643:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET)
644:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (CallbackID)
646:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
647:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID :
648:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = pCallback;
649:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
650:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
651:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID :
652:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = pCallback;
653:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
654:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
655:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default :
656:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */
657:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
658:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
659:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */
660:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR;
661:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
662:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
663:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
664:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
665:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
666:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */
667:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
668:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
669:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */
670:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR;
671:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
672:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
673:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status;
674:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
675:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
676:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
677:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Unregister a CAN CallBack.
678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * CAN callabck is redirected to the weak predefined callback
679:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
680:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for CAN module
681:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param CallbackID ID of the callback to be unregistered
682:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be one of the following values:
683:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_COMPLETE_CALLBACK_CB_ID Tx Mailbox 0 Complete callback
684:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_COMPLETE_CALLBACK_CB_ID Tx Mailbox 1 Complete callback
685:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_COMPLETE_CALLBACK_CB_ID Tx Mailbox 2 Complete callback
ARM GAS /tmp/ccXma6Rl.s page 21
686:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX0_ABORT_CALLBACK_CB_ID Tx Mailbox 0 Abort callback ID
687:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX1_ABORT_CALLBACK_CB_ID Tx Mailbox 1 Abort callback ID
688:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_TX_MAILBOX2_ABORT_CALLBACK_CB_ID Tx Mailbox 2 Abort callback ID
689:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_MSG_PENDING_CALLBACK_CB_ID Rx Fifo 0 message pending callb
690:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO0_FULL_CALLBACK_CB_ID Rx Fifo 0 full callback ID
691:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_MSGPENDING_CALLBACK_CB_ID Rx Fifo 1 message pending callba
692:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_RX_FIFO1_FULL_CALLBACK_CB_ID Rx Fifo 1 full callback ID
693:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_SLEEP_CALLBACK_CB_ID Sleep callback ID
694:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_WAKEUP_FROM_RX_MSG_CALLBACK_CB_ID Wake Up from Rx message callback
695:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_ERROR_CALLBACK_CB_ID Error callback ID
696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_MSPINIT_CB_ID MspInit callback ID
697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @arg @ref HAL_CAN_MSPDEINIT_CB_ID MspDeInit callback ID
698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
700:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_UnRegisterCallback(CAN_HandleTypeDef *hcan, HAL_CAN_CallbackIDTypeDef Cal
701:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK;
703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
704:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY)
705:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (CallbackID)
707:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
708:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_COMPLETE_CB_ID :
709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0CompleteCallback = HAL_CAN_TxMailbox0CompleteCallback;
710:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
711:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
712:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_COMPLETE_CB_ID :
713:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1CompleteCallback = HAL_CAN_TxMailbox1CompleteCallback;
714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
715:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
716:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_COMPLETE_CB_ID :
717:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2CompleteCallback = HAL_CAN_TxMailbox2CompleteCallback;
718:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
719:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
720:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX0_ABORT_CB_ID :
721:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0AbortCallback = HAL_CAN_TxMailbox0AbortCallback;
722:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
723:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
724:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX1_ABORT_CB_ID :
725:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1AbortCallback = HAL_CAN_TxMailbox1AbortCallback;
726:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
727:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
728:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_TX_MAILBOX2_ABORT_CB_ID :
729:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2AbortCallback = HAL_CAN_TxMailbox2AbortCallback;
730:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
731:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
732:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO0_MSG_PENDING_CB_ID :
733:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback = HAL_CAN_RxFifo0MsgPendingCallback;
734:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
735:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
736:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO0_FULL_CB_ID :
737:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0FullCallback = HAL_CAN_RxFifo0FullCallback;
738:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
739:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
740:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO1_MSG_PENDING_CB_ID :
741:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback = HAL_CAN_RxFifo1MsgPendingCallback;
742:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
ARM GAS /tmp/ccXma6Rl.s page 22
743:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
744:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_RX_FIFO1_FULL_CB_ID :
745:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1FullCallback = HAL_CAN_RxFifo1FullCallback;
746:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
747:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
748:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_SLEEP_CB_ID :
749:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->SleepCallback = HAL_CAN_SleepCallback;
750:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
751:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
752:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_WAKEUP_FROM_RX_MSG_CB_ID :
753:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback = HAL_CAN_WakeUpFromRxMsgCallback;
754:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
755:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
756:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_ERROR_CB_ID :
757:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCallback = HAL_CAN_ErrorCallback;
758:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
759:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
760:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID :
761:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit;
762:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
763:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
764:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID :
765:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit;
766:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
767:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
768:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default :
769:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */
770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
771:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
772:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */
773:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR;
774:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
776:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
777:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if (hcan->State == HAL_CAN_STATE_RESET)
778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
779:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (CallbackID)
780:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
781:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPINIT_CB_ID :
782:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspInitCallback = HAL_CAN_MspInit;
783:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
784:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
785:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case HAL_CAN_MSPDEINIT_CB_ID :
786:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->MspDeInitCallback = HAL_CAN_MspDeInit;
787:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
788:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
789:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default :
790:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */
791:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
792:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
793:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */
794:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR;
795:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
796:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
797:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
798:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
799:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
ARM GAS /tmp/ccXma6Rl.s page 23
800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update the error code */
801:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INVALID_CALLBACK;
802:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
803:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return error status */
804:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR;
805:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
806:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
807:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status;
808:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
809:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
810:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
811:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
812:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @}
813:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
814:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
815:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group2 Configuration functions
816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Configuration functions.
817:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim
819:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
820:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Configuration functions #####
821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
822:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] This section provides functions allowing to:
823:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_ConfigFilter : Configure the CAN reception filters
824:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
825:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim
826:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
827:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
828:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
829:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
830:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Configures the CAN reception filter according to the specified
831:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * parameters in the CAN_FilterInitStruct.
832:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
833:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
834:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param sFilterConfig pointer to a CAN_FilterTypeDef structure that
835:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * contains the filter configuration information.
836:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
837:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
838:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef *hcan, CAN_FilterTypeDef *sFilterConfig)
839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
367 .loc 1 839 1 is_stmt 1 view -0
368 .cfi_startproc
369 @ args = 0, pretend = 0, frame = 0
370 @ frame_needed = 0, uses_anonymous_args = 0
371 @ link register save eliminated.
840:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t filternbrbitpos;
372 .loc 1 840 3 view .LVU103
841:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CAN_TypeDef *can_ip = hcan->Instance;
373 .loc 1 841 3 view .LVU104
374 .loc 1 841 16 is_stmt 0 view .LVU105
375 0000 0368 ldr r3, [r0]
376 .LVL16:
842:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
377 .loc 1 842 3 is_stmt 1 view .LVU106
378 .loc 1 842 24 is_stmt 0 view .LVU107
379 0002 90F82020 ldrb r2, [r0, #32] @ zero_extendqisi2
380 .LVL17:
ARM GAS /tmp/ccXma6Rl.s page 24
843:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
381 .loc 1 844 3 is_stmt 1 view .LVU108
382 .loc 1 844 38 is_stmt 0 view .LVU109
383 0006 013A subs r2, r2, #1
384 .LVL18:
385 .loc 1 844 38 view .LVU110
386 0008 D2B2 uxtb r2, r2
387 .loc 1 844 6 view .LVU111
388 000a 012A cmp r2, #1
389 000c 05D9 bls .L50
845:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
846:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */
848:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdHigh));
849:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow));
850:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh));
851:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow));
852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode));
853:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale));
854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment));
855:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation));
856:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if defined(CAN2)
858:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* CAN1 and CAN2 are dual instances with 28 common filters banks */
859:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Select master instance to access the filter banks */
860:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip = CAN1;
861:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
862:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */
863:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->FilterBank));
864:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_DUAL(sFilterConfig->SlaveStartFilterBank));
865:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
866:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* CAN1 is single instance with 14 dedicated filters banks */
867:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
868:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */
869:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_BANK_SINGLE(sFilterConfig->FilterBank));
870:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif
871:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
872:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Initialisation mode for the filter */
873:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FMR, CAN_FMR_FINIT);
874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
875:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if defined(CAN2)
876:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Select the start filter number of CAN2 slave instance */
877:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FMR, CAN_FMR_CAN2SB);
878:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FMR, sFilterConfig->SlaveStartFilterBank << CAN_FMR_CAN2SB_Pos);
879:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
880:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif
881:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Convert filter number into bit position */
882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** filternbrbitpos = (uint32_t)1 << (sFilterConfig->FilterBank & 0x1FU);
883:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
884:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter Deactivation */
885:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FA1R, filternbrbitpos);
886:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
887:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter Scale */
888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_16BIT)
889:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
890:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* 16-bit scale for the filter */
ARM GAS /tmp/ccXma6Rl.s page 25
891:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FS1R, filternbrbitpos);
892:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
893:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* First 16-bit identifier and First 16-bit mask */
894:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Or First 16-bit identifier and Second 16-bit identifier */
895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 =
896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) |
897:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
898:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
899:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Second 16-bit identifier and Second 16-bit mask */
900:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Or Third 16-bit identifier and Fourth 16-bit identifier */
901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 =
902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh);
904:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
905:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterScale == CAN_FILTERSCALE_32BIT)
907:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
908:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* 32-bit scale for the filter */
909:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FS1R, filternbrbitpos);
910:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
911:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* 32-bit identifier or First 32-bit identifier */
912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR1 =
913:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) |
914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
915:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
916:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* 32-bit mask or Second 32-bit identifier */
917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** can_ip->sFilterRegister[sFilterConfig->FilterBank].FR2 =
918:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow);
920:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
921:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
922:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter Mode */
923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterMode == CAN_FILTERMODE_IDMASK)
924:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
925:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Id/Mask mode for the filter*/
926:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FM1R, filternbrbitpos);
927:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
928:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else /* CAN_FilterInitStruct->CAN_FilterMode == CAN_FilterMode_IdList */
929:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
930:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Identifier list mode for the filter*/
931:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FM1R, filternbrbitpos);
932:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
933:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
934:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter FIFO assignment */
935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterFIFOAssignment == CAN_FILTER_FIFO0)
936:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
937:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* FIFO 0 assignation for the filter */
938:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FFA1R, filternbrbitpos);
939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
940:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
941:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
942:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* FIFO 1 assignation for the filter */
943:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FFA1R, filternbrbitpos);
944:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
945:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
946:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Filter activation */
947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (sFilterConfig->FilterActivation == CAN_FILTER_ENABLE)
ARM GAS /tmp/ccXma6Rl.s page 26
948:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
949:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(can_ip->FA1R, filternbrbitpos);
950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
951:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
952:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Leave the initialisation mode for the filter */
953:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(can_ip->FMR, CAN_FMR_FINIT);
954:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
955:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
957:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
959:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
960:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
961:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
390 .loc 1 961 5 is_stmt 1 view .LVU112
391 .loc 1 961 21 is_stmt 0 view .LVU113
392 000e 436A ldr r3, [r0, #36]
393 .LVL19:
394 .loc 1 961 21 view .LVU114
395 0010 43F48023 orr r3, r3, #262144
396 0014 4362 str r3, [r0, #36]
962:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
963:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
397 .loc 1 963 5 is_stmt 1 view .LVU115
398 .loc 1 963 12 is_stmt 0 view .LVU116
399 0016 0120 movs r0, #1
400 .LVL20:
964:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
965:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
401 .loc 1 965 1 view .LVU117
402 0018 7047 bx lr
403 .LVL21:
404 .L50:
839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t filternbrbitpos;
405 .loc 1 839 1 view .LVU118
406 001a 70B4 push {r4, r5, r6}
407 .LCFI2:
408 .cfi_def_cfa_offset 12
409 .cfi_offset 4, -12
410 .cfi_offset 5, -8
411 .cfi_offset 6, -4
848:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterIdLow));
412 .loc 1 848 5 is_stmt 1 view .LVU119
849:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdHigh));
413 .loc 1 849 5 view .LVU120
850:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ID_HALFWORD(sFilterConfig->FilterMaskIdLow));
414 .loc 1 850 5 view .LVU121
851:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_MODE(sFilterConfig->FilterMode));
415 .loc 1 851 5 view .LVU122
852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_SCALE(sFilterConfig->FilterScale));
416 .loc 1 852 5 view .LVU123
853:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_FIFO(sFilterConfig->FilterFIFOAssignment));
417 .loc 1 853 5 view .LVU124
854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_FILTER_ACTIVATION(sFilterConfig->FilterActivation));
418 .loc 1 854 5 view .LVU125
855:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
419 .loc 1 855 5 view .LVU126
ARM GAS /tmp/ccXma6Rl.s page 27
869:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif
420 .loc 1 869 5 view .LVU127
873:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
421 .loc 1 873 5 view .LVU128
422 001c D3F80022 ldr r2, [r3, #512]
423 0020 42F00102 orr r2, r2, #1
424 0024 C3F80022 str r2, [r3, #512]
882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
425 .loc 1 882 5 view .LVU129
882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
426 .loc 1 882 52 is_stmt 0 view .LVU130
427 0028 4A69 ldr r2, [r1, #20]
882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
428 .loc 1 882 65 view .LVU131
429 002a 02F01F02 and r2, r2, #31
882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
430 .loc 1 882 21 view .LVU132
431 002e 0120 movs r0, #1
432 .LVL22:
882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
433 .loc 1 882 21 view .LVU133
434 0030 00FA02F2 lsl r2, r0, r2
435 .LVL23:
885:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
436 .loc 1 885 5 is_stmt 1 view .LVU134
437 0034 D3F81C42 ldr r4, [r3, #540]
438 0038 D043 mvns r0, r2
439 003a 0440 ands r4, r4, r0
440 003c C3F81C42 str r4, [r3, #540]
888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
441 .loc 1 888 5 view .LVU135
888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
442 .loc 1 888 22 is_stmt 0 view .LVU136
443 0040 CC69 ldr r4, [r1, #28]
888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
444 .loc 1 888 8 view .LVU137
445 0042 ACB9 cbnz r4, .L38
891:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
446 .loc 1 891 7 is_stmt 1 view .LVU138
447 0044 D3F80C42 ldr r4, [r3, #524]
448 0048 0440 ands r4, r4, r0
449 004a C3F80C42 str r4, [r3, #524]
895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) |
450 .loc 1 895 7 view .LVU139
896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
451 .loc 1 896 48 is_stmt 0 view .LVU140
452 004e CE68 ldr r6, [r1, #12]
897:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
453 .loc 1 897 22 view .LVU141
454 0050 8D88 ldrh r5, [r1, #4]
895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) |
455 .loc 1 895 44 view .LVU142
456 0052 4C69 ldr r4, [r1, #20]
896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
457 .loc 1 896 75 view .LVU143
458 0054 45EA0645 orr r5, r5, r6, lsl #16
895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow) << 16U) |
ARM GAS /tmp/ccXma6Rl.s page 28
459 .loc 1 895 62 view .LVU144
460 0058 4834 adds r4, r4, #72
461 005a 43F83450 str r5, [r3, r4, lsl #3]
901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
462 .loc 1 901 7 is_stmt 1 view .LVU145
902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh);
463 .loc 1 902 48 is_stmt 0 view .LVU146
464 005e 8E68 ldr r6, [r1, #8]
903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
465 .loc 1 903 22 view .LVU147
466 0060 0D88 ldrh r5, [r1]
901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
467 .loc 1 901 44 view .LVU148
468 0062 4C69 ldr r4, [r1, #20]
902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh);
469 .loc 1 902 76 view .LVU149
470 0064 45EA0645 orr r5, r5, r6, lsl #16
901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
471 .loc 1 901 62 view .LVU150
472 0068 4834 adds r4, r4, #72
473 006a 03EBC404 add r4, r3, r4, lsl #3
474 006e 6560 str r5, [r4, #4]
475 .L38:
906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
476 .loc 1 906 5 is_stmt 1 view .LVU151
906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
477 .loc 1 906 22 is_stmt 0 view .LVU152
478 0070 CC69 ldr r4, [r1, #28]
906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
479 .loc 1 906 8 view .LVU153
480 0072 012C cmp r4, #1
481 0074 19D0 beq .L51
482 .L39:
923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
483 .loc 1 923 5 is_stmt 1 view .LVU154
923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
484 .loc 1 923 22 is_stmt 0 view .LVU155
485 0076 8C69 ldr r4, [r1, #24]
923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
486 .loc 1 923 8 view .LVU156
487 0078 74BB cbnz r4, .L40
926:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
488 .loc 1 926 7 is_stmt 1 view .LVU157
489 007a D3F80442 ldr r4, [r3, #516]
490 007e 0440 ands r4, r4, r0
491 0080 C3F80442 str r4, [r3, #516]
492 .L41:
935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
493 .loc 1 935 5 view .LVU158
935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
494 .loc 1 935 22 is_stmt 0 view .LVU159
495 0084 0C69 ldr r4, [r1, #16]
935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
496 .loc 1 935 8 view .LVU160
497 0086 6CBB cbnz r4, .L42
938:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
498 .loc 1 938 7 is_stmt 1 view .LVU161
ARM GAS /tmp/ccXma6Rl.s page 29
499 0088 D3F81442 ldr r4, [r3, #532]
500 008c 2040 ands r0, r0, r4
501 008e C3F81402 str r0, [r3, #532]
502 .L43:
947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
503 .loc 1 947 5 view .LVU162
947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
504 .loc 1 947 22 is_stmt 0 view .LVU163
505 0092 096A ldr r1, [r1, #32]
506 .LVL24:
947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
507 .loc 1 947 8 view .LVU164
508 0094 0129 cmp r1, #1
509 0096 2BD0 beq .L52
510 .LVL25:
511 .L44:
953:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
512 .loc 1 953 5 is_stmt 1 view .LVU165
513 0098 D3F80022 ldr r2, [r3, #512]
514 009c 22F00102 bic r2, r2, #1
515 00a0 C3F80022 str r2, [r3, #512]
956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
516 .loc 1 956 5 view .LVU166
956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
517 .loc 1 956 12 is_stmt 0 view .LVU167
518 00a4 0020 movs r0, #0
519 .loc 1 965 1 view .LVU168
520 00a6 70BC pop {r4, r5, r6}
521 .LCFI3:
522 .cfi_remember_state
523 .cfi_restore 6
524 .cfi_restore 5
525 .cfi_restore 4
526 .cfi_def_cfa_offset 0
527 00a8 7047 bx lr
528 .LVL26:
529 .L51:
530 .LCFI4:
531 .cfi_restore_state
909:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
532 .loc 1 909 7 is_stmt 1 view .LVU169
533 00aa D3F80C42 ldr r4, [r3, #524]
534 00ae 1443 orrs r4, r4, r2
535 00b0 C3F80C42 str r4, [r3, #524]
912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) |
536 .loc 1 912 7 view .LVU170
913:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
537 .loc 1 913 48 is_stmt 0 view .LVU171
538 00b4 0E68 ldr r6, [r1]
914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
539 .loc 1 914 22 view .LVU172
540 00b6 8D88 ldrh r5, [r1, #4]
912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) |
541 .loc 1 912 44 view .LVU173
542 00b8 4C69 ldr r4, [r1, #20]
913:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdLow);
543 .loc 1 913 72 view .LVU174
ARM GAS /tmp/ccXma6Rl.s page 30
544 00ba 45EA0645 orr r5, r5, r6, lsl #16
912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterIdHigh) << 16U) |
545 .loc 1 912 62 view .LVU175
546 00be 4834 adds r4, r4, #72
547 00c0 43F83450 str r5, [r3, r4, lsl #3]
917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
548 .loc 1 917 7 is_stmt 1 view .LVU176
918:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow);
549 .loc 1 918 48 is_stmt 0 view .LVU177
550 00c4 8E68 ldr r6, [r1, #8]
919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
551 .loc 1 919 22 view .LVU178
552 00c6 8D89 ldrh r5, [r1, #12]
917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
553 .loc 1 917 44 view .LVU179
554 00c8 4C69 ldr r4, [r1, #20]
918:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdLow);
555 .loc 1 918 76 view .LVU180
556 00ca 45EA0645 orr r5, r5, r6, lsl #16
917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((0x0000FFFFU & (uint32_t)sFilterConfig->FilterMaskIdHigh) << 16U) |
557 .loc 1 917 62 view .LVU181
558 00ce 4834 adds r4, r4, #72
559 00d0 03EBC404 add r4, r3, r4, lsl #3
560 00d4 6560 str r5, [r4, #4]
561 00d6 CEE7 b .L39
562 .L40:
931:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
563 .loc 1 931 7 is_stmt 1 view .LVU182
564 00d8 D3F80442 ldr r4, [r3, #516]
565 00dc 1443 orrs r4, r4, r2
566 00de C3F80442 str r4, [r3, #516]
567 00e2 CFE7 b .L41
568 .L42:
943:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
569 .loc 1 943 7 view .LVU183
570 00e4 D3F81402 ldr r0, [r3, #532]
571 00e8 1043 orrs r0, r0, r2
572 00ea C3F81402 str r0, [r3, #532]
573 00ee D0E7 b .L43
574 .LVL27:
575 .L52:
949:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
576 .loc 1 949 7 view .LVU184
577 00f0 D3F81C12 ldr r1, [r3, #540]
578 00f4 0A43 orrs r2, r2, r1
579 .LVL28:
949:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
580 .loc 1 949 7 is_stmt 0 view .LVU185
581 00f6 C3F81C22 str r2, [r3, #540]
582 00fa CDE7 b .L44
583 .cfi_endproc
584 .LFE69:
586 .section .text.HAL_CAN_Start,"ax",%progbits
587 .align 1
588 .global HAL_CAN_Start
589 .syntax unified
590 .thumb
ARM GAS /tmp/ccXma6Rl.s page 31
591 .thumb_func
592 .fpu softvfp
594 HAL_CAN_Start:
595 .LVL29:
596 .LFB70:
966:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
967:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
968:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @}
969:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
970:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
971:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group3 Control functions
972:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Control functions
973:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
974:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim
975:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
976:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Control functions #####
977:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
978:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] This section provides functions allowing to:
979:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_Start : Start the CAN module
980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_Stop : Stop the CAN module
981:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RequestSleep : Request sleep mode entry.
982:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_WakeUp : Wake up from sleep mode.
983:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_IsSleepActive : Check is sleep mode is active.
984:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_AddTxMessage : Add a message to the Tx mailboxes
985:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** and activate the corresponding
986:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** transmission request
987:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_AbortTxRequest : Abort transmission request
988:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetTxMailboxesFreeLevel : Return Tx mailboxes free level
989:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_IsTxMessagePending : Check if a transmission request is
990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pending on the selected Tx mailbox
991:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetRxMessage : Get a CAN frame from the Rx FIFO
992:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetRxFifoFillLevel : Return Rx FIFO fill level
993:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
994:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim
995:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
996:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
997:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
998:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
999:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Start the CAN module.
1000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1001:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1002:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
1003:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Start(CAN_HandleTypeDef *hcan)
1005:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
597 .loc 1 1005 1 is_stmt 1 view -0
598 .cfi_startproc
599 @ args = 0, pretend = 0, frame = 0
600 @ frame_needed = 0, uses_anonymous_args = 0
601 .loc 1 1005 1 is_stmt 0 view .LVU187
602 0000 38B5 push {r3, r4, r5, lr}
603 .LCFI5:
604 .cfi_def_cfa_offset 16
605 .cfi_offset 3, -16
606 .cfi_offset 4, -12
607 .cfi_offset 5, -8
608 .cfi_offset 14, -4
ARM GAS /tmp/ccXma6Rl.s page 32
1006:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart;
609 .loc 1 1006 3 is_stmt 1 view .LVU188
1007:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1008:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_READY)
610 .loc 1 1008 3 view .LVU189
611 .loc 1 1008 11 is_stmt 0 view .LVU190
612 0002 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
613 0006 DBB2 uxtb r3, r3
614 .loc 1 1008 6 view .LVU191
615 0008 012B cmp r3, #1
616 000a 05D0 beq .L59
1009:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN peripheral state */
1011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_LISTENING;
1012:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1013:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request leave initialisation */
1014:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_INRQ);
1015:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1016:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get tick */
1017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** tickstart = HAL_GetTick();
1018:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1019:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wait the acknowledge */
1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) != 0U)
1021:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1022:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check for the Timeout */
1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
1024:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1025:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
1027:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1028:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */
1029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR;
1030:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1031:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1032:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1033:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1034:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1035:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset the CAN ErrorCode */
1036:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode = HAL_CAN_ERROR_NONE;
1037:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1038:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1039:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
1040:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1041:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1042:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1043:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1044:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_READY;
617 .loc 1 1044 5 is_stmt 1 view .LVU192
618 .loc 1 1044 21 is_stmt 0 view .LVU193
619 000c 436A ldr r3, [r0, #36]
620 000e 43F40023 orr r3, r3, #524288
621 0012 4362 str r3, [r0, #36]
1045:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1046:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
622 .loc 1 1046 5 is_stmt 1 view .LVU194
623 .loc 1 1046 12 is_stmt 0 view .LVU195
624 0014 0120 movs r0, #1
ARM GAS /tmp/ccXma6Rl.s page 33
625 .LVL30:
626 .L56:
1047:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1048:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
627 .loc 1 1048 1 view .LVU196
628 0016 38BD pop {r3, r4, r5, pc}
629 .LVL31:
630 .L59:
631 .loc 1 1048 1 view .LVU197
632 0018 0446 mov r4, r0
1011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
633 .loc 1 1011 5 is_stmt 1 view .LVU198
1011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
634 .loc 1 1011 17 is_stmt 0 view .LVU199
635 001a 0223 movs r3, #2
636 001c 80F82030 strb r3, [r0, #32]
1014:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
637 .loc 1 1014 5 is_stmt 1 view .LVU200
638 0020 0268 ldr r2, [r0]
639 0022 1368 ldr r3, [r2]
640 0024 23F00103 bic r3, r3, #1
641 0028 1360 str r3, [r2]
1017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
642 .loc 1 1017 5 view .LVU201
1017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
643 .loc 1 1017 17 is_stmt 0 view .LVU202
644 002a FFF7FEFF bl HAL_GetTick
645 .LVL32:
1017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
646 .loc 1 1017 17 view .LVU203
647 002e 0546 mov r5, r0
648 .LVL33:
1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
649 .loc 1 1020 5 is_stmt 1 view .LVU204
650 .L55:
1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
651 .loc 1 1020 17 is_stmt 0 view .LVU205
652 0030 2368 ldr r3, [r4]
1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
653 .loc 1 1020 27 view .LVU206
654 0032 5B68 ldr r3, [r3, #4]
1020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
655 .loc 1 1020 11 view .LVU207
656 0034 13F0010F tst r3, #1
657 0038 0DD0 beq .L60
1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
658 .loc 1 1023 7 is_stmt 1 view .LVU208
1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
659 .loc 1 1023 12 is_stmt 0 view .LVU209
660 003a FFF7FEFF bl HAL_GetTick
661 .LVL34:
1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
662 .loc 1 1023 26 view .LVU210
663 003e 401B subs r0, r0, r5
1023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
664 .loc 1 1023 10 view .LVU211
665 0040 0A28 cmp r0, #10
ARM GAS /tmp/ccXma6Rl.s page 34
666 0042 F5D9 bls .L55
1026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
667 .loc 1 1026 9 is_stmt 1 view .LVU212
1026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
668 .loc 1 1026 25 is_stmt 0 view .LVU213
669 0044 636A ldr r3, [r4, #36]
670 0046 43F40033 orr r3, r3, #131072
671 004a 6362 str r3, [r4, #36]
1029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
672 .loc 1 1029 9 is_stmt 1 view .LVU214
1029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
673 .loc 1 1029 21 is_stmt 0 view .LVU215
674 004c 0523 movs r3, #5
675 004e 84F82030 strb r3, [r4, #32]
1031:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
676 .loc 1 1031 9 is_stmt 1 view .LVU216
1031:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
677 .loc 1 1031 16 is_stmt 0 view .LVU217
678 0052 0120 movs r0, #1
679 0054 DFE7 b .L56
680 .L60:
1036:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
681 .loc 1 1036 5 is_stmt 1 view .LVU218
1036:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
682 .loc 1 1036 21 is_stmt 0 view .LVU219
683 0056 0020 movs r0, #0
684 0058 6062 str r0, [r4, #36]
1039:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
685 .loc 1 1039 5 is_stmt 1 view .LVU220
1039:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
686 .loc 1 1039 12 is_stmt 0 view .LVU221
687 005a DCE7 b .L56
688 .cfi_endproc
689 .LFE70:
691 .section .text.HAL_CAN_Stop,"ax",%progbits
692 .align 1
693 .global HAL_CAN_Stop
694 .syntax unified
695 .thumb
696 .thumb_func
697 .fpu softvfp
699 HAL_CAN_Stop:
700 .LVL35:
701 .LFB71:
1049:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1050:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1051:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Stop the CAN module and enable access to configuration registers.
1052:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1053:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1054:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
1055:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1056:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_Stop(CAN_HandleTypeDef *hcan)
1057:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
702 .loc 1 1057 1 is_stmt 1 view -0
703 .cfi_startproc
704 @ args = 0, pretend = 0, frame = 0
705 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccXma6Rl.s page 35
706 .loc 1 1057 1 is_stmt 0 view .LVU223
707 0000 38B5 push {r3, r4, r5, lr}
708 .LCFI6:
709 .cfi_def_cfa_offset 16
710 .cfi_offset 3, -16
711 .cfi_offset 4, -12
712 .cfi_offset 5, -8
713 .cfi_offset 14, -4
1058:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tickstart;
714 .loc 1 1058 3 is_stmt 1 view .LVU224
1059:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1060:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (hcan->State == HAL_CAN_STATE_LISTENING)
715 .loc 1 1060 3 view .LVU225
716 .loc 1 1060 11 is_stmt 0 view .LVU226
717 0002 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
718 0006 DBB2 uxtb r3, r3
719 .loc 1 1060 6 view .LVU227
720 0008 022B cmp r3, #2
721 000a 05D0 beq .L67
1061:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1062:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request initialisation */
1063:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_INRQ);
1064:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1065:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get tick */
1066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** tickstart = HAL_GetTick();
1067:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1068:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wait the acknowledge */
1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_INAK) == 0U)
1070:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1071:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check for the Timeout */
1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((HAL_GetTick() - tickstart) > CAN_TIMEOUT_VALUE)
1073:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1074:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1075:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
1076:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1077:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN state */
1078:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_ERROR;
1079:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1080:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1081:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1082:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1083:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1084:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Exit from sleep mode */
1085:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);
1086:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1087:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Change CAN peripheral state */
1088:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->State = HAL_CAN_STATE_READY;
1089:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1090:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1091:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
1092:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1093:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1094:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1095:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1096:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_STARTED;
722 .loc 1 1096 5 is_stmt 1 view .LVU228
723 .loc 1 1096 21 is_stmt 0 view .LVU229
ARM GAS /tmp/ccXma6Rl.s page 36
724 000c 436A ldr r3, [r0, #36]
725 000e 43F48013 orr r3, r3, #1048576
726 0012 4362 str r3, [r0, #36]
1097:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1098:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
727 .loc 1 1098 5 is_stmt 1 view .LVU230
728 .loc 1 1098 12 is_stmt 0 view .LVU231
729 0014 0120 movs r0, #1
730 .LVL36:
731 .L64:
1099:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1100:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
732 .loc 1 1100 1 view .LVU232
733 0016 38BD pop {r3, r4, r5, pc}
734 .LVL37:
735 .L67:
736 .loc 1 1100 1 view .LVU233
737 0018 0446 mov r4, r0
1063:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
738 .loc 1 1063 5 is_stmt 1 view .LVU234
739 001a 0268 ldr r2, [r0]
740 001c 1368 ldr r3, [r2]
741 001e 43F00103 orr r3, r3, #1
742 0022 1360 str r3, [r2]
1066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
743 .loc 1 1066 5 view .LVU235
1066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
744 .loc 1 1066 17 is_stmt 0 view .LVU236
745 0024 FFF7FEFF bl HAL_GetTick
746 .LVL38:
1066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
747 .loc 1 1066 17 view .LVU237
748 0028 0546 mov r5, r0
749 .LVL39:
1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
750 .loc 1 1069 5 is_stmt 1 view .LVU238
751 .L63:
1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
752 .loc 1 1069 17 is_stmt 0 view .LVU239
753 002a 2368 ldr r3, [r4]
1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
754 .loc 1 1069 27 view .LVU240
755 002c 5A68 ldr r2, [r3, #4]
1069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
756 .loc 1 1069 11 view .LVU241
757 002e 12F0010F tst r2, #1
758 0032 0DD1 bne .L68
1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
759 .loc 1 1072 7 is_stmt 1 view .LVU242
1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
760 .loc 1 1072 12 is_stmt 0 view .LVU243
761 0034 FFF7FEFF bl HAL_GetTick
762 .LVL40:
1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
763 .loc 1 1072 26 view .LVU244
764 0038 401B subs r0, r0, r5
1072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
ARM GAS /tmp/ccXma6Rl.s page 37
765 .loc 1 1072 10 view .LVU245
766 003a 0A28 cmp r0, #10
767 003c F5D9 bls .L63
1075:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
768 .loc 1 1075 9 is_stmt 1 view .LVU246
1075:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
769 .loc 1 1075 25 is_stmt 0 view .LVU247
770 003e 636A ldr r3, [r4, #36]
771 0040 43F40033 orr r3, r3, #131072
772 0044 6362 str r3, [r4, #36]
1078:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
773 .loc 1 1078 9 is_stmt 1 view .LVU248
1078:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
774 .loc 1 1078 21 is_stmt 0 view .LVU249
775 0046 0523 movs r3, #5
776 0048 84F82030 strb r3, [r4, #32]
1080:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
777 .loc 1 1080 9 is_stmt 1 view .LVU250
1080:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
778 .loc 1 1080 16 is_stmt 0 view .LVU251
779 004c 0120 movs r0, #1
780 004e E2E7 b .L64
781 .L68:
1085:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
782 .loc 1 1085 5 is_stmt 1 view .LVU252
783 0050 1A68 ldr r2, [r3]
784 0052 22F00202 bic r2, r2, #2
785 0056 1A60 str r2, [r3]
1088:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
786 .loc 1 1088 5 view .LVU253
1088:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
787 .loc 1 1088 17 is_stmt 0 view .LVU254
788 0058 0123 movs r3, #1
789 005a 84F82030 strb r3, [r4, #32]
1091:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
790 .loc 1 1091 5 is_stmt 1 view .LVU255
1091:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
791 .loc 1 1091 12 is_stmt 0 view .LVU256
792 005e 0020 movs r0, #0
793 0060 D9E7 b .L64
794 .cfi_endproc
795 .LFE71:
797 .section .text.HAL_CAN_DeInit,"ax",%progbits
798 .align 1
799 .global HAL_CAN_DeInit
800 .syntax unified
801 .thumb
802 .thumb_func
803 .fpu softvfp
805 HAL_CAN_DeInit:
806 .LVL41:
807 .LFB66:
460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check CAN handle */
808 .loc 1 460 1 is_stmt 1 view -0
809 .cfi_startproc
810 @ args = 0, pretend = 0, frame = 0
811 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccXma6Rl.s page 38
462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
812 .loc 1 462 3 view .LVU258
462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
813 .loc 1 462 6 is_stmt 0 view .LVU259
814 0000 80B1 cbz r0, .L71
460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check CAN handle */
815 .loc 1 460 1 view .LVU260
816 0002 10B5 push {r4, lr}
817 .LCFI7:
818 .cfi_def_cfa_offset 8
819 .cfi_offset 4, -8
820 .cfi_offset 14, -4
821 0004 0446 mov r4, r0
468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
822 .loc 1 468 3 is_stmt 1 view .LVU261
471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
823 .loc 1 471 3 view .LVU262
471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
824 .loc 1 471 9 is_stmt 0 view .LVU263
825 0006 FFF7FEFF bl HAL_CAN_Stop
826 .LVL42:
484:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* (USE_HAL_CAN_REGISTER_CALLBACKS) */
827 .loc 1 484 3 is_stmt 1 view .LVU264
828 000a 2046 mov r0, r4
829 000c FFF7FEFF bl HAL_CAN_MspDeInit
830 .LVL43:
488:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
831 .loc 1 488 3 view .LVU265
832 0010 2268 ldr r2, [r4]
833 0012 1368 ldr r3, [r2]
834 0014 43F40043 orr r3, r3, #32768
835 0018 1360 str r3, [r2]
491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
836 .loc 1 491 3 view .LVU266
491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
837 .loc 1 491 19 is_stmt 0 view .LVU267
838 001a 0020 movs r0, #0
839 001c 6062 str r0, [r4, #36]
494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
840 .loc 1 494 3 is_stmt 1 view .LVU268
494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
841 .loc 1 494 15 is_stmt 0 view .LVU269
842 001e 84F82000 strb r0, [r4, #32]
497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
843 .loc 1 497 3 is_stmt 1 view .LVU270
498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
844 .loc 1 498 1 is_stmt 0 view .LVU271
845 0022 10BD pop {r4, pc}
846 .LVL44:
847 .L71:
848 .LCFI8:
849 .cfi_def_cfa_offset 0
850 .cfi_restore 4
851 .cfi_restore 14
464:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
852 .loc 1 464 12 view .LVU272
853 0024 0120 movs r0, #1
ARM GAS /tmp/ccXma6Rl.s page 39
854 .LVL45:
498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
855 .loc 1 498 1 view .LVU273
856 0026 7047 bx lr
857 .cfi_endproc
858 .LFE66:
860 .section .text.HAL_CAN_RequestSleep,"ax",%progbits
861 .align 1
862 .global HAL_CAN_RequestSleep
863 .syntax unified
864 .thumb
865 .thumb_func
866 .fpu softvfp
868 HAL_CAN_RequestSleep:
869 .LVL46:
870 .LFB72:
1101:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1102:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1103:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Request the sleep mode (low power) entry.
1104:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * When returning from this function, Sleep mode will be entered
1105:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * as soon as the current CAN activity (transmission or reception
1106:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * of a CAN frame) has been completed.
1107:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1108:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1109:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status.
1110:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1111:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_RequestSleep(CAN_HandleTypeDef *hcan)
1112:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
871 .loc 1 1112 1 is_stmt 1 view -0
872 .cfi_startproc
873 @ args = 0, pretend = 0, frame = 0
874 @ frame_needed = 0, uses_anonymous_args = 0
875 @ link register save eliminated.
1113:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
876 .loc 1 1113 3 view .LVU275
877 .loc 1 1113 24 is_stmt 0 view .LVU276
878 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
879 .LVL47:
1114:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1115:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
880 .loc 1 1115 3 is_stmt 1 view .LVU277
881 .loc 1 1115 38 is_stmt 0 view .LVU278
882 0004 013B subs r3, r3, #1
883 .LVL48:
884 .loc 1 1115 38 view .LVU279
885 0006 DBB2 uxtb r3, r3
886 .loc 1 1115 6 view .LVU280
887 0008 012B cmp r3, #1
888 000a 05D9 bls .L79
1116:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1117:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1118:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request Sleep mode */
1119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);
1120:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1121:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
1123:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
ARM GAS /tmp/ccXma6Rl.s page 40
1124:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1125:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1126:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1127:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
889 .loc 1 1127 5 is_stmt 1 view .LVU281
890 .loc 1 1127 21 is_stmt 0 view .LVU282
891 000c 436A ldr r3, [r0, #36]
892 000e 43F48023 orr r3, r3, #262144
893 0012 4362 str r3, [r0, #36]
1128:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1129:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1130:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
894 .loc 1 1130 5 is_stmt 1 view .LVU283
895 .loc 1 1130 12 is_stmt 0 view .LVU284
896 0014 0120 movs r0, #1
897 .LVL49:
1131:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1132:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
898 .loc 1 1132 1 view .LVU285
899 0016 7047 bx lr
900 .LVL50:
901 .L79:
1119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
902 .loc 1 1119 5 is_stmt 1 view .LVU286
903 0018 0268 ldr r2, [r0]
904 001a 1368 ldr r3, [r2]
905 001c 43F00203 orr r3, r3, #2
906 0020 1360 str r3, [r2]
1122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
907 .loc 1 1122 5 view .LVU287
1122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
908 .loc 1 1122 12 is_stmt 0 view .LVU288
909 0022 0020 movs r0, #0
910 .LVL51:
1122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
911 .loc 1 1122 12 view .LVU289
912 0024 7047 bx lr
913 .cfi_endproc
914 .LFE72:
916 .section .text.HAL_CAN_WakeUp,"ax",%progbits
917 .align 1
918 .global HAL_CAN_WakeUp
919 .syntax unified
920 .thumb
921 .thumb_func
922 .fpu softvfp
924 HAL_CAN_WakeUp:
925 .LVL52:
926 .LFB73:
1133:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1134:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1135:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Wake up from sleep mode.
1136:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * When returning with HAL_OK status from this function, Sleep mode
1137:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * is exited.
1138:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1139:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1140:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status.
ARM GAS /tmp/ccXma6Rl.s page 41
1141:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1142:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_WakeUp(CAN_HandleTypeDef *hcan)
1143:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
927 .loc 1 1143 1 is_stmt 1 view -0
928 .cfi_startproc
929 @ args = 0, pretend = 0, frame = 8
930 @ frame_needed = 0, uses_anonymous_args = 0
931 @ link register save eliminated.
932 .loc 1 1143 1 is_stmt 0 view .LVU291
933 0000 82B0 sub sp, sp, #8
934 .LCFI9:
935 .cfi_def_cfa_offset 8
1144:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __IO uint32_t count = 0;
936 .loc 1 1144 3 is_stmt 1 view .LVU292
937 .loc 1 1144 17 is_stmt 0 view .LVU293
938 0002 0023 movs r3, #0
939 0004 0193 str r3, [sp, #4]
1145:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t timeout = 1000000U;
940 .loc 1 1145 3 is_stmt 1 view .LVU294
941 .LVL53:
1146:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
942 .loc 1 1146 3 view .LVU295
943 .loc 1 1146 24 is_stmt 0 view .LVU296
944 0006 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
945 .LVL54:
1147:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1148:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
946 .loc 1 1148 3 is_stmt 1 view .LVU297
947 .loc 1 1148 38 is_stmt 0 view .LVU298
948 000a 013B subs r3, r3, #1
949 .LVL55:
950 .loc 1 1148 38 view .LVU299
951 000c DBB2 uxtb r3, r3
952 .loc 1 1148 6 view .LVU300
953 000e 012B cmp r3, #1
954 0010 18D8 bhi .L81
1149:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1150:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1151:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wake up request */
1152:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);
955 .loc 1 1152 5 is_stmt 1 view .LVU301
956 0012 0268 ldr r2, [r0]
957 0014 1368 ldr r3, [r2]
958 0016 23F00203 bic r3, r3, #2
959 001a 1360 str r3, [r2]
960 .L84:
1153:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1154:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Wait sleep mode is exited */
1155:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** do
961 .loc 1 1155 5 view .LVU302
1156:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1157:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Increment counter */
1158:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** count++;
962 .loc 1 1158 7 view .LVU303
963 .loc 1 1158 12 is_stmt 0 view .LVU304
964 001c 019B ldr r3, [sp, #4]
965 001e 0133 adds r3, r3, #1
ARM GAS /tmp/ccXma6Rl.s page 42
966 0020 0193 str r3, [sp, #4]
1159:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check if timeout is reached */
1161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (count > timeout)
967 .loc 1 1161 7 is_stmt 1 view .LVU305
968 .loc 1 1161 17 is_stmt 0 view .LVU306
969 0022 019A ldr r2, [sp, #4]
970 .loc 1 1161 10 view .LVU307
971 0024 0B4B ldr r3, .L87
972 0026 9A42 cmp r2, r3
973 0028 06D8 bhi .L86
1162:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1163:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_TIMEOUT;
1165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1167:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1168:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1169:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** while ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U);
974 .loc 1 1169 17 view .LVU308
975 002a 0368 ldr r3, [r0]
976 .loc 1 1169 27 view .LVU309
977 002c 5B68 ldr r3, [r3, #4]
978 .loc 1 1169 5 view .LVU310
979 002e 13F0020F tst r3, #2
980 0032 F3D1 bne .L84
1170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1171:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1172:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
981 .loc 1 1172 12 view .LVU311
982 0034 0020 movs r0, #0
983 .LVL56:
984 .loc 1 1172 12 view .LVU312
985 0036 0AE0 b .L83
986 .LVL57:
987 .L86:
1164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
988 .loc 1 1164 9 is_stmt 1 view .LVU313
1164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
989 .loc 1 1164 25 is_stmt 0 view .LVU314
990 0038 436A ldr r3, [r0, #36]
991 003a 43F40033 orr r3, r3, #131072
992 003e 4362 str r3, [r0, #36]
1166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
993 .loc 1 1166 9 is_stmt 1 view .LVU315
1166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
994 .loc 1 1166 16 is_stmt 0 view .LVU316
995 0040 0120 movs r0, #1
996 .LVL58:
1166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
997 .loc 1 1166 16 view .LVU317
998 0042 04E0 b .L83
999 .LVL59:
1000 .L81:
1173:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1174:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1175:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
ARM GAS /tmp/ccXma6Rl.s page 43
1176:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1177:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
1001 .loc 1 1177 5 is_stmt 1 view .LVU318
1002 .loc 1 1177 21 is_stmt 0 view .LVU319
1003 0044 436A ldr r3, [r0, #36]
1004 0046 43F48023 orr r3, r3, #262144
1005 004a 4362 str r3, [r0, #36]
1178:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1179:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1006 .loc 1 1179 5 is_stmt 1 view .LVU320
1007 .loc 1 1179 12 is_stmt 0 view .LVU321
1008 004c 0120 movs r0, #1
1009 .LVL60:
1010 .L83:
1180:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1181:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1011 .loc 1 1181 1 view .LVU322
1012 004e 02B0 add sp, sp, #8
1013 .LCFI10:
1014 .cfi_def_cfa_offset 0
1015 @ sp needed
1016 0050 7047 bx lr
1017 .L88:
1018 0052 00BF .align 2
1019 .L87:
1020 0054 40420F00 .word 1000000
1021 .cfi_endproc
1022 .LFE73:
1024 .section .text.HAL_CAN_IsSleepActive,"ax",%progbits
1025 .align 1
1026 .global HAL_CAN_IsSleepActive
1027 .syntax unified
1028 .thumb
1029 .thumb_func
1030 .fpu softvfp
1032 HAL_CAN_IsSleepActive:
1033 .LVL61:
1034 .LFB74:
1182:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1183:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1184:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Check is sleep mode is active.
1185:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1186:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1187:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Status
1188:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * - 0 : Sleep mode is not active.
1189:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * - 1 : Sleep mode is active.
1190:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1191:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_IsSleepActive(CAN_HandleTypeDef *hcan)
1192:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1035 .loc 1 1192 1 is_stmt 1 view -0
1036 .cfi_startproc
1037 @ args = 0, pretend = 0, frame = 0
1038 @ frame_needed = 0, uses_anonymous_args = 0
1039 @ link register save eliminated.
1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t status = 0U;
1040 .loc 1 1193 3 view .LVU324
1194:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
ARM GAS /tmp/ccXma6Rl.s page 44
1041 .loc 1 1194 3 view .LVU325
1042 .loc 1 1194 24 is_stmt 0 view .LVU326
1043 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1044 .LVL62:
1195:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1196:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1045 .loc 1 1196 3 is_stmt 1 view .LVU327
1046 .loc 1 1196 38 is_stmt 0 view .LVU328
1047 0004 013B subs r3, r3, #1
1048 .LVL63:
1049 .loc 1 1196 38 view .LVU329
1050 0006 DBB2 uxtb r3, r3
1051 .loc 1 1196 6 view .LVU330
1052 0008 012B cmp r3, #1
1053 000a 01D9 bls .L93
1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1054 .loc 1 1193 12 view .LVU331
1055 000c 0020 movs r0, #0
1056 .LVL64:
1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1057 .loc 1 1193 12 view .LVU332
1058 000e 7047 bx lr
1059 .LVL65:
1060 .L93:
1197:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1198:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1199:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Sleep mode */
1200:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U)
1061 .loc 1 1200 5 is_stmt 1 view .LVU333
1062 .loc 1 1200 14 is_stmt 0 view .LVU334
1063 0010 0368 ldr r3, [r0]
1064 .loc 1 1200 24 view .LVU335
1065 0012 5B68 ldr r3, [r3, #4]
1066 .loc 1 1200 8 view .LVU336
1067 0014 13F0020F tst r3, #2
1068 0018 01D1 bne .L92
1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1069 .loc 1 1193 12 view .LVU337
1070 001a 0020 movs r0, #0
1071 .LVL66:
1193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1072 .loc 1 1193 12 view .LVU338
1073 001c 7047 bx lr
1074 .LVL67:
1075 .L92:
1201:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1202:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = 1U;
1076 .loc 1 1202 14 view .LVU339
1077 001e 0120 movs r0, #1
1078 .LVL68:
1203:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1204:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1205:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1206:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1207:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status;
1079 .loc 1 1207 3 is_stmt 1 view .LVU340
1208:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
ARM GAS /tmp/ccXma6Rl.s page 45
1080 .loc 1 1208 1 is_stmt 0 view .LVU341
1081 0020 7047 bx lr
1082 .cfi_endproc
1083 .LFE74:
1085 .section .text.HAL_CAN_AddTxMessage,"ax",%progbits
1086 .align 1
1087 .global HAL_CAN_AddTxMessage
1088 .syntax unified
1089 .thumb
1090 .thumb_func
1091 .fpu softvfp
1093 HAL_CAN_AddTxMessage:
1094 .LVL69:
1095 .LFB75:
1209:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1210:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1211:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Add a message to the first free Tx mailbox and activate the
1212:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * corresponding transmission request.
1213:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1214:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1215:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param pHeader pointer to a CAN_TxHeaderTypeDef structure.
1216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param aData array containing the payload of the Tx frame.
1217:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param pTxMailbox pointer to a variable where the function will return
1218:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the TxMailbox used to store the Tx message.
1219:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be a value of @arg CAN_Tx_Mailboxes.
1220:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
1221:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AddTxMessage(CAN_HandleTypeDef *hcan, CAN_TxHeaderTypeDef *pHeader, uint8
1223:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1096 .loc 1 1223 1 is_stmt 1 view -0
1097 .cfi_startproc
1098 @ args = 0, pretend = 0, frame = 0
1099 @ frame_needed = 0, uses_anonymous_args = 0
1100 @ link register save eliminated.
1101 .loc 1 1223 1 is_stmt 0 view .LVU343
1102 0000 70B4 push {r4, r5, r6}
1103 .LCFI11:
1104 .cfi_def_cfa_offset 12
1105 .cfi_offset 4, -12
1106 .cfi_offset 5, -8
1107 .cfi_offset 6, -4
1224:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t transmitmailbox;
1108 .loc 1 1224 3 is_stmt 1 view .LVU344
1225:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1109 .loc 1 1225 3 view .LVU345
1110 .loc 1 1225 24 is_stmt 0 view .LVU346
1111 0002 90F82040 ldrb r4, [r0, #32] @ zero_extendqisi2
1112 .LVL70:
1226:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tsr = READ_REG(hcan->Instance->TSR);
1113 .loc 1 1226 3 is_stmt 1 view .LVU347
1114 .loc 1 1226 18 is_stmt 0 view .LVU348
1115 0006 0568 ldr r5, [r0]
1116 .loc 1 1226 12 view .LVU349
1117 0008 AD68 ldr r5, [r5, #8]
1118 .LVL71:
1227:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1228:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the parameters */
ARM GAS /tmp/ccXma6Rl.s page 46
1229:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_IDTYPE(pHeader->IDE));
1119 .loc 1 1229 3 is_stmt 1 view .LVU350
1230:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_RTR(pHeader->RTR));
1120 .loc 1 1230 3 view .LVU351
1231:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_DLC(pHeader->DLC));
1121 .loc 1 1231 3 view .LVU352
1232:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD)
1122 .loc 1 1232 3 view .LVU353
1233:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1234:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_STDID(pHeader->StdId));
1235:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1236:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1237:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1238:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_EXTID(pHeader->ExtId));
1123 .loc 1 1238 5 view .LVU354
1239:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1240:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_FUNCTIONAL_STATE(pHeader->TransmitGlobalTime));
1124 .loc 1 1240 3 view .LVU355
1241:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1242:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1125 .loc 1 1242 3 view .LVU356
1126 .loc 1 1242 38 is_stmt 0 view .LVU357
1127 000a 013C subs r4, r4, #1
1128 .LVL72:
1129 .loc 1 1242 38 view .LVU358
1130 000c E4B2 uxtb r4, r4
1131 .loc 1 1242 6 view .LVU359
1132 000e 012C cmp r4, #1
1133 0010 65D8 bhi .L95
1243:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1244:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1245:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check that all the Tx mailboxes are not full */
1246:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((tsr & CAN_TSR_TME0) != 0U) ||
1134 .loc 1 1246 5 is_stmt 1 view .LVU360
1135 .loc 1 1246 8 is_stmt 0 view .LVU361
1136 0012 15F0E05F tst r5, #469762048
1137 0016 5CD0 beq .L96
1247:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((tsr & CAN_TSR_TME1) != 0U) ||
1248:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((tsr & CAN_TSR_TME2) != 0U))
1249:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1250:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Select an empty transmit mailbox */
1251:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** transmitmailbox = (tsr & CAN_TSR_CODE) >> CAN_TSR_CODE_Pos;
1138 .loc 1 1251 7 is_stmt 1 view .LVU362
1139 .loc 1 1251 23 is_stmt 0 view .LVU363
1140 0018 C5F30165 ubfx r5, r5, #24, #2
1141 .LVL73:
1252:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1253:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check transmit mailbox value */
1254:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (transmitmailbox > 2U)
1142 .loc 1 1254 7 is_stmt 1 view .LVU364
1143 .loc 1 1254 10 is_stmt 0 view .LVU365
1144 001c 022D cmp r5, #2
1145 001e 05D9 bls .L97
1255:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1256:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1257:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_INTERNAL;
1146 .loc 1 1257 9 is_stmt 1 view .LVU366
ARM GAS /tmp/ccXma6Rl.s page 47
1147 .loc 1 1257 25 is_stmt 0 view .LVU367
1148 0020 436A ldr r3, [r0, #36]
1149 .LVL74:
1150 .loc 1 1257 25 view .LVU368
1151 0022 43F40003 orr r3, r3, #8388608
1152 0026 4362 str r3, [r0, #36]
1258:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1259:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1153 .loc 1 1259 9 is_stmt 1 view .LVU369
1154 .loc 1 1259 16 is_stmt 0 view .LVU370
1155 0028 0120 movs r0, #1
1156 .LVL75:
1157 .loc 1 1259 16 view .LVU371
1158 002a 5DE0 b .L98
1159 .LVL76:
1160 .L97:
1260:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1261:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1262:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Store the Tx mailbox */
1263:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *pTxMailbox = (uint32_t)1 << transmitmailbox;
1161 .loc 1 1263 7 is_stmt 1 view .LVU372
1162 .loc 1 1263 33 is_stmt 0 view .LVU373
1163 002c 0124 movs r4, #1
1164 002e AC40 lsls r4, r4, r5
1165 .loc 1 1263 19 view .LVU374
1166 0030 1C60 str r4, [r3]
1264:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1265:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set up the Id */
1266:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD)
1167 .loc 1 1266 7 is_stmt 1 view .LVU375
1168 .loc 1 1266 18 is_stmt 0 view .LVU376
1169 0032 8B68 ldr r3, [r1, #8]
1170 .LVL77:
1171 .loc 1 1266 10 view .LVU377
1172 0034 002B cmp r3, #0
1173 0036 39D1 bne .L99
1267:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->StdId << CAN_TI0R_STID_Pos) |
1174 .loc 1 1268 9 is_stmt 1 view .LVU378
1175 .loc 1 1268 68 is_stmt 0 view .LVU379
1176 0038 0E68 ldr r6, [r1]
1269:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR);
1177 .loc 1 1269 67 view .LVU380
1178 003a CB68 ldr r3, [r1, #12]
1268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR);
1179 .loc 1 1268 13 view .LVU381
1180 003c 0468 ldr r4, [r0]
1268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR);
1181 .loc 1 1268 98 view .LVU382
1182 003e 43EA4656 orr r6, r3, r6, lsl #21
1268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR);
1183 .loc 1 1268 57 view .LVU383
1184 0042 05F11803 add r3, r5, #24
1185 0046 1B01 lsls r3, r3, #4
1186 0048 E650 str r6, [r4, r3]
1187 .L100:
1270:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
ARM GAS /tmp/ccXma6Rl.s page 48
1271:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1272:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TIR = ((pHeader->ExtId << CAN_TI0R_EXID_Pos) |
1274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE |
1275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR);
1276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1277:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1278:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set up the DLC */
1279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->Instance->sTxMailBox[transmitmailbox].TDTR = (pHeader->DLC);
1188 .loc 1 1279 7 is_stmt 1 view .LVU384
1189 .loc 1 1279 11 is_stmt 0 view .LVU385
1190 004a 0368 ldr r3, [r0]
1191 .loc 1 1279 66 view .LVU386
1192 004c 0C69 ldr r4, [r1, #16]
1193 .loc 1 1279 56 view .LVU387
1194 004e 05F11806 add r6, r5, #24
1195 0052 03EB0613 add r3, r3, r6, lsl #4
1196 0056 5C60 str r4, [r3, #4]
1280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set up the Transmit Global Time mode */
1282:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pHeader->TransmitGlobalTime == ENABLE)
1197 .loc 1 1282 7 is_stmt 1 view .LVU388
1198 .loc 1 1282 18 is_stmt 0 view .LVU389
1199 0058 0B7D ldrb r3, [r1, #20] @ zero_extendqisi2
1200 .loc 1 1282 10 view .LVU390
1201 005a 012B cmp r3, #1
1202 005c 31D0 beq .L103
1203 .LVL78:
1204 .L101:
1283:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TDTR, CAN_TDT0R_TGT);
1285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set up the data field */
1288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDHR,
1205 .loc 1 1288 7 is_stmt 1 view .LVU391
1206 005e D179 ldrb r1, [r2, #7] @ zero_extendqisi2
1207 0060 9379 ldrb r3, [r2, #6] @ zero_extendqisi2
1208 0062 1B04 lsls r3, r3, #16
1209 0064 43EA0163 orr r3, r3, r1, lsl #24
1210 0068 5179 ldrb r1, [r2, #5] @ zero_extendqisi2
1211 006a 43EA0123 orr r3, r3, r1, lsl #8
1212 006e 1479 ldrb r4, [r2, #4] @ zero_extendqisi2
1213 0070 0168 ldr r1, [r0]
1214 0072 2343 orrs r3, r3, r4
1215 0074 2C01 lsls r4, r5, #4
1216 0076 2144 add r1, r1, r4
1217 0078 C1F88C31 str r3, [r1, #396]
1289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[7] << CAN_TDH0R_DATA7_Pos) |
1290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[6] << CAN_TDH0R_DATA6_Pos) |
1291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[5] << CAN_TDH0R_DATA5_Pos) |
1292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[4] << CAN_TDH0R_DATA4_Pos));
1293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** WRITE_REG(hcan->Instance->sTxMailBox[transmitmailbox].TDLR,
1218 .loc 1 1293 7 view .LVU392
1219 007c D178 ldrb r1, [r2, #3] @ zero_extendqisi2
1220 007e 9378 ldrb r3, [r2, #2] @ zero_extendqisi2
1221 0080 1B04 lsls r3, r3, #16
ARM GAS /tmp/ccXma6Rl.s page 49
1222 0082 43EA0163 orr r3, r3, r1, lsl #24
1223 0086 5178 ldrb r1, [r2, #1] @ zero_extendqisi2
1224 0088 43EA0123 orr r3, r3, r1, lsl #8
1225 008c 1178 ldrb r1, [r2] @ zero_extendqisi2
1226 008e 0268 ldr r2, [r0]
1227 .LVL79:
1228 .loc 1 1293 7 is_stmt 0 view .LVU393
1229 0090 0B43 orrs r3, r3, r1
1230 0092 2244 add r2, r2, r4
1231 0094 C2F88831 str r3, [r2, #392]
1294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[3] << CAN_TDL0R_DATA3_Pos) |
1295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[2] << CAN_TDL0R_DATA2_Pos) |
1296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[1] << CAN_TDL0R_DATA1_Pos) |
1297:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((uint32_t)aData[0] << CAN_TDL0R_DATA0_Pos));
1298:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1299:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Request transmission */
1300:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].TIR, CAN_TI0R_TXRQ);
1232 .loc 1 1300 7 is_stmt 1 view .LVU394
1233 0098 0168 ldr r1, [r0]
1234 009a 05F11803 add r3, r5, #24
1235 009e 1B01 lsls r3, r3, #4
1236 00a0 CA58 ldr r2, [r1, r3]
1237 00a2 42F00102 orr r2, r2, #1
1238 00a6 CA50 str r2, [r1, r3]
1301:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1302:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
1239 .loc 1 1303 7 view .LVU395
1240 .loc 1 1303 14 is_stmt 0 view .LVU396
1241 00a8 0020 movs r0, #0
1242 .LVL80:
1243 .loc 1 1303 14 view .LVU397
1244 00aa 1DE0 b .L98
1245 .LVL81:
1246 .L99:
1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE |
1247 .loc 1 1273 9 is_stmt 1 view .LVU398
1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE |
1248 .loc 1 1273 68 is_stmt 0 view .LVU399
1249 00ac 4C68 ldr r4, [r1, #4]
1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE |
1250 .loc 1 1273 98 view .LVU400
1251 00ae 43EAC403 orr r3, r3, r4, lsl #3
1275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1252 .loc 1 1275 67 view .LVU401
1253 00b2 CC68 ldr r4, [r1, #12]
1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE |
1254 .loc 1 1273 13 view .LVU402
1255 00b4 0668 ldr r6, [r0]
1274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR);
1256 .loc 1 1274 73 view .LVU403
1257 00b6 2343 orrs r3, r3, r4
1273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE |
1258 .loc 1 1273 57 view .LVU404
1259 00b8 05F11804 add r4, r5, #24
1260 00bc 2401 lsls r4, r4, #4
1261 00be 3351 str r3, [r6, r4]
ARM GAS /tmp/ccXma6Rl.s page 50
1262 00c0 C3E7 b .L100
1263 .L103:
1284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1264 .loc 1 1284 9 is_stmt 1 view .LVU405
1265 00c2 0368 ldr r3, [r0]
1266 00c4 03EB0613 add r3, r3, r6, lsl #4
1267 00c8 5968 ldr r1, [r3, #4]
1268 .LVL82:
1284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1269 .loc 1 1284 9 is_stmt 0 view .LVU406
1270 00ca 41F48071 orr r1, r1, #256
1271 00ce 5960 str r1, [r3, #4]
1272 00d0 C5E7 b .L101
1273 .LVL83:
1274 .L96:
1304:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1305:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1307:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1308:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM;
1275 .loc 1 1308 7 is_stmt 1 view .LVU407
1276 .loc 1 1308 23 is_stmt 0 view .LVU408
1277 00d2 436A ldr r3, [r0, #36]
1278 .LVL84:
1279 .loc 1 1308 23 view .LVU409
1280 00d4 43F40013 orr r3, r3, #2097152
1281 00d8 4362 str r3, [r0, #36]
1309:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1310:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1282 .loc 1 1310 7 is_stmt 1 view .LVU410
1283 .loc 1 1310 14 is_stmt 0 view .LVU411
1284 00da 0120 movs r0, #1
1285 .LVL85:
1286 .loc 1 1310 14 view .LVU412
1287 00dc 04E0 b .L98
1288 .LVL86:
1289 .L95:
1311:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1312:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1313:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1314:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1315:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1316:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
1290 .loc 1 1316 5 is_stmt 1 view .LVU413
1291 .loc 1 1316 21 is_stmt 0 view .LVU414
1292 00de 436A ldr r3, [r0, #36]
1293 .LVL87:
1294 .loc 1 1316 21 view .LVU415
1295 00e0 43F48023 orr r3, r3, #262144
1296 00e4 4362 str r3, [r0, #36]
1317:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1318:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1297 .loc 1 1318 5 is_stmt 1 view .LVU416
1298 .loc 1 1318 12 is_stmt 0 view .LVU417
1299 00e6 0120 movs r0, #1
1300 .LVL88:
1301 .L98:
ARM GAS /tmp/ccXma6Rl.s page 51
1319:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1302 .loc 1 1320 1 view .LVU418
1303 00e8 70BC pop {r4, r5, r6}
1304 .LCFI12:
1305 .cfi_restore 6
1306 .cfi_restore 5
1307 .cfi_restore 4
1308 .cfi_def_cfa_offset 0
1309 00ea 7047 bx lr
1310 .cfi_endproc
1311 .LFE75:
1313 .section .text.HAL_CAN_AbortTxRequest,"ax",%progbits
1314 .align 1
1315 .global HAL_CAN_AbortTxRequest
1316 .syntax unified
1317 .thumb
1318 .thumb_func
1319 .fpu softvfp
1321 HAL_CAN_AbortTxRequest:
1322 .LVL89:
1323 .LFB76:
1321:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1322:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1323:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Abort transmission requests
1324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1325:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param TxMailboxes List of the Tx Mailboxes to abort.
1327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes.
1328:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
1329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1330:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_AbortTxRequest(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes)
1331:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1324 .loc 1 1331 1 is_stmt 1 view -0
1325 .cfi_startproc
1326 @ args = 0, pretend = 0, frame = 0
1327 @ frame_needed = 0, uses_anonymous_args = 0
1328 @ link register save eliminated.
1332:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1329 .loc 1 1332 3 view .LVU420
1330 .loc 1 1332 24 is_stmt 0 view .LVU421
1331 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1332 .LVL90:
1333:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */
1335:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes));
1333 .loc 1 1335 3 is_stmt 1 view .LVU422
1336:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1334 .loc 1 1337 3 view .LVU423
1335 .loc 1 1337 38 is_stmt 0 view .LVU424
1336 0004 013B subs r3, r3, #1
1337 .LVL91:
1338 .loc 1 1337 38 view .LVU425
1339 0006 DBB2 uxtb r3, r3
1340 .loc 1 1337 6 view .LVU426
1341 0008 012B cmp r3, #1
ARM GAS /tmp/ccXma6Rl.s page 52
1342 000a 05D9 bls .L110
1338:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1339:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 0 */
1341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX0) != 0U)
1342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 0 */
1344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ0);
1345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 1 */
1348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX1) != 0U)
1349:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 1 */
1351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ1);
1352:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1353:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 2 */
1355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((TxMailboxes & CAN_TX_MAILBOX2) != 0U)
1356:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Add cancellation request for Tx Mailbox 2 */
1358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ2);
1359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
1363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1364:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1367:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
1343 .loc 1 1367 5 is_stmt 1 view .LVU427
1344 .loc 1 1367 21 is_stmt 0 view .LVU428
1345 000c 436A ldr r3, [r0, #36]
1346 000e 43F48023 orr r3, r3, #262144
1347 0012 4362 str r3, [r0, #36]
1368:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1348 .loc 1 1369 5 is_stmt 1 view .LVU429
1349 .loc 1 1369 12 is_stmt 0 view .LVU430
1350 0014 0120 movs r0, #1
1351 .LVL92:
1370:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1352 .loc 1 1371 1 view .LVU431
1353 0016 7047 bx lr
1354 .LVL93:
1355 .L110:
1341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1356 .loc 1 1341 5 is_stmt 1 view .LVU432
1341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1357 .loc 1 1341 8 is_stmt 0 view .LVU433
1358 0018 11F0010F tst r1, #1
1359 001c 04D0 beq .L106
1344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1360 .loc 1 1344 7 is_stmt 1 view .LVU434
1361 001e 0268 ldr r2, [r0]
ARM GAS /tmp/ccXma6Rl.s page 53
1362 0020 9368 ldr r3, [r2, #8]
1363 0022 43F08003 orr r3, r3, #128
1364 0026 9360 str r3, [r2, #8]
1365 .L106:
1348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1366 .loc 1 1348 5 view .LVU435
1348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1367 .loc 1 1348 8 is_stmt 0 view .LVU436
1368 0028 11F0020F tst r1, #2
1369 002c 04D0 beq .L107
1351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1370 .loc 1 1351 7 is_stmt 1 view .LVU437
1371 002e 0268 ldr r2, [r0]
1372 0030 9368 ldr r3, [r2, #8]
1373 0032 43F40043 orr r3, r3, #32768
1374 0036 9360 str r3, [r2, #8]
1375 .L107:
1355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1376 .loc 1 1355 5 view .LVU438
1355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1377 .loc 1 1355 8 is_stmt 0 view .LVU439
1378 0038 11F0040F tst r1, #4
1379 003c 04D0 beq .L108
1358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1380 .loc 1 1358 7 is_stmt 1 view .LVU440
1381 003e 0268 ldr r2, [r0]
1382 0040 9368 ldr r3, [r2, #8]
1383 0042 43F40003 orr r3, r3, #8388608
1384 0046 9360 str r3, [r2, #8]
1385 .L108:
1362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1386 .loc 1 1362 5 view .LVU441
1362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1387 .loc 1 1362 12 is_stmt 0 view .LVU442
1388 0048 0020 movs r0, #0
1389 .LVL94:
1362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1390 .loc 1 1362 12 view .LVU443
1391 004a 7047 bx lr
1392 .cfi_endproc
1393 .LFE76:
1395 .section .text.HAL_CAN_GetTxMailboxesFreeLevel,"ax",%progbits
1396 .align 1
1397 .global HAL_CAN_GetTxMailboxesFreeLevel
1398 .syntax unified
1399 .thumb
1400 .thumb_func
1401 .fpu softvfp
1403 HAL_CAN_GetTxMailboxesFreeLevel:
1404 .LVL95:
1405 .LFB77:
1372:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1373:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1374:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return Tx Mailboxes free level: number of free Tx Mailboxes.
1375:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1377:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Number of free Tx Mailboxes.
ARM GAS /tmp/ccXma6Rl.s page 54
1378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1379:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_GetTxMailboxesFreeLevel(CAN_HandleTypeDef *hcan)
1380:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1406 .loc 1 1380 1 is_stmt 1 view -0
1407 .cfi_startproc
1408 @ args = 0, pretend = 0, frame = 0
1409 @ frame_needed = 0, uses_anonymous_args = 0
1410 @ link register save eliminated.
1381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t freelevel = 0U;
1411 .loc 1 1381 3 view .LVU445
1382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1412 .loc 1 1382 3 view .LVU446
1413 .loc 1 1382 24 is_stmt 0 view .LVU447
1414 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1415 .LVL96:
1383:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1384:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1416 .loc 1 1384 3 is_stmt 1 view .LVU448
1417 .loc 1 1384 38 is_stmt 0 view .LVU449
1418 0004 013B subs r3, r3, #1
1419 .LVL97:
1420 .loc 1 1384 38 view .LVU450
1421 0006 DBB2 uxtb r3, r3
1422 .loc 1 1384 6 view .LVU451
1423 0008 012B cmp r3, #1
1424 000a 01D9 bls .L117
1381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1425 .loc 1 1381 12 view .LVU452
1426 000c 0020 movs r0, #0
1427 .LVL98:
1385:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1387:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 0 status */
1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME0) != 0U)
1389:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** freelevel++;
1391:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1393:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 1 status */
1394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME1) != 0U)
1395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** freelevel++;
1397:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1399:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Tx Mailbox 2 status */
1400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->TSR & CAN_TSR_TME2) != 0U)
1401:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** freelevel++;
1403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1404:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1405:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return Tx Mailboxes free level */
1407:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return freelevel;
1428 .loc 1 1407 3 is_stmt 1 view .LVU453
1429 .L111:
1408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1430 .loc 1 1408 1 is_stmt 0 view .LVU454
ARM GAS /tmp/ccXma6Rl.s page 55
1431 000e 7047 bx lr
1432 .LVL99:
1433 .L117:
1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1434 .loc 1 1388 5 is_stmt 1 view .LVU455
1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1435 .loc 1 1388 14 is_stmt 0 view .LVU456
1436 0010 0368 ldr r3, [r0]
1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1437 .loc 1 1388 24 view .LVU457
1438 0012 9A68 ldr r2, [r3, #8]
1388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1439 .loc 1 1388 8 view .LVU458
1440 0014 12F0806F tst r2, #67108864
1441 0018 0BD1 bne .L116
1381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1442 .loc 1 1381 12 view .LVU459
1443 001a 0020 movs r0, #0
1444 .LVL100:
1445 .L113:
1394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1446 .loc 1 1394 5 is_stmt 1 view .LVU460
1394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1447 .loc 1 1394 24 is_stmt 0 view .LVU461
1448 001c 9A68 ldr r2, [r3, #8]
1394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1449 .loc 1 1394 8 view .LVU462
1450 001e 12F0006F tst r2, #134217728
1451 0022 00D0 beq .L114
1396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1452 .loc 1 1396 7 is_stmt 1 view .LVU463
1396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1453 .loc 1 1396 16 is_stmt 0 view .LVU464
1454 0024 0130 adds r0, r0, #1
1455 .LVL101:
1456 .L114:
1400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1457 .loc 1 1400 5 is_stmt 1 view .LVU465
1400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1458 .loc 1 1400 24 is_stmt 0 view .LVU466
1459 0026 9B68 ldr r3, [r3, #8]
1400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1460 .loc 1 1400 8 view .LVU467
1461 0028 13F0805F tst r3, #268435456
1462 002c EFD0 beq .L111
1402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1463 .loc 1 1402 7 is_stmt 1 view .LVU468
1402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1464 .loc 1 1402 16 is_stmt 0 view .LVU469
1465 002e 0130 adds r0, r0, #1
1466 .LVL102:
1402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1467 .loc 1 1402 16 view .LVU470
1468 0030 7047 bx lr
1469 .LVL103:
1470 .L116:
1390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
ARM GAS /tmp/ccXma6Rl.s page 56
1471 .loc 1 1390 16 view .LVU471
1472 0032 0120 movs r0, #1
1473 .LVL104:
1390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1474 .loc 1 1390 16 view .LVU472
1475 0034 F2E7 b .L113
1476 .cfi_endproc
1477 .LFE77:
1479 .section .text.HAL_CAN_IsTxMessagePending,"ax",%progbits
1480 .align 1
1481 .global HAL_CAN_IsTxMessagePending
1482 .syntax unified
1483 .thumb
1484 .thumb_func
1485 .fpu softvfp
1487 HAL_CAN_IsTxMessagePending:
1488 .LVL105:
1489 .LFB78:
1409:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1410:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Check if a transmission request is pending on the selected Tx
1412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * Mailboxes.
1413:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1414:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1415:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param TxMailboxes List of Tx Mailboxes to check.
1416:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Tx_Mailboxes.
1417:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Status
1418:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * - 0 : No pending transmission request on any selected Tx Mailboxes.
1419:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * - 1 : Pending transmission request on at least one of the selected
1420:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * Tx Mailbox.
1421:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1422:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_IsTxMessagePending(CAN_HandleTypeDef *hcan, uint32_t TxMailboxes)
1423:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1490 .loc 1 1423 1 is_stmt 1 view -0
1491 .cfi_startproc
1492 @ args = 0, pretend = 0, frame = 0
1493 @ frame_needed = 0, uses_anonymous_args = 0
1494 @ link register save eliminated.
1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t status = 0U;
1495 .loc 1 1424 3 view .LVU474
1425:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1496 .loc 1 1425 3 view .LVU475
1497 .loc 1 1425 24 is_stmt 0 view .LVU476
1498 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1499 .LVL106:
1426:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1427:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */
1428:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX_LIST(TxMailboxes));
1500 .loc 1 1428 3 is_stmt 1 view .LVU477
1429:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1430:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1501 .loc 1 1430 3 view .LVU478
1502 .loc 1 1430 38 is_stmt 0 view .LVU479
1503 0004 013B subs r3, r3, #1
1504 .LVL107:
1505 .loc 1 1430 38 view .LVU480
1506 0006 DBB2 uxtb r3, r3
ARM GAS /tmp/ccXma6Rl.s page 57
1507 .loc 1 1430 6 view .LVU481
1508 0008 012B cmp r3, #1
1509 000a 01D9 bls .L122
1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1510 .loc 1 1424 12 view .LVU482
1511 000c 0020 movs r0, #0
1512 .LVL108:
1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1513 .loc 1 1424 12 view .LVU483
1514 000e 7047 bx lr
1515 .LVL109:
1516 .L122:
1431:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1432:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1433:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check pending transmission request on the selected Tx Mailboxes */
1434:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->TSR & (TxMailboxes << CAN_TSR_TME0_Pos)) != (TxMailboxes << CAN_TSR_TME0_P
1517 .loc 1 1434 5 is_stmt 1 view .LVU484
1518 .loc 1 1434 14 is_stmt 0 view .LVU485
1519 0010 0368 ldr r3, [r0]
1520 .loc 1 1434 24 view .LVU486
1521 0012 9B68 ldr r3, [r3, #8]
1522 .loc 1 1434 45 view .LVU487
1523 0014 8906 lsls r1, r1, #26
1524 .LVL110:
1525 .loc 1 1434 8 view .LVU488
1526 0016 31EA0303 bics r3, r1, r3
1527 001a 01D0 beq .L123
1435:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1436:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = 1U;
1528 .loc 1 1436 14 view .LVU489
1529 001c 0120 movs r0, #1
1530 .LVL111:
1437:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1438:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1439:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1440:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return status */
1441:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status;
1531 .loc 1 1441 3 is_stmt 1 view .LVU490
1442:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1532 .loc 1 1442 1 is_stmt 0 view .LVU491
1533 001e 7047 bx lr
1534 .LVL112:
1535 .L123:
1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1536 .loc 1 1424 12 view .LVU492
1537 0020 0020 movs r0, #0
1538 .LVL113:
1424:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1539 .loc 1 1424 12 view .LVU493
1540 0022 7047 bx lr
1541 .cfi_endproc
1542 .LFE78:
1544 .section .text.HAL_CAN_GetTxTimestamp,"ax",%progbits
1545 .align 1
1546 .global HAL_CAN_GetTxTimestamp
1547 .syntax unified
1548 .thumb
ARM GAS /tmp/ccXma6Rl.s page 58
1549 .thumb_func
1550 .fpu softvfp
1552 HAL_CAN_GetTxTimestamp:
1553 .LVL114:
1554 .LFB79:
1443:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1444:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1445:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return timestamp of Tx message sent, if time triggered communication
1446:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** mode is enabled.
1447:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1448:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1449:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param TxMailbox Tx Mailbox where the timestamp of message sent will be
1450:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * read.
1451:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be one value of @arg CAN_Tx_Mailboxes.
1452:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Timestamp of message sent from Tx Mailbox.
1453:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1454:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_GetTxTimestamp(CAN_HandleTypeDef *hcan, uint32_t TxMailbox)
1455:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1555 .loc 1 1455 1 is_stmt 1 view -0
1556 .cfi_startproc
1557 @ args = 0, pretend = 0, frame = 0
1558 @ frame_needed = 0, uses_anonymous_args = 0
1559 @ link register save eliminated.
1456:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t timestamp = 0U;
1560 .loc 1 1456 3 view .LVU495
1457:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t transmitmailbox;
1561 .loc 1 1457 3 view .LVU496
1458:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1562 .loc 1 1458 3 view .LVU497
1563 .loc 1 1458 24 is_stmt 0 view .LVU498
1564 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1565 .LVL115:
1459:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1460:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */
1461:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_TX_MAILBOX(TxMailbox));
1566 .loc 1 1461 3 is_stmt 1 view .LVU499
1462:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1463:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1567 .loc 1 1463 3 view .LVU500
1568 .loc 1 1463 38 is_stmt 0 view .LVU501
1569 0004 013B subs r3, r3, #1
1570 .LVL116:
1571 .loc 1 1463 38 view .LVU502
1572 0006 DBB2 uxtb r3, r3
1573 .loc 1 1463 6 view .LVU503
1574 0008 012B cmp r3, #1
1575 000a 01D9 bls .L127
1456:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t transmitmailbox;
1576 .loc 1 1456 12 view .LVU504
1577 000c 0020 movs r0, #0
1578 .LVL117:
1464:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1465:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1466:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Select the Tx mailbox */
1467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** transmitmailbox = POSITION_VAL(TxMailbox);
1468:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1469:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get timestamp */
ARM GAS /tmp/ccXma6Rl.s page 59
1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** timestamp = (hcan->Instance->sTxMailBox[transmitmailbox].TDTR & CAN_TDT0R_TIME) >> CAN_TDT0R_TI
1471:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1472:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1473:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return the timestamp */
1474:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return timestamp;
1579 .loc 1 1474 3 is_stmt 1 view .LVU505
1475:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1580 .loc 1 1475 1 is_stmt 0 view .LVU506
1581 000e 7047 bx lr
1582 .LVL118:
1583 .L127:
1467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1584 .loc 1 1467 5 is_stmt 1 view .LVU507
1585 .LBB4:
1586 .LBI4:
1587 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h"
1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//**
2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h
3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file
4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.0.4
5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 09. April 2018
6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/
7:Drivers/CMSIS/Include/cmsis_gcc.h **** /*
8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
9:Drivers/CMSIS/Include/cmsis_gcc.h **** *
10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0
11:Drivers/CMSIS/Include/cmsis_gcc.h **** *
12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may
13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License.
14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at
15:Drivers/CMSIS/Include/cmsis_gcc.h **** *
16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0
17:Drivers/CMSIS/Include/cmsis_gcc.h **** *
18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software
19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and
22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License.
23:Drivers/CMSIS/Include/cmsis_gcc.h **** */
24:Drivers/CMSIS/Include/cmsis_gcc.h ****
25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H
26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H
27:Drivers/CMSIS/Include/cmsis_gcc.h ****
28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */
29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion"
31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion"
32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter"
33:Drivers/CMSIS/Include/cmsis_gcc.h ****
34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */
35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin
36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0)
37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
38:Drivers/CMSIS/Include/cmsis_gcc.h ****
39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */
40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM
41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm
ARM GAS /tmp/ccXma6Rl.s page 60
42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE
44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline
45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE
47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline
48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE
50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline
51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN
53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__))
54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED
56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used))
57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK
59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak))
60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED
62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1)))
63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT
65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION
68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1)))
69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */
71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; };
75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v)
77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE
79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))-
85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ
87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add
93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE
95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
ARM GAS /tmp/ccXma6Rl.s page 61
99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))-
101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ
103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push
104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked"
105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes"
106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop
108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add
109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED
111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x)))
112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT
114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict
115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
116:Drivers/CMSIS/Include/cmsis_gcc.h ****
117:Drivers/CMSIS/Include/cmsis_gcc.h ****
118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */
119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface
120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions
121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
122:Drivers/CMSIS/Include/cmsis_gcc.h **** */
123:Drivers/CMSIS/Include/cmsis_gcc.h ****
124:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts
126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
128:Drivers/CMSIS/Include/cmsis_gcc.h **** */
129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void)
130:Drivers/CMSIS/Include/cmsis_gcc.h **** {
131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory");
132:Drivers/CMSIS/Include/cmsis_gcc.h **** }
133:Drivers/CMSIS/Include/cmsis_gcc.h ****
134:Drivers/CMSIS/Include/cmsis_gcc.h ****
135:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts
137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR.
138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
139:Drivers/CMSIS/Include/cmsis_gcc.h **** */
140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void)
141:Drivers/CMSIS/Include/cmsis_gcc.h **** {
142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory");
143:Drivers/CMSIS/Include/cmsis_gcc.h **** }
144:Drivers/CMSIS/Include/cmsis_gcc.h ****
145:Drivers/CMSIS/Include/cmsis_gcc.h ****
146:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register
148:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register.
149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value
150:Drivers/CMSIS/Include/cmsis_gcc.h **** */
151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void)
152:Drivers/CMSIS/Include/cmsis_gcc.h **** {
153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
154:Drivers/CMSIS/Include/cmsis_gcc.h ****
155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) );
ARM GAS /tmp/ccXma6Rl.s page 62
156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
157:Drivers/CMSIS/Include/cmsis_gcc.h **** }
158:Drivers/CMSIS/Include/cmsis_gcc.h ****
159:Drivers/CMSIS/Include/cmsis_gcc.h ****
160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
161:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure)
163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode.
164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value
165:Drivers/CMSIS/Include/cmsis_gcc.h **** */
166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void)
167:Drivers/CMSIS/Include/cmsis_gcc.h **** {
168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
169:Drivers/CMSIS/Include/cmsis_gcc.h ****
170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) );
171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
172:Drivers/CMSIS/Include/cmsis_gcc.h **** }
173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
174:Drivers/CMSIS/Include/cmsis_gcc.h ****
175:Drivers/CMSIS/Include/cmsis_gcc.h ****
176:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register
178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register.
179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
180:Drivers/CMSIS/Include/cmsis_gcc.h **** */
181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control)
182:Drivers/CMSIS/Include/cmsis_gcc.h **** {
183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory");
184:Drivers/CMSIS/Include/cmsis_gcc.h **** }
185:Drivers/CMSIS/Include/cmsis_gcc.h ****
186:Drivers/CMSIS/Include/cmsis_gcc.h ****
187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
188:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure)
190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state.
191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set
192:Drivers/CMSIS/Include/cmsis_gcc.h **** */
193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control)
194:Drivers/CMSIS/Include/cmsis_gcc.h **** {
195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory");
196:Drivers/CMSIS/Include/cmsis_gcc.h **** }
197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
198:Drivers/CMSIS/Include/cmsis_gcc.h ****
199:Drivers/CMSIS/Include/cmsis_gcc.h ****
200:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register
202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register.
203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value
204:Drivers/CMSIS/Include/cmsis_gcc.h **** */
205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void)
206:Drivers/CMSIS/Include/cmsis_gcc.h **** {
207:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
208:Drivers/CMSIS/Include/cmsis_gcc.h ****
209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) );
210:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
211:Drivers/CMSIS/Include/cmsis_gcc.h **** }
212:Drivers/CMSIS/Include/cmsis_gcc.h ****
ARM GAS /tmp/ccXma6Rl.s page 63
213:Drivers/CMSIS/Include/cmsis_gcc.h ****
214:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register
216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register.
217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value
218:Drivers/CMSIS/Include/cmsis_gcc.h **** */
219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void)
220:Drivers/CMSIS/Include/cmsis_gcc.h **** {
221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
222:Drivers/CMSIS/Include/cmsis_gcc.h ****
223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) );
224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
225:Drivers/CMSIS/Include/cmsis_gcc.h **** }
226:Drivers/CMSIS/Include/cmsis_gcc.h ****
227:Drivers/CMSIS/Include/cmsis_gcc.h ****
228:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register
230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register.
231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value
232:Drivers/CMSIS/Include/cmsis_gcc.h **** */
233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void)
234:Drivers/CMSIS/Include/cmsis_gcc.h **** {
235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
236:Drivers/CMSIS/Include/cmsis_gcc.h ****
237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) );
238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
239:Drivers/CMSIS/Include/cmsis_gcc.h **** }
240:Drivers/CMSIS/Include/cmsis_gcc.h ****
241:Drivers/CMSIS/Include/cmsis_gcc.h ****
242:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer
244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP).
245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
246:Drivers/CMSIS/Include/cmsis_gcc.h **** */
247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void)
248:Drivers/CMSIS/Include/cmsis_gcc.h **** {
249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
250:Drivers/CMSIS/Include/cmsis_gcc.h ****
251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) );
252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
253:Drivers/CMSIS/Include/cmsis_gcc.h **** }
254:Drivers/CMSIS/Include/cmsis_gcc.h ****
255:Drivers/CMSIS/Include/cmsis_gcc.h ****
256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
257:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure)
259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s
260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value
261:Drivers/CMSIS/Include/cmsis_gcc.h **** */
262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void)
263:Drivers/CMSIS/Include/cmsis_gcc.h **** {
264:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
265:Drivers/CMSIS/Include/cmsis_gcc.h ****
266:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) );
267:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
268:Drivers/CMSIS/Include/cmsis_gcc.h **** }
269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
ARM GAS /tmp/ccXma6Rl.s page 64
270:Drivers/CMSIS/Include/cmsis_gcc.h ****
271:Drivers/CMSIS/Include/cmsis_gcc.h ****
272:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer
274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP).
275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
276:Drivers/CMSIS/Include/cmsis_gcc.h **** */
277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack)
278:Drivers/CMSIS/Include/cmsis_gcc.h **** {
279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : );
280:Drivers/CMSIS/Include/cmsis_gcc.h **** }
281:Drivers/CMSIS/Include/cmsis_gcc.h ****
282:Drivers/CMSIS/Include/cmsis_gcc.h ****
283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
284:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta
287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set
288:Drivers/CMSIS/Include/cmsis_gcc.h **** */
289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack)
290:Drivers/CMSIS/Include/cmsis_gcc.h **** {
291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : );
292:Drivers/CMSIS/Include/cmsis_gcc.h **** }
293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
294:Drivers/CMSIS/Include/cmsis_gcc.h ****
295:Drivers/CMSIS/Include/cmsis_gcc.h ****
296:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer
298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP).
299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
300:Drivers/CMSIS/Include/cmsis_gcc.h **** */
301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void)
302:Drivers/CMSIS/Include/cmsis_gcc.h **** {
303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
304:Drivers/CMSIS/Include/cmsis_gcc.h ****
305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) );
306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
307:Drivers/CMSIS/Include/cmsis_gcc.h **** }
308:Drivers/CMSIS/Include/cmsis_gcc.h ****
309:Drivers/CMSIS/Include/cmsis_gcc.h ****
310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
311:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure)
313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat
314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value
315:Drivers/CMSIS/Include/cmsis_gcc.h **** */
316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void)
317:Drivers/CMSIS/Include/cmsis_gcc.h **** {
318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
319:Drivers/CMSIS/Include/cmsis_gcc.h ****
320:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) );
321:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
322:Drivers/CMSIS/Include/cmsis_gcc.h **** }
323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
324:Drivers/CMSIS/Include/cmsis_gcc.h ****
325:Drivers/CMSIS/Include/cmsis_gcc.h ****
326:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
ARM GAS /tmp/ccXma6Rl.s page 65
327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer
328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP).
329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
330:Drivers/CMSIS/Include/cmsis_gcc.h **** */
331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack)
332:Drivers/CMSIS/Include/cmsis_gcc.h **** {
333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : );
334:Drivers/CMSIS/Include/cmsis_gcc.h **** }
335:Drivers/CMSIS/Include/cmsis_gcc.h ****
336:Drivers/CMSIS/Include/cmsis_gcc.h ****
337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
338:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure)
340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state.
341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set
342:Drivers/CMSIS/Include/cmsis_gcc.h **** */
343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack)
344:Drivers/CMSIS/Include/cmsis_gcc.h **** {
345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : );
346:Drivers/CMSIS/Include/cmsis_gcc.h **** }
347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
348:Drivers/CMSIS/Include/cmsis_gcc.h ****
349:Drivers/CMSIS/Include/cmsis_gcc.h ****
350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
351:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure)
353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state.
354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value
355:Drivers/CMSIS/Include/cmsis_gcc.h **** */
356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void)
357:Drivers/CMSIS/Include/cmsis_gcc.h **** {
358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
359:Drivers/CMSIS/Include/cmsis_gcc.h ****
360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) );
361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
362:Drivers/CMSIS/Include/cmsis_gcc.h **** }
363:Drivers/CMSIS/Include/cmsis_gcc.h ****
364:Drivers/CMSIS/Include/cmsis_gcc.h ****
365:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure)
367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state.
368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set
369:Drivers/CMSIS/Include/cmsis_gcc.h **** */
370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack)
371:Drivers/CMSIS/Include/cmsis_gcc.h **** {
372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : );
373:Drivers/CMSIS/Include/cmsis_gcc.h **** }
374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
375:Drivers/CMSIS/Include/cmsis_gcc.h ****
376:Drivers/CMSIS/Include/cmsis_gcc.h ****
377:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
378:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask
379:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register.
380:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
381:Drivers/CMSIS/Include/cmsis_gcc.h **** */
382:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void)
383:Drivers/CMSIS/Include/cmsis_gcc.h **** {
ARM GAS /tmp/ccXma6Rl.s page 66
384:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
385:Drivers/CMSIS/Include/cmsis_gcc.h ****
386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
388:Drivers/CMSIS/Include/cmsis_gcc.h **** }
389:Drivers/CMSIS/Include/cmsis_gcc.h ****
390:Drivers/CMSIS/Include/cmsis_gcc.h ****
391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
392:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure)
394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg
395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value
396:Drivers/CMSIS/Include/cmsis_gcc.h **** */
397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void)
398:Drivers/CMSIS/Include/cmsis_gcc.h **** {
399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
400:Drivers/CMSIS/Include/cmsis_gcc.h ****
401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory");
402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
403:Drivers/CMSIS/Include/cmsis_gcc.h **** }
404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
405:Drivers/CMSIS/Include/cmsis_gcc.h ****
406:Drivers/CMSIS/Include/cmsis_gcc.h ****
407:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask
409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register.
410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
411:Drivers/CMSIS/Include/cmsis_gcc.h **** */
412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask)
413:Drivers/CMSIS/Include/cmsis_gcc.h **** {
414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
415:Drivers/CMSIS/Include/cmsis_gcc.h **** }
416:Drivers/CMSIS/Include/cmsis_gcc.h ****
417:Drivers/CMSIS/Include/cmsis_gcc.h ****
418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
419:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure)
421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state.
422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask
423:Drivers/CMSIS/Include/cmsis_gcc.h **** */
424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask)
425:Drivers/CMSIS/Include/cmsis_gcc.h **** {
426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory");
427:Drivers/CMSIS/Include/cmsis_gcc.h **** }
428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
429:Drivers/CMSIS/Include/cmsis_gcc.h ****
430:Drivers/CMSIS/Include/cmsis_gcc.h ****
431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
433:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
434:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
435:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ
436:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR.
437:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
438:Drivers/CMSIS/Include/cmsis_gcc.h **** */
439:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void)
440:Drivers/CMSIS/Include/cmsis_gcc.h **** {
ARM GAS /tmp/ccXma6Rl.s page 67
441:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory");
442:Drivers/CMSIS/Include/cmsis_gcc.h **** }
443:Drivers/CMSIS/Include/cmsis_gcc.h ****
444:Drivers/CMSIS/Include/cmsis_gcc.h ****
445:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ
447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR.
448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes.
449:Drivers/CMSIS/Include/cmsis_gcc.h **** */
450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void)
451:Drivers/CMSIS/Include/cmsis_gcc.h **** {
452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory");
453:Drivers/CMSIS/Include/cmsis_gcc.h **** }
454:Drivers/CMSIS/Include/cmsis_gcc.h ****
455:Drivers/CMSIS/Include/cmsis_gcc.h ****
456:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority
458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register.
459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
460:Drivers/CMSIS/Include/cmsis_gcc.h **** */
461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void)
462:Drivers/CMSIS/Include/cmsis_gcc.h **** {
463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
464:Drivers/CMSIS/Include/cmsis_gcc.h ****
465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) );
466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
467:Drivers/CMSIS/Include/cmsis_gcc.h **** }
468:Drivers/CMSIS/Include/cmsis_gcc.h ****
469:Drivers/CMSIS/Include/cmsis_gcc.h ****
470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
471:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure)
473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state.
474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value
475:Drivers/CMSIS/Include/cmsis_gcc.h **** */
476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void)
477:Drivers/CMSIS/Include/cmsis_gcc.h **** {
478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
479:Drivers/CMSIS/Include/cmsis_gcc.h ****
480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) );
481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
482:Drivers/CMSIS/Include/cmsis_gcc.h **** }
483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
484:Drivers/CMSIS/Include/cmsis_gcc.h ****
485:Drivers/CMSIS/Include/cmsis_gcc.h ****
486:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority
488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register.
489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
490:Drivers/CMSIS/Include/cmsis_gcc.h **** */
491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri)
492:Drivers/CMSIS/Include/cmsis_gcc.h **** {
493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory");
494:Drivers/CMSIS/Include/cmsis_gcc.h **** }
495:Drivers/CMSIS/Include/cmsis_gcc.h ****
496:Drivers/CMSIS/Include/cmsis_gcc.h ****
497:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
ARM GAS /tmp/ccXma6Rl.s page 68
498:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure)
500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state.
501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
502:Drivers/CMSIS/Include/cmsis_gcc.h **** */
503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri)
504:Drivers/CMSIS/Include/cmsis_gcc.h **** {
505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory");
506:Drivers/CMSIS/Include/cmsis_gcc.h **** }
507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
508:Drivers/CMSIS/Include/cmsis_gcc.h ****
509:Drivers/CMSIS/Include/cmsis_gcc.h ****
510:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition
512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable
513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level.
514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set
515:Drivers/CMSIS/Include/cmsis_gcc.h **** */
516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri)
517:Drivers/CMSIS/Include/cmsis_gcc.h **** {
518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory");
519:Drivers/CMSIS/Include/cmsis_gcc.h **** }
520:Drivers/CMSIS/Include/cmsis_gcc.h ****
521:Drivers/CMSIS/Include/cmsis_gcc.h ****
522:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask
524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register.
525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
526:Drivers/CMSIS/Include/cmsis_gcc.h **** */
527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void)
528:Drivers/CMSIS/Include/cmsis_gcc.h **** {
529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
530:Drivers/CMSIS/Include/cmsis_gcc.h ****
531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
533:Drivers/CMSIS/Include/cmsis_gcc.h **** }
534:Drivers/CMSIS/Include/cmsis_gcc.h ****
535:Drivers/CMSIS/Include/cmsis_gcc.h ****
536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
537:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure)
539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state.
540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value
541:Drivers/CMSIS/Include/cmsis_gcc.h **** */
542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void)
543:Drivers/CMSIS/Include/cmsis_gcc.h **** {
544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
545:Drivers/CMSIS/Include/cmsis_gcc.h ****
546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) );
547:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
548:Drivers/CMSIS/Include/cmsis_gcc.h **** }
549:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
550:Drivers/CMSIS/Include/cmsis_gcc.h ****
551:Drivers/CMSIS/Include/cmsis_gcc.h ****
552:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
553:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask
554:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register.
ARM GAS /tmp/ccXma6Rl.s page 69
555:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
556:Drivers/CMSIS/Include/cmsis_gcc.h **** */
557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask)
558:Drivers/CMSIS/Include/cmsis_gcc.h **** {
559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory");
560:Drivers/CMSIS/Include/cmsis_gcc.h **** }
561:Drivers/CMSIS/Include/cmsis_gcc.h ****
562:Drivers/CMSIS/Include/cmsis_gcc.h ****
563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
564:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure)
566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state.
567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set
568:Drivers/CMSIS/Include/cmsis_gcc.h **** */
569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask)
570:Drivers/CMSIS/Include/cmsis_gcc.h **** {
571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory");
572:Drivers/CMSIS/Include/cmsis_gcc.h **** }
573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
574:Drivers/CMSIS/Include/cmsis_gcc.h ****
575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */
578:Drivers/CMSIS/Include/cmsis_gcc.h ****
579:Drivers/CMSIS/Include/cmsis_gcc.h ****
580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) )
582:Drivers/CMSIS/Include/cmsis_gcc.h ****
583:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit
585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
588:Drivers/CMSIS/Include/cmsis_gcc.h ****
589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM).
590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
591:Drivers/CMSIS/Include/cmsis_gcc.h **** */
592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void)
593:Drivers/CMSIS/Include/cmsis_gcc.h **** {
594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) );
601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
603:Drivers/CMSIS/Include/cmsis_gcc.h **** }
604:Drivers/CMSIS/Include/cmsis_gcc.h ****
605:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3))
606:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
607:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure)
608:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
609:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
610:Drivers/CMSIS/Include/cmsis_gcc.h ****
611:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in
ARM GAS /tmp/ccXma6Rl.s page 70
612:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value
613:Drivers/CMSIS/Include/cmsis_gcc.h **** */
614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void)
615:Drivers/CMSIS/Include/cmsis_gcc.h **** {
616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) );
622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
624:Drivers/CMSIS/Include/cmsis_gcc.h **** }
625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
626:Drivers/CMSIS/Include/cmsis_gcc.h ****
627:Drivers/CMSIS/Include/cmsis_gcc.h ****
628:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit
630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
633:Drivers/CMSIS/Include/cmsis_gcc.h ****
634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM).
635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
636:Drivers/CMSIS/Include/cmsis_gcc.h **** */
637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit)
638:Drivers/CMSIS/Include/cmsis_gcc.h **** {
639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit));
645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
646:Drivers/CMSIS/Include/cmsis_gcc.h **** }
647:Drivers/CMSIS/Include/cmsis_gcc.h ****
648:Drivers/CMSIS/Include/cmsis_gcc.h ****
649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
650:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure)
652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
654:Drivers/CMSIS/Include/cmsis_gcc.h ****
655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s
656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set
657:Drivers/CMSIS/Include/cmsis_gcc.h **** */
658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit)
659:Drivers/CMSIS/Include/cmsis_gcc.h **** {
660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
661:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI
662:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit;
663:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
664:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit));
665:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
666:Drivers/CMSIS/Include/cmsis_gcc.h **** }
667:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
668:Drivers/CMSIS/Include/cmsis_gcc.h ****
ARM GAS /tmp/ccXma6Rl.s page 71
669:Drivers/CMSIS/Include/cmsis_gcc.h ****
670:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit
672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure
674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
675:Drivers/CMSIS/Include/cmsis_gcc.h ****
676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM).
677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
678:Drivers/CMSIS/Include/cmsis_gcc.h **** */
679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void)
680:Drivers/CMSIS/Include/cmsis_gcc.h **** {
681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) );
688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
690:Drivers/CMSIS/Include/cmsis_gcc.h **** }
691:Drivers/CMSIS/Include/cmsis_gcc.h ****
692:Drivers/CMSIS/Include/cmsis_gcc.h ****
693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
694:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure)
696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always.
698:Drivers/CMSIS/Include/cmsis_gcc.h ****
699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec
700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value
701:Drivers/CMSIS/Include/cmsis_gcc.h **** */
702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void)
703:Drivers/CMSIS/Include/cmsis_gcc.h **** {
704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U;
707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) );
710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
712:Drivers/CMSIS/Include/cmsis_gcc.h **** }
713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
714:Drivers/CMSIS/Include/cmsis_gcc.h ****
715:Drivers/CMSIS/Include/cmsis_gcc.h ****
716:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit
718:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
719:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure
720:Drivers/CMSIS/Include/cmsis_gcc.h **** mode.
721:Drivers/CMSIS/Include/cmsis_gcc.h ****
722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM).
723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set
724:Drivers/CMSIS/Include/cmsis_gcc.h **** */
725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit)
ARM GAS /tmp/ccXma6Rl.s page 72
726:Drivers/CMSIS/Include/cmsis_gcc.h **** {
727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \
728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3)))
729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit));
733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
734:Drivers/CMSIS/Include/cmsis_gcc.h **** }
735:Drivers/CMSIS/Include/cmsis_gcc.h ****
736:Drivers/CMSIS/Include/cmsis_gcc.h ****
737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3))
738:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure)
740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure
741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored.
742:Drivers/CMSIS/Include/cmsis_gcc.h ****
743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu
744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set
745:Drivers/CMSIS/Include/cmsis_gcc.h **** */
746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit)
747:Drivers/CMSIS/Include/cmsis_gcc.h **** {
748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)))
749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI
750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit;
751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit));
753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
754:Drivers/CMSIS/Include/cmsis_gcc.h **** }
755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
756:Drivers/CMSIS/Include/cmsis_gcc.h ****
757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \
758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */
759:Drivers/CMSIS/Include/cmsis_gcc.h ****
760:Drivers/CMSIS/Include/cmsis_gcc.h ****
761:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR
763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register.
764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value
765:Drivers/CMSIS/Include/cmsis_gcc.h **** */
766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void)
767:Drivers/CMSIS/Include/cmsis_gcc.h **** {
768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr)
771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr();
775:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
776:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
777:Drivers/CMSIS/Include/cmsis_gcc.h ****
778:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
779:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result);
780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
781:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
782:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U);
ARM GAS /tmp/ccXma6Rl.s page 73
783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
784:Drivers/CMSIS/Include/cmsis_gcc.h **** }
785:Drivers/CMSIS/Include/cmsis_gcc.h ****
786:Drivers/CMSIS/Include/cmsis_gcc.h ****
787:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR
789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register.
790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set
791:Drivers/CMSIS/Include/cmsis_gcc.h **** */
792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
793:Drivers/CMSIS/Include/cmsis_gcc.h **** {
794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) )
796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr)
797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed
798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr);
801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr;
806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
807:Drivers/CMSIS/Include/cmsis_gcc.h **** }
808:Drivers/CMSIS/Include/cmsis_gcc.h ****
809:Drivers/CMSIS/Include/cmsis_gcc.h ****
810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */
811:Drivers/CMSIS/Include/cmsis_gcc.h ****
812:Drivers/CMSIS/Include/cmsis_gcc.h ****
813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */
814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface
815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions
816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{
817:Drivers/CMSIS/Include/cmsis_gcc.h **** */
818:Drivers/CMSIS/Include/cmsis_gcc.h ****
819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2.
820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l"
821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */
822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__)
823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r)
824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r)
825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r)
826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r)
828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r)
829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r)
830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
831:Drivers/CMSIS/Include/cmsis_gcc.h ****
832:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
833:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation
834:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes.
835:Drivers/CMSIS/Include/cmsis_gcc.h **** */
836:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop")
837:Drivers/CMSIS/Include/cmsis_gcc.h ****
838:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
839:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt
ARM GAS /tmp/ccXma6Rl.s page 74
840:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o
841:Drivers/CMSIS/Include/cmsis_gcc.h **** */
842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi")
843:Drivers/CMSIS/Include/cmsis_gcc.h ****
844:Drivers/CMSIS/Include/cmsis_gcc.h ****
845:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event
847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter
848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs.
849:Drivers/CMSIS/Include/cmsis_gcc.h **** */
850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe")
851:Drivers/CMSIS/Include/cmsis_gcc.h ****
852:Drivers/CMSIS/Include/cmsis_gcc.h ****
853:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event
855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU.
856:Drivers/CMSIS/Include/cmsis_gcc.h **** */
857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev")
858:Drivers/CMSIS/Include/cmsis_gcc.h ****
859:Drivers/CMSIS/Include/cmsis_gcc.h ****
860:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier
862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor,
863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory,
864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed.
865:Drivers/CMSIS/Include/cmsis_gcc.h **** */
866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void)
867:Drivers/CMSIS/Include/cmsis_gcc.h **** {
868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory");
869:Drivers/CMSIS/Include/cmsis_gcc.h **** }
870:Drivers/CMSIS/Include/cmsis_gcc.h ****
871:Drivers/CMSIS/Include/cmsis_gcc.h ****
872:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier
874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier.
875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete.
876:Drivers/CMSIS/Include/cmsis_gcc.h **** */
877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void)
878:Drivers/CMSIS/Include/cmsis_gcc.h **** {
879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory");
880:Drivers/CMSIS/Include/cmsis_gcc.h **** }
881:Drivers/CMSIS/Include/cmsis_gcc.h ****
882:Drivers/CMSIS/Include/cmsis_gcc.h ****
883:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier
885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before
886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion.
887:Drivers/CMSIS/Include/cmsis_gcc.h **** */
888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void)
889:Drivers/CMSIS/Include/cmsis_gcc.h **** {
890:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory");
891:Drivers/CMSIS/Include/cmsis_gcc.h **** }
892:Drivers/CMSIS/Include/cmsis_gcc.h ****
893:Drivers/CMSIS/Include/cmsis_gcc.h ****
894:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
895:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit)
896:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785
ARM GAS /tmp/ccXma6Rl.s page 75
897:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
899:Drivers/CMSIS/Include/cmsis_gcc.h **** */
900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value)
901:Drivers/CMSIS/Include/cmsis_gcc.h **** {
902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value);
904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
906:Drivers/CMSIS/Include/cmsis_gcc.h ****
907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
910:Drivers/CMSIS/Include/cmsis_gcc.h **** }
911:Drivers/CMSIS/Include/cmsis_gcc.h ****
912:Drivers/CMSIS/Include/cmsis_gcc.h ****
913:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes
916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
918:Drivers/CMSIS/Include/cmsis_gcc.h **** */
919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value)
920:Drivers/CMSIS/Include/cmsis_gcc.h **** {
921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
922:Drivers/CMSIS/Include/cmsis_gcc.h ****
923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
925:Drivers/CMSIS/Include/cmsis_gcc.h **** }
926:Drivers/CMSIS/Include/cmsis_gcc.h ****
927:Drivers/CMSIS/Include/cmsis_gcc.h ****
928:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit)
930:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam
931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
933:Drivers/CMSIS/Include/cmsis_gcc.h **** */
934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value)
935:Drivers/CMSIS/Include/cmsis_gcc.h **** {
936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value);
938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result;
940:Drivers/CMSIS/Include/cmsis_gcc.h ****
941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
944:Drivers/CMSIS/Include/cmsis_gcc.h **** }
945:Drivers/CMSIS/Include/cmsis_gcc.h ****
946:Drivers/CMSIS/Include/cmsis_gcc.h ****
947:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
948:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit)
949:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v
950:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate
951:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate
952:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value
953:Drivers/CMSIS/Include/cmsis_gcc.h **** */
ARM GAS /tmp/ccXma6Rl.s page 76
954:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2)
955:Drivers/CMSIS/Include/cmsis_gcc.h **** {
956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U;
957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U)
958:Drivers/CMSIS/Include/cmsis_gcc.h **** {
959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1;
960:Drivers/CMSIS/Include/cmsis_gcc.h **** }
961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2));
962:Drivers/CMSIS/Include/cmsis_gcc.h **** }
963:Drivers/CMSIS/Include/cmsis_gcc.h ****
964:Drivers/CMSIS/Include/cmsis_gcc.h ****
965:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint
967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state.
968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula
969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor.
970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break
971:Drivers/CMSIS/Include/cmsis_gcc.h **** */
972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value)
973:Drivers/CMSIS/Include/cmsis_gcc.h ****
974:Drivers/CMSIS/Include/cmsis_gcc.h ****
975:Drivers/CMSIS/Include/cmsis_gcc.h **** /**
976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value
977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value.
978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse
979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value
980:Drivers/CMSIS/Include/cmsis_gcc.h **** */
981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value)
1588 .loc 2 981 31 view .LVU508
1589 .LBB5:
982:Drivers/CMSIS/Include/cmsis_gcc.h **** {
983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result;
1590 .loc 2 983 3 view .LVU509
984:Drivers/CMSIS/Include/cmsis_gcc.h ****
985:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
986:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \
987:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) )
988:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
1591 .loc 2 988 4 view .LVU510
1592 .syntax unified
1593 @ 988 "Drivers/CMSIS/Include/cmsis_gcc.h" 1
1594 0010 91FAA1F1 rbit r1, r1
1595 @ 0 "" 2
1596 .LVL119:
989:Drivers/CMSIS/Include/cmsis_gcc.h **** #else
990:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */
991:Drivers/CMSIS/Include/cmsis_gcc.h ****
992:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */
993:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U)
994:Drivers/CMSIS/Include/cmsis_gcc.h **** {
995:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U;
996:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U;
997:Drivers/CMSIS/Include/cmsis_gcc.h **** s--;
998:Drivers/CMSIS/Include/cmsis_gcc.h **** }
999:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */
1000:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif
1001:Drivers/CMSIS/Include/cmsis_gcc.h **** return result;
ARM GAS /tmp/ccXma6Rl.s page 77
1597 .loc 2 1001 3 view .LVU511
1598 .loc 2 1001 3 is_stmt 0 view .LVU512
1599 .thumb
1600 .syntax unified
1601 .LBE5:
1602 .LBE4:
1467:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1603 .loc 1 1467 21 view .LVU513
1604 0014 B1FA81F1 clz r1, r1
1605 .LVL120:
1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1606 .loc 1 1470 5 is_stmt 1 view .LVU514
1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1607 .loc 1 1470 22 is_stmt 0 view .LVU515
1608 0018 0368 ldr r3, [r0]
1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1609 .loc 1 1470 61 view .LVU516
1610 001a 1831 adds r1, r1, #24
1611 .LVL121:
1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1612 .loc 1 1470 61 view .LVU517
1613 001c 03EB0111 add r1, r3, r1, lsl #4
1614 .LVL122:
1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1615 .loc 1 1470 61 view .LVU518
1616 0020 4868 ldr r0, [r1, #4]
1617 .LVL123:
1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1618 .loc 1 1470 85 view .LVU519
1619 0022 000C lsrs r0, r0, #16
1620 .LVL124:
1470:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1621 .loc 1 1470 85 view .LVU520
1622 0024 7047 bx lr
1623 .cfi_endproc
1624 .LFE79:
1626 .section .text.HAL_CAN_GetRxMessage,"ax",%progbits
1627 .align 1
1628 .global HAL_CAN_GetRxMessage
1629 .syntax unified
1630 .thumb
1631 .thumb_func
1632 .fpu softvfp
1634 HAL_CAN_GetRxMessage:
1635 .LVL125:
1636 .LFB80:
1476:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1477:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1478:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Get an CAN frame from the Rx FIFO zone into the message RAM.
1479:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1480:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1481:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param RxFifo Fifo number of the received message to be read.
1482:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number.
1483:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param pHeader pointer to a CAN_RxHeaderTypeDef structure where the header
1484:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * of the Rx frame will be stored.
1485:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param aData array where the payload of the Rx frame will be stored.
1486:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
ARM GAS /tmp/ccXma6Rl.s page 78
1487:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1488:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_GetRxMessage(CAN_HandleTypeDef *hcan, uint32_t RxFifo, CAN_RxHeaderTypeDe
1489:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1637 .loc 1 1489 1 is_stmt 1 view -0
1638 .cfi_startproc
1639 @ args = 0, pretend = 0, frame = 0
1640 @ frame_needed = 0, uses_anonymous_args = 0
1641 @ link register save eliminated.
1642 .loc 1 1489 1 is_stmt 0 view .LVU522
1643 0000 30B4 push {r4, r5}
1644 .LCFI13:
1645 .cfi_def_cfa_offset 8
1646 .cfi_offset 4, -8
1647 .cfi_offset 5, -4
1490:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1648 .loc 1 1490 3 is_stmt 1 view .LVU523
1649 .loc 1 1490 24 is_stmt 0 view .LVU524
1650 0002 90F82040 ldrb r4, [r0, #32] @ zero_extendqisi2
1651 .LVL126:
1491:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1492:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo));
1652 .loc 1 1492 3 is_stmt 1 view .LVU525
1493:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1494:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1653 .loc 1 1494 3 view .LVU526
1654 .loc 1 1494 38 is_stmt 0 view .LVU527
1655 0006 013C subs r4, r4, #1
1656 .LVL127:
1657 .loc 1 1494 38 view .LVU528
1658 0008 E4B2 uxtb r4, r4
1659 .loc 1 1494 6 view .LVU529
1660 000a 012C cmp r4, #1
1661 000c 00F28A80 bhi .L129
1495:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1496:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1497:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check the Rx FIFO */
1498:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */
1662 .loc 1 1498 5 is_stmt 1 view .LVU530
1663 .loc 1 1498 8 is_stmt 0 view .LVU531
1664 0010 51B9 cbnz r1, .L130
1499:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1500:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check that the Rx FIFO 0 is not empty */
1501:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) == 0U)
1665 .loc 1 1501 7 is_stmt 1 view .LVU532
1666 .loc 1 1501 16 is_stmt 0 view .LVU533
1667 0012 0468 ldr r4, [r0]
1668 .loc 1 1501 26 view .LVU534
1669 0014 E468 ldr r4, [r4, #12]
1670 .loc 1 1501 10 view .LVU535
1671 0016 14F0030F tst r4, #3
1672 001a 10D1 bne .L131
1502:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1503:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1504:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM;
1673 .loc 1 1504 9 is_stmt 1 view .LVU536
1674 .loc 1 1504 25 is_stmt 0 view .LVU537
1675 001c 436A ldr r3, [r0, #36]
ARM GAS /tmp/ccXma6Rl.s page 79
1676 .LVL128:
1677 .loc 1 1504 25 view .LVU538
1678 001e 43F40013 orr r3, r3, #2097152
1679 0022 4362 str r3, [r0, #36]
1505:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1506:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1680 .loc 1 1506 9 is_stmt 1 view .LVU539
1681 .loc 1 1506 16 is_stmt 0 view .LVU540
1682 0024 0120 movs r0, #1
1683 .LVL129:
1684 .loc 1 1506 16 view .LVU541
1685 0026 82E0 b .L132
1686 .LVL130:
1687 .L130:
1507:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1508:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1509:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */
1510:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1511:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check that the Rx FIFO 1 is not empty */
1512:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) == 0U)
1688 .loc 1 1512 7 is_stmt 1 view .LVU542
1689 .loc 1 1512 16 is_stmt 0 view .LVU543
1690 0028 0468 ldr r4, [r0]
1691 .loc 1 1512 26 view .LVU544
1692 002a 2469 ldr r4, [r4, #16]
1693 .loc 1 1512 10 view .LVU545
1694 002c 14F0030F tst r4, #3
1695 0030 05D1 bne .L131
1513:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1514:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1515:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_PARAM;
1696 .loc 1 1515 9 is_stmt 1 view .LVU546
1697 .loc 1 1515 25 is_stmt 0 view .LVU547
1698 0032 436A ldr r3, [r0, #36]
1699 .LVL131:
1700 .loc 1 1515 25 view .LVU548
1701 0034 43F40013 orr r3, r3, #2097152
1702 0038 4362 str r3, [r0, #36]
1516:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1517:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1703 .loc 1 1517 9 is_stmt 1 view .LVU549
1704 .loc 1 1517 16 is_stmt 0 view .LVU550
1705 003a 0120 movs r0, #1
1706 .LVL132:
1707 .loc 1 1517 16 view .LVU551
1708 003c 77E0 b .L132
1709 .LVL133:
1710 .L131:
1518:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1519:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1520:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1521:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get the header */
1522:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->IDE = CAN_RI0R_IDE & hcan->Instance->sFIFOMailBox[RxFifo].RIR;
1711 .loc 1 1522 5 is_stmt 1 view .LVU552
1712 .loc 1 1522 39 is_stmt 0 view .LVU553
1713 003e 0568 ldr r5, [r0]
1714 .loc 1 1522 71 view .LVU554
ARM GAS /tmp/ccXma6Rl.s page 80
1715 0040 01F11B04 add r4, r1, #27
1716 0044 2401 lsls r4, r4, #4
1717 0046 2C59 ldr r4, [r5, r4]
1718 .loc 1 1522 33 view .LVU555
1719 0048 04F00404 and r4, r4, #4
1720 .loc 1 1522 18 view .LVU556
1721 004c 9460 str r4, [r2, #8]
1523:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (pHeader->IDE == CAN_ID_STD)
1722 .loc 1 1523 5 is_stmt 1 view .LVU557
1723 .loc 1 1523 8 is_stmt 0 view .LVU558
1724 004e 002C cmp r4, #0
1725 0050 5AD1 bne .L133
1524:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1525:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->StdId = (CAN_RI0R_STID & hcan->Instance->sFIFOMailBox[RxFifo].RIR) >> CAN_TI0R_STID_
1726 .loc 1 1525 7 is_stmt 1 view .LVU559
1727 .loc 1 1525 45 is_stmt 0 view .LVU560
1728 0052 0568 ldr r5, [r0]
1729 .loc 1 1525 77 view .LVU561
1730 0054 01F11B04 add r4, r1, #27
1731 0058 2401 lsls r4, r4, #4
1732 005a 2C59 ldr r4, [r5, r4]
1733 .loc 1 1525 83 view .LVU562
1734 005c 640D lsrs r4, r4, #21
1735 .loc 1 1525 22 view .LVU563
1736 005e 1460 str r4, [r2]
1737 .L134:
1526:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1527:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1528:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->ExtId = ((CAN_RI0R_EXID | CAN_RI0R_STID) & hcan->Instance->sFIFOMailBox[RxFifo].RIR)
1530:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1531:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->RTR = (CAN_RI0R_RTR & hcan->Instance->sFIFOMailBox[RxFifo].RIR);
1738 .loc 1 1531 5 is_stmt 1 view .LVU564
1739 .loc 1 1531 40 is_stmt 0 view .LVU565
1740 0060 0568 ldr r5, [r0]
1741 .loc 1 1531 72 view .LVU566
1742 0062 01F11B04 add r4, r1, #27
1743 0066 2401 lsls r4, r4, #4
1744 0068 2D59 ldr r5, [r5, r4]
1745 .loc 1 1531 34 view .LVU567
1746 006a 05F00205 and r5, r5, #2
1747 .loc 1 1531 18 view .LVU568
1748 006e D560 str r5, [r2, #12]
1532:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->DLC = (CAN_RDT0R_DLC & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_DLC_Pos
1749 .loc 1 1532 5 is_stmt 1 view .LVU569
1750 .loc 1 1532 41 is_stmt 0 view .LVU570
1751 0070 0568 ldr r5, [r0]
1752 .loc 1 1532 73 view .LVU571
1753 0072 2544 add r5, r5, r4
1754 0074 6D68 ldr r5, [r5, #4]
1755 .loc 1 1532 80 view .LVU572
1756 0076 05F00F05 and r5, r5, #15
1757 .loc 1 1532 18 view .LVU573
1758 007a 1561 str r5, [r2, #16]
1533:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->FilterMatchIndex = (CAN_RDT0R_FMI & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_
1759 .loc 1 1533 5 is_stmt 1 view .LVU574
1760 .loc 1 1533 54 is_stmt 0 view .LVU575
ARM GAS /tmp/ccXma6Rl.s page 81
1761 007c 0568 ldr r5, [r0]
1762 .loc 1 1533 86 view .LVU576
1763 007e 2544 add r5, r5, r4
1764 0080 6D68 ldr r5, [r5, #4]
1765 .loc 1 1533 93 view .LVU577
1766 0082 C5F30725 ubfx r5, r5, #8, #8
1767 .loc 1 1533 31 view .LVU578
1768 0086 9561 str r5, [r2, #24]
1534:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** pHeader->Timestamp = (CAN_RDT0R_TIME & hcan->Instance->sFIFOMailBox[RxFifo].RDTR) >> CAN_RDT0R_
1769 .loc 1 1534 5 is_stmt 1 view .LVU579
1770 .loc 1 1534 48 is_stmt 0 view .LVU580
1771 0088 0568 ldr r5, [r0]
1772 .loc 1 1534 80 view .LVU581
1773 008a 2C44 add r4, r4, r5
1774 008c 6468 ldr r4, [r4, #4]
1775 .loc 1 1534 87 view .LVU582
1776 008e 240C lsrs r4, r4, #16
1777 .loc 1 1534 24 view .LVU583
1778 0090 5461 str r4, [r2, #20]
1535:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1536:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Get the data */
1537:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[0] = (uint8_t)((CAN_RDL0R_DATA0 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R
1779 .loc 1 1537 5 is_stmt 1 view .LVU584
1780 .loc 1 1537 49 is_stmt 0 view .LVU585
1781 0092 0468 ldr r4, [r0]
1782 .loc 1 1537 81 view .LVU586
1783 0094 0A01 lsls r2, r1, #4
1784 .LVL134:
1785 .loc 1 1537 81 view .LVU587
1786 0096 1444 add r4, r4, r2
1787 0098 D4F8B841 ldr r4, [r4, #440]
1788 .loc 1 1537 14 view .LVU588
1789 009c 1C70 strb r4, [r3]
1538:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[1] = (uint8_t)((CAN_RDL0R_DATA1 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R
1790 .loc 1 1538 5 is_stmt 1 view .LVU589
1791 .loc 1 1538 49 is_stmt 0 view .LVU590
1792 009e 0468 ldr r4, [r0]
1793 .loc 1 1538 81 view .LVU591
1794 00a0 1444 add r4, r4, r2
1795 00a2 D4F8B841 ldr r4, [r4, #440]
1796 .loc 1 1538 16 view .LVU592
1797 00a6 C4F30724 ubfx r4, r4, #8, #8
1798 .loc 1 1538 14 view .LVU593
1799 00aa 5C70 strb r4, [r3, #1]
1539:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[2] = (uint8_t)((CAN_RDL0R_DATA2 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R
1800 .loc 1 1539 5 is_stmt 1 view .LVU594
1801 .loc 1 1539 49 is_stmt 0 view .LVU595
1802 00ac 0468 ldr r4, [r0]
1803 .loc 1 1539 81 view .LVU596
1804 00ae 1444 add r4, r4, r2
1805 00b0 D4F8B841 ldr r4, [r4, #440]
1806 .loc 1 1539 16 view .LVU597
1807 00b4 C4F30744 ubfx r4, r4, #16, #8
1808 .loc 1 1539 14 view .LVU598
1809 00b8 9C70 strb r4, [r3, #2]
1540:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[3] = (uint8_t)((CAN_RDL0R_DATA3 & hcan->Instance->sFIFOMailBox[RxFifo].RDLR) >> CAN_RDL0R
1810 .loc 1 1540 5 is_stmt 1 view .LVU599
ARM GAS /tmp/ccXma6Rl.s page 82
1811 .loc 1 1540 49 is_stmt 0 view .LVU600
1812 00ba 0468 ldr r4, [r0]
1813 .loc 1 1540 81 view .LVU601
1814 00bc 1444 add r4, r4, r2
1815 00be D4F8B841 ldr r4, [r4, #440]
1816 .loc 1 1540 16 view .LVU602
1817 00c2 240E lsrs r4, r4, #24
1818 .loc 1 1540 14 view .LVU603
1819 00c4 DC70 strb r4, [r3, #3]
1541:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[4] = (uint8_t)((CAN_RDH0R_DATA4 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R
1820 .loc 1 1541 5 is_stmt 1 view .LVU604
1821 .loc 1 1541 49 is_stmt 0 view .LVU605
1822 00c6 0468 ldr r4, [r0]
1823 .loc 1 1541 81 view .LVU606
1824 00c8 1444 add r4, r4, r2
1825 00ca D4F8BC41 ldr r4, [r4, #444]
1826 .loc 1 1541 14 view .LVU607
1827 00ce 1C71 strb r4, [r3, #4]
1542:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[5] = (uint8_t)((CAN_RDH0R_DATA5 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R
1828 .loc 1 1542 5 is_stmt 1 view .LVU608
1829 .loc 1 1542 49 is_stmt 0 view .LVU609
1830 00d0 0468 ldr r4, [r0]
1831 .loc 1 1542 81 view .LVU610
1832 00d2 1444 add r4, r4, r2
1833 00d4 D4F8BC41 ldr r4, [r4, #444]
1834 .loc 1 1542 16 view .LVU611
1835 00d8 C4F30724 ubfx r4, r4, #8, #8
1836 .loc 1 1542 14 view .LVU612
1837 00dc 5C71 strb r4, [r3, #5]
1543:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[6] = (uint8_t)((CAN_RDH0R_DATA6 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R
1838 .loc 1 1543 5 is_stmt 1 view .LVU613
1839 .loc 1 1543 49 is_stmt 0 view .LVU614
1840 00de 0468 ldr r4, [r0]
1841 .loc 1 1543 81 view .LVU615
1842 00e0 1444 add r4, r4, r2
1843 00e2 D4F8BC41 ldr r4, [r4, #444]
1844 .loc 1 1543 16 view .LVU616
1845 00e6 C4F30744 ubfx r4, r4, #16, #8
1846 .loc 1 1543 14 view .LVU617
1847 00ea 9C71 strb r4, [r3, #6]
1544:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** aData[7] = (uint8_t)((CAN_RDH0R_DATA7 & hcan->Instance->sFIFOMailBox[RxFifo].RDHR) >> CAN_RDH0R
1848 .loc 1 1544 5 is_stmt 1 view .LVU618
1849 .loc 1 1544 49 is_stmt 0 view .LVU619
1850 00ec 0468 ldr r4, [r0]
1851 .loc 1 1544 81 view .LVU620
1852 00ee 2244 add r2, r2, r4
1853 00f0 D2F8BC21 ldr r2, [r2, #444]
1854 .loc 1 1544 16 view .LVU621
1855 00f4 120E lsrs r2, r2, #24
1856 .loc 1 1544 14 view .LVU622
1857 00f6 DA71 strb r2, [r3, #7]
1545:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1546:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Release the FIFO */
1547:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0) /* Rx element is assigned to Rx FIFO 0 */
1858 .loc 1 1547 5 is_stmt 1 view .LVU623
1859 .loc 1 1547 8 is_stmt 0 view .LVU624
1860 00f8 71B9 cbnz r1, .L135
ARM GAS /tmp/ccXma6Rl.s page 83
1548:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1549:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Release RX FIFO 0 */
1550:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->RF0R, CAN_RF0R_RFOM0);
1861 .loc 1 1550 7 is_stmt 1 view .LVU625
1862 00fa 0268 ldr r2, [r0]
1863 00fc D368 ldr r3, [r2, #12]
1864 .LVL135:
1865 .loc 1 1550 7 is_stmt 0 view .LVU626
1866 00fe 43F02003 orr r3, r3, #32
1867 0102 D360 str r3, [r2, #12]
1868 .L136:
1551:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1552:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else /* Rx element is assigned to Rx FIFO 1 */
1553:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1554:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Release RX FIFO 1 */
1555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** SET_BIT(hcan->Instance->RF1R, CAN_RF1R_RFOM1);
1556:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1557:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1558:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1559:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
1869 .loc 1 1559 5 is_stmt 1 view .LVU627
1870 .loc 1 1559 12 is_stmt 0 view .LVU628
1871 0104 0020 movs r0, #0
1872 .LVL136:
1873 .loc 1 1559 12 view .LVU629
1874 0106 12E0 b .L132
1875 .LVL137:
1876 .L133:
1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1877 .loc 1 1529 7 is_stmt 1 view .LVU630
1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1878 .loc 1 1529 63 is_stmt 0 view .LVU631
1879 0108 0568 ldr r5, [r0]
1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1880 .loc 1 1529 95 view .LVU632
1881 010a 01F11B04 add r4, r1, #27
1882 010e 2401 lsls r4, r4, #4
1883 0110 2C59 ldr r4, [r5, r4]
1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1884 .loc 1 1529 101 view .LVU633
1885 0112 E408 lsrs r4, r4, #3
1529:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1886 .loc 1 1529 22 view .LVU634
1887 0114 5460 str r4, [r2, #4]
1888 0116 A3E7 b .L134
1889 .LVL138:
1890 .L135:
1555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1891 .loc 1 1555 7 is_stmt 1 view .LVU635
1892 0118 0268 ldr r2, [r0]
1893 011a 1369 ldr r3, [r2, #16]
1894 .LVL139:
1555:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1895 .loc 1 1555 7 is_stmt 0 view .LVU636
1896 011c 43F02003 orr r3, r3, #32
1897 0120 1361 str r3, [r2, #16]
1898 0122 EFE7 b .L136
ARM GAS /tmp/ccXma6Rl.s page 84
1899 .LVL140:
1900 .L129:
1560:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1561:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1562:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1563:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1564:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
1901 .loc 1 1564 5 is_stmt 1 view .LVU637
1902 .loc 1 1564 21 is_stmt 0 view .LVU638
1903 0124 436A ldr r3, [r0, #36]
1904 .LVL141:
1905 .loc 1 1564 21 view .LVU639
1906 0126 43F48023 orr r3, r3, #262144
1907 012a 4362 str r3, [r0, #36]
1565:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1566:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
1908 .loc 1 1566 5 is_stmt 1 view .LVU640
1909 .loc 1 1566 12 is_stmt 0 view .LVU641
1910 012c 0120 movs r0, #1
1911 .LVL142:
1912 .L132:
1567:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1568:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1913 .loc 1 1568 1 view .LVU642
1914 012e 30BC pop {r4, r5}
1915 .LCFI14:
1916 .cfi_restore 5
1917 .cfi_restore 4
1918 .cfi_def_cfa_offset 0
1919 0130 7047 bx lr
1920 .cfi_endproc
1921 .LFE80:
1923 .section .text.HAL_CAN_GetRxFifoFillLevel,"ax",%progbits
1924 .align 1
1925 .global HAL_CAN_GetRxFifoFillLevel
1926 .syntax unified
1927 .thumb
1928 .thumb_func
1929 .fpu softvfp
1931 HAL_CAN_GetRxFifoFillLevel:
1932 .LVL143:
1933 .LFB81:
1569:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1570:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1571:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return Rx FIFO fill level.
1572:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1573:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1574:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param RxFifo Rx FIFO.
1575:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be a value of @arg CAN_receive_FIFO_number.
1576:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval Number of messages available in Rx FIFO.
1577:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1578:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_GetRxFifoFillLevel(CAN_HandleTypeDef *hcan, uint32_t RxFifo)
1579:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1934 .loc 1 1579 1 is_stmt 1 view -0
1935 .cfi_startproc
1936 @ args = 0, pretend = 0, frame = 0
1937 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccXma6Rl.s page 85
1938 @ link register save eliminated.
1580:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t filllevel = 0U;
1939 .loc 1 1580 3 view .LVU644
1581:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1940 .loc 1 1581 3 view .LVU645
1941 .loc 1 1581 24 is_stmt 0 view .LVU646
1942 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
1943 .LVL144:
1582:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1583:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */
1584:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_RX_FIFO(RxFifo));
1944 .loc 1 1584 3 is_stmt 1 view .LVU647
1585:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1586:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
1945 .loc 1 1586 3 view .LVU648
1946 .loc 1 1586 38 is_stmt 0 view .LVU649
1947 0004 013B subs r3, r3, #1
1948 .LVL145:
1949 .loc 1 1586 38 view .LVU650
1950 0006 DBB2 uxtb r3, r3
1951 .loc 1 1586 6 view .LVU651
1952 0008 012B cmp r3, #1
1953 000a 01D9 bls .L142
1580:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
1954 .loc 1 1580 12 view .LVU652
1955 000c 0020 movs r0, #0
1956 .LVL146:
1587:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1588:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (RxFifo == CAN_RX_FIFO0)
1590:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** filllevel = hcan->Instance->RF0R & CAN_RF0R_FMP0;
1592:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1593:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else /* RxFifo == CAN_RX_FIFO1 */
1594:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** filllevel = hcan->Instance->RF1R & CAN_RF1R_FMP1;
1596:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1597:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1598:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1599:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return Rx FIFO fill level */
1600:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return filllevel;
1957 .loc 1 1600 3 is_stmt 1 view .LVU653
1601:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1958 .loc 1 1601 1 is_stmt 0 view .LVU654
1959 000e 7047 bx lr
1960 .LVL147:
1961 .L142:
1589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1962 .loc 1 1589 5 is_stmt 1 view .LVU655
1589:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1963 .loc 1 1589 8 is_stmt 0 view .LVU656
1964 0010 21B9 cbnz r1, .L140
1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1965 .loc 1 1591 7 is_stmt 1 view .LVU657
1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1966 .loc 1 1591 23 is_stmt 0 view .LVU658
1967 0012 0368 ldr r3, [r0]
ARM GAS /tmp/ccXma6Rl.s page 86
1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1968 .loc 1 1591 33 view .LVU659
1969 0014 D868 ldr r0, [r3, #12]
1970 .LVL148:
1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1971 .loc 1 1591 17 view .LVU660
1972 0016 00F00300 and r0, r0, #3
1973 .LVL149:
1591:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1974 .loc 1 1591 17 view .LVU661
1975 001a 7047 bx lr
1976 .LVL150:
1977 .L140:
1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1978 .loc 1 1595 7 is_stmt 1 view .LVU662
1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1979 .loc 1 1595 23 is_stmt 0 view .LVU663
1980 001c 0368 ldr r3, [r0]
1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1981 .loc 1 1595 33 view .LVU664
1982 001e 1869 ldr r0, [r3, #16]
1983 .LVL151:
1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1984 .loc 1 1595 17 view .LVU665
1985 0020 00F00300 and r0, r0, #3
1986 .LVL152:
1595:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1987 .loc 1 1595 17 view .LVU666
1988 0024 7047 bx lr
1989 .cfi_endproc
1990 .LFE81:
1992 .section .text.HAL_CAN_ActivateNotification,"ax",%progbits
1993 .align 1
1994 .global HAL_CAN_ActivateNotification
1995 .syntax unified
1996 .thumb
1997 .thumb_func
1998 .fpu softvfp
2000 HAL_CAN_ActivateNotification:
2001 .LVL153:
2002 .LFB82:
1602:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1603:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1604:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @}
1605:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1606:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1607:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group4 Interrupts management
1608:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Interrupts management
1609:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
1610:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim
1611:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
1612:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Interrupts management #####
1613:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
1614:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..] This section provides functions allowing to:
1615:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_ActivateNotification : Enable interrupts
1616:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_DeactivateNotification : Disable interrupts
1617:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_IRQHandler : Handles CAN interrupt request
ARM GAS /tmp/ccXma6Rl.s page 87
1618:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1619:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim
1620:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
1621:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1622:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1623:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1624:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Enable interrupts.
1625:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1626:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1627:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param ActiveITs indicates which interrupts will be enabled.
1628:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts.
1629:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
1630:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1631:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ActivateNotification(CAN_HandleTypeDef *hcan, uint32_t ActiveITs)
1632:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2003 .loc 1 1632 1 is_stmt 1 view -0
2004 .cfi_startproc
2005 @ args = 0, pretend = 0, frame = 0
2006 @ frame_needed = 0, uses_anonymous_args = 0
2007 @ link register save eliminated.
1633:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
2008 .loc 1 1633 3 view .LVU668
2009 .loc 1 1633 24 is_stmt 0 view .LVU669
2010 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
2011 .LVL154:
1634:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1635:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */
1636:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_IT(ActiveITs));
2012 .loc 1 1636 3 is_stmt 1 view .LVU670
1637:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1638:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
2013 .loc 1 1638 3 view .LVU671
2014 .loc 1 1638 38 is_stmt 0 view .LVU672
2015 0004 013B subs r3, r3, #1
2016 .LVL155:
2017 .loc 1 1638 38 view .LVU673
2018 0006 DBB2 uxtb r3, r3
2019 .loc 1 1638 6 view .LVU674
2020 0008 012B cmp r3, #1
2021 000a 05D9 bls .L146
1639:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1640:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1641:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Enable the selected interrupts */
1642:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_ENABLE_IT(hcan, ActiveITs);
1643:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1644:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
1646:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1647:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1648:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1649:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1650:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
2022 .loc 1 1650 5 is_stmt 1 view .LVU675
2023 .loc 1 1650 21 is_stmt 0 view .LVU676
2024 000c 436A ldr r3, [r0, #36]
2025 000e 43F48023 orr r3, r3, #262144
2026 0012 4362 str r3, [r0, #36]
ARM GAS /tmp/ccXma6Rl.s page 88
1651:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1652:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
2027 .loc 1 1652 5 is_stmt 1 view .LVU677
2028 .loc 1 1652 12 is_stmt 0 view .LVU678
2029 0014 0120 movs r0, #1
2030 .LVL156:
1653:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1654:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2031 .loc 1 1654 1 view .LVU679
2032 0016 7047 bx lr
2033 .LVL157:
2034 .L146:
1642:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2035 .loc 1 1642 5 is_stmt 1 view .LVU680
2036 0018 0268 ldr r2, [r0]
2037 001a 5369 ldr r3, [r2, #20]
2038 001c 0B43 orrs r3, r3, r1
2039 001e 5361 str r3, [r2, #20]
1645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2040 .loc 1 1645 5 view .LVU681
1645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2041 .loc 1 1645 12 is_stmt 0 view .LVU682
2042 0020 0020 movs r0, #0
2043 .LVL158:
1645:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2044 .loc 1 1645 12 view .LVU683
2045 0022 7047 bx lr
2046 .cfi_endproc
2047 .LFE82:
2049 .section .text.HAL_CAN_DeactivateNotification,"ax",%progbits
2050 .align 1
2051 .global HAL_CAN_DeactivateNotification
2052 .syntax unified
2053 .thumb
2054 .thumb_func
2055 .fpu softvfp
2057 HAL_CAN_DeactivateNotification:
2058 .LVL159:
2059 .LFB83:
1655:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1656:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1657:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Disable interrupts.
1658:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
1659:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1660:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param InactiveITs indicates which interrupts will be disabled.
1661:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * This parameter can be any combination of @arg CAN_Interrupts.
1662:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
1663:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1664:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_DeactivateNotification(CAN_HandleTypeDef *hcan, uint32_t InactiveITs)
1665:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2060 .loc 1 1665 1 is_stmt 1 view -0
2061 .cfi_startproc
2062 @ args = 0, pretend = 0, frame = 0
2063 @ frame_needed = 0, uses_anonymous_args = 0
2064 @ link register save eliminated.
1666:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
2065 .loc 1 1666 3 view .LVU685
ARM GAS /tmp/ccXma6Rl.s page 89
2066 .loc 1 1666 24 is_stmt 0 view .LVU686
2067 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
2068 .LVL160:
1667:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1668:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check function parameters */
1669:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** assert_param(IS_CAN_IT(InactiveITs));
2069 .loc 1 1669 3 is_stmt 1 view .LVU687
1670:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1671:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
2070 .loc 1 1671 3 view .LVU688
2071 .loc 1 1671 38 is_stmt 0 view .LVU689
2072 0004 013B subs r3, r3, #1
2073 .LVL161:
2074 .loc 1 1671 38 view .LVU690
2075 0006 DBB2 uxtb r3, r3
2076 .loc 1 1671 6 view .LVU691
2077 0008 012B cmp r3, #1
2078 000a 05D9 bls .L150
1672:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
1673:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1674:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Disable the selected interrupts */
1675:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_DISABLE_IT(hcan, InactiveITs);
1676:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1677:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return function status */
1678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_OK;
1679:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1680:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1681:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1682:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1683:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
2079 .loc 1 1683 5 is_stmt 1 view .LVU692
2080 .loc 1 1683 21 is_stmt 0 view .LVU693
2081 000c 436A ldr r3, [r0, #36]
2082 000e 43F48023 orr r3, r3, #262144
2083 0012 4362 str r3, [r0, #36]
1684:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1685:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return HAL_ERROR;
2084 .loc 1 1685 5 is_stmt 1 view .LVU694
2085 .loc 1 1685 12 is_stmt 0 view .LVU695
2086 0014 0120 movs r0, #1
2087 .LVL162:
1686:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1687:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2088 .loc 1 1687 1 view .LVU696
2089 0016 7047 bx lr
2090 .LVL163:
2091 .L150:
1675:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2092 .loc 1 1675 5 is_stmt 1 view .LVU697
2093 0018 0268 ldr r2, [r0]
2094 001a 5369 ldr r3, [r2, #20]
2095 001c 23EA0103 bic r3, r3, r1
2096 0020 5361 str r3, [r2, #20]
1678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2097 .loc 1 1678 5 view .LVU698
1678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2098 .loc 1 1678 12 is_stmt 0 view .LVU699
ARM GAS /tmp/ccXma6Rl.s page 90
2099 0022 0020 movs r0, #0
2100 .LVL164:
1678:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2101 .loc 1 1678 12 view .LVU700
2102 0024 7047 bx lr
2103 .cfi_endproc
2104 .LFE83:
2106 .section .text.HAL_CAN_TxMailbox0CompleteCallback,"ax",%progbits
2107 .align 1
2108 .weak HAL_CAN_TxMailbox0CompleteCallback
2109 .syntax unified
2110 .thumb
2111 .thumb_func
2112 .fpu softvfp
2114 HAL_CAN_TxMailbox0CompleteCallback:
2115 .LVL165:
2116 .LFB85:
1688:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1689:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
1690:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Handles CAN interrupt request
1691:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
1692:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
1693:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
1694:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
1695:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** void HAL_CAN_IRQHandler(CAN_HandleTypeDef *hcan)
1696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE;
1698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER);
1699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR);
1700:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR);
1701:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R);
1702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R);
1703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR);
1704:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1705:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmit Mailbox empty interrupt management *****************************/
1706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_TX_MAILBOX_EMPTY) != 0U)
1707:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1708:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmit Mailbox 0 management *****************************************/
1709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP0) != 0U)
1710:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1711:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK0,ALST0,TERR0 bits) */
1712:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP0);
1713:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK0) != 0U)
1715:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1716:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 0 complete callback */
1717:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1718:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1719:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0CompleteCallback(hcan);
1720:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1721:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1722:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox0CompleteCallback(hcan);
1723:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1724:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1725:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1726:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1727:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST0) != 0U)
ARM GAS /tmp/ccXma6Rl.s page 91
1728:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1729:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1730:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST0;
1731:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1732:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR0) != 0U)
1733:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1734:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1735:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR0;
1736:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1737:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1738:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1739:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 0 abort callback */
1740:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1741:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1742:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox0AbortCallback(hcan);
1743:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1744:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1745:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox0AbortCallback(hcan);
1746:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1747:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1748:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1749:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1750:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1751:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmit Mailbox 1 management *****************************************/
1752:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP1) != 0U)
1753:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1754:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK1,ALST1,TERR1 bits) */
1755:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP1);
1756:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1757:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK1) != 0U)
1758:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1759:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 1 complete callback */
1760:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1761:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1762:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1CompleteCallback(hcan);
1763:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1764:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1765:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox1CompleteCallback(hcan);
1766:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1767:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1768:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1769:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST1) != 0U)
1771:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1772:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1773:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST1;
1774:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR1) != 0U)
1776:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1777:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR1;
1779:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1780:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1781:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1782:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 1 abort callback */
1783:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1784:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
ARM GAS /tmp/ccXma6Rl.s page 92
1785:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox1AbortCallback(hcan);
1786:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1787:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1788:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox1AbortCallback(hcan);
1789:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1790:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1791:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1792:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1793:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1794:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmit Mailbox 2 management *****************************************/
1795:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_RQCP2) != 0U)
1796:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1797:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear the Transmission Complete flag (and TXOK2,ALST2,TERR2 bits) */
1798:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP2);
1799:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_TXOK2) != 0U)
1801:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1802:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 2 complete callback */
1803:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1804:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1805:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2CompleteCallback(hcan);
1806:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1807:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1808:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox2CompleteCallback(hcan);
1809:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1810:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1811:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1812:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1813:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((tsrflags & CAN_TSR_ALST2) != 0U)
1814:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1815:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_ALST2;
1817:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if ((tsrflags & CAN_TSR_TERR2) != 0U)
1819:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1820:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
1821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_TX_TERR2;
1822:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1823:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
1824:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1825:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Transmission Mailbox 2 abort callback */
1826:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1827:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1828:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->TxMailbox2AbortCallback(hcan);
1829:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1830:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1831:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_TxMailbox2AbortCallback(hcan);
1832:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1833:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1834:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1835:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1836:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1837:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1838:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 overrun interrupt management *****************************/
1839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_OVERRUN) != 0U)
1840:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1841:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FOVR0) != 0U)
ARM GAS /tmp/ccXma6Rl.s page 93
1842:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1843:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Rx Fifo 0 overrun error */
1844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV0;
1845:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1846:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear FIFO0 Overrun Flag */
1847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV0);
1848:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1849:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1850:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1851:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 full interrupt management ********************************/
1852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_FULL) != 0U)
1853:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((rf0rflags & CAN_RF0R_FULL0) != 0U)
1855:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1856:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear FIFO 0 full Flag */
1857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF0);
1858:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1859:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 full Callback */
1860:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1861:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1862:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0FullCallback(hcan);
1863:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1864:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1865:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFifo0FullCallback(hcan);
1866:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1867:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1868:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1869:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1870:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 message pending interrupt management *********************/
1871:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO0_MSG_PENDING) != 0U)
1872:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1873:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check if message is still pending */
1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->RF0R & CAN_RF0R_FMP0) != 0U)
1875:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1876:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 0 mesage pending Callback */
1877:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1878:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1879:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo0MsgPendingCallback(hcan);
1880:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1881:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFifo0MsgPendingCallback(hcan);
1883:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1884:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1885:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1886:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1887:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 overrun interrupt management *****************************/
1888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_OVERRUN) != 0U)
1889:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1890:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FOVR1) != 0U)
1891:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1892:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Rx Fifo 1 overrun error */
1893:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_RX_FOV1;
1894:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1895:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear FIFO1 Overrun Flag */
1896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FOV1);
1897:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1898:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
ARM GAS /tmp/ccXma6Rl.s page 94
1899:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1900:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 full interrupt management ********************************/
1901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_FULL) != 0U)
1902:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((rf1rflags & CAN_RF1R_FULL1) != 0U)
1904:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1905:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear FIFO 1 full Flag */
1906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_FF1);
1907:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1908:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 full Callback */
1909:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1910:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1911:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1FullCallback(hcan);
1912:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1913:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFifo1FullCallback(hcan);
1915:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1916:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1917:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1918:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1919:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 message pending interrupt management *********************/
1920:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_RX_FIFO1_MSG_PENDING) != 0U)
1921:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1922:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check if message is still pending */
1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->RF1R & CAN_RF1R_FMP1) != 0U)
1924:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1925:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Receive FIFO 1 mesage pending Callback */
1926:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1927:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1928:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->RxFifo1MsgPendingCallback(hcan);
1929:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1930:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1931:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_RxFifo1MsgPendingCallback(hcan);
1932:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1933:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1934:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1935:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1936:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Sleep interrupt management *********************************************/
1937:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_SLEEP_ACK) != 0U)
1938:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((msrflags & CAN_MSR_SLAKI) != 0U)
1940:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1941:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear Sleep interrupt Flag */
1942:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_SLAKI);
1943:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1944:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Sleep Callback */
1945:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1946:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1947:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->SleepCallback(hcan);
1948:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1949:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_SleepCallback(hcan);
1951:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1952:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1953:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1954:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1955:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* WakeUp interrupt management *********************************************/
ARM GAS /tmp/ccXma6Rl.s page 95
1956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_WAKEUP) != 0U)
1957:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((msrflags & CAN_MSR_WKUI) != 0U)
1959:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1960:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear WakeUp Flag */
1961:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_WKU);
1962:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1963:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* WakeUp Callback */
1964:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
1965:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
1966:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->WakeUpFromRxMsgCallback(hcan);
1967:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
1968:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
1969:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_WakeUpFromRxMsgCallback(hcan);
1970:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
1971:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1972:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1973:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1974:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Error interrupts management *********************************************/
1975:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((interrupts & CAN_IT_ERROR) != 0U)
1976:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1977:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((msrflags & CAN_MSR_ERRI) != 0U)
1978:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1979:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Error Warning Flag */
1980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_WARNING) != 0U) &&
1981:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U))
1982:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1983:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Error Warning */
1984:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EWG;
1985:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1986:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* No need for clear of Error Warning Flag as read-only */
1987:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1988:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1989:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Error Passive Flag */
1990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((interrupts & CAN_IT_ERROR_PASSIVE) != 0U) &&
1991:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U))
1992:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
1993:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Error Passive */
1994:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_EPV;
1995:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1996:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* No need for clear of Error Passive Flag as read-only */
1997:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
1998:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
1999:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Bus-off Flag */
2000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((interrupts & CAN_IT_BUSOFF) != 0U) &&
2001:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U))
2002:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2003:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Bus-Off */
2004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BOF;
2005:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2006:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* No need for clear of Error Bus-Off as read-only */
2007:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2008:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2009:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check Last Error Code Flag */
2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (((interrupts & CAN_IT_LAST_ERROR_CODE) != 0U) &&
2011:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
2012:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
ARM GAS /tmp/ccXma6Rl.s page 96
2013:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** switch (esrflags & CAN_ESR_LEC)
2014:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2015:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_0):
2016:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Stuff error */
2017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_STF;
2018:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2019:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_1):
2020:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Form error */
2021:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_FOR;
2022:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2023:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0):
2024:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Acknowledgement error */
2025:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_ACK;
2026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2027:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2):
2028:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Bit recessive error */
2029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BR;
2030:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2031:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0):
2032:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to Bit Dominant error */
2033:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_BD;
2034:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2035:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1):
2036:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Set CAN error code to CRC error */
2037:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** errorcode |= HAL_CAN_ERROR_CRC;
2038:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2039:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default:
2040:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2041:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2042:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2043:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear Last error code Flag */
2044:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** CLEAR_BIT(hcan->Instance->ESR, CAN_ESR_LEC);
2045:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2046:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2047:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2048:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Clear ERRI Flag */
2049:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_ERRI);
2050:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2051:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2052:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call the Error call Back in case of Errors */
2053:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if (errorcode != HAL_CAN_ERROR_NONE)
2054:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2055:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code in handle */
2056:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= errorcode;
2057:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2058:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call Error callback function */
2059:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #if USE_HAL_CAN_REGISTER_CALLBACKS == 1
2060:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call registered callback*/
2061:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCallback(hcan);
2062:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #else
2063:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Call weak (surcharged) callback */
2064:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_ErrorCallback(hcan);
2065:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2066:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2067:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2068:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2069:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
ARM GAS /tmp/ccXma6Rl.s page 97
2070:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @}
2071:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2072:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2073:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group5 Callback functions
2074:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief CAN Callback functions
2075:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
2076:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim
2077:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
2078:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Callback functions #####
2079:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
2080:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..]
2081:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** This subsection provides the following callback functions:
2082:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox0CompleteCallback
2083:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox1CompleteCallback
2084:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox2CompleteCallback
2085:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox0AbortCallback
2086:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox1AbortCallback
2087:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_TxMailbox2AbortCallback
2088:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RxFifo0MsgPendingCallback
2089:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RxFifo0FullCallback
2090:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RxFifo1MsgPendingCallback
2091:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_RxFifo1FullCallback
2092:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_SleepCallback
2093:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_WakeUpFromRxMsgCallback
2094:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_ErrorCallback
2095:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2096:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim
2097:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
2098:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2099:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2100:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2101:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 0 complete callback.
2102:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2103:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2104:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2105:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2106:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan)
2107:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2117 .loc 1 2107 1 is_stmt 1 view -0
2118 .cfi_startproc
2119 @ args = 0, pretend = 0, frame = 0
2120 @ frame_needed = 0, uses_anonymous_args = 0
2121 @ link register save eliminated.
2108:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2109:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2122 .loc 1 2109 3 view .LVU702
2110:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2111:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2112:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox0CompleteCallback could be implemented in the
2113:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file
2114:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2115:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2123 .loc 1 2115 1 is_stmt 0 view .LVU703
2124 0000 7047 bx lr
2125 .cfi_endproc
2126 .LFE85:
2128 .section .text.HAL_CAN_TxMailbox1CompleteCallback,"ax",%progbits
ARM GAS /tmp/ccXma6Rl.s page 98
2129 .align 1
2130 .weak HAL_CAN_TxMailbox1CompleteCallback
2131 .syntax unified
2132 .thumb
2133 .thumb_func
2134 .fpu softvfp
2136 HAL_CAN_TxMailbox1CompleteCallback:
2137 .LVL166:
2138 .LFB86:
2116:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2117:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2118:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 1 complete callback.
2119:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2120:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2121:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2122:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2123:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan)
2124:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2139 .loc 1 2124 1 is_stmt 1 view -0
2140 .cfi_startproc
2141 @ args = 0, pretend = 0, frame = 0
2142 @ frame_needed = 0, uses_anonymous_args = 0
2143 @ link register save eliminated.
2125:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2126:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2144 .loc 1 2126 3 view .LVU705
2127:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2128:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2129:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox1CompleteCallback could be implemented in the
2130:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file
2131:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2132:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2145 .loc 1 2132 1 is_stmt 0 view .LVU706
2146 0000 7047 bx lr
2147 .cfi_endproc
2148 .LFE86:
2150 .section .text.HAL_CAN_TxMailbox2CompleteCallback,"ax",%progbits
2151 .align 1
2152 .weak HAL_CAN_TxMailbox2CompleteCallback
2153 .syntax unified
2154 .thumb
2155 .thumb_func
2156 .fpu softvfp
2158 HAL_CAN_TxMailbox2CompleteCallback:
2159 .LVL167:
2160 .LFB87:
2133:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2134:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2135:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 2 complete callback.
2136:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2137:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2138:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2139:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2140:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan)
2141:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2161 .loc 1 2141 1 is_stmt 1 view -0
2162 .cfi_startproc
ARM GAS /tmp/ccXma6Rl.s page 99
2163 @ args = 0, pretend = 0, frame = 0
2164 @ frame_needed = 0, uses_anonymous_args = 0
2165 @ link register save eliminated.
2142:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2143:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2166 .loc 1 2143 3 view .LVU708
2144:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2145:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2146:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox2CompleteCallback could be implemented in the
2147:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file
2148:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2149:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2167 .loc 1 2149 1 is_stmt 0 view .LVU709
2168 0000 7047 bx lr
2169 .cfi_endproc
2170 .LFE87:
2172 .section .text.HAL_CAN_TxMailbox0AbortCallback,"ax",%progbits
2173 .align 1
2174 .weak HAL_CAN_TxMailbox0AbortCallback
2175 .syntax unified
2176 .thumb
2177 .thumb_func
2178 .fpu softvfp
2180 HAL_CAN_TxMailbox0AbortCallback:
2181 .LVL168:
2182 .LFB88:
2150:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2151:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2152:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 0 Cancellation callback.
2153:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
2154:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2155:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2156:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2157:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox0AbortCallback(CAN_HandleTypeDef *hcan)
2158:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2183 .loc 1 2158 1 is_stmt 1 view -0
2184 .cfi_startproc
2185 @ args = 0, pretend = 0, frame = 0
2186 @ frame_needed = 0, uses_anonymous_args = 0
2187 @ link register save eliminated.
2159:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2160:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2188 .loc 1 2160 3 view .LVU711
2161:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2162:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2163:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox0AbortCallback could be implemented in the
2164:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file
2165:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2166:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2189 .loc 1 2166 1 is_stmt 0 view .LVU712
2190 0000 7047 bx lr
2191 .cfi_endproc
2192 .LFE88:
2194 .section .text.HAL_CAN_TxMailbox1AbortCallback,"ax",%progbits
2195 .align 1
2196 .weak HAL_CAN_TxMailbox1AbortCallback
2197 .syntax unified
ARM GAS /tmp/ccXma6Rl.s page 100
2198 .thumb
2199 .thumb_func
2200 .fpu softvfp
2202 HAL_CAN_TxMailbox1AbortCallback:
2203 .LVL169:
2204 .LFB89:
2167:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2168:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2169:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 1 Cancellation callback.
2170:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
2171:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2172:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2173:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2174:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox1AbortCallback(CAN_HandleTypeDef *hcan)
2175:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2205 .loc 1 2175 1 is_stmt 1 view -0
2206 .cfi_startproc
2207 @ args = 0, pretend = 0, frame = 0
2208 @ frame_needed = 0, uses_anonymous_args = 0
2209 @ link register save eliminated.
2176:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2177:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2210 .loc 1 2177 3 view .LVU714
2178:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2179:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2180:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox1AbortCallback could be implemented in the
2181:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file
2182:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2183:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2211 .loc 1 2183 1 is_stmt 0 view .LVU715
2212 0000 7047 bx lr
2213 .cfi_endproc
2214 .LFE89:
2216 .section .text.HAL_CAN_TxMailbox2AbortCallback,"ax",%progbits
2217 .align 1
2218 .weak HAL_CAN_TxMailbox2AbortCallback
2219 .syntax unified
2220 .thumb
2221 .thumb_func
2222 .fpu softvfp
2224 HAL_CAN_TxMailbox2AbortCallback:
2225 .LVL170:
2226 .LFB90:
2184:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2185:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2186:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Transmission Mailbox 2 Cancellation callback.
2187:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to an CAN_HandleTypeDef structure that contains
2188:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2189:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2190:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2191:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_TxMailbox2AbortCallback(CAN_HandleTypeDef *hcan)
2192:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2227 .loc 1 2192 1 is_stmt 1 view -0
2228 .cfi_startproc
2229 @ args = 0, pretend = 0, frame = 0
2230 @ frame_needed = 0, uses_anonymous_args = 0
2231 @ link register save eliminated.
ARM GAS /tmp/ccXma6Rl.s page 101
2193:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2194:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2232 .loc 1 2194 3 view .LVU717
2195:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2196:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2197:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_TxMailbox2AbortCallback could be implemented in the
2198:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file
2199:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2200:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2233 .loc 1 2200 1 is_stmt 0 view .LVU718
2234 0000 7047 bx lr
2235 .cfi_endproc
2236 .LFE90:
2238 .section .text.HAL_CAN_RxFifo0MsgPendingCallback,"ax",%progbits
2239 .align 1
2240 .weak HAL_CAN_RxFifo0MsgPendingCallback
2241 .syntax unified
2242 .thumb
2243 .thumb_func
2244 .fpu softvfp
2246 HAL_CAN_RxFifo0MsgPendingCallback:
2247 .LVL171:
2248 .LFB91:
2201:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2202:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2203:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Rx FIFO 0 message pending callback.
2204:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2205:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2206:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2207:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2208:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)
2209:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2249 .loc 1 2209 1 is_stmt 1 view -0
2250 .cfi_startproc
2251 @ args = 0, pretend = 0, frame = 0
2252 @ frame_needed = 0, uses_anonymous_args = 0
2253 @ link register save eliminated.
2210:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2211:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2254 .loc 1 2211 3 view .LVU720
2212:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2213:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2214:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_RxFifo0MsgPendingCallback could be implemented in the
2215:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file
2216:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2217:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2255 .loc 1 2217 1 is_stmt 0 view .LVU721
2256 0000 7047 bx lr
2257 .cfi_endproc
2258 .LFE91:
2260 .section .text.HAL_CAN_RxFifo0FullCallback,"ax",%progbits
2261 .align 1
2262 .weak HAL_CAN_RxFifo0FullCallback
2263 .syntax unified
2264 .thumb
2265 .thumb_func
2266 .fpu softvfp
ARM GAS /tmp/ccXma6Rl.s page 102
2268 HAL_CAN_RxFifo0FullCallback:
2269 .LVL172:
2270 .LFB92:
2218:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2219:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2220:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Rx FIFO 0 full callback.
2221:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2222:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2223:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2224:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2225:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_RxFifo0FullCallback(CAN_HandleTypeDef *hcan)
2226:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2271 .loc 1 2226 1 is_stmt 1 view -0
2272 .cfi_startproc
2273 @ args = 0, pretend = 0, frame = 0
2274 @ frame_needed = 0, uses_anonymous_args = 0
2275 @ link register save eliminated.
2227:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2228:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2276 .loc 1 2228 3 view .LVU723
2229:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2230:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2231:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_RxFifo0FullCallback could be implemented in the user
2232:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** file
2233:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2234:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2277 .loc 1 2234 1 is_stmt 0 view .LVU724
2278 0000 7047 bx lr
2279 .cfi_endproc
2280 .LFE92:
2282 .section .text.HAL_CAN_RxFifo1MsgPendingCallback,"ax",%progbits
2283 .align 1
2284 .weak HAL_CAN_RxFifo1MsgPendingCallback
2285 .syntax unified
2286 .thumb
2287 .thumb_func
2288 .fpu softvfp
2290 HAL_CAN_RxFifo1MsgPendingCallback:
2291 .LVL173:
2292 .LFB93:
2235:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2236:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2237:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Rx FIFO 1 message pending callback.
2238:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2239:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2240:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2241:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2242:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_RxFifo1MsgPendingCallback(CAN_HandleTypeDef *hcan)
2243:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2293 .loc 1 2243 1 is_stmt 1 view -0
2294 .cfi_startproc
2295 @ args = 0, pretend = 0, frame = 0
2296 @ frame_needed = 0, uses_anonymous_args = 0
2297 @ link register save eliminated.
2244:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2245:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2298 .loc 1 2245 3 view .LVU726
ARM GAS /tmp/ccXma6Rl.s page 103
2246:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2247:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2248:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_RxFifo1MsgPendingCallback could be implemented in the
2249:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file
2250:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2251:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2299 .loc 1 2251 1 is_stmt 0 view .LVU727
2300 0000 7047 bx lr
2301 .cfi_endproc
2302 .LFE93:
2304 .section .text.HAL_CAN_RxFifo1FullCallback,"ax",%progbits
2305 .align 1
2306 .weak HAL_CAN_RxFifo1FullCallback
2307 .syntax unified
2308 .thumb
2309 .thumb_func
2310 .fpu softvfp
2312 HAL_CAN_RxFifo1FullCallback:
2313 .LVL174:
2314 .LFB94:
2252:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2253:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2254:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Rx FIFO 1 full callback.
2255:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2256:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2257:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2258:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2259:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_RxFifo1FullCallback(CAN_HandleTypeDef *hcan)
2260:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2315 .loc 1 2260 1 is_stmt 1 view -0
2316 .cfi_startproc
2317 @ args = 0, pretend = 0, frame = 0
2318 @ frame_needed = 0, uses_anonymous_args = 0
2319 @ link register save eliminated.
2261:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2262:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2320 .loc 1 2262 3 view .LVU729
2263:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2264:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2265:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_RxFifo1FullCallback could be implemented in the user
2266:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** file
2267:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2268:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2321 .loc 1 2268 1 is_stmt 0 view .LVU730
2322 0000 7047 bx lr
2323 .cfi_endproc
2324 .LFE94:
2326 .section .text.HAL_CAN_SleepCallback,"ax",%progbits
2327 .align 1
2328 .weak HAL_CAN_SleepCallback
2329 .syntax unified
2330 .thumb
2331 .thumb_func
2332 .fpu softvfp
2334 HAL_CAN_SleepCallback:
2335 .LVL175:
2336 .LFB95:
ARM GAS /tmp/ccXma6Rl.s page 104
2269:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2270:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2271:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Sleep callback.
2272:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2273:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2274:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2275:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2276:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_SleepCallback(CAN_HandleTypeDef *hcan)
2277:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2337 .loc 1 2277 1 is_stmt 1 view -0
2338 .cfi_startproc
2339 @ args = 0, pretend = 0, frame = 0
2340 @ frame_needed = 0, uses_anonymous_args = 0
2341 @ link register save eliminated.
2278:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2279:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2342 .loc 1 2279 3 view .LVU732
2280:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2281:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2282:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_SleepCallback could be implemented in the user file
2283:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2284:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2343 .loc 1 2284 1 is_stmt 0 view .LVU733
2344 0000 7047 bx lr
2345 .cfi_endproc
2346 .LFE95:
2348 .section .text.HAL_CAN_WakeUpFromRxMsgCallback,"ax",%progbits
2349 .align 1
2350 .weak HAL_CAN_WakeUpFromRxMsgCallback
2351 .syntax unified
2352 .thumb
2353 .thumb_func
2354 .fpu softvfp
2356 HAL_CAN_WakeUpFromRxMsgCallback:
2357 .LVL176:
2358 .LFB96:
2285:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2286:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2287:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief WakeUp from Rx message callback.
2288:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2289:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2290:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2291:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2292:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_WakeUpFromRxMsgCallback(CAN_HandleTypeDef *hcan)
2293:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2359 .loc 1 2293 1 is_stmt 1 view -0
2360 .cfi_startproc
2361 @ args = 0, pretend = 0, frame = 0
2362 @ frame_needed = 0, uses_anonymous_args = 0
2363 @ link register save eliminated.
2294:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2295:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2364 .loc 1 2295 3 view .LVU735
2296:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2297:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2298:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_WakeUpFromRxMsgCallback could be implemented in the
2299:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** user file
ARM GAS /tmp/ccXma6Rl.s page 105
2300:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2301:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2365 .loc 1 2301 1 is_stmt 0 view .LVU736
2366 0000 7047 bx lr
2367 .cfi_endproc
2368 .LFE96:
2370 .section .text.HAL_CAN_ErrorCallback,"ax",%progbits
2371 .align 1
2372 .weak HAL_CAN_ErrorCallback
2373 .syntax unified
2374 .thumb
2375 .thumb_func
2376 .fpu softvfp
2378 HAL_CAN_ErrorCallback:
2379 .LVL177:
2380 .LFB97:
2302:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2303:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2304:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Error CAN callback.
2305:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2306:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2307:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval None
2308:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2309:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** __weak void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan)
2310:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2381 .loc 1 2310 1 is_stmt 1 view -0
2382 .cfi_startproc
2383 @ args = 0, pretend = 0, frame = 0
2384 @ frame_needed = 0, uses_anonymous_args = 0
2385 @ link register save eliminated.
2311:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Prevent unused argument(s) compilation warning */
2312:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** UNUSED(hcan);
2386 .loc 1 2312 3 view .LVU738
2313:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2314:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* NOTE : This function Should not be modified, when the callback is needed,
2315:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** the HAL_CAN_ErrorCallback could be implemented in the user file
2316:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2317:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2387 .loc 1 2317 1 is_stmt 0 view .LVU739
2388 0000 7047 bx lr
2389 .cfi_endproc
2390 .LFE97:
2392 .section .text.HAL_CAN_IRQHandler,"ax",%progbits
2393 .align 1
2394 .global HAL_CAN_IRQHandler
2395 .syntax unified
2396 .thumb
2397 .thumb_func
2398 .fpu softvfp
2400 HAL_CAN_IRQHandler:
2401 .LVL178:
2402 .LFB84:
1696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE;
2403 .loc 1 1696 1 is_stmt 1 view -0
2404 .cfi_startproc
2405 @ args = 0, pretend = 0, frame = 0
2406 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccXma6Rl.s page 106
1696:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t errorcode = HAL_CAN_ERROR_NONE;
2407 .loc 1 1696 1 is_stmt 0 view .LVU741
2408 0000 2DE9F84F push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
2409 .LCFI15:
2410 .cfi_def_cfa_offset 40
2411 .cfi_offset 3, -40
2412 .cfi_offset 4, -36
2413 .cfi_offset 5, -32
2414 .cfi_offset 6, -28
2415 .cfi_offset 7, -24
2416 .cfi_offset 8, -20
2417 .cfi_offset 9, -16
2418 .cfi_offset 10, -12
2419 .cfi_offset 11, -8
2420 .cfi_offset 14, -4
2421 0004 0546 mov r5, r0
1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER);
2422 .loc 1 1697 3 is_stmt 1 view .LVU742
2423 .LVL179:
1698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR);
2424 .loc 1 1698 3 view .LVU743
1698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR);
2425 .loc 1 1698 25 is_stmt 0 view .LVU744
2426 0006 0368 ldr r3, [r0]
1698:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t msrflags = READ_REG(hcan->Instance->MSR);
2427 .loc 1 1698 12 view .LVU745
2428 0008 5C69 ldr r4, [r3, #20]
2429 .LVL180:
1699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR);
2430 .loc 1 1699 3 is_stmt 1 view .LVU746
1699:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t tsrflags = READ_REG(hcan->Instance->TSR);
2431 .loc 1 1699 12 is_stmt 0 view .LVU747
2432 000a 5F68 ldr r7, [r3, #4]
2433 .LVL181:
1700:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R);
2434 .loc 1 1700 3 is_stmt 1 view .LVU748
1700:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf0rflags = READ_REG(hcan->Instance->RF0R);
2435 .loc 1 1700 12 is_stmt 0 view .LVU749
2436 000c 9E68 ldr r6, [r3, #8]
2437 .LVL182:
1701:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R);
2438 .loc 1 1701 3 is_stmt 1 view .LVU750
1701:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t rf1rflags = READ_REG(hcan->Instance->RF1R);
2439 .loc 1 1701 12 is_stmt 0 view .LVU751
2440 000e D3F80CA0 ldr r10, [r3, #12]
2441 .LVL183:
1702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR);
2442 .loc 1 1702 3 is_stmt 1 view .LVU752
1702:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t esrflags = READ_REG(hcan->Instance->ESR);
2443 .loc 1 1702 12 is_stmt 0 view .LVU753
2444 0012 D3F81090 ldr r9, [r3, #16]
2445 .LVL184:
1703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2446 .loc 1 1703 3 is_stmt 1 view .LVU754
1703:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2447 .loc 1 1703 12 is_stmt 0 view .LVU755
2448 0016 D3F81880 ldr r8, [r3, #24]
ARM GAS /tmp/ccXma6Rl.s page 107
2449 .LVL185:
1706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2450 .loc 1 1706 3 is_stmt 1 view .LVU756
1706:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2451 .loc 1 1706 6 is_stmt 0 view .LVU757
2452 001a 14F0010F tst r4, #1
2453 001e 5AD0 beq .L197
1709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2454 .loc 1 1709 5 is_stmt 1 view .LVU758
1709:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2455 .loc 1 1709 8 is_stmt 0 view .LVU759
2456 0020 16F0010F tst r6, #1
2457 0024 17D0 beq .L198
1712:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2458 .loc 1 1712 7 is_stmt 1 view .LVU760
2459 0026 0122 movs r2, #1
2460 0028 9A60 str r2, [r3, #8]
1714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2461 .loc 1 1714 7 view .LVU761
1714:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2462 .loc 1 1714 10 is_stmt 0 view .LVU762
2463 002a 16F0020F tst r6, #2
2464 002e 08D1 bne .L202
1727:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2465 .loc 1 1727 9 is_stmt 1 view .LVU763
1727:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2466 .loc 1 1727 12 is_stmt 0 view .LVU764
2467 0030 16F0040F tst r6, #4
2468 0034 30D1 bne .L199
1732:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2469 .loc 1 1732 14 is_stmt 1 view .LVU765
1732:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2470 .loc 1 1732 17 is_stmt 0 view .LVU766
2471 0036 16F0080F tst r6, #8
2472 003a 07D0 beq .L203
1735:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2473 .loc 1 1735 21 view .LVU767
2474 003c 4FF4805B mov fp, #4096
2475 0040 0BE0 b .L166
2476 .L202:
1722:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2477 .loc 1 1722 9 is_stmt 1 view .LVU768
2478 0042 FFF7FEFF bl HAL_CAN_TxMailbox0CompleteCallback
2479 .LVL186:
1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER);
2480 .loc 1 1697 12 is_stmt 0 view .LVU769
2481 0046 4FF0000B mov fp, #0
2482 004a 06E0 b .L166
2483 .LVL187:
2484 .L203:
1745:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2485 .loc 1 1745 11 is_stmt 1 view .LVU770
2486 004c FFF7FEFF bl HAL_CAN_TxMailbox0AbortCallback
2487 .LVL188:
1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER);
2488 .loc 1 1697 12 is_stmt 0 view .LVU771
2489 0050 4FF0000B mov fp, #0
ARM GAS /tmp/ccXma6Rl.s page 108
2490 0054 01E0 b .L166
2491 .LVL189:
2492 .L198:
1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER);
2493 .loc 1 1697 12 view .LVU772
2494 0056 4FF0000B mov fp, #0
2495 .LVL190:
2496 .L166:
1752:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2497 .loc 1 1752 5 is_stmt 1 view .LVU773
1752:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2498 .loc 1 1752 8 is_stmt 0 view .LVU774
2499 005a 16F4807F tst r6, #256
2500 005e 0BD0 beq .L168
1755:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2501 .loc 1 1755 7 is_stmt 1 view .LVU775
2502 0060 2B68 ldr r3, [r5]
2503 0062 4FF48072 mov r2, #256
2504 0066 9A60 str r2, [r3, #8]
1757:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2505 .loc 1 1757 7 view .LVU776
1757:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2506 .loc 1 1757 10 is_stmt 0 view .LVU777
2507 0068 16F4007F tst r6, #512
2508 006c 17D1 bne .L204
1770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2509 .loc 1 1770 9 is_stmt 1 view .LVU778
1770:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2510 .loc 1 1770 12 is_stmt 0 view .LVU779
2511 006e 16F4806F tst r6, #1024
2512 0072 18D0 beq .L170
1773:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2513 .loc 1 1773 11 is_stmt 1 view .LVU780
1773:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2514 .loc 1 1773 21 is_stmt 0 view .LVU781
2515 0074 4BF4005B orr fp, fp, #8192
2516 .LVL191:
2517 .L168:
1795:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2518 .loc 1 1795 5 is_stmt 1 view .LVU782
1795:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2519 .loc 1 1795 8 is_stmt 0 view .LVU783
2520 0078 16F4803F tst r6, #65536
2521 007c 2DD0 beq .L165
1798:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2522 .loc 1 1798 7 is_stmt 1 view .LVU784
2523 007e 2B68 ldr r3, [r5]
2524 0080 4FF48032 mov r2, #65536
2525 0084 9A60 str r2, [r3, #8]
1800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2526 .loc 1 1800 7 view .LVU785
1800:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2527 .loc 1 1800 10 is_stmt 0 view .LVU786
2528 0086 16F4003F tst r6, #131072
2529 008a 16D1 bne .L205
1813:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2530 .loc 1 1813 9 is_stmt 1 view .LVU787
ARM GAS /tmp/ccXma6Rl.s page 109
1813:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2531 .loc 1 1813 12 is_stmt 0 view .LVU788
2532 008c 16F4802F tst r6, #262144
2533 0090 17D0 beq .L173
1816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2534 .loc 1 1816 11 is_stmt 1 view .LVU789
1816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2535 .loc 1 1816 21 is_stmt 0 view .LVU790
2536 0092 4BF4004B orr fp, fp, #32768
2537 .LVL192:
1816:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2538 .loc 1 1816 21 view .LVU791
2539 0096 20E0 b .L165
2540 .LVL193:
2541 .L199:
1730:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2542 .loc 1 1730 21 view .LVU792
2543 0098 4FF4006B mov fp, #2048
2544 009c DDE7 b .L166
2545 .LVL194:
2546 .L204:
1765:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2547 .loc 1 1765 9 is_stmt 1 view .LVU793
2548 009e 2846 mov r0, r5
2549 00a0 FFF7FEFF bl HAL_CAN_TxMailbox1CompleteCallback
2550 .LVL195:
2551 00a4 E8E7 b .L168
2552 .L170:
1775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2553 .loc 1 1775 14 view .LVU794
1775:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2554 .loc 1 1775 17 is_stmt 0 view .LVU795
2555 00a6 16F4006F tst r6, #2048
2556 00aa 02D0 beq .L171
1778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2557 .loc 1 1778 11 is_stmt 1 view .LVU796
1778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2558 .loc 1 1778 21 is_stmt 0 view .LVU797
2559 00ac 4BF4804B orr fp, fp, #16384
2560 .LVL196:
1778:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2561 .loc 1 1778 21 view .LVU798
2562 00b0 E2E7 b .L168
2563 .L171:
1788:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2564 .loc 1 1788 11 is_stmt 1 view .LVU799
2565 00b2 2846 mov r0, r5
2566 00b4 FFF7FEFF bl HAL_CAN_TxMailbox1AbortCallback
2567 .LVL197:
2568 00b8 DEE7 b .L168
2569 .L205:
1808:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2570 .loc 1 1808 9 view .LVU800
2571 00ba 2846 mov r0, r5
2572 00bc FFF7FEFF bl HAL_CAN_TxMailbox2CompleteCallback
2573 .LVL198:
2574 00c0 0BE0 b .L165
ARM GAS /tmp/ccXma6Rl.s page 110
2575 .L173:
1818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2576 .loc 1 1818 14 view .LVU801
1818:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2577 .loc 1 1818 17 is_stmt 0 view .LVU802
2578 00c2 16F4002F tst r6, #524288
2579 00c6 02D0 beq .L174
1821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2580 .loc 1 1821 11 is_stmt 1 view .LVU803
1821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2581 .loc 1 1821 21 is_stmt 0 view .LVU804
2582 00c8 4BF4803B orr fp, fp, #65536
2583 .LVL199:
1821:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2584 .loc 1 1821 21 view .LVU805
2585 00cc 05E0 b .L165
2586 .L174:
1831:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2587 .loc 1 1831 11 is_stmt 1 view .LVU806
2588 00ce 2846 mov r0, r5
2589 00d0 FFF7FEFF bl HAL_CAN_TxMailbox2AbortCallback
2590 .LVL200:
2591 00d4 01E0 b .L165
2592 .LVL201:
2593 .L197:
1697:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t interrupts = READ_REG(hcan->Instance->IER);
2594 .loc 1 1697 12 is_stmt 0 view .LVU807
2595 00d6 4FF0000B mov fp, #0
2596 .LVL202:
2597 .L165:
1839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2598 .loc 1 1839 3 is_stmt 1 view .LVU808
1839:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2599 .loc 1 1839 6 is_stmt 0 view .LVU809
2600 00da 14F0080F tst r4, #8
2601 00de 07D0 beq .L175
1841:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2602 .loc 1 1841 5 is_stmt 1 view .LVU810
1841:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2603 .loc 1 1841 8 is_stmt 0 view .LVU811
2604 00e0 1AF0100F tst r10, #16
2605 00e4 04D0 beq .L175
1844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2606 .loc 1 1844 7 is_stmt 1 view .LVU812
1844:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2607 .loc 1 1844 17 is_stmt 0 view .LVU813
2608 00e6 4BF4007B orr fp, fp, #512
2609 .LVL203:
1847:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2610 .loc 1 1847 7 is_stmt 1 view .LVU814
2611 00ea 2B68 ldr r3, [r5]
2612 00ec 1022 movs r2, #16
2613 00ee DA60 str r2, [r3, #12]
2614 .L175:
1852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2615 .loc 1 1852 3 view .LVU815
1852:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
ARM GAS /tmp/ccXma6Rl.s page 111
2616 .loc 1 1852 6 is_stmt 0 view .LVU816
2617 00f0 14F0040F tst r4, #4
2618 00f4 02D0 beq .L176
1854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2619 .loc 1 1854 5 is_stmt 1 view .LVU817
1854:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2620 .loc 1 1854 8 is_stmt 0 view .LVU818
2621 00f6 1AF0080F tst r10, #8
2622 00fa 6AD1 bne .L206
2623 .L176:
1871:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2624 .loc 1 1871 3 is_stmt 1 view .LVU819
1871:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2625 .loc 1 1871 6 is_stmt 0 view .LVU820
2626 00fc 14F0020F tst r4, #2
2627 0100 04D0 beq .L177
1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2628 .loc 1 1874 5 is_stmt 1 view .LVU821
1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2629 .loc 1 1874 14 is_stmt 0 view .LVU822
2630 0102 2B68 ldr r3, [r5]
1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2631 .loc 1 1874 24 view .LVU823
2632 0104 DB68 ldr r3, [r3, #12]
1874:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2633 .loc 1 1874 8 view .LVU824
2634 0106 13F0030F tst r3, #3
2635 010a 69D1 bne .L207
2636 .L177:
1888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2637 .loc 1 1888 3 is_stmt 1 view .LVU825
1888:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2638 .loc 1 1888 6 is_stmt 0 view .LVU826
2639 010c 14F0400F tst r4, #64
2640 0110 07D0 beq .L178
1890:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2641 .loc 1 1890 5 is_stmt 1 view .LVU827
1890:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2642 .loc 1 1890 8 is_stmt 0 view .LVU828
2643 0112 19F0100F tst r9, #16
2644 0116 04D0 beq .L178
1893:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2645 .loc 1 1893 7 is_stmt 1 view .LVU829
1893:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2646 .loc 1 1893 17 is_stmt 0 view .LVU830
2647 0118 4BF4806B orr fp, fp, #1024
2648 .LVL204:
1896:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2649 .loc 1 1896 7 is_stmt 1 view .LVU831
2650 011c 2B68 ldr r3, [r5]
2651 011e 1022 movs r2, #16
2652 0120 1A61 str r2, [r3, #16]
2653 .L178:
1901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2654 .loc 1 1901 3 view .LVU832
1901:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2655 .loc 1 1901 6 is_stmt 0 view .LVU833
ARM GAS /tmp/ccXma6Rl.s page 112
2656 0122 14F0200F tst r4, #32
2657 0126 02D0 beq .L179
1903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2658 .loc 1 1903 5 is_stmt 1 view .LVU834
1903:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2659 .loc 1 1903 8 is_stmt 0 view .LVU835
2660 0128 19F0080F tst r9, #8
2661 012c 5CD1 bne .L208
2662 .L179:
1920:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2663 .loc 1 1920 3 is_stmt 1 view .LVU836
1920:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2664 .loc 1 1920 6 is_stmt 0 view .LVU837
2665 012e 14F0100F tst r4, #16
2666 0132 04D0 beq .L180
1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2667 .loc 1 1923 5 is_stmt 1 view .LVU838
1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2668 .loc 1 1923 14 is_stmt 0 view .LVU839
2669 0134 2B68 ldr r3, [r5]
1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2670 .loc 1 1923 24 view .LVU840
2671 0136 1B69 ldr r3, [r3, #16]
1923:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2672 .loc 1 1923 8 view .LVU841
2673 0138 13F0030F tst r3, #3
2674 013c 5BD1 bne .L209
2675 .L180:
1937:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2676 .loc 1 1937 3 is_stmt 1 view .LVU842
1937:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2677 .loc 1 1937 6 is_stmt 0 view .LVU843
2678 013e 14F4003F tst r4, #131072
2679 0142 02D0 beq .L181
1939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2680 .loc 1 1939 5 is_stmt 1 view .LVU844
1939:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2681 .loc 1 1939 8 is_stmt 0 view .LVU845
2682 0144 17F0100F tst r7, #16
2683 0148 59D1 bne .L210
2684 .L181:
1956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2685 .loc 1 1956 3 is_stmt 1 view .LVU846
1956:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2686 .loc 1 1956 6 is_stmt 0 view .LVU847
2687 014a 14F4803F tst r4, #65536
2688 014e 02D0 beq .L182
1958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2689 .loc 1 1958 5 is_stmt 1 view .LVU848
1958:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2690 .loc 1 1958 8 is_stmt 0 view .LVU849
2691 0150 17F0080F tst r7, #8
2692 0154 5AD1 bne .L211
2693 .L182:
1975:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2694 .loc 1 1975 3 is_stmt 1 view .LVU850
1975:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
ARM GAS /tmp/ccXma6Rl.s page 113
2695 .loc 1 1975 6 is_stmt 0 view .LVU851
2696 0156 14F4004F tst r4, #32768
2697 015a 35D0 beq .L183
1977:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2698 .loc 1 1977 5 is_stmt 1 view .LVU852
1977:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2699 .loc 1 1977 8 is_stmt 0 view .LVU853
2700 015c 17F0040F tst r7, #4
2701 0160 2FD0 beq .L184
1980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U))
2702 .loc 1 1980 7 is_stmt 1 view .LVU854
1980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U))
2703 .loc 1 1980 10 is_stmt 0 view .LVU855
2704 0162 14F4807F tst r4, #256
2705 0166 04D0 beq .L185
1980:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EWGF) != 0U))
2706 .loc 1 1980 55 discriminator 1 view .LVU856
2707 0168 18F0010F tst r8, #1
2708 016c 01D0 beq .L185
1984:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2709 .loc 1 1984 9 is_stmt 1 view .LVU857
1984:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2710 .loc 1 1984 19 is_stmt 0 view .LVU858
2711 016e 4BF0010B orr fp, fp, #1
2712 .LVL205:
2713 .L185:
1990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U))
2714 .loc 1 1990 7 is_stmt 1 view .LVU859
1990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U))
2715 .loc 1 1990 10 is_stmt 0 view .LVU860
2716 0172 14F4007F tst r4, #512
2717 0176 04D0 beq .L186
1990:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_EPVF) != 0U))
2718 .loc 1 1990 55 discriminator 1 view .LVU861
2719 0178 18F0020F tst r8, #2
2720 017c 01D0 beq .L186
1994:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2721 .loc 1 1994 9 is_stmt 1 view .LVU862
1994:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2722 .loc 1 1994 19 is_stmt 0 view .LVU863
2723 017e 4BF0020B orr fp, fp, #2
2724 .LVL206:
2725 .L186:
2000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U))
2726 .loc 1 2000 7 is_stmt 1 view .LVU864
2000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U))
2727 .loc 1 2000 10 is_stmt 0 view .LVU865
2728 0182 14F4806F tst r4, #1024
2729 0186 04D0 beq .L187
2000:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_BOFF) != 0U))
2730 .loc 1 2000 48 discriminator 1 view .LVU866
2731 0188 18F0040F tst r8, #4
2732 018c 01D0 beq .L187
2004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2733 .loc 1 2004 9 is_stmt 1 view .LVU867
2004:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2734 .loc 1 2004 19 is_stmt 0 view .LVU868
ARM GAS /tmp/ccXma6Rl.s page 114
2735 018e 4BF0040B orr fp, fp, #4
2736 .LVL207:
2737 .L187:
2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
2738 .loc 1 2010 7 is_stmt 1 view .LVU869
2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
2739 .loc 1 2010 10 is_stmt 0 view .LVU870
2740 0192 14F4006F tst r4, #2048
2741 0196 14D0 beq .L184
2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
2742 .loc 1 2010 57 discriminator 1 view .LVU871
2743 0198 18F07008 ands r8, r8, #112
2744 .LVL208:
2010:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ((esrflags & CAN_ESR_LEC) != 0U))
2745 .loc 1 2010 57 discriminator 1 view .LVU872
2746 019c 11D0 beq .L184
2013:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2747 .loc 1 2013 9 is_stmt 1 view .LVU873
2748 019e B8F1300F cmp r8, #48
2749 01a2 46D0 beq .L188
2750 01a4 39D9 bls .L212
2751 01a6 B8F1500F cmp r8, #80
2752 01aa 48D0 beq .L193
2753 01ac B8F1600F cmp r8, #96
2754 01b0 48D0 beq .L194
2755 01b2 B8F1400F cmp r8, #64
2756 01b6 3FD0 beq .L213
2757 .L192:
2044:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2758 .loc 1 2044 9 view .LVU874
2759 01b8 2A68 ldr r2, [r5]
2760 01ba 9369 ldr r3, [r2, #24]
2761 01bc 23F07003 bic r3, r3, #112
2762 01c0 9361 str r3, [r2, #24]
2763 .L184:
2049:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2764 .loc 1 2049 5 view .LVU875
2765 01c2 2B68 ldr r3, [r5]
2766 01c4 0422 movs r2, #4
2767 01c6 5A60 str r2, [r3, #4]
2768 .L183:
2053:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2769 .loc 1 2053 3 view .LVU876
2053:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2770 .loc 1 2053 6 is_stmt 0 view .LVU877
2771 01c8 BBF1000F cmp fp, #0
2772 01cc 3DD1 bne .L214
2773 .L164:
2067:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2774 .loc 1 2067 1 view .LVU878
2775 01ce BDE8F88F pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
2776 .LVL209:
2777 .L206:
1857:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2778 .loc 1 1857 7 is_stmt 1 view .LVU879
2779 01d2 2B68 ldr r3, [r5]
2780 01d4 0822 movs r2, #8
ARM GAS /tmp/ccXma6Rl.s page 115
2781 01d6 DA60 str r2, [r3, #12]
1865:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2782 .loc 1 1865 7 view .LVU880
2783 01d8 2846 mov r0, r5
2784 01da FFF7FEFF bl HAL_CAN_RxFifo0FullCallback
2785 .LVL210:
2786 01de 8DE7 b .L176
2787 .L207:
1882:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2788 .loc 1 1882 7 view .LVU881
2789 01e0 2846 mov r0, r5
2790 01e2 FFF7FEFF bl HAL_CAN_RxFifo0MsgPendingCallback
2791 .LVL211:
2792 01e6 91E7 b .L177
2793 .L208:
1906:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2794 .loc 1 1906 7 view .LVU882
2795 01e8 2B68 ldr r3, [r5]
2796 01ea 0822 movs r2, #8
2797 01ec 1A61 str r2, [r3, #16]
1914:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2798 .loc 1 1914 7 view .LVU883
2799 01ee 2846 mov r0, r5
2800 01f0 FFF7FEFF bl HAL_CAN_RxFifo1FullCallback
2801 .LVL212:
2802 01f4 9BE7 b .L179
2803 .L209:
1931:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2804 .loc 1 1931 7 view .LVU884
2805 01f6 2846 mov r0, r5
2806 01f8 FFF7FEFF bl HAL_CAN_RxFifo1MsgPendingCallback
2807 .LVL213:
2808 01fc 9FE7 b .L180
2809 .L210:
1942:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2810 .loc 1 1942 7 view .LVU885
2811 01fe 2B68 ldr r3, [r5]
2812 0200 1022 movs r2, #16
2813 0202 5A60 str r2, [r3, #4]
1950:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2814 .loc 1 1950 7 view .LVU886
2815 0204 2846 mov r0, r5
2816 0206 FFF7FEFF bl HAL_CAN_SleepCallback
2817 .LVL214:
2818 020a 9EE7 b .L181
2819 .L211:
1961:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2820 .loc 1 1961 7 view .LVU887
2821 020c 2B68 ldr r3, [r5]
2822 020e 0822 movs r2, #8
2823 0210 5A60 str r2, [r3, #4]
1969:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2824 .loc 1 1969 7 view .LVU888
2825 0212 2846 mov r0, r5
2826 0214 FFF7FEFF bl HAL_CAN_WakeUpFromRxMsgCallback
2827 .LVL215:
2828 0218 9DE7 b .L182
ARM GAS /tmp/ccXma6Rl.s page 116
2829 .LVL216:
2830 .L212:
2013:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2831 .loc 1 2013 9 is_stmt 0 view .LVU889
2832 021a B8F1100F cmp r8, #16
2833 021e 05D0 beq .L190
2834 0220 B8F1200F cmp r8, #32
2835 0224 C8D1 bne .L192
2021:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2836 .loc 1 2021 13 is_stmt 1 view .LVU890
2021:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2837 .loc 1 2021 23 is_stmt 0 view .LVU891
2838 0226 4BF0100B orr fp, fp, #16
2839 .LVL217:
2022:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_1 | CAN_ESR_LEC_0):
2840 .loc 1 2022 13 is_stmt 1 view .LVU892
2841 022a C5E7 b .L192
2842 .L190:
2017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2843 .loc 1 2017 13 view .LVU893
2017:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2844 .loc 1 2017 23 is_stmt 0 view .LVU894
2845 022c 4BF0080B orr fp, fp, #8
2846 .LVL218:
2018:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_1):
2847 .loc 1 2018 13 is_stmt 1 view .LVU895
2848 0230 C2E7 b .L192
2849 .L188:
2025:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2850 .loc 1 2025 13 view .LVU896
2025:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2851 .loc 1 2025 23 is_stmt 0 view .LVU897
2852 0232 4BF0200B orr fp, fp, #32
2853 .LVL219:
2026:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2):
2854 .loc 1 2026 13 is_stmt 1 view .LVU898
2855 0236 BFE7 b .L192
2856 .L213:
2029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2857 .loc 1 2029 13 view .LVU899
2029:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2858 .loc 1 2029 23 is_stmt 0 view .LVU900
2859 0238 4BF0400B orr fp, fp, #64
2860 .LVL220:
2030:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_0):
2861 .loc 1 2030 13 is_stmt 1 view .LVU901
2862 023c BCE7 b .L192
2863 .L193:
2033:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2864 .loc 1 2033 13 view .LVU902
2033:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2865 .loc 1 2033 23 is_stmt 0 view .LVU903
2866 023e 4BF0800B orr fp, fp, #128
2867 .LVL221:
2034:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** case (CAN_ESR_LEC_2 | CAN_ESR_LEC_1):
2868 .loc 1 2034 13 is_stmt 1 view .LVU904
2869 0242 B9E7 b .L192
ARM GAS /tmp/ccXma6Rl.s page 117
2870 .L194:
2037:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2871 .loc 1 2037 13 view .LVU905
2037:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** break;
2872 .loc 1 2037 23 is_stmt 0 view .LVU906
2873 0244 4BF4807B orr fp, fp, #256
2874 .LVL222:
2038:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** default:
2875 .loc 1 2038 13 is_stmt 1 view .LVU907
2876 0248 B6E7 b .L192
2877 .L214:
2056:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2878 .loc 1 2056 5 view .LVU908
2056:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2879 .loc 1 2056 21 is_stmt 0 view .LVU909
2880 024a 6B6A ldr r3, [r5, #36]
2881 024c 43EA0B03 orr r3, r3, fp
2882 0250 6B62 str r3, [r5, #36]
2064:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** #endif /* USE_HAL_CAN_REGISTER_CALLBACKS */
2883 .loc 1 2064 5 is_stmt 1 view .LVU910
2884 0252 2846 mov r0, r5
2885 0254 FFF7FEFF bl HAL_CAN_ErrorCallback
2886 .LVL223:
2067:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2887 .loc 1 2067 1 is_stmt 0 view .LVU911
2888 0258 B9E7 b .L164
2889 .cfi_endproc
2890 .LFE84:
2892 .section .text.HAL_CAN_GetState,"ax",%progbits
2893 .align 1
2894 .global HAL_CAN_GetState
2895 .syntax unified
2896 .thumb
2897 .thumb_func
2898 .fpu softvfp
2900 HAL_CAN_GetState:
2901 .LVL224:
2902 .LFB98:
2318:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2319:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2320:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @}
2321:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2322:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2323:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /** @defgroup CAN_Exported_Functions_Group6 Peripheral State and Error functions
2324:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief CAN Peripheral State functions
2325:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** *
2326:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @verbatim
2327:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
2328:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ##### Peripheral State and Error functions #####
2329:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** ==============================================================================
2330:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** [..]
2331:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** This subsection provides functions allowing to :
2332:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetState() : Return the CAN state.
2333:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_GetError() : Return the CAN error codes if any.
2334:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (+) HAL_CAN_ResetError(): Reset the CAN error codes if any.
2335:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2336:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** @endverbatim
ARM GAS /tmp/ccXma6Rl.s page 118
2337:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @{
2338:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2339:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2340:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2341:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return the CAN state.
2342:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2343:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2344:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL state
2345:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2346:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef HAL_CAN_GetState(CAN_HandleTypeDef *hcan)
2347:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2903 .loc 1 2347 1 is_stmt 1 view -0
2904 .cfi_startproc
2905 @ args = 0, pretend = 0, frame = 0
2906 @ frame_needed = 0, uses_anonymous_args = 0
2907 @ link register save eliminated.
2348:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
2908 .loc 1 2348 3 view .LVU913
2909 .loc 1 2348 24 is_stmt 0 view .LVU914
2910 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
2911 0004 DBB2 uxtb r3, r3
2912 .LVL225:
2349:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2350:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
2913 .loc 1 2350 3 is_stmt 1 view .LVU915
2914 .loc 1 2350 38 is_stmt 0 view .LVU916
2915 0006 5A1E subs r2, r3, #1
2916 0008 D2B2 uxtb r2, r2
2917 .loc 1 2350 6 view .LVU917
2918 000a 012A cmp r2, #1
2919 000c 01D9 bls .L219
2920 .LVL226:
2921 .L216:
2351:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
2352:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2353:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check sleep mode acknowledge flag */
2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((hcan->Instance->MSR & CAN_MSR_SLAK) != 0U)
2355:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2356:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Sleep mode is active */
2357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_ACTIVE;
2358:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2359:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Check sleep mode request flag */
2360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else if ((hcan->Instance->MCR & CAN_MCR_SLEEP) != 0U)
2361:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2362:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Sleep mode request is pending */
2363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** state = HAL_CAN_STATE_SLEEP_PENDING;
2364:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2365:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
2366:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2367:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Neither sleep mode request nor sleep mode acknowledge */
2368:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2922 .loc 1 2368 5 is_stmt 1 view .LVU918
2369:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2370:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2371:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return CAN state */
2372:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return state;
2923 .loc 1 2372 3 view .LVU919
ARM GAS /tmp/ccXma6Rl.s page 119
2373:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2924 .loc 1 2373 1 is_stmt 0 view .LVU920
2925 000e 1846 mov r0, r3
2926 .LVL227:
2927 .loc 1 2373 1 view .LVU921
2928 0010 7047 bx lr
2929 .LVL228:
2930 .L219:
2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2931 .loc 1 2354 5 is_stmt 1 view .LVU922
2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2932 .loc 1 2354 14 is_stmt 0 view .LVU923
2933 0012 0268 ldr r2, [r0]
2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2934 .loc 1 2354 24 view .LVU924
2935 0014 5168 ldr r1, [r2, #4]
2354:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2936 .loc 1 2354 8 view .LVU925
2937 0016 11F0020F tst r1, #2
2938 001a 05D1 bne .L217
2360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2939 .loc 1 2360 10 is_stmt 1 view .LVU926
2360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2940 .loc 1 2360 29 is_stmt 0 view .LVU927
2941 001c 1268 ldr r2, [r2]
2360:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2942 .loc 1 2360 13 view .LVU928
2943 001e 12F0020F tst r2, #2
2944 0022 F4D0 beq .L216
2363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2945 .loc 1 2363 13 view .LVU929
2946 0024 0323 movs r3, #3
2947 .LVL229:
2363:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2948 .loc 1 2363 13 view .LVU930
2949 0026 F2E7 b .L216
2950 .LVL230:
2951 .L217:
2357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2952 .loc 1 2357 13 view .LVU931
2953 0028 0423 movs r3, #4
2954 .LVL231:
2357:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2955 .loc 1 2357 13 view .LVU932
2956 002a F0E7 b .L216
2957 .cfi_endproc
2958 .LFE98:
2960 .section .text.HAL_CAN_GetError,"ax",%progbits
2961 .align 1
2962 .global HAL_CAN_GetError
2963 .syntax unified
2964 .thumb
2965 .thumb_func
2966 .fpu softvfp
2968 HAL_CAN_GetError:
2969 .LVL232:
2970 .LFB99:
ARM GAS /tmp/ccXma6Rl.s page 120
2374:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2375:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2376:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Return the CAN error code.
2377:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2378:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2379:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval CAN Error Code
2380:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2381:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** uint32_t HAL_CAN_GetError(CAN_HandleTypeDef *hcan)
2382:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2971 .loc 1 2382 1 is_stmt 1 view -0
2972 .cfi_startproc
2973 @ args = 0, pretend = 0, frame = 0
2974 @ frame_needed = 0, uses_anonymous_args = 0
2975 @ link register save eliminated.
2383:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return CAN error code */
2384:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return hcan->ErrorCode;
2976 .loc 1 2384 3 view .LVU934
2977 .loc 1 2384 14 is_stmt 0 view .LVU935
2978 0000 406A ldr r0, [r0, #36]
2979 .LVL233:
2385:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2980 .loc 1 2385 1 view .LVU936
2981 0002 7047 bx lr
2982 .cfi_endproc
2983 .LFE99:
2985 .section .text.HAL_CAN_ResetError,"ax",%progbits
2986 .align 1
2987 .global HAL_CAN_ResetError
2988 .syntax unified
2989 .thumb
2990 .thumb_func
2991 .fpu softvfp
2993 HAL_CAN_ResetError:
2994 .LVL234:
2995 .LFB100:
2386:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2387:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /**
2388:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @brief Reset the CAN error code.
2389:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @param hcan pointer to a CAN_HandleTypeDef structure that contains
2390:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * the configuration information for the specified CAN.
2391:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * @retval HAL status
2392:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** */
2393:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef HAL_CAN_ResetError(CAN_HandleTypeDef *hcan)
2394:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2996 .loc 1 2394 1 is_stmt 1 view -0
2997 .cfi_startproc
2998 @ args = 0, pretend = 0, frame = 0
2999 @ frame_needed = 0, uses_anonymous_args = 0
3000 @ link register save eliminated.
2395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_StatusTypeDef status = HAL_OK;
3001 .loc 1 2395 3 view .LVU938
2396:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
3002 .loc 1 2396 3 view .LVU939
3003 .loc 1 2396 24 is_stmt 0 view .LVU940
3004 0000 90F82030 ldrb r3, [r0, #32] @ zero_extendqisi2
3005 .LVL235:
2397:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
ARM GAS /tmp/ccXma6Rl.s page 121
2398:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** if ((state == HAL_CAN_STATE_READY) ||
3006 .loc 1 2398 3 is_stmt 1 view .LVU941
3007 .loc 1 2398 38 is_stmt 0 view .LVU942
3008 0004 013B subs r3, r3, #1
3009 .LVL236:
3010 .loc 1 2398 38 view .LVU943
3011 0006 DBB2 uxtb r3, r3
3012 .loc 1 2398 6 view .LVU944
3013 0008 012B cmp r3, #1
3014 000a 05D9 bls .L224
2399:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** (state == HAL_CAN_STATE_LISTENING))
2400:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2401:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Reset CAN error code */
2402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode = 0U;
2403:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2404:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** else
2405:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** {
2406:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Update error code */
2407:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** hcan->ErrorCode |= HAL_CAN_ERROR_NOT_INITIALIZED;
3015 .loc 1 2407 5 is_stmt 1 view .LVU945
3016 .loc 1 2407 21 is_stmt 0 view .LVU946
3017 000c 436A ldr r3, [r0, #36]
3018 000e 43F48023 orr r3, r3, #262144
3019 0012 4362 str r3, [r0, #36]
2408:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2409:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** status = HAL_ERROR;
3020 .loc 1 2409 5 is_stmt 1 view .LVU947
3021 .LVL237:
3022 .loc 1 2409 12 is_stmt 0 view .LVU948
3023 0014 0120 movs r0, #1
3024 .LVL238:
2410:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
2411:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c ****
2412:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** /* Return the status */
2413:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** return status;
3025 .loc 1 2413 3 is_stmt 1 view .LVU949
2414:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
3026 .loc 1 2414 1 is_stmt 0 view .LVU950
3027 0016 7047 bx lr
3028 .LVL239:
3029 .L224:
2402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
3030 .loc 1 2402 5 is_stmt 1 view .LVU951
2402:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** }
3031 .loc 1 2402 21 is_stmt 0 view .LVU952
3032 0018 0023 movs r3, #0
3033 001a 4362 str r3, [r0, #36]
2395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
3034 .loc 1 2395 21 view .LVU953
3035 001c 1846 mov r0, r3
3036 .LVL240:
2395:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** HAL_CAN_StateTypeDef state = hcan->State;
3037 .loc 1 2395 21 view .LVU954
3038 001e 7047 bx lr
3039 .cfi_endproc
3040 .LFE100:
3042 .text
ARM GAS /tmp/ccXma6Rl.s page 122
3043 .Letext0:
3044 .file 3 "/usr/arm-none-eabi/include/machine/_default_types.h"
3045 .file 4 "/usr/arm-none-eabi/include/sys/_stdint.h"
3046 .file 5 "Drivers/CMSIS/Include/core_cm3.h"
3047 .file 6 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h"
3048 .file 7 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h"
3049 .file 8 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h"
3050 .file 9 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h"
3051 .file 10 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_can.h"
3052 .file 11 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h"
ARM GAS /tmp/ccXma6Rl.s page 123
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f1xx_hal_can.c
/tmp/ccXma6Rl.s:16 .text.HAL_CAN_MspInit:0000000000000000 $t
/tmp/ccXma6Rl.s:24 .text.HAL_CAN_MspInit:0000000000000000 HAL_CAN_MspInit
/tmp/ccXma6Rl.s:40 .text.HAL_CAN_Init:0000000000000000 $t
/tmp/ccXma6Rl.s:47 .text.HAL_CAN_Init:0000000000000000 HAL_CAN_Init
/tmp/ccXma6Rl.s:335 .text.HAL_CAN_MspDeInit:0000000000000000 $t
/tmp/ccXma6Rl.s:342 .text.HAL_CAN_MspDeInit:0000000000000000 HAL_CAN_MspDeInit
/tmp/ccXma6Rl.s:357 .text.HAL_CAN_ConfigFilter:0000000000000000 $t
/tmp/ccXma6Rl.s:364 .text.HAL_CAN_ConfigFilter:0000000000000000 HAL_CAN_ConfigFilter
/tmp/ccXma6Rl.s:587 .text.HAL_CAN_Start:0000000000000000 $t
/tmp/ccXma6Rl.s:594 .text.HAL_CAN_Start:0000000000000000 HAL_CAN_Start
/tmp/ccXma6Rl.s:692 .text.HAL_CAN_Stop:0000000000000000 $t
/tmp/ccXma6Rl.s:699 .text.HAL_CAN_Stop:0000000000000000 HAL_CAN_Stop
/tmp/ccXma6Rl.s:798 .text.HAL_CAN_DeInit:0000000000000000 $t
/tmp/ccXma6Rl.s:805 .text.HAL_CAN_DeInit:0000000000000000 HAL_CAN_DeInit
/tmp/ccXma6Rl.s:861 .text.HAL_CAN_RequestSleep:0000000000000000 $t
/tmp/ccXma6Rl.s:868 .text.HAL_CAN_RequestSleep:0000000000000000 HAL_CAN_RequestSleep
/tmp/ccXma6Rl.s:917 .text.HAL_CAN_WakeUp:0000000000000000 $t
/tmp/ccXma6Rl.s:924 .text.HAL_CAN_WakeUp:0000000000000000 HAL_CAN_WakeUp
/tmp/ccXma6Rl.s:1020 .text.HAL_CAN_WakeUp:0000000000000054 $d
/tmp/ccXma6Rl.s:1025 .text.HAL_CAN_IsSleepActive:0000000000000000 $t
/tmp/ccXma6Rl.s:1032 .text.HAL_CAN_IsSleepActive:0000000000000000 HAL_CAN_IsSleepActive
/tmp/ccXma6Rl.s:1086 .text.HAL_CAN_AddTxMessage:0000000000000000 $t
/tmp/ccXma6Rl.s:1093 .text.HAL_CAN_AddTxMessage:0000000000000000 HAL_CAN_AddTxMessage
/tmp/ccXma6Rl.s:1314 .text.HAL_CAN_AbortTxRequest:0000000000000000 $t
/tmp/ccXma6Rl.s:1321 .text.HAL_CAN_AbortTxRequest:0000000000000000 HAL_CAN_AbortTxRequest
/tmp/ccXma6Rl.s:1396 .text.HAL_CAN_GetTxMailboxesFreeLevel:0000000000000000 $t
/tmp/ccXma6Rl.s:1403 .text.HAL_CAN_GetTxMailboxesFreeLevel:0000000000000000 HAL_CAN_GetTxMailboxesFreeLevel
/tmp/ccXma6Rl.s:1480 .text.HAL_CAN_IsTxMessagePending:0000000000000000 $t
/tmp/ccXma6Rl.s:1487 .text.HAL_CAN_IsTxMessagePending:0000000000000000 HAL_CAN_IsTxMessagePending
/tmp/ccXma6Rl.s:1545 .text.HAL_CAN_GetTxTimestamp:0000000000000000 $t
/tmp/ccXma6Rl.s:1552 .text.HAL_CAN_GetTxTimestamp:0000000000000000 HAL_CAN_GetTxTimestamp
/tmp/ccXma6Rl.s:1627 .text.HAL_CAN_GetRxMessage:0000000000000000 $t
/tmp/ccXma6Rl.s:1634 .text.HAL_CAN_GetRxMessage:0000000000000000 HAL_CAN_GetRxMessage
/tmp/ccXma6Rl.s:1924 .text.HAL_CAN_GetRxFifoFillLevel:0000000000000000 $t
/tmp/ccXma6Rl.s:1931 .text.HAL_CAN_GetRxFifoFillLevel:0000000000000000 HAL_CAN_GetRxFifoFillLevel
/tmp/ccXma6Rl.s:1993 .text.HAL_CAN_ActivateNotification:0000000000000000 $t
/tmp/ccXma6Rl.s:2000 .text.HAL_CAN_ActivateNotification:0000000000000000 HAL_CAN_ActivateNotification
/tmp/ccXma6Rl.s:2050 .text.HAL_CAN_DeactivateNotification:0000000000000000 $t
/tmp/ccXma6Rl.s:2057 .text.HAL_CAN_DeactivateNotification:0000000000000000 HAL_CAN_DeactivateNotification
/tmp/ccXma6Rl.s:2107 .text.HAL_CAN_TxMailbox0CompleteCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2114 .text.HAL_CAN_TxMailbox0CompleteCallback:0000000000000000 HAL_CAN_TxMailbox0CompleteCallback
/tmp/ccXma6Rl.s:2129 .text.HAL_CAN_TxMailbox1CompleteCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2136 .text.HAL_CAN_TxMailbox1CompleteCallback:0000000000000000 HAL_CAN_TxMailbox1CompleteCallback
/tmp/ccXma6Rl.s:2151 .text.HAL_CAN_TxMailbox2CompleteCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2158 .text.HAL_CAN_TxMailbox2CompleteCallback:0000000000000000 HAL_CAN_TxMailbox2CompleteCallback
/tmp/ccXma6Rl.s:2173 .text.HAL_CAN_TxMailbox0AbortCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2180 .text.HAL_CAN_TxMailbox0AbortCallback:0000000000000000 HAL_CAN_TxMailbox0AbortCallback
/tmp/ccXma6Rl.s:2195 .text.HAL_CAN_TxMailbox1AbortCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2202 .text.HAL_CAN_TxMailbox1AbortCallback:0000000000000000 HAL_CAN_TxMailbox1AbortCallback
/tmp/ccXma6Rl.s:2217 .text.HAL_CAN_TxMailbox2AbortCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2224 .text.HAL_CAN_TxMailbox2AbortCallback:0000000000000000 HAL_CAN_TxMailbox2AbortCallback
/tmp/ccXma6Rl.s:2239 .text.HAL_CAN_RxFifo0MsgPendingCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2246 .text.HAL_CAN_RxFifo0MsgPendingCallback:0000000000000000 HAL_CAN_RxFifo0MsgPendingCallback
/tmp/ccXma6Rl.s:2261 .text.HAL_CAN_RxFifo0FullCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2268 .text.HAL_CAN_RxFifo0FullCallback:0000000000000000 HAL_CAN_RxFifo0FullCallback
ARM GAS /tmp/ccXma6Rl.s page 124
/tmp/ccXma6Rl.s:2283 .text.HAL_CAN_RxFifo1MsgPendingCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2290 .text.HAL_CAN_RxFifo1MsgPendingCallback:0000000000000000 HAL_CAN_RxFifo1MsgPendingCallback
/tmp/ccXma6Rl.s:2305 .text.HAL_CAN_RxFifo1FullCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2312 .text.HAL_CAN_RxFifo1FullCallback:0000000000000000 HAL_CAN_RxFifo1FullCallback
/tmp/ccXma6Rl.s:2327 .text.HAL_CAN_SleepCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2334 .text.HAL_CAN_SleepCallback:0000000000000000 HAL_CAN_SleepCallback
/tmp/ccXma6Rl.s:2349 .text.HAL_CAN_WakeUpFromRxMsgCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2356 .text.HAL_CAN_WakeUpFromRxMsgCallback:0000000000000000 HAL_CAN_WakeUpFromRxMsgCallback
/tmp/ccXma6Rl.s:2371 .text.HAL_CAN_ErrorCallback:0000000000000000 $t
/tmp/ccXma6Rl.s:2378 .text.HAL_CAN_ErrorCallback:0000000000000000 HAL_CAN_ErrorCallback
/tmp/ccXma6Rl.s:2393 .text.HAL_CAN_IRQHandler:0000000000000000 $t
/tmp/ccXma6Rl.s:2400 .text.HAL_CAN_IRQHandler:0000000000000000 HAL_CAN_IRQHandler
/tmp/ccXma6Rl.s:2893 .text.HAL_CAN_GetState:0000000000000000 $t
/tmp/ccXma6Rl.s:2900 .text.HAL_CAN_GetState:0000000000000000 HAL_CAN_GetState
/tmp/ccXma6Rl.s:2961 .text.HAL_CAN_GetError:0000000000000000 $t
/tmp/ccXma6Rl.s:2968 .text.HAL_CAN_GetError:0000000000000000 HAL_CAN_GetError
/tmp/ccXma6Rl.s:2986 .text.HAL_CAN_ResetError:0000000000000000 $t
/tmp/ccXma6Rl.s:2993 .text.HAL_CAN_ResetError:0000000000000000 HAL_CAN_ResetError
UNDEFINED SYMBOLS
HAL_GetTick