Files
usb_switcher/rusci-firmware/build/stm32f1xx_hal_can.lst
2020-11-07 12:48:40 +01:00

7358 lines
472 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

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

ARM GAS /tmp/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 **** * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
202:Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c **** * All rights reserved.</center></h2>
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