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

25238 lines
1.5 MiB
Raw 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/cczJHHnF.s page 1
1 .cpu cortex-m4
2 .arch armv7e-m
3 .fpu fpv4-sp-d16
4 .eabi_attribute 27, 1
5 .eabi_attribute 28, 1
6 .eabi_attribute 20, 1
7 .eabi_attribute 21, 1
8 .eabi_attribute 23, 3
9 .eabi_attribute 24, 1
10 .eabi_attribute 25, 1
11 .eabi_attribute 26, 1
12 .eabi_attribute 30, 1
13 .eabi_attribute 34, 1
14 .eabi_attribute 18, 4
15 .file "stm32f3xx_hal_i2c.c"
16 .text
17 .Ltext0:
18 .cfi_sections .debug_frame
19 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c"
20 .section .text.I2C_Flush_TXDR,"ax",%progbits
21 .align 1
22 .syntax unified
23 .thumb
24 .thumb_func
26 I2C_Flush_TXDR:
27 .LVL0:
28 .LFB193:
1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @file stm32f3xx_hal_i2c.c
4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @author MCD Application Team
5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver.
6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This file provides firmware functions to manage the following
7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral:
8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Initialization and de-initialization functions
9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + IO operation functions
10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Peripheral State and Errors functions
11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### How to use this driver #####
15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The I2C HAL driver can be used as follows:
18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example:
20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef hi2c;
21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API:
23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) Enable the I2Cx interface clock
24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) I2C pins configuration
25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs
26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain
27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process
28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority
29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel
30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process
ARM GAS /tmp/cczJHHnF.s page 2
31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for
32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the transmit or receive channel
33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using
34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA handle parameters
35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel
36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the DMA Tx or Rx channel
39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres
41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure
42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H
44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API.
45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead
47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver :
49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO operation ***
51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit(
54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive()
55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit()
56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive()
57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO MEM operation ***
59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =====================================
60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W
62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_
63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO operation ***
66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===================================
67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans
69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv
72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi
75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_
78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 3
88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation ***
90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==========================================================
91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition
93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** when a direction change during transfer
94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer
96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below:
97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac
98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** no sequential mode
99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con
100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and data to transfer without a final stop condition
101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a
102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond
103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** an then permit a call the same master sequential interface several time
104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit
105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D
106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart
107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases
110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart
111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases
114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re
115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after several call of the same master sequential interface several time
116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME).
117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one using
118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME.
123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit
124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra
125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio
126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c
127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each call of the same master sequential
128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** interface.
129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave
130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each bytes using
131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME.
136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to
137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** generation of STOP condition.
138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below:
140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using
141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA()
142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut
143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC
144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using
ARM GAS /tmp/cczJHHnF.s page 4
145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA()
146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed
147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using HAL_I2C_Master_A
149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT()
152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_DisableListen_IT()
153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can
154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques
155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (Write/Read).
156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can
157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback()
158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using
159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA()
160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute
161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa
162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using
163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA()
164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a
165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO MEM operation ***
172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =======================================
173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address
175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT()
176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address
179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT()
180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO operation ***
186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================
187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA()
190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA()
194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA()
198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA()
ARM GAS /tmp/cczJHHnF.s page 5
202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT()
207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO MEM operation ***
213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA()
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using
220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA()
221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** I2C HAL driver macros list ***
228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==================================
229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver.
231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral
233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral
234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode
235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not
236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag
237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt
238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt
239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Callback registration ***
241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================
242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1
244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks.
245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback()
246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to register an interrupt callback.
247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks:
249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
ARM GAS /tmp/cczJHHnF.s page 6
259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and a pointer to the user callback function.
262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall
264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default
266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** weak function.
267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle,
268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the Callback ID.
269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function allows to reset following callbacks:
270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback().
283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET
285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions:
286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback().
287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are
288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when
289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** these callbacks are null (not registered beforehand).
290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit()
291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state.
292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only.
294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered
295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state,
296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks
298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit()
299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Init() function.
300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or
302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks
303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** are set to the corresponding weak functions.
304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros
307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @attention
311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * <h2><center>&copy; Copyright (c) 2016 STMicroelectronics.
313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * All rights reserved.</center></h2>
314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This software component is licensed by ST under BSD 3-Clause license,
ARM GAS /tmp/cczJHHnF.s page 7
316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the "License"; You may not use this file except in compliance with the
317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * License. You may obtain a copy of the License at:
318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * opensource.org/licenses/BSD-3-Clause
319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/
324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #include "stm32f3xx_hal.h"
325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup STM32F3xx_HAL_Driver
327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C I2C
331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver
332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED
336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/
338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/
339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define
341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */
344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */
347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */
348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */
349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */
350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */
351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */
352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */
353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U
355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U
356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U
357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */
359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \
360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY))))
362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Default Value */
365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */
368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */
371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
ARM GAS /tmp/cczJHHnF.s page 8
373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */
374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */
377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \
378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */
380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \
381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */
383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */
386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with
387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with
389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2
391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */
392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo
394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and NACK treatment */
395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene
396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of
397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */
399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U)
400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private macro -------------------------------------------------------------*/
405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions
409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle DMA transfer */
412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma);
413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma);
414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma);
415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma);
416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma);
417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma);
418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */
420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c);
422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c);
423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode);
427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */
429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
ARM GAS /tmp/cczJHHnF.s page 9
430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */
437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */
447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart);
449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */
459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to treat different error callback */
463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c);
464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to flush TXDR register */
466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c);
467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */
469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request);
471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to Convert Specific options */
473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/
479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions
481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialization and Configuration functions
486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
ARM GAS /tmp/cczJHHnF.s page 10
487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Initialization and de-initialization functions #####
490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and
492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** deinitialize the I2Cx peripheral:
493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures
495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with
498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the selected configuration:
499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Clock Timing
500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 1
501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Addressing mode (Master, Slave)
502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Dual Addressing mode
503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2
504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2 Mask
505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) General call mode
506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Nostretch mode
507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration
509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** of the selected I2Cx peripheral.
510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters
517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle.
518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET)
541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Allocate lock resource and initialize it */
543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED;
ARM GAS /tmp/cczJHHnF.s page 11
544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the I2C Callback settings */
547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback
548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback
549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback
550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback
551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback
552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback
557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL)
559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */
561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c);
565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c);
568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the selected I2C peripheral */
574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */
585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */
590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */
596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10);
599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */
ARM GAS /tmp/cczJHHnF.s page 12
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */
605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \
609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/
612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the selected I2C peripheral */
616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c);
617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral.
628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */
646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL)
650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */
652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c);
656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
ARM GAS /tmp/cczJHHnF.s page 13
658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c);
659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */
667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialize the I2C MSP.
674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file
685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP.
690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file
701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register a User I2C Callback
707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak predefined callback
708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered
711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
ARM GAS /tmp/cczJHHnF.s page 14
715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Callback function
724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb
727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback)
728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback;
747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback;
751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback;
755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback;
759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback;
763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback;
767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback;
771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
ARM GAS /tmp/cczJHHnF.s page 15
772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback;
775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback;
779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */
ARM GAS /tmp/cczJHHnF.s page 16
829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Unregister an I2C Callback
835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback
836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered
839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal
855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb
867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb
871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba
875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba
879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac
883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
ARM GAS /tmp/cczJHHnF.s page 17
886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
ARM GAS /tmp/cczJHHnF.s page 18
943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */
949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback
955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback
956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function
959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC
962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = pCallback;
978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */
989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback
995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal
996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
ARM GAS /tmp/cczJHHnF.s page 19
1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c)
1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */
1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */
1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions
1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Data transfers functions
1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### IO operation functions #####
1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data
1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfers.
1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) There are two modes of transfer:
1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode.
1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The status of all data processing is returned by the same function
1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after finishing transfer.
1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts
1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup.
1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The end of the data processing will be indicated through the
1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when
1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using DMA mode.
1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Blocking mode functions are :
1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit()
1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive()
1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit()
1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive()
ARM GAS /tmp/cczJHHnF.s page 20
1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write()
1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read()
1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady()
1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are :
1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT()
1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT()
1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT()
1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT()
1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT()
1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT()
1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT()
1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT()
1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT()
1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT()
1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT()
1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT()
1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT()
1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are :
1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA()
1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA()
1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA()
1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA()
1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA()
1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA()
1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA()
1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA()
1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA()
1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA()
1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback()
1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback()
1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback()
1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback()
1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback()
1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback()
1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback()
1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback()
1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback()
1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback()
1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode.
1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
ARM GAS /tmp/cczJHHnF.s page 21
1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD
1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
ARM GAS /tmp/cczJHHnF.s page 22
1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode.
1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
ARM GAS /tmp/cczJHHnF.s page 23
1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa
1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
ARM GAS /tmp/cczJHHnF.s page 24
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 25
1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode.
1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 26
1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->ErrorCode == HAL_I2C_ERROR_AF)
1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Normal use case for Transmitter mode */
1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* A NACK is generated to confirm the end of transfer */
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 27
1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
ARM GAS /tmp/cczJHHnF.s page 28
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 29
1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
ARM GAS /tmp/cczJHHnF.s page 30
1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT
1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
ARM GAS /tmp/cczJHHnF.s page 31
1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *
1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 32
1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt
1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 33
1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt
1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
ARM GAS /tmp/cczJHHnF.s page 34
1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->
ARM GAS /tmp/cczJHHnF.s page 35
1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART
1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
ARM GAS /tmp/cczJHHnF.s page 36
1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA
1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 37
2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART *
2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
ARM GAS /tmp/cczJHHnF.s page 38
2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
ARM GAS /tmp/cczJHHnF.s page 39
2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size
2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
ARM GAS /tmp/cczJHHnF.s page 40
2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA
2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
ARM GAS /tmp/cczJHHnF.s page 41
2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size)
2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 42
2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre
2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti
2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 43
2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS /tmp/cczJHHnF.s page 44
2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
ARM GAS /tmp/cczJHHnF.s page 45
2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres
2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim
2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 46
2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 47
2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres
2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 48
2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar
2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
ARM GAS /tmp/cczJHHnF.s page 49
2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre
2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd
2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
ARM GAS /tmp/cczJHHnF.s page 50
2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart
2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address
2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA
ARM GAS /tmp/cczJHHnF.s page 51
2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstar
2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 52
2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
ARM GAS /tmp/cczJHHnF.s page 53
2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address.
2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be read
2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd
2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
ARM GAS /tmp/cczJHHnF.s page 54
2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart
3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
ARM GAS /tmp/cczJHHnF.s page 55
3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_RE
3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This function is used with Memory devices
3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
ARM GAS /tmp/cczJHHnF.s page 56
3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Trials Number of trials
3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL;
3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp1;
3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2;
3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Start */
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET))
3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 57
3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Device is ready */
3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */
3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_Trials == Trials)
3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Trials */
ARM GAS /tmp/cczJHHnF.s page 58
3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Trials++;
3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials);
3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte
3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
ARM GAS /tmp/cczJHHnF.s page 59
3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA.
3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
ARM GAS /tmp/cczJHHnF.s page 60
3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin
3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
ARM GAS /tmp/cczJHHnF.s page 61
3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->
3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
ARM GAS /tmp/cczJHHnF.s page 62
3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter
3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
ARM GAS /tmp/cczJHHnF.s page 63
3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8
3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 64
3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA
3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 65
3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
ARM GAS /tmp/cczJHHnF.s page 66
3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
ARM GAS /tmp/cczJHHnF.s page 67
3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 68
3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
ARM GAS /tmp/cczJHHnF.s page 69
3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit
3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t
3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 70
3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
ARM GAS /tmp/cczJHHnF.s page 71
3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
ARM GAS /tmp/cczJHHnF.s page 72
4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si
4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 73
4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT)
4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with
4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
ARM GAS /tmp/cczJHHnF.s page 74
4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
ARM GAS /tmp/cczJHHnF.s page 75
4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR,
4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
ARM GAS /tmp/cczJHHnF.s page 76
4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT)
4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 77
4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt.
4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the Address Match interrupt */
4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
4328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C
4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp;
4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the Address Match interrupt */
4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
ARM GAS /tmp/cczJHHnF.s page 78
4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt.
4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe
4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong usage of abort function */
4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
ARM GAS /tmp/cczJHHnF.s page 79
4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c)
4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \
4459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
4462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */
4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
4465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \
4469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */
4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 80
4477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \
4479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
4482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */
4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
4485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
4489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_
4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror);
4494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
4499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
4504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
4510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback.
4515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
4520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
4526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
4530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
ARM GAS /tmp/cczJHHnF.s page 81
4534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
4535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
4541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
4546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
4557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Address Match callback.
4562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
4565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
4566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
4569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection);
4573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode);
4574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
4577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Listen Complete callback.
4582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 82
4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
4593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
4598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
4603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
4609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
4619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
4625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C error callback.
4630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
4635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C abort callback.
4646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
ARM GAS /tmp/cczJHHnF.s page 83
4648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
4651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
4657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
4662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
4665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
4666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
4668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
4669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
4670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
4671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
4672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral
4673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the data flow.
4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
4676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C handle state.
4681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL state
4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c)
4686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */
4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->State;
4689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
4693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for I2C module
4695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL mode
4696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c)
4698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode;
4700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C error code.
4704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
ARM GAS /tmp/cczJHHnF.s page 84
4705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval I2C Error Code
4707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c)
4709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode;
4711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
4715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
4719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions
4722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
4723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
4727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
4734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
4737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
4738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
4743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
4744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
4749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
4750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
4757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
4758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
4761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 85
4762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
4764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
4767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
4770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
4772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
4773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
4776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
4779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
4782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
4784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
4785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
4787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
4789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
4791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
4794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
4799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
4801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
4802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
4806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
4807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
ARM GAS /tmp/cczJHHnF.s page 86
4819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
4821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
4827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
4828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
4832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
4835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
4838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
4843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
4849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
4851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
4856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
4859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
4860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
4862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
4863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
4873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
ARM GAS /tmp/cczJHHnF.s page 87
4876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
4880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
4883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
4884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
4890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
4891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags);
4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
4897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
4898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
4900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
4901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/
4902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
4904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
4906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
4907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
4908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
4910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
4911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
4913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
4918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
4921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
4922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
4923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
4927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
ARM GAS /tmp/cczJHHnF.s page 88
4933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
4934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
4940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
4943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
4947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
4950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
4953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
4956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
4959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
4963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
4965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \
4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
4970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags);
4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if all Data have already been sent */
4979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */
4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
4981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
4984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
4987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
ARM GAS /tmp/cczJHHnF.s page 89
4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
4996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
4998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
5014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
5025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
5040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
5042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
5044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
ARM GAS /tmp/cczJHHnF.s page 90
5047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC interrupt */
5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
5051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Recover Slave address */
5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
5067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
5078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
5090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
ARM GAS /tmp/cczJHHnF.s page 91
5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
5109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
5117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
5120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
5140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
5154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
ARM GAS /tmp/cczJHHnF.s page 92
5161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
5165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
5166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
5176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
5182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */
5183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */
5184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) ||
5186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
5187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)
5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U)
5194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */
5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET)
5204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_DMA_GET_COUNTER(hi2c->hdmatx) == 0U)
5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
5208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (treatdmanack == 1U)
5213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
5216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
5217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 93
5218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
5220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM
5222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
5230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/
5242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */
5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpstate = hi2c->State;
5250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
5252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
5254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
5256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN
5258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */
5274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
ARM GAS /tmp/cczJHHnF.s page 94
5275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \
5278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
5279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
5281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
5300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
5302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
5303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
5306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
5307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
5310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 95
5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
5341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
5355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
5358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
5361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
5362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 96
5389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TC flag is set */
5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
5396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Address complete process callback.
5405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
5408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection;
5412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode;
5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code;
5414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code;
5415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
5417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(ITFlags);
5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */
5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN)
5421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
5426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK))
5431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++;
5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Address Event counter */
5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
ARM GAS /tmp/cczJHHnF.s page 97
5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
5456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
5458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
5459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
5464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
5472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
5475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
5476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
5481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Else clear address flag only */
5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
5492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
5502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
ARM GAS /tmp/cczJHHnF.s page 98
5503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c)
5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
5510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */
5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
5512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
5516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
5518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
5526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
5528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
5531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
5536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
5538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
5539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
5546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
5554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
5555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
5556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c)
5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
ARM GAS /tmp/cczJHHnF.s page 99
5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
5566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
5569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
5571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
5578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
5581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
5585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
5595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
5597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
5601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
5605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
5615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
ARM GAS /tmp/cczJHHnF.s page 100
5617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master complete process.
5627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
5628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
5630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
5634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg;
5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
5638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
5639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
5642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
5645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
5650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
5654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
5657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
5658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET)
5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set acknowledge error code */
5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Fetch Last receive data if any */
5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET))
ARM GAS /tmp/cczJHHnF.s page 101
5674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR;
5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
5678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
5685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE))
5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
5694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c);
5708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
5710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
5722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
ARM GAS /tmp/cczJHHnF.s page 102
5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
5734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c);
5743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
5745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
5757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
5759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave complete process.
5770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
5771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
5773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
5777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
5779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
5782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
5785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
ARM GAS /tmp/cczJHHnF.s page 103
5788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
5790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
5793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
5804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
5806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
5810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
5813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmatx);
5817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
5820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
5823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)__HAL_DMA_GET_COUNTER(hi2c->hdmarx);
5827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
5832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)
5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
5839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
ARM GAS /tmp/cczJHHnF.s page 104
5845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
5847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
5862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
5864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
5870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
5872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
5873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
5876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */
5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
5890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
5892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
ARM GAS /tmp/cczJHHnF.s page 105
5902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
5906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
5908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
5923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Listen complete process.
5929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
5932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
5941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET)
5944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
5950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
5952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 106
5959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all Interrupts*/
5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
5963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
5975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C interrupts error process.
5980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
5983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
5987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate;
5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
5993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set new error code */
5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
5996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) ||
5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
6000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
6001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
6004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
6008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts */
6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT);
6013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */
6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This change will be do later */
ARM GAS /tmp/cczJHHnF.s page 107
6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
6017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
6022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState;
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \
6027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
6028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
6030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY)
6035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
6037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
6039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
6048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \
6057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
6058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
6060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY)
6065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
6067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 108
6073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
6075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
6078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Error callback treatment.
6093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c)
6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
6099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
6109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
6111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
6123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
6125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
ARM GAS /tmp/cczJHHnF.s page 109
6130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Tx data register flush process.
6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
29 .loc 1 6135 1 view -0
30 .cfi_startproc
31 @ args = 0, pretend = 0, frame = 0
32 @ frame_needed = 0, uses_anonymous_args = 0
33 @ link register save eliminated.
6136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a pending TXIS flag is set */
6137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
34 .loc 1 6138 3 view .LVU1
35 .loc 1 6138 7 is_stmt 0 view .LVU2
36 0000 0368 ldr r3, [r0]
37 0002 9A69 ldr r2, [r3, #24]
38 .loc 1 6138 6 view .LVU3
39 0004 12F0020F tst r2, #2
40 0008 01D0 beq .L2
6139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
41 .loc 1 6140 5 is_stmt 1 view .LVU4
42 .loc 1 6140 26 is_stmt 0 view .LVU5
43 000a 0022 movs r2, #0
44 000c 9A62 str r2, [r3, #40]
45 .L2:
6141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register if not empty */
6144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
46 .loc 1 6144 3 is_stmt 1 view .LVU6
47 .loc 1 6144 7 is_stmt 0 view .LVU7
48 000e 0368 ldr r3, [r0]
49 0010 9A69 ldr r2, [r3, #24]
50 .loc 1 6144 6 view .LVU8
51 0012 12F0010F tst r2, #1
52 0016 03D1 bne .L1
6145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
53 .loc 1 6146 5 is_stmt 1 view .LVU9
54 0018 9A69 ldr r2, [r3, #24]
55 001a 42F00102 orr r2, r2, #1
56 001e 9A61 str r2, [r3, #24]
57 .L1:
6147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
58 .loc 1 6148 1 is_stmt 0 view .LVU10
59 0020 7047 bx lr
60 .cfi_endproc
61 .LFE193:
63 .section .text.I2C_TransferConfig,"ax",%progbits
64 .align 1
65 .syntax unified
66 .thumb
67 .thumb_func
ARM GAS /tmp/cczJHHnF.s page 110
69 I2C_TransferConfig:
70 .LVL1:
71 .LFB205:
6149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
6153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
6187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
6188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
6195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
6202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
ARM GAS /tmp/cczJHHnF.s page 111
6203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
6212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
6230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
6231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 112
6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr,
6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
6266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
6273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
6280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_DMA_GET_COUNTER(hi2c->hdmarx) == 0U) && \
6290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
6291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */
6302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
6303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
6308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
6309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Acknowledge */
ARM GAS /tmp/cczJHHnF.s page 113
6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
6318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
6325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle.
6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset AbortCpltCallback */
6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout.
6349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
6351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
6352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Status The new Flag status (SET or RESET).
6353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
6355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
6356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
6358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart)
6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
6361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS /tmp/cczJHHnF.s page 114
6374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag.
6382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
6384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
6385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
6386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
6387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a NACK is detected */
6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
6416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
6420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
6422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
6424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
6425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 115
6431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a NACK is detected */
6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
6451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
6458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
6459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
6462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a NACK is detected */
6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsAcknowledgeFailed(hi2c, Timeout, Tickstart) != HAL_OK)
6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */
6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an RXNE is pending */
6476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
6478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return HAL_OK */
6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */
6481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
6482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 116
6488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
6515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles Acknowledge failed detection during an I2C Communication.
6519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
6522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
6523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
6524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_
6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
6528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of Soft End condition, generate the STOP condition */
6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
6531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
6534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP Flag is reset */
6536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
6538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
ARM GAS /tmp/cczJHHnF.s page 117
6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACKF Flag */
6557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
6560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
6563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar
6582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
6584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
6585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
6586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
6587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
6588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
6589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
6592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
6593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
6594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
6595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
6600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request)
6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 118
72 .loc 1 6601 1 is_stmt 1 view -0
73 .cfi_startproc
74 @ args = 4, pretend = 0, frame = 0
75 @ frame_needed = 0, uses_anonymous_args = 0
76 @ link register save eliminated.
77 .loc 1 6601 1 is_stmt 0 view .LVU12
78 0000 30B4 push {r4, r5}
79 .cfi_def_cfa_offset 8
80 .cfi_offset 4, -8
81 .cfi_offset 5, -4
82 0002 029D ldr r5, [sp, #8]
6602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
6603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
83 .loc 1 6603 3 is_stmt 1 view .LVU13
6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
84 .loc 1 6604 3 view .LVU14
6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
85 .loc 1 6605 3 view .LVU15
6606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* update CR2 register */
6608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2,
86 .loc 1 6608 3 view .LVU16
87 0004 0468 ldr r4, [r0]
88 0006 6068 ldr r0, [r4, #4]
89 .LVL2:
90 .loc 1 6608 3 is_stmt 0 view .LVU17
91 0008 4FEA555C lsr ip, r5, #21
92 000c 0CF4806C and ip, ip, #1024
93 0010 4CF07F7C orr ip, ip, #66846720
94 0014 4CF4583C orr ip, ip, #221184
95 0018 4CF47F7C orr ip, ip, #1020
96 001c 4CF0030C orr ip, ip, #3
97 0020 20EA0C00 bic r0, r0, ip
98 0024 C1F30901 ubfx r1, r1, #0, #10
99 .LVL3:
100 .loc 1 6608 3 view .LVU18
101 0028 41EA0241 orr r1, r1, r2, lsl #16
102 002c 1943 orrs r1, r1, r3
103 002e 2943 orrs r1, r1, r5
104 0030 0843 orrs r0, r0, r1
105 0032 6060 str r0, [r4, #4]
6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \
6610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \
6611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), \
6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \
6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
6614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request));
6615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
106 .loc 1 6615 1 view .LVU19
107 0034 30BC pop {r4, r5}
108 .cfi_restore 5
109 .cfi_restore 4
110 .cfi_def_cfa_offset 0
111 .LVL4:
112 .loc 1 6615 1 view .LVU20
113 0036 7047 bx lr
114 .cfi_endproc
ARM GAS /tmp/cczJHHnF.s page 119
115 .LFE205:
117 .section .text.I2C_Enable_IRQ,"ax",%progbits
118 .align 1
119 .syntax unified
120 .thumb
121 .thumb_func
123 I2C_Enable_IRQ:
124 .LVL5:
125 .LFB206:
6616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts.
6619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
6621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
126 .loc 1 6625 1 is_stmt 1 view -0
127 .cfi_startproc
128 @ args = 0, pretend = 0, frame = 0
129 @ frame_needed = 0, uses_anonymous_args = 0
130 @ link register save eliminated.
6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
131 .loc 1 6626 3 view .LVU22
6627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferISR == I2C_Master_ISR_DMA) || \
132 .loc 1 6628 3 view .LVU23
133 .loc 1 6628 12 is_stmt 0 view .LVU24
134 0000 436B ldr r3, [r0, #52]
135 .loc 1 6628 6 view .LVU25
136 0002 1A4A ldr r2, .L20
137 0004 9342 cmp r3, r2
138 0006 15D0 beq .L7
139 .loc 1 6628 45 discriminator 1 view .LVU26
140 0008 194A ldr r2, .L20+4
141 000a 9342 cmp r3, r2
142 000c 12D0 beq .L7
6629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR == I2C_Slave_ISR_DMA))
6630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
6632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
6634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
6638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
6641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI);
ARM GAS /tmp/cczJHHnF.s page 120
6647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
143 .loc 1 6657 5 is_stmt 1 view .LVU27
144 .loc 1 6657 8 is_stmt 0 view .LVU28
145 000e 11F4004F tst r1, #32768
146 0012 28D1 bne .L17
6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
147 .loc 1 6626 12 view .LVU29
148 0014 0023 movs r3, #0
149 .L12:
150 .LVL6:
6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, and ADDR interrupts */
6660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
6661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
151 .loc 1 6663 5 is_stmt 1 view .LVU30
152 .loc 1 6663 8 is_stmt 0 view .LVU31
153 0016 11F0010F tst r1, #1
154 001a 01D0 beq .L13
6664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
6666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI;
155 .loc 1 6666 7 is_stmt 1 view .LVU32
156 .loc 1 6666 14 is_stmt 0 view .LVU33
157 001c 43F0F203 orr r3, r3, #242
158 .LVL7:
159 .L13:
6667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
160 .loc 1 6669 5 is_stmt 1 view .LVU34
161 .loc 1 6669 8 is_stmt 0 view .LVU35
162 0020 11F0020F tst r1, #2
163 0024 01D0 beq .L14
6670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
6672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI;
164 .loc 1 6672 7 is_stmt 1 view .LVU36
165 .loc 1 6672 14 is_stmt 0 view .LVU37
166 0026 43F0F403 orr r3, r3, #244
167 .LVL8:
168 .L14:
6673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
169 .loc 1 6675 5 is_stmt 1 view .LVU38
ARM GAS /tmp/cczJHHnF.s page 121
170 .loc 1 6675 8 is_stmt 0 view .LVU39
171 002a 2029 cmp r1, #32
172 002c 0ED1 bne .L11
6676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
6678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
173 .loc 1 6678 7 is_stmt 1 view .LVU40
174 .loc 1 6678 14 is_stmt 0 view .LVU41
175 002e 43F02003 orr r3, r3, #32
176 .LVL9:
177 .loc 1 6678 14 view .LVU42
178 0032 0BE0 b .L11
179 .LVL10:
180 .L7:
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
181 .loc 1 6631 5 is_stmt 1 view .LVU43
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
182 .loc 1 6631 8 is_stmt 0 view .LVU44
183 0034 11F4004F tst r1, #32768
184 0038 03D1 bne .L15
6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
185 .loc 1 6637 5 is_stmt 1 view .LVU45
6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
186 .loc 1 6637 8 is_stmt 0 view .LVU46
187 003a 1029 cmp r1, #16
188 003c 0BD0 beq .L16
6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
189 .loc 1 6626 12 view .LVU47
190 003e 0023 movs r3, #0
191 0040 00E0 b .L9
192 .L15:
6634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
193 .loc 1 6634 14 view .LVU48
194 0042 B823 movs r3, #184
195 .L9:
196 .LVL11:
6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
197 .loc 1 6643 5 is_stmt 1 view .LVU49
6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
198 .loc 1 6643 8 is_stmt 0 view .LVU50
199 0044 2029 cmp r1, #32
200 0046 08D0 beq .L18
201 .L10:
6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
202 .loc 1 6649 5 is_stmt 1 view .LVU51
6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
203 .loc 1 6649 8 is_stmt 0 view .LVU52
204 0048 4029 cmp r1, #64
205 004a 09D0 beq .L19
206 .L11:
6679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable interrupts only at the end */
6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
6684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all interrupts requested done */
6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
ARM GAS /tmp/cczJHHnF.s page 122
207 .loc 1 6685 3 is_stmt 1 view .LVU53
208 004c 0168 ldr r1, [r0]
209 .LVL12:
210 .loc 1 6685 3 is_stmt 0 view .LVU54
211 004e 0A68 ldr r2, [r1]
212 0050 1343 orrs r3, r3, r2
213 .LVL13:
214 .loc 1 6685 3 view .LVU55
215 0052 0B60 str r3, [r1]
6686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
216 .loc 1 6686 1 view .LVU56
217 0054 7047 bx lr
218 .LVL14:
219 .L16:
6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
220 .loc 1 6640 14 view .LVU57
221 0056 9023 movs r3, #144
222 0058 F4E7 b .L9
223 .LVL15:
224 .L18:
6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
225 .loc 1 6646 7 is_stmt 1 view .LVU58
6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
226 .loc 1 6646 14 is_stmt 0 view .LVU59
227 005a 43F06003 orr r3, r3, #96
228 .LVL16:
6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
229 .loc 1 6646 14 view .LVU60
230 005e F3E7 b .L10
231 .L19:
6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
232 .loc 1 6652 7 is_stmt 1 view .LVU61
6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
233 .loc 1 6652 14 is_stmt 0 view .LVU62
234 0060 43F04003 orr r3, r3, #64
235 .LVL17:
6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
236 .loc 1 6652 14 view .LVU63
237 0064 F2E7 b .L11
238 .LVL18:
239 .L17:
6660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
240 .loc 1 6660 14 view .LVU64
241 0066 B823 movs r3, #184
242 0068 D5E7 b .L12
243 .L21:
244 006a 00BF .align 2
245 .L20:
246 006c 00000000 .word I2C_Master_ISR_DMA
247 0070 00000000 .word I2C_Slave_ISR_DMA
248 .cfi_endproc
249 .LFE206:
251 .section .text.I2C_Disable_IRQ,"ax",%progbits
252 .align 1
253 .syntax unified
254 .thumb
255 .thumb_func
ARM GAS /tmp/cczJHHnF.s page 123
257 I2C_Disable_IRQ:
258 .LVL19:
259 .LFB207:
6687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
6690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
6693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
6696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
260 .loc 1 6696 1 is_stmt 1 view -0
261 .cfi_startproc
262 @ args = 0, pretend = 0, frame = 0
263 @ frame_needed = 0, uses_anonymous_args = 0
264 @ link register save eliminated.
6697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
265 .loc 1 6697 3 view .LVU66
6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
266 .loc 1 6699 3 view .LVU67
267 .loc 1 6699 6 is_stmt 0 view .LVU68
268 0000 11F0010F tst r1, #1
269 0004 09D0 beq .L29
6700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
6702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
270 .loc 1 6702 5 is_stmt 1 view .LVU69
271 .LVL20:
6703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
272 .loc 1 6704 5 view .LVU70
273 .loc 1 6704 24 is_stmt 0 view .LVU71
274 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
275 .loc 1 6704 8 view .LVU72
276 000a 03F02803 and r3, r3, #40
277 000e 282B cmp r3, #40
278 0010 01D0 beq .L32
6705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
6707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
279 .loc 1 6707 14 view .LVU73
280 0012 F223 movs r3, #242
281 0014 02E0 b .L23
282 .L32:
6702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
283 .loc 1 6702 12 view .LVU74
284 0016 4223 movs r3, #66
285 0018 00E0 b .L23
286 .LVL21:
287 .L29:
6697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
288 .loc 1 6697 12 view .LVU75
289 001a 0023 movs r3, #0
290 .LVL22:
ARM GAS /tmp/cczJHHnF.s page 124
291 .L23:
6708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
292 .loc 1 6711 3 is_stmt 1 view .LVU76
293 .loc 1 6711 6 is_stmt 0 view .LVU77
294 001c 11F0020F tst r1, #2
295 0020 09D0 beq .L24
6712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
6714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
296 .loc 1 6714 5 is_stmt 1 view .LVU78
297 .loc 1 6714 12 is_stmt 0 view .LVU79
298 0022 43F0440C orr ip, r3, #68
299 .LVL23:
6715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN)
300 .loc 1 6716 5 is_stmt 1 view .LVU80
301 .loc 1 6716 24 is_stmt 0 view .LVU81
302 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
303 .loc 1 6716 8 view .LVU82
304 002a 02F02802 and r2, r2, #40
305 002e 282A cmp r2, #40
306 0030 10D0 beq .L31
6717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
6719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
307 .loc 1 6719 7 is_stmt 1 view .LVU83
308 .loc 1 6719 14 is_stmt 0 view .LVU84
309 0032 43F0F403 orr r3, r3, #244
310 .LVL24:
311 .L24:
6720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
312 .loc 1 6723 3 is_stmt 1 view .LVU85
313 .loc 1 6723 6 is_stmt 0 view .LVU86
314 0036 11F4004F tst r1, #32768
315 003a 0DD1 bne .L33
316 .L25:
6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
6727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
317 .loc 1 6729 3 is_stmt 1 view .LVU87
318 .loc 1 6729 6 is_stmt 0 view .LVU88
319 003c 1029 cmp r1, #16
320 003e 0ED0 beq .L34
321 .L26:
6730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
6733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 125
6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
322 .loc 1 6735 3 is_stmt 1 view .LVU89
323 .loc 1 6735 6 is_stmt 0 view .LVU90
324 0040 2029 cmp r1, #32
325 0042 0FD0 beq .L35
326 .L27:
6736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
327 .loc 1 6741 3 is_stmt 1 view .LVU91
328 .loc 1 6741 6 is_stmt 0 view .LVU92
329 0044 4029 cmp r1, #64
330 0046 10D0 beq .L36
331 .L28:
6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
6745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable interrupts only at the end */
6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
6749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all disable interrupts request are not done */
6750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
332 .loc 1 6750 3 is_stmt 1 view .LVU93
333 0048 0168 ldr r1, [r0]
334 .LVL25:
335 .loc 1 6750 3 is_stmt 0 view .LVU94
336 004a 0A68 ldr r2, [r1]
337 004c 22EA0303 bic r3, r2, r3
338 .LVL26:
339 .loc 1 6750 3 view .LVU95
340 0050 0B60 str r3, [r1]
6751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
341 .loc 1 6751 1 view .LVU96
342 0052 7047 bx lr
343 .LVL27:
344 .L31:
6714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
345 .loc 1 6714 12 view .LVU97
346 0054 6346 mov r3, ip
347 0056 EEE7 b .L24
348 .LVL28:
349 .L33:
6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
350 .loc 1 6726 5 is_stmt 1 view .LVU98
6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
351 .loc 1 6726 12 is_stmt 0 view .LVU99
352 0058 43F0B803 orr r3, r3, #184
353 .LVL29:
6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
354 .loc 1 6726 12 view .LVU100
355 005c EEE7 b .L25
356 .L34:
ARM GAS /tmp/cczJHHnF.s page 126
6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
357 .loc 1 6732 5 is_stmt 1 view .LVU101
6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
358 .loc 1 6732 12 is_stmt 0 view .LVU102
359 005e 43F09003 orr r3, r3, #144
360 .LVL30:
6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
361 .loc 1 6732 12 view .LVU103
362 0062 EDE7 b .L26
363 .L35:
6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
364 .loc 1 6738 5 is_stmt 1 view .LVU104
6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
365 .loc 1 6738 12 is_stmt 0 view .LVU105
366 0064 43F02003 orr r3, r3, #32
367 .LVL31:
6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
368 .loc 1 6738 12 view .LVU106
369 0068 ECE7 b .L27
370 .L36:
6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
371 .loc 1 6744 5 is_stmt 1 view .LVU107
6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
372 .loc 1 6744 12 is_stmt 0 view .LVU108
373 006a 43F04003 orr r3, r3, #64
374 .LVL32:
6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
375 .loc 1 6744 12 view .LVU109
376 006e EBE7 b .L28
377 .cfi_endproc
378 .LFE207:
380 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits
381 .align 1
382 .syntax unified
383 .thumb
384 .thumb_func
386 I2C_ConvertOtherXferOptions:
387 .LVL33:
388 .LFB208:
6752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions.
6755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c)
6759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
389 .loc 1 6759 1 is_stmt 1 view -0
390 .cfi_startproc
391 @ args = 0, pretend = 0, frame = 0
392 @ frame_needed = 0, uses_anonymous_args = 0
393 @ link register save eliminated.
6760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */
6761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
6762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */
6763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME)
394 .loc 1 6763 3 view .LVU111
ARM GAS /tmp/cczJHHnF.s page 127
395 .loc 1 6763 11 is_stmt 0 view .LVU112
396 0000 C36A ldr r3, [r0, #44]
397 .loc 1 6763 6 view .LVU113
398 0002 AA2B cmp r3, #170
399 0004 04D0 beq .L40
6764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME;
6766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */
6768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
6769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */
6770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */
6771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME)
400 .loc 1 6771 8 is_stmt 1 view .LVU114
401 .loc 1 6771 16 is_stmt 0 view .LVU115
402 0006 C36A ldr r3, [r0, #44]
403 .loc 1 6771 11 view .LVU116
404 0008 B3F52A4F cmp r3, #43520
405 000c 03D0 beq .L41
406 .L37:
6772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME;
6774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
6778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
407 .loc 1 6779 1 view .LVU117
408 000e 7047 bx lr
409 .L40:
6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
410 .loc 1 6765 5 is_stmt 1 view .LVU118
6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
411 .loc 1 6765 23 is_stmt 0 view .LVU119
412 0010 0023 movs r3, #0
413 0012 C362 str r3, [r0, #44]
414 0014 7047 bx lr
415 .L41:
6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
416 .loc 1 6773 5 is_stmt 1 view .LVU120
6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
417 .loc 1 6773 23 is_stmt 0 view .LVU121
418 0016 4FF00073 mov r3, #33554432
419 001a C362 str r3, [r0, #44]
6778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
420 .loc 1 6778 3 is_stmt 1 view .LVU122
421 .loc 1 6779 1 is_stmt 0 view .LVU123
422 001c F7E7 b .L37
423 .cfi_endproc
424 .LFE208:
426 .section .text.I2C_IsAcknowledgeFailed,"ax",%progbits
427 .align 1
428 .syntax unified
429 .thumb
430 .thumb_func
432 I2C_IsAcknowledgeFailed:
ARM GAS /tmp/cczJHHnF.s page 128
433 .LVL34:
434 .LFB204:
6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
435 .loc 1 6526 1 is_stmt 1 view -0
436 .cfi_startproc
437 @ args = 0, pretend = 0, frame = 0
438 @ frame_needed = 0, uses_anonymous_args = 0
6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
439 .loc 1 6526 1 is_stmt 0 view .LVU125
440 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
441 .cfi_def_cfa_offset 24
442 .cfi_offset 3, -24
443 .cfi_offset 4, -20
444 .cfi_offset 5, -16
445 .cfi_offset 6, -12
446 .cfi_offset 7, -8
447 .cfi_offset 14, -4
448 0002 0E46 mov r6, r1
6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
449 .loc 1 6527 3 is_stmt 1 view .LVU126
6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
450 .loc 1 6527 7 is_stmt 0 view .LVU127
451 0004 0368 ldr r3, [r0]
452 0006 9969 ldr r1, [r3, #24]
453 .LVL35:
6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
454 .loc 1 6527 6 view .LVU128
455 0008 11F0100F tst r1, #16
456 000c 46D0 beq .L49
457 000e 0546 mov r5, r0
458 0010 1746 mov r7, r2
6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
459 .loc 1 6530 5 is_stmt 1 view .LVU129
6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
460 .loc 1 6530 9 is_stmt 0 view .LVU130
461 0012 5A68 ldr r2, [r3, #4]
462 .LVL36:
6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
463 .loc 1 6530 8 view .LVU131
464 0014 12F0007F tst r2, #33554432
465 0018 03D1 bne .L45
6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
466 .loc 1 6533 7 is_stmt 1 view .LVU132
6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
467 .loc 1 6533 21 is_stmt 0 view .LVU133
468 001a 5A68 ldr r2, [r3, #4]
6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
469 .loc 1 6533 27 view .LVU134
470 001c 42F48042 orr r2, r2, #16384
471 0020 5A60 str r2, [r3, #4]
472 .LVL37:
473 .L45:
6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
474 .loc 1 6537 53 is_stmt 1 view .LVU135
6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
475 .loc 1 6537 12 is_stmt 0 view .LVU136
476 0022 2B68 ldr r3, [r5]
ARM GAS /tmp/cczJHHnF.s page 129
477 0024 9C69 ldr r4, [r3, #24]
6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
478 .loc 1 6537 53 view .LVU137
479 0026 14F0200F tst r4, #32
480 002a 17D1 bne .L51
6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
481 .loc 1 6540 7 is_stmt 1 view .LVU138
6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
482 .loc 1 6540 10 is_stmt 0 view .LVU139
483 002c B6F1FF3F cmp r6, #-1
484 0030 F7D0 beq .L45
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
485 .loc 1 6542 9 is_stmt 1 view .LVU140
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
486 .loc 1 6542 15 is_stmt 0 view .LVU141
487 0032 FFF7FEFF bl HAL_GetTick
488 .LVL38:
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
489 .loc 1 6542 29 view .LVU142
490 0036 C01B subs r0, r0, r7
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
491 .loc 1 6542 12 view .LVU143
492 0038 B042 cmp r0, r6
493 003a 01D8 bhi .L46
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
494 .loc 1 6542 53 discriminator 1 view .LVU144
495 003c 002E cmp r6, #0
496 003e F0D1 bne .L45
497 .L46:
6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
498 .loc 1 6544 11 is_stmt 1 view .LVU145
6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
499 .loc 1 6544 15 is_stmt 0 view .LVU146
500 0040 6B6C ldr r3, [r5, #68]
6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
501 .loc 1 6544 27 view .LVU147
502 0042 43F02003 orr r3, r3, #32
503 0046 6B64 str r3, [r5, #68]
6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
504 .loc 1 6545 11 is_stmt 1 view .LVU148
6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
505 .loc 1 6545 23 is_stmt 0 view .LVU149
506 0048 2023 movs r3, #32
507 004a 85F84130 strb r3, [r5, #65]
6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
508 .loc 1 6546 11 is_stmt 1 view .LVU150
6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
509 .loc 1 6546 22 is_stmt 0 view .LVU151
510 004e 0023 movs r3, #0
511 0050 85F84230 strb r3, [r5, #66]
6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
512 .loc 1 6549 11 is_stmt 1 view .LVU152
6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
513 .loc 1 6549 11 view .LVU153
514 0054 85F84030 strb r3, [r5, #64]
6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
515 .loc 1 6549 11 view .LVU154
ARM GAS /tmp/cczJHHnF.s page 130
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
516 .loc 1 6551 11 view .LVU155
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
517 .loc 1 6551 18 is_stmt 0 view .LVU156
518 0058 0120 movs r0, #1
519 005a 20E0 b .L43
520 .L51:
6557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
521 .loc 1 6557 5 is_stmt 1 view .LVU157
522 005c 1022 movs r2, #16
523 005e DA61 str r2, [r3, #28]
6560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
524 .loc 1 6560 5 view .LVU158
525 0060 2B68 ldr r3, [r5]
526 0062 2024 movs r4, #32
527 0064 DC61 str r4, [r3, #28]
6563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
528 .loc 1 6563 5 view .LVU159
529 0066 2846 mov r0, r5
530 0068 FFF7FEFF bl I2C_Flush_TXDR
531 .LVL39:
6566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
532 .loc 1 6566 5 view .LVU160
533 006c 2A68 ldr r2, [r5]
534 006e 5368 ldr r3, [r2, #4]
535 0070 23F0FF73 bic r3, r3, #33423360
536 0074 23F48B33 bic r3, r3, #71168
537 0078 23F4FF73 bic r3, r3, #510
538 007c 23F00103 bic r3, r3, #1
539 0080 5360 str r3, [r2, #4]
6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
540 .loc 1 6568 5 view .LVU161
6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
541 .loc 1 6568 9 is_stmt 0 view .LVU162
542 0082 6B6C ldr r3, [r5, #68]
6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
543 .loc 1 6568 21 view .LVU163
544 0084 43F00403 orr r3, r3, #4
545 0088 6B64 str r3, [r5, #68]
6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
546 .loc 1 6569 5 is_stmt 1 view .LVU164
6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
547 .loc 1 6569 17 is_stmt 0 view .LVU165
548 008a 85F84140 strb r4, [r5, #65]
6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
549 .loc 1 6570 5 is_stmt 1 view .LVU166
6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
550 .loc 1 6570 16 is_stmt 0 view .LVU167
551 008e 0023 movs r3, #0
552 0090 85F84230 strb r3, [r5, #66]
6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
553 .loc 1 6573 5 is_stmt 1 view .LVU168
6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
554 .loc 1 6573 5 view .LVU169
555 0094 85F84030 strb r3, [r5, #64]
6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
556 .loc 1 6573 5 view .LVU170
ARM GAS /tmp/cczJHHnF.s page 131
6575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
557 .loc 1 6575 5 view .LVU171
6575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
558 .loc 1 6575 12 is_stmt 0 view .LVU172
559 0098 0120 movs r0, #1
560 009a 00E0 b .L43
561 .LVL40:
562 .L49:
6577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
563 .loc 1 6577 10 view .LVU173
564 009c 0020 movs r0, #0
565 .LVL41:
566 .L43:
6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
567 .loc 1 6578 1 view .LVU174
568 009e F8BD pop {r3, r4, r5, r6, r7, pc}
6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
569 .loc 1 6578 1 view .LVU175
570 .cfi_endproc
571 .LFE204:
573 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
574 .align 1
575 .syntax unified
576 .thumb
577 .thumb_func
579 I2C_WaitOnTXISFlagUntilTimeout:
580 .LVL42:
581 .LFB201:
6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
582 .loc 1 6390 1 is_stmt 1 view -0
583 .cfi_startproc
584 @ args = 0, pretend = 0, frame = 0
585 @ frame_needed = 0, uses_anonymous_args = 0
6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
586 .loc 1 6390 1 is_stmt 0 view .LVU177
587 0000 70B5 push {r4, r5, r6, lr}
588 .cfi_def_cfa_offset 16
589 .cfi_offset 4, -16
590 .cfi_offset 5, -12
591 .cfi_offset 6, -8
592 .cfi_offset 14, -4
593 0002 0446 mov r4, r0
594 0004 0D46 mov r5, r1
595 0006 1646 mov r6, r2
6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
596 .loc 1 6391 3 is_stmt 1 view .LVU178
597 .LVL43:
598 .L55:
6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
599 .loc 1 6391 50 view .LVU179
6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
600 .loc 1 6391 10 is_stmt 0 view .LVU180
601 0008 2368 ldr r3, [r4]
602 000a 9B69 ldr r3, [r3, #24]
6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
603 .loc 1 6391 50 view .LVU181
604 000c 13F0020F tst r3, #2
ARM GAS /tmp/cczJHHnF.s page 132
605 0010 1DD1 bne .L60
6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
606 .loc 1 6394 5 is_stmt 1 view .LVU182
6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
607 .loc 1 6394 9 is_stmt 0 view .LVU183
608 0012 3246 mov r2, r6
609 0014 2946 mov r1, r5
610 0016 2046 mov r0, r4
611 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed
612 .LVL44:
6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
613 .loc 1 6394 8 view .LVU184
614 001c C8B9 cbnz r0, .L58
6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
615 .loc 1 6400 5 is_stmt 1 view .LVU185
6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
616 .loc 1 6400 8 is_stmt 0 view .LVU186
617 001e B5F1FF3F cmp r5, #-1
618 0022 F1D0 beq .L55
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
619 .loc 1 6402 7 is_stmt 1 view .LVU187
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
620 .loc 1 6402 13 is_stmt 0 view .LVU188
621 0024 FFF7FEFF bl HAL_GetTick
622 .LVL45:
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
623 .loc 1 6402 27 view .LVU189
624 0028 801B subs r0, r0, r6
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
625 .loc 1 6402 10 view .LVU190
626 002a A842 cmp r0, r5
627 002c 01D8 bhi .L56
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
628 .loc 1 6402 51 discriminator 1 view .LVU191
629 002e 002D cmp r5, #0
630 0030 EAD1 bne .L55
631 .L56:
6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
632 .loc 1 6404 9 is_stmt 1 view .LVU192
6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
633 .loc 1 6404 13 is_stmt 0 view .LVU193
634 0032 636C ldr r3, [r4, #68]
6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
635 .loc 1 6404 25 view .LVU194
636 0034 43F02003 orr r3, r3, #32
637 0038 6364 str r3, [r4, #68]
6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
638 .loc 1 6405 9 is_stmt 1 view .LVU195
6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
639 .loc 1 6405 21 is_stmt 0 view .LVU196
640 003a 2023 movs r3, #32
641 003c 84F84130 strb r3, [r4, #65]
6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
642 .loc 1 6406 9 is_stmt 1 view .LVU197
6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
643 .loc 1 6406 20 is_stmt 0 view .LVU198
644 0040 0023 movs r3, #0
ARM GAS /tmp/cczJHHnF.s page 133
645 0042 84F84230 strb r3, [r4, #66]
6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
646 .loc 1 6409 9 is_stmt 1 view .LVU199
6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
647 .loc 1 6409 9 view .LVU200
648 0046 84F84030 strb r3, [r4, #64]
6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
649 .loc 1 6409 9 view .LVU201
6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
650 .loc 1 6411 9 view .LVU202
6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
651 .loc 1 6411 16 is_stmt 0 view .LVU203
652 004a 0120 movs r0, #1
653 004c 00E0 b .L54
654 .L60:
6415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
655 .loc 1 6415 10 view .LVU204
656 004e 0020 movs r0, #0
657 .L54:
6416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
658 .loc 1 6416 1 view .LVU205
659 0050 70BD pop {r4, r5, r6, pc}
660 .LVL46:
661 .L58:
6396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
662 .loc 1 6396 14 view .LVU206
663 0052 0120 movs r0, #1
664 0054 FCE7 b .L54
665 .cfi_endproc
666 .LFE201:
668 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
669 .align 1
670 .syntax unified
671 .thumb
672 .thumb_func
674 I2C_WaitOnFlagUntilTimeout:
675 .LVL47:
676 .LFB200:
6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
677 .loc 1 6359 1 is_stmt 1 view -0
678 .cfi_startproc
679 @ args = 4, pretend = 0, frame = 0
680 @ frame_needed = 0, uses_anonymous_args = 0
6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
681 .loc 1 6359 1 is_stmt 0 view .LVU208
682 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
683 .cfi_def_cfa_offset 24
684 .cfi_offset 4, -24
685 .cfi_offset 5, -20
686 .cfi_offset 6, -16
687 .cfi_offset 7, -12
688 .cfi_offset 8, -8
689 .cfi_offset 14, -4
690 0004 0646 mov r6, r0
691 0006 8846 mov r8, r1
692 0008 1746 mov r7, r2
693 000a 1D46 mov r5, r3
ARM GAS /tmp/cczJHHnF.s page 134
6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
694 .loc 1 6360 3 is_stmt 1 view .LVU209
695 .LVL48:
696 .L63:
6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
697 .loc 1 6360 41 view .LVU210
6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
698 .loc 1 6360 10 is_stmt 0 view .LVU211
699 000c 3468 ldr r4, [r6]
700 000e A469 ldr r4, [r4, #24]
701 0010 38EA0404 bics r4, r8, r4
702 0014 0CBF ite eq
703 0016 0124 moveq r4, #1
704 0018 0024 movne r4, #0
6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
705 .loc 1 6360 41 view .LVU212
706 001a BC42 cmp r4, r7
707 001c 18D1 bne .L68
6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
708 .loc 1 6363 5 is_stmt 1 view .LVU213
6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
709 .loc 1 6363 8 is_stmt 0 view .LVU214
710 001e B5F1FF3F cmp r5, #-1
711 0022 F3D0 beq .L63
6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
712 .loc 1 6365 7 is_stmt 1 view .LVU215
6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
713 .loc 1 6365 13 is_stmt 0 view .LVU216
714 0024 FFF7FEFF bl HAL_GetTick
715 .LVL49:
6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
716 .loc 1 6365 27 view .LVU217
717 0028 069B ldr r3, [sp, #24]
718 002a C01A subs r0, r0, r3
6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
719 .loc 1 6365 10 view .LVU218
720 002c A842 cmp r0, r5
721 002e 01D8 bhi .L64
6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
722 .loc 1 6365 51 discriminator 1 view .LVU219
723 0030 002D cmp r5, #0
724 0032 EBD1 bne .L63
725 .L64:
6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
726 .loc 1 6367 9 is_stmt 1 view .LVU220
6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
727 .loc 1 6367 13 is_stmt 0 view .LVU221
728 0034 736C ldr r3, [r6, #68]
6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
729 .loc 1 6367 25 view .LVU222
730 0036 43F02003 orr r3, r3, #32
731 003a 7364 str r3, [r6, #68]
6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
732 .loc 1 6368 9 is_stmt 1 view .LVU223
6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
733 .loc 1 6368 21 is_stmt 0 view .LVU224
734 003c 2023 movs r3, #32
ARM GAS /tmp/cczJHHnF.s page 135
735 003e 86F84130 strb r3, [r6, #65]
6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
736 .loc 1 6369 9 is_stmt 1 view .LVU225
6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
737 .loc 1 6369 20 is_stmt 0 view .LVU226
738 0042 0023 movs r3, #0
739 0044 86F84230 strb r3, [r6, #66]
6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
740 .loc 1 6372 9 is_stmt 1 view .LVU227
6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
741 .loc 1 6372 9 view .LVU228
742 0048 86F84030 strb r3, [r6, #64]
6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
743 .loc 1 6372 9 view .LVU229
6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
744 .loc 1 6373 9 view .LVU230
6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
745 .loc 1 6373 16 is_stmt 0 view .LVU231
746 004c 0120 movs r0, #1
747 004e 00E0 b .L65
748 .L68:
6377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
749 .loc 1 6377 10 view .LVU232
750 0050 0020 movs r0, #0
751 .L65:
6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
752 .loc 1 6378 1 view .LVU233
753 0052 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
754 .loc 1 6378 1 view .LVU234
755 .cfi_endproc
756 .LFE200:
758 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
759 .align 1
760 .syntax unified
761 .thumb
762 .thumb_func
764 I2C_RequestMemoryWrite:
765 .LVL50:
766 .LFB183:
5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
767 .loc 1 5308 1 is_stmt 1 view -0
768 .cfi_startproc
769 @ args = 8, pretend = 0, frame = 0
770 @ frame_needed = 0, uses_anonymous_args = 0
5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
771 .loc 1 5308 1 is_stmt 0 view .LVU236
772 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
773 .cfi_def_cfa_offset 24
774 .cfi_offset 4, -24
775 .cfi_offset 5, -20
776 .cfi_offset 6, -16
777 .cfi_offset 7, -12
778 .cfi_offset 8, -8
779 .cfi_offset 14, -4
780 0004 82B0 sub sp, sp, #8
781 .cfi_def_cfa_offset 32
ARM GAS /tmp/cczJHHnF.s page 136
782 0006 0446 mov r4, r0
783 0008 9046 mov r8, r2
784 000a 1D46 mov r5, r3
785 000c 089E ldr r6, [sp, #32]
786 000e 099F ldr r7, [sp, #36]
5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
787 .loc 1 5309 3 is_stmt 1 view .LVU237
788 0010 194B ldr r3, .L78
789 .LVL51:
5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
790 .loc 1 5309 3 is_stmt 0 view .LVU238
791 0012 0093 str r3, [sp]
792 0014 4FF08073 mov r3, #16777216
793 0018 EAB2 uxtb r2, r5
794 .LVL52:
5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
795 .loc 1 5309 3 view .LVU239
796 001a FFF7FEFF bl I2C_TransferConfig
797 .LVL53:
5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
798 .loc 1 5312 3 is_stmt 1 view .LVU240
5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
799 .loc 1 5312 7 is_stmt 0 view .LVU241
800 001e 3A46 mov r2, r7
801 0020 3146 mov r1, r6
802 0022 2046 mov r0, r4
803 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
804 .LVL54:
5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
805 .loc 1 5312 6 view .LVU242
806 0028 F8B9 cbnz r0, .L73
5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
807 .loc 1 5318 3 is_stmt 1 view .LVU243
5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
808 .loc 1 5318 6 is_stmt 0 view .LVU244
809 002a 012D cmp r5, #1
810 002c 0ED1 bne .L71
5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
811 .loc 1 5321 5 is_stmt 1 view .LVU245
5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
812 .loc 1 5321 9 is_stmt 0 view .LVU246
813 002e 2368 ldr r3, [r4]
5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
814 .loc 1 5321 28 view .LVU247
815 0030 5FFA88F2 uxtb r2, r8
5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
816 .loc 1 5321 26 view .LVU248
817 0034 9A62 str r2, [r3, #40]
818 .L72:
5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
819 .loc 1 5340 3 is_stmt 1 view .LVU249
5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
820 .loc 1 5340 7 is_stmt 0 view .LVU250
821 0036 0097 str r7, [sp]
822 0038 3346 mov r3, r6
823 003a 0022 movs r2, #0
824 003c 8021 movs r1, #128
ARM GAS /tmp/cczJHHnF.s page 137
825 003e 2046 mov r0, r4
826 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
827 .LVL55:
5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
828 .loc 1 5340 6 view .LVU251
829 0044 A8B9 cbnz r0, .L77
830 .L70:
5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
831 .loc 1 5346 1 view .LVU252
832 0046 02B0 add sp, sp, #8
833 .cfi_remember_state
834 .cfi_def_cfa_offset 24
835 @ sp needed
836 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
837 .LVL56:
838 .L71:
839 .cfi_restore_state
5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
840 .loc 1 5327 5 is_stmt 1 view .LVU253
5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
841 .loc 1 5327 9 is_stmt 0 view .LVU254
842 004c 2368 ldr r3, [r4]
5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
843 .loc 1 5327 28 view .LVU255
844 004e 4FEA1822 lsr r2, r8, #8
5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
845 .loc 1 5327 26 view .LVU256
846 0052 9A62 str r2, [r3, #40]
5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
847 .loc 1 5330 5 is_stmt 1 view .LVU257
5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
848 .loc 1 5330 9 is_stmt 0 view .LVU258
849 0054 3A46 mov r2, r7
850 0056 3146 mov r1, r6
851 0058 2046 mov r0, r4
852 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
853 .LVL57:
5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
854 .loc 1 5330 8 view .LVU259
855 005e 30B9 cbnz r0, .L74
5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
856 .loc 1 5336 5 is_stmt 1 view .LVU260
5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
857 .loc 1 5336 9 is_stmt 0 view .LVU261
858 0060 2368 ldr r3, [r4]
5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
859 .loc 1 5336 28 view .LVU262
860 0062 5FFA88F2 uxtb r2, r8
5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
861 .loc 1 5336 26 view .LVU263
862 0066 9A62 str r2, [r3, #40]
863 0068 E5E7 b .L72
864 .L73:
5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
865 .loc 1 5314 12 view .LVU264
866 006a 0120 movs r0, #1
867 006c EBE7 b .L70
ARM GAS /tmp/cczJHHnF.s page 138
868 .L74:
5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
869 .loc 1 5332 14 view .LVU265
870 006e 0120 movs r0, #1
871 0070 E9E7 b .L70
872 .L77:
5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
873 .loc 1 5342 12 view .LVU266
874 0072 0120 movs r0, #1
875 0074 E7E7 b .L70
876 .L79:
877 0076 00BF .align 2
878 .L78:
879 0078 00200080 .word -2147475456
880 .cfi_endproc
881 .LFE183:
883 .section .text.I2C_RequestMemoryRead,"ax",%progbits
884 .align 1
885 .syntax unified
886 .thumb
887 .thumb_func
889 I2C_RequestMemoryRead:
890 .LVL58:
891 .LFB184:
5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
892 .loc 1 5363 1 is_stmt 1 view -0
893 .cfi_startproc
894 @ args = 8, pretend = 0, frame = 0
895 @ frame_needed = 0, uses_anonymous_args = 0
5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
896 .loc 1 5363 1 is_stmt 0 view .LVU268
897 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
898 .cfi_def_cfa_offset 24
899 .cfi_offset 4, -24
900 .cfi_offset 5, -20
901 .cfi_offset 6, -16
902 .cfi_offset 7, -12
903 .cfi_offset 8, -8
904 .cfi_offset 14, -4
905 0004 82B0 sub sp, sp, #8
906 .cfi_def_cfa_offset 32
907 0006 0446 mov r4, r0
908 0008 9046 mov r8, r2
909 000a 1D46 mov r5, r3
910 000c 089E ldr r6, [sp, #32]
911 000e 099F ldr r7, [sp, #36]
5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
912 .loc 1 5364 3 is_stmt 1 view .LVU269
913 0010 184B ldr r3, .L89
914 .LVL59:
5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
915 .loc 1 5364 3 is_stmt 0 view .LVU270
916 0012 0093 str r3, [sp]
917 0014 0023 movs r3, #0
918 0016 EAB2 uxtb r2, r5
919 .LVL60:
5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 139
920 .loc 1 5364 3 view .LVU271
921 0018 FFF7FEFF bl I2C_TransferConfig
922 .LVL61:
5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
923 .loc 1 5367 3 is_stmt 1 view .LVU272
5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
924 .loc 1 5367 7 is_stmt 0 view .LVU273
925 001c 3A46 mov r2, r7
926 001e 3146 mov r1, r6
927 0020 2046 mov r0, r4
928 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
929 .LVL62:
5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
930 .loc 1 5367 6 view .LVU274
931 0026 F8B9 cbnz r0, .L84
5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
932 .loc 1 5373 3 is_stmt 1 view .LVU275
5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
933 .loc 1 5373 6 is_stmt 0 view .LVU276
934 0028 012D cmp r5, #1
935 002a 0ED1 bne .L82
5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
936 .loc 1 5376 5 is_stmt 1 view .LVU277
5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
937 .loc 1 5376 9 is_stmt 0 view .LVU278
938 002c 2368 ldr r3, [r4]
5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
939 .loc 1 5376 28 view .LVU279
940 002e 5FFA88F2 uxtb r2, r8
5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
941 .loc 1 5376 26 view .LVU280
942 0032 9A62 str r2, [r3, #40]
943 .L83:
5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
944 .loc 1 5395 3 is_stmt 1 view .LVU281
5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
945 .loc 1 5395 7 is_stmt 0 view .LVU282
946 0034 0097 str r7, [sp]
947 0036 3346 mov r3, r6
948 0038 0022 movs r2, #0
949 003a 4021 movs r1, #64
950 003c 2046 mov r0, r4
951 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
952 .LVL63:
5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
953 .loc 1 5395 6 view .LVU283
954 0042 A8B9 cbnz r0, .L88
955 .L81:
5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
956 .loc 1 5401 1 view .LVU284
957 0044 02B0 add sp, sp, #8
958 .cfi_remember_state
959 .cfi_def_cfa_offset 24
960 @ sp needed
961 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
962 .LVL64:
963 .L82:
ARM GAS /tmp/cczJHHnF.s page 140
964 .cfi_restore_state
5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
965 .loc 1 5382 5 is_stmt 1 view .LVU285
5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
966 .loc 1 5382 9 is_stmt 0 view .LVU286
967 004a 2368 ldr r3, [r4]
5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
968 .loc 1 5382 28 view .LVU287
969 004c 4FEA1822 lsr r2, r8, #8
5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
970 .loc 1 5382 26 view .LVU288
971 0050 9A62 str r2, [r3, #40]
5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
972 .loc 1 5385 5 is_stmt 1 view .LVU289
5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
973 .loc 1 5385 9 is_stmt 0 view .LVU290
974 0052 3A46 mov r2, r7
975 0054 3146 mov r1, r6
976 0056 2046 mov r0, r4
977 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
978 .LVL65:
5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
979 .loc 1 5385 8 view .LVU291
980 005c 30B9 cbnz r0, .L85
5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
981 .loc 1 5391 5 is_stmt 1 view .LVU292
5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
982 .loc 1 5391 9 is_stmt 0 view .LVU293
983 005e 2368 ldr r3, [r4]
5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
984 .loc 1 5391 28 view .LVU294
985 0060 5FFA88F2 uxtb r2, r8
5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
986 .loc 1 5391 26 view .LVU295
987 0064 9A62 str r2, [r3, #40]
988 0066 E5E7 b .L83
989 .L84:
5369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
990 .loc 1 5369 12 view .LVU296
991 0068 0120 movs r0, #1
992 006a EBE7 b .L81
993 .L85:
5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
994 .loc 1 5387 14 view .LVU297
995 006c 0120 movs r0, #1
996 006e E9E7 b .L81
997 .L88:
5397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
998 .loc 1 5397 12 view .LVU298
999 0070 0120 movs r0, #1
1000 0072 E7E7 b .L81
1001 .L90:
1002 .align 2
1003 .L89:
1004 0074 00200080 .word -2147475456
1005 .cfi_endproc
1006 .LFE184:
ARM GAS /tmp/cczJHHnF.s page 141
1008 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
1009 .align 1
1010 .syntax unified
1011 .thumb
1012 .thumb_func
1014 I2C_WaitOnSTOPFlagUntilTimeout:
1015 .LVL66:
1016 .LFB202:
6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1017 .loc 1 6428 1 is_stmt 1 view -0
1018 .cfi_startproc
1019 @ args = 0, pretend = 0, frame = 0
1020 @ frame_needed = 0, uses_anonymous_args = 0
6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1021 .loc 1 6428 1 is_stmt 0 view .LVU300
1022 0000 70B5 push {r4, r5, r6, lr}
1023 .cfi_def_cfa_offset 16
1024 .cfi_offset 4, -16
1025 .cfi_offset 5, -12
1026 .cfi_offset 6, -8
1027 .cfi_offset 14, -4
1028 0002 0546 mov r5, r0
1029 0004 0C46 mov r4, r1
1030 0006 1646 mov r6, r2
6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1031 .loc 1 6429 3 is_stmt 1 view .LVU301
1032 .LVL67:
1033 .L92:
6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1034 .loc 1 6429 51 view .LVU302
6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1035 .loc 1 6429 10 is_stmt 0 view .LVU303
1036 0008 2B68 ldr r3, [r5]
1037 000a 9B69 ldr r3, [r3, #24]
6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1038 .loc 1 6429 51 view .LVU304
1039 000c 13F0200F tst r3, #32
1040 0010 1AD1 bne .L98
6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1041 .loc 1 6432 5 is_stmt 1 view .LVU305
6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1042 .loc 1 6432 9 is_stmt 0 view .LVU306
1043 0012 3246 mov r2, r6
1044 0014 2146 mov r1, r4
1045 0016 2846 mov r0, r5
1046 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed
1047 .LVL68:
6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1048 .loc 1 6432 8 view .LVU307
1049 001c B0B9 cbnz r0, .L96
6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1050 .loc 1 6438 5 is_stmt 1 view .LVU308
6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1051 .loc 1 6438 11 is_stmt 0 view .LVU309
1052 001e FFF7FEFF bl HAL_GetTick
1053 .LVL69:
6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 142
1054 .loc 1 6438 25 view .LVU310
1055 0022 801B subs r0, r0, r6
6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1056 .loc 1 6438 8 view .LVU311
1057 0024 A042 cmp r0, r4
1058 0026 01D8 bhi .L94
6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1059 .loc 1 6438 49 discriminator 1 view .LVU312
1060 0028 002C cmp r4, #0
1061 002a EDD1 bne .L92
1062 .L94:
6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1063 .loc 1 6440 7 is_stmt 1 view .LVU313
6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1064 .loc 1 6440 11 is_stmt 0 view .LVU314
1065 002c 6B6C ldr r3, [r5, #68]
6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1066 .loc 1 6440 23 view .LVU315
1067 002e 43F02003 orr r3, r3, #32
1068 0032 6B64 str r3, [r5, #68]
6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1069 .loc 1 6441 7 is_stmt 1 view .LVU316
6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1070 .loc 1 6441 19 is_stmt 0 view .LVU317
1071 0034 2023 movs r3, #32
1072 0036 85F84130 strb r3, [r5, #65]
6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1073 .loc 1 6442 7 is_stmt 1 view .LVU318
6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1074 .loc 1 6442 18 is_stmt 0 view .LVU319
1075 003a 0023 movs r3, #0
1076 003c 85F84230 strb r3, [r5, #66]
6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1077 .loc 1 6445 7 is_stmt 1 view .LVU320
6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1078 .loc 1 6445 7 view .LVU321
1079 0040 85F84030 strb r3, [r5, #64]
6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1080 .loc 1 6445 7 view .LVU322
6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1081 .loc 1 6447 7 view .LVU323
6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1082 .loc 1 6447 14 is_stmt 0 view .LVU324
1083 0044 0120 movs r0, #1
1084 .L93:
6451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1085 .loc 1 6451 1 view .LVU325
1086 0046 70BD pop {r4, r5, r6, pc}
1087 .LVL70:
1088 .L98:
6450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1089 .loc 1 6450 10 view .LVU326
1090 0048 0020 movs r0, #0
1091 004a FCE7 b .L93
1092 .L96:
6434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1093 .loc 1 6434 14 view .LVU327
ARM GAS /tmp/cczJHHnF.s page 143
1094 004c 0120 movs r0, #1
1095 004e FAE7 b .L93
1096 .cfi_endproc
1097 .LFE202:
1099 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
1100 .align 1
1101 .syntax unified
1102 .thumb
1103 .thumb_func
1105 I2C_WaitOnRXNEFlagUntilTimeout:
1106 .LVL71:
1107 .LFB203:
6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
1108 .loc 1 6463 1 is_stmt 1 view -0
1109 .cfi_startproc
1110 @ args = 0, pretend = 0, frame = 0
1111 @ frame_needed = 0, uses_anonymous_args = 0
6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)
1112 .loc 1 6463 1 is_stmt 0 view .LVU329
1113 0000 70B5 push {r4, r5, r6, lr}
1114 .cfi_def_cfa_offset 16
1115 .cfi_offset 4, -16
1116 .cfi_offset 5, -12
1117 .cfi_offset 6, -8
1118 .cfi_offset 14, -4
1119 0002 0446 mov r4, r0
1120 0004 0D46 mov r5, r1
1121 0006 1646 mov r6, r2
6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1122 .loc 1 6464 3 is_stmt 1 view .LVU330
1123 .LVL72:
1124 .L100:
6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1125 .loc 1 6464 50 view .LVU331
6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1126 .loc 1 6464 10 is_stmt 0 view .LVU332
1127 0008 2368 ldr r3, [r4]
1128 000a 9B69 ldr r3, [r3, #24]
6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1129 .loc 1 6464 50 view .LVU333
1130 000c 13F0040F tst r3, #4
1131 0010 3ED1 bne .L108
6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1132 .loc 1 6467 5 is_stmt 1 view .LVU334
6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1133 .loc 1 6467 9 is_stmt 0 view .LVU335
1134 0012 3246 mov r2, r6
1135 0014 2946 mov r1, r5
1136 0016 2046 mov r0, r4
1137 0018 FFF7FEFF bl I2C_IsAcknowledgeFailed
1138 .LVL73:
6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1139 .loc 1 6467 8 view .LVU336
1140 001c 0146 mov r1, r0
1141 001e 0028 cmp r0, #0
1142 0020 38D1 bne .L106
6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 144
1143 .loc 1 6473 5 is_stmt 1 view .LVU337
6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1144 .loc 1 6473 9 is_stmt 0 view .LVU338
1145 0022 2368 ldr r3, [r4]
1146 0024 9A69 ldr r2, [r3, #24]
6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1147 .loc 1 6473 8 view .LVU339
1148 0026 12F0200F tst r2, #32
1149 002a 13D1 bne .L109
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1150 .loc 1 6503 5 is_stmt 1 view .LVU340
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1151 .loc 1 6503 11 is_stmt 0 view .LVU341
1152 002c FFF7FEFF bl HAL_GetTick
1153 .LVL74:
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1154 .loc 1 6503 25 view .LVU342
1155 0030 801B subs r0, r0, r6
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1156 .loc 1 6503 8 view .LVU343
1157 0032 A842 cmp r0, r5
1158 0034 01D8 bhi .L104
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1159 .loc 1 6503 49 discriminator 1 view .LVU344
1160 0036 002D cmp r5, #0
1161 0038 E6D1 bne .L100
1162 .L104:
6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1163 .loc 1 6505 7 is_stmt 1 view .LVU345
6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1164 .loc 1 6505 11 is_stmt 0 view .LVU346
1165 003a 636C ldr r3, [r4, #68]
6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1166 .loc 1 6505 23 view .LVU347
1167 003c 43F02003 orr r3, r3, #32
1168 0040 6364 str r3, [r4, #68]
6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1169 .loc 1 6506 7 is_stmt 1 view .LVU348
6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1170 .loc 1 6506 19 is_stmt 0 view .LVU349
1171 0042 2023 movs r3, #32
1172 0044 84F84130 strb r3, [r4, #65]
6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1173 .loc 1 6509 7 is_stmt 1 view .LVU350
6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1174 .loc 1 6509 7 view .LVU351
1175 0048 0023 movs r3, #0
1176 004a 84F84030 strb r3, [r4, #64]
6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1177 .loc 1 6509 7 view .LVU352
6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1178 .loc 1 6511 7 view .LVU353
6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1179 .loc 1 6511 14 is_stmt 0 view .LVU354
1180 004e 0121 movs r1, #1
1181 .L101:
6515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 145
1182 .loc 1 6515 1 view .LVU355
1183 0050 0846 mov r0, r1
1184 0052 70BD pop {r4, r5, r6, pc}
1185 .LVL75:
1186 .L109:
6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1187 .loc 1 6477 7 is_stmt 1 view .LVU356
6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1188 .loc 1 6477 12 is_stmt 0 view .LVU357
1189 0054 9A69 ldr r2, [r3, #24]
6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1190 .loc 1 6477 10 view .LVU358
1191 0056 12F0040F tst r2, #4
1192 005a 02D0 beq .L103
6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1193 .loc 1 6477 68 discriminator 1 view .LVU359
1194 005c 228D ldrh r2, [r4, #40]
6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1195 .loc 1 6477 60 discriminator 1 view .LVU360
1196 005e 002A cmp r2, #0
1197 0060 F6D1 bne .L101
1198 .L103:
6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1199 .loc 1 6486 9 is_stmt 1 view .LVU361
1200 0062 2022 movs r2, #32
1201 0064 DA61 str r2, [r3, #28]
6489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1202 .loc 1 6489 9 view .LVU362
1203 0066 2168 ldr r1, [r4]
1204 0068 4B68 ldr r3, [r1, #4]
1205 006a 23F0FF73 bic r3, r3, #33423360
1206 006e 23F48B33 bic r3, r3, #71168
1207 0072 23F4FF73 bic r3, r3, #510
1208 0076 23F00103 bic r3, r3, #1
1209 007a 4B60 str r3, [r1, #4]
6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1210 .loc 1 6491 9 view .LVU363
6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1211 .loc 1 6491 25 is_stmt 0 view .LVU364
1212 007c 0023 movs r3, #0
1213 007e 6364 str r3, [r4, #68]
6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1214 .loc 1 6492 9 is_stmt 1 view .LVU365
6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1215 .loc 1 6492 21 is_stmt 0 view .LVU366
1216 0080 84F84120 strb r2, [r4, #65]
6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1217 .loc 1 6493 9 is_stmt 1 view .LVU367
6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1218 .loc 1 6493 20 is_stmt 0 view .LVU368
1219 0084 84F84230 strb r3, [r4, #66]
6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1220 .loc 1 6496 9 is_stmt 1 view .LVU369
6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1221 .loc 1 6496 9 view .LVU370
1222 0088 84F84030 strb r3, [r4, #64]
6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 146
1223 .loc 1 6496 9 view .LVU371
6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1224 .loc 1 6498 9 view .LVU372
6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1225 .loc 1 6498 16 is_stmt 0 view .LVU373
1226 008c 0121 movs r1, #1
1227 008e DFE7 b .L101
1228 .L108:
6514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1229 .loc 1 6514 10 view .LVU374
1230 0090 0021 movs r1, #0
1231 0092 DDE7 b .L101
1232 .L106:
6469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1233 .loc 1 6469 14 view .LVU375
1234 0094 0121 movs r1, #1
1235 0096 DBE7 b .L101
1236 .cfi_endproc
1237 .LFE203:
1239 .section .text.HAL_I2C_MspInit,"ax",%progbits
1240 .align 1
1241 .weak HAL_I2C_MspInit
1242 .syntax unified
1243 .thumb
1244 .thumb_func
1246 HAL_I2C_MspInit:
1247 .LVL76:
1248 .LFB132:
679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1249 .loc 1 679 1 is_stmt 1 view -0
1250 .cfi_startproc
1251 @ args = 0, pretend = 0, frame = 0
1252 @ frame_needed = 0, uses_anonymous_args = 0
1253 @ link register save eliminated.
681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1254 .loc 1 681 3 view .LVU377
686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1255 .loc 1 686 1 is_stmt 0 view .LVU378
1256 0000 7047 bx lr
1257 .cfi_endproc
1258 .LFE132:
1260 .section .text.HAL_I2C_Init,"ax",%progbits
1261 .align 1
1262 .global HAL_I2C_Init
1263 .syntax unified
1264 .thumb
1265 .thumb_func
1267 HAL_I2C_Init:
1268 .LVL77:
1269 .LFB130:
523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
1270 .loc 1 523 1 is_stmt 1 view -0
1271 .cfi_startproc
1272 @ args = 0, pretend = 0, frame = 0
1273 @ frame_needed = 0, uses_anonymous_args = 0
525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1274 .loc 1 525 3 view .LVU380
ARM GAS /tmp/cczJHHnF.s page 147
525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1275 .loc 1 525 6 is_stmt 0 view .LVU381
1276 0000 0028 cmp r0, #0
1277 0002 59D0 beq .L117
523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
1278 .loc 1 523 1 view .LVU382
1279 0004 10B5 push {r4, lr}
1280 .cfi_def_cfa_offset 8
1281 .cfi_offset 4, -8
1282 .cfi_offset 14, -4
1283 0006 0446 mov r4, r0
531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
1284 .loc 1 531 3 is_stmt 1 view .LVU383
532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
1285 .loc 1 532 3 view .LVU384
533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
1286 .loc 1 533 3 view .LVU385
534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
1287 .loc 1 534 3 view .LVU386
535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
1288 .loc 1 535 3 view .LVU387
536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
1289 .loc 1 536 3 view .LVU388
537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
1290 .loc 1 537 3 view .LVU389
538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1291 .loc 1 538 3 view .LVU390
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1292 .loc 1 540 3 view .LVU391
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1293 .loc 1 540 11 is_stmt 0 view .LVU392
1294 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1295 .loc 1 540 6 view .LVU393
1296 000c 002B cmp r3, #0
1297 000e 43D0 beq .L122
1298 .LVL78:
1299 .L113:
571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1300 .loc 1 571 3 is_stmt 1 view .LVU394
571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1301 .loc 1 571 15 is_stmt 0 view .LVU395
1302 0010 2423 movs r3, #36
1303 0012 84F84130 strb r3, [r4, #65]
574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1304 .loc 1 574 3 is_stmt 1 view .LVU396
1305 0016 2268 ldr r2, [r4]
1306 0018 1368 ldr r3, [r2]
1307 001a 23F00103 bic r3, r3, #1
1308 001e 1360 str r3, [r2]
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1309 .loc 1 578 3 view .LVU397
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1310 .loc 1 578 39 is_stmt 0 view .LVU398
1311 0020 6368 ldr r3, [r4, #4]
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1312 .loc 1 578 7 view .LVU399
ARM GAS /tmp/cczJHHnF.s page 148
1313 0022 2268 ldr r2, [r4]
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1314 .loc 1 578 47 view .LVU400
1315 0024 23F07063 bic r3, r3, #251658240
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1316 .loc 1 578 27 view .LVU401
1317 0028 1361 str r3, [r2, #16]
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1318 .loc 1 582 3 is_stmt 1 view .LVU402
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1319 .loc 1 582 7 is_stmt 0 view .LVU403
1320 002a 2268 ldr r2, [r4]
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1321 .loc 1 582 17 view .LVU404
1322 002c 9368 ldr r3, [r2, #8]
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1323 .loc 1 582 24 view .LVU405
1324 002e 23F40043 bic r3, r3, #32768
1325 0032 9360 str r3, [r2, #8]
585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1326 .loc 1 585 3 is_stmt 1 view .LVU406
585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1327 .loc 1 585 17 is_stmt 0 view .LVU407
1328 0034 E368 ldr r3, [r4, #12]
585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1329 .loc 1 585 6 view .LVU408
1330 0036 012B cmp r3, #1
1331 0038 33D0 beq .L123
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1332 .loc 1 591 5 is_stmt 1 view .LVU409
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1333 .loc 1 591 75 is_stmt 0 view .LVU410
1334 003a A368 ldr r3, [r4, #8]
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1335 .loc 1 591 9 view .LVU411
1336 003c 2268 ldr r2, [r4]
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1337 .loc 1 591 63 view .LVU412
1338 003e 43F40443 orr r3, r3, #33792
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1339 .loc 1 591 26 view .LVU413
1340 0042 9360 str r3, [r2, #8]
1341 .L115:
596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1342 .loc 1 596 3 is_stmt 1 view .LVU414
596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1343 .loc 1 596 17 is_stmt 0 view .LVU415
1344 0044 E368 ldr r3, [r4, #12]
596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1345 .loc 1 596 6 view .LVU416
1346 0046 022B cmp r3, #2
1347 0048 31D0 beq .L124
1348 .L116:
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1349 .loc 1 601 3 is_stmt 1 view .LVU417
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1350 .loc 1 601 7 is_stmt 0 view .LVU418
ARM GAS /tmp/cczJHHnF.s page 149
1351 004a 2268 ldr r2, [r4]
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1352 .loc 1 601 17 view .LVU419
1353 004c 5368 ldr r3, [r2, #4]
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1354 .loc 1 601 23 view .LVU420
1355 004e 43F00073 orr r3, r3, #33554432
1356 0052 43F40043 orr r3, r3, #32768
1357 0056 5360 str r3, [r2, #4]
605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1358 .loc 1 605 3 is_stmt 1 view .LVU421
605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1359 .loc 1 605 7 is_stmt 0 view .LVU422
1360 0058 2268 ldr r2, [r4]
605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1361 .loc 1 605 17 view .LVU423
1362 005a D368 ldr r3, [r2, #12]
605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1363 .loc 1 605 24 view .LVU424
1364 005c 23F40043 bic r3, r3, #32768
1365 0060 D360 str r3, [r2, #12]
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1366 .loc 1 608 3 is_stmt 1 view .LVU425
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1367 .loc 1 608 37 is_stmt 0 view .LVU426
1368 0062 2369 ldr r3, [r4, #16]
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1369 .loc 1 608 66 view .LVU427
1370 0064 6269 ldr r2, [r4, #20]
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1371 .loc 1 608 54 view .LVU428
1372 0066 1343 orrs r3, r3, r2
609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1373 .loc 1 609 38 view .LVU429
1374 0068 A169 ldr r1, [r4, #24]
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1375 .loc 1 608 7 view .LVU430
1376 006a 2268 ldr r2, [r4]
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1377 .loc 1 608 79 view .LVU431
1378 006c 43EA0123 orr r3, r3, r1, lsl #8
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1379 .loc 1 608 24 view .LVU432
1380 0070 D360 str r3, [r2, #12]
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1381 .loc 1 613 3 is_stmt 1 view .LVU433
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1382 .loc 1 613 36 is_stmt 0 view .LVU434
1383 0072 E369 ldr r3, [r4, #28]
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1384 .loc 1 613 65 view .LVU435
1385 0074 216A ldr r1, [r4, #32]
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1386 .loc 1 613 7 view .LVU436
1387 0076 2268 ldr r2, [r4]
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1388 .loc 1 613 53 view .LVU437
ARM GAS /tmp/cczJHHnF.s page 150
1389 0078 0B43 orrs r3, r3, r1
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1390 .loc 1 613 23 view .LVU438
1391 007a 1360 str r3, [r2]
616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1392 .loc 1 616 3 is_stmt 1 view .LVU439
1393 007c 2268 ldr r2, [r4]
1394 007e 1368 ldr r3, [r2]
1395 0080 43F00103 orr r3, r3, #1
1396 0084 1360 str r3, [r2]
618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1397 .loc 1 618 3 view .LVU440
618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1398 .loc 1 618 19 is_stmt 0 view .LVU441
1399 0086 0020 movs r0, #0
1400 0088 6064 str r0, [r4, #68]
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1401 .loc 1 619 3 is_stmt 1 view .LVU442
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1402 .loc 1 619 15 is_stmt 0 view .LVU443
1403 008a 2023 movs r3, #32
1404 008c 84F84130 strb r3, [r4, #65]
620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1405 .loc 1 620 3 is_stmt 1 view .LVU444
620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1406 .loc 1 620 23 is_stmt 0 view .LVU445
1407 0090 2063 str r0, [r4, #48]
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1408 .loc 1 621 3 is_stmt 1 view .LVU446
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1409 .loc 1 621 14 is_stmt 0 view .LVU447
1410 0092 84F84200 strb r0, [r4, #66]
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1411 .loc 1 623 3 is_stmt 1 view .LVU448
624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1412 .loc 1 624 1 is_stmt 0 view .LVU449
1413 0096 10BD pop {r4, pc}
1414 .LVL79:
1415 .L122:
543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1416 .loc 1 543 5 is_stmt 1 view .LVU450
543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1417 .loc 1 543 16 is_stmt 0 view .LVU451
1418 0098 80F84030 strb r3, [r0, #64]
567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1419 .loc 1 567 5 is_stmt 1 view .LVU452
1420 009c FFF7FEFF bl HAL_I2C_MspInit
1421 .LVL80:
567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1422 .loc 1 567 5 is_stmt 0 view .LVU453
1423 00a0 B6E7 b .L113
1424 .L123:
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1425 .loc 1 587 5 is_stmt 1 view .LVU454
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1426 .loc 1 587 56 is_stmt 0 view .LVU455
1427 00a2 A368 ldr r3, [r4, #8]
ARM GAS /tmp/cczJHHnF.s page 151
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1428 .loc 1 587 9 view .LVU456
1429 00a4 2268 ldr r2, [r4]
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1430 .loc 1 587 44 view .LVU457
1431 00a6 43F40043 orr r3, r3, #32768
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1432 .loc 1 587 26 view .LVU458
1433 00aa 9360 str r3, [r2, #8]
1434 00ac CAE7 b .L115
1435 .L124:
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1436 .loc 1 598 5 is_stmt 1 view .LVU459
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1437 .loc 1 598 9 is_stmt 0 view .LVU460
1438 00ae 2368 ldr r3, [r4]
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1439 .loc 1 598 25 view .LVU461
1440 00b0 4FF40062 mov r2, #2048
1441 00b4 5A60 str r2, [r3, #4]
1442 00b6 C8E7 b .L116
1443 .LVL81:
1444 .L117:
1445 .cfi_def_cfa_offset 0
1446 .cfi_restore 4
1447 .cfi_restore 14
527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1448 .loc 1 527 12 view .LVU462
1449 00b8 0120 movs r0, #1
1450 .LVL82:
624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1451 .loc 1 624 1 view .LVU463
1452 00ba 7047 bx lr
1453 .cfi_endproc
1454 .LFE130:
1456 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
1457 .align 1
1458 .weak HAL_I2C_MspDeInit
1459 .syntax unified
1460 .thumb
1461 .thumb_func
1463 HAL_I2C_MspDeInit:
1464 .LVL83:
1465 .LFB133:
695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1466 .loc 1 695 1 is_stmt 1 view -0
1467 .cfi_startproc
1468 @ args = 0, pretend = 0, frame = 0
1469 @ frame_needed = 0, uses_anonymous_args = 0
1470 @ link register save eliminated.
697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1471 .loc 1 697 3 view .LVU465
702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1472 .loc 1 702 1 is_stmt 0 view .LVU466
1473 0000 7047 bx lr
1474 .cfi_endproc
1475 .LFE133:
ARM GAS /tmp/cczJHHnF.s page 152
1477 .section .text.HAL_I2C_DeInit,"ax",%progbits
1478 .align 1
1479 .global HAL_I2C_DeInit
1480 .syntax unified
1481 .thumb
1482 .thumb_func
1484 HAL_I2C_DeInit:
1485 .LVL84:
1486 .LFB131:
633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
1487 .loc 1 633 1 is_stmt 1 view -0
1488 .cfi_startproc
1489 @ args = 0, pretend = 0, frame = 0
1490 @ frame_needed = 0, uses_anonymous_args = 0
635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1491 .loc 1 635 3 view .LVU468
635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1492 .loc 1 635 6 is_stmt 0 view .LVU469
1493 0000 A8B1 cbz r0, .L128
633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
1494 .loc 1 633 1 view .LVU470
1495 0002 10B5 push {r4, lr}
1496 .cfi_def_cfa_offset 8
1497 .cfi_offset 4, -8
1498 .cfi_offset 14, -4
1499 0004 0446 mov r4, r0
641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1500 .loc 1 641 3 is_stmt 1 view .LVU471
643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1501 .loc 1 643 3 view .LVU472
643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1502 .loc 1 643 15 is_stmt 0 view .LVU473
1503 0006 2423 movs r3, #36
1504 0008 80F84130 strb r3, [r0, #65]
646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1505 .loc 1 646 3 is_stmt 1 view .LVU474
1506 000c 0268 ldr r2, [r0]
1507 000e 1368 ldr r3, [r2]
1508 0010 23F00103 bic r3, r3, #1
1509 0014 1360 str r3, [r2]
658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1510 .loc 1 658 3 view .LVU475
1511 0016 FFF7FEFF bl HAL_I2C_MspDeInit
1512 .LVL85:
661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1513 .loc 1 661 3 view .LVU476
661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1514 .loc 1 661 19 is_stmt 0 view .LVU477
1515 001a 0020 movs r0, #0
1516 001c 6064 str r0, [r4, #68]
662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1517 .loc 1 662 3 is_stmt 1 view .LVU478
662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1518 .loc 1 662 15 is_stmt 0 view .LVU479
1519 001e 84F84100 strb r0, [r4, #65]
663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1520 .loc 1 663 3 is_stmt 1 view .LVU480
ARM GAS /tmp/cczJHHnF.s page 153
663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1521 .loc 1 663 23 is_stmt 0 view .LVU481
1522 0022 2063 str r0, [r4, #48]
664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1523 .loc 1 664 3 is_stmt 1 view .LVU482
664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1524 .loc 1 664 14 is_stmt 0 view .LVU483
1525 0024 84F84200 strb r0, [r4, #66]
667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1526 .loc 1 667 3 is_stmt 1 view .LVU484
667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1527 .loc 1 667 3 view .LVU485
1528 0028 84F84000 strb r0, [r4, #64]
667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1529 .loc 1 667 3 view .LVU486
669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1530 .loc 1 669 3 view .LVU487
670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1531 .loc 1 670 1 is_stmt 0 view .LVU488
1532 002c 10BD pop {r4, pc}
1533 .LVL86:
1534 .L128:
1535 .cfi_def_cfa_offset 0
1536 .cfi_restore 4
1537 .cfi_restore 14
637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1538 .loc 1 637 12 view .LVU489
1539 002e 0120 movs r0, #1
1540 .LVL87:
670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1541 .loc 1 670 1 view .LVU490
1542 0030 7047 bx lr
1543 .cfi_endproc
1544 .LFE131:
1546 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
1547 .align 1
1548 .global HAL_I2C_Master_Transmit
1549 .syntax unified
1550 .thumb
1551 .thumb_func
1553 HAL_I2C_Master_Transmit:
1554 .LVL88:
1555 .LFB134:
1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1556 .loc 1 1117 1 is_stmt 1 view -0
1557 .cfi_startproc
1558 @ args = 4, pretend = 0, frame = 0
1559 @ frame_needed = 0, uses_anonymous_args = 0
1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1560 .loc 1 1117 1 is_stmt 0 view .LVU492
1561 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
1562 .cfi_def_cfa_offset 32
1563 .cfi_offset 4, -32
1564 .cfi_offset 5, -28
1565 .cfi_offset 6, -24
1566 .cfi_offset 7, -20
1567 .cfi_offset 8, -16
ARM GAS /tmp/cczJHHnF.s page 154
1568 .cfi_offset 9, -12
1569 .cfi_offset 10, -8
1570 .cfi_offset 14, -4
1571 0004 82B0 sub sp, sp, #8
1572 .cfi_def_cfa_offset 40
1573 0006 0F46 mov r7, r1
1574 0008 0A9E ldr r6, [sp, #40]
1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1575 .loc 1 1118 3 is_stmt 1 view .LVU493
1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1576 .loc 1 1120 3 view .LVU494
1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1577 .loc 1 1120 11 is_stmt 0 view .LVU495
1578 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
1579 .LVL89:
1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1580 .loc 1 1120 11 view .LVU496
1581 000e C9B2 uxtb r1, r1
1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1582 .loc 1 1120 6 view .LVU497
1583 0010 2029 cmp r1, #32
1584 0012 40F0A380 bne .L141
1585 0016 0446 mov r4, r0
1586 0018 9046 mov r8, r2
1587 001a 9946 mov r9, r3
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1588 .loc 1 1123 5 is_stmt 1 view .LVU498
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1589 .loc 1 1123 5 view .LVU499
1590 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
1591 .LVL90:
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1592 .loc 1 1123 5 is_stmt 0 view .LVU500
1593 0020 012B cmp r3, #1
1594 0022 00F09F80 beq .L142
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1595 .loc 1 1123 5 is_stmt 1 discriminator 2 view .LVU501
1596 0026 4FF0010A mov r10, #1
1597 002a 80F840A0 strb r10, [r0, #64]
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1598 .loc 1 1123 5 discriminator 2 view .LVU502
1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1599 .loc 1 1126 5 discriminator 2 view .LVU503
1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1600 .loc 1 1126 17 is_stmt 0 discriminator 2 view .LVU504
1601 002e FFF7FEFF bl HAL_GetTick
1602 .LVL91:
1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1603 .loc 1 1126 17 discriminator 2 view .LVU505
1604 0032 0546 mov r5, r0
1605 .LVL92:
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1606 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU506
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1607 .loc 1 1128 9 is_stmt 0 discriminator 2 view .LVU507
1608 0034 0090 str r0, [sp]
1609 0036 1923 movs r3, #25
ARM GAS /tmp/cczJHHnF.s page 155
1610 0038 5246 mov r2, r10
1611 003a 4FF40041 mov r1, #32768
1612 003e 2046 mov r0, r4
1613 .LVL93:
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1614 .loc 1 1128 9 discriminator 2 view .LVU508
1615 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1616 .LVL94:
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1617 .loc 1 1128 8 discriminator 2 view .LVU509
1618 0044 0028 cmp r0, #0
1619 0046 40F08F80 bne .L143
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1620 .loc 1 1133 5 is_stmt 1 view .LVU510
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1621 .loc 1 1133 21 is_stmt 0 view .LVU511
1622 004a 2123 movs r3, #33
1623 004c 84F84130 strb r3, [r4, #65]
1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1624 .loc 1 1134 5 is_stmt 1 view .LVU512
1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1625 .loc 1 1134 21 is_stmt 0 view .LVU513
1626 0050 1023 movs r3, #16
1627 0052 84F84230 strb r3, [r4, #66]
1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1628 .loc 1 1135 5 is_stmt 1 view .LVU514
1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1629 .loc 1 1135 21 is_stmt 0 view .LVU515
1630 0056 0023 movs r3, #0
1631 0058 6364 str r3, [r4, #68]
1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1632 .loc 1 1138 5 is_stmt 1 view .LVU516
1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1633 .loc 1 1138 21 is_stmt 0 view .LVU517
1634 005a C4F82480 str r8, [r4, #36]
1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1635 .loc 1 1139 5 is_stmt 1 view .LVU518
1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1636 .loc 1 1139 21 is_stmt 0 view .LVU519
1637 005e A4F82A90 strh r9, [r4, #42] @ movhi
1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1638 .loc 1 1140 5 is_stmt 1 view .LVU520
1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1639 .loc 1 1140 21 is_stmt 0 view .LVU521
1640 0062 6363 str r3, [r4, #52]
1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1641 .loc 1 1144 5 is_stmt 1 view .LVU522
1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1642 .loc 1 1144 13 is_stmt 0 view .LVU523
1643 0064 638D ldrh r3, [r4, #42]
1644 0066 9BB2 uxth r3, r3
1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1645 .loc 1 1144 8 view .LVU524
1646 0068 FF2B cmp r3, #255
1647 006a 0AD9 bls .L135
1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1648 .loc 1 1146 7 is_stmt 1 view .LVU525
ARM GAS /tmp/cczJHHnF.s page 156
1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1649 .loc 1 1146 22 is_stmt 0 view .LVU526
1650 006c FF22 movs r2, #255
1651 006e 2285 strh r2, [r4, #40] @ movhi
1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1652 .loc 1 1147 7 is_stmt 1 view .LVU527
1653 0070 414B ldr r3, .L149
1654 0072 0093 str r3, [sp]
1655 0074 4FF08073 mov r3, #16777216
1656 0078 3946 mov r1, r7
1657 007a 2046 mov r0, r4
1658 007c FFF7FEFF bl I2C_TransferConfig
1659 .LVL95:
1660 0080 18E0 b .L137
1661 .L135:
1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1662 .loc 1 1152 7 view .LVU528
1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1663 .loc 1 1152 28 is_stmt 0 view .LVU529
1664 0082 628D ldrh r2, [r4, #42]
1665 0084 92B2 uxth r2, r2
1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1666 .loc 1 1152 22 view .LVU530
1667 0086 2285 strh r2, [r4, #40] @ movhi
1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1668 .loc 1 1153 7 is_stmt 1 view .LVU531
1669 0088 3B4B ldr r3, .L149
1670 008a 0093 str r3, [sp]
1671 008c 4FF00073 mov r3, #33554432
1672 0090 D2B2 uxtb r2, r2
1673 0092 3946 mov r1, r7
1674 0094 2046 mov r0, r4
1675 0096 FFF7FEFF bl I2C_TransferConfig
1676 .LVL96:
1677 009a 0BE0 b .L137
1678 .L139:
1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1679 .loc 1 1189 11 view .LVU532
1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1680 .loc 1 1189 32 is_stmt 0 view .LVU533
1681 009c 628D ldrh r2, [r4, #42]
1682 009e 92B2 uxth r2, r2
1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1683 .loc 1 1189 26 view .LVU534
1684 00a0 2285 strh r2, [r4, #40] @ movhi
1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1685 .loc 1 1190 11 is_stmt 1 view .LVU535
1686 00a2 0023 movs r3, #0
1687 00a4 0093 str r3, [sp]
1688 00a6 4FF00073 mov r3, #33554432
1689 00aa D2B2 uxtb r2, r2
1690 00ac 3946 mov r1, r7
1691 00ae 2046 mov r0, r4
1692 00b0 FFF7FEFF bl I2C_TransferConfig
1693 .LVL97:
1694 .L137:
1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 157
1695 .loc 1 1157 28 view .LVU536
1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1696 .loc 1 1157 16 is_stmt 0 view .LVU537
1697 00b4 638D ldrh r3, [r4, #42]
1698 00b6 9BB2 uxth r3, r3
1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1699 .loc 1 1157 28 view .LVU538
1700 00b8 002B cmp r3, #0
1701 00ba 33D0 beq .L148
1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1702 .loc 1 1160 7 is_stmt 1 view .LVU539
1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1703 .loc 1 1160 11 is_stmt 0 view .LVU540
1704 00bc 2A46 mov r2, r5
1705 00be 3146 mov r1, r6
1706 00c0 2046 mov r0, r4
1707 00c2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1708 .LVL98:
1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1709 .loc 1 1160 10 view .LVU541
1710 00c6 0028 cmp r0, #0
1711 00c8 50D1 bne .L144
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1712 .loc 1 1165 7 is_stmt 1 view .LVU542
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1713 .loc 1 1165 35 is_stmt 0 view .LVU543
1714 00ca 626A ldr r2, [r4, #36]
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1715 .loc 1 1165 11 view .LVU544
1716 00cc 2368 ldr r3, [r4]
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1717 .loc 1 1165 30 view .LVU545
1718 00ce 1278 ldrb r2, [r2] @ zero_extendqisi2
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1719 .loc 1 1165 28 view .LVU546
1720 00d0 9A62 str r2, [r3, #40]
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1721 .loc 1 1168 7 is_stmt 1 view .LVU547
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1722 .loc 1 1168 11 is_stmt 0 view .LVU548
1723 00d2 636A ldr r3, [r4, #36]
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1724 .loc 1 1168 21 view .LVU549
1725 00d4 0133 adds r3, r3, #1
1726 00d6 6362 str r3, [r4, #36]
1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1727 .loc 1 1170 7 is_stmt 1 view .LVU550
1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1728 .loc 1 1170 11 is_stmt 0 view .LVU551
1729 00d8 638D ldrh r3, [r4, #42]
1730 00da 9BB2 uxth r3, r3
1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1731 .loc 1 1170 22 view .LVU552
1732 00dc 013B subs r3, r3, #1
1733 00de 9BB2 uxth r3, r3
1734 00e0 6385 strh r3, [r4, #42] @ movhi
1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 158
1735 .loc 1 1171 7 is_stmt 1 view .LVU553
1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1736 .loc 1 1171 11 is_stmt 0 view .LVU554
1737 00e2 238D ldrh r3, [r4, #40]
1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1738 .loc 1 1171 21 view .LVU555
1739 00e4 013B subs r3, r3, #1
1740 00e6 9BB2 uxth r3, r3
1741 00e8 2385 strh r3, [r4, #40] @ movhi
1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1742 .loc 1 1173 7 is_stmt 1 view .LVU556
1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1743 .loc 1 1173 16 is_stmt 0 view .LVU557
1744 00ea 628D ldrh r2, [r4, #42]
1745 00ec 92B2 uxth r2, r2
1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1746 .loc 1 1173 10 view .LVU558
1747 00ee 002A cmp r2, #0
1748 00f0 E0D0 beq .L137
1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1749 .loc 1 1173 35 discriminator 1 view .LVU559
1750 00f2 002B cmp r3, #0
1751 00f4 DED1 bne .L137
1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1752 .loc 1 1176 9 is_stmt 1 view .LVU560
1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1753 .loc 1 1176 13 is_stmt 0 view .LVU561
1754 00f6 0095 str r5, [sp]
1755 00f8 3346 mov r3, r6
1756 00fa 0022 movs r2, #0
1757 00fc 8021 movs r1, #128
1758 00fe 2046 mov r0, r4
1759 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1760 .LVL99:
1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1761 .loc 1 1176 12 view .LVU562
1762 0104 A0BB cbnz r0, .L145
1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1763 .loc 1 1181 9 is_stmt 1 view .LVU563
1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1764 .loc 1 1181 17 is_stmt 0 view .LVU564
1765 0106 638D ldrh r3, [r4, #42]
1766 0108 9BB2 uxth r3, r3
1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1767 .loc 1 1181 12 view .LVU565
1768 010a FF2B cmp r3, #255
1769 010c C6D9 bls .L139
1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1770 .loc 1 1183 11 is_stmt 1 view .LVU566
1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1771 .loc 1 1183 26 is_stmt 0 view .LVU567
1772 010e FF22 movs r2, #255
1773 0110 2285 strh r2, [r4, #40] @ movhi
1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1774 .loc 1 1184 11 is_stmt 1 view .LVU568
1775 0112 0023 movs r3, #0
1776 0114 0093 str r3, [sp]
ARM GAS /tmp/cczJHHnF.s page 159
1777 0116 4FF08073 mov r3, #16777216
1778 011a 3946 mov r1, r7
1779 011c 2046 mov r0, r4
1780 011e FFF7FEFF bl I2C_TransferConfig
1781 .LVL100:
1782 0122 C7E7 b .L137
1783 .L148:
1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1784 .loc 1 1198 5 view .LVU569
1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1785 .loc 1 1198 9 is_stmt 0 view .LVU570
1786 0124 2A46 mov r2, r5
1787 0126 3146 mov r1, r6
1788 0128 2046 mov r0, r4
1789 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
1790 .LVL101:
1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1791 .loc 1 1198 8 view .LVU571
1792 012e 08BB cbnz r0, .L146
1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1793 .loc 1 1204 5 is_stmt 1 view .LVU572
1794 0130 2368 ldr r3, [r4]
1795 0132 2022 movs r2, #32
1796 0134 DA61 str r2, [r3, #28]
1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1797 .loc 1 1207 5 view .LVU573
1798 0136 2168 ldr r1, [r4]
1799 0138 4B68 ldr r3, [r1, #4]
1800 013a 23F0FF73 bic r3, r3, #33423360
1801 013e 23F48B33 bic r3, r3, #71168
1802 0142 23F4FF73 bic r3, r3, #510
1803 0146 23F00103 bic r3, r3, #1
1804 014a 4B60 str r3, [r1, #4]
1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1805 .loc 1 1209 5 view .LVU574
1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1806 .loc 1 1209 17 is_stmt 0 view .LVU575
1807 014c 84F84120 strb r2, [r4, #65]
1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1808 .loc 1 1210 5 is_stmt 1 view .LVU576
1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1809 .loc 1 1210 17 is_stmt 0 view .LVU577
1810 0150 0023 movs r3, #0
1811 0152 84F84230 strb r3, [r4, #66]
1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1812 .loc 1 1213 5 is_stmt 1 view .LVU578
1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1813 .loc 1 1213 5 view .LVU579
1814 0156 84F84030 strb r3, [r4, #64]
1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1815 .loc 1 1213 5 view .LVU580
1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1816 .loc 1 1215 5 view .LVU581
1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1817 .loc 1 1215 12 is_stmt 0 view .LVU582
1818 015a 00E0 b .L134
1819 .LVL102:
ARM GAS /tmp/cczJHHnF.s page 160
1820 .L141:
1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1821 .loc 1 1219 12 view .LVU583
1822 015c 0220 movs r0, #2
1823 .LVL103:
1824 .L134:
1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1825 .loc 1 1221 1 view .LVU584
1826 015e 02B0 add sp, sp, #8
1827 .cfi_remember_state
1828 .cfi_def_cfa_offset 32
1829 @ sp needed
1830 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
1831 .LVL104:
1832 .L142:
1833 .cfi_restore_state
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1834 .loc 1 1123 5 view .LVU585
1835 0164 0220 movs r0, #2
1836 .LVL105:
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1837 .loc 1 1123 5 view .LVU586
1838 0166 FAE7 b .L134
1839 .LVL106:
1840 .L143:
1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1841 .loc 1 1130 14 view .LVU587
1842 0168 0120 movs r0, #1
1843 016a F8E7 b .L134
1844 .L144:
1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1845 .loc 1 1162 16 view .LVU588
1846 016c 0120 movs r0, #1
1847 016e F6E7 b .L134
1848 .L145:
1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1849 .loc 1 1178 18 view .LVU589
1850 0170 0120 movs r0, #1
1851 0172 F4E7 b .L134
1852 .L146:
1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1853 .loc 1 1200 14 view .LVU590
1854 0174 0120 movs r0, #1
1855 0176 F2E7 b .L134
1856 .L150:
1857 .align 2
1858 .L149:
1859 0178 00200080 .word -2147475456
1860 .cfi_endproc
1861 .LFE134:
1863 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
1864 .align 1
1865 .global HAL_I2C_Master_Receive
1866 .syntax unified
1867 .thumb
1868 .thumb_func
1870 HAL_I2C_Master_Receive:
ARM GAS /tmp/cczJHHnF.s page 161
1871 .LVL107:
1872 .LFB135:
1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1873 .loc 1 1236 1 is_stmt 1 view -0
1874 .cfi_startproc
1875 @ args = 4, pretend = 0, frame = 0
1876 @ frame_needed = 0, uses_anonymous_args = 0
1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1877 .loc 1 1236 1 is_stmt 0 view .LVU592
1878 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
1879 .cfi_def_cfa_offset 32
1880 .cfi_offset 4, -32
1881 .cfi_offset 5, -28
1882 .cfi_offset 6, -24
1883 .cfi_offset 7, -20
1884 .cfi_offset 8, -16
1885 .cfi_offset 9, -12
1886 .cfi_offset 10, -8
1887 .cfi_offset 14, -4
1888 0004 82B0 sub sp, sp, #8
1889 .cfi_def_cfa_offset 40
1890 0006 0F46 mov r7, r1
1891 0008 0A9E ldr r6, [sp, #40]
1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1892 .loc 1 1237 3 is_stmt 1 view .LVU593
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1893 .loc 1 1239 3 view .LVU594
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1894 .loc 1 1239 11 is_stmt 0 view .LVU595
1895 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
1896 .LVL108:
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1897 .loc 1 1239 11 view .LVU596
1898 000e C9B2 uxtb r1, r1
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1899 .loc 1 1239 6 view .LVU597
1900 0010 2029 cmp r1, #32
1901 0012 40F0A280 bne .L159
1902 0016 0446 mov r4, r0
1903 0018 9046 mov r8, r2
1904 001a 9946 mov r9, r3
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1905 .loc 1 1242 5 is_stmt 1 view .LVU598
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1906 .loc 1 1242 5 view .LVU599
1907 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
1908 .LVL109:
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1909 .loc 1 1242 5 is_stmt 0 view .LVU600
1910 0020 012B cmp r3, #1
1911 0022 00F09E80 beq .L160
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1912 .loc 1 1242 5 is_stmt 1 discriminator 2 view .LVU601
1913 0026 4FF0010A mov r10, #1
1914 002a 80F840A0 strb r10, [r0, #64]
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1915 .loc 1 1242 5 discriminator 2 view .LVU602
ARM GAS /tmp/cczJHHnF.s page 162
1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1916 .loc 1 1245 5 discriminator 2 view .LVU603
1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1917 .loc 1 1245 17 is_stmt 0 discriminator 2 view .LVU604
1918 002e FFF7FEFF bl HAL_GetTick
1919 .LVL110:
1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1920 .loc 1 1245 17 discriminator 2 view .LVU605
1921 0032 0546 mov r5, r0
1922 .LVL111:
1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1923 .loc 1 1247 5 is_stmt 1 discriminator 2 view .LVU606
1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1924 .loc 1 1247 9 is_stmt 0 discriminator 2 view .LVU607
1925 0034 0090 str r0, [sp]
1926 0036 1923 movs r3, #25
1927 0038 5246 mov r2, r10
1928 003a 4FF40041 mov r1, #32768
1929 003e 2046 mov r0, r4
1930 .LVL112:
1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1931 .loc 1 1247 9 discriminator 2 view .LVU608
1932 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1933 .LVL113:
1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1934 .loc 1 1247 8 discriminator 2 view .LVU609
1935 0044 0028 cmp r0, #0
1936 0046 40F08E80 bne .L161
1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1937 .loc 1 1252 5 is_stmt 1 view .LVU610
1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1938 .loc 1 1252 21 is_stmt 0 view .LVU611
1939 004a 2223 movs r3, #34
1940 004c 84F84130 strb r3, [r4, #65]
1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1941 .loc 1 1253 5 is_stmt 1 view .LVU612
1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1942 .loc 1 1253 21 is_stmt 0 view .LVU613
1943 0050 1023 movs r3, #16
1944 0052 84F84230 strb r3, [r4, #66]
1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1945 .loc 1 1254 5 is_stmt 1 view .LVU614
1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1946 .loc 1 1254 21 is_stmt 0 view .LVU615
1947 0056 0023 movs r3, #0
1948 0058 6364 str r3, [r4, #68]
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1949 .loc 1 1257 5 is_stmt 1 view .LVU616
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1950 .loc 1 1257 21 is_stmt 0 view .LVU617
1951 005a C4F82480 str r8, [r4, #36]
1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1952 .loc 1 1258 5 is_stmt 1 view .LVU618
1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1953 .loc 1 1258 21 is_stmt 0 view .LVU619
1954 005e A4F82A90 strh r9, [r4, #42] @ movhi
1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 163
1955 .loc 1 1259 5 is_stmt 1 view .LVU620
1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1956 .loc 1 1259 21 is_stmt 0 view .LVU621
1957 0062 6363 str r3, [r4, #52]
1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1958 .loc 1 1263 5 is_stmt 1 view .LVU622
1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1959 .loc 1 1263 13 is_stmt 0 view .LVU623
1960 0064 638D ldrh r3, [r4, #42]
1961 0066 9BB2 uxth r3, r3
1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1962 .loc 1 1263 8 view .LVU624
1963 0068 FF2B cmp r3, #255
1964 006a 0AD9 bls .L153
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1965 .loc 1 1265 7 is_stmt 1 view .LVU625
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1966 .loc 1 1265 22 is_stmt 0 view .LVU626
1967 006c FF22 movs r2, #255
1968 006e 2285 strh r2, [r4, #40] @ movhi
1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
1969 .loc 1 1266 7 is_stmt 1 view .LVU627
1970 0070 414B ldr r3, .L167
1971 0072 0093 str r3, [sp]
1972 0074 4FF08073 mov r3, #16777216
1973 0078 3946 mov r1, r7
1974 007a 2046 mov r0, r4
1975 007c FFF7FEFF bl I2C_TransferConfig
1976 .LVL114:
1977 0080 18E0 b .L155
1978 .L153:
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1979 .loc 1 1271 7 view .LVU628
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1980 .loc 1 1271 28 is_stmt 0 view .LVU629
1981 0082 628D ldrh r2, [r4, #42]
1982 0084 92B2 uxth r2, r2
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1983 .loc 1 1271 22 view .LVU630
1984 0086 2285 strh r2, [r4, #40] @ movhi
1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
1985 .loc 1 1272 7 is_stmt 1 view .LVU631
1986 0088 3B4B ldr r3, .L167
1987 008a 0093 str r3, [sp]
1988 008c 4FF00073 mov r3, #33554432
1989 0090 D2B2 uxtb r2, r2
1990 0092 3946 mov r1, r7
1991 0094 2046 mov r0, r4
1992 0096 FFF7FEFF bl I2C_TransferConfig
1993 .LVL115:
1994 009a 0BE0 b .L155
1995 .L157:
1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1996 .loc 1 1309 11 view .LVU632
1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1997 .loc 1 1309 32 is_stmt 0 view .LVU633
1998 009c 628D ldrh r2, [r4, #42]
ARM GAS /tmp/cczJHHnF.s page 164
1999 009e 92B2 uxth r2, r2
1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2000 .loc 1 1309 26 view .LVU634
2001 00a0 2285 strh r2, [r4, #40] @ movhi
1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2002 .loc 1 1310 11 is_stmt 1 view .LVU635
2003 00a2 0023 movs r3, #0
2004 00a4 0093 str r3, [sp]
2005 00a6 4FF00073 mov r3, #33554432
2006 00aa D2B2 uxtb r2, r2
2007 00ac 3946 mov r1, r7
2008 00ae 2046 mov r0, r4
2009 00b0 FFF7FEFF bl I2C_TransferConfig
2010 .LVL116:
2011 .L155:
1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2012 .loc 1 1276 28 view .LVU636
1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2013 .loc 1 1276 16 is_stmt 0 view .LVU637
2014 00b4 638D ldrh r3, [r4, #42]
2015 00b6 9BB2 uxth r3, r3
1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2016 .loc 1 1276 28 view .LVU638
2017 00b8 002B cmp r3, #0
2018 00ba 32D0 beq .L166
1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2019 .loc 1 1279 7 is_stmt 1 view .LVU639
1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2020 .loc 1 1279 11 is_stmt 0 view .LVU640
2021 00bc 2A46 mov r2, r5
2022 00be 3146 mov r1, r6
2023 00c0 2046 mov r0, r4
2024 00c2 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2025 .LVL117:
1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2026 .loc 1 1279 10 view .LVU641
2027 00c6 0028 cmp r0, #0
2028 00c8 4FD1 bne .L162
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2029 .loc 1 1285 7 is_stmt 1 view .LVU642
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2030 .loc 1 1285 38 is_stmt 0 view .LVU643
2031 00ca 2368 ldr r3, [r4]
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2032 .loc 1 1285 48 view .LVU644
2033 00cc 5A6A ldr r2, [r3, #36]
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2034 .loc 1 1285 12 view .LVU645
2035 00ce 636A ldr r3, [r4, #36]
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2036 .loc 1 1285 23 view .LVU646
2037 00d0 1A70 strb r2, [r3]
1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2038 .loc 1 1288 7 is_stmt 1 view .LVU647
1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2039 .loc 1 1288 11 is_stmt 0 view .LVU648
2040 00d2 636A ldr r3, [r4, #36]
ARM GAS /tmp/cczJHHnF.s page 165
1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2041 .loc 1 1288 21 view .LVU649
2042 00d4 0133 adds r3, r3, #1
2043 00d6 6362 str r3, [r4, #36]
1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2044 .loc 1 1290 7 is_stmt 1 view .LVU650
1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2045 .loc 1 1290 11 is_stmt 0 view .LVU651
2046 00d8 228D ldrh r2, [r4, #40]
1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2047 .loc 1 1290 21 view .LVU652
2048 00da 013A subs r2, r2, #1
2049 00dc 92B2 uxth r2, r2
2050 00de 2285 strh r2, [r4, #40] @ movhi
1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2051 .loc 1 1291 7 is_stmt 1 view .LVU653
1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2052 .loc 1 1291 11 is_stmt 0 view .LVU654
2053 00e0 638D ldrh r3, [r4, #42]
2054 00e2 9BB2 uxth r3, r3
1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2055 .loc 1 1291 22 view .LVU655
2056 00e4 013B subs r3, r3, #1
2057 00e6 9BB2 uxth r3, r3
2058 00e8 6385 strh r3, [r4, #42] @ movhi
1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2059 .loc 1 1293 7 is_stmt 1 view .LVU656
1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2060 .loc 1 1293 16 is_stmt 0 view .LVU657
2061 00ea 638D ldrh r3, [r4, #42]
2062 00ec 9BB2 uxth r3, r3
1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2063 .loc 1 1293 10 view .LVU658
2064 00ee 002B cmp r3, #0
2065 00f0 E0D0 beq .L155
1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2066 .loc 1 1293 35 discriminator 1 view .LVU659
2067 00f2 002A cmp r2, #0
2068 00f4 DED1 bne .L155
1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2069 .loc 1 1296 9 is_stmt 1 view .LVU660
1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2070 .loc 1 1296 13 is_stmt 0 view .LVU661
2071 00f6 0095 str r5, [sp]
2072 00f8 3346 mov r3, r6
2073 00fa 8021 movs r1, #128
2074 00fc 2046 mov r0, r4
2075 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2076 .LVL118:
1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2077 .loc 1 1296 12 view .LVU662
2078 0102 A0BB cbnz r0, .L163
1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2079 .loc 1 1301 9 is_stmt 1 view .LVU663
1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2080 .loc 1 1301 17 is_stmt 0 view .LVU664
2081 0104 638D ldrh r3, [r4, #42]
ARM GAS /tmp/cczJHHnF.s page 166
2082 0106 9BB2 uxth r3, r3
1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2083 .loc 1 1301 12 view .LVU665
2084 0108 FF2B cmp r3, #255
2085 010a C7D9 bls .L157
1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2086 .loc 1 1303 11 is_stmt 1 view .LVU666
1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2087 .loc 1 1303 26 is_stmt 0 view .LVU667
2088 010c FF22 movs r2, #255
2089 010e 2285 strh r2, [r4, #40] @ movhi
1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2090 .loc 1 1304 11 is_stmt 1 view .LVU668
2091 0110 0023 movs r3, #0
2092 0112 0093 str r3, [sp]
2093 0114 4FF08073 mov r3, #16777216
2094 0118 3946 mov r1, r7
2095 011a 2046 mov r0, r4
2096 011c FFF7FEFF bl I2C_TransferConfig
2097 .LVL119:
2098 0120 C8E7 b .L155
2099 .L166:
1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2100 .loc 1 1318 5 view .LVU669
1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2101 .loc 1 1318 9 is_stmt 0 view .LVU670
2102 0122 2A46 mov r2, r5
2103 0124 3146 mov r1, r6
2104 0126 2046 mov r0, r4
2105 0128 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2106 .LVL120:
1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2107 .loc 1 1318 8 view .LVU671
2108 012c 08BB cbnz r0, .L164
1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2109 .loc 1 1324 5 is_stmt 1 view .LVU672
2110 012e 2368 ldr r3, [r4]
2111 0130 2022 movs r2, #32
2112 0132 DA61 str r2, [r3, #28]
1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2113 .loc 1 1327 5 view .LVU673
2114 0134 2168 ldr r1, [r4]
2115 0136 4B68 ldr r3, [r1, #4]
2116 0138 23F0FF73 bic r3, r3, #33423360
2117 013c 23F48B33 bic r3, r3, #71168
2118 0140 23F4FF73 bic r3, r3, #510
2119 0144 23F00103 bic r3, r3, #1
2120 0148 4B60 str r3, [r1, #4]
1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2121 .loc 1 1329 5 view .LVU674
1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2122 .loc 1 1329 17 is_stmt 0 view .LVU675
2123 014a 84F84120 strb r2, [r4, #65]
1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2124 .loc 1 1330 5 is_stmt 1 view .LVU676
1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2125 .loc 1 1330 17 is_stmt 0 view .LVU677
ARM GAS /tmp/cczJHHnF.s page 167
2126 014e 0023 movs r3, #0
2127 0150 84F84230 strb r3, [r4, #66]
1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2128 .loc 1 1333 5 is_stmt 1 view .LVU678
1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2129 .loc 1 1333 5 view .LVU679
2130 0154 84F84030 strb r3, [r4, #64]
1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2131 .loc 1 1333 5 view .LVU680
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2132 .loc 1 1335 5 view .LVU681
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2133 .loc 1 1335 12 is_stmt 0 view .LVU682
2134 0158 00E0 b .L152
2135 .LVL121:
2136 .L159:
1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2137 .loc 1 1339 12 view .LVU683
2138 015a 0220 movs r0, #2
2139 .LVL122:
2140 .L152:
1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2141 .loc 1 1341 1 view .LVU684
2142 015c 02B0 add sp, sp, #8
2143 .cfi_remember_state
2144 .cfi_def_cfa_offset 32
2145 @ sp needed
2146 015e BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
2147 .LVL123:
2148 .L160:
2149 .cfi_restore_state
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2150 .loc 1 1242 5 view .LVU685
2151 0162 0220 movs r0, #2
2152 .LVL124:
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2153 .loc 1 1242 5 view .LVU686
2154 0164 FAE7 b .L152
2155 .LVL125:
2156 .L161:
1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2157 .loc 1 1249 14 view .LVU687
2158 0166 0120 movs r0, #1
2159 0168 F8E7 b .L152
2160 .L162:
1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2161 .loc 1 1281 16 view .LVU688
2162 016a 0120 movs r0, #1
2163 016c F6E7 b .L152
2164 .L163:
1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2165 .loc 1 1298 18 view .LVU689
2166 016e 0120 movs r0, #1
2167 0170 F4E7 b .L152
2168 .L164:
1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2169 .loc 1 1320 14 view .LVU690
ARM GAS /tmp/cczJHHnF.s page 168
2170 0172 0120 movs r0, #1
2171 0174 F2E7 b .L152
2172 .L168:
2173 0176 00BF .align 2
2174 .L167:
2175 0178 00240080 .word -2147474432
2176 .cfi_endproc
2177 .LFE135:
2179 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
2180 .align 1
2181 .global HAL_I2C_Slave_Transmit
2182 .syntax unified
2183 .thumb
2184 .thumb_func
2186 HAL_I2C_Slave_Transmit:
2187 .LVL126:
2188 .LFB136:
1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2189 .loc 1 1354 1 is_stmt 1 view -0
2190 .cfi_startproc
2191 @ args = 0, pretend = 0, frame = 0
2192 @ frame_needed = 0, uses_anonymous_args = 0
1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2193 .loc 1 1354 1 is_stmt 0 view .LVU692
2194 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2195 .cfi_def_cfa_offset 24
2196 .cfi_offset 4, -24
2197 .cfi_offset 5, -20
2198 .cfi_offset 6, -16
2199 .cfi_offset 7, -12
2200 .cfi_offset 8, -8
2201 .cfi_offset 14, -4
2202 0004 82B0 sub sp, sp, #8
2203 .cfi_def_cfa_offset 32
2204 0006 1D46 mov r5, r3
1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2205 .loc 1 1355 3 is_stmt 1 view .LVU693
1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2206 .loc 1 1357 3 view .LVU694
1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2207 .loc 1 1357 11 is_stmt 0 view .LVU695
2208 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2209 .LVL127:
1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2210 .loc 1 1357 11 view .LVU696
2211 000c DBB2 uxtb r3, r3
1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2212 .loc 1 1357 6 view .LVU697
2213 000e 202B cmp r3, #32
2214 0010 40F0B680 bne .L181
2215 0014 0446 mov r4, r0
2216 0016 0F46 mov r7, r1
2217 0018 9046 mov r8, r2
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2218 .loc 1 1359 5 is_stmt 1 view .LVU698
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2219 .loc 1 1359 8 is_stmt 0 view .LVU699
ARM GAS /tmp/cczJHHnF.s page 169
2220 001a 0029 cmp r1, #0
2221 001c 52D0 beq .L171
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2222 .loc 1 1359 25 discriminator 1 view .LVU700
2223 001e 002A cmp r2, #0
2224 0020 50D0 beq .L171
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2225 .loc 1 1365 5 is_stmt 1 view .LVU701
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2226 .loc 1 1365 5 view .LVU702
2227 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2228 0026 012B cmp r3, #1
2229 0028 00F0AE80 beq .L182
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2230 .loc 1 1365 5 discriminator 2 view .LVU703
2231 002c 0123 movs r3, #1
2232 002e 80F84030 strb r3, [r0, #64]
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2233 .loc 1 1365 5 discriminator 2 view .LVU704
1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2234 .loc 1 1368 5 discriminator 2 view .LVU705
1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2235 .loc 1 1368 17 is_stmt 0 discriminator 2 view .LVU706
2236 0032 FFF7FEFF bl HAL_GetTick
2237 .LVL128:
1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2238 .loc 1 1368 17 discriminator 2 view .LVU707
2239 0036 0646 mov r6, r0
2240 .LVL129:
1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2241 .loc 1 1370 5 is_stmt 1 discriminator 2 view .LVU708
1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2242 .loc 1 1370 21 is_stmt 0 discriminator 2 view .LVU709
2243 0038 2123 movs r3, #33
2244 003a 84F84130 strb r3, [r4, #65]
1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2245 .loc 1 1371 5 is_stmt 1 discriminator 2 view .LVU710
1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2246 .loc 1 1371 21 is_stmt 0 discriminator 2 view .LVU711
2247 003e 2023 movs r3, #32
2248 0040 84F84230 strb r3, [r4, #66]
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2249 .loc 1 1372 5 is_stmt 1 discriminator 2 view .LVU712
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2250 .loc 1 1372 21 is_stmt 0 discriminator 2 view .LVU713
2251 0044 0022 movs r2, #0
2252 0046 6264 str r2, [r4, #68]
1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2253 .loc 1 1375 5 is_stmt 1 discriminator 2 view .LVU714
1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2254 .loc 1 1375 21 is_stmt 0 discriminator 2 view .LVU715
2255 0048 6762 str r7, [r4, #36]
1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2256 .loc 1 1376 5 is_stmt 1 discriminator 2 view .LVU716
1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2257 .loc 1 1376 21 is_stmt 0 discriminator 2 view .LVU717
2258 004a A4F82A80 strh r8, [r4, #42] @ movhi
ARM GAS /tmp/cczJHHnF.s page 170
1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2259 .loc 1 1377 5 is_stmt 1 discriminator 2 view .LVU718
1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2260 .loc 1 1377 21 is_stmt 0 discriminator 2 view .LVU719
2261 004e 6263 str r2, [r4, #52]
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2262 .loc 1 1380 5 is_stmt 1 discriminator 2 view .LVU720
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2263 .loc 1 1380 9 is_stmt 0 discriminator 2 view .LVU721
2264 0050 2168 ldr r1, [r4]
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2265 .loc 1 1380 19 discriminator 2 view .LVU722
2266 0052 4B68 ldr r3, [r1, #4]
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2267 .loc 1 1380 25 discriminator 2 view .LVU723
2268 0054 23F40043 bic r3, r3, #32768
2269 0058 4B60 str r3, [r1, #4]
1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2270 .loc 1 1383 5 is_stmt 1 discriminator 2 view .LVU724
1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2271 .loc 1 1383 9 is_stmt 0 discriminator 2 view .LVU725
2272 005a 0090 str r0, [sp]
2273 005c 2B46 mov r3, r5
2274 005e 0821 movs r1, #8
2275 0060 2046 mov r0, r4
2276 .LVL130:
1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2277 .loc 1 1383 9 discriminator 2 view .LVU726
2278 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2279 .LVL131:
1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2280 .loc 1 1383 8 discriminator 2 view .LVU727
2281 0066 0028 cmp r0, #0
2282 0068 31D1 bne .L185
1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2283 .loc 1 1391 5 is_stmt 1 view .LVU728
2284 006a 2368 ldr r3, [r4]
2285 006c 0822 movs r2, #8
2286 006e DA61 str r2, [r3, #28]
1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2287 .loc 1 1394 5 view .LVU729
1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2288 .loc 1 1394 19 is_stmt 0 view .LVU730
2289 0070 E368 ldr r3, [r4, #12]
1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2290 .loc 1 1394 8 view .LVU731
2291 0072 022B cmp r3, #2
2292 0074 32D0 beq .L186
2293 .L174:
1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2294 .loc 1 1409 5 is_stmt 1 view .LVU732
1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2295 .loc 1 1409 9 is_stmt 0 view .LVU733
2296 0076 0096 str r6, [sp]
2297 0078 2B46 mov r3, r5
2298 007a 0022 movs r2, #0
2299 007c 4FF48031 mov r1, #65536
ARM GAS /tmp/cczJHHnF.s page 171
2300 0080 2046 mov r0, r4
2301 0082 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2302 .LVL132:
1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2303 .loc 1 1409 8 view .LVU734
2304 0086 0028 cmp r0, #0
2305 0088 3BD1 bne .L187
2306 .L176:
1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2307 .loc 1 1416 28 is_stmt 1 view .LVU735
1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2308 .loc 1 1416 16 is_stmt 0 view .LVU736
2309 008a 638D ldrh r3, [r4, #42]
2310 008c 9BB2 uxth r3, r3
1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2311 .loc 1 1416 28 view .LVU737
2312 008e 002B cmp r3, #0
2313 0090 45D0 beq .L188
1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2314 .loc 1 1419 7 is_stmt 1 view .LVU738
1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2315 .loc 1 1419 11 is_stmt 0 view .LVU739
2316 0092 3246 mov r2, r6
2317 0094 2946 mov r1, r5
2318 0096 2046 mov r0, r4
2319 0098 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
2320 .LVL133:
1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2321 .loc 1 1419 10 view .LVU740
2322 009c 0028 cmp r0, #0
2323 009e 37D1 bne .L189
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2324 .loc 1 1427 7 is_stmt 1 view .LVU741
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2325 .loc 1 1427 35 is_stmt 0 view .LVU742
2326 00a0 626A ldr r2, [r4, #36]
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2327 .loc 1 1427 11 view .LVU743
2328 00a2 2368 ldr r3, [r4]
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2329 .loc 1 1427 30 view .LVU744
2330 00a4 1278 ldrb r2, [r2] @ zero_extendqisi2
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2331 .loc 1 1427 28 view .LVU745
2332 00a6 9A62 str r2, [r3, #40]
1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2333 .loc 1 1430 7 is_stmt 1 view .LVU746
1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2334 .loc 1 1430 11 is_stmt 0 view .LVU747
2335 00a8 636A ldr r3, [r4, #36]
1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2336 .loc 1 1430 21 view .LVU748
2337 00aa 0133 adds r3, r3, #1
2338 00ac 6362 str r3, [r4, #36]
1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2339 .loc 1 1432 7 is_stmt 1 view .LVU749
1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 172
2340 .loc 1 1432 11 is_stmt 0 view .LVU750
2341 00ae B4F82AC0 ldrh ip, [r4, #42]
2342 00b2 1FFA8CFC uxth ip, ip
1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2343 .loc 1 1432 22 view .LVU751
2344 00b6 0CF1FF3C add ip, ip, #-1
2345 00ba 1FFA8CFC uxth ip, ip
2346 00be A4F82AC0 strh ip, [r4, #42] @ movhi
2347 00c2 E2E7 b .L176
2348 .LVL134:
2349 .L171:
1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2350 .loc 1 1361 7 is_stmt 1 view .LVU752
1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2351 .loc 1 1361 23 is_stmt 0 view .LVU753
2352 00c4 4FF40073 mov r3, #512
2353 00c8 6364 str r3, [r4, #68]
1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2354 .loc 1 1362 7 is_stmt 1 view .LVU754
1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2355 .loc 1 1362 15 is_stmt 0 view .LVU755
2356 00ca 0120 movs r0, #1
2357 .LVL135:
1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2358 .loc 1 1362 15 view .LVU756
2359 00cc 59E0 b .L170
2360 .LVL136:
2361 .L185:
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2362 .loc 1 1386 7 is_stmt 1 view .LVU757
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2363 .loc 1 1386 11 is_stmt 0 view .LVU758
2364 00ce 2268 ldr r2, [r4]
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2365 .loc 1 1386 21 view .LVU759
2366 00d0 5368 ldr r3, [r2, #4]
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2367 .loc 1 1386 27 view .LVU760
2368 00d2 43F40043 orr r3, r3, #32768
2369 00d6 5360 str r3, [r2, #4]
1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2370 .loc 1 1387 7 is_stmt 1 view .LVU761
1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2371 .loc 1 1387 14 is_stmt 0 view .LVU762
2372 00d8 0120 movs r0, #1
2373 00da 52E0 b .L170
2374 .L186:
1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2375 .loc 1 1397 7 is_stmt 1 view .LVU763
1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2376 .loc 1 1397 11 is_stmt 0 view .LVU764
2377 00dc 0096 str r6, [sp]
2378 00de 2B46 mov r3, r5
2379 00e0 0022 movs r2, #0
2380 00e2 0821 movs r1, #8
2381 00e4 2046 mov r0, r4
2382 00e6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
ARM GAS /tmp/cczJHHnF.s page 173
2383 .LVL137:
1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2384 .loc 1 1397 10 view .LVU765
2385 00ea 18B9 cbnz r0, .L190
1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2386 .loc 1 1405 7 is_stmt 1 view .LVU766
2387 00ec 2368 ldr r3, [r4]
2388 00ee 0822 movs r2, #8
2389 00f0 DA61 str r2, [r3, #28]
2390 00f2 C0E7 b .L174
2391 .L190:
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2392 .loc 1 1400 9 view .LVU767
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2393 .loc 1 1400 13 is_stmt 0 view .LVU768
2394 00f4 2268 ldr r2, [r4]
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2395 .loc 1 1400 23 view .LVU769
2396 00f6 5368 ldr r3, [r2, #4]
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2397 .loc 1 1400 29 view .LVU770
2398 00f8 43F40043 orr r3, r3, #32768
2399 00fc 5360 str r3, [r2, #4]
1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2400 .loc 1 1401 9 is_stmt 1 view .LVU771
1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2401 .loc 1 1401 16 is_stmt 0 view .LVU772
2402 00fe 0120 movs r0, #1
2403 0100 3FE0 b .L170
2404 .L187:
1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2405 .loc 1 1412 7 is_stmt 1 view .LVU773
1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2406 .loc 1 1412 11 is_stmt 0 view .LVU774
2407 0102 2268 ldr r2, [r4]
1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2408 .loc 1 1412 21 view .LVU775
2409 0104 5368 ldr r3, [r2, #4]
1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2410 .loc 1 1412 27 view .LVU776
2411 0106 43F40043 orr r3, r3, #32768
2412 010a 5360 str r3, [r2, #4]
1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2413 .loc 1 1413 7 is_stmt 1 view .LVU777
1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2414 .loc 1 1413 14 is_stmt 0 view .LVU778
2415 010c 0120 movs r0, #1
2416 010e 38E0 b .L170
2417 .L189:
1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2418 .loc 1 1422 9 is_stmt 1 view .LVU779
1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2419 .loc 1 1422 13 is_stmt 0 view .LVU780
2420 0110 2268 ldr r2, [r4]
1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2421 .loc 1 1422 23 view .LVU781
2422 0112 5368 ldr r3, [r2, #4]
ARM GAS /tmp/cczJHHnF.s page 174
1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2423 .loc 1 1422 29 view .LVU782
2424 0114 43F40043 orr r3, r3, #32768
2425 0118 5360 str r3, [r2, #4]
1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2426 .loc 1 1423 9 is_stmt 1 view .LVU783
1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2427 .loc 1 1423 16 is_stmt 0 view .LVU784
2428 011a 0120 movs r0, #1
2429 011c 31E0 b .L170
2430 .L188:
1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2431 .loc 1 1436 5 is_stmt 1 view .LVU785
1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2432 .loc 1 1436 9 is_stmt 0 view .LVU786
2433 011e 3246 mov r2, r6
2434 0120 2946 mov r1, r5
2435 0122 2046 mov r0, r4
2436 0124 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2437 .LVL138:
1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2438 .loc 1 1436 8 view .LVU787
2439 0128 48B1 cbz r0, .L179
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2440 .loc 1 1439 7 is_stmt 1 view .LVU788
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2441 .loc 1 1439 11 is_stmt 0 view .LVU789
2442 012a 2268 ldr r2, [r4]
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2443 .loc 1 1439 21 view .LVU790
2444 012c 5368 ldr r3, [r2, #4]
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2445 .loc 1 1439 27 view .LVU791
2446 012e 43F40043 orr r3, r3, #32768
2447 0132 5360 str r3, [r2, #4]
1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2448 .loc 1 1441 7 is_stmt 1 view .LVU792
1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2449 .loc 1 1441 15 is_stmt 0 view .LVU793
2450 0134 636C ldr r3, [r4, #68]
1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2451 .loc 1 1441 10 view .LVU794
2452 0136 042B cmp r3, #4
2453 0138 28D1 bne .L183
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2454 .loc 1 1445 9 is_stmt 1 view .LVU795
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2455 .loc 1 1445 25 is_stmt 0 view .LVU796
2456 013a 0023 movs r3, #0
2457 013c 6364 str r3, [r4, #68]
2458 .L179:
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2459 .loc 1 1454 5 is_stmt 1 view .LVU797
2460 013e 2368 ldr r3, [r4]
2461 0140 2022 movs r2, #32
2462 0142 DA61 str r2, [r3, #28]
1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 175
2463 .loc 1 1457 5 view .LVU798
1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2464 .loc 1 1457 9 is_stmt 0 view .LVU799
2465 0144 0096 str r6, [sp]
2466 0146 2B46 mov r3, r5
2467 0148 0122 movs r2, #1
2468 014a 4FF40041 mov r1, #32768
2469 014e 2046 mov r0, r4
2470 0150 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2471 .LVL139:
1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2472 .loc 1 1457 8 view .LVU800
2473 0154 30B1 cbz r0, .L180
1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2474 .loc 1 1460 7 is_stmt 1 view .LVU801
1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2475 .loc 1 1460 11 is_stmt 0 view .LVU802
2476 0156 2268 ldr r2, [r4]
1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2477 .loc 1 1460 21 view .LVU803
2478 0158 5368 ldr r3, [r2, #4]
1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2479 .loc 1 1460 27 view .LVU804
2480 015a 43F40043 orr r3, r3, #32768
2481 015e 5360 str r3, [r2, #4]
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2482 .loc 1 1461 7 is_stmt 1 view .LVU805
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2483 .loc 1 1461 14 is_stmt 0 view .LVU806
2484 0160 0120 movs r0, #1
2485 0162 0EE0 b .L170
2486 .L180:
1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2487 .loc 1 1465 5 is_stmt 1 view .LVU807
1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2488 .loc 1 1465 9 is_stmt 0 view .LVU808
2489 0164 2268 ldr r2, [r4]
1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2490 .loc 1 1465 19 view .LVU809
2491 0166 5368 ldr r3, [r2, #4]
1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2492 .loc 1 1465 25 view .LVU810
2493 0168 43F40043 orr r3, r3, #32768
2494 016c 5360 str r3, [r2, #4]
1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2495 .loc 1 1467 5 is_stmt 1 view .LVU811
1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2496 .loc 1 1467 17 is_stmt 0 view .LVU812
2497 016e 2023 movs r3, #32
2498 0170 84F84130 strb r3, [r4, #65]
1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2499 .loc 1 1468 5 is_stmt 1 view .LVU813
1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2500 .loc 1 1468 17 is_stmt 0 view .LVU814
2501 0174 0023 movs r3, #0
2502 0176 84F84230 strb r3, [r4, #66]
1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 176
2503 .loc 1 1471 5 is_stmt 1 view .LVU815
1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2504 .loc 1 1471 5 view .LVU816
2505 017a 84F84030 strb r3, [r4, #64]
1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2506 .loc 1 1471 5 view .LVU817
1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2507 .loc 1 1473 5 view .LVU818
1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2508 .loc 1 1473 12 is_stmt 0 view .LVU819
2509 017e 00E0 b .L170
2510 .LVL140:
2511 .L181:
1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2512 .loc 1 1477 12 view .LVU820
2513 0180 0220 movs r0, #2
2514 .LVL141:
2515 .L170:
1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2516 .loc 1 1479 1 view .LVU821
2517 0182 02B0 add sp, sp, #8
2518 .cfi_remember_state
2519 .cfi_def_cfa_offset 24
2520 @ sp needed
2521 0184 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
2522 .LVL142:
2523 .L182:
2524 .cfi_restore_state
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2525 .loc 1 1365 5 view .LVU822
2526 0188 0220 movs r0, #2
2527 .LVL143:
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2528 .loc 1 1365 5 view .LVU823
2529 018a FAE7 b .L170
2530 .LVL144:
2531 .L183:
1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2532 .loc 1 1449 16 view .LVU824
2533 018c 0120 movs r0, #1
2534 018e F8E7 b .L170
2535 .cfi_endproc
2536 .LFE136:
2538 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
2539 .align 1
2540 .global HAL_I2C_Slave_Receive
2541 .syntax unified
2542 .thumb
2543 .thumb_func
2545 HAL_I2C_Slave_Receive:
2546 .LVL145:
2547 .LFB137:
1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2548 .loc 1 1492 1 is_stmt 1 view -0
2549 .cfi_startproc
2550 @ args = 0, pretend = 0, frame = 0
2551 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/cczJHHnF.s page 177
1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2552 .loc 1 1492 1 is_stmt 0 view .LVU826
2553 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2554 .cfi_def_cfa_offset 24
2555 .cfi_offset 4, -24
2556 .cfi_offset 5, -20
2557 .cfi_offset 6, -16
2558 .cfi_offset 7, -12
2559 .cfi_offset 8, -8
2560 .cfi_offset 14, -4
2561 0004 82B0 sub sp, sp, #8
2562 .cfi_def_cfa_offset 32
2563 0006 1D46 mov r5, r3
1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2564 .loc 1 1493 3 is_stmt 1 view .LVU827
1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2565 .loc 1 1495 3 view .LVU828
1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2566 .loc 1 1495 11 is_stmt 0 view .LVU829
2567 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2568 .LVL146:
1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2569 .loc 1 1495 11 view .LVU830
2570 000c DBB2 uxtb r3, r3
1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2571 .loc 1 1495 6 view .LVU831
2572 000e 202B cmp r3, #32
2573 0010 40F0A780 bne .L202
2574 0014 0446 mov r4, r0
2575 0016 0E46 mov r6, r1
2576 0018 9046 mov r8, r2
1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2577 .loc 1 1497 5 is_stmt 1 view .LVU832
1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2578 .loc 1 1497 8 is_stmt 0 view .LVU833
2579 001a 51B3 cbz r1, .L193
1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2580 .loc 1 1497 25 discriminator 1 view .LVU834
2581 001c 4AB3 cbz r2, .L193
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2582 .loc 1 1503 5 is_stmt 1 view .LVU835
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2583 .loc 1 1503 5 view .LVU836
2584 001e 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2585 0022 012B cmp r3, #1
2586 0024 00F0A180 beq .L203
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2587 .loc 1 1503 5 discriminator 2 view .LVU837
2588 0028 0123 movs r3, #1
2589 002a 80F84030 strb r3, [r0, #64]
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2590 .loc 1 1503 5 discriminator 2 view .LVU838
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2591 .loc 1 1506 5 discriminator 2 view .LVU839
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2592 .loc 1 1506 17 is_stmt 0 discriminator 2 view .LVU840
2593 002e FFF7FEFF bl HAL_GetTick
ARM GAS /tmp/cczJHHnF.s page 178
2594 .LVL147:
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2595 .loc 1 1506 17 discriminator 2 view .LVU841
2596 0032 0746 mov r7, r0
2597 .LVL148:
1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2598 .loc 1 1508 5 is_stmt 1 discriminator 2 view .LVU842
1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2599 .loc 1 1508 21 is_stmt 0 discriminator 2 view .LVU843
2600 0034 2223 movs r3, #34
2601 0036 84F84130 strb r3, [r4, #65]
1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2602 .loc 1 1509 5 is_stmt 1 discriminator 2 view .LVU844
1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2603 .loc 1 1509 21 is_stmt 0 discriminator 2 view .LVU845
2604 003a 2023 movs r3, #32
2605 003c 84F84230 strb r3, [r4, #66]
1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2606 .loc 1 1510 5 is_stmt 1 discriminator 2 view .LVU846
1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2607 .loc 1 1510 21 is_stmt 0 discriminator 2 view .LVU847
2608 0040 0022 movs r2, #0
2609 0042 6264 str r2, [r4, #68]
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2610 .loc 1 1513 5 is_stmt 1 discriminator 2 view .LVU848
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2611 .loc 1 1513 21 is_stmt 0 discriminator 2 view .LVU849
2612 0044 6662 str r6, [r4, #36]
1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2613 .loc 1 1514 5 is_stmt 1 discriminator 2 view .LVU850
1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2614 .loc 1 1514 21 is_stmt 0 discriminator 2 view .LVU851
2615 0046 A4F82A80 strh r8, [r4, #42] @ movhi
1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2616 .loc 1 1515 5 is_stmt 1 discriminator 2 view .LVU852
1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2617 .loc 1 1515 21 is_stmt 0 discriminator 2 view .LVU853
2618 004a 6263 str r2, [r4, #52]
1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2619 .loc 1 1518 5 is_stmt 1 discriminator 2 view .LVU854
1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2620 .loc 1 1518 9 is_stmt 0 discriminator 2 view .LVU855
2621 004c 2168 ldr r1, [r4]
1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2622 .loc 1 1518 19 discriminator 2 view .LVU856
2623 004e 4B68 ldr r3, [r1, #4]
1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2624 .loc 1 1518 25 discriminator 2 view .LVU857
2625 0050 23F40043 bic r3, r3, #32768
2626 0054 4B60 str r3, [r1, #4]
1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2627 .loc 1 1521 5 is_stmt 1 discriminator 2 view .LVU858
1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2628 .loc 1 1521 9 is_stmt 0 discriminator 2 view .LVU859
2629 0056 0090 str r0, [sp]
2630 0058 2B46 mov r3, r5
2631 005a 0821 movs r1, #8
ARM GAS /tmp/cczJHHnF.s page 179
2632 005c 2046 mov r0, r4
2633 .LVL149:
1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2634 .loc 1 1521 9 discriminator 2 view .LVU860
2635 005e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2636 .LVL150:
1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2637 .loc 1 1521 8 discriminator 2 view .LVU861
2638 0062 58B1 cbz r0, .L195
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2639 .loc 1 1524 7 is_stmt 1 view .LVU862
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2640 .loc 1 1524 11 is_stmt 0 view .LVU863
2641 0064 2268 ldr r2, [r4]
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2642 .loc 1 1524 21 view .LVU864
2643 0066 5368 ldr r3, [r2, #4]
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2644 .loc 1 1524 27 view .LVU865
2645 0068 43F40043 orr r3, r3, #32768
2646 006c 5360 str r3, [r2, #4]
1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2647 .loc 1 1525 7 is_stmt 1 view .LVU866
1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2648 .loc 1 1525 14 is_stmt 0 view .LVU867
2649 006e 0120 movs r0, #1
2650 0070 78E0 b .L192
2651 .LVL151:
2652 .L193:
1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2653 .loc 1 1499 7 is_stmt 1 view .LVU868
1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2654 .loc 1 1499 23 is_stmt 0 view .LVU869
2655 0072 4FF40073 mov r3, #512
2656 0076 6364 str r3, [r4, #68]
1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2657 .loc 1 1500 7 is_stmt 1 view .LVU870
1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2658 .loc 1 1500 15 is_stmt 0 view .LVU871
2659 0078 0120 movs r0, #1
2660 .LVL152:
1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2661 .loc 1 1500 15 view .LVU872
2662 007a 73E0 b .L192
2663 .LVL153:
2664 .L195:
1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2665 .loc 1 1529 5 is_stmt 1 view .LVU873
2666 007c 2368 ldr r3, [r4]
2667 007e 0822 movs r2, #8
2668 0080 DA61 str r2, [r3, #28]
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2669 .loc 1 1532 5 view .LVU874
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2670 .loc 1 1532 9 is_stmt 0 view .LVU875
2671 0082 0097 str r7, [sp]
2672 0084 2B46 mov r3, r5
ARM GAS /tmp/cczJHHnF.s page 180
2673 0086 0122 movs r2, #1
2674 0088 4FF48031 mov r1, #65536
2675 008c 2046 mov r0, r4
2676 008e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2677 .LVL154:
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2678 .loc 1 1532 8 view .LVU876
2679 0092 B8B1 cbz r0, .L196
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2680 .loc 1 1535 7 is_stmt 1 view .LVU877
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2681 .loc 1 1535 11 is_stmt 0 view .LVU878
2682 0094 2268 ldr r2, [r4]
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2683 .loc 1 1535 21 view .LVU879
2684 0096 5368 ldr r3, [r2, #4]
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2685 .loc 1 1535 27 view .LVU880
2686 0098 43F40043 orr r3, r3, #32768
2687 009c 5360 str r3, [r2, #4]
1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2688 .loc 1 1536 7 is_stmt 1 view .LVU881
1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2689 .loc 1 1536 14 is_stmt 0 view .LVU882
2690 009e 0120 movs r0, #1
2691 00a0 60E0 b .L192
2692 .L197:
1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2693 .loc 1 1563 7 is_stmt 1 view .LVU883
1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2694 .loc 1 1563 38 is_stmt 0 view .LVU884
2695 00a2 2368 ldr r3, [r4]
1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2696 .loc 1 1563 48 view .LVU885
2697 00a4 5A6A ldr r2, [r3, #36]
1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2698 .loc 1 1563 12 view .LVU886
2699 00a6 636A ldr r3, [r4, #36]
1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2700 .loc 1 1563 23 view .LVU887
2701 00a8 1A70 strb r2, [r3]
1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2702 .loc 1 1566 7 is_stmt 1 view .LVU888
1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2703 .loc 1 1566 11 is_stmt 0 view .LVU889
2704 00aa 636A ldr r3, [r4, #36]
1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2705 .loc 1 1566 21 view .LVU890
2706 00ac 0133 adds r3, r3, #1
2707 00ae 6362 str r3, [r4, #36]
1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2708 .loc 1 1568 7 is_stmt 1 view .LVU891
1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2709 .loc 1 1568 11 is_stmt 0 view .LVU892
2710 00b0 B4F82AC0 ldrh ip, [r4, #42]
2711 00b4 1FFA8CFC uxth ip, ip
1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 181
2712 .loc 1 1568 22 view .LVU893
2713 00b8 0CF1FF3C add ip, ip, #-1
2714 00bc 1FFA8CFC uxth ip, ip
2715 00c0 A4F82AC0 strh ip, [r4, #42] @ movhi
2716 .L196:
1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2717 .loc 1 1539 28 is_stmt 1 view .LVU894
1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2718 .loc 1 1539 16 is_stmt 0 view .LVU895
2719 00c4 638D ldrh r3, [r4, #42]
2720 00c6 9BB2 uxth r3, r3
1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2721 .loc 1 1539 28 view .LVU896
2722 00c8 EBB1 cbz r3, .L205
1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2723 .loc 1 1542 7 is_stmt 1 view .LVU897
1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2724 .loc 1 1542 11 is_stmt 0 view .LVU898
2725 00ca 3A46 mov r2, r7
2726 00cc 2946 mov r1, r5
2727 00ce 2046 mov r0, r4
2728 00d0 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2729 .LVL155:
1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2730 .loc 1 1542 10 view .LVU899
2731 00d4 0028 cmp r0, #0
2732 00d6 E4D0 beq .L197
1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2733 .loc 1 1545 9 is_stmt 1 view .LVU900
1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2734 .loc 1 1545 13 is_stmt 0 view .LVU901
2735 00d8 2268 ldr r2, [r4]
1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2736 .loc 1 1545 23 view .LVU902
2737 00da 5368 ldr r3, [r2, #4]
1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2738 .loc 1 1545 29 view .LVU903
2739 00dc 43F40043 orr r3, r3, #32768
2740 00e0 5360 str r3, [r2, #4]
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2741 .loc 1 1548 9 is_stmt 1 view .LVU904
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2742 .loc 1 1548 13 is_stmt 0 view .LVU905
2743 00e2 2368 ldr r3, [r4]
2744 00e4 9A69 ldr r2, [r3, #24]
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2745 .loc 1 1548 12 view .LVU906
2746 00e6 12F0040F tst r2, #4
2747 00ea 0AD0 beq .L198
1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2748 .loc 1 1551 11 is_stmt 1 view .LVU907
1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2749 .loc 1 1551 52 is_stmt 0 view .LVU908
2750 00ec 5A6A ldr r2, [r3, #36]
1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2751 .loc 1 1551 16 view .LVU909
2752 00ee 636A ldr r3, [r4, #36]
ARM GAS /tmp/cczJHHnF.s page 182
1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2753 .loc 1 1551 27 view .LVU910
2754 00f0 1A70 strb r2, [r3]
1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2755 .loc 1 1554 11 is_stmt 1 view .LVU911
1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2756 .loc 1 1554 15 is_stmt 0 view .LVU912
2757 00f2 636A ldr r3, [r4, #36]
1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2758 .loc 1 1554 25 view .LVU913
2759 00f4 0133 adds r3, r3, #1
2760 00f6 6362 str r3, [r4, #36]
1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2761 .loc 1 1556 11 is_stmt 1 view .LVU914
1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2762 .loc 1 1556 15 is_stmt 0 view .LVU915
2763 00f8 638D ldrh r3, [r4, #42]
2764 00fa 9BB2 uxth r3, r3
1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2765 .loc 1 1556 26 view .LVU916
2766 00fc 013B subs r3, r3, #1
2767 00fe 9BB2 uxth r3, r3
2768 0100 6385 strh r3, [r4, #42] @ movhi
2769 .L198:
1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2770 .loc 1 1559 9 is_stmt 1 view .LVU917
1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2771 .loc 1 1559 16 is_stmt 0 view .LVU918
2772 0102 0120 movs r0, #1
2773 0104 2EE0 b .L192
2774 .L205:
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2775 .loc 1 1572 5 is_stmt 1 view .LVU919
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2776 .loc 1 1572 9 is_stmt 0 view .LVU920
2777 0106 3A46 mov r2, r7
2778 0108 2946 mov r1, r5
2779 010a 2046 mov r0, r4
2780 010c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2781 .LVL156:
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2782 .loc 1 1572 8 view .LVU921
2783 0110 30B1 cbz r0, .L200
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2784 .loc 1 1575 7 is_stmt 1 view .LVU922
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2785 .loc 1 1575 11 is_stmt 0 view .LVU923
2786 0112 2268 ldr r2, [r4]
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2787 .loc 1 1575 21 view .LVU924
2788 0114 5368 ldr r3, [r2, #4]
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2789 .loc 1 1575 27 view .LVU925
2790 0116 43F40043 orr r3, r3, #32768
2791 011a 5360 str r3, [r2, #4]
1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2792 .loc 1 1576 7 is_stmt 1 view .LVU926
ARM GAS /tmp/cczJHHnF.s page 183
1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2793 .loc 1 1576 14 is_stmt 0 view .LVU927
2794 011c 0120 movs r0, #1
2795 011e 21E0 b .L192
2796 .L200:
1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2797 .loc 1 1580 5 is_stmt 1 view .LVU928
2798 0120 2368 ldr r3, [r4]
2799 0122 2022 movs r2, #32
2800 0124 DA61 str r2, [r3, #28]
1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2801 .loc 1 1583 5 view .LVU929
1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2802 .loc 1 1583 9 is_stmt 0 view .LVU930
2803 0126 0097 str r7, [sp]
2804 0128 2B46 mov r3, r5
2805 012a 0122 movs r2, #1
2806 012c 4FF40041 mov r1, #32768
2807 0130 2046 mov r0, r4
2808 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2809 .LVL157:
1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2810 .loc 1 1583 8 view .LVU931
2811 0136 30B1 cbz r0, .L201
1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2812 .loc 1 1586 7 is_stmt 1 view .LVU932
1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2813 .loc 1 1586 11 is_stmt 0 view .LVU933
2814 0138 2268 ldr r2, [r4]
1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2815 .loc 1 1586 21 view .LVU934
2816 013a 5368 ldr r3, [r2, #4]
1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2817 .loc 1 1586 27 view .LVU935
2818 013c 43F40043 orr r3, r3, #32768
2819 0140 5360 str r3, [r2, #4]
1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2820 .loc 1 1587 7 is_stmt 1 view .LVU936
1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2821 .loc 1 1587 14 is_stmt 0 view .LVU937
2822 0142 0120 movs r0, #1
2823 0144 0EE0 b .L192
2824 .L201:
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2825 .loc 1 1591 5 is_stmt 1 view .LVU938
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2826 .loc 1 1591 9 is_stmt 0 view .LVU939
2827 0146 2268 ldr r2, [r4]
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2828 .loc 1 1591 19 view .LVU940
2829 0148 5368 ldr r3, [r2, #4]
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2830 .loc 1 1591 25 view .LVU941
2831 014a 43F40043 orr r3, r3, #32768
2832 014e 5360 str r3, [r2, #4]
1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2833 .loc 1 1593 5 is_stmt 1 view .LVU942
ARM GAS /tmp/cczJHHnF.s page 184
1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2834 .loc 1 1593 17 is_stmt 0 view .LVU943
2835 0150 2023 movs r3, #32
2836 0152 84F84130 strb r3, [r4, #65]
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2837 .loc 1 1594 5 is_stmt 1 view .LVU944
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2838 .loc 1 1594 17 is_stmt 0 view .LVU945
2839 0156 0023 movs r3, #0
2840 0158 84F84230 strb r3, [r4, #66]
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2841 .loc 1 1597 5 is_stmt 1 view .LVU946
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2842 .loc 1 1597 5 view .LVU947
2843 015c 84F84030 strb r3, [r4, #64]
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2844 .loc 1 1597 5 view .LVU948
1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2845 .loc 1 1599 5 view .LVU949
1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2846 .loc 1 1599 12 is_stmt 0 view .LVU950
2847 0160 00E0 b .L192
2848 .LVL158:
2849 .L202:
1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2850 .loc 1 1603 12 view .LVU951
2851 0162 0220 movs r0, #2
2852 .LVL159:
2853 .L192:
1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2854 .loc 1 1605 1 view .LVU952
2855 0164 02B0 add sp, sp, #8
2856 .cfi_remember_state
2857 .cfi_def_cfa_offset 24
2858 @ sp needed
2859 0166 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
2860 .LVL160:
2861 .L203:
2862 .cfi_restore_state
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2863 .loc 1 1503 5 view .LVU953
2864 016a 0220 movs r0, #2
2865 .LVL161:
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2866 .loc 1 1503 5 view .LVU954
2867 016c FAE7 b .L192
2868 .cfi_endproc
2869 .LFE137:
2871 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
2872 .align 1
2873 .global HAL_I2C_Master_Transmit_IT
2874 .syntax unified
2875 .thumb
2876 .thumb_func
2878 HAL_I2C_Master_Transmit_IT:
2879 .LVL162:
2880 .LFB138:
ARM GAS /tmp/cczJHHnF.s page 185
1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
2881 .loc 1 1619 1 is_stmt 1 view -0
2882 .cfi_startproc
2883 @ args = 0, pretend = 0, frame = 0
2884 @ frame_needed = 0, uses_anonymous_args = 0
1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
2885 .loc 1 1619 1 is_stmt 0 view .LVU956
2886 0000 30B5 push {r4, r5, lr}
2887 .cfi_def_cfa_offset 12
2888 .cfi_offset 4, -12
2889 .cfi_offset 5, -8
2890 .cfi_offset 14, -4
2891 0002 83B0 sub sp, sp, #12
2892 .cfi_def_cfa_offset 24
2893 0004 0446 mov r4, r0
1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2894 .loc 1 1620 3 is_stmt 1 view .LVU957
1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2895 .loc 1 1622 3 view .LVU958
1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2896 .loc 1 1622 11 is_stmt 0 view .LVU959
2897 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
2898 .LVL163:
1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2899 .loc 1 1622 11 view .LVU960
2900 000a C0B2 uxtb r0, r0
1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2901 .loc 1 1622 6 view .LVU961
2902 000c 2028 cmp r0, #32
2903 000e 37D1 bne .L210
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2904 .loc 1 1624 5 is_stmt 1 view .LVU962
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2905 .loc 1 1624 9 is_stmt 0 view .LVU963
2906 0010 2068 ldr r0, [r4]
2907 0012 8069 ldr r0, [r0, #24]
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2908 .loc 1 1624 8 view .LVU964
2909 0014 10F4004F tst r0, #32768
2910 0018 34D1 bne .L211
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2911 .loc 1 1630 5 is_stmt 1 view .LVU965
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2912 .loc 1 1630 5 view .LVU966
2913 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
2914 001e 0128 cmp r0, #1
2915 0020 32D0 beq .L212
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2916 .loc 1 1630 5 discriminator 2 view .LVU967
2917 0022 0120 movs r0, #1
2918 0024 84F84000 strb r0, [r4, #64]
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2919 .loc 1 1630 5 discriminator 2 view .LVU968
1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2920 .loc 1 1632 5 discriminator 2 view .LVU969
1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2921 .loc 1 1632 23 is_stmt 0 discriminator 2 view .LVU970
ARM GAS /tmp/cczJHHnF.s page 186
2922 0028 2120 movs r0, #33
2923 002a 84F84100 strb r0, [r4, #65]
1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2924 .loc 1 1633 5 is_stmt 1 discriminator 2 view .LVU971
1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2925 .loc 1 1633 23 is_stmt 0 discriminator 2 view .LVU972
2926 002e 1020 movs r0, #16
2927 0030 84F84200 strb r0, [r4, #66]
1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2928 .loc 1 1634 5 is_stmt 1 discriminator 2 view .LVU973
1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2929 .loc 1 1634 23 is_stmt 0 discriminator 2 view .LVU974
2930 0034 0020 movs r0, #0
2931 0036 6064 str r0, [r4, #68]
1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2932 .loc 1 1637 5 is_stmt 1 discriminator 2 view .LVU975
1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2933 .loc 1 1637 23 is_stmt 0 discriminator 2 view .LVU976
2934 0038 6262 str r2, [r4, #36]
1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2935 .loc 1 1638 5 is_stmt 1 discriminator 2 view .LVU977
1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2936 .loc 1 1638 23 is_stmt 0 discriminator 2 view .LVU978
2937 003a 6385 strh r3, [r4, #42] @ movhi
1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2938 .loc 1 1639 5 is_stmt 1 discriminator 2 view .LVU979
1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2939 .loc 1 1639 23 is_stmt 0 discriminator 2 view .LVU980
2940 003c 134B ldr r3, .L214
2941 .LVL164:
1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2942 .loc 1 1639 23 discriminator 2 view .LVU981
2943 003e E362 str r3, [r4, #44]
2944 .LVL165:
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2945 .loc 1 1640 5 is_stmt 1 discriminator 2 view .LVU982
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2946 .loc 1 1640 23 is_stmt 0 discriminator 2 view .LVU983
2947 0040 134B ldr r3, .L214+4
2948 0042 6363 str r3, [r4, #52]
1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2949 .loc 1 1642 5 is_stmt 1 discriminator 2 view .LVU984
1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2950 .loc 1 1642 13 is_stmt 0 discriminator 2 view .LVU985
2951 0044 638D ldrh r3, [r4, #42]
2952 0046 9BB2 uxth r3, r3
1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2953 .loc 1 1642 8 discriminator 2 view .LVU986
2954 0048 FF2B cmp r3, #255
2955 004a 14D9 bls .L208
1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2956 .loc 1 1644 7 is_stmt 1 view .LVU987
1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2957 .loc 1 1644 22 is_stmt 0 view .LVU988
2958 004c FF23 movs r3, #255
2959 004e 2385 strh r3, [r4, #40] @ movhi
1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 187
2960 .loc 1 1645 7 is_stmt 1 view .LVU989
2961 .LVL166:
1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2962 .loc 1 1645 16 is_stmt 0 view .LVU990
2963 0050 4FF08073 mov r3, #16777216
2964 .LVL167:
2965 .L209:
1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2966 .loc 1 1655 5 is_stmt 1 view .LVU991
2967 0054 0F4A ldr r2, .L214+8
2968 .LVL168:
1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2969 .loc 1 1655 5 is_stmt 0 view .LVU992
2970 0056 0092 str r2, [sp]
2971 .LVL169:
1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2972 .loc 1 1655 5 view .LVU993
2973 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
2974 005c 2046 mov r0, r4
2975 005e FFF7FEFF bl I2C_TransferConfig
2976 .LVL170:
1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2977 .loc 1 1658 5 is_stmt 1 view .LVU994
1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2978 .loc 1 1658 5 view .LVU995
2979 0062 0025 movs r5, #0
2980 0064 84F84050 strb r5, [r4, #64]
1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2981 .loc 1 1658 5 view .LVU996
1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2982 .loc 1 1668 5 view .LVU997
2983 0068 0121 movs r1, #1
2984 006a 2046 mov r0, r4
2985 006c FFF7FEFF bl I2C_Enable_IRQ
2986 .LVL171:
1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2987 .loc 1 1670 5 view .LVU998
1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2988 .loc 1 1670 12 is_stmt 0 view .LVU999
2989 0070 2846 mov r0, r5
2990 .LVL172:
2991 .L207:
1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2992 .loc 1 1676 1 view .LVU1000
2993 0072 03B0 add sp, sp, #12
2994 .cfi_remember_state
2995 .cfi_def_cfa_offset 12
2996 @ sp needed
2997 0074 30BD pop {r4, r5, pc}
2998 .LVL173:
2999 .L208:
3000 .cfi_restore_state
1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3001 .loc 1 1649 7 is_stmt 1 view .LVU1001
1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3002 .loc 1 1649 28 is_stmt 0 view .LVU1002
3003 0076 638D ldrh r3, [r4, #42]
ARM GAS /tmp/cczJHHnF.s page 188
1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3004 .loc 1 1649 22 view .LVU1003
3005 0078 2385 strh r3, [r4, #40] @ movhi
1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3006 .loc 1 1650 7 is_stmt 1 view .LVU1004
3007 .LVL174:
1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3008 .loc 1 1650 16 is_stmt 0 view .LVU1005
3009 007a 4FF00073 mov r3, #33554432
3010 007e E9E7 b .L209
3011 .LVL175:
3012 .L210:
1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3013 .loc 1 1674 12 view .LVU1006
3014 0080 0220 movs r0, #2
3015 0082 F6E7 b .L207
3016 .L211:
1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3017 .loc 1 1626 14 view .LVU1007
3018 0084 0220 movs r0, #2
3019 0086 F4E7 b .L207
3020 .L212:
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3021 .loc 1 1630 5 view .LVU1008
3022 0088 0220 movs r0, #2
3023 008a F2E7 b .L207
3024 .L215:
3025 .align 2
3026 .L214:
3027 008c 0000FFFF .word -65536
3028 0090 00000000 .word I2C_Master_ISR_IT
3029 0094 00200080 .word -2147475456
3030 .cfi_endproc
3031 .LFE138:
3033 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits
3034 .align 1
3035 .global HAL_I2C_Master_Receive_IT
3036 .syntax unified
3037 .thumb
3038 .thumb_func
3040 HAL_I2C_Master_Receive_IT:
3041 .LVL176:
3042 .LFB139:
1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3043 .loc 1 1690 1 is_stmt 1 view -0
3044 .cfi_startproc
3045 @ args = 0, pretend = 0, frame = 0
3046 @ frame_needed = 0, uses_anonymous_args = 0
1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3047 .loc 1 1690 1 is_stmt 0 view .LVU1010
3048 0000 30B5 push {r4, r5, lr}
3049 .cfi_def_cfa_offset 12
3050 .cfi_offset 4, -12
3051 .cfi_offset 5, -8
3052 .cfi_offset 14, -4
3053 0002 83B0 sub sp, sp, #12
3054 .cfi_def_cfa_offset 24
ARM GAS /tmp/cczJHHnF.s page 189
3055 0004 0446 mov r4, r0
1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3056 .loc 1 1691 3 is_stmt 1 view .LVU1011
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3057 .loc 1 1693 3 view .LVU1012
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3058 .loc 1 1693 11 is_stmt 0 view .LVU1013
3059 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3060 .LVL177:
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3061 .loc 1 1693 11 view .LVU1014
3062 000a C0B2 uxtb r0, r0
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3063 .loc 1 1693 6 view .LVU1015
3064 000c 2028 cmp r0, #32
3065 000e 37D1 bne .L220
1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3066 .loc 1 1695 5 is_stmt 1 view .LVU1016
1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3067 .loc 1 1695 9 is_stmt 0 view .LVU1017
3068 0010 2068 ldr r0, [r4]
3069 0012 8069 ldr r0, [r0, #24]
1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3070 .loc 1 1695 8 view .LVU1018
3071 0014 10F4004F tst r0, #32768
3072 0018 34D1 bne .L221
1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3073 .loc 1 1701 5 is_stmt 1 view .LVU1019
1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3074 .loc 1 1701 5 view .LVU1020
3075 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
3076 001e 0128 cmp r0, #1
3077 0020 32D0 beq .L222
1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3078 .loc 1 1701 5 discriminator 2 view .LVU1021
3079 0022 0120 movs r0, #1
3080 0024 84F84000 strb r0, [r4, #64]
1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3081 .loc 1 1701 5 discriminator 2 view .LVU1022
1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3082 .loc 1 1703 5 discriminator 2 view .LVU1023
1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3083 .loc 1 1703 23 is_stmt 0 discriminator 2 view .LVU1024
3084 0028 2220 movs r0, #34
3085 002a 84F84100 strb r0, [r4, #65]
1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3086 .loc 1 1704 5 is_stmt 1 discriminator 2 view .LVU1025
1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3087 .loc 1 1704 23 is_stmt 0 discriminator 2 view .LVU1026
3088 002e 1020 movs r0, #16
3089 0030 84F84200 strb r0, [r4, #66]
1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3090 .loc 1 1705 5 is_stmt 1 discriminator 2 view .LVU1027
1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3091 .loc 1 1705 23 is_stmt 0 discriminator 2 view .LVU1028
3092 0034 0020 movs r0, #0
3093 0036 6064 str r0, [r4, #68]
ARM GAS /tmp/cczJHHnF.s page 190
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3094 .loc 1 1708 5 is_stmt 1 discriminator 2 view .LVU1029
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3095 .loc 1 1708 23 is_stmt 0 discriminator 2 view .LVU1030
3096 0038 6262 str r2, [r4, #36]
1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3097 .loc 1 1709 5 is_stmt 1 discriminator 2 view .LVU1031
1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3098 .loc 1 1709 23 is_stmt 0 discriminator 2 view .LVU1032
3099 003a 6385 strh r3, [r4, #42] @ movhi
1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3100 .loc 1 1710 5 is_stmt 1 discriminator 2 view .LVU1033
1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3101 .loc 1 1710 23 is_stmt 0 discriminator 2 view .LVU1034
3102 003c 134B ldr r3, .L224
3103 .LVL178:
1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3104 .loc 1 1710 23 discriminator 2 view .LVU1035
3105 003e E362 str r3, [r4, #44]
3106 .LVL179:
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3107 .loc 1 1711 5 is_stmt 1 discriminator 2 view .LVU1036
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3108 .loc 1 1711 23 is_stmt 0 discriminator 2 view .LVU1037
3109 0040 134B ldr r3, .L224+4
3110 0042 6363 str r3, [r4, #52]
1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3111 .loc 1 1713 5 is_stmt 1 discriminator 2 view .LVU1038
1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3112 .loc 1 1713 13 is_stmt 0 discriminator 2 view .LVU1039
3113 0044 638D ldrh r3, [r4, #42]
3114 0046 9BB2 uxth r3, r3
1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3115 .loc 1 1713 8 discriminator 2 view .LVU1040
3116 0048 FF2B cmp r3, #255
3117 004a 14D9 bls .L218
1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3118 .loc 1 1715 7 is_stmt 1 view .LVU1041
1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3119 .loc 1 1715 22 is_stmt 0 view .LVU1042
3120 004c FF23 movs r3, #255
3121 004e 2385 strh r3, [r4, #40] @ movhi
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3122 .loc 1 1716 7 is_stmt 1 view .LVU1043
3123 .LVL180:
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3124 .loc 1 1716 16 is_stmt 0 view .LVU1044
3125 0050 4FF08073 mov r3, #16777216
3126 .LVL181:
3127 .L219:
1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3128 .loc 1 1726 5 is_stmt 1 view .LVU1045
3129 0054 0F4A ldr r2, .L224+8
3130 .LVL182:
1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3131 .loc 1 1726 5 is_stmt 0 view .LVU1046
3132 0056 0092 str r2, [sp]
ARM GAS /tmp/cczJHHnF.s page 191
3133 .LVL183:
1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3134 .loc 1 1726 5 view .LVU1047
3135 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
3136 005c 2046 mov r0, r4
3137 005e FFF7FEFF bl I2C_TransferConfig
3138 .LVL184:
1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3139 .loc 1 1729 5 is_stmt 1 view .LVU1048
1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3140 .loc 1 1729 5 view .LVU1049
3141 0062 0025 movs r5, #0
3142 0064 84F84050 strb r5, [r4, #64]
1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3143 .loc 1 1729 5 view .LVU1050
1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3144 .loc 1 1739 5 view .LVU1051
3145 0068 0221 movs r1, #2
3146 006a 2046 mov r0, r4
3147 006c FFF7FEFF bl I2C_Enable_IRQ
3148 .LVL185:
1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3149 .loc 1 1741 5 view .LVU1052
1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3150 .loc 1 1741 12 is_stmt 0 view .LVU1053
3151 0070 2846 mov r0, r5
3152 .LVL186:
3153 .L217:
1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3154 .loc 1 1747 1 view .LVU1054
3155 0072 03B0 add sp, sp, #12
3156 .cfi_remember_state
3157 .cfi_def_cfa_offset 12
3158 @ sp needed
3159 0074 30BD pop {r4, r5, pc}
3160 .LVL187:
3161 .L218:
3162 .cfi_restore_state
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3163 .loc 1 1720 7 is_stmt 1 view .LVU1055
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3164 .loc 1 1720 28 is_stmt 0 view .LVU1056
3165 0076 638D ldrh r3, [r4, #42]
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3166 .loc 1 1720 22 view .LVU1057
3167 0078 2385 strh r3, [r4, #40] @ movhi
1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3168 .loc 1 1721 7 is_stmt 1 view .LVU1058
3169 .LVL188:
1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3170 .loc 1 1721 16 is_stmt 0 view .LVU1059
3171 007a 4FF00073 mov r3, #33554432
3172 007e E9E7 b .L219
3173 .LVL189:
3174 .L220:
1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3175 .loc 1 1745 12 view .LVU1060
ARM GAS /tmp/cczJHHnF.s page 192
3176 0080 0220 movs r0, #2
3177 0082 F6E7 b .L217
3178 .L221:
1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3179 .loc 1 1697 14 view .LVU1061
3180 0084 0220 movs r0, #2
3181 0086 F4E7 b .L217
3182 .L222:
1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3183 .loc 1 1701 5 view .LVU1062
3184 0088 0220 movs r0, #2
3185 008a F2E7 b .L217
3186 .L225:
3187 .align 2
3188 .L224:
3189 008c 0000FFFF .word -65536
3190 0090 00000000 .word I2C_Master_ISR_IT
3191 0094 00240080 .word -2147474432
3192 .cfi_endproc
3193 .LFE139:
3195 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
3196 .align 1
3197 .global HAL_I2C_Slave_Transmit_IT
3198 .syntax unified
3199 .thumb
3200 .thumb_func
3202 HAL_I2C_Slave_Transmit_IT:
3203 .LVL190:
3204 .LFB140:
1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3205 .loc 1 1758 1 is_stmt 1 view -0
3206 .cfi_startproc
3207 @ args = 0, pretend = 0, frame = 0
3208 @ frame_needed = 0, uses_anonymous_args = 0
1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3209 .loc 1 1758 1 is_stmt 0 view .LVU1064
3210 0000 38B5 push {r3, r4, r5, lr}
3211 .cfi_def_cfa_offset 16
3212 .cfi_offset 3, -16
3213 .cfi_offset 4, -12
3214 .cfi_offset 5, -8
3215 .cfi_offset 14, -4
1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3216 .loc 1 1759 3 is_stmt 1 view .LVU1065
1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3217 .loc 1 1759 11 is_stmt 0 view .LVU1066
3218 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
3219 0006 DBB2 uxtb r3, r3
1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3220 .loc 1 1759 6 view .LVU1067
3221 0008 202B cmp r3, #32
3222 000a 23D1 bne .L228
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3223 .loc 1 1762 5 is_stmt 1 view .LVU1068
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3224 .loc 1 1762 5 view .LVU1069
3225 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
ARM GAS /tmp/cczJHHnF.s page 193
3226 0010 012B cmp r3, #1
3227 0012 21D0 beq .L229
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3228 .loc 1 1762 5 discriminator 2 view .LVU1070
3229 0014 0123 movs r3, #1
3230 0016 80F84030 strb r3, [r0, #64]
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3231 .loc 1 1762 5 discriminator 2 view .LVU1071
1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3232 .loc 1 1764 5 discriminator 2 view .LVU1072
1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3233 .loc 1 1764 23 is_stmt 0 discriminator 2 view .LVU1073
3234 001a 2123 movs r3, #33
3235 001c 80F84130 strb r3, [r0, #65]
1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3236 .loc 1 1765 5 is_stmt 1 discriminator 2 view .LVU1074
1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3237 .loc 1 1765 23 is_stmt 0 discriminator 2 view .LVU1075
3238 0020 2023 movs r3, #32
3239 0022 80F84230 strb r3, [r0, #66]
1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3240 .loc 1 1766 5 is_stmt 1 discriminator 2 view .LVU1076
1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3241 .loc 1 1766 23 is_stmt 0 discriminator 2 view .LVU1077
3242 0026 0024 movs r4, #0
3243 0028 4464 str r4, [r0, #68]
1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3244 .loc 1 1769 5 is_stmt 1 discriminator 2 view .LVU1078
1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3245 .loc 1 1769 9 is_stmt 0 discriminator 2 view .LVU1079
3246 002a 0568 ldr r5, [r0]
1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3247 .loc 1 1769 19 discriminator 2 view .LVU1080
3248 002c 6B68 ldr r3, [r5, #4]
1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3249 .loc 1 1769 25 discriminator 2 view .LVU1081
3250 002e 23F40043 bic r3, r3, #32768
3251 0032 6B60 str r3, [r5, #4]
1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3252 .loc 1 1772 5 is_stmt 1 discriminator 2 view .LVU1082
1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3253 .loc 1 1772 23 is_stmt 0 discriminator 2 view .LVU1083
3254 0034 4162 str r1, [r0, #36]
1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3255 .loc 1 1773 5 is_stmt 1 discriminator 2 view .LVU1084
1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3256 .loc 1 1773 23 is_stmt 0 discriminator 2 view .LVU1085
3257 0036 4285 strh r2, [r0, #42] @ movhi
1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3258 .loc 1 1774 5 is_stmt 1 discriminator 2 view .LVU1086
1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3259 .loc 1 1774 29 is_stmt 0 discriminator 2 view .LVU1087
3260 0038 438D ldrh r3, [r0, #42]
1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3261 .loc 1 1774 23 discriminator 2 view .LVU1088
3262 003a 0385 strh r3, [r0, #40] @ movhi
1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
ARM GAS /tmp/cczJHHnF.s page 194
3263 .loc 1 1775 5 is_stmt 1 discriminator 2 view .LVU1089
1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3264 .loc 1 1775 23 is_stmt 0 discriminator 2 view .LVU1090
3265 003c 074B ldr r3, .L231
3266 003e C362 str r3, [r0, #44]
1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3267 .loc 1 1776 5 is_stmt 1 discriminator 2 view .LVU1091
1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3268 .loc 1 1776 23 is_stmt 0 discriminator 2 view .LVU1092
3269 0040 074B ldr r3, .L231+4
3270 0042 4363 str r3, [r0, #52]
1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3271 .loc 1 1779 5 is_stmt 1 discriminator 2 view .LVU1093
1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3272 .loc 1 1779 5 discriminator 2 view .LVU1094
3273 0044 80F84040 strb r4, [r0, #64]
1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3274 .loc 1 1779 5 discriminator 2 view .LVU1095
1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3275 .loc 1 1789 5 discriminator 2 view .LVU1096
3276 0048 48F20101 movw r1, #32769
3277 .LVL191:
1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3278 .loc 1 1789 5 is_stmt 0 discriminator 2 view .LVU1097
3279 004c FFF7FEFF bl I2C_Enable_IRQ
3280 .LVL192:
1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3281 .loc 1 1791 5 is_stmt 1 discriminator 2 view .LVU1098
1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3282 .loc 1 1791 12 is_stmt 0 discriminator 2 view .LVU1099
3283 0050 2046 mov r0, r4
3284 .L227:
1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3285 .loc 1 1797 1 view .LVU1100
3286 0052 38BD pop {r3, r4, r5, pc}
3287 .LVL193:
3288 .L228:
1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3289 .loc 1 1795 12 view .LVU1101
3290 0054 0220 movs r0, #2
3291 .LVL194:
1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3292 .loc 1 1795 12 view .LVU1102
3293 0056 FCE7 b .L227
3294 .LVL195:
3295 .L229:
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3296 .loc 1 1762 5 view .LVU1103
3297 0058 0220 movs r0, #2
3298 .LVL196:
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3299 .loc 1 1762 5 view .LVU1104
3300 005a FAE7 b .L227
3301 .L232:
3302 .align 2
3303 .L231:
3304 005c 0000FFFF .word -65536
ARM GAS /tmp/cczJHHnF.s page 195
3305 0060 00000000 .word I2C_Slave_ISR_IT
3306 .cfi_endproc
3307 .LFE140:
3309 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
3310 .align 1
3311 .global HAL_I2C_Slave_Receive_IT
3312 .syntax unified
3313 .thumb
3314 .thumb_func
3316 HAL_I2C_Slave_Receive_IT:
3317 .LVL197:
3318 .LFB141:
1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3319 .loc 1 1808 1 is_stmt 1 view -0
3320 .cfi_startproc
3321 @ args = 0, pretend = 0, frame = 0
3322 @ frame_needed = 0, uses_anonymous_args = 0
1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3323 .loc 1 1808 1 is_stmt 0 view .LVU1106
3324 0000 38B5 push {r3, r4, r5, lr}
3325 .cfi_def_cfa_offset 16
3326 .cfi_offset 3, -16
3327 .cfi_offset 4, -12
3328 .cfi_offset 5, -8
3329 .cfi_offset 14, -4
1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3330 .loc 1 1809 3 is_stmt 1 view .LVU1107
1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3331 .loc 1 1809 11 is_stmt 0 view .LVU1108
3332 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
3333 0006 DBB2 uxtb r3, r3
1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3334 .loc 1 1809 6 view .LVU1109
3335 0008 202B cmp r3, #32
3336 000a 23D1 bne .L235
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3337 .loc 1 1812 5 is_stmt 1 view .LVU1110
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3338 .loc 1 1812 5 view .LVU1111
3339 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
3340 0010 012B cmp r3, #1
3341 0012 21D0 beq .L236
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3342 .loc 1 1812 5 discriminator 2 view .LVU1112
3343 0014 0123 movs r3, #1
3344 0016 80F84030 strb r3, [r0, #64]
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3345 .loc 1 1812 5 discriminator 2 view .LVU1113
1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3346 .loc 1 1814 5 discriminator 2 view .LVU1114
1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3347 .loc 1 1814 23 is_stmt 0 discriminator 2 view .LVU1115
3348 001a 2223 movs r3, #34
3349 001c 80F84130 strb r3, [r0, #65]
1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3350 .loc 1 1815 5 is_stmt 1 discriminator 2 view .LVU1116
1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
ARM GAS /tmp/cczJHHnF.s page 196
3351 .loc 1 1815 23 is_stmt 0 discriminator 2 view .LVU1117
3352 0020 2023 movs r3, #32
3353 0022 80F84230 strb r3, [r0, #66]
1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3354 .loc 1 1816 5 is_stmt 1 discriminator 2 view .LVU1118
1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3355 .loc 1 1816 23 is_stmt 0 discriminator 2 view .LVU1119
3356 0026 0024 movs r4, #0
3357 0028 4464 str r4, [r0, #68]
1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3358 .loc 1 1819 5 is_stmt 1 discriminator 2 view .LVU1120
1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3359 .loc 1 1819 9 is_stmt 0 discriminator 2 view .LVU1121
3360 002a 0568 ldr r5, [r0]
1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3361 .loc 1 1819 19 discriminator 2 view .LVU1122
3362 002c 6B68 ldr r3, [r5, #4]
1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3363 .loc 1 1819 25 discriminator 2 view .LVU1123
3364 002e 23F40043 bic r3, r3, #32768
3365 0032 6B60 str r3, [r5, #4]
1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3366 .loc 1 1822 5 is_stmt 1 discriminator 2 view .LVU1124
1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3367 .loc 1 1822 23 is_stmt 0 discriminator 2 view .LVU1125
3368 0034 4162 str r1, [r0, #36]
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3369 .loc 1 1823 5 is_stmt 1 discriminator 2 view .LVU1126
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3370 .loc 1 1823 23 is_stmt 0 discriminator 2 view .LVU1127
3371 0036 4285 strh r2, [r0, #42] @ movhi
1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3372 .loc 1 1824 5 is_stmt 1 discriminator 2 view .LVU1128
1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3373 .loc 1 1824 29 is_stmt 0 discriminator 2 view .LVU1129
3374 0038 438D ldrh r3, [r0, #42]
1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3375 .loc 1 1824 23 discriminator 2 view .LVU1130
3376 003a 0385 strh r3, [r0, #40] @ movhi
1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3377 .loc 1 1825 5 is_stmt 1 discriminator 2 view .LVU1131
1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3378 .loc 1 1825 23 is_stmt 0 discriminator 2 view .LVU1132
3379 003c 074B ldr r3, .L238
3380 003e C362 str r3, [r0, #44]
1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3381 .loc 1 1826 5 is_stmt 1 discriminator 2 view .LVU1133
1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3382 .loc 1 1826 23 is_stmt 0 discriminator 2 view .LVU1134
3383 0040 074B ldr r3, .L238+4
3384 0042 4363 str r3, [r0, #52]
1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3385 .loc 1 1829 5 is_stmt 1 discriminator 2 view .LVU1135
1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3386 .loc 1 1829 5 discriminator 2 view .LVU1136
3387 0044 80F84040 strb r4, [r0, #64]
1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 197
3388 .loc 1 1829 5 discriminator 2 view .LVU1137
1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3389 .loc 1 1839 5 discriminator 2 view .LVU1138
3390 0048 48F20201 movw r1, #32770
3391 .LVL198:
1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3392 .loc 1 1839 5 is_stmt 0 discriminator 2 view .LVU1139
3393 004c FFF7FEFF bl I2C_Enable_IRQ
3394 .LVL199:
1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3395 .loc 1 1841 5 is_stmt 1 discriminator 2 view .LVU1140
1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3396 .loc 1 1841 12 is_stmt 0 discriminator 2 view .LVU1141
3397 0050 2046 mov r0, r4
3398 .L234:
1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3399 .loc 1 1847 1 view .LVU1142
3400 0052 38BD pop {r3, r4, r5, pc}
3401 .LVL200:
3402 .L235:
1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3403 .loc 1 1845 12 view .LVU1143
3404 0054 0220 movs r0, #2
3405 .LVL201:
1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3406 .loc 1 1845 12 view .LVU1144
3407 0056 FCE7 b .L234
3408 .LVL202:
3409 .L236:
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3410 .loc 1 1812 5 view .LVU1145
3411 0058 0220 movs r0, #2
3412 .LVL203:
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3413 .loc 1 1812 5 view .LVU1146
3414 005a FAE7 b .L234
3415 .L239:
3416 .align 2
3417 .L238:
3418 005c 0000FFFF .word -65536
3419 0060 00000000 .word I2C_Slave_ISR_IT
3420 .cfi_endproc
3421 .LFE141:
3423 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
3424 .align 1
3425 .global HAL_I2C_Master_Transmit_DMA
3426 .syntax unified
3427 .thumb
3428 .thumb_func
3430 HAL_I2C_Master_Transmit_DMA:
3431 .LVL204:
3432 .LFB142:
1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3433 .loc 1 1861 1 is_stmt 1 view -0
3434 .cfi_startproc
3435 @ args = 0, pretend = 0, frame = 0
3436 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/cczJHHnF.s page 198
1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3437 .loc 1 1861 1 is_stmt 0 view .LVU1148
3438 0000 70B5 push {r4, r5, r6, lr}
3439 .cfi_def_cfa_offset 16
3440 .cfi_offset 4, -16
3441 .cfi_offset 5, -12
3442 .cfi_offset 6, -8
3443 .cfi_offset 14, -4
3444 0002 82B0 sub sp, sp, #8
3445 .cfi_def_cfa_offset 24
3446 0004 0446 mov r4, r0
1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3447 .loc 1 1862 3 is_stmt 1 view .LVU1149
1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3448 .loc 1 1863 3 view .LVU1150
1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3449 .loc 1 1865 3 view .LVU1151
1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3450 .loc 1 1865 11 is_stmt 0 view .LVU1152
3451 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3452 .LVL205:
1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3453 .loc 1 1865 11 view .LVU1153
3454 000a C0B2 uxtb r0, r0
1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3455 .loc 1 1865 6 view .LVU1154
3456 000c 2028 cmp r0, #32
3457 000e 40F08D80 bne .L249
3458 0012 0D46 mov r5, r1
3459 0014 1146 mov r1, r2
3460 .LVL206:
1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3461 .loc 1 1867 5 is_stmt 1 view .LVU1155
1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3462 .loc 1 1867 9 is_stmt 0 view .LVU1156
3463 0016 2268 ldr r2, [r4]
3464 .LVL207:
1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3465 .loc 1 1867 9 view .LVU1157
3466 0018 9269 ldr r2, [r2, #24]
1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3467 .loc 1 1867 8 view .LVU1158
3468 001a 12F4004F tst r2, #32768
3469 001e 40F08880 bne .L250
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3470 .loc 1 1873 5 is_stmt 1 view .LVU1159
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3471 .loc 1 1873 5 view .LVU1160
3472 0022 94F84020 ldrb r2, [r4, #64] @ zero_extendqisi2
3473 0026 012A cmp r2, #1
3474 0028 00F08580 beq .L251
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3475 .loc 1 1873 5 discriminator 2 view .LVU1161
3476 002c 0122 movs r2, #1
3477 002e 84F84020 strb r2, [r4, #64]
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3478 .loc 1 1873 5 discriminator 2 view .LVU1162
ARM GAS /tmp/cczJHHnF.s page 199
1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3479 .loc 1 1875 5 discriminator 2 view .LVU1163
1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3480 .loc 1 1875 23 is_stmt 0 discriminator 2 view .LVU1164
3481 0032 2122 movs r2, #33
3482 0034 84F84120 strb r2, [r4, #65]
1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3483 .loc 1 1876 5 is_stmt 1 discriminator 2 view .LVU1165
1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3484 .loc 1 1876 23 is_stmt 0 discriminator 2 view .LVU1166
3485 0038 1022 movs r2, #16
3486 003a 84F84220 strb r2, [r4, #66]
1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3487 .loc 1 1877 5 is_stmt 1 discriminator 2 view .LVU1167
1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3488 .loc 1 1877 23 is_stmt 0 discriminator 2 view .LVU1168
3489 003e 0022 movs r2, #0
3490 0040 6264 str r2, [r4, #68]
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3491 .loc 1 1880 5 is_stmt 1 discriminator 2 view .LVU1169
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3492 .loc 1 1880 23 is_stmt 0 discriminator 2 view .LVU1170
3493 0042 6162 str r1, [r4, #36]
1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3494 .loc 1 1881 5 is_stmt 1 discriminator 2 view .LVU1171
1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3495 .loc 1 1881 23 is_stmt 0 discriminator 2 view .LVU1172
3496 0044 6385 strh r3, [r4, #42] @ movhi
1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3497 .loc 1 1882 5 is_stmt 1 discriminator 2 view .LVU1173
1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3498 .loc 1 1882 23 is_stmt 0 discriminator 2 view .LVU1174
3499 0046 3D4B ldr r3, .L255
3500 .LVL208:
1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3501 .loc 1 1882 23 discriminator 2 view .LVU1175
3502 0048 E362 str r3, [r4, #44]
3503 .LVL209:
1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3504 .loc 1 1883 5 is_stmt 1 discriminator 2 view .LVU1176
1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3505 .loc 1 1883 23 is_stmt 0 discriminator 2 view .LVU1177
3506 004a 3D4B ldr r3, .L255+4
3507 004c 6363 str r3, [r4, #52]
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3508 .loc 1 1885 5 is_stmt 1 discriminator 2 view .LVU1178
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3509 .loc 1 1885 13 is_stmt 0 discriminator 2 view .LVU1179
3510 004e 638D ldrh r3, [r4, #42]
3511 0050 9BB2 uxth r3, r3
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3512 .loc 1 1885 8 discriminator 2 view .LVU1180
3513 0052 FF2B cmp r3, #255
3514 0054 27D9 bls .L242
1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3515 .loc 1 1887 7 is_stmt 1 view .LVU1181
1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
ARM GAS /tmp/cczJHHnF.s page 200
3516 .loc 1 1887 22 is_stmt 0 view .LVU1182
3517 0056 FF23 movs r3, #255
3518 0058 2385 strh r3, [r4, #40] @ movhi
1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3519 .loc 1 1888 7 is_stmt 1 view .LVU1183
3520 .LVL210:
1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3521 .loc 1 1888 16 is_stmt 0 view .LVU1184
3522 005a 4FF08076 mov r6, #16777216
3523 .LVL211:
3524 .L243:
1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3525 .loc 1 1896 5 is_stmt 1 view .LVU1185
1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3526 .loc 1 1896 13 is_stmt 0 view .LVU1186
3527 005e 228D ldrh r2, [r4, #40]
1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3528 .loc 1 1896 8 view .LVU1187
3529 0060 002A cmp r2, #0
3530 0062 4FD0 beq .L244
1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3531 .loc 1 1898 7 is_stmt 1 view .LVU1188
1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3532 .loc 1 1898 15 is_stmt 0 view .LVU1189
3533 0064 A36B ldr r3, [r4, #56]
1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3534 .loc 1 1898 10 view .LVU1190
3535 0066 1BB3 cbz r3, .L245
1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3536 .loc 1 1901 9 is_stmt 1 view .LVU1191
1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3537 .loc 1 1901 40 is_stmt 0 view .LVU1192
3538 0068 364A ldr r2, .L255+8
3539 006a 9A62 str r2, [r3, #40]
1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3540 .loc 1 1904 9 is_stmt 1 view .LVU1193
1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3541 .loc 1 1904 13 is_stmt 0 view .LVU1194
3542 006c A36B ldr r3, [r4, #56]
1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3543 .loc 1 1904 41 view .LVU1195
3544 006e 364A ldr r2, .L255+12
3545 0070 1A63 str r2, [r3, #48]
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3546 .loc 1 1907 9 is_stmt 1 view .LVU1196
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3547 .loc 1 1907 13 is_stmt 0 view .LVU1197
3548 0072 A26B ldr r2, [r4, #56]
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3549 .loc 1 1907 44 view .LVU1198
3550 0074 0023 movs r3, #0
3551 0076 D362 str r3, [r2, #44]
1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3552 .loc 1 1908 9 is_stmt 1 view .LVU1199
1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3553 .loc 1 1908 13 is_stmt 0 view .LVU1200
3554 0078 A26B ldr r2, [r4, #56]
ARM GAS /tmp/cczJHHnF.s page 201
1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3555 .loc 1 1908 41 view .LVU1201
3556 007a 5363 str r3, [r2, #52]
1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3557 .loc 1 1911 9 is_stmt 1 view .LVU1202
1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3558 .loc 1 1911 88 is_stmt 0 view .LVU1203
3559 007c 2268 ldr r2, [r4]
1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3560 .loc 1 1911 25 view .LVU1204
3561 007e 238D ldrh r3, [r4, #40]
3562 0080 2832 adds r2, r2, #40
3563 0082 A06B ldr r0, [r4, #56]
3564 0084 FFF7FEFF bl HAL_DMA_Start_IT
3565 .LVL212:
1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3566 .loc 1 1929 7 is_stmt 1 view .LVU1205
1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3567 .loc 1 1929 10 is_stmt 0 view .LVU1206
3568 0088 00B3 cbz r0, .L254
1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3569 .loc 1 1953 9 is_stmt 1 view .LVU1207
1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3570 .loc 1 1953 25 is_stmt 0 view .LVU1208
3571 008a 2023 movs r3, #32
3572 008c 84F84130 strb r3, [r4, #65]
1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3573 .loc 1 1954 9 is_stmt 1 view .LVU1209
1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3574 .loc 1 1954 25 is_stmt 0 view .LVU1210
3575 0090 0022 movs r2, #0
3576 0092 84F84220 strb r2, [r4, #66]
1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3577 .loc 1 1957 9 is_stmt 1 view .LVU1211
1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3578 .loc 1 1957 13 is_stmt 0 view .LVU1212
3579 0096 636C ldr r3, [r4, #68]
1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3580 .loc 1 1957 25 view .LVU1213
3581 0098 43F01003 orr r3, r3, #16
3582 009c 6364 str r3, [r4, #68]
1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3583 .loc 1 1960 9 is_stmt 1 view .LVU1214
1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3584 .loc 1 1960 9 view .LVU1215
3585 009e 84F84020 strb r2, [r4, #64]
1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3586 .loc 1 1960 9 view .LVU1216
1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3587 .loc 1 1962 9 view .LVU1217
1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3588 .loc 1 1962 16 is_stmt 0 view .LVU1218
3589 00a2 0120 movs r0, #1
3590 .LVL213:
1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3591 .loc 1 1962 16 view .LVU1219
3592 00a4 43E0 b .L241
ARM GAS /tmp/cczJHHnF.s page 202
3593 .LVL214:
3594 .L242:
1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3595 .loc 1 1892 7 is_stmt 1 view .LVU1220
1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3596 .loc 1 1892 28 is_stmt 0 view .LVU1221
3597 00a6 638D ldrh r3, [r4, #42]
1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3598 .loc 1 1892 22 view .LVU1222
3599 00a8 2385 strh r3, [r4, #40] @ movhi
1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3600 .loc 1 1893 7 is_stmt 1 view .LVU1223
3601 .LVL215:
1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3602 .loc 1 1893 16 is_stmt 0 view .LVU1224
3603 00aa 4FF00076 mov r6, #33554432
3604 00ae D6E7 b .L243
3605 .LVL216:
3606 .L245:
1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3607 .loc 1 1917 9 is_stmt 1 view .LVU1225
1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3608 .loc 1 1917 25 is_stmt 0 view .LVU1226
3609 00b0 2023 movs r3, #32
3610 00b2 84F84130 strb r3, [r4, #65]
1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3611 .loc 1 1918 9 is_stmt 1 view .LVU1227
1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3612 .loc 1 1918 25 is_stmt 0 view .LVU1228
3613 00b6 0022 movs r2, #0
3614 00b8 84F84220 strb r2, [r4, #66]
1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3615 .loc 1 1921 9 is_stmt 1 view .LVU1229
1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3616 .loc 1 1921 13 is_stmt 0 view .LVU1230
3617 00bc 636C ldr r3, [r4, #68]
1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3618 .loc 1 1921 25 view .LVU1231
3619 00be 43F08003 orr r3, r3, #128
3620 00c2 6364 str r3, [r4, #68]
1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3621 .loc 1 1924 9 is_stmt 1 view .LVU1232
1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3622 .loc 1 1924 9 view .LVU1233
3623 00c4 84F84020 strb r2, [r4, #64]
1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3624 .loc 1 1924 9 view .LVU1234
1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3625 .loc 1 1926 9 view .LVU1235
1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3626 .loc 1 1926 16 is_stmt 0 view .LVU1236
3627 00c8 0120 movs r0, #1
3628 00ca 30E0 b .L241
3629 .LVL217:
3630 .L254:
1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3631 .loc 1 1933 9 is_stmt 1 view .LVU1237
ARM GAS /tmp/cczJHHnF.s page 203
3632 00cc 1F4B ldr r3, .L255+16
3633 00ce 0093 str r3, [sp]
3634 00d0 3346 mov r3, r6
3635 00d2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
3636 00d6 2946 mov r1, r5
3637 00d8 2046 mov r0, r4
3638 .LVL218:
1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3639 .loc 1 1933 9 is_stmt 0 view .LVU1238
3640 00da FFF7FEFF bl I2C_TransferConfig
3641 .LVL219:
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3642 .loc 1 1936 9 is_stmt 1 view .LVU1239
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3643 .loc 1 1936 13 is_stmt 0 view .LVU1240
3644 00de 638D ldrh r3, [r4, #42]
3645 00e0 9BB2 uxth r3, r3
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3646 .loc 1 1936 32 view .LVU1241
3647 00e2 228D ldrh r2, [r4, #40]
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3648 .loc 1 1936 25 view .LVU1242
3649 00e4 9B1A subs r3, r3, r2
3650 00e6 9BB2 uxth r3, r3
3651 00e8 6385 strh r3, [r4, #42] @ movhi
1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3652 .loc 1 1939 9 is_stmt 1 view .LVU1243
1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3653 .loc 1 1939 9 view .LVU1244
3654 00ea 0023 movs r3, #0
3655 00ec 84F84030 strb r3, [r4, #64]
1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3656 .loc 1 1939 9 view .LVU1245
1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3657 .loc 1 1945 9 view .LVU1246
3658 00f0 1021 movs r1, #16
3659 00f2 2046 mov r0, r4
3660 00f4 FFF7FEFF bl I2C_Enable_IRQ
3661 .LVL220:
1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3662 .loc 1 1948 9 view .LVU1247
1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3663 .loc 1 1948 13 is_stmt 0 view .LVU1248
3664 00f8 2268 ldr r2, [r4]
1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3665 .loc 1 1948 23 view .LVU1249
3666 00fa 1368 ldr r3, [r2]
1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3667 .loc 1 1948 29 view .LVU1250
3668 00fc 43F48043 orr r3, r3, #16384
3669 0100 1360 str r3, [r2]
3670 0102 11E0 b .L248
3671 .LVL221:
3672 .L244:
1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3673 .loc 1 1968 7 is_stmt 1 view .LVU1251
1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 204
3674 .loc 1 1968 21 is_stmt 0 view .LVU1252
3675 0104 124B ldr r3, .L255+20
3676 0106 6363 str r3, [r4, #52]
1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3677 .loc 1 1972 7 is_stmt 1 view .LVU1253
3678 0108 104B ldr r3, .L255+16
3679 010a 0093 str r3, [sp]
3680 010c 4FF00073 mov r3, #33554432
3681 0110 D2B2 uxtb r2, r2
3682 0112 2946 mov r1, r5
3683 .LVL222:
1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3684 .loc 1 1972 7 is_stmt 0 view .LVU1254
3685 0114 2046 mov r0, r4
3686 0116 FFF7FEFF bl I2C_TransferConfig
3687 .LVL223:
1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3688 .loc 1 1976 7 is_stmt 1 view .LVU1255
1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3689 .loc 1 1976 7 view .LVU1256
3690 011a 0023 movs r3, #0
3691 011c 84F84030 strb r3, [r4, #64]
1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3692 .loc 1 1976 7 view .LVU1257
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3693 .loc 1 1985 7 view .LVU1258
3694 0120 0121 movs r1, #1
3695 0122 2046 mov r0, r4
3696 0124 FFF7FEFF bl I2C_Enable_IRQ
3697 .LVL224:
3698 .L248:
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3699 .loc 1 1988 5 view .LVU1259
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3700 .loc 1 1988 12 is_stmt 0 view .LVU1260
3701 0128 0020 movs r0, #0
3702 012a 00E0 b .L241
3703 .LVL225:
3704 .L249:
1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3705 .loc 1 1992 12 view .LVU1261
3706 012c 0220 movs r0, #2
3707 .LVL226:
3708 .L241:
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3709 .loc 1 1994 1 view .LVU1262
3710 012e 02B0 add sp, sp, #8
3711 .cfi_remember_state
3712 .cfi_def_cfa_offset 16
3713 @ sp needed
3714 0130 70BD pop {r4, r5, r6, pc}
3715 .LVL227:
3716 .L250:
3717 .cfi_restore_state
1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3718 .loc 1 1869 14 view .LVU1263
3719 0132 0220 movs r0, #2
ARM GAS /tmp/cczJHHnF.s page 205
3720 0134 FBE7 b .L241
3721 .L251:
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3722 .loc 1 1873 5 view .LVU1264
3723 0136 0220 movs r0, #2
3724 0138 F9E7 b .L241
3725 .L256:
3726 013a 00BF .align 2
3727 .L255:
3728 013c 0000FFFF .word -65536
3729 0140 00000000 .word I2C_Master_ISR_DMA
3730 0144 00000000 .word I2C_DMAMasterTransmitCplt
3731 0148 00000000 .word I2C_DMAError
3732 014c 00200080 .word -2147475456
3733 0150 00000000 .word I2C_Master_ISR_IT
3734 .cfi_endproc
3735 .LFE142:
3737 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
3738 .align 1
3739 .global HAL_I2C_Master_Receive_DMA
3740 .syntax unified
3741 .thumb
3742 .thumb_func
3744 HAL_I2C_Master_Receive_DMA:
3745 .LVL228:
3746 .LFB143:
2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3747 .loc 1 2008 1 is_stmt 1 view -0
3748 .cfi_startproc
3749 @ args = 0, pretend = 0, frame = 0
3750 @ frame_needed = 0, uses_anonymous_args = 0
2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3751 .loc 1 2008 1 is_stmt 0 view .LVU1266
3752 0000 70B5 push {r4, r5, r6, lr}
3753 .cfi_def_cfa_offset 16
3754 .cfi_offset 4, -16
3755 .cfi_offset 5, -12
3756 .cfi_offset 6, -8
3757 .cfi_offset 14, -4
3758 0002 82B0 sub sp, sp, #8
3759 .cfi_def_cfa_offset 24
3760 0004 0446 mov r4, r0
2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3761 .loc 1 2009 3 is_stmt 1 view .LVU1267
2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3762 .loc 1 2010 3 view .LVU1268
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3763 .loc 1 2012 3 view .LVU1269
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3764 .loc 1 2012 11 is_stmt 0 view .LVU1270
3765 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3766 .LVL229:
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3767 .loc 1 2012 11 view .LVU1271
3768 000a C0B2 uxtb r0, r0
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3769 .loc 1 2012 6 view .LVU1272
ARM GAS /tmp/cczJHHnF.s page 206
3770 000c 2028 cmp r0, #32
3771 000e 40F08C80 bne .L266
3772 0012 0D46 mov r5, r1
2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3773 .loc 1 2014 5 is_stmt 1 view .LVU1273
2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3774 .loc 1 2014 9 is_stmt 0 view .LVU1274
3775 0014 2168 ldr r1, [r4]
3776 .LVL230:
2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3777 .loc 1 2014 9 view .LVU1275
3778 0016 8969 ldr r1, [r1, #24]
2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3779 .loc 1 2014 8 view .LVU1276
3780 0018 11F4004F tst r1, #32768
3781 001c 40F08880 bne .L267
2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3782 .loc 1 2020 5 is_stmt 1 view .LVU1277
2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3783 .loc 1 2020 5 view .LVU1278
3784 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
3785 0024 0129 cmp r1, #1
3786 0026 00F08580 beq .L268
2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3787 .loc 1 2020 5 discriminator 2 view .LVU1279
3788 002a 0121 movs r1, #1
3789 002c 84F84010 strb r1, [r4, #64]
2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3790 .loc 1 2020 5 discriminator 2 view .LVU1280
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3791 .loc 1 2022 5 discriminator 2 view .LVU1281
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3792 .loc 1 2022 23 is_stmt 0 discriminator 2 view .LVU1282
3793 0030 2221 movs r1, #34
3794 0032 84F84110 strb r1, [r4, #65]
2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3795 .loc 1 2023 5 is_stmt 1 discriminator 2 view .LVU1283
2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3796 .loc 1 2023 23 is_stmt 0 discriminator 2 view .LVU1284
3797 0036 1021 movs r1, #16
3798 0038 84F84210 strb r1, [r4, #66]
2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3799 .loc 1 2024 5 is_stmt 1 discriminator 2 view .LVU1285
2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3800 .loc 1 2024 23 is_stmt 0 discriminator 2 view .LVU1286
3801 003c 0021 movs r1, #0
3802 003e 6164 str r1, [r4, #68]
2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3803 .loc 1 2027 5 is_stmt 1 discriminator 2 view .LVU1287
2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3804 .loc 1 2027 23 is_stmt 0 discriminator 2 view .LVU1288
3805 0040 6262 str r2, [r4, #36]
2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3806 .loc 1 2028 5 is_stmt 1 discriminator 2 view .LVU1289
2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3807 .loc 1 2028 23 is_stmt 0 discriminator 2 view .LVU1290
3808 0042 6385 strh r3, [r4, #42] @ movhi
ARM GAS /tmp/cczJHHnF.s page 207
2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3809 .loc 1 2029 5 is_stmt 1 discriminator 2 view .LVU1291
2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3810 .loc 1 2029 23 is_stmt 0 discriminator 2 view .LVU1292
3811 0044 3C4B ldr r3, .L272
3812 .LVL231:
2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3813 .loc 1 2029 23 discriminator 2 view .LVU1293
3814 0046 E362 str r3, [r4, #44]
3815 .LVL232:
2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3816 .loc 1 2030 5 is_stmt 1 discriminator 2 view .LVU1294
2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3817 .loc 1 2030 23 is_stmt 0 discriminator 2 view .LVU1295
3818 0048 3C4B ldr r3, .L272+4
3819 004a 6363 str r3, [r4, #52]
2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3820 .loc 1 2032 5 is_stmt 1 discriminator 2 view .LVU1296
2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3821 .loc 1 2032 13 is_stmt 0 discriminator 2 view .LVU1297
3822 004c 638D ldrh r3, [r4, #42]
3823 004e 9BB2 uxth r3, r3
2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3824 .loc 1 2032 8 discriminator 2 view .LVU1298
3825 0050 FF2B cmp r3, #255
3826 0052 27D9 bls .L259
2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3827 .loc 1 2034 7 is_stmt 1 view .LVU1299
2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3828 .loc 1 2034 22 is_stmt 0 view .LVU1300
3829 0054 FF23 movs r3, #255
3830 0056 2385 strh r3, [r4, #40] @ movhi
2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3831 .loc 1 2035 7 is_stmt 1 view .LVU1301
3832 .LVL233:
2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3833 .loc 1 2035 16 is_stmt 0 view .LVU1302
3834 0058 4FF08076 mov r6, #16777216
3835 .LVL234:
3836 .L260:
2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3837 .loc 1 2043 5 is_stmt 1 view .LVU1303
2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3838 .loc 1 2043 13 is_stmt 0 view .LVU1304
3839 005c 218D ldrh r1, [r4, #40]
2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3840 .loc 1 2043 8 view .LVU1305
3841 005e 0029 cmp r1, #0
3842 0060 4FD0 beq .L261
2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3843 .loc 1 2045 7 is_stmt 1 view .LVU1306
2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3844 .loc 1 2045 15 is_stmt 0 view .LVU1307
3845 0062 E36B ldr r3, [r4, #60]
2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3846 .loc 1 2045 10 view .LVU1308
3847 0064 1BB3 cbz r3, .L262
ARM GAS /tmp/cczJHHnF.s page 208
2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3848 .loc 1 2048 9 is_stmt 1 view .LVU1309
2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3849 .loc 1 2048 40 is_stmt 0 view .LVU1310
3850 0066 3649 ldr r1, .L272+8
3851 0068 9962 str r1, [r3, #40]
2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3852 .loc 1 2051 9 is_stmt 1 view .LVU1311
2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3853 .loc 1 2051 13 is_stmt 0 view .LVU1312
3854 006a E36B ldr r3, [r4, #60]
2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3855 .loc 1 2051 41 view .LVU1313
3856 006c 3549 ldr r1, .L272+12
3857 006e 1963 str r1, [r3, #48]
2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3858 .loc 1 2054 9 is_stmt 1 view .LVU1314
2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3859 .loc 1 2054 13 is_stmt 0 view .LVU1315
3860 0070 E16B ldr r1, [r4, #60]
2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3861 .loc 1 2054 44 view .LVU1316
3862 0072 0023 movs r3, #0
3863 0074 CB62 str r3, [r1, #44]
2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3864 .loc 1 2055 9 is_stmt 1 view .LVU1317
2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3865 .loc 1 2055 13 is_stmt 0 view .LVU1318
3866 0076 E16B ldr r1, [r4, #60]
2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3867 .loc 1 2055 41 view .LVU1319
3868 0078 4B63 str r3, [r1, #52]
2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3869 .loc 1 2058 9 is_stmt 1 view .LVU1320
2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3870 .loc 1 2058 71 is_stmt 0 view .LVU1321
3871 007a 2168 ldr r1, [r4]
2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3872 .loc 1 2058 25 view .LVU1322
3873 007c 238D ldrh r3, [r4, #40]
3874 007e 2431 adds r1, r1, #36
3875 0080 E06B ldr r0, [r4, #60]
3876 0082 FFF7FEFF bl HAL_DMA_Start_IT
3877 .LVL235:
2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3878 .loc 1 2076 7 is_stmt 1 view .LVU1323
2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3879 .loc 1 2076 10 is_stmt 0 view .LVU1324
3880 0086 00B3 cbz r0, .L271
2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3881 .loc 1 2100 9 is_stmt 1 view .LVU1325
2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3882 .loc 1 2100 25 is_stmt 0 view .LVU1326
3883 0088 2023 movs r3, #32
3884 008a 84F84130 strb r3, [r4, #65]
2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3885 .loc 1 2101 9 is_stmt 1 view .LVU1327
ARM GAS /tmp/cczJHHnF.s page 209
2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3886 .loc 1 2101 25 is_stmt 0 view .LVU1328
3887 008e 0022 movs r2, #0
3888 0090 84F84220 strb r2, [r4, #66]
2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3889 .loc 1 2104 9 is_stmt 1 view .LVU1329
2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3890 .loc 1 2104 13 is_stmt 0 view .LVU1330
3891 0094 636C ldr r3, [r4, #68]
2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3892 .loc 1 2104 25 view .LVU1331
3893 0096 43F01003 orr r3, r3, #16
3894 009a 6364 str r3, [r4, #68]
2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3895 .loc 1 2107 9 is_stmt 1 view .LVU1332
2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3896 .loc 1 2107 9 view .LVU1333
3897 009c 84F84020 strb r2, [r4, #64]
2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3898 .loc 1 2107 9 view .LVU1334
2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3899 .loc 1 2109 9 view .LVU1335
2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3900 .loc 1 2109 16 is_stmt 0 view .LVU1336
3901 00a0 0120 movs r0, #1
3902 .LVL236:
2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3903 .loc 1 2109 16 view .LVU1337
3904 00a2 43E0 b .L258
3905 .LVL237:
3906 .L259:
2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3907 .loc 1 2039 7 is_stmt 1 view .LVU1338
2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3908 .loc 1 2039 28 is_stmt 0 view .LVU1339
3909 00a4 638D ldrh r3, [r4, #42]
2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3910 .loc 1 2039 22 view .LVU1340
3911 00a6 2385 strh r3, [r4, #40] @ movhi
2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3912 .loc 1 2040 7 is_stmt 1 view .LVU1341
3913 .LVL238:
2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3914 .loc 1 2040 16 is_stmt 0 view .LVU1342
3915 00a8 4FF00076 mov r6, #33554432
3916 00ac D6E7 b .L260
3917 .LVL239:
3918 .L262:
2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3919 .loc 1 2064 9 is_stmt 1 view .LVU1343
2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3920 .loc 1 2064 25 is_stmt 0 view .LVU1344
3921 00ae 2023 movs r3, #32
3922 00b0 84F84130 strb r3, [r4, #65]
2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3923 .loc 1 2065 9 is_stmt 1 view .LVU1345
2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 210
3924 .loc 1 2065 25 is_stmt 0 view .LVU1346
3925 00b4 0022 movs r2, #0
3926 .LVL240:
2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3927 .loc 1 2065 25 view .LVU1347
3928 00b6 84F84220 strb r2, [r4, #66]
2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3929 .loc 1 2068 9 is_stmt 1 view .LVU1348
2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3930 .loc 1 2068 13 is_stmt 0 view .LVU1349
3931 00ba 636C ldr r3, [r4, #68]
2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3932 .loc 1 2068 25 view .LVU1350
3933 00bc 43F08003 orr r3, r3, #128
3934 00c0 6364 str r3, [r4, #68]
2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3935 .loc 1 2071 9 is_stmt 1 view .LVU1351
2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3936 .loc 1 2071 9 view .LVU1352
3937 00c2 84F84020 strb r2, [r4, #64]
2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3938 .loc 1 2071 9 view .LVU1353
2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3939 .loc 1 2073 9 view .LVU1354
2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3940 .loc 1 2073 16 is_stmt 0 view .LVU1355
3941 00c6 0120 movs r0, #1
3942 00c8 30E0 b .L258
3943 .LVL241:
3944 .L271:
2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3945 .loc 1 2080 9 is_stmt 1 view .LVU1356
3946 00ca 1F4B ldr r3, .L272+16
3947 00cc 0093 str r3, [sp]
3948 00ce 3346 mov r3, r6
3949 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
3950 00d4 2946 mov r1, r5
3951 00d6 2046 mov r0, r4
3952 .LVL242:
2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3953 .loc 1 2080 9 is_stmt 0 view .LVU1357
3954 00d8 FFF7FEFF bl I2C_TransferConfig
3955 .LVL243:
2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3956 .loc 1 2083 9 is_stmt 1 view .LVU1358
2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3957 .loc 1 2083 13 is_stmt 0 view .LVU1359
3958 00dc 638D ldrh r3, [r4, #42]
3959 00de 9BB2 uxth r3, r3
2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3960 .loc 1 2083 32 view .LVU1360
3961 00e0 228D ldrh r2, [r4, #40]
2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3962 .loc 1 2083 25 view .LVU1361
3963 00e2 9B1A subs r3, r3, r2
3964 00e4 9BB2 uxth r3, r3
3965 00e6 6385 strh r3, [r4, #42] @ movhi
ARM GAS /tmp/cczJHHnF.s page 211
2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3966 .loc 1 2086 9 is_stmt 1 view .LVU1362
2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3967 .loc 1 2086 9 view .LVU1363
3968 00e8 0023 movs r3, #0
3969 00ea 84F84030 strb r3, [r4, #64]
2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3970 .loc 1 2086 9 view .LVU1364
2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3971 .loc 1 2092 9 view .LVU1365
3972 00ee 1021 movs r1, #16
3973 00f0 2046 mov r0, r4
3974 00f2 FFF7FEFF bl I2C_Enable_IRQ
3975 .LVL244:
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3976 .loc 1 2095 9 view .LVU1366
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3977 .loc 1 2095 13 is_stmt 0 view .LVU1367
3978 00f6 2268 ldr r2, [r4]
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3979 .loc 1 2095 23 view .LVU1368
3980 00f8 1368 ldr r3, [r2]
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3981 .loc 1 2095 29 view .LVU1369
3982 00fa 43F40043 orr r3, r3, #32768
3983 00fe 1360 str r3, [r2]
3984 0100 11E0 b .L265
3985 .LVL245:
3986 .L261:
2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3987 .loc 1 2115 7 is_stmt 1 view .LVU1370
2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3988 .loc 1 2115 21 is_stmt 0 view .LVU1371
3989 0102 124B ldr r3, .L272+20
3990 0104 6363 str r3, [r4, #52]
2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
3991 .loc 1 2119 7 is_stmt 1 view .LVU1372
3992 0106 104B ldr r3, .L272+16
3993 0108 0093 str r3, [sp]
3994 010a 4FF00073 mov r3, #33554432
3995 010e CAB2 uxtb r2, r1
3996 .LVL246:
2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
3997 .loc 1 2119 7 is_stmt 0 view .LVU1373
3998 0110 2946 mov r1, r5
3999 0112 2046 mov r0, r4
4000 0114 FFF7FEFF bl I2C_TransferConfig
4001 .LVL247:
2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4002 .loc 1 2123 7 is_stmt 1 view .LVU1374
2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4003 .loc 1 2123 7 view .LVU1375
4004 0118 0023 movs r3, #0
4005 011a 84F84030 strb r3, [r4, #64]
2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4006 .loc 1 2123 7 view .LVU1376
2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 212
4007 .loc 1 2132 7 view .LVU1377
4008 011e 0121 movs r1, #1
4009 0120 2046 mov r0, r4
4010 0122 FFF7FEFF bl I2C_Enable_IRQ
4011 .LVL248:
4012 .L265:
2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4013 .loc 1 2135 5 view .LVU1378
2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4014 .loc 1 2135 12 is_stmt 0 view .LVU1379
4015 0126 0020 movs r0, #0
4016 0128 00E0 b .L258
4017 .LVL249:
4018 .L266:
2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4019 .loc 1 2139 12 view .LVU1380
4020 012a 0220 movs r0, #2
4021 .LVL250:
4022 .L258:
2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4023 .loc 1 2141 1 view .LVU1381
4024 012c 02B0 add sp, sp, #8
4025 .cfi_remember_state
4026 .cfi_def_cfa_offset 16
4027 @ sp needed
4028 012e 70BD pop {r4, r5, r6, pc}
4029 .LVL251:
4030 .L267:
4031 .cfi_restore_state
2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4032 .loc 1 2016 14 view .LVU1382
4033 0130 0220 movs r0, #2
4034 0132 FBE7 b .L258
4035 .L268:
2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4036 .loc 1 2020 5 view .LVU1383
4037 0134 0220 movs r0, #2
4038 0136 F9E7 b .L258
4039 .L273:
4040 .align 2
4041 .L272:
4042 0138 0000FFFF .word -65536
4043 013c 00000000 .word I2C_Master_ISR_DMA
4044 0140 00000000 .word I2C_DMAMasterReceiveCplt
4045 0144 00000000 .word I2C_DMAError
4046 0148 00240080 .word -2147474432
4047 014c 00000000 .word I2C_Master_ISR_IT
4048 .cfi_endproc
4049 .LFE143:
4051 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
4052 .align 1
4053 .global HAL_I2C_Slave_Transmit_DMA
4054 .syntax unified
4055 .thumb
4056 .thumb_func
4058 HAL_I2C_Slave_Transmit_DMA:
4059 .LVL252:
ARM GAS /tmp/cczJHHnF.s page 213
4060 .LFB144:
2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4061 .loc 1 2152 1 is_stmt 1 view -0
4062 .cfi_startproc
4063 @ args = 0, pretend = 0, frame = 0
4064 @ frame_needed = 0, uses_anonymous_args = 0
2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4065 .loc 1 2152 1 is_stmt 0 view .LVU1385
4066 0000 38B5 push {r3, r4, r5, lr}
4067 .cfi_def_cfa_offset 16
4068 .cfi_offset 3, -16
4069 .cfi_offset 4, -12
4070 .cfi_offset 5, -8
4071 .cfi_offset 14, -4
2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4072 .loc 1 2153 3 is_stmt 1 view .LVU1386
2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4073 .loc 1 2155 3 view .LVU1387
2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4074 .loc 1 2155 11 is_stmt 0 view .LVU1388
4075 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4076 0006 DBB2 uxtb r3, r3
2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4077 .loc 1 2155 6 view .LVU1389
4078 0008 202B cmp r3, #32
4079 000a 63D1 bne .L281
4080 000c 0446 mov r4, r0
2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4081 .loc 1 2157 5 is_stmt 1 view .LVU1390
2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4082 .loc 1 2157 8 is_stmt 0 view .LVU1391
4083 000e 0029 cmp r1, #0
4084 0010 3AD0 beq .L276
2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4085 .loc 1 2157 25 discriminator 1 view .LVU1392
4086 0012 002A cmp r2, #0
4087 0014 38D0 beq .L276
2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4088 .loc 1 2163 5 is_stmt 1 view .LVU1393
2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4089 .loc 1 2163 5 view .LVU1394
4090 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4091 001a 012B cmp r3, #1
4092 001c 5DD0 beq .L282
2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4093 .loc 1 2163 5 discriminator 2 view .LVU1395
4094 001e 0123 movs r3, #1
4095 0020 80F84030 strb r3, [r0, #64]
2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4096 .loc 1 2163 5 discriminator 2 view .LVU1396
2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4097 .loc 1 2165 5 discriminator 2 view .LVU1397
2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4098 .loc 1 2165 23 is_stmt 0 discriminator 2 view .LVU1398
4099 0024 2123 movs r3, #33
4100 0026 80F84130 strb r3, [r0, #65]
2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
ARM GAS /tmp/cczJHHnF.s page 214
4101 .loc 1 2166 5 is_stmt 1 discriminator 2 view .LVU1399
2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4102 .loc 1 2166 23 is_stmt 0 discriminator 2 view .LVU1400
4103 002a 2023 movs r3, #32
4104 002c 80F84230 strb r3, [r0, #66]
2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4105 .loc 1 2167 5 is_stmt 1 discriminator 2 view .LVU1401
2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4106 .loc 1 2167 23 is_stmt 0 discriminator 2 view .LVU1402
4107 0030 0023 movs r3, #0
4108 0032 4364 str r3, [r0, #68]
2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4109 .loc 1 2170 5 is_stmt 1 discriminator 2 view .LVU1403
2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4110 .loc 1 2170 23 is_stmt 0 discriminator 2 view .LVU1404
4111 0034 4162 str r1, [r0, #36]
2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4112 .loc 1 2171 5 is_stmt 1 discriminator 2 view .LVU1405
2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4113 .loc 1 2171 23 is_stmt 0 discriminator 2 view .LVU1406
4114 0036 4285 strh r2, [r0, #42] @ movhi
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4115 .loc 1 2172 5 is_stmt 1 discriminator 2 view .LVU1407
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4116 .loc 1 2172 29 is_stmt 0 discriminator 2 view .LVU1408
4117 0038 438D ldrh r3, [r0, #42]
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4118 .loc 1 2172 23 discriminator 2 view .LVU1409
4119 003a 0385 strh r3, [r0, #40] @ movhi
2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4120 .loc 1 2173 5 is_stmt 1 discriminator 2 view .LVU1410
2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4121 .loc 1 2173 23 is_stmt 0 discriminator 2 view .LVU1411
4122 003c 284B ldr r3, .L286
4123 003e C362 str r3, [r0, #44]
2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4124 .loc 1 2174 5 is_stmt 1 discriminator 2 view .LVU1412
2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4125 .loc 1 2174 23 is_stmt 0 discriminator 2 view .LVU1413
4126 0040 284B ldr r3, .L286+4
4127 0042 4363 str r3, [r0, #52]
2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4128 .loc 1 2176 5 is_stmt 1 discriminator 2 view .LVU1414
2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4129 .loc 1 2176 13 is_stmt 0 discriminator 2 view .LVU1415
4130 0044 836B ldr r3, [r0, #56]
2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4131 .loc 1 2176 8 discriminator 2 view .LVU1416
4132 0046 23B3 cbz r3, .L278
2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4133 .loc 1 2179 7 is_stmt 1 view .LVU1417
2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4134 .loc 1 2179 38 is_stmt 0 view .LVU1418
4135 0048 274A ldr r2, .L286+8
4136 .LVL253:
2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4137 .loc 1 2179 38 view .LVU1419
ARM GAS /tmp/cczJHHnF.s page 215
4138 004a 9A62 str r2, [r3, #40]
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4139 .loc 1 2182 7 is_stmt 1 view .LVU1420
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4140 .loc 1 2182 11 is_stmt 0 view .LVU1421
4141 004c 836B ldr r3, [r0, #56]
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4142 .loc 1 2182 39 view .LVU1422
4143 004e 274A ldr r2, .L286+12
4144 0050 1A63 str r2, [r3, #48]
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4145 .loc 1 2185 7 is_stmt 1 view .LVU1423
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4146 .loc 1 2185 11 is_stmt 0 view .LVU1424
4147 0052 826B ldr r2, [r0, #56]
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4148 .loc 1 2185 42 view .LVU1425
4149 0054 0023 movs r3, #0
4150 0056 D362 str r3, [r2, #44]
2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4151 .loc 1 2186 7 is_stmt 1 view .LVU1426
2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4152 .loc 1 2186 11 is_stmt 0 view .LVU1427
4153 0058 826B ldr r2, [r0, #56]
2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4154 .loc 1 2186 39 view .LVU1428
4155 005a 5363 str r3, [r2, #52]
2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4156 .loc 1 2189 7 is_stmt 1 view .LVU1429
2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4157 .loc 1 2189 86 is_stmt 0 view .LVU1430
4158 005c 0268 ldr r2, [r0]
2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4159 .loc 1 2189 23 view .LVU1431
4160 005e 038D ldrh r3, [r0, #40]
4161 0060 2832 adds r2, r2, #40
4162 0062 806B ldr r0, [r0, #56]
4163 .LVL254:
2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4164 .loc 1 2189 23 view .LVU1432
4165 0064 FFF7FEFF bl HAL_DMA_Start_IT
4166 .LVL255:
2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4167 .loc 1 2207 5 is_stmt 1 view .LVU1433
2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4168 .loc 1 2207 8 is_stmt 0 view .LVU1434
4169 0068 0546 mov r5, r0
4170 006a 00B3 cbz r0, .L285
2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4171 .loc 1 2227 7 is_stmt 1 view .LVU1435
2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4172 .loc 1 2227 23 is_stmt 0 view .LVU1436
4173 006c 2823 movs r3, #40
4174 006e 84F84130 strb r3, [r4, #65]
2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4175 .loc 1 2228 7 is_stmt 1 view .LVU1437
2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 216
4176 .loc 1 2228 23 is_stmt 0 view .LVU1438
4177 0072 0022 movs r2, #0
4178 0074 84F84220 strb r2, [r4, #66]
2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4179 .loc 1 2231 7 is_stmt 1 view .LVU1439
2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4180 .loc 1 2231 11 is_stmt 0 view .LVU1440
4181 0078 636C ldr r3, [r4, #68]
2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4182 .loc 1 2231 23 view .LVU1441
4183 007a 43F01003 orr r3, r3, #16
4184 007e 6364 str r3, [r4, #68]
2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4185 .loc 1 2234 7 is_stmt 1 view .LVU1442
2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4186 .loc 1 2234 7 view .LVU1443
4187 0080 84F84020 strb r2, [r4, #64]
2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4188 .loc 1 2234 7 view .LVU1444
2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4189 .loc 1 2236 7 view .LVU1445
2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4190 .loc 1 2236 14 is_stmt 0 view .LVU1446
4191 0084 0125 movs r5, #1
4192 0086 26E0 b .L275
4193 .LVL256:
4194 .L276:
2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4195 .loc 1 2159 7 is_stmt 1 view .LVU1447
2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4196 .loc 1 2159 23 is_stmt 0 view .LVU1448
4197 0088 4FF40073 mov r3, #512
4198 008c 6364 str r3, [r4, #68]
2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4199 .loc 1 2160 7 is_stmt 1 view .LVU1449
2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4200 .loc 1 2160 15 is_stmt 0 view .LVU1450
4201 008e 0125 movs r5, #1
4202 0090 21E0 b .L275
4203 .L278:
2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4204 .loc 1 2195 7 is_stmt 1 view .LVU1451
2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4205 .loc 1 2195 23 is_stmt 0 view .LVU1452
4206 0092 2823 movs r3, #40
4207 0094 80F84130 strb r3, [r0, #65]
2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4208 .loc 1 2196 7 is_stmt 1 view .LVU1453
2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4209 .loc 1 2196 23 is_stmt 0 view .LVU1454
4210 0098 0022 movs r2, #0
4211 .LVL257:
2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4212 .loc 1 2196 23 view .LVU1455
4213 009a 80F84220 strb r2, [r0, #66]
2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4214 .loc 1 2199 7 is_stmt 1 view .LVU1456
ARM GAS /tmp/cczJHHnF.s page 217
2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4215 .loc 1 2199 11 is_stmt 0 view .LVU1457
4216 009e 436C ldr r3, [r0, #68]
2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4217 .loc 1 2199 23 view .LVU1458
4218 00a0 43F08003 orr r3, r3, #128
4219 00a4 4364 str r3, [r0, #68]
2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4220 .loc 1 2202 7 is_stmt 1 view .LVU1459
2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4221 .loc 1 2202 7 view .LVU1460
4222 00a6 80F84020 strb r2, [r0, #64]
2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4223 .loc 1 2202 7 view .LVU1461
2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4224 .loc 1 2204 7 view .LVU1462
2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4225 .loc 1 2204 14 is_stmt 0 view .LVU1463
4226 00aa 0125 movs r5, #1
4227 00ac 13E0 b .L275
4228 .LVL258:
4229 .L285:
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4230 .loc 1 2210 7 is_stmt 1 view .LVU1464
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4231 .loc 1 2210 11 is_stmt 0 view .LVU1465
4232 00ae 2268 ldr r2, [r4]
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4233 .loc 1 2210 21 view .LVU1466
4234 00b0 5368 ldr r3, [r2, #4]
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4235 .loc 1 2210 27 view .LVU1467
4236 00b2 23F40043 bic r3, r3, #32768
4237 00b6 5360 str r3, [r2, #4]
2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4238 .loc 1 2213 7 is_stmt 1 view .LVU1468
2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4239 .loc 1 2213 7 view .LVU1469
4240 00b8 0023 movs r3, #0
4241 00ba 84F84030 strb r3, [r4, #64]
2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4242 .loc 1 2213 7 view .LVU1470
2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4243 .loc 1 2219 7 view .LVU1471
4244 00be 4FF40041 mov r1, #32768
4245 00c2 2046 mov r0, r4
4246 .LVL259:
2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4247 .loc 1 2219 7 is_stmt 0 view .LVU1472
4248 00c4 FFF7FEFF bl I2C_Enable_IRQ
4249 .LVL260:
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4250 .loc 1 2222 7 is_stmt 1 view .LVU1473
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4251 .loc 1 2222 11 is_stmt 0 view .LVU1474
4252 00c8 2268 ldr r2, [r4]
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 218
4253 .loc 1 2222 21 view .LVU1475
4254 00ca 1368 ldr r3, [r2]
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4255 .loc 1 2222 27 view .LVU1476
4256 00cc 43F48043 orr r3, r3, #16384
4257 00d0 1360 str r3, [r2]
2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4258 .loc 1 2239 5 is_stmt 1 view .LVU1477
2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4259 .loc 1 2239 12 is_stmt 0 view .LVU1478
4260 00d2 00E0 b .L275
4261 .LVL261:
4262 .L281:
2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4263 .loc 1 2243 12 view .LVU1479
4264 00d4 0225 movs r5, #2
4265 .LVL262:
4266 .L275:
2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4267 .loc 1 2245 1 view .LVU1480
4268 00d6 2846 mov r0, r5
4269 00d8 38BD pop {r3, r4, r5, pc}
4270 .LVL263:
4271 .L282:
2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4272 .loc 1 2163 5 view .LVU1481
4273 00da 0225 movs r5, #2
4274 00dc FBE7 b .L275
4275 .L287:
4276 00de 00BF .align 2
4277 .L286:
4278 00e0 0000FFFF .word -65536
4279 00e4 00000000 .word I2C_Slave_ISR_DMA
4280 00e8 00000000 .word I2C_DMASlaveTransmitCplt
4281 00ec 00000000 .word I2C_DMAError
4282 .cfi_endproc
4283 .LFE144:
4285 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
4286 .align 1
4287 .global HAL_I2C_Slave_Receive_DMA
4288 .syntax unified
4289 .thumb
4290 .thumb_func
4292 HAL_I2C_Slave_Receive_DMA:
4293 .LVL264:
4294 .LFB145:
2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4295 .loc 1 2256 1 is_stmt 1 view -0
4296 .cfi_startproc
4297 @ args = 0, pretend = 0, frame = 0
4298 @ frame_needed = 0, uses_anonymous_args = 0
2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4299 .loc 1 2256 1 is_stmt 0 view .LVU1483
4300 0000 38B5 push {r3, r4, r5, lr}
4301 .cfi_def_cfa_offset 16
4302 .cfi_offset 3, -16
4303 .cfi_offset 4, -12
ARM GAS /tmp/cczJHHnF.s page 219
4304 .cfi_offset 5, -8
4305 .cfi_offset 14, -4
2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4306 .loc 1 2257 3 is_stmt 1 view .LVU1484
2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4307 .loc 1 2259 3 view .LVU1485
2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4308 .loc 1 2259 11 is_stmt 0 view .LVU1486
4309 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4310 0006 DBB2 uxtb r3, r3
2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4311 .loc 1 2259 6 view .LVU1487
4312 0008 202B cmp r3, #32
4313 000a 65D1 bne .L295
4314 000c 0446 mov r4, r0
2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4315 .loc 1 2261 5 is_stmt 1 view .LVU1488
2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4316 .loc 1 2261 8 is_stmt 0 view .LVU1489
4317 000e 0029 cmp r1, #0
4318 0010 3CD0 beq .L290
2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4319 .loc 1 2261 25 discriminator 1 view .LVU1490
4320 0012 002A cmp r2, #0
4321 0014 3AD0 beq .L290
2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4322 .loc 1 2267 5 is_stmt 1 view .LVU1491
2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4323 .loc 1 2267 5 view .LVU1492
4324 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4325 001a 012B cmp r3, #1
4326 001c 5FD0 beq .L296
2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4327 .loc 1 2267 5 discriminator 2 view .LVU1493
4328 001e 0123 movs r3, #1
4329 0020 80F84030 strb r3, [r0, #64]
2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4330 .loc 1 2267 5 discriminator 2 view .LVU1494
2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4331 .loc 1 2269 5 discriminator 2 view .LVU1495
2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4332 .loc 1 2269 23 is_stmt 0 discriminator 2 view .LVU1496
4333 0024 2223 movs r3, #34
4334 0026 80F84130 strb r3, [r0, #65]
2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4335 .loc 1 2270 5 is_stmt 1 discriminator 2 view .LVU1497
2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4336 .loc 1 2270 23 is_stmt 0 discriminator 2 view .LVU1498
4337 002a 2023 movs r3, #32
4338 002c 80F84230 strb r3, [r0, #66]
2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4339 .loc 1 2271 5 is_stmt 1 discriminator 2 view .LVU1499
2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4340 .loc 1 2271 23 is_stmt 0 discriminator 2 view .LVU1500
4341 0030 0023 movs r3, #0
4342 0032 4364 str r3, [r0, #68]
2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
ARM GAS /tmp/cczJHHnF.s page 220
4343 .loc 1 2274 5 is_stmt 1 discriminator 2 view .LVU1501
2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4344 .loc 1 2274 23 is_stmt 0 discriminator 2 view .LVU1502
4345 0034 4162 str r1, [r0, #36]
2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4346 .loc 1 2275 5 is_stmt 1 discriminator 2 view .LVU1503
2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4347 .loc 1 2275 23 is_stmt 0 discriminator 2 view .LVU1504
4348 0036 4285 strh r2, [r0, #42] @ movhi
2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4349 .loc 1 2276 5 is_stmt 1 discriminator 2 view .LVU1505
2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4350 .loc 1 2276 29 is_stmt 0 discriminator 2 view .LVU1506
4351 0038 438D ldrh r3, [r0, #42]
2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4352 .loc 1 2276 23 discriminator 2 view .LVU1507
4353 003a 0385 strh r3, [r0, #40] @ movhi
2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4354 .loc 1 2277 5 is_stmt 1 discriminator 2 view .LVU1508
2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4355 .loc 1 2277 23 is_stmt 0 discriminator 2 view .LVU1509
4356 003c 294B ldr r3, .L300
4357 003e C362 str r3, [r0, #44]
2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4358 .loc 1 2278 5 is_stmt 1 discriminator 2 view .LVU1510
2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4359 .loc 1 2278 23 is_stmt 0 discriminator 2 view .LVU1511
4360 0040 294B ldr r3, .L300+4
4361 0042 4363 str r3, [r0, #52]
2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4362 .loc 1 2280 5 is_stmt 1 discriminator 2 view .LVU1512
2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4363 .loc 1 2280 13 is_stmt 0 discriminator 2 view .LVU1513
4364 0044 C36B ldr r3, [r0, #60]
2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4365 .loc 1 2280 8 discriminator 2 view .LVU1514
4366 0046 33B3 cbz r3, .L292
2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4367 .loc 1 2283 7 is_stmt 1 view .LVU1515
2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4368 .loc 1 2283 38 is_stmt 0 view .LVU1516
4369 0048 284A ldr r2, .L300+8
4370 .LVL265:
2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4371 .loc 1 2283 38 view .LVU1517
4372 004a 9A62 str r2, [r3, #40]
2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4373 .loc 1 2286 7 is_stmt 1 view .LVU1518
2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4374 .loc 1 2286 11 is_stmt 0 view .LVU1519
4375 004c C36B ldr r3, [r0, #60]
2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4376 .loc 1 2286 39 view .LVU1520
4377 004e 284A ldr r2, .L300+12
4378 0050 1A63 str r2, [r3, #48]
2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4379 .loc 1 2289 7 is_stmt 1 view .LVU1521
ARM GAS /tmp/cczJHHnF.s page 221
2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4380 .loc 1 2289 11 is_stmt 0 view .LVU1522
4381 0052 C26B ldr r2, [r0, #60]
2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4382 .loc 1 2289 42 view .LVU1523
4383 0054 0023 movs r3, #0
4384 0056 D362 str r3, [r2, #44]
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4385 .loc 1 2290 7 is_stmt 1 view .LVU1524
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4386 .loc 1 2290 11 is_stmt 0 view .LVU1525
4387 0058 C26B ldr r2, [r0, #60]
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4388 .loc 1 2290 39 view .LVU1526
4389 005a 5363 str r3, [r2, #52]
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4390 .loc 1 2293 7 is_stmt 1 view .LVU1527
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4391 .loc 1 2293 69 is_stmt 0 view .LVU1528
4392 005c 0068 ldr r0, [r0]
4393 .LVL266:
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4394 .loc 1 2293 23 view .LVU1529
4395 005e 238D ldrh r3, [r4, #40]
4396 0060 0A46 mov r2, r1
4397 0062 00F12401 add r1, r0, #36
4398 .LVL267:
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4399 .loc 1 2293 23 view .LVU1530
4400 0066 E06B ldr r0, [r4, #60]
4401 0068 FFF7FEFF bl HAL_DMA_Start_IT
4402 .LVL268:
2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4403 .loc 1 2311 5 is_stmt 1 view .LVU1531
2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4404 .loc 1 2311 8 is_stmt 0 view .LVU1532
4405 006c 0546 mov r5, r0
4406 006e 00B3 cbz r0, .L299
2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4407 .loc 1 2331 7 is_stmt 1 view .LVU1533
2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4408 .loc 1 2331 23 is_stmt 0 view .LVU1534
4409 0070 2823 movs r3, #40
4410 0072 84F84130 strb r3, [r4, #65]
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4411 .loc 1 2332 7 is_stmt 1 view .LVU1535
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4412 .loc 1 2332 23 is_stmt 0 view .LVU1536
4413 0076 0022 movs r2, #0
4414 0078 84F84220 strb r2, [r4, #66]
2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4415 .loc 1 2335 7 is_stmt 1 view .LVU1537
2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4416 .loc 1 2335 11 is_stmt 0 view .LVU1538
4417 007c 636C ldr r3, [r4, #68]
2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4418 .loc 1 2335 23 view .LVU1539
ARM GAS /tmp/cczJHHnF.s page 222
4419 007e 43F01003 orr r3, r3, #16
4420 0082 6364 str r3, [r4, #68]
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4421 .loc 1 2338 7 is_stmt 1 view .LVU1540
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4422 .loc 1 2338 7 view .LVU1541
4423 0084 84F84020 strb r2, [r4, #64]
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4424 .loc 1 2338 7 view .LVU1542
2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4425 .loc 1 2340 7 view .LVU1543
2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4426 .loc 1 2340 14 is_stmt 0 view .LVU1544
4427 0088 0125 movs r5, #1
4428 008a 26E0 b .L289
4429 .LVL269:
4430 .L290:
2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4431 .loc 1 2263 7 is_stmt 1 view .LVU1545
2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4432 .loc 1 2263 23 is_stmt 0 view .LVU1546
4433 008c 4FF40073 mov r3, #512
4434 0090 6364 str r3, [r4, #68]
2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4435 .loc 1 2264 7 is_stmt 1 view .LVU1547
2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4436 .loc 1 2264 15 is_stmt 0 view .LVU1548
4437 0092 0125 movs r5, #1
4438 0094 21E0 b .L289
4439 .L292:
2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4440 .loc 1 2299 7 is_stmt 1 view .LVU1549
2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4441 .loc 1 2299 23 is_stmt 0 view .LVU1550
4442 0096 2823 movs r3, #40
4443 0098 80F84130 strb r3, [r0, #65]
2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4444 .loc 1 2300 7 is_stmt 1 view .LVU1551
2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4445 .loc 1 2300 23 is_stmt 0 view .LVU1552
4446 009c 0022 movs r2, #0
4447 .LVL270:
2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4448 .loc 1 2300 23 view .LVU1553
4449 009e 80F84220 strb r2, [r0, #66]
2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4450 .loc 1 2303 7 is_stmt 1 view .LVU1554
2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4451 .loc 1 2303 11 is_stmt 0 view .LVU1555
4452 00a2 436C ldr r3, [r0, #68]
2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4453 .loc 1 2303 23 view .LVU1556
4454 00a4 43F08003 orr r3, r3, #128
4455 00a8 4364 str r3, [r0, #68]
2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4456 .loc 1 2306 7 is_stmt 1 view .LVU1557
2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 223
4457 .loc 1 2306 7 view .LVU1558
4458 00aa 80F84020 strb r2, [r0, #64]
2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4459 .loc 1 2306 7 view .LVU1559
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4460 .loc 1 2308 7 view .LVU1560
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4461 .loc 1 2308 14 is_stmt 0 view .LVU1561
4462 00ae 0125 movs r5, #1
4463 00b0 13E0 b .L289
4464 .LVL271:
4465 .L299:
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4466 .loc 1 2314 7 is_stmt 1 view .LVU1562
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4467 .loc 1 2314 11 is_stmt 0 view .LVU1563
4468 00b2 2268 ldr r2, [r4]
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4469 .loc 1 2314 21 view .LVU1564
4470 00b4 5368 ldr r3, [r2, #4]
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4471 .loc 1 2314 27 view .LVU1565
4472 00b6 23F40043 bic r3, r3, #32768
4473 00ba 5360 str r3, [r2, #4]
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4474 .loc 1 2317 7 is_stmt 1 view .LVU1566
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4475 .loc 1 2317 7 view .LVU1567
4476 00bc 0023 movs r3, #0
4477 00be 84F84030 strb r3, [r4, #64]
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4478 .loc 1 2317 7 view .LVU1568
2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4479 .loc 1 2323 7 view .LVU1569
4480 00c2 4FF40041 mov r1, #32768
4481 00c6 2046 mov r0, r4
4482 .LVL272:
2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4483 .loc 1 2323 7 is_stmt 0 view .LVU1570
4484 00c8 FFF7FEFF bl I2C_Enable_IRQ
4485 .LVL273:
2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4486 .loc 1 2326 7 is_stmt 1 view .LVU1571
2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4487 .loc 1 2326 11 is_stmt 0 view .LVU1572
4488 00cc 2268 ldr r2, [r4]
2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4489 .loc 1 2326 21 view .LVU1573
4490 00ce 1368 ldr r3, [r2]
2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4491 .loc 1 2326 27 view .LVU1574
4492 00d0 43F40043 orr r3, r3, #32768
4493 00d4 1360 str r3, [r2]
2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4494 .loc 1 2343 5 is_stmt 1 view .LVU1575
2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4495 .loc 1 2343 12 is_stmt 0 view .LVU1576
ARM GAS /tmp/cczJHHnF.s page 224
4496 00d6 00E0 b .L289
4497 .LVL274:
4498 .L295:
2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4499 .loc 1 2347 12 view .LVU1577
4500 00d8 0225 movs r5, #2
4501 .LVL275:
4502 .L289:
2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4503 .loc 1 2349 1 view .LVU1578
4504 00da 2846 mov r0, r5
4505 00dc 38BD pop {r3, r4, r5, pc}
4506 .LVL276:
4507 .L296:
2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4508 .loc 1 2267 5 view .LVU1579
4509 00de 0225 movs r5, #2
4510 00e0 FBE7 b .L289
4511 .L301:
4512 00e2 00BF .align 2
4513 .L300:
4514 00e4 0000FFFF .word -65536
4515 00e8 00000000 .word I2C_Slave_ISR_DMA
4516 00ec 00000000 .word I2C_DMASlaveReceiveCplt
4517 00f0 00000000 .word I2C_DMAError
4518 .cfi_endproc
4519 .LFE145:
4521 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
4522 .align 1
4523 .global HAL_I2C_Mem_Write
4524 .syntax unified
4525 .thumb
4526 .thumb_func
4528 HAL_I2C_Mem_Write:
4529 .LVL277:
4530 .LFB146:
2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
4531 .loc 1 2365 1 is_stmt 1 view -0
4532 .cfi_startproc
4533 @ args = 12, pretend = 0, frame = 0
4534 @ frame_needed = 0, uses_anonymous_args = 0
2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
4535 .loc 1 2365 1 is_stmt 0 view .LVU1581
4536 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4537 .cfi_def_cfa_offset 36
4538 .cfi_offset 4, -36
4539 .cfi_offset 5, -32
4540 .cfi_offset 6, -28
4541 .cfi_offset 7, -24
4542 .cfi_offset 8, -20
4543 .cfi_offset 9, -16
4544 .cfi_offset 10, -12
4545 .cfi_offset 11, -8
4546 .cfi_offset 14, -4
4547 0004 83B0 sub sp, sp, #12
4548 .cfi_def_cfa_offset 48
4549 0006 0E46 mov r6, r1
ARM GAS /tmp/cczJHHnF.s page 225
4550 0008 BDF834A0 ldrh r10, [sp, #52]
4551 000c 0E9D ldr r5, [sp, #56]
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4552 .loc 1 2366 3 is_stmt 1 view .LVU1582
2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4553 .loc 1 2369 3 view .LVU1583
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4554 .loc 1 2371 3 view .LVU1584
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4555 .loc 1 2371 11 is_stmt 0 view .LVU1585
4556 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
4557 .LVL278:
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4558 .loc 1 2371 11 view .LVU1586
4559 0012 C9B2 uxtb r1, r1
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4560 .loc 1 2371 6 view .LVU1587
4561 0014 2029 cmp r1, #32
4562 0016 40F0BB80 bne .L312
4563 001a 0446 mov r4, r0
4564 001c 9046 mov r8, r2
4565 001e 9946 mov r9, r3
2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4566 .loc 1 2373 5 is_stmt 1 view .LVU1588
2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4567 .loc 1 2373 8 is_stmt 0 view .LVU1589
4568 0020 0C9B ldr r3, [sp, #48]
4569 .LVL279:
2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4570 .loc 1 2373 8 view .LVU1590
4571 0022 CBB1 cbz r3, .L304
2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4572 .loc 1 2373 25 discriminator 1 view .LVU1591
4573 0024 BAF1000F cmp r10, #0
4574 0028 16D0 beq .L304
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4575 .loc 1 2380 5 is_stmt 1 view .LVU1592
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4576 .loc 1 2380 5 view .LVU1593
4577 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4578 002e 012B cmp r3, #1
4579 0030 00F0B280 beq .L313
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4580 .loc 1 2380 5 discriminator 2 view .LVU1594
4581 0034 4FF0010B mov fp, #1
4582 0038 80F840B0 strb fp, [r0, #64]
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4583 .loc 1 2380 5 discriminator 2 view .LVU1595
2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4584 .loc 1 2383 5 discriminator 2 view .LVU1596
2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4585 .loc 1 2383 17 is_stmt 0 discriminator 2 view .LVU1597
4586 003c FFF7FEFF bl HAL_GetTick
4587 .LVL280:
2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4588 .loc 1 2383 17 discriminator 2 view .LVU1598
4589 0040 0746 mov r7, r0
ARM GAS /tmp/cczJHHnF.s page 226
4590 .LVL281:
2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4591 .loc 1 2385 5 is_stmt 1 discriminator 2 view .LVU1599
2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4592 .loc 1 2385 9 is_stmt 0 discriminator 2 view .LVU1600
4593 0042 0090 str r0, [sp]
4594 0044 1923 movs r3, #25
4595 0046 5A46 mov r2, fp
4596 0048 4FF40041 mov r1, #32768
4597 004c 2046 mov r0, r4
4598 .LVL282:
2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4599 .loc 1 2385 9 discriminator 2 view .LVU1601
4600 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4601 .LVL283:
2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4602 .loc 1 2385 8 discriminator 2 view .LVU1602
4603 0052 30B1 cbz r0, .L319
2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4604 .loc 1 2387 14 view .LVU1603
4605 0054 0120 movs r0, #1
4606 0056 9CE0 b .L303
4607 .LVL284:
4608 .L304:
2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4609 .loc 1 2375 7 is_stmt 1 view .LVU1604
2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4610 .loc 1 2375 23 is_stmt 0 view .LVU1605
4611 0058 4FF40073 mov r3, #512
4612 005c 6364 str r3, [r4, #68]
2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4613 .loc 1 2376 7 is_stmt 1 view .LVU1606
2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4614 .loc 1 2376 15 is_stmt 0 view .LVU1607
4615 005e 0120 movs r0, #1
4616 .LVL285:
2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4617 .loc 1 2376 15 view .LVU1608
4618 0060 97E0 b .L303
4619 .LVL286:
4620 .L319:
2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4621 .loc 1 2390 5 is_stmt 1 view .LVU1609
2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4622 .loc 1 2390 21 is_stmt 0 view .LVU1610
4623 0062 2123 movs r3, #33
4624 0064 84F84130 strb r3, [r4, #65]
2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4625 .loc 1 2391 5 is_stmt 1 view .LVU1611
2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4626 .loc 1 2391 21 is_stmt 0 view .LVU1612
4627 0068 4023 movs r3, #64
4628 006a 84F84230 strb r3, [r4, #66]
2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4629 .loc 1 2392 5 is_stmt 1 view .LVU1613
2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4630 .loc 1 2392 21 is_stmt 0 view .LVU1614
ARM GAS /tmp/cczJHHnF.s page 227
4631 006e 0023 movs r3, #0
4632 0070 6364 str r3, [r4, #68]
2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4633 .loc 1 2395 5 is_stmt 1 view .LVU1615
2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4634 .loc 1 2395 21 is_stmt 0 view .LVU1616
4635 0072 0C9A ldr r2, [sp, #48]
4636 0074 6262 str r2, [r4, #36]
2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
4637 .loc 1 2396 5 is_stmt 1 view .LVU1617
2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
4638 .loc 1 2396 21 is_stmt 0 view .LVU1618
4639 0076 A4F82AA0 strh r10, [r4, #42] @ movhi
2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4640 .loc 1 2397 5 is_stmt 1 view .LVU1619
2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4641 .loc 1 2397 21 is_stmt 0 view .LVU1620
4642 007a 6363 str r3, [r4, #52]
2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4643 .loc 1 2400 5 is_stmt 1 view .LVU1621
2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4644 .loc 1 2400 9 is_stmt 0 view .LVU1622
4645 007c 0197 str r7, [sp, #4]
4646 007e 0095 str r5, [sp]
4647 0080 4B46 mov r3, r9
4648 0082 4246 mov r2, r8
4649 0084 3146 mov r1, r6
4650 0086 2046 mov r0, r4
4651 0088 FFF7FEFF bl I2C_RequestMemoryWrite
4652 .LVL287:
2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4653 .loc 1 2400 8 view .LVU1623
4654 008c 70B9 cbnz r0, .L320
2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4655 .loc 1 2408 5 is_stmt 1 view .LVU1624
2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4656 .loc 1 2408 13 is_stmt 0 view .LVU1625
4657 008e 638D ldrh r3, [r4, #42]
4658 0090 9BB2 uxth r3, r3
2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4659 .loc 1 2408 8 view .LVU1626
4660 0092 FF2B cmp r3, #255
4661 0094 0FD9 bls .L307
2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
4662 .loc 1 2410 7 is_stmt 1 view .LVU1627
2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
4663 .loc 1 2410 22 is_stmt 0 view .LVU1628
4664 0096 FF22 movs r2, #255
4665 0098 2285 strh r2, [r4, #40] @ movhi
2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4666 .loc 1 2411 7 is_stmt 1 view .LVU1629
4667 009a 0023 movs r3, #0
4668 009c 0093 str r3, [sp]
4669 009e 4FF08073 mov r3, #16777216
4670 00a2 3146 mov r1, r6
4671 00a4 2046 mov r0, r4
4672 00a6 FFF7FEFF bl I2C_TransferConfig
ARM GAS /tmp/cczJHHnF.s page 228
4673 .LVL288:
4674 00aa 21E0 b .L311
4675 .L320:
2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4676 .loc 1 2403 7 view .LVU1630
2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4677 .loc 1 2403 7 view .LVU1631
4678 00ac 0023 movs r3, #0
4679 00ae 84F84030 strb r3, [r4, #64]
2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4680 .loc 1 2403 7 view .LVU1632
2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4681 .loc 1 2404 7 view .LVU1633
2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4682 .loc 1 2404 14 is_stmt 0 view .LVU1634
4683 00b2 5846 mov r0, fp
4684 00b4 6DE0 b .L303
4685 .L307:
2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
4686 .loc 1 2415 7 is_stmt 1 view .LVU1635
2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
4687 .loc 1 2415 28 is_stmt 0 view .LVU1636
4688 00b6 628D ldrh r2, [r4, #42]
4689 00b8 92B2 uxth r2, r2
2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
4690 .loc 1 2415 22 view .LVU1637
4691 00ba 2285 strh r2, [r4, #40] @ movhi
2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4692 .loc 1 2416 7 is_stmt 1 view .LVU1638
4693 00bc 0023 movs r3, #0
4694 00be 0093 str r3, [sp]
4695 00c0 4FF00073 mov r3, #33554432
4696 00c4 D2B2 uxtb r2, r2
4697 00c6 3146 mov r1, r6
4698 00c8 2046 mov r0, r4
4699 00ca FFF7FEFF bl I2C_TransferConfig
4700 .LVL289:
4701 00ce 0FE0 b .L311
4702 .L310:
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
4703 .loc 1 2452 11 view .LVU1639
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
4704 .loc 1 2452 32 is_stmt 0 view .LVU1640
4705 00d0 628D ldrh r2, [r4, #42]
4706 00d2 92B2 uxth r2, r2
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
4707 .loc 1 2452 26 view .LVU1641
4708 00d4 2285 strh r2, [r4, #40] @ movhi
2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
4709 .loc 1 2453 11 is_stmt 1 view .LVU1642
4710 00d6 0023 movs r3, #0
4711 00d8 0093 str r3, [sp]
4712 00da 4FF00073 mov r3, #33554432
4713 00de D2B2 uxtb r2, r2
4714 00e0 3146 mov r1, r6
4715 00e2 2046 mov r0, r4
4716 00e4 FFF7FEFF bl I2C_TransferConfig
ARM GAS /tmp/cczJHHnF.s page 229
4717 .LVL290:
4718 .L309:
2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4719 .loc 1 2458 30 view .LVU1643
2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4720 .loc 1 2458 18 is_stmt 0 view .LVU1644
4721 00e8 638D ldrh r3, [r4, #42]
4722 00ea 9BB2 uxth r3, r3
2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4723 .loc 1 2458 30 view .LVU1645
4724 00ec 002B cmp r3, #0
4725 00ee 33D0 beq .L321
4726 .L311:
2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4727 .loc 1 2419 5 is_stmt 1 view .LVU1646
2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4728 .loc 1 2422 7 view .LVU1647
2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4729 .loc 1 2422 11 is_stmt 0 view .LVU1648
4730 00f0 3A46 mov r2, r7
4731 00f2 2946 mov r1, r5
4732 00f4 2046 mov r0, r4
4733 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
4734 .LVL291:
2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4735 .loc 1 2422 10 view .LVU1649
4736 00fa 0028 cmp r0, #0
4737 00fc 4ED1 bne .L315
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4738 .loc 1 2428 7 is_stmt 1 view .LVU1650
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4739 .loc 1 2428 35 is_stmt 0 view .LVU1651
4740 00fe 626A ldr r2, [r4, #36]
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4741 .loc 1 2428 11 view .LVU1652
4742 0100 2368 ldr r3, [r4]
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4743 .loc 1 2428 30 view .LVU1653
4744 0102 1278 ldrb r2, [r2] @ zero_extendqisi2
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4745 .loc 1 2428 28 view .LVU1654
4746 0104 9A62 str r2, [r3, #40]
2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4747 .loc 1 2431 7 is_stmt 1 view .LVU1655
2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4748 .loc 1 2431 11 is_stmt 0 view .LVU1656
4749 0106 636A ldr r3, [r4, #36]
2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4750 .loc 1 2431 21 view .LVU1657
4751 0108 0133 adds r3, r3, #1
4752 010a 6362 str r3, [r4, #36]
2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4753 .loc 1 2433 7 is_stmt 1 view .LVU1658
2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4754 .loc 1 2433 11 is_stmt 0 view .LVU1659
4755 010c 638D ldrh r3, [r4, #42]
4756 010e 9BB2 uxth r3, r3
ARM GAS /tmp/cczJHHnF.s page 230
2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4757 .loc 1 2433 22 view .LVU1660
4758 0110 013B subs r3, r3, #1
4759 0112 9BB2 uxth r3, r3
4760 0114 6385 strh r3, [r4, #42] @ movhi
2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4761 .loc 1 2434 7 is_stmt 1 view .LVU1661
2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4762 .loc 1 2434 11 is_stmt 0 view .LVU1662
4763 0116 238D ldrh r3, [r4, #40]
2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4764 .loc 1 2434 21 view .LVU1663
4765 0118 013B subs r3, r3, #1
4766 011a 9BB2 uxth r3, r3
4767 011c 2385 strh r3, [r4, #40] @ movhi
2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4768 .loc 1 2436 7 is_stmt 1 view .LVU1664
2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4769 .loc 1 2436 16 is_stmt 0 view .LVU1665
4770 011e 628D ldrh r2, [r4, #42]
4771 0120 92B2 uxth r2, r2
2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4772 .loc 1 2436 10 view .LVU1666
4773 0122 002A cmp r2, #0
4774 0124 E0D0 beq .L309
2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4775 .loc 1 2436 35 discriminator 1 view .LVU1667
4776 0126 002B cmp r3, #0
4777 0128 DED1 bne .L309
2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4778 .loc 1 2439 9 is_stmt 1 view .LVU1668
2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4779 .loc 1 2439 13 is_stmt 0 view .LVU1669
4780 012a 0097 str r7, [sp]
4781 012c 2B46 mov r3, r5
4782 012e 0022 movs r2, #0
4783 0130 8021 movs r1, #128
4784 0132 2046 mov r0, r4
4785 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4786 .LVL292:
2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4787 .loc 1 2439 12 view .LVU1670
4788 0138 90BB cbnz r0, .L316
2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4789 .loc 1 2444 9 is_stmt 1 view .LVU1671
2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4790 .loc 1 2444 17 is_stmt 0 view .LVU1672
4791 013a 638D ldrh r3, [r4, #42]
4792 013c 9BB2 uxth r3, r3
2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4793 .loc 1 2444 12 view .LVU1673
4794 013e FF2B cmp r3, #255
4795 0140 C6D9 bls .L310
2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
4796 .loc 1 2446 11 is_stmt 1 view .LVU1674
2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
4797 .loc 1 2446 26 is_stmt 0 view .LVU1675
ARM GAS /tmp/cczJHHnF.s page 231
4798 0142 FF22 movs r2, #255
4799 0144 2285 strh r2, [r4, #40] @ movhi
2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
4800 .loc 1 2447 11 is_stmt 1 view .LVU1676
4801 0146 0023 movs r3, #0
4802 0148 0093 str r3, [sp]
4803 014a 4FF08073 mov r3, #16777216
4804 014e 3146 mov r1, r6
4805 0150 2046 mov r0, r4
4806 0152 FFF7FEFF bl I2C_TransferConfig
4807 .LVL293:
4808 0156 C7E7 b .L309
4809 .L321:
2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4810 .loc 1 2462 5 view .LVU1677
2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4811 .loc 1 2462 9 is_stmt 0 view .LVU1678
4812 0158 3A46 mov r2, r7
4813 015a 2946 mov r1, r5
4814 015c 2046 mov r0, r4
4815 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
4816 .LVL294:
2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4817 .loc 1 2462 8 view .LVU1679
4818 0162 F8B9 cbnz r0, .L317
2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4819 .loc 1 2468 5 is_stmt 1 view .LVU1680
4820 0164 2368 ldr r3, [r4]
4821 0166 2022 movs r2, #32
4822 0168 DA61 str r2, [r3, #28]
2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4823 .loc 1 2471 5 view .LVU1681
4824 016a 2168 ldr r1, [r4]
4825 016c 4B68 ldr r3, [r1, #4]
4826 016e 23F0FF73 bic r3, r3, #33423360
4827 0172 23F48B33 bic r3, r3, #71168
4828 0176 23F4FF73 bic r3, r3, #510
4829 017a 23F00103 bic r3, r3, #1
4830 017e 4B60 str r3, [r1, #4]
2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4831 .loc 1 2473 5 view .LVU1682
2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4832 .loc 1 2473 17 is_stmt 0 view .LVU1683
4833 0180 84F84120 strb r2, [r4, #65]
2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4834 .loc 1 2474 5 is_stmt 1 view .LVU1684
2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4835 .loc 1 2474 17 is_stmt 0 view .LVU1685
4836 0184 0023 movs r3, #0
4837 0186 84F84230 strb r3, [r4, #66]
2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4838 .loc 1 2477 5 is_stmt 1 view .LVU1686
2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4839 .loc 1 2477 5 view .LVU1687
4840 018a 84F84030 strb r3, [r4, #64]
2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4841 .loc 1 2477 5 view .LVU1688
ARM GAS /tmp/cczJHHnF.s page 232
2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4842 .loc 1 2479 5 view .LVU1689
2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4843 .loc 1 2479 12 is_stmt 0 view .LVU1690
4844 018e 00E0 b .L303
4845 .LVL295:
4846 .L312:
2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4847 .loc 1 2483 12 view .LVU1691
4848 0190 0220 movs r0, #2
4849 .LVL296:
4850 .L303:
2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4851 .loc 1 2485 1 view .LVU1692
4852 0192 03B0 add sp, sp, #12
4853 .cfi_remember_state
4854 .cfi_def_cfa_offset 36
4855 @ sp needed
4856 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4857 .LVL297:
4858 .L313:
4859 .cfi_restore_state
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4860 .loc 1 2380 5 view .LVU1693
4861 0198 0220 movs r0, #2
4862 .LVL298:
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4863 .loc 1 2380 5 view .LVU1694
4864 019a FAE7 b .L303
4865 .LVL299:
4866 .L315:
2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4867 .loc 1 2424 16 view .LVU1695
4868 019c 0120 movs r0, #1
4869 019e F8E7 b .L303
4870 .L316:
2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4871 .loc 1 2441 18 view .LVU1696
4872 01a0 0120 movs r0, #1
4873 01a2 F6E7 b .L303
4874 .L317:
2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4875 .loc 1 2464 14 view .LVU1697
4876 01a4 0120 movs r0, #1
4877 01a6 F4E7 b .L303
4878 .cfi_endproc
4879 .LFE146:
4881 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
4882 .align 1
4883 .global HAL_I2C_Mem_Read
4884 .syntax unified
4885 .thumb
4886 .thumb_func
4888 HAL_I2C_Mem_Read:
4889 .LVL300:
4890 .LFB147:
2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
ARM GAS /tmp/cczJHHnF.s page 233
4891 .loc 1 2502 1 is_stmt 1 view -0
4892 .cfi_startproc
4893 @ args = 12, pretend = 0, frame = 0
4894 @ frame_needed = 0, uses_anonymous_args = 0
2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
4895 .loc 1 2502 1 is_stmt 0 view .LVU1699
4896 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4897 .cfi_def_cfa_offset 36
4898 .cfi_offset 4, -36
4899 .cfi_offset 5, -32
4900 .cfi_offset 6, -28
4901 .cfi_offset 7, -24
4902 .cfi_offset 8, -20
4903 .cfi_offset 9, -16
4904 .cfi_offset 10, -12
4905 .cfi_offset 11, -8
4906 .cfi_offset 14, -4
4907 0004 83B0 sub sp, sp, #12
4908 .cfi_def_cfa_offset 48
4909 0006 0E46 mov r6, r1
4910 0008 BDF834A0 ldrh r10, [sp, #52]
4911 000c 0E9D ldr r5, [sp, #56]
2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4912 .loc 1 2503 3 is_stmt 1 view .LVU1700
2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4913 .loc 1 2506 3 view .LVU1701
2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4914 .loc 1 2508 3 view .LVU1702
2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4915 .loc 1 2508 11 is_stmt 0 view .LVU1703
4916 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
4917 .LVL301:
2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4918 .loc 1 2508 11 view .LVU1704
4919 0012 C9B2 uxtb r1, r1
2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4920 .loc 1 2508 6 view .LVU1705
4921 0014 2029 cmp r1, #32
4922 0016 40F0BC80 bne .L332
4923 001a 0446 mov r4, r0
4924 001c 9046 mov r8, r2
4925 001e 9946 mov r9, r3
2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4926 .loc 1 2510 5 is_stmt 1 view .LVU1706
2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4927 .loc 1 2510 8 is_stmt 0 view .LVU1707
4928 0020 0C9B ldr r3, [sp, #48]
4929 .LVL302:
2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4930 .loc 1 2510 8 view .LVU1708
4931 0022 CBB1 cbz r3, .L324
2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4932 .loc 1 2510 25 discriminator 1 view .LVU1709
4933 0024 BAF1000F cmp r10, #0
4934 0028 16D0 beq .L324
2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4935 .loc 1 2517 5 is_stmt 1 view .LVU1710
ARM GAS /tmp/cczJHHnF.s page 234
2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4936 .loc 1 2517 5 view .LVU1711
4937 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4938 002e 012B cmp r3, #1
4939 0030 00F0B380 beq .L333
2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4940 .loc 1 2517 5 discriminator 2 view .LVU1712
4941 0034 4FF0010B mov fp, #1
4942 0038 80F840B0 strb fp, [r0, #64]
2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4943 .loc 1 2517 5 discriminator 2 view .LVU1713
2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4944 .loc 1 2520 5 discriminator 2 view .LVU1714
2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4945 .loc 1 2520 17 is_stmt 0 discriminator 2 view .LVU1715
4946 003c FFF7FEFF bl HAL_GetTick
4947 .LVL303:
2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4948 .loc 1 2520 17 discriminator 2 view .LVU1716
4949 0040 0746 mov r7, r0
4950 .LVL304:
2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4951 .loc 1 2522 5 is_stmt 1 discriminator 2 view .LVU1717
2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4952 .loc 1 2522 9 is_stmt 0 discriminator 2 view .LVU1718
4953 0042 0090 str r0, [sp]
4954 0044 1923 movs r3, #25
4955 0046 5A46 mov r2, fp
4956 0048 4FF40041 mov r1, #32768
4957 004c 2046 mov r0, r4
4958 .LVL305:
2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4959 .loc 1 2522 9 discriminator 2 view .LVU1719
4960 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
4961 .LVL306:
2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4962 .loc 1 2522 8 discriminator 2 view .LVU1720
4963 0052 30B1 cbz r0, .L339
2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4964 .loc 1 2524 14 view .LVU1721
4965 0054 0120 movs r0, #1
4966 0056 9DE0 b .L323
4967 .LVL307:
4968 .L324:
2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4969 .loc 1 2512 7 is_stmt 1 view .LVU1722
2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4970 .loc 1 2512 23 is_stmt 0 view .LVU1723
4971 0058 4FF40073 mov r3, #512
4972 005c 6364 str r3, [r4, #68]
2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4973 .loc 1 2513 7 is_stmt 1 view .LVU1724
2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4974 .loc 1 2513 15 is_stmt 0 view .LVU1725
4975 005e 0120 movs r0, #1
4976 .LVL308:
2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 235
4977 .loc 1 2513 15 view .LVU1726
4978 0060 98E0 b .L323
4979 .LVL309:
4980 .L339:
2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4981 .loc 1 2527 5 is_stmt 1 view .LVU1727
2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
4982 .loc 1 2527 21 is_stmt 0 view .LVU1728
4983 0062 2223 movs r3, #34
4984 0064 84F84130 strb r3, [r4, #65]
2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4985 .loc 1 2528 5 is_stmt 1 view .LVU1729
2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4986 .loc 1 2528 21 is_stmt 0 view .LVU1730
4987 0068 4023 movs r3, #64
4988 006a 84F84230 strb r3, [r4, #66]
2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4989 .loc 1 2529 5 is_stmt 1 view .LVU1731
2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4990 .loc 1 2529 21 is_stmt 0 view .LVU1732
4991 006e 0023 movs r3, #0
4992 0070 6364 str r3, [r4, #68]
2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4993 .loc 1 2532 5 is_stmt 1 view .LVU1733
2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4994 .loc 1 2532 21 is_stmt 0 view .LVU1734
4995 0072 0C9A ldr r2, [sp, #48]
4996 0074 6262 str r2, [r4, #36]
2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
4997 .loc 1 2533 5 is_stmt 1 view .LVU1735
2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
4998 .loc 1 2533 21 is_stmt 0 view .LVU1736
4999 0076 A4F82AA0 strh r10, [r4, #42] @ movhi
2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5000 .loc 1 2534 5 is_stmt 1 view .LVU1737
2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5001 .loc 1 2534 21 is_stmt 0 view .LVU1738
5002 007a 6363 str r3, [r4, #52]
2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5003 .loc 1 2537 5 is_stmt 1 view .LVU1739
2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5004 .loc 1 2537 9 is_stmt 0 view .LVU1740
5005 007c 0197 str r7, [sp, #4]
5006 007e 0095 str r5, [sp]
5007 0080 4B46 mov r3, r9
5008 0082 4246 mov r2, r8
5009 0084 3146 mov r1, r6
5010 0086 2046 mov r0, r4
5011 0088 FFF7FEFF bl I2C_RequestMemoryRead
5012 .LVL310:
2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5013 .loc 1 2537 8 view .LVU1741
5014 008c 70B9 cbnz r0, .L340
2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5015 .loc 1 2546 5 is_stmt 1 view .LVU1742
2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5016 .loc 1 2546 13 is_stmt 0 view .LVU1743
ARM GAS /tmp/cczJHHnF.s page 236
5017 008e 638D ldrh r3, [r4, #42]
5018 0090 9BB2 uxth r3, r3
2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5019 .loc 1 2546 8 view .LVU1744
5020 0092 FF2B cmp r3, #255
5021 0094 0FD9 bls .L327
2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5022 .loc 1 2548 7 is_stmt 1 view .LVU1745
2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5023 .loc 1 2548 22 is_stmt 0 view .LVU1746
5024 0096 FF22 movs r2, #255
5025 0098 2285 strh r2, [r4, #40] @ movhi
2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
5026 .loc 1 2549 7 is_stmt 1 view .LVU1747
5027 009a 444B ldr r3, .L342
5028 009c 0093 str r3, [sp]
5029 009e 4FF08073 mov r3, #16777216
5030 00a2 3146 mov r1, r6
5031 00a4 2046 mov r0, r4
5032 00a6 FFF7FEFF bl I2C_TransferConfig
5033 .LVL311:
5034 00aa 21E0 b .L331
5035 .L340:
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5036 .loc 1 2540 7 view .LVU1748
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5037 .loc 1 2540 7 view .LVU1749
5038 00ac 0023 movs r3, #0
5039 00ae 84F84030 strb r3, [r4, #64]
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5040 .loc 1 2540 7 view .LVU1750
2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5041 .loc 1 2541 7 view .LVU1751
2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5042 .loc 1 2541 14 is_stmt 0 view .LVU1752
5043 00b2 5846 mov r0, fp
5044 00b4 6EE0 b .L323
5045 .L327:
2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5046 .loc 1 2554 7 is_stmt 1 view .LVU1753
2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5047 .loc 1 2554 28 is_stmt 0 view .LVU1754
5048 00b6 628D ldrh r2, [r4, #42]
5049 00b8 92B2 uxth r2, r2
2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5050 .loc 1 2554 22 view .LVU1755
5051 00ba 2285 strh r2, [r4, #40] @ movhi
2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
5052 .loc 1 2555 7 is_stmt 1 view .LVU1756
5053 00bc 3B4B ldr r3, .L342
5054 00be 0093 str r3, [sp]
5055 00c0 4FF00073 mov r3, #33554432
5056 00c4 D2B2 uxtb r2, r2
5057 00c6 3146 mov r1, r6
5058 00c8 2046 mov r0, r4
5059 00ca FFF7FEFF bl I2C_TransferConfig
5060 .LVL312:
ARM GAS /tmp/cczJHHnF.s page 237
5061 00ce 0FE0 b .L331
5062 .L330:
2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5063 .loc 1 2592 11 view .LVU1757
2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5064 .loc 1 2592 32 is_stmt 0 view .LVU1758
5065 00d0 628D ldrh r2, [r4, #42]
5066 00d2 92B2 uxth r2, r2
2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5067 .loc 1 2592 26 view .LVU1759
5068 00d4 2285 strh r2, [r4, #40] @ movhi
2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5069 .loc 1 2593 11 is_stmt 1 view .LVU1760
5070 00d6 0023 movs r3, #0
5071 00d8 0093 str r3, [sp]
5072 00da 4FF00073 mov r3, #33554432
5073 00de D2B2 uxtb r2, r2
5074 00e0 3146 mov r1, r6
5075 00e2 2046 mov r0, r4
5076 00e4 FFF7FEFF bl I2C_TransferConfig
5077 .LVL313:
5078 .L329:
2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5079 .loc 1 2597 30 view .LVU1761
2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5080 .loc 1 2597 18 is_stmt 0 view .LVU1762
5081 00e8 638D ldrh r3, [r4, #42]
5082 00ea 9BB2 uxth r3, r3
2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5083 .loc 1 2597 30 view .LVU1763
5084 00ec 002B cmp r3, #0
5085 00ee 34D0 beq .L341
5086 .L331:
2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5087 .loc 1 2559 5 is_stmt 1 view .LVU1764
2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5088 .loc 1 2562 7 view .LVU1765
2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5089 .loc 1 2562 11 is_stmt 0 view .LVU1766
5090 00f0 0097 str r7, [sp]
5091 00f2 2B46 mov r3, r5
5092 00f4 0022 movs r2, #0
5093 00f6 0421 movs r1, #4
5094 00f8 2046 mov r0, r4
5095 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5096 .LVL314:
2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5097 .loc 1 2562 10 view .LVU1767
5098 00fe 0028 cmp r0, #0
5099 0100 4DD1 bne .L335
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5100 .loc 1 2568 7 is_stmt 1 view .LVU1768
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5101 .loc 1 2568 38 is_stmt 0 view .LVU1769
5102 0102 2368 ldr r3, [r4]
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5103 .loc 1 2568 48 view .LVU1770
ARM GAS /tmp/cczJHHnF.s page 238
5104 0104 5A6A ldr r2, [r3, #36]
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5105 .loc 1 2568 12 view .LVU1771
5106 0106 636A ldr r3, [r4, #36]
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5107 .loc 1 2568 23 view .LVU1772
5108 0108 1A70 strb r2, [r3]
2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5109 .loc 1 2571 7 is_stmt 1 view .LVU1773
2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5110 .loc 1 2571 11 is_stmt 0 view .LVU1774
5111 010a 636A ldr r3, [r4, #36]
2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5112 .loc 1 2571 21 view .LVU1775
5113 010c 0133 adds r3, r3, #1
5114 010e 6362 str r3, [r4, #36]
2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5115 .loc 1 2573 7 is_stmt 1 view .LVU1776
2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5116 .loc 1 2573 11 is_stmt 0 view .LVU1777
5117 0110 228D ldrh r2, [r4, #40]
2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5118 .loc 1 2573 21 view .LVU1778
5119 0112 013A subs r2, r2, #1
5120 0114 92B2 uxth r2, r2
5121 0116 2285 strh r2, [r4, #40] @ movhi
2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5122 .loc 1 2574 7 is_stmt 1 view .LVU1779
2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5123 .loc 1 2574 11 is_stmt 0 view .LVU1780
5124 0118 638D ldrh r3, [r4, #42]
5125 011a 9BB2 uxth r3, r3
2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5126 .loc 1 2574 22 view .LVU1781
5127 011c 013B subs r3, r3, #1
5128 011e 9BB2 uxth r3, r3
5129 0120 6385 strh r3, [r4, #42] @ movhi
2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5130 .loc 1 2576 7 is_stmt 1 view .LVU1782
2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5131 .loc 1 2576 16 is_stmt 0 view .LVU1783
5132 0122 638D ldrh r3, [r4, #42]
5133 0124 9BB2 uxth r3, r3
2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5134 .loc 1 2576 10 view .LVU1784
5135 0126 002B cmp r3, #0
5136 0128 DED0 beq .L329
2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5137 .loc 1 2576 35 discriminator 1 view .LVU1785
5138 012a 002A cmp r2, #0
5139 012c DCD1 bne .L329
2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5140 .loc 1 2579 9 is_stmt 1 view .LVU1786
2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5141 .loc 1 2579 13 is_stmt 0 view .LVU1787
5142 012e 0097 str r7, [sp]
5143 0130 2B46 mov r3, r5
ARM GAS /tmp/cczJHHnF.s page 239
5144 0132 8021 movs r1, #128
5145 0134 2046 mov r0, r4
5146 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5147 .LVL315:
2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5148 .loc 1 2579 12 view .LVU1788
5149 013a 90BB cbnz r0, .L336
2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5150 .loc 1 2584 9 is_stmt 1 view .LVU1789
2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5151 .loc 1 2584 17 is_stmt 0 view .LVU1790
5152 013c 638D ldrh r3, [r4, #42]
5153 013e 9BB2 uxth r3, r3
2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5154 .loc 1 2584 12 view .LVU1791
5155 0140 FF2B cmp r3, #255
5156 0142 C5D9 bls .L330
2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
5157 .loc 1 2586 11 is_stmt 1 view .LVU1792
2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
5158 .loc 1 2586 26 is_stmt 0 view .LVU1793
5159 0144 FF22 movs r2, #255
5160 0146 2285 strh r2, [r4, #40] @ movhi
2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5161 .loc 1 2587 11 is_stmt 1 view .LVU1794
5162 0148 0023 movs r3, #0
5163 014a 0093 str r3, [sp]
5164 014c 4FF08073 mov r3, #16777216
5165 0150 3146 mov r1, r6
5166 0152 2046 mov r0, r4
5167 0154 FFF7FEFF bl I2C_TransferConfig
5168 .LVL316:
5169 0158 C6E7 b .L329
5170 .L341:
2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5171 .loc 1 2601 5 view .LVU1795
2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5172 .loc 1 2601 9 is_stmt 0 view .LVU1796
5173 015a 3A46 mov r2, r7
5174 015c 2946 mov r1, r5
5175 015e 2046 mov r0, r4
5176 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
5177 .LVL317:
2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5178 .loc 1 2601 8 view .LVU1797
5179 0164 F8B9 cbnz r0, .L337
2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5180 .loc 1 2607 5 is_stmt 1 view .LVU1798
5181 0166 2368 ldr r3, [r4]
5182 0168 2022 movs r2, #32
5183 016a DA61 str r2, [r3, #28]
2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5184 .loc 1 2610 5 view .LVU1799
5185 016c 2168 ldr r1, [r4]
5186 016e 4B68 ldr r3, [r1, #4]
5187 0170 23F0FF73 bic r3, r3, #33423360
5188 0174 23F48B33 bic r3, r3, #71168
ARM GAS /tmp/cczJHHnF.s page 240
5189 0178 23F4FF73 bic r3, r3, #510
5190 017c 23F00103 bic r3, r3, #1
5191 0180 4B60 str r3, [r1, #4]
2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5192 .loc 1 2612 5 view .LVU1800
2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5193 .loc 1 2612 17 is_stmt 0 view .LVU1801
5194 0182 84F84120 strb r2, [r4, #65]
2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5195 .loc 1 2613 5 is_stmt 1 view .LVU1802
2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5196 .loc 1 2613 17 is_stmt 0 view .LVU1803
5197 0186 0023 movs r3, #0
5198 0188 84F84230 strb r3, [r4, #66]
2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5199 .loc 1 2616 5 is_stmt 1 view .LVU1804
2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5200 .loc 1 2616 5 view .LVU1805
5201 018c 84F84030 strb r3, [r4, #64]
2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5202 .loc 1 2616 5 view .LVU1806
2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5203 .loc 1 2618 5 view .LVU1807
2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5204 .loc 1 2618 12 is_stmt 0 view .LVU1808
5205 0190 00E0 b .L323
5206 .LVL318:
5207 .L332:
2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5208 .loc 1 2622 12 view .LVU1809
5209 0192 0220 movs r0, #2
5210 .LVL319:
5211 .L323:
2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5212 .loc 1 2624 1 view .LVU1810
5213 0194 03B0 add sp, sp, #12
5214 .cfi_remember_state
5215 .cfi_def_cfa_offset 36
5216 @ sp needed
5217 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5218 .LVL320:
5219 .L333:
5220 .cfi_restore_state
2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5221 .loc 1 2517 5 view .LVU1811
5222 019a 0220 movs r0, #2
5223 .LVL321:
2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5224 .loc 1 2517 5 view .LVU1812
5225 019c FAE7 b .L323
5226 .LVL322:
5227 .L335:
2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5228 .loc 1 2564 16 view .LVU1813
5229 019e 0120 movs r0, #1
5230 01a0 F8E7 b .L323
5231 .L336:
ARM GAS /tmp/cczJHHnF.s page 241
2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5232 .loc 1 2581 18 view .LVU1814
5233 01a2 0120 movs r0, #1
5234 01a4 F6E7 b .L323
5235 .L337:
2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5236 .loc 1 2603 14 view .LVU1815
5237 01a6 0120 movs r0, #1
5238 01a8 F4E7 b .L323
5239 .L343:
5240 01aa 00BF .align 2
5241 .L342:
5242 01ac 00240080 .word -2147474432
5243 .cfi_endproc
5244 .LFE147:
5246 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
5247 .align 1
5248 .global HAL_I2C_Mem_Write_IT
5249 .syntax unified
5250 .thumb
5251 .thumb_func
5253 HAL_I2C_Mem_Write_IT:
5254 .LVL323:
5255 .LFB148:
2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5256 .loc 1 2639 1 is_stmt 1 view -0
5257 .cfi_startproc
5258 @ args = 8, pretend = 0, frame = 0
5259 @ frame_needed = 0, uses_anonymous_args = 0
2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5260 .loc 1 2639 1 is_stmt 0 view .LVU1817
5261 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
5262 .cfi_def_cfa_offset 24
5263 .cfi_offset 4, -24
5264 .cfi_offset 5, -20
5265 .cfi_offset 6, -16
5266 .cfi_offset 7, -12
5267 .cfi_offset 8, -8
5268 .cfi_offset 14, -4
5269 0004 82B0 sub sp, sp, #8
5270 .cfi_def_cfa_offset 32
5271 0006 0446 mov r4, r0
5272 0008 BDF82480 ldrh r8, [sp, #36]
2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
5273 .loc 1 2640 3 is_stmt 1 view .LVU1818
2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5274 .loc 1 2641 3 view .LVU1819
2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5275 .loc 1 2644 3 view .LVU1820
2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5276 .loc 1 2646 3 view .LVU1821
2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5277 .loc 1 2646 11 is_stmt 0 view .LVU1822
5278 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
5279 .LVL324:
2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5280 .loc 1 2646 11 view .LVU1823
ARM GAS /tmp/cczJHHnF.s page 242
5281 0010 C0B2 uxtb r0, r0
2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5282 .loc 1 2646 6 view .LVU1824
5283 0012 2028 cmp r0, #32
5284 0014 58D1 bne .L351
5285 0016 0D46 mov r5, r1
5286 0018 1746 mov r7, r2
5287 001a 1E46 mov r6, r3
2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5288 .loc 1 2648 5 is_stmt 1 view .LVU1825
2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5289 .loc 1 2648 8 is_stmt 0 view .LVU1826
5290 001c 089B ldr r3, [sp, #32]
5291 .LVL325:
2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5292 .loc 1 2648 8 view .LVU1827
5293 001e 002B cmp r3, #0
5294 0020 38D0 beq .L346
2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5295 .loc 1 2648 25 discriminator 1 view .LVU1828
5296 0022 B8F1000F cmp r8, #0
5297 0026 35D0 beq .L346
2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5298 .loc 1 2654 5 is_stmt 1 view .LVU1829
2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5299 .loc 1 2654 9 is_stmt 0 view .LVU1830
5300 0028 2368 ldr r3, [r4]
5301 002a 9B69 ldr r3, [r3, #24]
2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5302 .loc 1 2654 8 view .LVU1831
5303 002c 13F4004F tst r3, #32768
5304 0030 4FD1 bne .L352
2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5305 .loc 1 2660 5 is_stmt 1 view .LVU1832
2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5306 .loc 1 2660 5 view .LVU1833
5307 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
5308 0036 012B cmp r3, #1
5309 0038 4DD0 beq .L353
2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5310 .loc 1 2660 5 discriminator 2 view .LVU1834
5311 003a 0123 movs r3, #1
5312 003c 84F84030 strb r3, [r4, #64]
2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5313 .loc 1 2660 5 discriminator 2 view .LVU1835
2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5314 .loc 1 2663 5 discriminator 2 view .LVU1836
2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5315 .loc 1 2663 17 is_stmt 0 discriminator 2 view .LVU1837
5316 0040 FFF7FEFF bl HAL_GetTick
5317 .LVL326:
2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5318 .loc 1 2665 5 is_stmt 1 discriminator 2 view .LVU1838
2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5319 .loc 1 2665 23 is_stmt 0 discriminator 2 view .LVU1839
5320 0044 2123 movs r3, #33
5321 0046 84F84130 strb r3, [r4, #65]
ARM GAS /tmp/cczJHHnF.s page 243
2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5322 .loc 1 2666 5 is_stmt 1 discriminator 2 view .LVU1840
2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5323 .loc 1 2666 23 is_stmt 0 discriminator 2 view .LVU1841
5324 004a 4023 movs r3, #64
5325 004c 84F84230 strb r3, [r4, #66]
2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5326 .loc 1 2667 5 is_stmt 1 discriminator 2 view .LVU1842
2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5327 .loc 1 2667 23 is_stmt 0 discriminator 2 view .LVU1843
5328 0050 0023 movs r3, #0
5329 0052 6364 str r3, [r4, #68]
2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5330 .loc 1 2670 5 is_stmt 1 discriminator 2 view .LVU1844
2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5331 .loc 1 2670 23 is_stmt 0 discriminator 2 view .LVU1845
5332 0054 089B ldr r3, [sp, #32]
5333 0056 6362 str r3, [r4, #36]
2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5334 .loc 1 2671 5 is_stmt 1 discriminator 2 view .LVU1846
2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5335 .loc 1 2671 23 is_stmt 0 discriminator 2 view .LVU1847
5336 0058 A4F82A80 strh r8, [r4, #42] @ movhi
2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5337 .loc 1 2672 5 is_stmt 1 discriminator 2 view .LVU1848
2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5338 .loc 1 2672 23 is_stmt 0 discriminator 2 view .LVU1849
5339 005c 1F4B ldr r3, .L355
5340 005e E362 str r3, [r4, #44]
2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5341 .loc 1 2673 5 is_stmt 1 discriminator 2 view .LVU1850
2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5342 .loc 1 2673 23 is_stmt 0 discriminator 2 view .LVU1851
5343 0060 1F4B ldr r3, .L355+4
5344 0062 6363 str r3, [r4, #52]
2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5345 .loc 1 2675 5 is_stmt 1 discriminator 2 view .LVU1852
2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5346 .loc 1 2675 13 is_stmt 0 discriminator 2 view .LVU1853
5347 0064 638D ldrh r3, [r4, #42]
5348 0066 9BB2 uxth r3, r3
2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5349 .loc 1 2675 8 discriminator 2 view .LVU1854
5350 0068 FF2B cmp r3, #255
5351 006a 18D9 bls .L348
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5352 .loc 1 2677 7 is_stmt 1 view .LVU1855
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5353 .loc 1 2677 22 is_stmt 0 view .LVU1856
5354 006c FF23 movs r3, #255
5355 006e 2385 strh r3, [r4, #40] @ movhi
2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5356 .loc 1 2678 7 is_stmt 1 view .LVU1857
5357 .LVL327:
2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5358 .loc 1 2678 16 is_stmt 0 view .LVU1858
5359 0070 4FF08078 mov r8, #16777216
ARM GAS /tmp/cczJHHnF.s page 244
5360 .LVL328:
5361 .L349:
2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
5362 .loc 1 2687 5 is_stmt 1 view .LVU1859
2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
5363 .loc 1 2687 9 is_stmt 0 view .LVU1860
5364 0074 0190 str r0, [sp, #4]
5365 0076 1923 movs r3, #25
5366 0078 0093 str r3, [sp]
5367 007a 3346 mov r3, r6
5368 007c 3A46 mov r2, r7
5369 007e 2946 mov r1, r5
5370 0080 2046 mov r0, r4
5371 .LVL329:
2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
5372 .loc 1 2687 9 view .LVU1861
5373 0082 FFF7FEFF bl I2C_RequestMemoryWrite
5374 .LVL330:
2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
5375 .loc 1 2687 8 view .LVU1862
5376 0086 0646 mov r6, r0
5377 0088 70B1 cbz r0, .L350
2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5378 .loc 1 2691 7 is_stmt 1 view .LVU1863
2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5379 .loc 1 2691 7 view .LVU1864
5380 008a 0023 movs r3, #0
5381 008c 84F84030 strb r3, [r4, #64]
2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5382 .loc 1 2691 7 view .LVU1865
2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5383 .loc 1 2692 7 view .LVU1866
2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5384 .loc 1 2692 14 is_stmt 0 view .LVU1867
5385 0090 0126 movs r6, #1
5386 0092 1AE0 b .L345
5387 .LVL331:
5388 .L346:
2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5389 .loc 1 2650 7 is_stmt 1 view .LVU1868
2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5390 .loc 1 2650 23 is_stmt 0 view .LVU1869
5391 0094 4FF40073 mov r3, #512
5392 0098 6364 str r3, [r4, #68]
2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5393 .loc 1 2651 7 is_stmt 1 view .LVU1870
2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5394 .loc 1 2651 15 is_stmt 0 view .LVU1871
5395 009a 0126 movs r6, #1
5396 009c 15E0 b .L345
5397 .LVL332:
5398 .L348:
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5399 .loc 1 2682 7 is_stmt 1 view .LVU1872
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5400 .loc 1 2682 28 is_stmt 0 view .LVU1873
5401 009e 638D ldrh r3, [r4, #42]
ARM GAS /tmp/cczJHHnF.s page 245
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5402 .loc 1 2682 22 view .LVU1874
5403 00a0 2385 strh r3, [r4, #40] @ movhi
2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5404 .loc 1 2683 7 is_stmt 1 view .LVU1875
5405 .LVL333:
2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5406 .loc 1 2683 16 is_stmt 0 view .LVU1876
5407 00a2 4FF00078 mov r8, #33554432
5408 00a6 E5E7 b .L349
5409 .LVL334:
5410 .L350:
2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5411 .loc 1 2696 5 is_stmt 1 view .LVU1877
5412 00a8 0027 movs r7, #0
5413 00aa 0097 str r7, [sp]
5414 00ac 4346 mov r3, r8
5415 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
5416 00b2 2946 mov r1, r5
5417 00b4 2046 mov r0, r4
5418 00b6 FFF7FEFF bl I2C_TransferConfig
5419 .LVL335:
2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5420 .loc 1 2699 5 view .LVU1878
2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5421 .loc 1 2699 5 view .LVU1879
5422 00ba 84F84070 strb r7, [r4, #64]
2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5423 .loc 1 2699 5 view .LVU1880
2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5424 .loc 1 2709 5 view .LVU1881
5425 00be 0121 movs r1, #1
5426 00c0 2046 mov r0, r4
5427 00c2 FFF7FEFF bl I2C_Enable_IRQ
5428 .LVL336:
2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5429 .loc 1 2711 5 view .LVU1882
2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5430 .loc 1 2711 12 is_stmt 0 view .LVU1883
5431 00c6 00E0 b .L345
5432 .LVL337:
5433 .L351:
2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5434 .loc 1 2715 12 view .LVU1884
5435 00c8 0226 movs r6, #2
5436 .LVL338:
5437 .L345:
2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5438 .loc 1 2717 1 view .LVU1885
5439 00ca 3046 mov r0, r6
5440 00cc 02B0 add sp, sp, #8
5441 .cfi_remember_state
5442 .cfi_def_cfa_offset 24
5443 @ sp needed
5444 00ce BDE8F081 pop {r4, r5, r6, r7, r8, pc}
5445 .LVL339:
5446 .L352:
ARM GAS /tmp/cczJHHnF.s page 246
5447 .cfi_restore_state
2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5448 .loc 1 2656 14 view .LVU1886
5449 00d2 0226 movs r6, #2
5450 00d4 F9E7 b .L345
5451 .L353:
2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5452 .loc 1 2660 5 view .LVU1887
5453 00d6 0226 movs r6, #2
5454 00d8 F7E7 b .L345
5455 .L356:
5456 00da 00BF .align 2
5457 .L355:
5458 00dc 0000FFFF .word -65536
5459 00e0 00000000 .word I2C_Master_ISR_IT
5460 .cfi_endproc
5461 .LFE148:
5463 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
5464 .align 1
5465 .global HAL_I2C_Mem_Read_IT
5466 .syntax unified
5467 .thumb
5468 .thumb_func
5470 HAL_I2C_Mem_Read_IT:
5471 .LVL340:
5472 .LFB149:
2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5473 .loc 1 2733 1 is_stmt 1 view -0
5474 .cfi_startproc
5475 @ args = 8, pretend = 0, frame = 0
5476 @ frame_needed = 0, uses_anonymous_args = 0
2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5477 .loc 1 2733 1 is_stmt 0 view .LVU1889
5478 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
5479 .cfi_def_cfa_offset 24
5480 .cfi_offset 4, -24
5481 .cfi_offset 5, -20
5482 .cfi_offset 6, -16
5483 .cfi_offset 7, -12
5484 .cfi_offset 8, -8
5485 .cfi_offset 14, -4
5486 0004 82B0 sub sp, sp, #8
5487 .cfi_def_cfa_offset 32
5488 0006 0446 mov r4, r0
5489 0008 BDF82480 ldrh r8, [sp, #36]
2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
5490 .loc 1 2734 3 is_stmt 1 view .LVU1890
2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5491 .loc 1 2735 3 view .LVU1891
2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5492 .loc 1 2738 3 view .LVU1892
2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5493 .loc 1 2740 3 view .LVU1893
2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5494 .loc 1 2740 11 is_stmt 0 view .LVU1894
5495 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
5496 .LVL341:
ARM GAS /tmp/cczJHHnF.s page 247
2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5497 .loc 1 2740 11 view .LVU1895
5498 0010 C0B2 uxtb r0, r0
2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5499 .loc 1 2740 6 view .LVU1896
5500 0012 2028 cmp r0, #32
5501 0014 59D1 bne .L364
5502 0016 0D46 mov r5, r1
5503 0018 1746 mov r7, r2
5504 001a 1E46 mov r6, r3
2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5505 .loc 1 2742 5 is_stmt 1 view .LVU1897
2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5506 .loc 1 2742 8 is_stmt 0 view .LVU1898
5507 001c 089B ldr r3, [sp, #32]
5508 .LVL342:
2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5509 .loc 1 2742 8 view .LVU1899
5510 001e 002B cmp r3, #0
5511 0020 38D0 beq .L359
2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5512 .loc 1 2742 25 discriminator 1 view .LVU1900
5513 0022 B8F1000F cmp r8, #0
5514 0026 35D0 beq .L359
2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5515 .loc 1 2748 5 is_stmt 1 view .LVU1901
2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5516 .loc 1 2748 9 is_stmt 0 view .LVU1902
5517 0028 2368 ldr r3, [r4]
5518 002a 9B69 ldr r3, [r3, #24]
2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5519 .loc 1 2748 8 view .LVU1903
5520 002c 13F4004F tst r3, #32768
5521 0030 50D1 bne .L365
2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5522 .loc 1 2754 5 is_stmt 1 view .LVU1904
2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5523 .loc 1 2754 5 view .LVU1905
5524 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
5525 0036 012B cmp r3, #1
5526 0038 4ED0 beq .L366
2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5527 .loc 1 2754 5 discriminator 2 view .LVU1906
5528 003a 0123 movs r3, #1
5529 003c 84F84030 strb r3, [r4, #64]
2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5530 .loc 1 2754 5 discriminator 2 view .LVU1907
2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5531 .loc 1 2757 5 discriminator 2 view .LVU1908
2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5532 .loc 1 2757 17 is_stmt 0 discriminator 2 view .LVU1909
5533 0040 FFF7FEFF bl HAL_GetTick
5534 .LVL343:
2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5535 .loc 1 2759 5 is_stmt 1 discriminator 2 view .LVU1910
2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5536 .loc 1 2759 23 is_stmt 0 discriminator 2 view .LVU1911
ARM GAS /tmp/cczJHHnF.s page 248
5537 0044 2223 movs r3, #34
5538 0046 84F84130 strb r3, [r4, #65]
2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5539 .loc 1 2760 5 is_stmt 1 discriminator 2 view .LVU1912
2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5540 .loc 1 2760 23 is_stmt 0 discriminator 2 view .LVU1913
5541 004a 4023 movs r3, #64
5542 004c 84F84230 strb r3, [r4, #66]
2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5543 .loc 1 2761 5 is_stmt 1 discriminator 2 view .LVU1914
2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5544 .loc 1 2761 23 is_stmt 0 discriminator 2 view .LVU1915
5545 0050 0023 movs r3, #0
5546 0052 6364 str r3, [r4, #68]
2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5547 .loc 1 2764 5 is_stmt 1 discriminator 2 view .LVU1916
2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5548 .loc 1 2764 23 is_stmt 0 discriminator 2 view .LVU1917
5549 0054 089B ldr r3, [sp, #32]
5550 0056 6362 str r3, [r4, #36]
2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5551 .loc 1 2765 5 is_stmt 1 discriminator 2 view .LVU1918
2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5552 .loc 1 2765 23 is_stmt 0 discriminator 2 view .LVU1919
5553 0058 A4F82A80 strh r8, [r4, #42] @ movhi
2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5554 .loc 1 2766 5 is_stmt 1 discriminator 2 view .LVU1920
2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
5555 .loc 1 2766 23 is_stmt 0 discriminator 2 view .LVU1921
5556 005c 1F4B ldr r3, .L368
5557 005e E362 str r3, [r4, #44]
2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5558 .loc 1 2767 5 is_stmt 1 discriminator 2 view .LVU1922
2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5559 .loc 1 2767 23 is_stmt 0 discriminator 2 view .LVU1923
5560 0060 1F4B ldr r3, .L368+4
5561 0062 6363 str r3, [r4, #52]
2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5562 .loc 1 2769 5 is_stmt 1 discriminator 2 view .LVU1924
2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5563 .loc 1 2769 13 is_stmt 0 discriminator 2 view .LVU1925
5564 0064 638D ldrh r3, [r4, #42]
5565 0066 9BB2 uxth r3, r3
2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5566 .loc 1 2769 8 discriminator 2 view .LVU1926
5567 0068 FF2B cmp r3, #255
5568 006a 18D9 bls .L361
2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5569 .loc 1 2771 7 is_stmt 1 view .LVU1927
2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5570 .loc 1 2771 22 is_stmt 0 view .LVU1928
5571 006c FF23 movs r3, #255
5572 006e 2385 strh r3, [r4, #40] @ movhi
2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5573 .loc 1 2772 7 is_stmt 1 view .LVU1929
5574 .LVL344:
2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 249
5575 .loc 1 2772 16 is_stmt 0 view .LVU1930
5576 0070 4FF08078 mov r8, #16777216
5577 .LVL345:
5578 .L362:
2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5579 .loc 1 2781 5 is_stmt 1 view .LVU1931
2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5580 .loc 1 2781 9 is_stmt 0 view .LVU1932
5581 0074 0190 str r0, [sp, #4]
5582 0076 1923 movs r3, #25
5583 0078 0093 str r3, [sp]
5584 007a 3346 mov r3, r6
5585 007c 3A46 mov r2, r7
5586 007e 2946 mov r1, r5
5587 0080 2046 mov r0, r4
5588 .LVL346:
2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5589 .loc 1 2781 9 view .LVU1933
5590 0082 FFF7FEFF bl I2C_RequestMemoryRead
5591 .LVL347:
2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5592 .loc 1 2781 8 view .LVU1934
5593 0086 0646 mov r6, r0
5594 0088 70B1 cbz r0, .L363
2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5595 .loc 1 2784 7 is_stmt 1 view .LVU1935
2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5596 .loc 1 2784 7 view .LVU1936
5597 008a 0023 movs r3, #0
5598 008c 84F84030 strb r3, [r4, #64]
2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5599 .loc 1 2784 7 view .LVU1937
2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5600 .loc 1 2785 7 view .LVU1938
2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5601 .loc 1 2785 14 is_stmt 0 view .LVU1939
5602 0090 0126 movs r6, #1
5603 0092 1BE0 b .L358
5604 .LVL348:
5605 .L359:
2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5606 .loc 1 2744 7 is_stmt 1 view .LVU1940
2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5607 .loc 1 2744 23 is_stmt 0 view .LVU1941
5608 0094 4FF40073 mov r3, #512
5609 0098 6364 str r3, [r4, #68]
2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5610 .loc 1 2745 7 is_stmt 1 view .LVU1942
2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5611 .loc 1 2745 15 is_stmt 0 view .LVU1943
5612 009a 0126 movs r6, #1
5613 009c 16E0 b .L358
5614 .LVL349:
5615 .L361:
2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5616 .loc 1 2776 7 is_stmt 1 view .LVU1944
2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
ARM GAS /tmp/cczJHHnF.s page 250
5617 .loc 1 2776 28 is_stmt 0 view .LVU1945
5618 009e 638D ldrh r3, [r4, #42]
2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5619 .loc 1 2776 22 view .LVU1946
5620 00a0 2385 strh r3, [r4, #40] @ movhi
2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5621 .loc 1 2777 7 is_stmt 1 view .LVU1947
5622 .LVL350:
2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5623 .loc 1 2777 16 is_stmt 0 view .LVU1948
5624 00a2 4FF00078 mov r8, #33554432
5625 00a6 E5E7 b .L362
5626 .LVL351:
5627 .L363:
2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5628 .loc 1 2789 5 is_stmt 1 view .LVU1949
5629 00a8 0E4B ldr r3, .L368+8
5630 00aa 0093 str r3, [sp]
5631 00ac 4346 mov r3, r8
5632 00ae 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
5633 00b2 2946 mov r1, r5
5634 00b4 2046 mov r0, r4
5635 00b6 FFF7FEFF bl I2C_TransferConfig
5636 .LVL352:
2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5637 .loc 1 2792 5 view .LVU1950
2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5638 .loc 1 2792 5 view .LVU1951
5639 00ba 0023 movs r3, #0
5640 00bc 84F84030 strb r3, [r4, #64]
2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5641 .loc 1 2792 5 view .LVU1952
2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5642 .loc 1 2802 5 view .LVU1953
5643 00c0 0221 movs r1, #2
5644 00c2 2046 mov r0, r4
5645 00c4 FFF7FEFF bl I2C_Enable_IRQ
5646 .LVL353:
2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5647 .loc 1 2804 5 view .LVU1954
2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5648 .loc 1 2804 12 is_stmt 0 view .LVU1955
5649 00c8 00E0 b .L358
5650 .LVL354:
5651 .L364:
2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5652 .loc 1 2808 12 view .LVU1956
5653 00ca 0226 movs r6, #2
5654 .LVL355:
5655 .L358:
2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5656 .loc 1 2810 1 view .LVU1957
5657 00cc 3046 mov r0, r6
5658 00ce 02B0 add sp, sp, #8
5659 .cfi_remember_state
5660 .cfi_def_cfa_offset 24
5661 @ sp needed
ARM GAS /tmp/cczJHHnF.s page 251
5662 00d0 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
5663 .LVL356:
5664 .L365:
5665 .cfi_restore_state
2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5666 .loc 1 2750 14 view .LVU1958
5667 00d4 0226 movs r6, #2
5668 00d6 F9E7 b .L358
5669 .L366:
2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5670 .loc 1 2754 5 view .LVU1959
5671 00d8 0226 movs r6, #2
5672 00da F7E7 b .L358
5673 .L369:
5674 .align 2
5675 .L368:
5676 00dc 0000FFFF .word -65536
5677 00e0 00000000 .word I2C_Master_ISR_IT
5678 00e4 00240080 .word -2147474432
5679 .cfi_endproc
5680 .LFE149:
5682 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
5683 .align 1
5684 .global HAL_I2C_Mem_Write_DMA
5685 .syntax unified
5686 .thumb
5687 .thumb_func
5689 HAL_I2C_Mem_Write_DMA:
5690 .LVL357:
5691 .LFB150:
2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5692 .loc 1 2825 1 is_stmt 1 view -0
5693 .cfi_startproc
5694 @ args = 8, pretend = 0, frame = 0
5695 @ frame_needed = 0, uses_anonymous_args = 0
2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5696 .loc 1 2825 1 is_stmt 0 view .LVU1961
5697 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
5698 .cfi_def_cfa_offset 24
5699 .cfi_offset 4, -24
5700 .cfi_offset 5, -20
5701 .cfi_offset 6, -16
5702 .cfi_offset 7, -12
5703 .cfi_offset 8, -8
5704 .cfi_offset 14, -4
5705 0004 82B0 sub sp, sp, #8
5706 .cfi_def_cfa_offset 32
5707 0006 0446 mov r4, r0
5708 0008 BDF82480 ldrh r8, [sp, #36]
2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
5709 .loc 1 2826 3 is_stmt 1 view .LVU1962
2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
5710 .loc 1 2827 3 view .LVU1963
2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5711 .loc 1 2828 3 view .LVU1964
2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5712 .loc 1 2831 3 view .LVU1965
ARM GAS /tmp/cczJHHnF.s page 252
2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5713 .loc 1 2833 3 view .LVU1966
2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5714 .loc 1 2833 11 is_stmt 0 view .LVU1967
5715 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
5716 .LVL358:
2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5717 .loc 1 2833 11 view .LVU1968
5718 0010 C0B2 uxtb r0, r0
2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5719 .loc 1 2833 6 view .LVU1969
5720 0012 2028 cmp r0, #32
5721 0014 40F09880 bne .L380
5722 0018 0D46 mov r5, r1
5723 001a 1746 mov r7, r2
5724 001c 1E46 mov r6, r3
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5725 .loc 1 2835 5 is_stmt 1 view .LVU1970
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5726 .loc 1 2835 8 is_stmt 0 view .LVU1971
5727 001e 089B ldr r3, [sp, #32]
5728 .LVL359:
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5729 .loc 1 2835 8 view .LVU1972
5730 0020 002B cmp r3, #0
5731 0022 59D0 beq .L372
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5732 .loc 1 2835 25 discriminator 1 view .LVU1973
5733 0024 B8F1000F cmp r8, #0
5734 0028 56D0 beq .L372
2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5735 .loc 1 2841 5 is_stmt 1 view .LVU1974
2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5736 .loc 1 2841 9 is_stmt 0 view .LVU1975
5737 002a 2368 ldr r3, [r4]
5738 002c 9B69 ldr r3, [r3, #24]
2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5739 .loc 1 2841 8 view .LVU1976
5740 002e 13F4004F tst r3, #32768
5741 0032 40F08E80 bne .L381
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5742 .loc 1 2847 5 is_stmt 1 view .LVU1977
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5743 .loc 1 2847 5 view .LVU1978
5744 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
5745 003a 012B cmp r3, #1
5746 003c 00F08B80 beq .L382
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5747 .loc 1 2847 5 discriminator 2 view .LVU1979
5748 0040 0123 movs r3, #1
5749 0042 84F84030 strb r3, [r4, #64]
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5750 .loc 1 2847 5 discriminator 2 view .LVU1980
2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5751 .loc 1 2850 5 discriminator 2 view .LVU1981
2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5752 .loc 1 2850 17 is_stmt 0 discriminator 2 view .LVU1982
ARM GAS /tmp/cczJHHnF.s page 253
5753 0046 FFF7FEFF bl HAL_GetTick
5754 .LVL360:
2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5755 .loc 1 2852 5 is_stmt 1 discriminator 2 view .LVU1983
2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5756 .loc 1 2852 23 is_stmt 0 discriminator 2 view .LVU1984
5757 004a 2123 movs r3, #33
5758 004c 84F84130 strb r3, [r4, #65]
2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5759 .loc 1 2853 5 is_stmt 1 discriminator 2 view .LVU1985
2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5760 .loc 1 2853 23 is_stmt 0 discriminator 2 view .LVU1986
5761 0050 4023 movs r3, #64
5762 0052 84F84230 strb r3, [r4, #66]
2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5763 .loc 1 2854 5 is_stmt 1 discriminator 2 view .LVU1987
2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5764 .loc 1 2854 23 is_stmt 0 discriminator 2 view .LVU1988
5765 0056 0023 movs r3, #0
5766 0058 6364 str r3, [r4, #68]
2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5767 .loc 1 2857 5 is_stmt 1 discriminator 2 view .LVU1989
2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5768 .loc 1 2857 23 is_stmt 0 discriminator 2 view .LVU1990
5769 005a 089B ldr r3, [sp, #32]
5770 005c 6362 str r3, [r4, #36]
2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5771 .loc 1 2858 5 is_stmt 1 discriminator 2 view .LVU1991
2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5772 .loc 1 2858 23 is_stmt 0 discriminator 2 view .LVU1992
5773 005e A4F82A80 strh r8, [r4, #42] @ movhi
2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
5774 .loc 1 2859 5 is_stmt 1 discriminator 2 view .LVU1993
2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
5775 .loc 1 2859 23 is_stmt 0 discriminator 2 view .LVU1994
5776 0062 3E4B ldr r3, .L387
5777 0064 E362 str r3, [r4, #44]
2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5778 .loc 1 2860 5 is_stmt 1 discriminator 2 view .LVU1995
2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5779 .loc 1 2860 23 is_stmt 0 discriminator 2 view .LVU1996
5780 0066 3E4B ldr r3, .L387+4
5781 0068 6363 str r3, [r4, #52]
2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5782 .loc 1 2862 5 is_stmt 1 discriminator 2 view .LVU1997
2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5783 .loc 1 2862 13 is_stmt 0 discriminator 2 view .LVU1998
5784 006a 638D ldrh r3, [r4, #42]
5785 006c 9BB2 uxth r3, r3
2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5786 .loc 1 2862 8 discriminator 2 view .LVU1999
5787 006e FF2B cmp r3, #255
5788 0070 37D9 bls .L374
2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5789 .loc 1 2864 7 is_stmt 1 view .LVU2000
2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5790 .loc 1 2864 22 is_stmt 0 view .LVU2001
ARM GAS /tmp/cczJHHnF.s page 254
5791 0072 FF23 movs r3, #255
5792 0074 2385 strh r3, [r4, #40] @ movhi
2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5793 .loc 1 2865 7 is_stmt 1 view .LVU2002
5794 .LVL361:
2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5795 .loc 1 2865 16 is_stmt 0 view .LVU2003
5796 0076 4FF08078 mov r8, #16777216
5797 .LVL362:
5798 .L375:
2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
5799 .loc 1 2874 5 is_stmt 1 view .LVU2004
2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
5800 .loc 1 2874 9 is_stmt 0 view .LVU2005
5801 007a 0190 str r0, [sp, #4]
5802 007c 1923 movs r3, #25
5803 007e 0093 str r3, [sp]
5804 0080 3346 mov r3, r6
5805 0082 3A46 mov r2, r7
5806 0084 2946 mov r1, r5
5807 0086 2046 mov r0, r4
5808 .LVL363:
2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
5809 .loc 1 2874 9 view .LVU2006
5810 0088 FFF7FEFF bl I2C_RequestMemoryWrite
5811 .LVL364:
2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** != HAL_OK)
5812 .loc 1 2874 8 view .LVU2007
5813 008c 0028 cmp r0, #0
5814 008e 2DD1 bne .L385
2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5815 .loc 1 2883 5 is_stmt 1 view .LVU2008
2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5816 .loc 1 2883 13 is_stmt 0 view .LVU2009
5817 0090 A36B ldr r3, [r4, #56]
2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5818 .loc 1 2883 8 view .LVU2010
5819 0092 002B cmp r3, #0
5820 0094 2FD0 beq .L377
2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5821 .loc 1 2886 7 is_stmt 1 view .LVU2011
2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5822 .loc 1 2886 38 is_stmt 0 view .LVU2012
5823 0096 334A ldr r2, .L387+8
5824 0098 9A62 str r2, [r3, #40]
2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5825 .loc 1 2889 7 is_stmt 1 view .LVU2013
2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5826 .loc 1 2889 11 is_stmt 0 view .LVU2014
5827 009a A36B ldr r3, [r4, #56]
2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5828 .loc 1 2889 39 view .LVU2015
5829 009c 324A ldr r2, .L387+12
5830 009e 1A63 str r2, [r3, #48]
2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
5831 .loc 1 2892 7 is_stmt 1 view .LVU2016
2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
ARM GAS /tmp/cczJHHnF.s page 255
5832 .loc 1 2892 11 is_stmt 0 view .LVU2017
5833 00a0 A26B ldr r2, [r4, #56]
2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
5834 .loc 1 2892 42 view .LVU2018
5835 00a2 0023 movs r3, #0
5836 00a4 D362 str r3, [r2, #44]
2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5837 .loc 1 2893 7 is_stmt 1 view .LVU2019
2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5838 .loc 1 2893 11 is_stmt 0 view .LVU2020
5839 00a6 A26B ldr r2, [r4, #56]
2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5840 .loc 1 2893 39 view .LVU2021
5841 00a8 5363 str r3, [r2, #52]
2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
5842 .loc 1 2896 7 is_stmt 1 view .LVU2022
2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
5843 .loc 1 2896 86 is_stmt 0 view .LVU2023
5844 00aa 2268 ldr r2, [r4]
2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
5845 .loc 1 2896 23 view .LVU2024
5846 00ac 238D ldrh r3, [r4, #40]
5847 00ae 2832 adds r2, r2, #40
5848 00b0 0899 ldr r1, [sp, #32]
5849 00b2 A06B ldr r0, [r4, #56]
5850 00b4 FFF7FEFF bl HAL_DMA_Start_IT
5851 .LVL365:
2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5852 .loc 1 2914 5 is_stmt 1 view .LVU2025
2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5853 .loc 1 2914 8 is_stmt 0 view .LVU2026
5854 00b8 0646 mov r6, r0
5855 00ba 50B3 cbz r0, .L386
2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5856 .loc 1 2938 7 is_stmt 1 view .LVU2027
2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5857 .loc 1 2938 23 is_stmt 0 view .LVU2028
5858 00bc 2023 movs r3, #32
5859 00be 84F84130 strb r3, [r4, #65]
2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5860 .loc 1 2939 7 is_stmt 1 view .LVU2029
2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5861 .loc 1 2939 23 is_stmt 0 view .LVU2030
5862 00c2 0022 movs r2, #0
5863 00c4 84F84220 strb r2, [r4, #66]
2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5864 .loc 1 2942 7 is_stmt 1 view .LVU2031
2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5865 .loc 1 2942 11 is_stmt 0 view .LVU2032
5866 00c8 636C ldr r3, [r4, #68]
2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5867 .loc 1 2942 23 view .LVU2033
5868 00ca 43F01003 orr r3, r3, #16
5869 00ce 6364 str r3, [r4, #68]
2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5870 .loc 1 2945 7 is_stmt 1 view .LVU2034
2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 256
5871 .loc 1 2945 7 view .LVU2035
5872 00d0 84F84020 strb r2, [r4, #64]
2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5873 .loc 1 2945 7 view .LVU2036
2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5874 .loc 1 2947 7 view .LVU2037
2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5875 .loc 1 2947 14 is_stmt 0 view .LVU2038
5876 00d4 0126 movs r6, #1
5877 00d6 38E0 b .L371
5878 .LVL366:
5879 .L372:
2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5880 .loc 1 2837 7 is_stmt 1 view .LVU2039
2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5881 .loc 1 2837 23 is_stmt 0 view .LVU2040
5882 00d8 4FF40073 mov r3, #512
5883 00dc 6364 str r3, [r4, #68]
2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5884 .loc 1 2838 7 is_stmt 1 view .LVU2041
2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5885 .loc 1 2838 15 is_stmt 0 view .LVU2042
5886 00de 0126 movs r6, #1
5887 00e0 33E0 b .L371
5888 .LVL367:
5889 .L374:
2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5890 .loc 1 2869 7 is_stmt 1 view .LVU2043
2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5891 .loc 1 2869 28 is_stmt 0 view .LVU2044
5892 00e2 638D ldrh r3, [r4, #42]
2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5893 .loc 1 2869 22 view .LVU2045
5894 00e4 2385 strh r3, [r4, #40] @ movhi
2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5895 .loc 1 2870 7 is_stmt 1 view .LVU2046
5896 .LVL368:
2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5897 .loc 1 2870 16 is_stmt 0 view .LVU2047
5898 00e6 4FF00078 mov r8, #33554432
5899 00ea C6E7 b .L375
5900 .LVL369:
5901 .L385:
2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5902 .loc 1 2878 7 is_stmt 1 view .LVU2048
2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5903 .loc 1 2878 7 view .LVU2049
5904 00ec 0023 movs r3, #0
5905 00ee 84F84030 strb r3, [r4, #64]
2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5906 .loc 1 2878 7 view .LVU2050
2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5907 .loc 1 2879 7 view .LVU2051
2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5908 .loc 1 2879 14 is_stmt 0 view .LVU2052
5909 00f2 0126 movs r6, #1
5910 00f4 29E0 b .L371
ARM GAS /tmp/cczJHHnF.s page 257
5911 .L377:
2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5912 .loc 1 2902 7 is_stmt 1 view .LVU2053
2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5913 .loc 1 2902 23 is_stmt 0 view .LVU2054
5914 00f6 2023 movs r3, #32
5915 00f8 84F84130 strb r3, [r4, #65]
2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5916 .loc 1 2903 7 is_stmt 1 view .LVU2055
2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5917 .loc 1 2903 23 is_stmt 0 view .LVU2056
5918 00fc 0022 movs r2, #0
5919 00fe 84F84220 strb r2, [r4, #66]
2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5920 .loc 1 2906 7 is_stmt 1 view .LVU2057
2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5921 .loc 1 2906 11 is_stmt 0 view .LVU2058
5922 0102 636C ldr r3, [r4, #68]
2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5923 .loc 1 2906 23 view .LVU2059
5924 0104 43F08003 orr r3, r3, #128
5925 0108 6364 str r3, [r4, #68]
2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5926 .loc 1 2909 7 is_stmt 1 view .LVU2060
2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5927 .loc 1 2909 7 view .LVU2061
5928 010a 84F84020 strb r2, [r4, #64]
2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5929 .loc 1 2909 7 view .LVU2062
2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5930 .loc 1 2911 7 view .LVU2063
2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5931 .loc 1 2911 14 is_stmt 0 view .LVU2064
5932 010e 0126 movs r6, #1
5933 0110 1BE0 b .L371
5934 .LVL370:
5935 .L386:
2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5936 .loc 1 2918 7 is_stmt 1 view .LVU2065
5937 0112 0027 movs r7, #0
5938 0114 0097 str r7, [sp]
5939 0116 4346 mov r3, r8
5940 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
5941 011c 2946 mov r1, r5
5942 011e 2046 mov r0, r4
5943 .LVL371:
2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5944 .loc 1 2918 7 is_stmt 0 view .LVU2066
5945 0120 FFF7FEFF bl I2C_TransferConfig
5946 .LVL372:
2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5947 .loc 1 2921 7 is_stmt 1 view .LVU2067
2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5948 .loc 1 2921 11 is_stmt 0 view .LVU2068
5949 0124 638D ldrh r3, [r4, #42]
5950 0126 9BB2 uxth r3, r3
2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 258
5951 .loc 1 2921 30 view .LVU2069
5952 0128 228D ldrh r2, [r4, #40]
2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5953 .loc 1 2921 23 view .LVU2070
5954 012a 9B1A subs r3, r3, r2
5955 012c 9BB2 uxth r3, r3
5956 012e 6385 strh r3, [r4, #42] @ movhi
2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5957 .loc 1 2924 7 is_stmt 1 view .LVU2071
2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5958 .loc 1 2924 7 view .LVU2072
5959 0130 84F84070 strb r7, [r4, #64]
2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5960 .loc 1 2924 7 view .LVU2073
2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5961 .loc 1 2930 7 view .LVU2074
5962 0134 1021 movs r1, #16
5963 0136 2046 mov r0, r4
5964 0138 FFF7FEFF bl I2C_Enable_IRQ
5965 .LVL373:
2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5966 .loc 1 2933 7 view .LVU2075
2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5967 .loc 1 2933 11 is_stmt 0 view .LVU2076
5968 013c 2268 ldr r2, [r4]
2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5969 .loc 1 2933 21 view .LVU2077
5970 013e 1368 ldr r3, [r2]
2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5971 .loc 1 2933 27 view .LVU2078
5972 0140 43F48043 orr r3, r3, #16384
5973 0144 1360 str r3, [r2]
2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5974 .loc 1 2950 5 is_stmt 1 view .LVU2079
2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5975 .loc 1 2950 12 is_stmt 0 view .LVU2080
5976 0146 00E0 b .L371
5977 .LVL374:
5978 .L380:
2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5979 .loc 1 2954 12 view .LVU2081
5980 0148 0226 movs r6, #2
5981 .LVL375:
5982 .L371:
2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5983 .loc 1 2956 1 view .LVU2082
5984 014a 3046 mov r0, r6
5985 014c 02B0 add sp, sp, #8
5986 .cfi_remember_state
5987 .cfi_def_cfa_offset 24
5988 @ sp needed
5989 014e BDE8F081 pop {r4, r5, r6, r7, r8, pc}
5990 .LVL376:
5991 .L381:
5992 .cfi_restore_state
2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5993 .loc 1 2843 14 view .LVU2083
ARM GAS /tmp/cczJHHnF.s page 259
5994 0152 0226 movs r6, #2
5995 0154 F9E7 b .L371
5996 .L382:
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5997 .loc 1 2847 5 view .LVU2084
5998 0156 0226 movs r6, #2
5999 0158 F7E7 b .L371
6000 .L388:
6001 015a 00BF .align 2
6002 .L387:
6003 015c 0000FFFF .word -65536
6004 0160 00000000 .word I2C_Master_ISR_DMA
6005 0164 00000000 .word I2C_DMAMasterTransmitCplt
6006 0168 00000000 .word I2C_DMAError
6007 .cfi_endproc
6008 .LFE150:
6010 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
6011 .align 1
6012 .global HAL_I2C_Mem_Read_DMA
6013 .syntax unified
6014 .thumb
6015 .thumb_func
6017 HAL_I2C_Mem_Read_DMA:
6018 .LVL377:
6019 .LFB151:
2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
6020 .loc 1 2972 1 is_stmt 1 view -0
6021 .cfi_startproc
6022 @ args = 8, pretend = 0, frame = 0
6023 @ frame_needed = 0, uses_anonymous_args = 0
2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
6024 .loc 1 2972 1 is_stmt 0 view .LVU2086
6025 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
6026 .cfi_def_cfa_offset 24
6027 .cfi_offset 4, -24
6028 .cfi_offset 5, -20
6029 .cfi_offset 6, -16
6030 .cfi_offset 7, -12
6031 .cfi_offset 8, -8
6032 .cfi_offset 14, -4
6033 0004 82B0 sub sp, sp, #8
6034 .cfi_def_cfa_offset 32
6035 0006 0446 mov r4, r0
6036 0008 BDF82480 ldrh r8, [sp, #36]
2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
6037 .loc 1 2973 3 is_stmt 1 view .LVU2087
2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6038 .loc 1 2974 3 view .LVU2088
2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6039 .loc 1 2975 3 view .LVU2089
2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6040 .loc 1 2978 3 view .LVU2090
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6041 .loc 1 2980 3 view .LVU2091
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6042 .loc 1 2980 11 is_stmt 0 view .LVU2092
6043 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
ARM GAS /tmp/cczJHHnF.s page 260
6044 .LVL378:
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6045 .loc 1 2980 11 view .LVU2093
6046 0010 C0B2 uxtb r0, r0
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6047 .loc 1 2980 6 view .LVU2094
6048 0012 2028 cmp r0, #32
6049 0014 40F09980 bne .L399
6050 0018 0D46 mov r5, r1
6051 001a 1746 mov r7, r2
6052 001c 1E46 mov r6, r3
2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6053 .loc 1 2982 5 is_stmt 1 view .LVU2095
2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6054 .loc 1 2982 8 is_stmt 0 view .LVU2096
6055 001e 089B ldr r3, [sp, #32]
6056 .LVL379:
2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6057 .loc 1 2982 8 view .LVU2097
6058 0020 002B cmp r3, #0
6059 0022 59D0 beq .L391
2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6060 .loc 1 2982 25 discriminator 1 view .LVU2098
6061 0024 B8F1000F cmp r8, #0
6062 0028 56D0 beq .L391
2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6063 .loc 1 2988 5 is_stmt 1 view .LVU2099
2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6064 .loc 1 2988 9 is_stmt 0 view .LVU2100
6065 002a 2368 ldr r3, [r4]
6066 002c 9B69 ldr r3, [r3, #24]
2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6067 .loc 1 2988 8 view .LVU2101
6068 002e 13F4004F tst r3, #32768
6069 0032 40F08F80 bne .L400
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6070 .loc 1 2994 5 is_stmt 1 view .LVU2102
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6071 .loc 1 2994 5 view .LVU2103
6072 0036 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
6073 003a 012B cmp r3, #1
6074 003c 00F08C80 beq .L401
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6075 .loc 1 2994 5 discriminator 2 view .LVU2104
6076 0040 0123 movs r3, #1
6077 0042 84F84030 strb r3, [r4, #64]
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6078 .loc 1 2994 5 discriminator 2 view .LVU2105
2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6079 .loc 1 2997 5 discriminator 2 view .LVU2106
2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6080 .loc 1 2997 17 is_stmt 0 discriminator 2 view .LVU2107
6081 0046 FFF7FEFF bl HAL_GetTick
6082 .LVL380:
2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6083 .loc 1 2999 5 is_stmt 1 discriminator 2 view .LVU2108
2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
ARM GAS /tmp/cczJHHnF.s page 261
6084 .loc 1 2999 23 is_stmt 0 discriminator 2 view .LVU2109
6085 004a 2223 movs r3, #34
6086 004c 84F84130 strb r3, [r4, #65]
3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6087 .loc 1 3000 5 is_stmt 1 discriminator 2 view .LVU2110
3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6088 .loc 1 3000 23 is_stmt 0 discriminator 2 view .LVU2111
6089 0050 4023 movs r3, #64
6090 0052 84F84230 strb r3, [r4, #66]
3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6091 .loc 1 3001 5 is_stmt 1 discriminator 2 view .LVU2112
3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6092 .loc 1 3001 23 is_stmt 0 discriminator 2 view .LVU2113
6093 0056 0023 movs r3, #0
6094 0058 6364 str r3, [r4, #68]
3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6095 .loc 1 3004 5 is_stmt 1 discriminator 2 view .LVU2114
3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6096 .loc 1 3004 23 is_stmt 0 discriminator 2 view .LVU2115
6097 005a 089B ldr r3, [sp, #32]
6098 005c 6362 str r3, [r4, #36]
3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6099 .loc 1 3005 5 is_stmt 1 discriminator 2 view .LVU2116
3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6100 .loc 1 3005 23 is_stmt 0 discriminator 2 view .LVU2117
6101 005e A4F82A80 strh r8, [r4, #42] @ movhi
3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
6102 .loc 1 3006 5 is_stmt 1 discriminator 2 view .LVU2118
3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
6103 .loc 1 3006 23 is_stmt 0 discriminator 2 view .LVU2119
6104 0062 3E4B ldr r3, .L406
6105 0064 E362 str r3, [r4, #44]
3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6106 .loc 1 3007 5 is_stmt 1 discriminator 2 view .LVU2120
3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6107 .loc 1 3007 23 is_stmt 0 discriminator 2 view .LVU2121
6108 0066 3E4B ldr r3, .L406+4
6109 0068 6363 str r3, [r4, #52]
3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6110 .loc 1 3009 5 is_stmt 1 discriminator 2 view .LVU2122
3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6111 .loc 1 3009 13 is_stmt 0 discriminator 2 view .LVU2123
6112 006a 638D ldrh r3, [r4, #42]
6113 006c 9BB2 uxth r3, r3
3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6114 .loc 1 3009 8 discriminator 2 view .LVU2124
6115 006e FF2B cmp r3, #255
6116 0070 37D9 bls .L393
3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6117 .loc 1 3011 7 is_stmt 1 view .LVU2125
3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6118 .loc 1 3011 22 is_stmt 0 view .LVU2126
6119 0072 FF23 movs r3, #255
6120 0074 2385 strh r3, [r4, #40] @ movhi
3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6121 .loc 1 3012 7 is_stmt 1 view .LVU2127
6122 .LVL381:
ARM GAS /tmp/cczJHHnF.s page 262
3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6123 .loc 1 3012 16 is_stmt 0 view .LVU2128
6124 0076 4FF08078 mov r8, #16777216
6125 .LVL382:
6126 .L394:
3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6127 .loc 1 3021 5 is_stmt 1 view .LVU2129
3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6128 .loc 1 3021 9 is_stmt 0 view .LVU2130
6129 007a 0190 str r0, [sp, #4]
6130 007c 1923 movs r3, #25
6131 007e 0093 str r3, [sp]
6132 0080 3346 mov r3, r6
6133 0082 3A46 mov r2, r7
6134 0084 2946 mov r1, r5
6135 0086 2046 mov r0, r4
6136 .LVL383:
3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6137 .loc 1 3021 9 view .LVU2131
6138 0088 FFF7FEFF bl I2C_RequestMemoryRead
6139 .LVL384:
3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6140 .loc 1 3021 8 view .LVU2132
6141 008c 0028 cmp r0, #0
6142 008e 2DD1 bne .L404
3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6143 .loc 1 3028 5 is_stmt 1 view .LVU2133
3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6144 .loc 1 3028 13 is_stmt 0 view .LVU2134
6145 0090 E36B ldr r3, [r4, #60]
3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6146 .loc 1 3028 8 view .LVU2135
6147 0092 002B cmp r3, #0
6148 0094 2FD0 beq .L396
3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6149 .loc 1 3031 7 is_stmt 1 view .LVU2136
3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6150 .loc 1 3031 38 is_stmt 0 view .LVU2137
6151 0096 334A ldr r2, .L406+8
6152 0098 9A62 str r2, [r3, #40]
3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6153 .loc 1 3034 7 is_stmt 1 view .LVU2138
3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6154 .loc 1 3034 11 is_stmt 0 view .LVU2139
6155 009a E36B ldr r3, [r4, #60]
3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6156 .loc 1 3034 39 view .LVU2140
6157 009c 324A ldr r2, .L406+12
6158 009e 1A63 str r2, [r3, #48]
3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6159 .loc 1 3037 7 is_stmt 1 view .LVU2141
3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6160 .loc 1 3037 11 is_stmt 0 view .LVU2142
6161 00a0 E26B ldr r2, [r4, #60]
3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6162 .loc 1 3037 42 view .LVU2143
6163 00a2 0023 movs r3, #0
ARM GAS /tmp/cczJHHnF.s page 263
6164 00a4 D362 str r3, [r2, #44]
3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6165 .loc 1 3038 7 is_stmt 1 view .LVU2144
3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6166 .loc 1 3038 11 is_stmt 0 view .LVU2145
6167 00a6 E26B ldr r2, [r4, #60]
3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6168 .loc 1 3038 39 view .LVU2146
6169 00a8 5363 str r3, [r2, #52]
3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
6170 .loc 1 3041 7 is_stmt 1 view .LVU2147
3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
6171 .loc 1 3041 69 is_stmt 0 view .LVU2148
6172 00aa 2168 ldr r1, [r4]
3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
6173 .loc 1 3041 23 view .LVU2149
6174 00ac 238D ldrh r3, [r4, #40]
6175 00ae 089A ldr r2, [sp, #32]
6176 00b0 2431 adds r1, r1, #36
6177 00b2 E06B ldr r0, [r4, #60]
6178 00b4 FFF7FEFF bl HAL_DMA_Start_IT
6179 .LVL385:
3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6180 .loc 1 3059 5 is_stmt 1 view .LVU2150
3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6181 .loc 1 3059 8 is_stmt 0 view .LVU2151
6182 00b8 0646 mov r6, r0
6183 00ba 50B3 cbz r0, .L405
3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6184 .loc 1 3082 7 is_stmt 1 view .LVU2152
3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6185 .loc 1 3082 23 is_stmt 0 view .LVU2153
6186 00bc 2023 movs r3, #32
6187 00be 84F84130 strb r3, [r4, #65]
3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6188 .loc 1 3083 7 is_stmt 1 view .LVU2154
3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6189 .loc 1 3083 23 is_stmt 0 view .LVU2155
6190 00c2 0022 movs r2, #0
6191 00c4 84F84220 strb r2, [r4, #66]
3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6192 .loc 1 3086 7 is_stmt 1 view .LVU2156
3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6193 .loc 1 3086 11 is_stmt 0 view .LVU2157
6194 00c8 636C ldr r3, [r4, #68]
3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6195 .loc 1 3086 23 view .LVU2158
6196 00ca 43F01003 orr r3, r3, #16
6197 00ce 6364 str r3, [r4, #68]
3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6198 .loc 1 3089 7 is_stmt 1 view .LVU2159
3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6199 .loc 1 3089 7 view .LVU2160
6200 00d0 84F84020 strb r2, [r4, #64]
3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6201 .loc 1 3089 7 view .LVU2161
3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 264
6202 .loc 1 3091 7 view .LVU2162
3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6203 .loc 1 3091 14 is_stmt 0 view .LVU2163
6204 00d4 0126 movs r6, #1
6205 00d6 39E0 b .L390
6206 .LVL386:
6207 .L391:
2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6208 .loc 1 2984 7 is_stmt 1 view .LVU2164
2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6209 .loc 1 2984 23 is_stmt 0 view .LVU2165
6210 00d8 4FF40073 mov r3, #512
6211 00dc 6364 str r3, [r4, #68]
2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6212 .loc 1 2985 7 is_stmt 1 view .LVU2166
2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6213 .loc 1 2985 15 is_stmt 0 view .LVU2167
6214 00de 0126 movs r6, #1
6215 00e0 34E0 b .L390
6216 .LVL387:
6217 .L393:
3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
6218 .loc 1 3016 7 is_stmt 1 view .LVU2168
3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
6219 .loc 1 3016 28 is_stmt 0 view .LVU2169
6220 00e2 638D ldrh r3, [r4, #42]
3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
6221 .loc 1 3016 22 view .LVU2170
6222 00e4 2385 strh r3, [r4, #40] @ movhi
3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6223 .loc 1 3017 7 is_stmt 1 view .LVU2171
6224 .LVL388:
3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6225 .loc 1 3017 16 is_stmt 0 view .LVU2172
6226 00e6 4FF00078 mov r8, #33554432
6227 00ea C6E7 b .L394
6228 .LVL389:
6229 .L404:
3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6230 .loc 1 3024 7 is_stmt 1 view .LVU2173
3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6231 .loc 1 3024 7 view .LVU2174
6232 00ec 0023 movs r3, #0
6233 00ee 84F84030 strb r3, [r4, #64]
3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6234 .loc 1 3024 7 view .LVU2175
3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6235 .loc 1 3025 7 view .LVU2176
3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6236 .loc 1 3025 14 is_stmt 0 view .LVU2177
6237 00f2 0126 movs r6, #1
6238 00f4 2AE0 b .L390
6239 .L396:
3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6240 .loc 1 3047 7 is_stmt 1 view .LVU2178
3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6241 .loc 1 3047 23 is_stmt 0 view .LVU2179
ARM GAS /tmp/cczJHHnF.s page 265
6242 00f6 2023 movs r3, #32
6243 00f8 84F84130 strb r3, [r4, #65]
3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6244 .loc 1 3048 7 is_stmt 1 view .LVU2180
3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6245 .loc 1 3048 23 is_stmt 0 view .LVU2181
6246 00fc 0022 movs r2, #0
6247 00fe 84F84220 strb r2, [r4, #66]
3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6248 .loc 1 3051 7 is_stmt 1 view .LVU2182
3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6249 .loc 1 3051 11 is_stmt 0 view .LVU2183
6250 0102 636C ldr r3, [r4, #68]
3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6251 .loc 1 3051 23 view .LVU2184
6252 0104 43F08003 orr r3, r3, #128
6253 0108 6364 str r3, [r4, #68]
3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6254 .loc 1 3054 7 is_stmt 1 view .LVU2185
3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6255 .loc 1 3054 7 view .LVU2186
6256 010a 84F84020 strb r2, [r4, #64]
3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6257 .loc 1 3054 7 view .LVU2187
3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6258 .loc 1 3056 7 view .LVU2188
3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6259 .loc 1 3056 14 is_stmt 0 view .LVU2189
6260 010e 0126 movs r6, #1
6261 0110 1CE0 b .L390
6262 .LVL390:
6263 .L405:
3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6264 .loc 1 3062 7 is_stmt 1 view .LVU2190
6265 0112 164B ldr r3, .L406+16
6266 0114 0093 str r3, [sp]
6267 0116 4346 mov r3, r8
6268 0118 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
6269 011c 2946 mov r1, r5
6270 011e 2046 mov r0, r4
6271 .LVL391:
3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6272 .loc 1 3062 7 is_stmt 0 view .LVU2191
6273 0120 FFF7FEFF bl I2C_TransferConfig
6274 .LVL392:
3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6275 .loc 1 3065 7 is_stmt 1 view .LVU2192
3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6276 .loc 1 3065 11 is_stmt 0 view .LVU2193
6277 0124 638D ldrh r3, [r4, #42]
6278 0126 9BB2 uxth r3, r3
3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6279 .loc 1 3065 30 view .LVU2194
6280 0128 228D ldrh r2, [r4, #40]
3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6281 .loc 1 3065 23 view .LVU2195
6282 012a 9B1A subs r3, r3, r2
ARM GAS /tmp/cczJHHnF.s page 266
6283 012c 9BB2 uxth r3, r3
6284 012e 6385 strh r3, [r4, #42] @ movhi
3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6285 .loc 1 3068 7 is_stmt 1 view .LVU2196
3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6286 .loc 1 3068 7 view .LVU2197
6287 0130 0023 movs r3, #0
6288 0132 84F84030 strb r3, [r4, #64]
3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6289 .loc 1 3068 7 view .LVU2198
3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6290 .loc 1 3074 7 view .LVU2199
6291 0136 1021 movs r1, #16
6292 0138 2046 mov r0, r4
6293 013a FFF7FEFF bl I2C_Enable_IRQ
6294 .LVL393:
3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6295 .loc 1 3077 7 view .LVU2200
3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6296 .loc 1 3077 11 is_stmt 0 view .LVU2201
6297 013e 2268 ldr r2, [r4]
3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6298 .loc 1 3077 21 view .LVU2202
6299 0140 1368 ldr r3, [r2]
3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6300 .loc 1 3077 27 view .LVU2203
6301 0142 43F40043 orr r3, r3, #32768
6302 0146 1360 str r3, [r2]
3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6303 .loc 1 3094 5 is_stmt 1 view .LVU2204
3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6304 .loc 1 3094 12 is_stmt 0 view .LVU2205
6305 0148 00E0 b .L390
6306 .LVL394:
6307 .L399:
3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6308 .loc 1 3098 12 view .LVU2206
6309 014a 0226 movs r6, #2
6310 .LVL395:
6311 .L390:
3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6312 .loc 1 3100 1 view .LVU2207
6313 014c 3046 mov r0, r6
6314 014e 02B0 add sp, sp, #8
6315 .cfi_remember_state
6316 .cfi_def_cfa_offset 24
6317 @ sp needed
6318 0150 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
6319 .LVL396:
6320 .L400:
6321 .cfi_restore_state
2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6322 .loc 1 2990 14 view .LVU2208
6323 0154 0226 movs r6, #2
6324 0156 F9E7 b .L390
6325 .L401:
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 267
6326 .loc 1 2994 5 view .LVU2209
6327 0158 0226 movs r6, #2
6328 015a F7E7 b .L390
6329 .L407:
6330 .align 2
6331 .L406:
6332 015c 0000FFFF .word -65536
6333 0160 00000000 .word I2C_Master_ISR_DMA
6334 0164 00000000 .word I2C_DMAMasterReceiveCplt
6335 0168 00000000 .word I2C_DMAError
6336 016c 00240080 .word -2147474432
6337 .cfi_endproc
6338 .LFE151:
6340 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
6341 .align 1
6342 .global HAL_I2C_IsDeviceReady
6343 .syntax unified
6344 .thumb
6345 .thumb_func
6347 HAL_I2C_IsDeviceReady:
6348 .LVL397:
6349 .LFB152:
3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
6350 .loc 1 3115 1 is_stmt 1 view -0
6351 .cfi_startproc
6352 @ args = 0, pretend = 0, frame = 8
6353 @ frame_needed = 0, uses_anonymous_args = 0
3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
6354 .loc 1 3115 1 is_stmt 0 view .LVU2211
6355 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
6356 .cfi_def_cfa_offset 28
6357 .cfi_offset 4, -28
6358 .cfi_offset 5, -24
6359 .cfi_offset 6, -20
6360 .cfi_offset 7, -16
6361 .cfi_offset 8, -12
6362 .cfi_offset 9, -8
6363 .cfi_offset 14, -4
6364 0004 85B0 sub sp, sp, #20
6365 .cfi_def_cfa_offset 48
6366 0006 1D46 mov r5, r3
3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6367 .loc 1 3116 3 is_stmt 1 view .LVU2212
3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6368 .loc 1 3118 3 view .LVU2213
3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6369 .loc 1 3118 17 is_stmt 0 view .LVU2214
6370 0008 0023 movs r3, #0
6371 .LVL398:
3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6372 .loc 1 3118 17 view .LVU2215
6373 000a 0393 str r3, [sp, #12]
3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2;
6374 .loc 1 3120 3 is_stmt 1 view .LVU2216
3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6375 .loc 1 3121 3 view .LVU2217
3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 268
6376 .loc 1 3123 3 view .LVU2218
3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6377 .loc 1 3123 11 is_stmt 0 view .LVU2219
6378 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6379 0010 DBB2 uxtb r3, r3
3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6380 .loc 1 3123 6 view .LVU2220
6381 0012 202B cmp r3, #32
6382 0014 40F09E80 bne .L420
6383 0018 0646 mov r6, r0
6384 001a 8946 mov r9, r1
6385 001c 9046 mov r8, r2
3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6386 .loc 1 3125 5 is_stmt 1 view .LVU2221
3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6387 .loc 1 3125 9 is_stmt 0 view .LVU2222
6388 001e 0368 ldr r3, [r0]
6389 0020 9B69 ldr r3, [r3, #24]
3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6390 .loc 1 3125 8 view .LVU2223
6391 0022 13F4004F tst r3, #32768
6392 0026 40F09780 bne .L421
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6393 .loc 1 3131 5 is_stmt 1 view .LVU2224
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6394 .loc 1 3131 5 view .LVU2225
6395 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
6396 002e 012B cmp r3, #1
6397 0030 00F09480 beq .L422
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6398 .loc 1 3131 5 discriminator 2 view .LVU2226
6399 0034 0123 movs r3, #1
6400 0036 80F84030 strb r3, [r0, #64]
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6401 .loc 1 3131 5 discriminator 2 view .LVU2227
3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6402 .loc 1 3133 5 discriminator 2 view .LVU2228
3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6403 .loc 1 3133 17 is_stmt 0 discriminator 2 view .LVU2229
6404 003a 2423 movs r3, #36
6405 003c 80F84130 strb r3, [r0, #65]
3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6406 .loc 1 3134 5 is_stmt 1 discriminator 2 view .LVU2230
3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6407 .loc 1 3134 21 is_stmt 0 discriminator 2 view .LVU2231
6408 0040 0023 movs r3, #0
6409 0042 4364 str r3, [r0, #68]
6410 0044 44E0 b .L419
6411 .LVL399:
6412 .L430:
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6413 .loc 1 3139 29 discriminator 1 view .LVU2232
6414 0046 C9F30903 ubfx r3, r9, #0, #10
6415 004a 43F00073 orr r3, r3, #33554432
6416 004e 43F40053 orr r3, r3, #8192
6417 0052 44E0 b .L411
6418 .LVL400:
ARM GAS /tmp/cczJHHnF.s page 269
6419 .L413:
3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6420 .loc 1 3167 9 is_stmt 1 view .LVU2233
3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6421 .loc 1 3167 16 is_stmt 0 view .LVU2234
6422 0054 3368 ldr r3, [r6]
6423 0056 9C69 ldr r4, [r3, #24]
6424 .LVL401:
3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6425 .loc 1 3167 16 view .LVU2235
6426 0058 C4F34014 ubfx r4, r4, #5, #1
6427 .LVL402:
3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6428 .loc 1 3168 9 is_stmt 1 view .LVU2236
3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6429 .loc 1 3168 16 is_stmt 0 view .LVU2237
6430 005c 9B69 ldr r3, [r3, #24]
6431 005e C3F30013 ubfx r3, r3, #4, #1
6432 .LVL403:
6433 .L412:
3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6434 .loc 1 3148 30 is_stmt 1 view .LVU2238
6435 0062 C4B9 cbnz r4, .L415
3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6436 .loc 1 3148 30 is_stmt 0 discriminator 1 view .LVU2239
6437 0064 BBB9 cbnz r3, .L415
3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6438 .loc 1 3150 9 is_stmt 1 view .LVU2240
3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6439 .loc 1 3150 12 is_stmt 0 view .LVU2241
6440 0066 B5F1FF3F cmp r5, #-1
6441 006a F3D0 beq .L413
3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6442 .loc 1 3152 11 is_stmt 1 view .LVU2242
3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6443 .loc 1 3152 17 is_stmt 0 view .LVU2243
6444 006c FFF7FEFF bl HAL_GetTick
6445 .LVL404:
3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6446 .loc 1 3152 31 view .LVU2244
6447 0070 C01B subs r0, r0, r7
3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6448 .loc 1 3152 14 view .LVU2245
6449 0072 A842 cmp r0, r5
6450 0074 01D8 bhi .L414
3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6451 .loc 1 3152 55 discriminator 1 view .LVU2246
6452 0076 002D cmp r5, #0
6453 0078 ECD1 bne .L413
6454 .L414:
3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6455 .loc 1 3155 13 is_stmt 1 view .LVU2247
3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6456 .loc 1 3155 25 is_stmt 0 view .LVU2248
6457 007a 2023 movs r3, #32
6458 007c 86F84130 strb r3, [r6, #65]
3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 270
6459 .loc 1 3158 13 is_stmt 1 view .LVU2249
3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6460 .loc 1 3158 17 is_stmt 0 view .LVU2250
6461 0080 736C ldr r3, [r6, #68]
3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6462 .loc 1 3158 29 view .LVU2251
6463 0082 43F02003 orr r3, r3, #32
6464 0086 7364 str r3, [r6, #68]
3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6465 .loc 1 3161 13 is_stmt 1 view .LVU2252
3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6466 .loc 1 3161 13 view .LVU2253
6467 0088 0023 movs r3, #0
6468 008a 86F84030 strb r3, [r6, #64]
3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6469 .loc 1 3161 13 view .LVU2254
3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6470 .loc 1 3163 13 view .LVU2255
3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6471 .loc 1 3163 20 is_stmt 0 view .LVU2256
6472 008e 0120 movs r0, #1
6473 .LVL405:
6474 .L409:
3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6475 .loc 1 3241 1 view .LVU2257
6476 0090 05B0 add sp, sp, #20
6477 .cfi_remember_state
6478 .cfi_def_cfa_offset 28
6479 @ sp needed
6480 0092 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
6481 .LVL406:
6482 .L415:
6483 .cfi_restore_state
3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6484 .loc 1 3172 7 is_stmt 1 view .LVU2258
3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6485 .loc 1 3172 11 is_stmt 0 view .LVU2259
6486 0096 3368 ldr r3, [r6]
6487 .LVL407:
3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6488 .loc 1 3172 11 view .LVU2260
6489 0098 9B69 ldr r3, [r3, #24]
3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6490 .loc 1 3172 10 view .LVU2261
6491 009a 13F0100F tst r3, #16
6492 009e 2BD0 beq .L427
3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6493 .loc 1 3194 9 is_stmt 1 view .LVU2262
3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6494 .loc 1 3194 13 is_stmt 0 view .LVU2263
6495 00a0 0097 str r7, [sp]
6496 00a2 2B46 mov r3, r5
6497 00a4 0022 movs r2, #0
6498 00a6 2021 movs r1, #32
6499 00a8 3046 mov r0, r6
6500 00aa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
6501 .LVL408:
ARM GAS /tmp/cczJHHnF.s page 271
3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6502 .loc 1 3194 12 view .LVU2264
6503 00ae 0028 cmp r0, #0
6504 00b0 58D1 bne .L424
3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6505 .loc 1 3200 9 is_stmt 1 view .LVU2265
6506 00b2 3368 ldr r3, [r6]
6507 00b4 1022 movs r2, #16
6508 00b6 DA61 str r2, [r3, #28]
3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6509 .loc 1 3203 9 view .LVU2266
6510 00b8 3368 ldr r3, [r6]
6511 00ba 2022 movs r2, #32
6512 00bc DA61 str r2, [r3, #28]
3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6513 .loc 1 3207 7 view .LVU2267
3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6514 .loc 1 3207 22 is_stmt 0 view .LVU2268
6515 00be 039B ldr r3, [sp, #12]
3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6516 .loc 1 3207 10 view .LVU2269
6517 00c0 4345 cmp r3, r8
6518 00c2 2AD0 beq .L428
6519 .L418:
3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials);
6520 .loc 1 3223 7 is_stmt 1 view .LVU2270
3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials);
6521 .loc 1 3223 17 is_stmt 0 view .LVU2271
6522 00c4 039B ldr r3, [sp, #12]
6523 00c6 0133 adds r3, r3, #1
6524 00c8 0393 str r3, [sp, #12]
3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6525 .loc 1 3224 25 is_stmt 1 view .LVU2272
6526 00ca 039B ldr r3, [sp, #12]
6527 00cc 4345 cmp r3, r8
6528 00ce 35D2 bcs .L429
6529 .LVL409:
6530 .L419:
3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6531 .loc 1 3136 5 view .LVU2273
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6532 .loc 1 3139 7 view .LVU2274
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6533 .loc 1 3139 29 is_stmt 0 view .LVU2275
6534 00d0 F368 ldr r3, [r6, #12]
6535 00d2 012B cmp r3, #1
6536 00d4 B7D0 beq .L430
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6537 .loc 1 3139 29 discriminator 2 view .LVU2276
6538 00d6 C9F30903 ubfx r3, r9, #0, #10
6539 00da 43F42053 orr r3, r3, #10240
6540 .L411:
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6541 .loc 1 3139 11 discriminator 4 view .LVU2277
6542 00de 3268 ldr r2, [r6]
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6543 .loc 1 3139 27 discriminator 4 view .LVU2278
ARM GAS /tmp/cczJHHnF.s page 272
6544 00e0 5360 str r3, [r2, #4]
3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6545 .loc 1 3143 7 is_stmt 1 discriminator 4 view .LVU2279
3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6546 .loc 1 3143 19 is_stmt 0 discriminator 4 view .LVU2280
6547 00e2 FFF7FEFF bl HAL_GetTick
6548 .LVL410:
6549 00e6 0746 mov r7, r0
6550 .LVL411:
3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6551 .loc 1 3145 7 is_stmt 1 discriminator 4 view .LVU2281
3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6552 .loc 1 3145 14 is_stmt 0 discriminator 4 view .LVU2282
6553 00e8 3368 ldr r3, [r6]
6554 00ea 9C69 ldr r4, [r3, #24]
6555 00ec C4F34014 ubfx r4, r4, #5, #1
6556 .LVL412:
3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6557 .loc 1 3146 7 is_stmt 1 discriminator 4 view .LVU2283
3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6558 .loc 1 3146 14 is_stmt 0 discriminator 4 view .LVU2284
6559 00f0 9B69 ldr r3, [r3, #24]
6560 00f2 C3F30013 ubfx r3, r3, #4, #1
6561 .LVL413:
3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6562 .loc 1 3148 7 is_stmt 1 discriminator 4 view .LVU2285
3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6563 .loc 1 3148 13 is_stmt 0 discriminator 4 view .LVU2286
6564 00f6 B4E7 b .L412
6565 .LVL414:
6566 .L427:
3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6567 .loc 1 3175 9 is_stmt 1 view .LVU2287
3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6568 .loc 1 3175 13 is_stmt 0 view .LVU2288
6569 00f8 0097 str r7, [sp]
6570 00fa 2B46 mov r3, r5
6571 00fc 0022 movs r2, #0
6572 00fe 2021 movs r1, #32
6573 0100 3046 mov r0, r6
6574 0102 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
6575 .LVL415:
3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6576 .loc 1 3175 12 view .LVU2289
6577 0106 58BB cbnz r0, .L423
3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6578 .loc 1 3181 9 is_stmt 1 view .LVU2290
6579 0108 3268 ldr r2, [r6]
6580 010a 2023 movs r3, #32
6581 010c D361 str r3, [r2, #28]
3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6582 .loc 1 3184 9 view .LVU2291
3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6583 .loc 1 3184 21 is_stmt 0 view .LVU2292
6584 010e 86F84130 strb r3, [r6, #65]
3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6585 .loc 1 3187 9 is_stmt 1 view .LVU2293
ARM GAS /tmp/cczJHHnF.s page 273
3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6586 .loc 1 3187 9 view .LVU2294
6587 0112 0023 movs r3, #0
6588 0114 86F84030 strb r3, [r6, #64]
3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6589 .loc 1 3187 9 view .LVU2295
3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6590 .loc 1 3189 9 view .LVU2296
3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6591 .loc 1 3189 16 is_stmt 0 view .LVU2297
6592 0118 BAE7 b .L409
6593 .L428:
3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6594 .loc 1 3210 9 is_stmt 1 view .LVU2298
3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6595 .loc 1 3210 13 is_stmt 0 view .LVU2299
6596 011a 3268 ldr r2, [r6]
3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6597 .loc 1 3210 23 view .LVU2300
6598 011c 5368 ldr r3, [r2, #4]
3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6599 .loc 1 3210 29 view .LVU2301
6600 011e 43F48043 orr r3, r3, #16384
6601 0122 5360 str r3, [r2, #4]
3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6602 .loc 1 3213 9 is_stmt 1 view .LVU2302
3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6603 .loc 1 3213 13 is_stmt 0 view .LVU2303
6604 0124 0097 str r7, [sp]
6605 0126 2B46 mov r3, r5
6606 0128 0022 movs r2, #0
6607 012a 2021 movs r1, #32
6608 012c 3046 mov r0, r6
6609 012e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
6610 .LVL416:
3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6611 .loc 1 3213 12 view .LVU2304
6612 0132 C8B9 cbnz r0, .L425
3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6613 .loc 1 3219 9 is_stmt 1 view .LVU2305
6614 0134 3368 ldr r3, [r6]
6615 0136 2022 movs r2, #32
6616 0138 DA61 str r2, [r3, #28]
6617 013a C3E7 b .L418
6618 .L429:
3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6619 .loc 1 3227 5 view .LVU2306
3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6620 .loc 1 3227 17 is_stmt 0 view .LVU2307
6621 013c 2023 movs r3, #32
6622 013e 86F84130 strb r3, [r6, #65]
3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6623 .loc 1 3230 5 is_stmt 1 view .LVU2308
3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6624 .loc 1 3230 9 is_stmt 0 view .LVU2309
6625 0142 736C ldr r3, [r6, #68]
3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 274
6626 .loc 1 3230 21 view .LVU2310
6627 0144 43F02003 orr r3, r3, #32
6628 0148 7364 str r3, [r6, #68]
3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6629 .loc 1 3233 5 is_stmt 1 view .LVU2311
3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6630 .loc 1 3233 5 view .LVU2312
6631 014a 0023 movs r3, #0
6632 014c 86F84030 strb r3, [r6, #64]
3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6633 .loc 1 3233 5 view .LVU2313
3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6634 .loc 1 3235 5 view .LVU2314
3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6635 .loc 1 3235 12 is_stmt 0 view .LVU2315
6636 0150 0120 movs r0, #1
6637 0152 9DE7 b .L409
6638 .LVL417:
6639 .L420:
3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6640 .loc 1 3239 12 view .LVU2316
6641 0154 0220 movs r0, #2
6642 .LVL418:
3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6643 .loc 1 3239 12 view .LVU2317
6644 0156 9BE7 b .L409
6645 .LVL419:
6646 .L421:
3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6647 .loc 1 3127 14 view .LVU2318
6648 0158 0220 movs r0, #2
6649 .LVL420:
3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6650 .loc 1 3127 14 view .LVU2319
6651 015a 99E7 b .L409
6652 .LVL421:
6653 .L422:
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6654 .loc 1 3131 5 view .LVU2320
6655 015c 0220 movs r0, #2
6656 .LVL422:
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6657 .loc 1 3131 5 view .LVU2321
6658 015e 97E7 b .L409
6659 .LVL423:
6660 .L423:
3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6661 .loc 1 3177 18 view .LVU2322
6662 0160 0120 movs r0, #1
6663 0162 95E7 b .L409
6664 .L424:
3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6665 .loc 1 3196 18 view .LVU2323
6666 0164 0120 movs r0, #1
6667 0166 93E7 b .L409
6668 .L425:
3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 275
6669 .loc 1 3215 18 view .LVU2324
6670 0168 0120 movs r0, #1
6671 016a 91E7 b .L409
6672 .cfi_endproc
6673 .LFE152:
6675 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits
6676 .align 1
6677 .global HAL_I2C_Master_Seq_Transmit_IT
6678 .syntax unified
6679 .thumb
6680 .thumb_func
6682 HAL_I2C_Master_Seq_Transmit_IT:
6683 .LVL424:
6684 .LFB153:
3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
6685 .loc 1 3257 1 is_stmt 1 view -0
6686 .cfi_startproc
6687 @ args = 4, pretend = 0, frame = 0
6688 @ frame_needed = 0, uses_anonymous_args = 0
3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
6689 .loc 1 3257 1 is_stmt 0 view .LVU2326
6690 0000 70B5 push {r4, r5, r6, lr}
6691 .cfi_def_cfa_offset 16
6692 .cfi_offset 4, -16
6693 .cfi_offset 5, -12
6694 .cfi_offset 6, -8
6695 .cfi_offset 14, -4
6696 0002 82B0 sub sp, sp, #8
6697 .cfi_def_cfa_offset 24
6698 0004 0446 mov r4, r0
3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
6699 .loc 1 3258 3 is_stmt 1 view .LVU2327
3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6700 .loc 1 3259 3 view .LVU2328
6701 .LVL425:
3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6702 .loc 1 3262 3 view .LVU2329
3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6703 .loc 1 3264 3 view .LVU2330
3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6704 .loc 1 3264 11 is_stmt 0 view .LVU2331
6705 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6706 .LVL426:
3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6707 .loc 1 3264 11 view .LVU2332
6708 000a C0B2 uxtb r0, r0
3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6709 .loc 1 3264 6 view .LVU2333
6710 000c 2028 cmp r0, #32
6711 000e 49D1 bne .L437
6712 0010 0D46 mov r5, r1
3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6713 .loc 1 3267 5 is_stmt 1 view .LVU2334
3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6714 .loc 1 3267 5 view .LVU2335
6715 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
6716 .LVL427:
ARM GAS /tmp/cczJHHnF.s page 276
3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6717 .loc 1 3267 5 is_stmt 0 view .LVU2336
6718 0016 0129 cmp r1, #1
6719 0018 46D0 beq .L438
3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6720 .loc 1 3267 5 is_stmt 1 discriminator 2 view .LVU2337
6721 001a 0121 movs r1, #1
6722 001c 84F84010 strb r1, [r4, #64]
3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6723 .loc 1 3267 5 discriminator 2 view .LVU2338
3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6724 .loc 1 3269 5 discriminator 2 view .LVU2339
3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6725 .loc 1 3269 21 is_stmt 0 discriminator 2 view .LVU2340
6726 0020 2121 movs r1, #33
6727 0022 84F84110 strb r1, [r4, #65]
3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6728 .loc 1 3270 5 is_stmt 1 discriminator 2 view .LVU2341
3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6729 .loc 1 3270 21 is_stmt 0 discriminator 2 view .LVU2342
6730 0026 1021 movs r1, #16
6731 0028 84F84210 strb r1, [r4, #66]
3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6732 .loc 1 3271 5 is_stmt 1 discriminator 2 view .LVU2343
3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6733 .loc 1 3271 21 is_stmt 0 discriminator 2 view .LVU2344
6734 002c 0021 movs r1, #0
6735 002e 6164 str r1, [r4, #68]
3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6736 .loc 1 3274 5 is_stmt 1 discriminator 2 view .LVU2345
3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6737 .loc 1 3274 23 is_stmt 0 discriminator 2 view .LVU2346
6738 0030 6262 str r2, [r4, #36]
3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6739 .loc 1 3275 5 is_stmt 1 discriminator 2 view .LVU2347
3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6740 .loc 1 3275 23 is_stmt 0 discriminator 2 view .LVU2348
6741 0032 6385 strh r3, [r4, #42] @ movhi
3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
6742 .loc 1 3276 5 is_stmt 1 discriminator 2 view .LVU2349
3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
6743 .loc 1 3276 23 is_stmt 0 discriminator 2 view .LVU2350
6744 0034 069B ldr r3, [sp, #24]
6745 .LVL428:
3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
6746 .loc 1 3276 23 discriminator 2 view .LVU2351
6747 0036 E362 str r3, [r4, #44]
6748 .LVL429:
3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6749 .loc 1 3277 5 is_stmt 1 discriminator 2 view .LVU2352
3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6750 .loc 1 3277 23 is_stmt 0 discriminator 2 view .LVU2353
6751 0038 1C4B ldr r3, .L442
6752 003a 6363 str r3, [r4, #52]
3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6753 .loc 1 3280 5 is_stmt 1 discriminator 2 view .LVU2354
3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 277
6754 .loc 1 3280 13 is_stmt 0 discriminator 2 view .LVU2355
6755 003c 638D ldrh r3, [r4, #42]
6756 003e 9BB2 uxth r3, r3
3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6757 .loc 1 3280 8 discriminator 2 view .LVU2356
6758 0040 FF2B cmp r3, #255
6759 0042 0ED9 bls .L433
3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6760 .loc 1 3282 7 is_stmt 1 view .LVU2357
3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6761 .loc 1 3282 22 is_stmt 0 view .LVU2358
6762 0044 FF23 movs r3, #255
6763 0046 2385 strh r3, [r4, #40] @ movhi
3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6764 .loc 1 3283 7 is_stmt 1 view .LVU2359
6765 .LVL430:
3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6766 .loc 1 3283 16 is_stmt 0 view .LVU2360
6767 0048 4FF08076 mov r6, #16777216
6768 .LVL431:
6769 .L434:
3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
6770 .loc 1 3294 5 is_stmt 1 view .LVU2361
3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
6771 .loc 1 3294 14 is_stmt 0 view .LVU2362
6772 004c 236B ldr r3, [r4, #48]
3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
6773 .loc 1 3294 8 view .LVU2363
6774 004e 112B cmp r3, #17
6775 0050 0BD1 bne .L435
3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6776 .loc 1 3295 10 view .LVU2364
6777 0052 069B ldr r3, [sp, #24]
6778 0054 AA2B cmp r3, #170
6779 0056 08D0 beq .L435
3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6780 .loc 1 3295 10 discriminator 2 view .LVU2365
6781 0058 B3F52A4F cmp r3, #43520
6782 005c 05D0 beq .L435
3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6783 .loc 1 3297 19 view .LVU2366
6784 005e 0023 movs r3, #0
6785 0060 0CE0 b .L436
6786 .LVL432:
6787 .L433:
3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6788 .loc 1 3287 7 is_stmt 1 view .LVU2367
3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6789 .loc 1 3287 28 is_stmt 0 view .LVU2368
6790 0062 638D ldrh r3, [r4, #42]
3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6791 .loc 1 3287 22 view .LVU2369
6792 0064 2385 strh r3, [r4, #40] @ movhi
3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6793 .loc 1 3288 7 is_stmt 1 view .LVU2370
3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6794 .loc 1 3288 16 is_stmt 0 view .LVU2371
ARM GAS /tmp/cczJHHnF.s page 278
6795 0066 E66A ldr r6, [r4, #44]
6796 .LVL433:
3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6797 .loc 1 3288 16 view .LVU2372
6798 0068 F0E7 b .L434
6799 .L435:
3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6800 .loc 1 3302 7 is_stmt 1 view .LVU2373
6801 006a 2046 mov r0, r4
6802 006c FFF7FEFF bl I2C_ConvertOtherXferOptions
6803 .LVL434:
3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6804 .loc 1 3305 7 view .LVU2374
3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6805 .loc 1 3305 15 is_stmt 0 view .LVU2375
6806 0070 638D ldrh r3, [r4, #42]
6807 0072 9BB2 uxth r3, r3
3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6808 .loc 1 3305 10 view .LVU2376
6809 0074 FF2B cmp r3, #255
6810 0076 13D8 bhi .L440
3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6811 .loc 1 3307 9 is_stmt 1 view .LVU2377
3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6812 .loc 1 3307 18 is_stmt 0 view .LVU2378
6813 0078 E66A ldr r6, [r4, #44]
6814 .LVL435:
3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6815 .loc 1 3259 12 view .LVU2379
6816 007a 0D4B ldr r3, .L442+4
6817 .L436:
6818 .LVL436:
3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6819 .loc 1 3312 5 is_stmt 1 view .LVU2380
6820 007c 0093 str r3, [sp]
6821 007e 3346 mov r3, r6
6822 .LVL437:
3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6823 .loc 1 3312 5 is_stmt 0 view .LVU2381
6824 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
6825 0084 2946 mov r1, r5
6826 0086 2046 mov r0, r4
6827 0088 FFF7FEFF bl I2C_TransferConfig
6828 .LVL438:
3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6829 .loc 1 3315 5 is_stmt 1 view .LVU2382
3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6830 .loc 1 3315 5 view .LVU2383
6831 008c 0025 movs r5, #0
6832 008e 84F84050 strb r5, [r4, #64]
3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6833 .loc 1 3315 5 view .LVU2384
3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6834 .loc 1 3320 5 view .LVU2385
6835 0092 0121 movs r1, #1
6836 0094 2046 mov r0, r4
6837 0096 FFF7FEFF bl I2C_Enable_IRQ
ARM GAS /tmp/cczJHHnF.s page 279
6838 .LVL439:
3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6839 .loc 1 3322 5 view .LVU2386
3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6840 .loc 1 3322 12 is_stmt 0 view .LVU2387
6841 009a 2846 mov r0, r5
6842 .LVL440:
6843 .L432:
3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6844 .loc 1 3328 1 view .LVU2388
6845 009c 02B0 add sp, sp, #8
6846 .cfi_remember_state
6847 .cfi_def_cfa_offset 16
6848 @ sp needed
6849 009e 70BD pop {r4, r5, r6, pc}
6850 .LVL441:
6851 .L440:
6852 .cfi_restore_state
3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6853 .loc 1 3259 12 view .LVU2389
6854 00a0 034B ldr r3, .L442+4
6855 00a2 EBE7 b .L436
6856 .LVL442:
6857 .L437:
3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6858 .loc 1 3326 12 view .LVU2390
6859 00a4 0220 movs r0, #2
6860 00a6 F9E7 b .L432
6861 .LVL443:
6862 .L438:
3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6863 .loc 1 3267 5 view .LVU2391
6864 00a8 0220 movs r0, #2
6865 00aa F7E7 b .L432
6866 .L443:
6867 .align 2
6868 .L442:
6869 00ac 00000000 .word I2C_Master_ISR_IT
6870 00b0 00200080 .word -2147475456
6871 .cfi_endproc
6872 .LFE153:
6874 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits
6875 .align 1
6876 .global HAL_I2C_Master_Seq_Transmit_DMA
6877 .syntax unified
6878 .thumb
6879 .thumb_func
6881 HAL_I2C_Master_Seq_Transmit_DMA:
6882 .LVL444:
6883 .LFB154:
3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
6884 .loc 1 3344 1 is_stmt 1 view -0
6885 .cfi_startproc
6886 @ args = 4, pretend = 0, frame = 0
6887 @ frame_needed = 0, uses_anonymous_args = 0
3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
6888 .loc 1 3344 1 is_stmt 0 view .LVU2393
ARM GAS /tmp/cczJHHnF.s page 280
6889 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
6890 .cfi_def_cfa_offset 24
6891 .cfi_offset 4, -24
6892 .cfi_offset 5, -20
6893 .cfi_offset 6, -16
6894 .cfi_offset 7, -12
6895 .cfi_offset 8, -8
6896 .cfi_offset 14, -4
6897 0004 82B0 sub sp, sp, #8
6898 .cfi_def_cfa_offset 32
6899 0006 0446 mov r4, r0
6900 0008 1546 mov r5, r2
6901 000a 089A ldr r2, [sp, #32]
6902 .LVL445:
3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
6903 .loc 1 3345 3 is_stmt 1 view .LVU2394
3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6904 .loc 1 3346 3 view .LVU2395
3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6905 .loc 1 3347 3 view .LVU2396
3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6906 .loc 1 3350 3 view .LVU2397
3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6907 .loc 1 3352 3 view .LVU2398
3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6908 .loc 1 3352 11 is_stmt 0 view .LVU2399
6909 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6910 .LVL446:
3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6911 .loc 1 3352 11 view .LVU2400
6912 0010 C0B2 uxtb r0, r0
3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6913 .loc 1 3352 6 view .LVU2401
6914 0012 2028 cmp r0, #32
6915 0014 40F09D80 bne .L455
6916 0018 0E46 mov r6, r1
3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6917 .loc 1 3355 5 is_stmt 1 view .LVU2402
3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6918 .loc 1 3355 5 view .LVU2403
6919 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
6920 .LVL447:
3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6921 .loc 1 3355 5 is_stmt 0 view .LVU2404
6922 001e 0129 cmp r1, #1
6923 0020 00F09B80 beq .L456
3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6924 .loc 1 3355 5 is_stmt 1 discriminator 2 view .LVU2405
6925 0024 0121 movs r1, #1
6926 0026 84F84010 strb r1, [r4, #64]
3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6927 .loc 1 3355 5 discriminator 2 view .LVU2406
3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6928 .loc 1 3357 5 discriminator 2 view .LVU2407
3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
6929 .loc 1 3357 21 is_stmt 0 discriminator 2 view .LVU2408
6930 002a 2121 movs r1, #33
ARM GAS /tmp/cczJHHnF.s page 281
6931 002c 84F84110 strb r1, [r4, #65]
3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6932 .loc 1 3358 5 is_stmt 1 discriminator 2 view .LVU2409
3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6933 .loc 1 3358 21 is_stmt 0 discriminator 2 view .LVU2410
6934 0030 1021 movs r1, #16
6935 0032 84F84210 strb r1, [r4, #66]
3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6936 .loc 1 3359 5 is_stmt 1 discriminator 2 view .LVU2411
3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6937 .loc 1 3359 21 is_stmt 0 discriminator 2 view .LVU2412
6938 0036 0021 movs r1, #0
6939 0038 6164 str r1, [r4, #68]
3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6940 .loc 1 3362 5 is_stmt 1 discriminator 2 view .LVU2413
3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6941 .loc 1 3362 23 is_stmt 0 discriminator 2 view .LVU2414
6942 003a 6562 str r5, [r4, #36]
3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6943 .loc 1 3363 5 is_stmt 1 discriminator 2 view .LVU2415
3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
6944 .loc 1 3363 23 is_stmt 0 discriminator 2 view .LVU2416
6945 003c 6385 strh r3, [r4, #42] @ movhi
3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
6946 .loc 1 3364 5 is_stmt 1 discriminator 2 view .LVU2417
3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
6947 .loc 1 3364 23 is_stmt 0 discriminator 2 view .LVU2418
6948 003e E262 str r2, [r4, #44]
3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6949 .loc 1 3365 5 is_stmt 1 discriminator 2 view .LVU2419
3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6950 .loc 1 3365 23 is_stmt 0 discriminator 2 view .LVU2420
6951 0040 474B ldr r3, .L462
6952 .LVL448:
3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6953 .loc 1 3365 23 discriminator 2 view .LVU2421
6954 0042 6363 str r3, [r4, #52]
3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6955 .loc 1 3368 5 is_stmt 1 discriminator 2 view .LVU2422
3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6956 .loc 1 3368 13 is_stmt 0 discriminator 2 view .LVU2423
6957 0044 638D ldrh r3, [r4, #42]
6958 0046 9BB2 uxth r3, r3
3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6959 .loc 1 3368 8 discriminator 2 view .LVU2424
6960 0048 FF2B cmp r3, #255
6961 004a 0ED9 bls .L446
3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6962 .loc 1 3370 7 is_stmt 1 view .LVU2425
3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
6963 .loc 1 3370 22 is_stmt 0 view .LVU2426
6964 004c FF23 movs r3, #255
6965 004e 2385 strh r3, [r4, #40] @ movhi
3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6966 .loc 1 3371 7 is_stmt 1 view .LVU2427
6967 .LVL449:
3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 282
6968 .loc 1 3371 16 is_stmt 0 view .LVU2428
6969 0050 4FF08077 mov r7, #16777216
6970 .LVL450:
6971 .L447:
3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
6972 .loc 1 3382 5 is_stmt 1 view .LVU2429
3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
6973 .loc 1 3382 14 is_stmt 0 view .LVU2430
6974 0054 236B ldr r3, [r4, #48]
3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
6975 .loc 1 3382 8 view .LVU2431
6976 0056 112B cmp r3, #17
6977 0058 0BD1 bne .L448
3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6978 .loc 1 3383 10 view .LVU2432
6979 005a AA2A cmp r2, #170
6980 005c 09D0 beq .L448
3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6981 .loc 1 3383 10 discriminator 2 view .LVU2433
6982 005e B2F52A4F cmp r2, #43520
6983 0062 06D0 beq .L448
3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6984 .loc 1 3385 19 view .LVU2434
6985 0064 4FF00008 mov r8, #0
6986 0068 0DE0 b .L449
6987 .LVL451:
6988 .L446:
3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6989 .loc 1 3375 7 is_stmt 1 view .LVU2435
3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6990 .loc 1 3375 28 is_stmt 0 view .LVU2436
6991 006a 638D ldrh r3, [r4, #42]
3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
6992 .loc 1 3375 22 view .LVU2437
6993 006c 2385 strh r3, [r4, #40] @ movhi
3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6994 .loc 1 3376 7 is_stmt 1 view .LVU2438
3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6995 .loc 1 3376 16 is_stmt 0 view .LVU2439
6996 006e E76A ldr r7, [r4, #44]
6997 .LVL452:
3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6998 .loc 1 3376 16 view .LVU2440
6999 0070 F0E7 b .L447
7000 .L448:
3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7001 .loc 1 3390 7 is_stmt 1 view .LVU2441
7002 0072 2046 mov r0, r4
7003 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions
7004 .LVL453:
3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7005 .loc 1 3393 7 view .LVU2442
3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7006 .loc 1 3393 15 is_stmt 0 view .LVU2443
7007 0078 638D ldrh r3, [r4, #42]
7008 007a 9BB2 uxth r3, r3
3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 283
7009 .loc 1 3393 10 view .LVU2444
7010 007c FF2B cmp r3, #255
7011 007e 27D8 bhi .L458
3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7012 .loc 1 3395 9 is_stmt 1 view .LVU2445
3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7013 .loc 1 3395 18 is_stmt 0 view .LVU2446
7014 0080 E76A ldr r7, [r4, #44]
7015 .LVL454:
3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7016 .loc 1 3346 12 view .LVU2447
7017 0082 DFF8EC80 ldr r8, .L462+16
7018 .L449:
7019 .LVL455:
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7020 .loc 1 3399 5 is_stmt 1 view .LVU2448
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7021 .loc 1 3399 13 is_stmt 0 view .LVU2449
7022 0086 228D ldrh r2, [r4, #40]
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7023 .loc 1 3399 8 view .LVU2450
7024 0088 002A cmp r2, #0
7025 008a 4ED0 beq .L450
3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7026 .loc 1 3401 7 is_stmt 1 view .LVU2451
3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7027 .loc 1 3401 15 is_stmt 0 view .LVU2452
7028 008c A36B ldr r3, [r4, #56]
3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7029 .loc 1 3401 10 view .LVU2453
7030 008e 13B3 cbz r3, .L451
3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7031 .loc 1 3404 9 is_stmt 1 view .LVU2454
3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7032 .loc 1 3404 40 is_stmt 0 view .LVU2455
7033 0090 344A ldr r2, .L462+4
7034 0092 9A62 str r2, [r3, #40]
3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7035 .loc 1 3407 9 is_stmt 1 view .LVU2456
3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7036 .loc 1 3407 13 is_stmt 0 view .LVU2457
7037 0094 A36B ldr r3, [r4, #56]
3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7038 .loc 1 3407 41 view .LVU2458
7039 0096 344A ldr r2, .L462+8
7040 0098 1A63 str r2, [r3, #48]
3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7041 .loc 1 3410 9 is_stmt 1 view .LVU2459
3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7042 .loc 1 3410 13 is_stmt 0 view .LVU2460
7043 009a A26B ldr r2, [r4, #56]
3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7044 .loc 1 3410 44 view .LVU2461
7045 009c 0023 movs r3, #0
7046 009e D362 str r3, [r2, #44]
3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7047 .loc 1 3411 9 is_stmt 1 view .LVU2462
ARM GAS /tmp/cczJHHnF.s page 284
3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7048 .loc 1 3411 13 is_stmt 0 view .LVU2463
7049 00a0 A26B ldr r2, [r4, #56]
3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7050 .loc 1 3411 41 view .LVU2464
7051 00a2 5363 str r3, [r2, #52]
3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
7052 .loc 1 3414 9 is_stmt 1 view .LVU2465
3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
7053 .loc 1 3414 88 is_stmt 0 view .LVU2466
7054 00a4 2268 ldr r2, [r4]
3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
7055 .loc 1 3414 25 view .LVU2467
7056 00a6 238D ldrh r3, [r4, #40]
7057 00a8 2832 adds r2, r2, #40
7058 00aa 2946 mov r1, r5
7059 00ac A06B ldr r0, [r4, #56]
7060 00ae FFF7FEFF bl HAL_DMA_Start_IT
7061 .LVL456:
3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7062 .loc 1 3432 7 is_stmt 1 view .LVU2468
3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7063 .loc 1 3432 10 is_stmt 0 view .LVU2469
7064 00b2 F0B1 cbz r0, .L461
3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7065 .loc 1 3455 9 is_stmt 1 view .LVU2470
3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7066 .loc 1 3455 25 is_stmt 0 view .LVU2471
7067 00b4 2023 movs r3, #32
7068 00b6 84F84130 strb r3, [r4, #65]
3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7069 .loc 1 3456 9 is_stmt 1 view .LVU2472
3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7070 .loc 1 3456 25 is_stmt 0 view .LVU2473
7071 00ba 0022 movs r2, #0
7072 00bc 84F84220 strb r2, [r4, #66]
3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7073 .loc 1 3459 9 is_stmt 1 view .LVU2474
3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7074 .loc 1 3459 13 is_stmt 0 view .LVU2475
7075 00c0 636C ldr r3, [r4, #68]
3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7076 .loc 1 3459 25 view .LVU2476
7077 00c2 43F01003 orr r3, r3, #16
7078 00c6 6364 str r3, [r4, #68]
3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7079 .loc 1 3462 9 is_stmt 1 view .LVU2477
3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7080 .loc 1 3462 9 view .LVU2478
7081 00c8 84F84020 strb r2, [r4, #64]
3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7082 .loc 1 3462 9 view .LVU2479
3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7083 .loc 1 3464 9 view .LVU2480
3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7084 .loc 1 3464 16 is_stmt 0 view .LVU2481
7085 00cc 0120 movs r0, #1
ARM GAS /tmp/cczJHHnF.s page 285
7086 .LVL457:
3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7087 .loc 1 3464 16 view .LVU2482
7088 00ce 41E0 b .L445
7089 .LVL458:
7090 .L458:
3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7091 .loc 1 3346 12 view .LVU2483
7092 00d0 DFF89C80 ldr r8, .L462+16
7093 00d4 D7E7 b .L449
7094 .LVL459:
7095 .L451:
3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7096 .loc 1 3420 9 is_stmt 1 view .LVU2484
3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7097 .loc 1 3420 25 is_stmt 0 view .LVU2485
7098 00d6 2023 movs r3, #32
7099 00d8 84F84130 strb r3, [r4, #65]
3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7100 .loc 1 3421 9 is_stmt 1 view .LVU2486
3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7101 .loc 1 3421 25 is_stmt 0 view .LVU2487
7102 00dc 0022 movs r2, #0
7103 00de 84F84220 strb r2, [r4, #66]
3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7104 .loc 1 3424 9 is_stmt 1 view .LVU2488
3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7105 .loc 1 3424 13 is_stmt 0 view .LVU2489
7106 00e2 636C ldr r3, [r4, #68]
3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7107 .loc 1 3424 25 view .LVU2490
7108 00e4 43F08003 orr r3, r3, #128
7109 00e8 6364 str r3, [r4, #68]
3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7110 .loc 1 3427 9 is_stmt 1 view .LVU2491
3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7111 .loc 1 3427 9 view .LVU2492
7112 00ea 84F84020 strb r2, [r4, #64]
3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7113 .loc 1 3427 9 view .LVU2493
3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7114 .loc 1 3429 9 view .LVU2494
3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7115 .loc 1 3429 16 is_stmt 0 view .LVU2495
7116 00ee 0120 movs r0, #1
7117 00f0 30E0 b .L445
7118 .LVL460:
7119 .L461:
3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7120 .loc 1 3435 9 is_stmt 1 view .LVU2496
7121 00f2 CDF80080 str r8, [sp]
7122 00f6 3B46 mov r3, r7
7123 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7124 00fc 3146 mov r1, r6
7125 00fe 2046 mov r0, r4
7126 .LVL461:
3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 286
7127 .loc 1 3435 9 is_stmt 0 view .LVU2497
7128 0100 FFF7FEFF bl I2C_TransferConfig
7129 .LVL462:
3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7130 .loc 1 3438 9 is_stmt 1 view .LVU2498
3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7131 .loc 1 3438 13 is_stmt 0 view .LVU2499
7132 0104 638D ldrh r3, [r4, #42]
7133 0106 9BB2 uxth r3, r3
3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7134 .loc 1 3438 32 view .LVU2500
7135 0108 228D ldrh r2, [r4, #40]
3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7136 .loc 1 3438 25 view .LVU2501
7137 010a 9B1A subs r3, r3, r2
7138 010c 9BB2 uxth r3, r3
7139 010e 6385 strh r3, [r4, #42] @ movhi
3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7140 .loc 1 3441 9 is_stmt 1 view .LVU2502
3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7141 .loc 1 3441 9 view .LVU2503
7142 0110 0023 movs r3, #0
7143 0112 84F84030 strb r3, [r4, #64]
3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7144 .loc 1 3441 9 view .LVU2504
3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7145 .loc 1 3447 9 view .LVU2505
7146 0116 1021 movs r1, #16
7147 0118 2046 mov r0, r4
7148 011a FFF7FEFF bl I2C_Enable_IRQ
7149 .LVL463:
3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7150 .loc 1 3450 9 view .LVU2506
3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7151 .loc 1 3450 13 is_stmt 0 view .LVU2507
7152 011e 2268 ldr r2, [r4]
3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7153 .loc 1 3450 23 view .LVU2508
7154 0120 1368 ldr r3, [r2]
3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7155 .loc 1 3450 29 view .LVU2509
7156 0122 43F48043 orr r3, r3, #16384
7157 0126 1360 str r3, [r2]
7158 0128 11E0 b .L454
7159 .LVL464:
7160 .L450:
3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7161 .loc 1 3470 7 is_stmt 1 view .LVU2510
3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7162 .loc 1 3470 21 is_stmt 0 view .LVU2511
7163 012a 104B ldr r3, .L462+12
7164 012c 6363 str r3, [r4, #52]
3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
7165 .loc 1 3474 7 is_stmt 1 view .LVU2512
7166 012e 104B ldr r3, .L462+16
7167 0130 0093 str r3, [sp]
7168 0132 4FF00073 mov r3, #33554432
ARM GAS /tmp/cczJHHnF.s page 287
7169 0136 D2B2 uxtb r2, r2
7170 0138 3146 mov r1, r6
7171 013a 2046 mov r0, r4
7172 013c FFF7FEFF bl I2C_TransferConfig
7173 .LVL465:
3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7174 .loc 1 3478 7 view .LVU2513
3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7175 .loc 1 3478 7 view .LVU2514
7176 0140 0023 movs r3, #0
7177 0142 84F84030 strb r3, [r4, #64]
3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7178 .loc 1 3478 7 view .LVU2515
3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7179 .loc 1 3487 7 view .LVU2516
7180 0146 0121 movs r1, #1
7181 0148 2046 mov r0, r4
7182 014a FFF7FEFF bl I2C_Enable_IRQ
7183 .LVL466:
7184 .L454:
3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7185 .loc 1 3490 5 view .LVU2517
3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7186 .loc 1 3490 12 is_stmt 0 view .LVU2518
7187 014e 0020 movs r0, #0
7188 0150 00E0 b .L445
7189 .LVL467:
7190 .L455:
3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7191 .loc 1 3494 12 view .LVU2519
7192 0152 0220 movs r0, #2
7193 .LVL468:
7194 .L445:
3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7195 .loc 1 3496 1 view .LVU2520
7196 0154 02B0 add sp, sp, #8
7197 .cfi_remember_state
7198 .cfi_def_cfa_offset 24
7199 @ sp needed
7200 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
7201 .LVL469:
7202 .L456:
7203 .cfi_restore_state
3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7204 .loc 1 3355 5 view .LVU2521
7205 015a 0220 movs r0, #2
7206 015c FAE7 b .L445
7207 .L463:
7208 015e 00BF .align 2
7209 .L462:
7210 0160 00000000 .word I2C_Master_ISR_DMA
7211 0164 00000000 .word I2C_DMAMasterTransmitCplt
7212 0168 00000000 .word I2C_DMAError
7213 016c 00000000 .word I2C_Master_ISR_IT
7214 0170 00200080 .word -2147475456
7215 .cfi_endproc
7216 .LFE154:
ARM GAS /tmp/cczJHHnF.s page 288
7218 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits
7219 .align 1
7220 .global HAL_I2C_Master_Seq_Receive_IT
7221 .syntax unified
7222 .thumb
7223 .thumb_func
7225 HAL_I2C_Master_Seq_Receive_IT:
7226 .LVL470:
7227 .LFB155:
3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7228 .loc 1 3512 1 is_stmt 1 view -0
7229 .cfi_startproc
7230 @ args = 4, pretend = 0, frame = 0
7231 @ frame_needed = 0, uses_anonymous_args = 0
3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7232 .loc 1 3512 1 is_stmt 0 view .LVU2523
7233 0000 70B5 push {r4, r5, r6, lr}
7234 .cfi_def_cfa_offset 16
7235 .cfi_offset 4, -16
7236 .cfi_offset 5, -12
7237 .cfi_offset 6, -8
7238 .cfi_offset 14, -4
7239 0002 82B0 sub sp, sp, #8
7240 .cfi_def_cfa_offset 24
7241 0004 0446 mov r4, r0
3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
7242 .loc 1 3513 3 is_stmt 1 view .LVU2524
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7243 .loc 1 3514 3 view .LVU2525
7244 .LVL471:
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7245 .loc 1 3517 3 view .LVU2526
3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7246 .loc 1 3519 3 view .LVU2527
3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7247 .loc 1 3519 11 is_stmt 0 view .LVU2528
7248 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7249 .LVL472:
3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7250 .loc 1 3519 11 view .LVU2529
7251 000a C0B2 uxtb r0, r0
3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7252 .loc 1 3519 6 view .LVU2530
7253 000c 2028 cmp r0, #32
7254 000e 49D1 bne .L470
7255 0010 0D46 mov r5, r1
3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7256 .loc 1 3522 5 is_stmt 1 view .LVU2531
3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7257 .loc 1 3522 5 view .LVU2532
7258 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7259 .LVL473:
3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7260 .loc 1 3522 5 is_stmt 0 view .LVU2533
7261 0016 0129 cmp r1, #1
7262 0018 46D0 beq .L471
3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 289
7263 .loc 1 3522 5 is_stmt 1 discriminator 2 view .LVU2534
7264 001a 0121 movs r1, #1
7265 001c 84F84010 strb r1, [r4, #64]
3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7266 .loc 1 3522 5 discriminator 2 view .LVU2535
3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7267 .loc 1 3524 5 discriminator 2 view .LVU2536
3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7268 .loc 1 3524 21 is_stmt 0 discriminator 2 view .LVU2537
7269 0020 2221 movs r1, #34
7270 0022 84F84110 strb r1, [r4, #65]
3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7271 .loc 1 3525 5 is_stmt 1 discriminator 2 view .LVU2538
3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7272 .loc 1 3525 21 is_stmt 0 discriminator 2 view .LVU2539
7273 0026 1021 movs r1, #16
7274 0028 84F84210 strb r1, [r4, #66]
3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7275 .loc 1 3526 5 is_stmt 1 discriminator 2 view .LVU2540
3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7276 .loc 1 3526 21 is_stmt 0 discriminator 2 view .LVU2541
7277 002c 0021 movs r1, #0
7278 002e 6164 str r1, [r4, #68]
3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7279 .loc 1 3529 5 is_stmt 1 discriminator 2 view .LVU2542
3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7280 .loc 1 3529 23 is_stmt 0 discriminator 2 view .LVU2543
7281 0030 6262 str r2, [r4, #36]
3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7282 .loc 1 3530 5 is_stmt 1 discriminator 2 view .LVU2544
3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7283 .loc 1 3530 23 is_stmt 0 discriminator 2 view .LVU2545
7284 0032 6385 strh r3, [r4, #42] @ movhi
3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7285 .loc 1 3531 5 is_stmt 1 discriminator 2 view .LVU2546
3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7286 .loc 1 3531 23 is_stmt 0 discriminator 2 view .LVU2547
7287 0034 069B ldr r3, [sp, #24]
7288 .LVL474:
3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7289 .loc 1 3531 23 discriminator 2 view .LVU2548
7290 0036 E362 str r3, [r4, #44]
7291 .LVL475:
3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7292 .loc 1 3532 5 is_stmt 1 discriminator 2 view .LVU2549
3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7293 .loc 1 3532 23 is_stmt 0 discriminator 2 view .LVU2550
7294 0038 1C4B ldr r3, .L475
7295 003a 6363 str r3, [r4, #52]
3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7296 .loc 1 3535 5 is_stmt 1 discriminator 2 view .LVU2551
3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7297 .loc 1 3535 13 is_stmt 0 discriminator 2 view .LVU2552
7298 003c 638D ldrh r3, [r4, #42]
7299 003e 9BB2 uxth r3, r3
3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7300 .loc 1 3535 8 discriminator 2 view .LVU2553
ARM GAS /tmp/cczJHHnF.s page 290
7301 0040 FF2B cmp r3, #255
7302 0042 0ED9 bls .L466
3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7303 .loc 1 3537 7 is_stmt 1 view .LVU2554
3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7304 .loc 1 3537 22 is_stmt 0 view .LVU2555
7305 0044 FF23 movs r3, #255
7306 0046 2385 strh r3, [r4, #40] @ movhi
3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7307 .loc 1 3538 7 is_stmt 1 view .LVU2556
7308 .LVL476:
3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7309 .loc 1 3538 16 is_stmt 0 view .LVU2557
7310 0048 4FF08076 mov r6, #16777216
7311 .LVL477:
7312 .L467:
3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7313 .loc 1 3549 5 is_stmt 1 view .LVU2558
3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7314 .loc 1 3549 14 is_stmt 0 view .LVU2559
7315 004c 236B ldr r3, [r4, #48]
3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7316 .loc 1 3549 8 view .LVU2560
7317 004e 122B cmp r3, #18
7318 0050 0BD1 bne .L468
3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7319 .loc 1 3550 10 view .LVU2561
7320 0052 069B ldr r3, [sp, #24]
7321 0054 AA2B cmp r3, #170
7322 0056 08D0 beq .L468
3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7323 .loc 1 3550 10 discriminator 2 view .LVU2562
7324 0058 B3F52A4F cmp r3, #43520
7325 005c 05D0 beq .L468
3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7326 .loc 1 3552 19 view .LVU2563
7327 005e 0023 movs r3, #0
7328 0060 0CE0 b .L469
7329 .LVL478:
7330 .L466:
3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7331 .loc 1 3542 7 is_stmt 1 view .LVU2564
3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7332 .loc 1 3542 28 is_stmt 0 view .LVU2565
7333 0062 638D ldrh r3, [r4, #42]
3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7334 .loc 1 3542 22 view .LVU2566
7335 0064 2385 strh r3, [r4, #40] @ movhi
3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7336 .loc 1 3543 7 is_stmt 1 view .LVU2567
3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7337 .loc 1 3543 16 is_stmt 0 view .LVU2568
7338 0066 E66A ldr r6, [r4, #44]
7339 .LVL479:
3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7340 .loc 1 3543 16 view .LVU2569
7341 0068 F0E7 b .L467
ARM GAS /tmp/cczJHHnF.s page 291
7342 .L468:
3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7343 .loc 1 3557 7 is_stmt 1 view .LVU2570
7344 006a 2046 mov r0, r4
7345 006c FFF7FEFF bl I2C_ConvertOtherXferOptions
7346 .LVL480:
3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7347 .loc 1 3560 7 view .LVU2571
3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7348 .loc 1 3560 15 is_stmt 0 view .LVU2572
7349 0070 638D ldrh r3, [r4, #42]
7350 0072 9BB2 uxth r3, r3
3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7351 .loc 1 3560 10 view .LVU2573
7352 0074 FF2B cmp r3, #255
7353 0076 13D8 bhi .L473
3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7354 .loc 1 3562 9 is_stmt 1 view .LVU2574
3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7355 .loc 1 3562 18 is_stmt 0 view .LVU2575
7356 0078 E66A ldr r6, [r4, #44]
7357 .LVL481:
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7358 .loc 1 3514 12 view .LVU2576
7359 007a 0D4B ldr r3, .L475+4
7360 .L469:
7361 .LVL482:
3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7362 .loc 1 3567 5 is_stmt 1 view .LVU2577
7363 007c 0093 str r3, [sp]
7364 007e 3346 mov r3, r6
7365 .LVL483:
3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7366 .loc 1 3567 5 is_stmt 0 view .LVU2578
7367 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7368 0084 2946 mov r1, r5
7369 0086 2046 mov r0, r4
7370 0088 FFF7FEFF bl I2C_TransferConfig
7371 .LVL484:
3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7372 .loc 1 3570 5 is_stmt 1 view .LVU2579
3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7373 .loc 1 3570 5 view .LVU2580
7374 008c 0025 movs r5, #0
7375 008e 84F84050 strb r5, [r4, #64]
3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7376 .loc 1 3570 5 view .LVU2581
3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7377 .loc 1 3575 5 view .LVU2582
7378 0092 0221 movs r1, #2
7379 0094 2046 mov r0, r4
7380 0096 FFF7FEFF bl I2C_Enable_IRQ
7381 .LVL485:
3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7382 .loc 1 3577 5 view .LVU2583
3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7383 .loc 1 3577 12 is_stmt 0 view .LVU2584
ARM GAS /tmp/cczJHHnF.s page 292
7384 009a 2846 mov r0, r5
7385 .LVL486:
7386 .L465:
3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7387 .loc 1 3583 1 view .LVU2585
7388 009c 02B0 add sp, sp, #8
7389 .cfi_remember_state
7390 .cfi_def_cfa_offset 16
7391 @ sp needed
7392 009e 70BD pop {r4, r5, r6, pc}
7393 .LVL487:
7394 .L473:
7395 .cfi_restore_state
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7396 .loc 1 3514 12 view .LVU2586
7397 00a0 034B ldr r3, .L475+4
7398 00a2 EBE7 b .L469
7399 .LVL488:
7400 .L470:
3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7401 .loc 1 3581 12 view .LVU2587
7402 00a4 0220 movs r0, #2
7403 00a6 F9E7 b .L465
7404 .LVL489:
7405 .L471:
3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7406 .loc 1 3522 5 view .LVU2588
7407 00a8 0220 movs r0, #2
7408 00aa F7E7 b .L465
7409 .L476:
7410 .align 2
7411 .L475:
7412 00ac 00000000 .word I2C_Master_ISR_IT
7413 00b0 00240080 .word -2147474432
7414 .cfi_endproc
7415 .LFE155:
7417 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits
7418 .align 1
7419 .global HAL_I2C_Master_Seq_Receive_DMA
7420 .syntax unified
7421 .thumb
7422 .thumb_func
7424 HAL_I2C_Master_Seq_Receive_DMA:
7425 .LVL490:
7426 .LFB156:
3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7427 .loc 1 3599 1 is_stmt 1 view -0
7428 .cfi_startproc
7429 @ args = 4, pretend = 0, frame = 0
7430 @ frame_needed = 0, uses_anonymous_args = 0
3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7431 .loc 1 3599 1 is_stmt 0 view .LVU2590
7432 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
7433 .cfi_def_cfa_offset 24
7434 .cfi_offset 4, -24
7435 .cfi_offset 5, -20
7436 .cfi_offset 6, -16
ARM GAS /tmp/cczJHHnF.s page 293
7437 .cfi_offset 7, -12
7438 .cfi_offset 8, -8
7439 .cfi_offset 14, -4
7440 0004 82B0 sub sp, sp, #8
7441 .cfi_def_cfa_offset 32
7442 0006 0446 mov r4, r0
7443 0008 1546 mov r5, r2
7444 000a 089A ldr r2, [sp, #32]
7445 .LVL491:
3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
7446 .loc 1 3600 3 is_stmt 1 view .LVU2591
3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7447 .loc 1 3601 3 view .LVU2592
3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7448 .loc 1 3602 3 view .LVU2593
3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7449 .loc 1 3605 3 view .LVU2594
3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7450 .loc 1 3607 3 view .LVU2595
3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7451 .loc 1 3607 11 is_stmt 0 view .LVU2596
7452 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7453 .LVL492:
3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7454 .loc 1 3607 11 view .LVU2597
7455 0010 C0B2 uxtb r0, r0
3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7456 .loc 1 3607 6 view .LVU2598
7457 0012 2028 cmp r0, #32
7458 0014 40F09D80 bne .L488
7459 0018 0E46 mov r6, r1
3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7460 .loc 1 3610 5 is_stmt 1 view .LVU2599
3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7461 .loc 1 3610 5 view .LVU2600
7462 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7463 .LVL493:
3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7464 .loc 1 3610 5 is_stmt 0 view .LVU2601
7465 001e 0129 cmp r1, #1
7466 0020 00F09B80 beq .L489
3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7467 .loc 1 3610 5 is_stmt 1 discriminator 2 view .LVU2602
7468 0024 0121 movs r1, #1
7469 0026 84F84010 strb r1, [r4, #64]
3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7470 .loc 1 3610 5 discriminator 2 view .LVU2603
3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7471 .loc 1 3612 5 discriminator 2 view .LVU2604
3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7472 .loc 1 3612 21 is_stmt 0 discriminator 2 view .LVU2605
7473 002a 2221 movs r1, #34
7474 002c 84F84110 strb r1, [r4, #65]
3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7475 .loc 1 3613 5 is_stmt 1 discriminator 2 view .LVU2606
3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7476 .loc 1 3613 21 is_stmt 0 discriminator 2 view .LVU2607
ARM GAS /tmp/cczJHHnF.s page 294
7477 0030 1021 movs r1, #16
7478 0032 84F84210 strb r1, [r4, #66]
3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7479 .loc 1 3614 5 is_stmt 1 discriminator 2 view .LVU2608
3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7480 .loc 1 3614 21 is_stmt 0 discriminator 2 view .LVU2609
7481 0036 0021 movs r1, #0
7482 0038 6164 str r1, [r4, #68]
3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7483 .loc 1 3617 5 is_stmt 1 discriminator 2 view .LVU2610
3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7484 .loc 1 3617 23 is_stmt 0 discriminator 2 view .LVU2611
7485 003a 6562 str r5, [r4, #36]
3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7486 .loc 1 3618 5 is_stmt 1 discriminator 2 view .LVU2612
3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7487 .loc 1 3618 23 is_stmt 0 discriminator 2 view .LVU2613
7488 003c 6385 strh r3, [r4, #42] @ movhi
3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7489 .loc 1 3619 5 is_stmt 1 discriminator 2 view .LVU2614
3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7490 .loc 1 3619 23 is_stmt 0 discriminator 2 view .LVU2615
7491 003e E262 str r2, [r4, #44]
3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7492 .loc 1 3620 5 is_stmt 1 discriminator 2 view .LVU2616
3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7493 .loc 1 3620 23 is_stmt 0 discriminator 2 view .LVU2617
7494 0040 474B ldr r3, .L495
7495 .LVL494:
3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7496 .loc 1 3620 23 discriminator 2 view .LVU2618
7497 0042 6363 str r3, [r4, #52]
3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7498 .loc 1 3623 5 is_stmt 1 discriminator 2 view .LVU2619
3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7499 .loc 1 3623 13 is_stmt 0 discriminator 2 view .LVU2620
7500 0044 638D ldrh r3, [r4, #42]
7501 0046 9BB2 uxth r3, r3
3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7502 .loc 1 3623 8 discriminator 2 view .LVU2621
7503 0048 FF2B cmp r3, #255
7504 004a 0ED9 bls .L479
3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7505 .loc 1 3625 7 is_stmt 1 view .LVU2622
3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7506 .loc 1 3625 22 is_stmt 0 view .LVU2623
7507 004c FF23 movs r3, #255
7508 004e 2385 strh r3, [r4, #40] @ movhi
3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7509 .loc 1 3626 7 is_stmt 1 view .LVU2624
7510 .LVL495:
3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7511 .loc 1 3626 16 is_stmt 0 view .LVU2625
7512 0050 4FF08077 mov r7, #16777216
7513 .LVL496:
7514 .L480:
3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
ARM GAS /tmp/cczJHHnF.s page 295
7515 .loc 1 3637 5 is_stmt 1 view .LVU2626
3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7516 .loc 1 3637 14 is_stmt 0 view .LVU2627
7517 0054 236B ldr r3, [r4, #48]
3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7518 .loc 1 3637 8 view .LVU2628
7519 0056 122B cmp r3, #18
7520 0058 0BD1 bne .L481
3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7521 .loc 1 3638 10 view .LVU2629
7522 005a AA2A cmp r2, #170
7523 005c 09D0 beq .L481
3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7524 .loc 1 3638 10 discriminator 2 view .LVU2630
7525 005e B2F52A4F cmp r2, #43520
7526 0062 06D0 beq .L481
3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7527 .loc 1 3640 19 view .LVU2631
7528 0064 4FF00008 mov r8, #0
7529 0068 0DE0 b .L482
7530 .LVL497:
7531 .L479:
3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7532 .loc 1 3630 7 is_stmt 1 view .LVU2632
3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7533 .loc 1 3630 28 is_stmt 0 view .LVU2633
7534 006a 638D ldrh r3, [r4, #42]
3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7535 .loc 1 3630 22 view .LVU2634
7536 006c 2385 strh r3, [r4, #40] @ movhi
3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7537 .loc 1 3631 7 is_stmt 1 view .LVU2635
3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7538 .loc 1 3631 16 is_stmt 0 view .LVU2636
7539 006e E76A ldr r7, [r4, #44]
7540 .LVL498:
3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7541 .loc 1 3631 16 view .LVU2637
7542 0070 F0E7 b .L480
7543 .L481:
3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7544 .loc 1 3645 7 is_stmt 1 view .LVU2638
7545 0072 2046 mov r0, r4
7546 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions
7547 .LVL499:
3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7548 .loc 1 3648 7 view .LVU2639
3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7549 .loc 1 3648 15 is_stmt 0 view .LVU2640
7550 0078 638D ldrh r3, [r4, #42]
7551 007a 9BB2 uxth r3, r3
3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7552 .loc 1 3648 10 view .LVU2641
7553 007c FF2B cmp r3, #255
7554 007e 27D8 bhi .L491
3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7555 .loc 1 3650 9 is_stmt 1 view .LVU2642
ARM GAS /tmp/cczJHHnF.s page 296
3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7556 .loc 1 3650 18 is_stmt 0 view .LVU2643
7557 0080 E76A ldr r7, [r4, #44]
7558 .LVL500:
3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7559 .loc 1 3601 12 view .LVU2644
7560 0082 DFF8EC80 ldr r8, .L495+16
7561 .L482:
7562 .LVL501:
3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7563 .loc 1 3654 5 is_stmt 1 view .LVU2645
3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7564 .loc 1 3654 13 is_stmt 0 view .LVU2646
7565 0086 228D ldrh r2, [r4, #40]
3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7566 .loc 1 3654 8 view .LVU2647
7567 0088 002A cmp r2, #0
7568 008a 4ED0 beq .L483
3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7569 .loc 1 3656 7 is_stmt 1 view .LVU2648
3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7570 .loc 1 3656 15 is_stmt 0 view .LVU2649
7571 008c E36B ldr r3, [r4, #60]
3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7572 .loc 1 3656 10 view .LVU2650
7573 008e 13B3 cbz r3, .L484
3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7574 .loc 1 3659 9 is_stmt 1 view .LVU2651
3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7575 .loc 1 3659 40 is_stmt 0 view .LVU2652
7576 0090 344A ldr r2, .L495+4
7577 0092 9A62 str r2, [r3, #40]
3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7578 .loc 1 3662 9 is_stmt 1 view .LVU2653
3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7579 .loc 1 3662 13 is_stmt 0 view .LVU2654
7580 0094 E36B ldr r3, [r4, #60]
3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7581 .loc 1 3662 41 view .LVU2655
7582 0096 344A ldr r2, .L495+8
7583 0098 1A63 str r2, [r3, #48]
3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
7584 .loc 1 3665 9 is_stmt 1 view .LVU2656
3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
7585 .loc 1 3665 13 is_stmt 0 view .LVU2657
7586 009a E26B ldr r2, [r4, #60]
3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
7587 .loc 1 3665 44 view .LVU2658
7588 009c 0023 movs r3, #0
7589 009e D362 str r3, [r2, #44]
3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7590 .loc 1 3666 9 is_stmt 1 view .LVU2659
3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7591 .loc 1 3666 13 is_stmt 0 view .LVU2660
7592 00a0 E26B ldr r2, [r4, #60]
3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7593 .loc 1 3666 41 view .LVU2661
ARM GAS /tmp/cczJHHnF.s page 297
7594 00a2 5363 str r3, [r2, #52]
3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
7595 .loc 1 3669 9 is_stmt 1 view .LVU2662
3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
7596 .loc 1 3669 71 is_stmt 0 view .LVU2663
7597 00a4 2168 ldr r1, [r4]
3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
7598 .loc 1 3669 25 view .LVU2664
7599 00a6 238D ldrh r3, [r4, #40]
7600 00a8 2A46 mov r2, r5
7601 00aa 2431 adds r1, r1, #36
7602 00ac E06B ldr r0, [r4, #60]
7603 00ae FFF7FEFF bl HAL_DMA_Start_IT
7604 .LVL502:
3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7605 .loc 1 3687 7 is_stmt 1 view .LVU2665
3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7606 .loc 1 3687 10 is_stmt 0 view .LVU2666
7607 00b2 F0B1 cbz r0, .L494
3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7608 .loc 1 3710 9 is_stmt 1 view .LVU2667
3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7609 .loc 1 3710 25 is_stmt 0 view .LVU2668
7610 00b4 2023 movs r3, #32
7611 00b6 84F84130 strb r3, [r4, #65]
3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7612 .loc 1 3711 9 is_stmt 1 view .LVU2669
3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7613 .loc 1 3711 25 is_stmt 0 view .LVU2670
7614 00ba 0022 movs r2, #0
7615 00bc 84F84220 strb r2, [r4, #66]
3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7616 .loc 1 3714 9 is_stmt 1 view .LVU2671
3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7617 .loc 1 3714 13 is_stmt 0 view .LVU2672
7618 00c0 636C ldr r3, [r4, #68]
3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7619 .loc 1 3714 25 view .LVU2673
7620 00c2 43F01003 orr r3, r3, #16
7621 00c6 6364 str r3, [r4, #68]
3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7622 .loc 1 3717 9 is_stmt 1 view .LVU2674
3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7623 .loc 1 3717 9 view .LVU2675
7624 00c8 84F84020 strb r2, [r4, #64]
3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7625 .loc 1 3717 9 view .LVU2676
3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7626 .loc 1 3719 9 view .LVU2677
3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7627 .loc 1 3719 16 is_stmt 0 view .LVU2678
7628 00cc 0120 movs r0, #1
7629 .LVL503:
3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7630 .loc 1 3719 16 view .LVU2679
7631 00ce 41E0 b .L478
7632 .LVL504:
ARM GAS /tmp/cczJHHnF.s page 298
7633 .L491:
3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7634 .loc 1 3601 12 view .LVU2680
7635 00d0 DFF89C80 ldr r8, .L495+16
7636 00d4 D7E7 b .L482
7637 .LVL505:
7638 .L484:
3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7639 .loc 1 3675 9 is_stmt 1 view .LVU2681
3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7640 .loc 1 3675 25 is_stmt 0 view .LVU2682
7641 00d6 2023 movs r3, #32
7642 00d8 84F84130 strb r3, [r4, #65]
3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7643 .loc 1 3676 9 is_stmt 1 view .LVU2683
3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7644 .loc 1 3676 25 is_stmt 0 view .LVU2684
7645 00dc 0022 movs r2, #0
7646 00de 84F84220 strb r2, [r4, #66]
3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7647 .loc 1 3679 9 is_stmt 1 view .LVU2685
3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7648 .loc 1 3679 13 is_stmt 0 view .LVU2686
7649 00e2 636C ldr r3, [r4, #68]
3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7650 .loc 1 3679 25 view .LVU2687
7651 00e4 43F08003 orr r3, r3, #128
7652 00e8 6364 str r3, [r4, #68]
3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7653 .loc 1 3682 9 is_stmt 1 view .LVU2688
3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7654 .loc 1 3682 9 view .LVU2689
7655 00ea 84F84020 strb r2, [r4, #64]
3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7656 .loc 1 3682 9 view .LVU2690
3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7657 .loc 1 3684 9 view .LVU2691
3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7658 .loc 1 3684 16 is_stmt 0 view .LVU2692
7659 00ee 0120 movs r0, #1
7660 00f0 30E0 b .L478
7661 .LVL506:
7662 .L494:
3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7663 .loc 1 3690 9 is_stmt 1 view .LVU2693
7664 00f2 CDF80080 str r8, [sp]
7665 00f6 3B46 mov r3, r7
7666 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7667 00fc 3146 mov r1, r6
7668 00fe 2046 mov r0, r4
7669 .LVL507:
3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7670 .loc 1 3690 9 is_stmt 0 view .LVU2694
7671 0100 FFF7FEFF bl I2C_TransferConfig
7672 .LVL508:
3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7673 .loc 1 3693 9 is_stmt 1 view .LVU2695
ARM GAS /tmp/cczJHHnF.s page 299
3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7674 .loc 1 3693 13 is_stmt 0 view .LVU2696
7675 0104 638D ldrh r3, [r4, #42]
7676 0106 9BB2 uxth r3, r3
3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7677 .loc 1 3693 32 view .LVU2697
7678 0108 228D ldrh r2, [r4, #40]
3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7679 .loc 1 3693 25 view .LVU2698
7680 010a 9B1A subs r3, r3, r2
7681 010c 9BB2 uxth r3, r3
7682 010e 6385 strh r3, [r4, #42] @ movhi
3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7683 .loc 1 3696 9 is_stmt 1 view .LVU2699
3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7684 .loc 1 3696 9 view .LVU2700
7685 0110 0023 movs r3, #0
7686 0112 84F84030 strb r3, [r4, #64]
3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7687 .loc 1 3696 9 view .LVU2701
3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7688 .loc 1 3702 9 view .LVU2702
7689 0116 1021 movs r1, #16
7690 0118 2046 mov r0, r4
7691 011a FFF7FEFF bl I2C_Enable_IRQ
7692 .LVL509:
3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7693 .loc 1 3705 9 view .LVU2703
3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7694 .loc 1 3705 13 is_stmt 0 view .LVU2704
7695 011e 2268 ldr r2, [r4]
3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7696 .loc 1 3705 23 view .LVU2705
7697 0120 1368 ldr r3, [r2]
3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7698 .loc 1 3705 29 view .LVU2706
7699 0122 43F40043 orr r3, r3, #32768
7700 0126 1360 str r3, [r2]
7701 0128 11E0 b .L487
7702 .LVL510:
7703 .L483:
3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7704 .loc 1 3725 7 is_stmt 1 view .LVU2707
3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7705 .loc 1 3725 21 is_stmt 0 view .LVU2708
7706 012a 104B ldr r3, .L495+12
7707 012c 6363 str r3, [r4, #52]
3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
7708 .loc 1 3729 7 is_stmt 1 view .LVU2709
7709 012e 104B ldr r3, .L495+16
7710 0130 0093 str r3, [sp]
7711 0132 4FF00073 mov r3, #33554432
7712 0136 D2B2 uxtb r2, r2
7713 0138 3146 mov r1, r6
7714 013a 2046 mov r0, r4
7715 013c FFF7FEFF bl I2C_TransferConfig
7716 .LVL511:
ARM GAS /tmp/cczJHHnF.s page 300
3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7717 .loc 1 3733 7 view .LVU2710
3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7718 .loc 1 3733 7 view .LVU2711
7719 0140 0023 movs r3, #0
7720 0142 84F84030 strb r3, [r4, #64]
3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7721 .loc 1 3733 7 view .LVU2712
3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7722 .loc 1 3742 7 view .LVU2713
7723 0146 0121 movs r1, #1
7724 0148 2046 mov r0, r4
7725 014a FFF7FEFF bl I2C_Enable_IRQ
7726 .LVL512:
7727 .L487:
3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7728 .loc 1 3745 5 view .LVU2714
3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7729 .loc 1 3745 12 is_stmt 0 view .LVU2715
7730 014e 0020 movs r0, #0
7731 0150 00E0 b .L478
7732 .LVL513:
7733 .L488:
3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7734 .loc 1 3749 12 view .LVU2716
7735 0152 0220 movs r0, #2
7736 .LVL514:
7737 .L478:
3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7738 .loc 1 3751 1 view .LVU2717
7739 0154 02B0 add sp, sp, #8
7740 .cfi_remember_state
7741 .cfi_def_cfa_offset 24
7742 @ sp needed
7743 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
7744 .LVL515:
7745 .L489:
7746 .cfi_restore_state
3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7747 .loc 1 3610 5 view .LVU2718
7748 015a 0220 movs r0, #2
7749 015c FAE7 b .L478
7750 .L496:
7751 015e 00BF .align 2
7752 .L495:
7753 0160 00000000 .word I2C_Master_ISR_DMA
7754 0164 00000000 .word I2C_DMAMasterReceiveCplt
7755 0168 00000000 .word I2C_DMAError
7756 016c 00000000 .word I2C_Master_ISR_IT
7757 0170 00240080 .word -2147474432
7758 .cfi_endproc
7759 .LFE156:
7761 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits
7762 .align 1
7763 .global HAL_I2C_Slave_Seq_Transmit_IT
7764 .syntax unified
7765 .thumb
ARM GAS /tmp/cczJHHnF.s page 301
7766 .thumb_func
7768 HAL_I2C_Slave_Seq_Transmit_IT:
7769 .LVL516:
7770 .LFB157:
3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
7771 .loc 1 3765 1 is_stmt 1 view -0
7772 .cfi_startproc
7773 @ args = 0, pretend = 0, frame = 0
7774 @ frame_needed = 0, uses_anonymous_args = 0
3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
7775 .loc 1 3765 1 is_stmt 0 view .LVU2720
7776 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
7777 .cfi_def_cfa_offset 24
7778 .cfi_offset 3, -24
7779 .cfi_offset 4, -20
7780 .cfi_offset 5, -16
7781 .cfi_offset 6, -12
7782 .cfi_offset 7, -8
7783 .cfi_offset 14, -4
7784 0002 0446 mov r4, r0
3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7785 .loc 1 3767 3 is_stmt 1 view .LVU2721
3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7786 .loc 1 3769 3 view .LVU2722
3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7787 .loc 1 3769 22 is_stmt 0 view .LVU2723
7788 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7789 .LVL517:
3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7790 .loc 1 3769 6 view .LVU2724
7791 0008 00F02800 and r0, r0, #40
7792 000c 2828 cmp r0, #40
7793 000e 5AD1 bne .L503
7794 0010 0F46 mov r7, r1
7795 0012 1646 mov r6, r2
7796 0014 1D46 mov r5, r3
3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7797 .loc 1 3771 5 is_stmt 1 view .LVU2725
3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7798 .loc 1 3771 8 is_stmt 0 view .LVU2726
7799 0016 01B1 cbz r1, .L499
3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7800 .loc 1 3771 25 discriminator 1 view .LVU2727
7801 0018 22B9 cbnz r2, .L500
7802 .L499:
3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
7803 .loc 1 3773 7 is_stmt 1 view .LVU2728
3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
7804 .loc 1 3773 23 is_stmt 0 view .LVU2729
7805 001a 4FF40073 mov r3, #512
7806 .LVL518:
3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
7807 .loc 1 3773 23 view .LVU2730
7808 001e 6364 str r3, [r4, #68]
3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7809 .loc 1 3774 7 is_stmt 1 view .LVU2731
3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 302
7810 .loc 1 3774 15 is_stmt 0 view .LVU2732
7811 0020 0120 movs r0, #1
7812 0022 51E0 b .L498
7813 .LVL519:
7814 .L500:
3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7815 .loc 1 3778 5 is_stmt 1 view .LVU2733
7816 0024 48F20101 movw r1, #32769
7817 .LVL520:
3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7818 .loc 1 3778 5 is_stmt 0 view .LVU2734
7819 0028 2046 mov r0, r4
7820 002a FFF7FEFF bl I2C_Disable_IRQ
7821 .LVL521:
3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7822 .loc 1 3781 5 is_stmt 1 view .LVU2735
3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7823 .loc 1 3781 5 view .LVU2736
7824 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
7825 0032 012B cmp r3, #1
7826 0034 49D0 beq .L504
3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7827 .loc 1 3781 5 discriminator 2 view .LVU2737
7828 0036 0123 movs r3, #1
7829 0038 84F84030 strb r3, [r4, #64]
3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7830 .loc 1 3781 5 discriminator 2 view .LVU2738
3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7831 .loc 1 3785 5 discriminator 2 view .LVU2739
3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7832 .loc 1 3785 13 is_stmt 0 discriminator 2 view .LVU2740
7833 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
7834 0040 DBB2 uxtb r3, r3
3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7835 .loc 1 3785 8 discriminator 2 view .LVU2741
7836 0042 2A2B cmp r3, #42
7837 0044 24D0 beq .L506
7838 .L501:
3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
7839 .loc 1 3811 5 is_stmt 1 view .LVU2742
3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
7840 .loc 1 3811 21 is_stmt 0 view .LVU2743
7841 0046 2923 movs r3, #41
7842 0048 84F84130 strb r3, [r4, #65]
3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7843 .loc 1 3812 5 is_stmt 1 view .LVU2744
3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7844 .loc 1 3812 21 is_stmt 0 view .LVU2745
7845 004c 2023 movs r3, #32
7846 004e 84F84230 strb r3, [r4, #66]
3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7847 .loc 1 3813 5 is_stmt 1 view .LVU2746
3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7848 .loc 1 3813 21 is_stmt 0 view .LVU2747
7849 0052 0023 movs r3, #0
7850 0054 6364 str r3, [r4, #68]
3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 303
7851 .loc 1 3816 5 is_stmt 1 view .LVU2748
3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7852 .loc 1 3816 9 is_stmt 0 view .LVU2749
7853 0056 2268 ldr r2, [r4]
3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7854 .loc 1 3816 19 view .LVU2750
7855 0058 5368 ldr r3, [r2, #4]
3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7856 .loc 1 3816 25 view .LVU2751
7857 005a 23F40043 bic r3, r3, #32768
7858 005e 5360 str r3, [r2, #4]
3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7859 .loc 1 3819 5 is_stmt 1 view .LVU2752
3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7860 .loc 1 3819 23 is_stmt 0 view .LVU2753
7861 0060 6762 str r7, [r4, #36]
3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7862 .loc 1 3820 5 is_stmt 1 view .LVU2754
3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
7863 .loc 1 3820 23 is_stmt 0 view .LVU2755
7864 0062 6685 strh r6, [r4, #42] @ movhi
3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7865 .loc 1 3821 5 is_stmt 1 view .LVU2756
3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7866 .loc 1 3821 29 is_stmt 0 view .LVU2757
7867 0064 638D ldrh r3, [r4, #42]
3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7868 .loc 1 3821 23 view .LVU2758
7869 0066 2385 strh r3, [r4, #40] @ movhi
3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7870 .loc 1 3822 5 is_stmt 1 view .LVU2759
3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
7871 .loc 1 3822 23 is_stmt 0 view .LVU2760
7872 0068 E562 str r5, [r4, #44]
3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7873 .loc 1 3823 5 is_stmt 1 view .LVU2761
3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7874 .loc 1 3823 23 is_stmt 0 view .LVU2762
7875 006a 194B ldr r3, .L507
7876 006c 6363 str r3, [r4, #52]
3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7877 .loc 1 3825 5 is_stmt 1 view .LVU2763
3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7878 .loc 1 3825 9 is_stmt 0 view .LVU2764
7879 006e 2368 ldr r3, [r4]
7880 0070 9A69 ldr r2, [r3, #24]
3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7881 .loc 1 3825 8 view .LVU2765
7882 0072 12F4803F tst r2, #65536
7883 0076 01D0 beq .L502
3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7884 .loc 1 3829 7 is_stmt 1 view .LVU2766
7885 0078 0822 movs r2, #8
7886 007a DA61 str r2, [r3, #28]
7887 .L502:
3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7888 .loc 1 3833 5 view .LVU2767
ARM GAS /tmp/cczJHHnF.s page 304
3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7889 .loc 1 3833 5 view .LVU2768
7890 007c 0025 movs r5, #0
7891 .LVL522:
3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7892 .loc 1 3833 5 is_stmt 0 view .LVU2769
7893 007e 84F84050 strb r5, [r4, #64]
3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7894 .loc 1 3833 5 is_stmt 1 view .LVU2770
3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7895 .loc 1 3839 5 view .LVU2771
7896 0082 48F20101 movw r1, #32769
7897 0086 2046 mov r0, r4
7898 0088 FFF7FEFF bl I2C_Enable_IRQ
7899 .LVL523:
3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7900 .loc 1 3841 5 view .LVU2772
3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7901 .loc 1 3841 12 is_stmt 0 view .LVU2773
7902 008c 2846 mov r0, r5
7903 008e 1BE0 b .L498
7904 .LVL524:
7905 .L506:
3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7906 .loc 1 3788 7 is_stmt 1 view .LVU2774
7907 0090 0221 movs r1, #2
7908 0092 2046 mov r0, r4
7909 0094 FFF7FEFF bl I2C_Disable_IRQ
7910 .LVL525:
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7911 .loc 1 3791 7 view .LVU2775
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7912 .loc 1 3791 16 is_stmt 0 view .LVU2776
7913 0098 2368 ldr r3, [r4]
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7914 .loc 1 3791 26 view .LVU2777
7915 009a 1A68 ldr r2, [r3]
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7916 .loc 1 3791 10 view .LVU2778
7917 009c 12F4004F tst r2, #32768
7918 00a0 D1D0 beq .L501
3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7919 .loc 1 3793 9 is_stmt 1 view .LVU2779
3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7920 .loc 1 3793 23 is_stmt 0 view .LVU2780
7921 00a2 1A68 ldr r2, [r3]
3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7922 .loc 1 3793 29 view .LVU2781
7923 00a4 22F40042 bic r2, r2, #32768
7924 00a8 1A60 str r2, [r3]
3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7925 .loc 1 3795 9 is_stmt 1 view .LVU2782
3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7926 .loc 1 3795 17 is_stmt 0 view .LVU2783
7927 00aa E36B ldr r3, [r4, #60]
3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7928 .loc 1 3795 12 view .LVU2784
ARM GAS /tmp/cczJHHnF.s page 305
7929 00ac 002B cmp r3, #0
7930 00ae CAD0 beq .L501
3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7931 .loc 1 3799 11 is_stmt 1 view .LVU2785
3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7932 .loc 1 3799 43 is_stmt 0 view .LVU2786
7933 00b0 084A ldr r2, .L507+4
7934 00b2 5A63 str r2, [r3, #52]
3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7935 .loc 1 3802 11 is_stmt 1 view .LVU2787
3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7936 .loc 1 3802 15 is_stmt 0 view .LVU2788
7937 00b4 E06B ldr r0, [r4, #60]
7938 00b6 FFF7FEFF bl HAL_DMA_Abort_IT
7939 .LVL526:
3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7940 .loc 1 3802 14 view .LVU2789
7941 00ba 0028 cmp r0, #0
7942 00bc C3D0 beq .L501
3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7943 .loc 1 3805 13 is_stmt 1 view .LVU2790
3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7944 .loc 1 3805 17 is_stmt 0 view .LVU2791
7945 00be E06B ldr r0, [r4, #60]
3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7946 .loc 1 3805 25 view .LVU2792
7947 00c0 436B ldr r3, [r0, #52]
3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7948 .loc 1 3805 13 view .LVU2793
7949 00c2 9847 blx r3
7950 .LVL527:
7951 00c4 BFE7 b .L501
7952 .LVL528:
7953 .L503:
3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7954 .loc 1 3845 12 view .LVU2794
7955 00c6 0120 movs r0, #1
7956 .LVL529:
7957 .L498:
3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7958 .loc 1 3847 1 view .LVU2795
7959 00c8 F8BD pop {r3, r4, r5, r6, r7, pc}
7960 .LVL530:
7961 .L504:
3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7962 .loc 1 3781 5 view .LVU2796
7963 00ca 0220 movs r0, #2
7964 00cc FCE7 b .L498
7965 .L508:
7966 00ce 00BF .align 2
7967 .L507:
7968 00d0 00000000 .word I2C_Slave_ISR_IT
7969 00d4 00000000 .word I2C_DMAAbort
7970 .cfi_endproc
7971 .LFE157:
7973 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits
7974 .align 1
ARM GAS /tmp/cczJHHnF.s page 306
7975 .global HAL_I2C_Slave_Seq_Transmit_DMA
7976 .syntax unified
7977 .thumb
7978 .thumb_func
7980 HAL_I2C_Slave_Seq_Transmit_DMA:
7981 .LVL531:
7982 .LFB158:
3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7983 .loc 1 3861 1 is_stmt 1 view -0
7984 .cfi_startproc
7985 @ args = 0, pretend = 0, frame = 0
7986 @ frame_needed = 0, uses_anonymous_args = 0
3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7987 .loc 1 3861 1 is_stmt 0 view .LVU2798
7988 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
7989 .cfi_def_cfa_offset 24
7990 .cfi_offset 3, -24
7991 .cfi_offset 4, -20
7992 .cfi_offset 5, -16
7993 .cfi_offset 6, -12
7994 .cfi_offset 7, -8
7995 .cfi_offset 14, -4
7996 0002 0446 mov r4, r0
3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7997 .loc 1 3862 3 is_stmt 1 view .LVU2799
3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7998 .loc 1 3865 3 view .LVU2800
3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7999 .loc 1 3867 3 view .LVU2801
3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8000 .loc 1 3867 22 is_stmt 0 view .LVU2802
8001 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8002 .LVL532:
3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8003 .loc 1 3867 6 view .LVU2803
8004 0008 00F02800 and r0, r0, #40
8005 000c 2828 cmp r0, #40
8006 000e 40F0BB80 bne .L520
8007 0012 0F46 mov r7, r1
8008 0014 1646 mov r6, r2
8009 0016 1D46 mov r5, r3
3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8010 .loc 1 3869 5 is_stmt 1 view .LVU2804
3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8011 .loc 1 3869 8 is_stmt 0 view .LVU2805
8012 0018 0029 cmp r1, #0
8013 001a 51D0 beq .L511
3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8014 .loc 1 3869 25 discriminator 1 view .LVU2806
8015 001c 002A cmp r2, #0
8016 001e 4FD0 beq .L511
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8017 .loc 1 3876 5 is_stmt 1 view .LVU2807
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8018 .loc 1 3876 5 view .LVU2808
8019 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8020 .LVL533:
ARM GAS /tmp/cczJHHnF.s page 307
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8021 .loc 1 3876 5 is_stmt 0 view .LVU2809
8022 0024 012B cmp r3, #1
8023 0026 00F0B280 beq .L521
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8024 .loc 1 3876 5 is_stmt 1 discriminator 2 view .LVU2810
8025 002a 0123 movs r3, #1
8026 002c 84F84030 strb r3, [r4, #64]
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8027 .loc 1 3876 5 discriminator 2 view .LVU2811
3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8028 .loc 1 3879 5 discriminator 2 view .LVU2812
8029 0030 48F20101 movw r1, #32769
8030 .LVL534:
3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8031 .loc 1 3879 5 is_stmt 0 discriminator 2 view .LVU2813
8032 0034 2046 mov r0, r4
8033 0036 FFF7FEFF bl I2C_Disable_IRQ
8034 .LVL535:
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8035 .loc 1 3883 5 is_stmt 1 discriminator 2 view .LVU2814
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8036 .loc 1 3883 13 is_stmt 0 discriminator 2 view .LVU2815
8037 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8038 003e DBB2 uxtb r3, r3
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8039 .loc 1 3883 8 discriminator 2 view .LVU2816
8040 0040 2A2B cmp r3, #42
8041 0042 42D0 beq .L524
3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8042 .loc 1 3908 10 is_stmt 1 view .LVU2817
3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8043 .loc 1 3908 18 is_stmt 0 view .LVU2818
8044 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8045 0048 DBB2 uxtb r3, r3
3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8046 .loc 1 3908 13 view .LVU2819
8047 004a 292B cmp r3, #41
8048 004c 59D0 beq .L525
8049 .L514:
3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8050 .loc 1 3933 5 is_stmt 1 view .LVU2820
3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8051 .loc 1 3935 5 view .LVU2821
3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8052 .loc 1 3935 21 is_stmt 0 view .LVU2822
8053 004e 2923 movs r3, #41
8054 0050 84F84130 strb r3, [r4, #65]
3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8055 .loc 1 3936 5 is_stmt 1 view .LVU2823
3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8056 .loc 1 3936 21 is_stmt 0 view .LVU2824
8057 0054 2023 movs r3, #32
8058 0056 84F84230 strb r3, [r4, #66]
3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8059 .loc 1 3937 5 is_stmt 1 view .LVU2825
3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 308
8060 .loc 1 3937 21 is_stmt 0 view .LVU2826
8061 005a 0023 movs r3, #0
8062 005c 6364 str r3, [r4, #68]
3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8063 .loc 1 3940 5 is_stmt 1 view .LVU2827
3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8064 .loc 1 3940 9 is_stmt 0 view .LVU2828
8065 005e 2268 ldr r2, [r4]
3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8066 .loc 1 3940 19 view .LVU2829
8067 0060 5368 ldr r3, [r2, #4]
3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8068 .loc 1 3940 25 view .LVU2830
8069 0062 23F40043 bic r3, r3, #32768
8070 0066 5360 str r3, [r2, #4]
3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8071 .loc 1 3943 5 is_stmt 1 view .LVU2831
3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8072 .loc 1 3943 23 is_stmt 0 view .LVU2832
8073 0068 6762 str r7, [r4, #36]
3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8074 .loc 1 3944 5 is_stmt 1 view .LVU2833
3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8075 .loc 1 3944 23 is_stmt 0 view .LVU2834
8076 006a 6685 strh r6, [r4, #42] @ movhi
3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8077 .loc 1 3945 5 is_stmt 1 view .LVU2835
3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8078 .loc 1 3945 29 is_stmt 0 view .LVU2836
8079 006c 638D ldrh r3, [r4, #42]
3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8080 .loc 1 3945 23 view .LVU2837
8081 006e 2385 strh r3, [r4, #40] @ movhi
3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8082 .loc 1 3946 5 is_stmt 1 view .LVU2838
3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8083 .loc 1 3946 23 is_stmt 0 view .LVU2839
8084 0070 E562 str r5, [r4, #44]
3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8085 .loc 1 3947 5 is_stmt 1 view .LVU2840
3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8086 .loc 1 3947 23 is_stmt 0 view .LVU2841
8087 0072 484B ldr r3, .L526
8088 0074 6363 str r3, [r4, #52]
3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8089 .loc 1 3949 5 is_stmt 1 view .LVU2842
3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8090 .loc 1 3949 13 is_stmt 0 view .LVU2843
8091 0076 A36B ldr r3, [r4, #56]
3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8092 .loc 1 3949 8 view .LVU2844
8093 0078 002B cmp r3, #0
8094 007a 59D0 beq .L515
3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8095 .loc 1 3952 7 is_stmt 1 view .LVU2845
3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8096 .loc 1 3952 38 is_stmt 0 view .LVU2846
ARM GAS /tmp/cczJHHnF.s page 309
8097 007c 464A ldr r2, .L526+4
8098 007e 9A62 str r2, [r3, #40]
3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8099 .loc 1 3955 7 is_stmt 1 view .LVU2847
3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8100 .loc 1 3955 11 is_stmt 0 view .LVU2848
8101 0080 A36B ldr r3, [r4, #56]
3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8102 .loc 1 3955 39 view .LVU2849
8103 0082 464A ldr r2, .L526+8
8104 0084 1A63 str r2, [r3, #48]
3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8105 .loc 1 3958 7 is_stmt 1 view .LVU2850
3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8106 .loc 1 3958 11 is_stmt 0 view .LVU2851
8107 0086 A26B ldr r2, [r4, #56]
3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8108 .loc 1 3958 42 view .LVU2852
8109 0088 0023 movs r3, #0
8110 008a D362 str r3, [r2, #44]
3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8111 .loc 1 3959 7 is_stmt 1 view .LVU2853
3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8112 .loc 1 3959 11 is_stmt 0 view .LVU2854
8113 008c A26B ldr r2, [r4, #56]
3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8114 .loc 1 3959 39 view .LVU2855
8115 008e 5363 str r3, [r2, #52]
3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
8116 .loc 1 3962 7 is_stmt 1 view .LVU2856
3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
8117 .loc 1 3962 86 is_stmt 0 view .LVU2857
8118 0090 2268 ldr r2, [r4]
3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
8119 .loc 1 3962 23 view .LVU2858
8120 0092 238D ldrh r3, [r4, #40]
8121 0094 2832 adds r2, r2, #40
8122 0096 3946 mov r1, r7
8123 0098 A06B ldr r0, [r4, #56]
8124 009a FFF7FEFF bl HAL_DMA_Start_IT
8125 .LVL536:
3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8126 .loc 1 3980 5 is_stmt 1 view .LVU2859
3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8127 .loc 1 3980 8 is_stmt 0 view .LVU2860
8128 009e 0546 mov r5, r0
8129 .LVL537:
3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8130 .loc 1 3980 8 view .LVU2861
8131 00a0 0028 cmp r0, #0
8132 00a2 53D0 beq .L516
3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8133 .loc 1 3991 7 is_stmt 1 view .LVU2862
3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8134 .loc 1 3991 23 is_stmt 0 view .LVU2863
8135 00a4 2823 movs r3, #40
8136 00a6 84F84130 strb r3, [r4, #65]
ARM GAS /tmp/cczJHHnF.s page 310
3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8137 .loc 1 3992 7 is_stmt 1 view .LVU2864
3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8138 .loc 1 3992 23 is_stmt 0 view .LVU2865
8139 00aa 0022 movs r2, #0
8140 00ac 84F84220 strb r2, [r4, #66]
3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8141 .loc 1 3995 7 is_stmt 1 view .LVU2866
3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8142 .loc 1 3995 11 is_stmt 0 view .LVU2867
8143 00b0 636C ldr r3, [r4, #68]
3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8144 .loc 1 3995 23 view .LVU2868
8145 00b2 43F01003 orr r3, r3, #16
8146 00b6 6364 str r3, [r4, #68]
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8147 .loc 1 3998 7 is_stmt 1 view .LVU2869
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8148 .loc 1 3998 7 view .LVU2870
8149 00b8 84F84020 strb r2, [r4, #64]
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8150 .loc 1 3998 7 view .LVU2871
4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8151 .loc 1 4000 7 view .LVU2872
4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8152 .loc 1 4000 14 is_stmt 0 view .LVU2873
8153 00bc 0125 movs r5, #1
8154 00be 64E0 b .L510
8155 .LVL538:
8156 .L511:
3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8157 .loc 1 3871 7 is_stmt 1 view .LVU2874
3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8158 .loc 1 3871 23 is_stmt 0 view .LVU2875
8159 00c0 4FF40073 mov r3, #512
8160 .LVL539:
3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8161 .loc 1 3871 23 view .LVU2876
8162 00c4 6364 str r3, [r4, #68]
3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8163 .loc 1 3872 7 is_stmt 1 view .LVU2877
3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8164 .loc 1 3872 15 is_stmt 0 view .LVU2878
8165 00c6 0125 movs r5, #1
8166 .LVL540:
3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8167 .loc 1 3872 15 view .LVU2879
8168 00c8 5FE0 b .L510
8169 .LVL541:
8170 .L524:
3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8171 .loc 1 3886 7 is_stmt 1 view .LVU2880
8172 00ca 0221 movs r1, #2
8173 00cc 2046 mov r0, r4
8174 00ce FFF7FEFF bl I2C_Disable_IRQ
8175 .LVL542:
3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 311
8176 .loc 1 3888 7 view .LVU2881
3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8177 .loc 1 3888 16 is_stmt 0 view .LVU2882
8178 00d2 2368 ldr r3, [r4]
3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8179 .loc 1 3888 26 view .LVU2883
8180 00d4 1A68 ldr r2, [r3]
3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8181 .loc 1 3888 10 view .LVU2884
8182 00d6 12F4004F tst r2, #32768
8183 00da B8D0 beq .L514
3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8184 .loc 1 3891 9 is_stmt 1 view .LVU2885
3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8185 .loc 1 3891 17 is_stmt 0 view .LVU2886
8186 00dc E26B ldr r2, [r4, #60]
3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8187 .loc 1 3891 12 view .LVU2887
8188 00de 002A cmp r2, #0
8189 00e0 B5D0 beq .L514
3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8190 .loc 1 3893 11 is_stmt 1 view .LVU2888
3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8191 .loc 1 3893 25 is_stmt 0 view .LVU2889
8192 00e2 1A68 ldr r2, [r3]
3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8193 .loc 1 3893 31 view .LVU2890
8194 00e4 22F40042 bic r2, r2, #32768
8195 00e8 1A60 str r2, [r3]
3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8196 .loc 1 3897 11 is_stmt 1 view .LVU2891
3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8197 .loc 1 3897 15 is_stmt 0 view .LVU2892
8198 00ea E36B ldr r3, [r4, #60]
3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8199 .loc 1 3897 43 view .LVU2893
8200 00ec 2C4A ldr r2, .L526+12
8201 00ee 5A63 str r2, [r3, #52]
3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8202 .loc 1 3900 11 is_stmt 1 view .LVU2894
3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8203 .loc 1 3900 15 is_stmt 0 view .LVU2895
8204 00f0 E06B ldr r0, [r4, #60]
8205 00f2 FFF7FEFF bl HAL_DMA_Abort_IT
8206 .LVL543:
3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8207 .loc 1 3900 14 view .LVU2896
8208 00f6 0028 cmp r0, #0
8209 00f8 A9D0 beq .L514
3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8210 .loc 1 3903 13 is_stmt 1 view .LVU2897
3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8211 .loc 1 3903 17 is_stmt 0 view .LVU2898
8212 00fa E06B ldr r0, [r4, #60]
3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8213 .loc 1 3903 25 view .LVU2899
8214 00fc 436B ldr r3, [r0, #52]
ARM GAS /tmp/cczJHHnF.s page 312
3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8215 .loc 1 3903 13 view .LVU2900
8216 00fe 9847 blx r3
8217 .LVL544:
8218 0100 A5E7 b .L514
8219 .L525:
3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8220 .loc 1 3910 7 is_stmt 1 view .LVU2901
3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8221 .loc 1 3910 16 is_stmt 0 view .LVU2902
8222 0102 2368 ldr r3, [r4]
3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8223 .loc 1 3910 26 view .LVU2903
8224 0104 1A68 ldr r2, [r3]
3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8225 .loc 1 3910 10 view .LVU2904
8226 0106 12F4804F tst r2, #16384
8227 010a A0D0 beq .L514
3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8228 .loc 1 3912 9 is_stmt 1 view .LVU2905
3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8229 .loc 1 3912 23 is_stmt 0 view .LVU2906
8230 010c 1A68 ldr r2, [r3]
3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8231 .loc 1 3912 29 view .LVU2907
8232 010e 22F48042 bic r2, r2, #16384
8233 0112 1A60 str r2, [r3]
3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8234 .loc 1 3915 9 is_stmt 1 view .LVU2908
3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8235 .loc 1 3915 17 is_stmt 0 view .LVU2909
8236 0114 A36B ldr r3, [r4, #56]
3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8237 .loc 1 3915 12 view .LVU2910
8238 0116 002B cmp r3, #0
8239 0118 99D0 beq .L514
3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8240 .loc 1 3919 11 is_stmt 1 view .LVU2911
3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8241 .loc 1 3919 43 is_stmt 0 view .LVU2912
8242 011a 214A ldr r2, .L526+12
8243 011c 5A63 str r2, [r3, #52]
3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8244 .loc 1 3922 11 is_stmt 1 view .LVU2913
3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8245 .loc 1 3922 15 is_stmt 0 view .LVU2914
8246 011e A06B ldr r0, [r4, #56]
8247 0120 FFF7FEFF bl HAL_DMA_Abort_IT
8248 .LVL545:
3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8249 .loc 1 3922 14 view .LVU2915
8250 0124 0028 cmp r0, #0
8251 0126 92D0 beq .L514
3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8252 .loc 1 3925 13 is_stmt 1 view .LVU2916
3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8253 .loc 1 3925 17 is_stmt 0 view .LVU2917
ARM GAS /tmp/cczJHHnF.s page 313
8254 0128 A06B ldr r0, [r4, #56]
3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8255 .loc 1 3925 25 view .LVU2918
8256 012a 436B ldr r3, [r0, #52]
3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8257 .loc 1 3925 13 view .LVU2919
8258 012c 9847 blx r3
8259 .LVL546:
8260 012e 8EE7 b .L514
8261 .L515:
3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8262 .loc 1 3968 7 is_stmt 1 view .LVU2920
3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8263 .loc 1 3968 23 is_stmt 0 view .LVU2921
8264 0130 2823 movs r3, #40
8265 0132 84F84130 strb r3, [r4, #65]
3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8266 .loc 1 3969 7 is_stmt 1 view .LVU2922
3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8267 .loc 1 3969 23 is_stmt 0 view .LVU2923
8268 0136 0022 movs r2, #0
8269 0138 84F84220 strb r2, [r4, #66]
3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8270 .loc 1 3972 7 is_stmt 1 view .LVU2924
3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8271 .loc 1 3972 11 is_stmt 0 view .LVU2925
8272 013c 636C ldr r3, [r4, #68]
3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8273 .loc 1 3972 23 view .LVU2926
8274 013e 43F08003 orr r3, r3, #128
8275 0142 6364 str r3, [r4, #68]
3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8276 .loc 1 3975 7 is_stmt 1 view .LVU2927
3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8277 .loc 1 3975 7 view .LVU2928
8278 0144 84F84020 strb r2, [r4, #64]
3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8279 .loc 1 3975 7 view .LVU2929
3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8280 .loc 1 3977 7 view .LVU2930
3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8281 .loc 1 3977 14 is_stmt 0 view .LVU2931
8282 0148 0125 movs r5, #1
8283 .LVL547:
3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8284 .loc 1 3977 14 view .LVU2932
8285 014a 1EE0 b .L510
8286 .LVL548:
8287 .L516:
3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8288 .loc 1 3983 7 is_stmt 1 view .LVU2933
3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8289 .loc 1 3983 11 is_stmt 0 view .LVU2934
8290 014c 638D ldrh r3, [r4, #42]
8291 014e 9BB2 uxth r3, r3
3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8292 .loc 1 3983 30 view .LVU2935
ARM GAS /tmp/cczJHHnF.s page 314
8293 0150 228D ldrh r2, [r4, #40]
3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8294 .loc 1 3983 23 view .LVU2936
8295 0152 9B1A subs r3, r3, r2
8296 0154 9BB2 uxth r3, r3
8297 0156 6385 strh r3, [r4, #42] @ movhi
3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8298 .loc 1 3986 7 is_stmt 1 view .LVU2937
3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8299 .loc 1 3986 22 is_stmt 0 view .LVU2938
8300 0158 0023 movs r3, #0
8301 015a 2385 strh r3, [r4, #40] @ movhi
4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8302 .loc 1 4003 5 is_stmt 1 view .LVU2939
4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8303 .loc 1 4003 9 is_stmt 0 view .LVU2940
8304 015c 2368 ldr r3, [r4]
8305 015e 9A69 ldr r2, [r3, #24]
4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8306 .loc 1 4003 8 view .LVU2941
8307 0160 12F4803F tst r2, #65536
8308 0164 0DD1 bne .L518
8309 .L519:
4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8310 .loc 1 4011 5 is_stmt 1 view .LVU2942
4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8311 .loc 1 4011 5 view .LVU2943
8312 0166 0023 movs r3, #0
8313 0168 84F84030 strb r3, [r4, #64]
4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8314 .loc 1 4011 5 view .LVU2944
4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8315 .loc 1 4017 5 view .LVU2945
8316 016c 4FF40041 mov r1, #32768
8317 0170 2046 mov r0, r4
8318 .LVL549:
4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8319 .loc 1 4017 5 is_stmt 0 view .LVU2946
8320 0172 FFF7FEFF bl I2C_Enable_IRQ
8321 .LVL550:
4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8322 .loc 1 4020 5 is_stmt 1 view .LVU2947
4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8323 .loc 1 4020 9 is_stmt 0 view .LVU2948
8324 0176 2268 ldr r2, [r4]
4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8325 .loc 1 4020 19 view .LVU2949
8326 0178 1368 ldr r3, [r2]
4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8327 .loc 1 4020 25 view .LVU2950
8328 017a 43F48043 orr r3, r3, #16384
8329 017e 1360 str r3, [r2]
4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8330 .loc 1 4022 5 is_stmt 1 view .LVU2951
4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8331 .loc 1 4022 12 is_stmt 0 view .LVU2952
8332 0180 03E0 b .L510
ARM GAS /tmp/cczJHHnF.s page 315
8333 .LVL551:
8334 .L518:
4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8335 .loc 1 4007 7 is_stmt 1 view .LVU2953
8336 0182 0822 movs r2, #8
8337 0184 DA61 str r2, [r3, #28]
8338 0186 EEE7 b .L519
8339 .LVL552:
8340 .L520:
4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8341 .loc 1 4026 12 is_stmt 0 view .LVU2954
8342 0188 0125 movs r5, #1
8343 .LVL553:
8344 .L510:
4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8345 .loc 1 4028 1 view .LVU2955
8346 018a 2846 mov r0, r5
8347 018c F8BD pop {r3, r4, r5, r6, r7, pc}
8348 .LVL554:
8349 .L521:
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8350 .loc 1 3876 5 view .LVU2956
8351 018e 0225 movs r5, #2
8352 .LVL555:
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8353 .loc 1 3876 5 view .LVU2957
8354 0190 FBE7 b .L510
8355 .L527:
8356 0192 00BF .align 2
8357 .L526:
8358 0194 00000000 .word I2C_Slave_ISR_DMA
8359 0198 00000000 .word I2C_DMASlaveTransmitCplt
8360 019c 00000000 .word I2C_DMAError
8361 01a0 00000000 .word I2C_DMAAbort
8362 .cfi_endproc
8363 .LFE158:
8365 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits
8366 .align 1
8367 .global HAL_I2C_Slave_Seq_Receive_IT
8368 .syntax unified
8369 .thumb
8370 .thumb_func
8372 HAL_I2C_Slave_Seq_Receive_IT:
8373 .LVL556:
8374 .LFB159:
4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
8375 .loc 1 4042 1 is_stmt 1 view -0
8376 .cfi_startproc
8377 @ args = 0, pretend = 0, frame = 0
8378 @ frame_needed = 0, uses_anonymous_args = 0
4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
8379 .loc 1 4042 1 is_stmt 0 view .LVU2959
8380 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8381 .cfi_def_cfa_offset 24
8382 .cfi_offset 3, -24
8383 .cfi_offset 4, -20
8384 .cfi_offset 5, -16
ARM GAS /tmp/cczJHHnF.s page 316
8385 .cfi_offset 6, -12
8386 .cfi_offset 7, -8
8387 .cfi_offset 14, -4
8388 0002 0446 mov r4, r0
4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8389 .loc 1 4044 3 is_stmt 1 view .LVU2960
4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8390 .loc 1 4046 3 view .LVU2961
4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8391 .loc 1 4046 22 is_stmt 0 view .LVU2962
8392 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8393 .LVL557:
4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8394 .loc 1 4046 6 view .LVU2963
8395 0008 00F02800 and r0, r0, #40
8396 000c 2828 cmp r0, #40
8397 000e 5AD1 bne .L534
8398 0010 0F46 mov r7, r1
8399 0012 1646 mov r6, r2
8400 0014 1D46 mov r5, r3
4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8401 .loc 1 4048 5 is_stmt 1 view .LVU2964
4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8402 .loc 1 4048 8 is_stmt 0 view .LVU2965
8403 0016 01B1 cbz r1, .L530
4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8404 .loc 1 4048 25 discriminator 1 view .LVU2966
8405 0018 22B9 cbnz r2, .L531
8406 .L530:
4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8407 .loc 1 4050 7 is_stmt 1 view .LVU2967
4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8408 .loc 1 4050 23 is_stmt 0 view .LVU2968
8409 001a 4FF40073 mov r3, #512
8410 .LVL558:
4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8411 .loc 1 4050 23 view .LVU2969
8412 001e 6364 str r3, [r4, #68]
4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8413 .loc 1 4051 7 is_stmt 1 view .LVU2970
4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8414 .loc 1 4051 15 is_stmt 0 view .LVU2971
8415 0020 0120 movs r0, #1
8416 0022 51E0 b .L529
8417 .LVL559:
8418 .L531:
4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8419 .loc 1 4055 5 is_stmt 1 view .LVU2972
8420 0024 48F20201 movw r1, #32770
8421 .LVL560:
4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8422 .loc 1 4055 5 is_stmt 0 view .LVU2973
8423 0028 2046 mov r0, r4
8424 002a FFF7FEFF bl I2C_Disable_IRQ
8425 .LVL561:
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8426 .loc 1 4058 5 is_stmt 1 view .LVU2974
ARM GAS /tmp/cczJHHnF.s page 317
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8427 .loc 1 4058 5 view .LVU2975
8428 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8429 0032 012B cmp r3, #1
8430 0034 49D0 beq .L535
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8431 .loc 1 4058 5 discriminator 2 view .LVU2976
8432 0036 0123 movs r3, #1
8433 0038 84F84030 strb r3, [r4, #64]
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8434 .loc 1 4058 5 discriminator 2 view .LVU2977
4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8435 .loc 1 4062 5 discriminator 2 view .LVU2978
4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8436 .loc 1 4062 13 is_stmt 0 discriminator 2 view .LVU2979
8437 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8438 0040 DBB2 uxtb r3, r3
4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8439 .loc 1 4062 8 discriminator 2 view .LVU2980
8440 0042 292B cmp r3, #41
8441 0044 24D0 beq .L537
8442 .L532:
4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8443 .loc 1 4088 5 is_stmt 1 view .LVU2981
4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8444 .loc 1 4088 21 is_stmt 0 view .LVU2982
8445 0046 2A23 movs r3, #42
8446 0048 84F84130 strb r3, [r4, #65]
4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8447 .loc 1 4089 5 is_stmt 1 view .LVU2983
4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8448 .loc 1 4089 21 is_stmt 0 view .LVU2984
8449 004c 2023 movs r3, #32
8450 004e 84F84230 strb r3, [r4, #66]
4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8451 .loc 1 4090 5 is_stmt 1 view .LVU2985
4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8452 .loc 1 4090 21 is_stmt 0 view .LVU2986
8453 0052 0023 movs r3, #0
8454 0054 6364 str r3, [r4, #68]
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8455 .loc 1 4093 5 is_stmt 1 view .LVU2987
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8456 .loc 1 4093 9 is_stmt 0 view .LVU2988
8457 0056 2268 ldr r2, [r4]
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8458 .loc 1 4093 19 view .LVU2989
8459 0058 5368 ldr r3, [r2, #4]
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8460 .loc 1 4093 25 view .LVU2990
8461 005a 23F40043 bic r3, r3, #32768
8462 005e 5360 str r3, [r2, #4]
4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8463 .loc 1 4096 5 is_stmt 1 view .LVU2991
4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8464 .loc 1 4096 23 is_stmt 0 view .LVU2992
8465 0060 6762 str r7, [r4, #36]
ARM GAS /tmp/cczJHHnF.s page 318
4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8466 .loc 1 4097 5 is_stmt 1 view .LVU2993
4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8467 .loc 1 4097 23 is_stmt 0 view .LVU2994
8468 0062 6685 strh r6, [r4, #42] @ movhi
4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8469 .loc 1 4098 5 is_stmt 1 view .LVU2995
4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8470 .loc 1 4098 29 is_stmt 0 view .LVU2996
8471 0064 638D ldrh r3, [r4, #42]
4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8472 .loc 1 4098 23 view .LVU2997
8473 0066 2385 strh r3, [r4, #40] @ movhi
4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8474 .loc 1 4099 5 is_stmt 1 view .LVU2998
4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8475 .loc 1 4099 23 is_stmt 0 view .LVU2999
8476 0068 E562 str r5, [r4, #44]
4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8477 .loc 1 4100 5 is_stmt 1 view .LVU3000
4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8478 .loc 1 4100 23 is_stmt 0 view .LVU3001
8479 006a 194B ldr r3, .L538
8480 006c 6363 str r3, [r4, #52]
4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8481 .loc 1 4102 5 is_stmt 1 view .LVU3002
4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8482 .loc 1 4102 9 is_stmt 0 view .LVU3003
8483 006e 2368 ldr r3, [r4]
8484 0070 9A69 ldr r2, [r3, #24]
4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8485 .loc 1 4102 8 view .LVU3004
8486 0072 12F4803F tst r2, #65536
8487 0076 01D1 bne .L533
4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8488 .loc 1 4106 7 is_stmt 1 view .LVU3005
8489 0078 0822 movs r2, #8
8490 007a DA61 str r2, [r3, #28]
8491 .L533:
4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8492 .loc 1 4110 5 view .LVU3006
4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8493 .loc 1 4110 5 view .LVU3007
8494 007c 0025 movs r5, #0
8495 .LVL562:
4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8496 .loc 1 4110 5 is_stmt 0 view .LVU3008
8497 007e 84F84050 strb r5, [r4, #64]
4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8498 .loc 1 4110 5 is_stmt 1 view .LVU3009
4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8499 .loc 1 4116 5 view .LVU3010
8500 0082 48F20201 movw r1, #32770
8501 0086 2046 mov r0, r4
8502 0088 FFF7FEFF bl I2C_Enable_IRQ
8503 .LVL563:
4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 319
8504 .loc 1 4118 5 view .LVU3011
4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8505 .loc 1 4118 12 is_stmt 0 view .LVU3012
8506 008c 2846 mov r0, r5
8507 008e 1BE0 b .L529
8508 .LVL564:
8509 .L537:
4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8510 .loc 1 4065 7 is_stmt 1 view .LVU3013
8511 0090 0121 movs r1, #1
8512 0092 2046 mov r0, r4
8513 0094 FFF7FEFF bl I2C_Disable_IRQ
8514 .LVL565:
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8515 .loc 1 4067 7 view .LVU3014
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8516 .loc 1 4067 16 is_stmt 0 view .LVU3015
8517 0098 2368 ldr r3, [r4]
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8518 .loc 1 4067 26 view .LVU3016
8519 009a 1A68 ldr r2, [r3]
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8520 .loc 1 4067 10 view .LVU3017
8521 009c 12F4804F tst r2, #16384
8522 00a0 D1D0 beq .L532
4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8523 .loc 1 4069 9 is_stmt 1 view .LVU3018
4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8524 .loc 1 4069 23 is_stmt 0 view .LVU3019
8525 00a2 1A68 ldr r2, [r3]
4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8526 .loc 1 4069 29 view .LVU3020
8527 00a4 22F48042 bic r2, r2, #16384
8528 00a8 1A60 str r2, [r3]
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8529 .loc 1 4072 9 is_stmt 1 view .LVU3021
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8530 .loc 1 4072 17 is_stmt 0 view .LVU3022
8531 00aa A36B ldr r3, [r4, #56]
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8532 .loc 1 4072 12 view .LVU3023
8533 00ac 002B cmp r3, #0
8534 00ae CAD0 beq .L532
4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8535 .loc 1 4076 11 is_stmt 1 view .LVU3024
4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8536 .loc 1 4076 43 is_stmt 0 view .LVU3025
8537 00b0 084A ldr r2, .L538+4
8538 00b2 5A63 str r2, [r3, #52]
4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8539 .loc 1 4079 11 is_stmt 1 view .LVU3026
4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8540 .loc 1 4079 15 is_stmt 0 view .LVU3027
8541 00b4 A06B ldr r0, [r4, #56]
8542 00b6 FFF7FEFF bl HAL_DMA_Abort_IT
8543 .LVL566:
4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 320
8544 .loc 1 4079 14 view .LVU3028
8545 00ba 0028 cmp r0, #0
8546 00bc C3D0 beq .L532
4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8547 .loc 1 4082 13 is_stmt 1 view .LVU3029
4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8548 .loc 1 4082 17 is_stmt 0 view .LVU3030
8549 00be A06B ldr r0, [r4, #56]
4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8550 .loc 1 4082 25 view .LVU3031
8551 00c0 436B ldr r3, [r0, #52]
4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8552 .loc 1 4082 13 view .LVU3032
8553 00c2 9847 blx r3
8554 .LVL567:
8555 00c4 BFE7 b .L532
8556 .LVL568:
8557 .L534:
4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8558 .loc 1 4122 12 view .LVU3033
8559 00c6 0120 movs r0, #1
8560 .LVL569:
8561 .L529:
4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8562 .loc 1 4124 1 view .LVU3034
8563 00c8 F8BD pop {r3, r4, r5, r6, r7, pc}
8564 .LVL570:
8565 .L535:
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8566 .loc 1 4058 5 view .LVU3035
8567 00ca 0220 movs r0, #2
8568 00cc FCE7 b .L529
8569 .L539:
8570 00ce 00BF .align 2
8571 .L538:
8572 00d0 00000000 .word I2C_Slave_ISR_IT
8573 00d4 00000000 .word I2C_DMAAbort
8574 .cfi_endproc
8575 .LFE159:
8577 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits
8578 .align 1
8579 .global HAL_I2C_Slave_Seq_Receive_DMA
8580 .syntax unified
8581 .thumb
8582 .thumb_func
8584 HAL_I2C_Slave_Seq_Receive_DMA:
8585 .LVL571:
8586 .LFB160:
4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8587 .loc 1 4138 1 is_stmt 1 view -0
8588 .cfi_startproc
8589 @ args = 0, pretend = 0, frame = 0
8590 @ frame_needed = 0, uses_anonymous_args = 0
4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8591 .loc 1 4138 1 is_stmt 0 view .LVU3037
8592 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8593 .cfi_def_cfa_offset 24
ARM GAS /tmp/cczJHHnF.s page 321
8594 .cfi_offset 3, -24
8595 .cfi_offset 4, -20
8596 .cfi_offset 5, -16
8597 .cfi_offset 6, -12
8598 .cfi_offset 7, -8
8599 .cfi_offset 14, -4
8600 0002 0446 mov r4, r0
4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8601 .loc 1 4139 3 is_stmt 1 view .LVU3038
4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8602 .loc 1 4142 3 view .LVU3039
4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8603 .loc 1 4144 3 view .LVU3040
4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8604 .loc 1 4144 22 is_stmt 0 view .LVU3041
8605 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8606 .LVL572:
4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8607 .loc 1 4144 6 view .LVU3042
8608 0008 00F02800 and r0, r0, #40
8609 000c 2828 cmp r0, #40
8610 000e 40F0B980 bne .L551
8611 0012 0F46 mov r7, r1
8612 0014 1646 mov r6, r2
8613 0016 1D46 mov r5, r3
4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8614 .loc 1 4146 5 is_stmt 1 view .LVU3043
4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8615 .loc 1 4146 8 is_stmt 0 view .LVU3044
8616 0018 01B1 cbz r1, .L542
4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8617 .loc 1 4146 25 discriminator 1 view .LVU3045
8618 001a 22B9 cbnz r2, .L543
8619 .L542:
4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8620 .loc 1 4148 7 is_stmt 1 view .LVU3046
4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8621 .loc 1 4148 23 is_stmt 0 view .LVU3047
8622 001c 4FF40073 mov r3, #512
8623 .LVL573:
4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8624 .loc 1 4148 23 view .LVU3048
8625 0020 6364 str r3, [r4, #68]
4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8626 .loc 1 4149 7 is_stmt 1 view .LVU3049
4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8627 .loc 1 4149 15 is_stmt 0 view .LVU3050
8628 0022 0125 movs r5, #1
8629 .LVL574:
4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8630 .loc 1 4149 15 view .LVU3051
8631 0024 AFE0 b .L541
8632 .LVL575:
8633 .L543:
4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8634 .loc 1 4153 5 is_stmt 1 view .LVU3052
8635 0026 48F20201 movw r1, #32770
ARM GAS /tmp/cczJHHnF.s page 322
8636 .LVL576:
4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8637 .loc 1 4153 5 is_stmt 0 view .LVU3053
8638 002a 2046 mov r0, r4
8639 002c FFF7FEFF bl I2C_Disable_IRQ
8640 .LVL577:
4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8641 .loc 1 4156 5 is_stmt 1 view .LVU3054
4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8642 .loc 1 4156 5 view .LVU3055
8643 0030 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8644 0034 012B cmp r3, #1
8645 0036 00F0A880 beq .L552
4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8646 .loc 1 4156 5 discriminator 2 view .LVU3056
8647 003a 0123 movs r3, #1
8648 003c 84F84030 strb r3, [r4, #64]
4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8649 .loc 1 4156 5 discriminator 2 view .LVU3057
4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8650 .loc 1 4160 5 discriminator 2 view .LVU3058
4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8651 .loc 1 4160 13 is_stmt 0 discriminator 2 view .LVU3059
8652 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8653 0044 DBB2 uxtb r3, r3
4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8654 .loc 1 4160 8 discriminator 2 view .LVU3060
8655 0046 292B cmp r3, #41
8656 0048 3DD0 beq .L555
4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8657 .loc 1 4185 10 is_stmt 1 view .LVU3061
4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8658 .loc 1 4185 18 is_stmt 0 view .LVU3062
8659 004a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8660 004e DBB2 uxtb r3, r3
4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8661 .loc 1 4185 13 view .LVU3063
8662 0050 2A2B cmp r3, #42
8663 0052 54D0 beq .L556
8664 .L545:
4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8665 .loc 1 4210 5 is_stmt 1 view .LVU3064
4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8666 .loc 1 4212 5 view .LVU3065
4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8667 .loc 1 4212 21 is_stmt 0 view .LVU3066
8668 0054 2A23 movs r3, #42
8669 0056 84F84130 strb r3, [r4, #65]
4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8670 .loc 1 4213 5 is_stmt 1 view .LVU3067
4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8671 .loc 1 4213 21 is_stmt 0 view .LVU3068
8672 005a 2023 movs r3, #32
8673 005c 84F84230 strb r3, [r4, #66]
4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8674 .loc 1 4214 5 is_stmt 1 view .LVU3069
4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 323
8675 .loc 1 4214 21 is_stmt 0 view .LVU3070
8676 0060 0023 movs r3, #0
8677 0062 6364 str r3, [r4, #68]
4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8678 .loc 1 4217 5 is_stmt 1 view .LVU3071
4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8679 .loc 1 4217 9 is_stmt 0 view .LVU3072
8680 0064 2268 ldr r2, [r4]
4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8681 .loc 1 4217 19 view .LVU3073
8682 0066 5368 ldr r3, [r2, #4]
4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8683 .loc 1 4217 25 view .LVU3074
8684 0068 23F40043 bic r3, r3, #32768
8685 006c 5360 str r3, [r2, #4]
4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8686 .loc 1 4220 5 is_stmt 1 view .LVU3075
4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8687 .loc 1 4220 23 is_stmt 0 view .LVU3076
8688 006e 6762 str r7, [r4, #36]
4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8689 .loc 1 4221 5 is_stmt 1 view .LVU3077
4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8690 .loc 1 4221 23 is_stmt 0 view .LVU3078
8691 0070 6685 strh r6, [r4, #42] @ movhi
4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8692 .loc 1 4222 5 is_stmt 1 view .LVU3079
4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8693 .loc 1 4222 29 is_stmt 0 view .LVU3080
8694 0072 638D ldrh r3, [r4, #42]
4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8695 .loc 1 4222 23 view .LVU3081
8696 0074 2385 strh r3, [r4, #40] @ movhi
4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8697 .loc 1 4223 5 is_stmt 1 view .LVU3082
4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8698 .loc 1 4223 23 is_stmt 0 view .LVU3083
8699 0076 E562 str r5, [r4, #44]
4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8700 .loc 1 4224 5 is_stmt 1 view .LVU3084
4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8701 .loc 1 4224 23 is_stmt 0 view .LVU3085
8702 0078 454B ldr r3, .L557
8703 007a 6363 str r3, [r4, #52]
4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8704 .loc 1 4226 5 is_stmt 1 view .LVU3086
4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8705 .loc 1 4226 13 is_stmt 0 view .LVU3087
8706 007c E36B ldr r3, [r4, #60]
4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8707 .loc 1 4226 8 view .LVU3088
8708 007e 002B cmp r3, #0
8709 0080 54D0 beq .L546
4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8710 .loc 1 4229 7 is_stmt 1 view .LVU3089
4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8711 .loc 1 4229 38 is_stmt 0 view .LVU3090
ARM GAS /tmp/cczJHHnF.s page 324
8712 0082 444A ldr r2, .L557+4
8713 0084 9A62 str r2, [r3, #40]
4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8714 .loc 1 4232 7 is_stmt 1 view .LVU3091
4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8715 .loc 1 4232 11 is_stmt 0 view .LVU3092
8716 0086 E36B ldr r3, [r4, #60]
4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8717 .loc 1 4232 39 view .LVU3093
8718 0088 434A ldr r2, .L557+8
8719 008a 1A63 str r2, [r3, #48]
4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8720 .loc 1 4235 7 is_stmt 1 view .LVU3094
4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8721 .loc 1 4235 11 is_stmt 0 view .LVU3095
8722 008c E26B ldr r2, [r4, #60]
4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8723 .loc 1 4235 42 view .LVU3096
8724 008e 0023 movs r3, #0
8725 0090 D362 str r3, [r2, #44]
4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8726 .loc 1 4236 7 is_stmt 1 view .LVU3097
4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8727 .loc 1 4236 11 is_stmt 0 view .LVU3098
8728 0092 E26B ldr r2, [r4, #60]
4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8729 .loc 1 4236 39 view .LVU3099
8730 0094 5363 str r3, [r2, #52]
4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
8731 .loc 1 4239 7 is_stmt 1 view .LVU3100
4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
8732 .loc 1 4239 69 is_stmt 0 view .LVU3101
8733 0096 2168 ldr r1, [r4]
4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
8734 .loc 1 4239 23 view .LVU3102
8735 0098 238D ldrh r3, [r4, #40]
8736 009a 3A46 mov r2, r7
8737 009c 2431 adds r1, r1, #36
8738 009e E06B ldr r0, [r4, #60]
8739 00a0 FFF7FEFF bl HAL_DMA_Start_IT
8740 .LVL578:
4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8741 .loc 1 4257 5 is_stmt 1 view .LVU3103
4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8742 .loc 1 4257 8 is_stmt 0 view .LVU3104
8743 00a4 0546 mov r5, r0
8744 .LVL579:
4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8745 .loc 1 4257 8 view .LVU3105
8746 00a6 0028 cmp r0, #0
8747 00a8 4ED0 beq .L547
4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8748 .loc 1 4268 7 is_stmt 1 view .LVU3106
4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8749 .loc 1 4268 23 is_stmt 0 view .LVU3107
8750 00aa 2823 movs r3, #40
8751 00ac 84F84130 strb r3, [r4, #65]
ARM GAS /tmp/cczJHHnF.s page 325
4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8752 .loc 1 4269 7 is_stmt 1 view .LVU3108
4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8753 .loc 1 4269 23 is_stmt 0 view .LVU3109
8754 00b0 0022 movs r2, #0
8755 00b2 84F84220 strb r2, [r4, #66]
4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8756 .loc 1 4272 7 is_stmt 1 view .LVU3110
4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8757 .loc 1 4272 11 is_stmt 0 view .LVU3111
8758 00b6 636C ldr r3, [r4, #68]
4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8759 .loc 1 4272 23 view .LVU3112
8760 00b8 43F01003 orr r3, r3, #16
8761 00bc 6364 str r3, [r4, #68]
4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8762 .loc 1 4275 7 is_stmt 1 view .LVU3113
4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8763 .loc 1 4275 7 view .LVU3114
8764 00be 84F84020 strb r2, [r4, #64]
4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8765 .loc 1 4275 7 view .LVU3115
4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8766 .loc 1 4277 7 view .LVU3116
4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8767 .loc 1 4277 14 is_stmt 0 view .LVU3117
8768 00c2 0125 movs r5, #1
8769 00c4 5FE0 b .L541
8770 .LVL580:
8771 .L555:
4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8772 .loc 1 4163 7 is_stmt 1 view .LVU3118
8773 00c6 0121 movs r1, #1
8774 00c8 2046 mov r0, r4
8775 00ca FFF7FEFF bl I2C_Disable_IRQ
8776 .LVL581:
4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8777 .loc 1 4165 7 view .LVU3119
4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8778 .loc 1 4165 16 is_stmt 0 view .LVU3120
8779 00ce 2368 ldr r3, [r4]
4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8780 .loc 1 4165 26 view .LVU3121
8781 00d0 1A68 ldr r2, [r3]
4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8782 .loc 1 4165 10 view .LVU3122
8783 00d2 12F4804F tst r2, #16384
8784 00d6 BDD0 beq .L545
4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8785 .loc 1 4168 9 is_stmt 1 view .LVU3123
4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8786 .loc 1 4168 17 is_stmt 0 view .LVU3124
8787 00d8 A26B ldr r2, [r4, #56]
4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8788 .loc 1 4168 12 view .LVU3125
8789 00da 002A cmp r2, #0
8790 00dc BAD0 beq .L545
ARM GAS /tmp/cczJHHnF.s page 326
4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8791 .loc 1 4170 11 is_stmt 1 view .LVU3126
4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8792 .loc 1 4170 25 is_stmt 0 view .LVU3127
8793 00de 1A68 ldr r2, [r3]
4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8794 .loc 1 4170 31 view .LVU3128
8795 00e0 22F48042 bic r2, r2, #16384
8796 00e4 1A60 str r2, [r3]
4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8797 .loc 1 4174 11 is_stmt 1 view .LVU3129
4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8798 .loc 1 4174 15 is_stmt 0 view .LVU3130
8799 00e6 A36B ldr r3, [r4, #56]
4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8800 .loc 1 4174 43 view .LVU3131
8801 00e8 2C4A ldr r2, .L557+12
8802 00ea 5A63 str r2, [r3, #52]
4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8803 .loc 1 4177 11 is_stmt 1 view .LVU3132
4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8804 .loc 1 4177 15 is_stmt 0 view .LVU3133
8805 00ec A06B ldr r0, [r4, #56]
8806 00ee FFF7FEFF bl HAL_DMA_Abort_IT
8807 .LVL582:
4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8808 .loc 1 4177 14 view .LVU3134
8809 00f2 0028 cmp r0, #0
8810 00f4 AED0 beq .L545
4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8811 .loc 1 4180 13 is_stmt 1 view .LVU3135
4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8812 .loc 1 4180 17 is_stmt 0 view .LVU3136
8813 00f6 A06B ldr r0, [r4, #56]
4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8814 .loc 1 4180 25 view .LVU3137
8815 00f8 436B ldr r3, [r0, #52]
4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8816 .loc 1 4180 13 view .LVU3138
8817 00fa 9847 blx r3
8818 .LVL583:
8819 00fc AAE7 b .L545
8820 .L556:
4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8821 .loc 1 4187 7 is_stmt 1 view .LVU3139
4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8822 .loc 1 4187 16 is_stmt 0 view .LVU3140
8823 00fe 2368 ldr r3, [r4]
4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8824 .loc 1 4187 26 view .LVU3141
8825 0100 1A68 ldr r2, [r3]
4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8826 .loc 1 4187 10 view .LVU3142
8827 0102 12F4004F tst r2, #32768
8828 0106 A5D0 beq .L545
4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8829 .loc 1 4189 9 is_stmt 1 view .LVU3143
ARM GAS /tmp/cczJHHnF.s page 327
4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8830 .loc 1 4189 23 is_stmt 0 view .LVU3144
8831 0108 1A68 ldr r2, [r3]
4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8832 .loc 1 4189 29 view .LVU3145
8833 010a 22F40042 bic r2, r2, #32768
8834 010e 1A60 str r2, [r3]
4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8835 .loc 1 4192 9 is_stmt 1 view .LVU3146
4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8836 .loc 1 4192 17 is_stmt 0 view .LVU3147
8837 0110 E36B ldr r3, [r4, #60]
4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8838 .loc 1 4192 12 view .LVU3148
8839 0112 002B cmp r3, #0
8840 0114 9ED0 beq .L545
4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8841 .loc 1 4196 11 is_stmt 1 view .LVU3149
4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8842 .loc 1 4196 43 is_stmt 0 view .LVU3150
8843 0116 214A ldr r2, .L557+12
8844 0118 5A63 str r2, [r3, #52]
4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8845 .loc 1 4199 11 is_stmt 1 view .LVU3151
4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8846 .loc 1 4199 15 is_stmt 0 view .LVU3152
8847 011a E06B ldr r0, [r4, #60]
8848 011c FFF7FEFF bl HAL_DMA_Abort_IT
8849 .LVL584:
4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8850 .loc 1 4199 14 view .LVU3153
8851 0120 0028 cmp r0, #0
8852 0122 97D0 beq .L545
4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8853 .loc 1 4202 13 is_stmt 1 view .LVU3154
4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8854 .loc 1 4202 17 is_stmt 0 view .LVU3155
8855 0124 E06B ldr r0, [r4, #60]
4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8856 .loc 1 4202 25 view .LVU3156
8857 0126 436B ldr r3, [r0, #52]
4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8858 .loc 1 4202 13 view .LVU3157
8859 0128 9847 blx r3
8860 .LVL585:
8861 012a 93E7 b .L545
8862 .L546:
4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8863 .loc 1 4245 7 is_stmt 1 view .LVU3158
4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8864 .loc 1 4245 23 is_stmt 0 view .LVU3159
8865 012c 2823 movs r3, #40
8866 012e 84F84130 strb r3, [r4, #65]
4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8867 .loc 1 4246 7 is_stmt 1 view .LVU3160
4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8868 .loc 1 4246 23 is_stmt 0 view .LVU3161
ARM GAS /tmp/cczJHHnF.s page 328
8869 0132 0022 movs r2, #0
8870 0134 84F84220 strb r2, [r4, #66]
4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8871 .loc 1 4249 7 is_stmt 1 view .LVU3162
4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8872 .loc 1 4249 11 is_stmt 0 view .LVU3163
8873 0138 636C ldr r3, [r4, #68]
4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8874 .loc 1 4249 23 view .LVU3164
8875 013a 43F08003 orr r3, r3, #128
8876 013e 6364 str r3, [r4, #68]
4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8877 .loc 1 4252 7 is_stmt 1 view .LVU3165
4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8878 .loc 1 4252 7 view .LVU3166
8879 0140 84F84020 strb r2, [r4, #64]
4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8880 .loc 1 4252 7 view .LVU3167
4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8881 .loc 1 4254 7 view .LVU3168
4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8882 .loc 1 4254 14 is_stmt 0 view .LVU3169
8883 0144 0125 movs r5, #1
8884 .LVL586:
4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8885 .loc 1 4254 14 view .LVU3170
8886 0146 1EE0 b .L541
8887 .LVL587:
8888 .L547:
4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8889 .loc 1 4260 7 is_stmt 1 view .LVU3171
4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8890 .loc 1 4260 11 is_stmt 0 view .LVU3172
8891 0148 638D ldrh r3, [r4, #42]
8892 014a 9BB2 uxth r3, r3
4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8893 .loc 1 4260 30 view .LVU3173
8894 014c 228D ldrh r2, [r4, #40]
4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8895 .loc 1 4260 23 view .LVU3174
8896 014e 9B1A subs r3, r3, r2
8897 0150 9BB2 uxth r3, r3
8898 0152 6385 strh r3, [r4, #42] @ movhi
4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8899 .loc 1 4263 7 is_stmt 1 view .LVU3175
4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8900 .loc 1 4263 22 is_stmt 0 view .LVU3176
8901 0154 0023 movs r3, #0
8902 0156 2385 strh r3, [r4, #40] @ movhi
4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8903 .loc 1 4280 5 is_stmt 1 view .LVU3177
4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8904 .loc 1 4280 9 is_stmt 0 view .LVU3178
8905 0158 2368 ldr r3, [r4]
8906 015a 9A69 ldr r2, [r3, #24]
4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8907 .loc 1 4280 8 view .LVU3179
ARM GAS /tmp/cczJHHnF.s page 329
8908 015c 12F4803F tst r2, #65536
8909 0160 0DD0 beq .L549
8910 .L550:
4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8911 .loc 1 4288 5 is_stmt 1 view .LVU3180
4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8912 .loc 1 4288 5 view .LVU3181
8913 0162 0023 movs r3, #0
8914 0164 84F84030 strb r3, [r4, #64]
4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8915 .loc 1 4288 5 view .LVU3182
4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8916 .loc 1 4294 5 view .LVU3183
8917 0168 48F20201 movw r1, #32770
8918 016c 2046 mov r0, r4
8919 .LVL588:
4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8920 .loc 1 4294 5 is_stmt 0 view .LVU3184
8921 016e FFF7FEFF bl I2C_Enable_IRQ
8922 .LVL589:
4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8923 .loc 1 4297 5 is_stmt 1 view .LVU3185
4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8924 .loc 1 4297 9 is_stmt 0 view .LVU3186
8925 0172 2268 ldr r2, [r4]
4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8926 .loc 1 4297 19 view .LVU3187
8927 0174 1368 ldr r3, [r2]
4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8928 .loc 1 4297 25 view .LVU3188
8929 0176 43F40043 orr r3, r3, #32768
8930 017a 1360 str r3, [r2]
4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8931 .loc 1 4299 5 is_stmt 1 view .LVU3189
4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8932 .loc 1 4299 12 is_stmt 0 view .LVU3190
8933 017c 03E0 b .L541
8934 .LVL590:
8935 .L549:
4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8936 .loc 1 4284 7 is_stmt 1 view .LVU3191
8937 017e 0822 movs r2, #8
8938 0180 DA61 str r2, [r3, #28]
8939 0182 EEE7 b .L550
8940 .LVL591:
8941 .L551:
4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8942 .loc 1 4303 12 is_stmt 0 view .LVU3192
8943 0184 0125 movs r5, #1
8944 .LVL592:
8945 .L541:
4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8946 .loc 1 4305 1 view .LVU3193
8947 0186 2846 mov r0, r5
8948 0188 F8BD pop {r3, r4, r5, r6, r7, pc}
8949 .LVL593:
8950 .L552:
ARM GAS /tmp/cczJHHnF.s page 330
4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8951 .loc 1 4156 5 view .LVU3194
8952 018a 0225 movs r5, #2
8953 .LVL594:
4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8954 .loc 1 4156 5 view .LVU3195
8955 018c FBE7 b .L541
8956 .L558:
8957 018e 00BF .align 2
8958 .L557:
8959 0190 00000000 .word I2C_Slave_ISR_DMA
8960 0194 00000000 .word I2C_DMASlaveReceiveCplt
8961 0198 00000000 .word I2C_DMAError
8962 019c 00000000 .word I2C_DMAAbort
8963 .cfi_endproc
8964 .LFE160:
8966 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
8967 .align 1
8968 .global HAL_I2C_EnableListen_IT
8969 .syntax unified
8970 .thumb
8971 .thumb_func
8973 HAL_I2C_EnableListen_IT:
8974 .LVL595:
8975 .LFB161:
4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
8976 .loc 1 4314 1 is_stmt 1 view -0
8977 .cfi_startproc
8978 @ args = 0, pretend = 0, frame = 0
8979 @ frame_needed = 0, uses_anonymous_args = 0
4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
8980 .loc 1 4314 1 is_stmt 0 view .LVU3197
8981 0000 08B5 push {r3, lr}
8982 .cfi_def_cfa_offset 8
8983 .cfi_offset 3, -8
8984 .cfi_offset 14, -4
4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8985 .loc 1 4315 3 is_stmt 1 view .LVU3198
4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8986 .loc 1 4315 11 is_stmt 0 view .LVU3199
8987 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
8988 0006 DBB2 uxtb r3, r3
4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8989 .loc 1 4315 6 view .LVU3200
8990 0008 202B cmp r3, #32
8991 000a 01D0 beq .L563
4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8992 .loc 1 4327 12 view .LVU3201
8993 000c 0220 movs r0, #2
8994 .LVL596:
8995 .L560:
4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8996 .loc 1 4329 1 view .LVU3202
8997 000e 08BD pop {r3, pc}
8998 .LVL597:
8999 .L563:
4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
ARM GAS /tmp/cczJHHnF.s page 331
9000 .loc 1 4317 5 is_stmt 1 view .LVU3203
4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9001 .loc 1 4317 17 is_stmt 0 view .LVU3204
9002 0010 2823 movs r3, #40
9003 0012 80F84130 strb r3, [r0, #65]
4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9004 .loc 1 4318 5 is_stmt 1 view .LVU3205
4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9005 .loc 1 4318 19 is_stmt 0 view .LVU3206
9006 0016 044B ldr r3, .L564
9007 0018 4363 str r3, [r0, #52]
4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9008 .loc 1 4321 5 is_stmt 1 view .LVU3207
9009 001a 4FF40041 mov r1, #32768
9010 001e FFF7FEFF bl I2C_Enable_IRQ
9011 .LVL598:
4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9012 .loc 1 4323 5 view .LVU3208
4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9013 .loc 1 4323 12 is_stmt 0 view .LVU3209
9014 0022 0020 movs r0, #0
9015 0024 F3E7 b .L560
9016 .L565:
9017 0026 00BF .align 2
9018 .L564:
9019 0028 00000000 .word I2C_Slave_ISR_IT
9020 .cfi_endproc
9021 .LFE161:
9023 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
9024 .align 1
9025 .global HAL_I2C_DisableListen_IT
9026 .syntax unified
9027 .thumb
9028 .thumb_func
9030 HAL_I2C_DisableListen_IT:
9031 .LVL599:
9032 .LFB162:
4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9033 .loc 1 4338 1 is_stmt 1 view -0
9034 .cfi_startproc
9035 @ args = 0, pretend = 0, frame = 0
9036 @ frame_needed = 0, uses_anonymous_args = 0
4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9037 .loc 1 4340 3 view .LVU3211
4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9038 .loc 1 4343 3 view .LVU3212
4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9039 .loc 1 4343 11 is_stmt 0 view .LVU3213
9040 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9041 0004 DBB2 uxtb r3, r3
4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9042 .loc 1 4343 6 view .LVU3214
9043 0006 282B cmp r3, #40
9044 0008 01D0 beq .L573
4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9045 .loc 1 4358 12 view .LVU3215
9046 000a 0220 movs r0, #2
ARM GAS /tmp/cczJHHnF.s page 332
9047 .LVL600:
4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9048 .loc 1 4360 1 view .LVU3216
9049 000c 7047 bx lr
9050 .LVL601:
9051 .L573:
4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9052 .loc 1 4338 1 view .LVU3217
9053 000e 10B5 push {r4, lr}
9054 .cfi_def_cfa_offset 8
9055 .cfi_offset 4, -8
9056 .cfi_offset 14, -4
4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9057 .loc 1 4345 5 is_stmt 1 view .LVU3218
4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9058 .loc 1 4345 26 is_stmt 0 view .LVU3219
9059 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
9060 .LVL602:
4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9061 .loc 1 4346 5 is_stmt 1 view .LVU3220
4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9062 .loc 1 4346 48 is_stmt 0 view .LVU3221
9063 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9064 .loc 1 4346 31 view .LVU3222
9065 0018 02F00302 and r2, r2, #3
9066 .LVL603:
4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9067 .loc 1 4346 31 view .LVU3223
9068 001c 1343 orrs r3, r3, r2
4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9069 .loc 1 4346 25 view .LVU3224
9070 001e 0363 str r3, [r0, #48]
4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9071 .loc 1 4347 5 is_stmt 1 view .LVU3225
4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9072 .loc 1 4347 17 is_stmt 0 view .LVU3226
9073 0020 2023 movs r3, #32
9074 0022 80F84130 strb r3, [r0, #65]
4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9075 .loc 1 4348 5 is_stmt 1 view .LVU3227
4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9076 .loc 1 4348 16 is_stmt 0 view .LVU3228
9077 0026 0024 movs r4, #0
9078 0028 80F84240 strb r4, [r0, #66]
4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9079 .loc 1 4349 5 is_stmt 1 view .LVU3229
4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9080 .loc 1 4349 19 is_stmt 0 view .LVU3230
9081 002c 4463 str r4, [r0, #52]
4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9082 .loc 1 4352 5 is_stmt 1 view .LVU3231
9083 002e 4FF40041 mov r1, #32768
9084 0032 FFF7FEFF bl I2C_Disable_IRQ
9085 .LVL604:
4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9086 .loc 1 4354 5 view .LVU3232
ARM GAS /tmp/cczJHHnF.s page 333
4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9087 .loc 1 4354 12 is_stmt 0 view .LVU3233
9088 0036 2046 mov r0, r4
4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9089 .loc 1 4360 1 view .LVU3234
9090 0038 10BD pop {r4, pc}
9091 .cfi_endproc
9092 .LFE162:
9094 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
9095 .align 1
9096 .global HAL_I2C_Master_Abort_IT
9097 .syntax unified
9098 .thumb
9099 .thumb_func
9101 HAL_I2C_Master_Abort_IT:
9102 .LVL605:
9103 .LFB163:
4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
9104 .loc 1 4371 1 is_stmt 1 view -0
9105 .cfi_startproc
9106 @ args = 0, pretend = 0, frame = 0
9107 @ frame_needed = 0, uses_anonymous_args = 0
4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9108 .loc 1 4372 3 view .LVU3236
4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9109 .loc 1 4372 11 is_stmt 0 view .LVU3237
9110 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
9111 0004 DBB2 uxtb r3, r3
4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9112 .loc 1 4372 6 view .LVU3238
9113 0006 102B cmp r3, #16
9114 0008 36D1 bne .L578
4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER)
9115 .loc 1 4371 1 view .LVU3239
9116 000a 30B5 push {r4, r5, lr}
9117 .cfi_def_cfa_offset 12
9118 .cfi_offset 4, -12
9119 .cfi_offset 5, -8
9120 .cfi_offset 14, -4
9121 000c 83B0 sub sp, sp, #12
9122 .cfi_def_cfa_offset 24
9123 000e 0446 mov r4, r0
9124 0010 0D46 mov r5, r1
4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9125 .loc 1 4375 5 is_stmt 1 view .LVU3240
4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9126 .loc 1 4375 5 view .LVU3241
9127 0012 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
9128 0016 012B cmp r3, #1
9129 0018 30D0 beq .L579
4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9130 .loc 1 4375 5 discriminator 2 view .LVU3242
9131 001a 0123 movs r3, #1
9132 001c 80F84030 strb r3, [r0, #64]
4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9133 .loc 1 4375 5 discriminator 2 view .LVU3243
4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 334
9134 .loc 1 4378 5 discriminator 2 view .LVU3244
4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9135 .loc 1 4378 13 is_stmt 0 discriminator 2 view .LVU3245
9136 0020 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9137 0024 DBB2 uxtb r3, r3
4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9138 .loc 1 4378 8 discriminator 2 view .LVU3246
9139 0026 212B cmp r3, #33
9140 0028 1AD0 beq .L584
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9141 .loc 1 4383 10 is_stmt 1 view .LVU3247
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9142 .loc 1 4383 18 is_stmt 0 view .LVU3248
9143 002a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9144 002e DBB2 uxtb r3, r3
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9145 .loc 1 4383 13 view .LVU3249
9146 0030 222B cmp r3, #34
9147 0032 1BD0 beq .L585
9148 .LVL606:
9149 .L577:
4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9150 .loc 1 4391 5 is_stmt 1 view .LVU3250
4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9151 .loc 1 4394 5 view .LVU3251
4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9152 .loc 1 4394 17 is_stmt 0 view .LVU3252
9153 0034 6023 movs r3, #96
9154 0036 84F84130 strb r3, [r4, #65]
4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9155 .loc 1 4398 5 is_stmt 1 view .LVU3253
9156 003a 114B ldr r3, .L586
9157 003c 0093 str r3, [sp]
9158 003e 4FF00073 mov r3, #33554432
9159 0042 0122 movs r2, #1
9160 0044 2946 mov r1, r5
9161 0046 2046 mov r0, r4
9162 0048 FFF7FEFF bl I2C_TransferConfig
9163 .LVL607:
4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9164 .loc 1 4401 5 view .LVU3254
4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9165 .loc 1 4401 5 view .LVU3255
9166 004c 0025 movs r5, #0
9167 004e 84F84050 strb r5, [r4, #64]
4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9168 .loc 1 4401 5 view .LVU3256
4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9169 .loc 1 4406 5 view .LVU3257
9170 0052 2021 movs r1, #32
9171 0054 2046 mov r0, r4
9172 0056 FFF7FEFF bl I2C_Enable_IRQ
9173 .LVL608:
4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9174 .loc 1 4408 5 view .LVU3258
4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9175 .loc 1 4408 12 is_stmt 0 view .LVU3259
ARM GAS /tmp/cczJHHnF.s page 335
9176 005a 2846 mov r0, r5
9177 .L575:
4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9178 .loc 1 4416 1 view .LVU3260
9179 005c 03B0 add sp, sp, #12
9180 .cfi_remember_state
9181 .cfi_def_cfa_offset 12
9182 @ sp needed
9183 005e 30BD pop {r4, r5, pc}
9184 .LVL609:
9185 .L584:
9186 .cfi_restore_state
4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9187 .loc 1 4380 7 is_stmt 1 view .LVU3261
9188 0060 0121 movs r1, #1
9189 .LVL610:
4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9190 .loc 1 4380 7 is_stmt 0 view .LVU3262
9191 0062 FFF7FEFF bl I2C_Disable_IRQ
9192 .LVL611:
4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9193 .loc 1 4381 7 is_stmt 1 view .LVU3263
4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9194 .loc 1 4381 27 is_stmt 0 view .LVU3264
9195 0066 1123 movs r3, #17
9196 0068 2363 str r3, [r4, #48]
9197 006a E3E7 b .L577
9198 .LVL612:
9199 .L585:
4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9200 .loc 1 4385 7 is_stmt 1 view .LVU3265
9201 006c 0221 movs r1, #2
9202 .LVL613:
4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9203 .loc 1 4385 7 is_stmt 0 view .LVU3266
9204 006e FFF7FEFF bl I2C_Disable_IRQ
9205 .LVL614:
4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9206 .loc 1 4386 7 is_stmt 1 view .LVU3267
4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9207 .loc 1 4386 27 is_stmt 0 view .LVU3268
9208 0072 1223 movs r3, #18
9209 0074 2363 str r3, [r4, #48]
9210 0076 DDE7 b .L577
9211 .LVL615:
9212 .L578:
9213 .cfi_def_cfa_offset 0
9214 .cfi_restore 4
9215 .cfi_restore 5
9216 .cfi_restore 14
4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9217 .loc 1 4414 12 view .LVU3269
9218 0078 0120 movs r0, #1
9219 .LVL616:
4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9220 .loc 1 4416 1 view .LVU3270
9221 007a 7047 bx lr
ARM GAS /tmp/cczJHHnF.s page 336
9222 .LVL617:
9223 .L579:
9224 .cfi_def_cfa_offset 24
9225 .cfi_offset 4, -12
9226 .cfi_offset 5, -8
9227 .cfi_offset 14, -4
4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9228 .loc 1 4375 5 view .LVU3271
9229 007c 0220 movs r0, #2
9230 .LVL618:
4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9231 .loc 1 4375 5 view .LVU3272
9232 007e EDE7 b .L575
9233 .L587:
9234 .align 2
9235 .L586:
9236 0080 00400080 .word -2147467264
9237 .cfi_endproc
9238 .LFE163:
9240 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
9241 .align 1
9242 .global HAL_I2C_EV_IRQHandler
9243 .syntax unified
9244 .thumb
9245 .thumb_func
9247 HAL_I2C_EV_IRQHandler:
9248 .LVL619:
9249 .LFB164:
4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9250 .loc 1 4433 1 is_stmt 1 view -0
9251 .cfi_startproc
9252 @ args = 0, pretend = 0, frame = 0
9253 @ frame_needed = 0, uses_anonymous_args = 0
4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9254 .loc 1 4433 1 is_stmt 0 view .LVU3274
9255 0000 08B5 push {r3, lr}
9256 .cfi_def_cfa_offset 8
9257 .cfi_offset 3, -8
9258 .cfi_offset 14, -4
4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9259 .loc 1 4435 3 is_stmt 1 view .LVU3275
4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9260 .loc 1 4435 24 is_stmt 0 view .LVU3276
9261 0002 0368 ldr r3, [r0]
4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9262 .loc 1 4435 12 view .LVU3277
9263 0004 9969 ldr r1, [r3, #24]
9264 .LVL620:
4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9265 .loc 1 4436 3 is_stmt 1 view .LVU3278
4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9266 .loc 1 4436 12 is_stmt 0 view .LVU3279
9267 0006 1A68 ldr r2, [r3]
9268 .LVL621:
4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9269 .loc 1 4439 3 is_stmt 1 view .LVU3280
4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 337
9270 .loc 1 4439 11 is_stmt 0 view .LVU3281
9271 0008 436B ldr r3, [r0, #52]
4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9272 .loc 1 4439 6 view .LVU3282
9273 000a 03B1 cbz r3, .L588
4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9274 .loc 1 4441 5 is_stmt 1 view .LVU3283
9275 000c 9847 blx r3
9276 .LVL622:
9277 .L588:
4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9278 .loc 1 4443 1 is_stmt 0 view .LVU3284
9279 000e 08BD pop {r3, pc}
9280 .cfi_endproc
9281 .LFE164:
9283 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
9284 .align 1
9285 .weak HAL_I2C_MasterTxCpltCallback
9286 .syntax unified
9287 .thumb
9288 .thumb_func
9290 HAL_I2C_MasterTxCpltCallback:
9291 .LVL623:
9292 .LFB166:
4504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9293 .loc 1 4504 1 is_stmt 1 view -0
9294 .cfi_startproc
9295 @ args = 0, pretend = 0, frame = 0
9296 @ frame_needed = 0, uses_anonymous_args = 0
9297 @ link register save eliminated.
4506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9298 .loc 1 4506 3 view .LVU3286
4511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9299 .loc 1 4511 1 is_stmt 0 view .LVU3287
9300 0000 7047 bx lr
9301 .cfi_endproc
9302 .LFE166:
9304 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
9305 .align 1
9306 .weak HAL_I2C_MasterRxCpltCallback
9307 .syntax unified
9308 .thumb
9309 .thumb_func
9311 HAL_I2C_MasterRxCpltCallback:
9312 .LVL624:
9313 .LFB167:
4520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9314 .loc 1 4520 1 is_stmt 1 view -0
9315 .cfi_startproc
9316 @ args = 0, pretend = 0, frame = 0
9317 @ frame_needed = 0, uses_anonymous_args = 0
9318 @ link register save eliminated.
4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9319 .loc 1 4522 3 view .LVU3289
4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9320 .loc 1 4527 1 is_stmt 0 view .LVU3290
9321 0000 7047 bx lr
ARM GAS /tmp/cczJHHnF.s page 338
9322 .cfi_endproc
9323 .LFE167:
9325 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits
9326 .align 1
9327 .syntax unified
9328 .thumb
9329 .thumb_func
9331 I2C_ITMasterSeqCplt:
9332 .LVL625:
9333 .LFB186:
5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
9334 .loc 1 5505 1 is_stmt 1 view -0
9335 .cfi_startproc
9336 @ args = 0, pretend = 0, frame = 0
9337 @ frame_needed = 0, uses_anonymous_args = 0
5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
9338 .loc 1 5505 1 is_stmt 0 view .LVU3292
9339 0000 38B5 push {r3, r4, r5, lr}
9340 .cfi_def_cfa_offset 16
9341 .cfi_offset 3, -16
9342 .cfi_offset 4, -12
9343 .cfi_offset 5, -8
9344 .cfi_offset 14, -4
9345 0002 0446 mov r4, r0
5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9346 .loc 1 5507 3 is_stmt 1 view .LVU3293
5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9347 .loc 1 5507 14 is_stmt 0 view .LVU3294
9348 0004 0023 movs r3, #0
9349 0006 80F84230 strb r3, [r0, #66]
5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9350 .loc 1 5511 3 is_stmt 1 view .LVU3295
5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9351 .loc 1 5511 11 is_stmt 0 view .LVU3296
9352 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9353 000e DBB2 uxtb r3, r3
5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9354 .loc 1 5511 6 view .LVU3297
9355 0010 212B cmp r3, #33
9356 0012 0FD0 beq .L597
5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9357 .loc 1 5533 5 is_stmt 1 view .LVU3298
5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9358 .loc 1 5533 25 is_stmt 0 view .LVU3299
9359 0014 2023 movs r3, #32
9360 0016 80F84130 strb r3, [r0, #65]
5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9361 .loc 1 5534 5 is_stmt 1 view .LVU3300
5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9362 .loc 1 5534 25 is_stmt 0 view .LVU3301
9363 001a 1223 movs r3, #18
9364 001c 0363 str r3, [r0, #48]
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9365 .loc 1 5535 5 is_stmt 1 view .LVU3302
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9366 .loc 1 5535 25 is_stmt 0 view .LVU3303
9367 001e 0025 movs r5, #0
ARM GAS /tmp/cczJHHnF.s page 339
9368 0020 4563 str r5, [r0, #52]
5538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9369 .loc 1 5538 5 is_stmt 1 view .LVU3304
9370 0022 0221 movs r1, #2
9371 0024 FFF7FEFF bl I2C_Disable_IRQ
9372 .LVL626:
5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9373 .loc 1 5541 5 view .LVU3305
5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9374 .loc 1 5541 5 view .LVU3306
9375 0028 84F84050 strb r5, [r4, #64]
5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9376 .loc 1 5541 5 view .LVU3307
5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9377 .loc 1 5547 5 view .LVU3308
9378 002c 2046 mov r0, r4
9379 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
9380 .LVL627:
9381 .L593:
5550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9382 .loc 1 5550 1 is_stmt 0 view .LVU3309
9383 0032 38BD pop {r3, r4, r5, pc}
9384 .LVL628:
9385 .L597:
5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9386 .loc 1 5513 5 is_stmt 1 view .LVU3310
5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9387 .loc 1 5513 25 is_stmt 0 view .LVU3311
9388 0034 2023 movs r3, #32
9389 0036 80F84130 strb r3, [r0, #65]
5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9390 .loc 1 5514 5 is_stmt 1 view .LVU3312
5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9391 .loc 1 5514 25 is_stmt 0 view .LVU3313
9392 003a 1123 movs r3, #17
9393 003c 0363 str r3, [r0, #48]
5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9394 .loc 1 5515 5 is_stmt 1 view .LVU3314
5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9395 .loc 1 5515 25 is_stmt 0 view .LVU3315
9396 003e 0025 movs r5, #0
9397 0040 4563 str r5, [r0, #52]
5518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9398 .loc 1 5518 5 is_stmt 1 view .LVU3316
9399 0042 0121 movs r1, #1
9400 0044 FFF7FEFF bl I2C_Disable_IRQ
9401 .LVL629:
5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9402 .loc 1 5521 5 view .LVU3317
5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9403 .loc 1 5521 5 view .LVU3318
9404 0048 84F84050 strb r5, [r4, #64]
5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9405 .loc 1 5521 5 view .LVU3319
5527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9406 .loc 1 5527 5 view .LVU3320
9407 004c 2046 mov r0, r4
ARM GAS /tmp/cczJHHnF.s page 340
9408 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
9409 .LVL630:
9410 0052 EEE7 b .L593
9411 .cfi_endproc
9412 .LFE186:
9414 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
9415 .align 1
9416 .weak HAL_I2C_SlaveTxCpltCallback
9417 .syntax unified
9418 .thumb
9419 .thumb_func
9421 HAL_I2C_SlaveTxCpltCallback:
9422 .LVL631:
9423 .LFB168:
4535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9424 .loc 1 4535 1 view -0
9425 .cfi_startproc
9426 @ args = 0, pretend = 0, frame = 0
9427 @ frame_needed = 0, uses_anonymous_args = 0
9428 @ link register save eliminated.
4537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9429 .loc 1 4537 3 view .LVU3322
4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9430 .loc 1 4542 1 is_stmt 0 view .LVU3323
9431 0000 7047 bx lr
9432 .cfi_endproc
9433 .LFE168:
9435 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
9436 .align 1
9437 .weak HAL_I2C_SlaveRxCpltCallback
9438 .syntax unified
9439 .thumb
9440 .thumb_func
9442 HAL_I2C_SlaveRxCpltCallback:
9443 .LVL632:
9444 .LFB169:
4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9445 .loc 1 4551 1 is_stmt 1 view -0
9446 .cfi_startproc
9447 @ args = 0, pretend = 0, frame = 0
9448 @ frame_needed = 0, uses_anonymous_args = 0
9449 @ link register save eliminated.
4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9450 .loc 1 4553 3 view .LVU3325
4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9451 .loc 1 4558 1 is_stmt 0 view .LVU3326
9452 0000 7047 bx lr
9453 .cfi_endproc
9454 .LFE169:
9456 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits
9457 .align 1
9458 .syntax unified
9459 .thumb
9460 .thumb_func
9462 I2C_ITSlaveSeqCplt:
9463 .LVL633:
9464 .LFB187:
ARM GAS /tmp/cczJHHnF.s page 341
5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
9465 .loc 1 5558 1 is_stmt 1 view -0
9466 .cfi_startproc
9467 @ args = 0, pretend = 0, frame = 0
9468 @ frame_needed = 0, uses_anonymous_args = 0
5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
9469 .loc 1 5558 1 is_stmt 0 view .LVU3328
9470 0000 10B5 push {r4, lr}
9471 .cfi_def_cfa_offset 8
9472 .cfi_offset 4, -8
9473 .cfi_offset 14, -4
9474 0002 0446 mov r4, r0
5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9475 .loc 1 5559 3 is_stmt 1 view .LVU3329
5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9476 .loc 1 5559 26 is_stmt 0 view .LVU3330
9477 0004 0368 ldr r3, [r0]
5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9478 .loc 1 5559 12 view .LVU3331
9479 0006 1A68 ldr r2, [r3]
9480 .LVL634:
5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9481 .loc 1 5562 3 is_stmt 1 view .LVU3332
5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9482 .loc 1 5562 14 is_stmt 0 view .LVU3333
9483 0008 0021 movs r1, #0
9484 000a 80F84210 strb r1, [r0, #66]
5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9485 .loc 1 5565 3 is_stmt 1 view .LVU3334
5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9486 .loc 1 5565 6 is_stmt 0 view .LVU3335
9487 000e 12F4804F tst r2, #16384
9488 0012 0ED0 beq .L601
5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9489 .loc 1 5568 5 is_stmt 1 view .LVU3336
5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9490 .loc 1 5568 19 is_stmt 0 view .LVU3337
9491 0014 1A68 ldr r2, [r3]
9492 .LVL635:
5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9493 .loc 1 5568 25 view .LVU3338
9494 0016 22F48042 bic r2, r2, #16384
9495 001a 1A60 str r2, [r3]
9496 .L602:
5578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9497 .loc 1 5578 3 is_stmt 1 view .LVU3339
5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9498 .loc 1 5580 3 view .LVU3340
5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9499 .loc 1 5580 11 is_stmt 0 view .LVU3341
9500 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
9501 0020 DBB2 uxtb r3, r3
5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9502 .loc 1 5580 6 view .LVU3342
9503 0022 292B cmp r3, #41
9504 0024 0DD0 beq .L606
5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 342
9505 .loc 1 5600 8 is_stmt 1 view .LVU3343
5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9506 .loc 1 5600 16 is_stmt 0 view .LVU3344
9507 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
9508 002a DBB2 uxtb r3, r3
5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9509 .loc 1 5600 11 view .LVU3345
9510 002c 2A2B cmp r3, #42
9511 002e 18D0 beq .L607
9512 .LVL636:
9513 .L600:
5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9514 .loc 1 5623 1 view .LVU3346
9515 0030 10BD pop {r4, pc}
9516 .LVL637:
9517 .L601:
5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9518 .loc 1 5570 8 is_stmt 1 view .LVU3347
5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9519 .loc 1 5570 11 is_stmt 0 view .LVU3348
9520 0032 12F4004F tst r2, #32768
9521 0036 F1D0 beq .L602
5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9522 .loc 1 5573 5 is_stmt 1 view .LVU3349
5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9523 .loc 1 5573 19 is_stmt 0 view .LVU3350
9524 0038 1A68 ldr r2, [r3]
9525 .LVL638:
5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9526 .loc 1 5573 25 view .LVU3351
9527 003a 22F40042 bic r2, r2, #32768
9528 003e 1A60 str r2, [r3]
9529 0040 ECE7 b .L602
9530 .L606:
5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
9531 .loc 1 5583 5 is_stmt 1 view .LVU3352
5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
9532 .loc 1 5583 25 is_stmt 0 view .LVU3353
9533 0042 2823 movs r3, #40
9534 0044 84F84130 strb r3, [r4, #65]
5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9535 .loc 1 5584 5 is_stmt 1 view .LVU3354
5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9536 .loc 1 5584 25 is_stmt 0 view .LVU3355
9537 0048 2123 movs r3, #33
9538 004a 2363 str r3, [r4, #48]
5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9539 .loc 1 5587 5 is_stmt 1 view .LVU3356
9540 004c 0121 movs r1, #1
9541 004e 2046 mov r0, r4
9542 .LVL639:
5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9543 .loc 1 5587 5 is_stmt 0 view .LVU3357
9544 0050 FFF7FEFF bl I2C_Disable_IRQ
9545 .LVL640:
5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9546 .loc 1 5590 5 is_stmt 1 view .LVU3358
ARM GAS /tmp/cczJHHnF.s page 343
5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9547 .loc 1 5590 5 view .LVU3359
9548 0054 0023 movs r3, #0
9549 0056 84F84030 strb r3, [r4, #64]
5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9550 .loc 1 5590 5 view .LVU3360
5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9551 .loc 1 5596 5 view .LVU3361
9552 005a 2046 mov r0, r4
9553 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
9554 .LVL641:
9555 0060 E6E7 b .L600
9556 .LVL642:
9557 .L607:
5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
9558 .loc 1 5603 5 view .LVU3362
5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
9559 .loc 1 5603 25 is_stmt 0 view .LVU3363
9560 0062 2823 movs r3, #40
9561 0064 84F84130 strb r3, [r4, #65]
5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9562 .loc 1 5604 5 is_stmt 1 view .LVU3364
5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9563 .loc 1 5604 25 is_stmt 0 view .LVU3365
9564 0068 2223 movs r3, #34
9565 006a 2363 str r3, [r4, #48]
5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9566 .loc 1 5607 5 is_stmt 1 view .LVU3366
9567 006c 0221 movs r1, #2
9568 006e 2046 mov r0, r4
9569 .LVL643:
5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9570 .loc 1 5607 5 is_stmt 0 view .LVU3367
9571 0070 FFF7FEFF bl I2C_Disable_IRQ
9572 .LVL644:
5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9573 .loc 1 5610 5 is_stmt 1 view .LVU3368
5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9574 .loc 1 5610 5 view .LVU3369
9575 0074 0023 movs r3, #0
9576 0076 84F84030 strb r3, [r4, #64]
5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9577 .loc 1 5610 5 view .LVU3370
5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9578 .loc 1 5616 5 view .LVU3371
9579 007a 2046 mov r0, r4
9580 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
9581 .LVL645:
5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9582 .loc 1 5622 3 view .LVU3372
5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9583 .loc 1 5623 1 is_stmt 0 view .LVU3373
9584 0080 D6E7 b .L600
9585 .cfi_endproc
9586 .LFE187:
9588 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
9589 .align 1
ARM GAS /tmp/cczJHHnF.s page 344
9590 .syntax unified
9591 .thumb
9592 .thumb_func
9594 I2C_DMASlaveTransmitCplt:
9595 .LVL646:
9596 .LFB195:
6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
9597 .loc 1 6206 1 is_stmt 1 view -0
9598 .cfi_startproc
9599 @ args = 0, pretend = 0, frame = 0
9600 @ frame_needed = 0, uses_anonymous_args = 0
6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
9601 .loc 1 6206 1 is_stmt 0 view .LVU3375
9602 0000 08B5 push {r3, lr}
9603 .cfi_def_cfa_offset 8
9604 .cfi_offset 3, -8
9605 .cfi_offset 14, -4
6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
9606 .loc 1 6208 3 is_stmt 1 view .LVU3376
6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
9607 .loc 1 6208 22 is_stmt 0 view .LVU3377
9608 0002 406A ldr r0, [r0, #36]
9609 .LVL647:
6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9610 .loc 1 6209 3 is_stmt 1 view .LVU3378
6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9611 .loc 1 6209 12 is_stmt 0 view .LVU3379
9612 0004 C36A ldr r3, [r0, #44]
9613 .LVL648:
6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9614 .loc 1 6211 3 is_stmt 1 view .LVU3380
6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9615 .loc 1 6211 6 is_stmt 0 view .LVU3381
9616 0006 B3F1807F cmp r3, #16777216
9617 000a 00D0 beq .L609
6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9618 .loc 1 6211 38 discriminator 1 view .LVU3382
9619 000c 33B9 cbnz r3, .L608
9620 .L609:
6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9621 .loc 1 6214 5 is_stmt 1 view .LVU3383
6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9622 .loc 1 6214 9 is_stmt 0 view .LVU3384
9623 000e 0268 ldr r2, [r0]
6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9624 .loc 1 6214 19 view .LVU3385
9625 0010 1368 ldr r3, [r2]
9626 .LVL649:
6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9627 .loc 1 6214 25 view .LVU3386
9628 0012 23F48043 bic r3, r3, #16384
9629 0016 1360 str r3, [r2]
6218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9630 .loc 1 6218 5 is_stmt 1 view .LVU3387
9631 0018 FFF7FEFF bl I2C_ITSlaveSeqCplt
9632 .LVL650:
9633 .L608:
ARM GAS /tmp/cczJHHnF.s page 345
6226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9634 .loc 1 6226 1 is_stmt 0 view .LVU3388
9635 001c 08BD pop {r3, pc}
9636 .cfi_endproc
9637 .LFE195:
9639 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
9640 .align 1
9641 .syntax unified
9642 .thumb
9643 .thumb_func
9645 I2C_DMASlaveReceiveCplt:
9646 .LVL651:
9647 .LFB197:
6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
9648 .loc 1 6284 1 is_stmt 1 view -0
9649 .cfi_startproc
9650 @ args = 0, pretend = 0, frame = 0
9651 @ frame_needed = 0, uses_anonymous_args = 0
6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
9652 .loc 1 6284 1 is_stmt 0 view .LVU3390
9653 0000 08B5 push {r3, lr}
9654 .cfi_def_cfa_offset 8
9655 .cfi_offset 3, -8
9656 .cfi_offset 14, -4
6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
9657 .loc 1 6286 3 is_stmt 1 view .LVU3391
6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
9658 .loc 1 6286 22 is_stmt 0 view .LVU3392
9659 0002 406A ldr r0, [r0, #36]
9660 .LVL652:
6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9661 .loc 1 6287 3 is_stmt 1 view .LVU3393
6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9662 .loc 1 6287 12 is_stmt 0 view .LVU3394
9663 0004 C26A ldr r2, [r0, #44]
9664 .LVL653:
6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9665 .loc 1 6289 3 is_stmt 1 view .LVU3395
6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9666 .loc 1 6289 8 is_stmt 0 view .LVU3396
9667 0006 C36B ldr r3, [r0, #60]
9668 0008 1B68 ldr r3, [r3]
9669 000a 5B68 ldr r3, [r3, #4]
6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9670 .loc 1 6289 6 view .LVU3397
9671 000c 13B9 cbnz r3, .L612
6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
9672 .loc 1 6289 51 discriminator 1 view .LVU3398
9673 000e 12F5803F cmn r2, #65536
9674 0012 00D1 bne .L615
9675 .LVL654:
9676 .L612:
6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9677 .loc 1 6304 1 view .LVU3399
9678 0014 08BD pop {r3, pc}
9679 .LVL655:
9680 .L615:
ARM GAS /tmp/cczJHHnF.s page 346
6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9681 .loc 1 6293 5 is_stmt 1 view .LVU3400
6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9682 .loc 1 6293 9 is_stmt 0 view .LVU3401
9683 0016 0268 ldr r2, [r0]
9684 .LVL656:
6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9685 .loc 1 6293 19 view .LVU3402
9686 0018 1368 ldr r3, [r2]
6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9687 .loc 1 6293 25 view .LVU3403
9688 001a 23F40043 bic r3, r3, #32768
9689 001e 1360 str r3, [r2]
6296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9690 .loc 1 6296 5 is_stmt 1 view .LVU3404
9691 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt
9692 .LVL657:
6303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9693 .loc 1 6303 3 view .LVU3405
6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9694 .loc 1 6304 1 is_stmt 0 view .LVU3406
9695 0024 F6E7 b .L612
9696 .cfi_endproc
9697 .LFE197:
9699 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
9700 .align 1
9701 .weak HAL_I2C_AddrCallback
9702 .syntax unified
9703 .thumb
9704 .thumb_func
9706 HAL_I2C_AddrCallback:
9707 .LVL658:
9708 .LFB170:
4569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9709 .loc 1 4569 1 is_stmt 1 view -0
9710 .cfi_startproc
9711 @ args = 0, pretend = 0, frame = 0
9712 @ frame_needed = 0, uses_anonymous_args = 0
9713 @ link register save eliminated.
4571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection);
9714 .loc 1 4571 3 view .LVU3408
4572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode);
9715 .loc 1 4572 3 view .LVU3409
4573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9716 .loc 1 4573 3 view .LVU3410
4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9717 .loc 1 4578 1 is_stmt 0 view .LVU3411
9718 0000 7047 bx lr
9719 .cfi_endproc
9720 .LFE170:
9722 .section .text.I2C_ITAddrCplt,"ax",%progbits
9723 .align 1
9724 .syntax unified
9725 .thumb
9726 .thumb_func
9728 I2C_ITAddrCplt:
9729 .LVL659:
ARM GAS /tmp/cczJHHnF.s page 347
9730 .LFB185:
5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection;
9731 .loc 1 5410 1 is_stmt 1 view -0
9732 .cfi_startproc
9733 @ args = 0, pretend = 0, frame = 0
9734 @ frame_needed = 0, uses_anonymous_args = 0
5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection;
9735 .loc 1 5410 1 is_stmt 0 view .LVU3413
9736 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
9737 .cfi_def_cfa_offset 24
9738 .cfi_offset 3, -24
9739 .cfi_offset 4, -20
9740 .cfi_offset 5, -16
9741 .cfi_offset 6, -12
9742 .cfi_offset 7, -8
9743 .cfi_offset 14, -4
9744 0002 0446 mov r4, r0
5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode;
9745 .loc 1 5411 3 is_stmt 1 view .LVU3414
5412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code;
9746 .loc 1 5412 3 view .LVU3415
5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code;
9747 .loc 1 5413 3 view .LVU3416
5414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9748 .loc 1 5414 3 view .LVU3417
5417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9749 .loc 1 5417 3 view .LVU3418
5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9750 .loc 1 5420 3 view .LVU3419
5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9751 .loc 1 5420 22 is_stmt 0 view .LVU3420
9752 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9753 .loc 1 5420 6 view .LVU3421
9754 0008 03F02803 and r3, r3, #40
9755 000c 282B cmp r3, #40
9756 000e 06D0 beq .L623
5492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9757 .loc 1 5492 5 is_stmt 1 view .LVU3422
9758 0010 0368 ldr r3, [r0]
9759 0012 0822 movs r2, #8
9760 0014 DA61 str r2, [r3, #28]
5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9761 .loc 1 5495 5 view .LVU3423
5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9762 .loc 1 5495 5 view .LVU3424
9763 0016 0023 movs r3, #0
9764 0018 80F84030 strb r3, [r0, #64]
5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9765 .loc 1 5495 5 view .LVU3425
9766 .LVL660:
9767 .L617:
5497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9768 .loc 1 5497 1 is_stmt 0 view .LVU3426
9769 001c F8BD pop {r3, r4, r5, r6, r7, pc}
9770 .LVL661:
9771 .L623:
ARM GAS /tmp/cczJHHnF.s page 348
5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
9772 .loc 1 5422 5 is_stmt 1 view .LVU3427
5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
9773 .loc 1 5422 25 is_stmt 0 view .LVU3428
9774 001e 0368 ldr r3, [r0]
9775 0020 9E69 ldr r6, [r3, #24]
5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
9776 .loc 1 5422 23 view .LVU3429
9777 0022 C6F30046 ubfx r6, r6, #16, #1
9778 .LVL662:
5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
9779 .loc 1 5423 5 is_stmt 1 view .LVU3430
5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
9780 .loc 1 5423 25 is_stmt 0 view .LVU3431
9781 0026 9A69 ldr r2, [r3, #24]
9782 0028 120C lsrs r2, r2, #16
5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
9783 .loc 1 5423 23 view .LVU3432
9784 002a 02F0FE05 and r5, r2, #254
9785 .LVL663:
5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
9786 .loc 1 5424 5 is_stmt 1 view .LVU3433
5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
9787 .loc 1 5424 25 is_stmt 0 view .LVU3434
9788 002e 9A68 ldr r2, [r3, #8]
5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
9789 .loc 1 5424 23 view .LVU3435
9790 0030 C2F30902 ubfx r2, r2, #0, #10
9791 .LVL664:
5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9792 .loc 1 5425 5 is_stmt 1 view .LVU3436
5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9793 .loc 1 5425 25 is_stmt 0 view .LVU3437
9794 0034 DF68 ldr r7, [r3, #12]
5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9795 .loc 1 5425 23 view .LVU3438
9796 0036 07F0FE07 and r7, r7, #254
9797 .LVL665:
5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9798 .loc 1 5428 5 is_stmt 1 view .LVU3439
5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9799 .loc 1 5428 19 is_stmt 0 view .LVU3440
9800 003a C168 ldr r1, [r0, #12]
9801 .LVL666:
5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9802 .loc 1 5428 8 view .LVU3441
9803 003c 0229 cmp r1, #2
9804 003e 22D1 bne .L619
5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9805 .loc 1 5430 7 is_stmt 1 view .LVU3442
5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9806 .loc 1 5430 44 is_stmt 0 view .LVU3443
9807 0040 85EAD215 eor r5, r5, r2, lsr #7
9808 .LVL667:
5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9809 .loc 1 5430 10 view .LVU3444
9810 0044 15F0060F tst r5, #6
ARM GAS /tmp/cczJHHnF.s page 349
9811 0048 10D1 bne .L620
5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++;
9812 .loc 1 5432 9 is_stmt 1 view .LVU3445
9813 .LVL668:
5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
9814 .loc 1 5433 9 view .LVU3446
5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
9815 .loc 1 5433 13 is_stmt 0 view .LVU3447
9816 004a 816C ldr r1, [r0, #72]
5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
9817 .loc 1 5433 29 view .LVU3448
9818 004c 0131 adds r1, r1, #1
9819 004e 8164 str r1, [r0, #72]
5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9820 .loc 1 5434 9 is_stmt 1 view .LVU3449
5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9821 .loc 1 5434 17 is_stmt 0 view .LVU3450
9822 0050 816C ldr r1, [r0, #72]
5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9823 .loc 1 5434 12 view .LVU3451
9824 0052 0229 cmp r1, #2
9825 0054 E2D1 bne .L617
5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9826 .loc 1 5437 11 is_stmt 1 view .LVU3452
5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9827 .loc 1 5437 32 is_stmt 0 view .LVU3453
9828 0056 0021 movs r1, #0
9829 0058 8164 str r1, [r0, #72]
5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9830 .loc 1 5440 11 is_stmt 1 view .LVU3454
9831 005a 0820 movs r0, #8
9832 .LVL669:
5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9833 .loc 1 5440 11 is_stmt 0 view .LVU3455
9834 005c D861 str r0, [r3, #28]
5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9835 .loc 1 5443 11 is_stmt 1 view .LVU3456
5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9836 .loc 1 5443 11 view .LVU3457
9837 005e 84F84010 strb r1, [r4, #64]
5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9838 .loc 1 5443 11 view .LVU3458
5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9839 .loc 1 5449 11 view .LVU3459
9840 0062 3146 mov r1, r6
9841 0064 2046 mov r0, r4
9842 0066 FFF7FEFF bl HAL_I2C_AddrCallback
9843 .LVL670:
5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9844 .loc 1 5449 11 is_stmt 0 view .LVU3460
9845 006a D7E7 b .L617
9846 .LVL671:
9847 .L620:
5455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9848 .loc 1 5455 9 is_stmt 1 view .LVU3461
5458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9849 .loc 1 5458 9 view .LVU3462
ARM GAS /tmp/cczJHHnF.s page 350
9850 006c 4FF40041 mov r1, #32768
9851 0070 FFF7FEFF bl I2C_Disable_IRQ
9852 .LVL672:
5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9853 .loc 1 5461 9 view .LVU3463
5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9854 .loc 1 5461 9 view .LVU3464
9855 0074 0023 movs r3, #0
9856 0076 84F84030 strb r3, [r4, #64]
5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9857 .loc 1 5461 9 view .LVU3465
5467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9858 .loc 1 5467 9 view .LVU3466
9859 007a 3A46 mov r2, r7
9860 007c 3146 mov r1, r6
9861 007e 2046 mov r0, r4
9862 0080 FFF7FEFF bl HAL_I2C_AddrCallback
9863 .LVL673:
9864 0084 CAE7 b .L617
9865 .LVL674:
9866 .L619:
5475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9867 .loc 1 5475 7 view .LVU3467
9868 0086 4FF40041 mov r1, #32768
9869 008a FFF7FEFF bl I2C_Disable_IRQ
9870 .LVL675:
5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9871 .loc 1 5478 7 view .LVU3468
5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9872 .loc 1 5478 7 view .LVU3469
9873 008e 0023 movs r3, #0
9874 0090 84F84030 strb r3, [r4, #64]
5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9875 .loc 1 5478 7 view .LVU3470
5484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
9876 .loc 1 5484 7 view .LVU3471
9877 0094 2A46 mov r2, r5
9878 0096 3146 mov r1, r6
9879 0098 2046 mov r0, r4
9880 009a FFF7FEFF bl HAL_I2C_AddrCallback
9881 .LVL676:
9882 009e BDE7 b .L617
9883 .cfi_endproc
9884 .LFE185:
9886 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
9887 .align 1
9888 .weak HAL_I2C_ListenCpltCallback
9889 .syntax unified
9890 .thumb
9891 .thumb_func
9893 HAL_I2C_ListenCpltCallback:
9894 .LVL677:
9895 .LFB171:
4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9896 .loc 1 4587 1 view -0
9897 .cfi_startproc
9898 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/cczJHHnF.s page 351
9899 @ frame_needed = 0, uses_anonymous_args = 0
9900 @ link register save eliminated.
4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9901 .loc 1 4589 3 view .LVU3473
4594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9902 .loc 1 4594 1 is_stmt 0 view .LVU3474
9903 0000 7047 bx lr
9904 .cfi_endproc
9905 .LFE171:
9907 .section .text.I2C_ITListenCplt,"ax",%progbits
9908 .align 1
9909 .syntax unified
9910 .thumb
9911 .thumb_func
9913 I2C_ITListenCplt:
9914 .LVL678:
9915 .LFB190:
5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
9916 .loc 1 5934 1 is_stmt 1 view -0
9917 .cfi_startproc
9918 @ args = 0, pretend = 0, frame = 0
9919 @ frame_needed = 0, uses_anonymous_args = 0
5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
9920 .loc 1 5934 1 is_stmt 0 view .LVU3476
9921 0000 10B5 push {r4, lr}
9922 .cfi_def_cfa_offset 8
9923 .cfi_offset 4, -8
9924 .cfi_offset 14, -4
9925 0002 0446 mov r4, r0
5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
9926 .loc 1 5936 3 is_stmt 1 view .LVU3477
5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
9927 .loc 1 5936 21 is_stmt 0 view .LVU3478
9928 0004 174B ldr r3, .L628
9929 0006 C362 str r3, [r0, #44]
5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9930 .loc 1 5937 3 is_stmt 1 view .LVU3479
5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9931 .loc 1 5937 23 is_stmt 0 view .LVU3480
9932 0008 0023 movs r3, #0
9933 000a 0363 str r3, [r0, #48]
5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9934 .loc 1 5938 3 is_stmt 1 view .LVU3481
5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9935 .loc 1 5938 15 is_stmt 0 view .LVU3482
9936 000c 2022 movs r2, #32
9937 000e 80F84120 strb r2, [r0, #65]
5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9938 .loc 1 5939 3 is_stmt 1 view .LVU3483
5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9939 .loc 1 5939 14 is_stmt 0 view .LVU3484
9940 0012 80F84230 strb r3, [r0, #66]
5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9941 .loc 1 5940 3 is_stmt 1 view .LVU3485
5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9942 .loc 1 5940 17 is_stmt 0 view .LVU3486
9943 0016 4363 str r3, [r0, #52]
ARM GAS /tmp/cczJHHnF.s page 352
5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9944 .loc 1 5943 3 is_stmt 1 view .LVU3487
5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9945 .loc 1 5943 6 is_stmt 0 view .LVU3488
9946 0018 11F0040F tst r1, #4
9947 001c 13D0 beq .L626
5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9948 .loc 1 5946 5 is_stmt 1 view .LVU3489
5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9949 .loc 1 5946 36 is_stmt 0 view .LVU3490
9950 001e 0368 ldr r3, [r0]
5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9951 .loc 1 5946 46 view .LVU3491
9952 0020 5A6A ldr r2, [r3, #36]
5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9953 .loc 1 5946 10 view .LVU3492
9954 0022 436A ldr r3, [r0, #36]
5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9955 .loc 1 5946 21 view .LVU3493
9956 0024 1A70 strb r2, [r3]
5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9957 .loc 1 5949 5 is_stmt 1 view .LVU3494
5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9958 .loc 1 5949 9 is_stmt 0 view .LVU3495
9959 0026 436A ldr r3, [r0, #36]
5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9960 .loc 1 5949 19 view .LVU3496
9961 0028 0133 adds r3, r3, #1
9962 002a 4362 str r3, [r0, #36]
5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9963 .loc 1 5951 5 is_stmt 1 view .LVU3497
5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9964 .loc 1 5951 14 is_stmt 0 view .LVU3498
9965 002c 038D ldrh r3, [r0, #40]
5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9966 .loc 1 5951 8 view .LVU3499
9967 002e 53B1 cbz r3, .L626
5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
9968 .loc 1 5953 7 is_stmt 1 view .LVU3500
5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
9969 .loc 1 5953 21 is_stmt 0 view .LVU3501
9970 0030 013B subs r3, r3, #1
9971 0032 0385 strh r3, [r0, #40] @ movhi
5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9972 .loc 1 5954 7 is_stmt 1 view .LVU3502
5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9973 .loc 1 5954 11 is_stmt 0 view .LVU3503
9974 0034 438D ldrh r3, [r0, #42]
9975 0036 9BB2 uxth r3, r3
5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9976 .loc 1 5954 22 view .LVU3504
9977 0038 013B subs r3, r3, #1
9978 003a 9BB2 uxth r3, r3
9979 003c 4385 strh r3, [r0, #42] @ movhi
5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9980 .loc 1 5957 7 is_stmt 1 view .LVU3505
5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 353
9981 .loc 1 5957 11 is_stmt 0 view .LVU3506
9982 003e 436C ldr r3, [r0, #68]
5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9983 .loc 1 5957 23 view .LVU3507
9984 0040 43F00403 orr r3, r3, #4
9985 0044 4364 str r3, [r0, #68]
9986 .L626:
5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9987 .loc 1 5962 3 is_stmt 1 view .LVU3508
9988 0046 48F20301 movw r1, #32771
9989 .LVL679:
5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9990 .loc 1 5962 3 is_stmt 0 view .LVU3509
9991 004a 2046 mov r0, r4
9992 .LVL680:
5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9993 .loc 1 5962 3 view .LVU3510
9994 004c FFF7FEFF bl I2C_Disable_IRQ
9995 .LVL681:
5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9996 .loc 1 5965 3 is_stmt 1 view .LVU3511
9997 0050 2368 ldr r3, [r4]
9998 0052 1022 movs r2, #16
9999 0054 DA61 str r2, [r3, #28]
5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10000 .loc 1 5968 3 view .LVU3512
5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10001 .loc 1 5968 3 view .LVU3513
10002 0056 0023 movs r3, #0
10003 0058 84F84030 strb r3, [r4, #64]
5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10004 .loc 1 5968 3 view .LVU3514
5974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10005 .loc 1 5974 3 view .LVU3515
10006 005c 2046 mov r0, r4
10007 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback
10008 .LVL682:
5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10009 .loc 1 5976 1 is_stmt 0 view .LVU3516
10010 0062 10BD pop {r4, pc}
10011 .LVL683:
10012 .L629:
5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10013 .loc 1 5976 1 view .LVU3517
10014 .align 2
10015 .L628:
10016 0064 0000FFFF .word -65536
10017 .cfi_endproc
10018 .LFE190:
10020 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
10021 .align 1
10022 .weak HAL_I2C_MemTxCpltCallback
10023 .syntax unified
10024 .thumb
10025 .thumb_func
10027 HAL_I2C_MemTxCpltCallback:
10028 .LVL684:
ARM GAS /tmp/cczJHHnF.s page 354
10029 .LFB172:
4603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10030 .loc 1 4603 1 is_stmt 1 view -0
10031 .cfi_startproc
10032 @ args = 0, pretend = 0, frame = 0
10033 @ frame_needed = 0, uses_anonymous_args = 0
10034 @ link register save eliminated.
4605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10035 .loc 1 4605 3 view .LVU3519
4610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10036 .loc 1 4610 1 is_stmt 0 view .LVU3520
10037 0000 7047 bx lr
10038 .cfi_endproc
10039 .LFE172:
10041 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
10042 .align 1
10043 .weak HAL_I2C_MemRxCpltCallback
10044 .syntax unified
10045 .thumb
10046 .thumb_func
10048 HAL_I2C_MemRxCpltCallback:
10049 .LVL685:
10050 .LFB173:
4619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10051 .loc 1 4619 1 is_stmt 1 view -0
10052 .cfi_startproc
10053 @ args = 0, pretend = 0, frame = 0
10054 @ frame_needed = 0, uses_anonymous_args = 0
10055 @ link register save eliminated.
4621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10056 .loc 1 4621 3 view .LVU3522
4626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10057 .loc 1 4626 1 is_stmt 0 view .LVU3523
10058 0000 7047 bx lr
10059 .cfi_endproc
10060 .LFE173:
10062 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
10063 .align 1
10064 .weak HAL_I2C_ErrorCallback
10065 .syntax unified
10066 .thumb
10067 .thumb_func
10069 HAL_I2C_ErrorCallback:
10070 .LVL686:
10071 .LFB174:
4635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10072 .loc 1 4635 1 is_stmt 1 view -0
10073 .cfi_startproc
10074 @ args = 0, pretend = 0, frame = 0
10075 @ frame_needed = 0, uses_anonymous_args = 0
10076 @ link register save eliminated.
4637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10077 .loc 1 4637 3 view .LVU3525
4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10078 .loc 1 4642 1 is_stmt 0 view .LVU3526
10079 0000 7047 bx lr
10080 .cfi_endproc
ARM GAS /tmp/cczJHHnF.s page 355
10081 .LFE174:
10083 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
10084 .align 1
10085 .weak HAL_I2C_AbortCpltCallback
10086 .syntax unified
10087 .thumb
10088 .thumb_func
10090 HAL_I2C_AbortCpltCallback:
10091 .LVL687:
10092 .LFB175:
4651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10093 .loc 1 4651 1 is_stmt 1 view -0
10094 .cfi_startproc
10095 @ args = 0, pretend = 0, frame = 0
10096 @ frame_needed = 0, uses_anonymous_args = 0
10097 @ link register save eliminated.
4653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10098 .loc 1 4653 3 view .LVU3528
4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10099 .loc 1 4658 1 is_stmt 0 view .LVU3529
10100 0000 7047 bx lr
10101 .cfi_endproc
10102 .LFE175:
10104 .section .text.I2C_TreatErrorCallback,"ax",%progbits
10105 .align 1
10106 .syntax unified
10107 .thumb
10108 .thumb_func
10110 I2C_TreatErrorCallback:
10111 .LVL688:
10112 .LFB192:
6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10113 .loc 1 6097 1 is_stmt 1 view -0
10114 .cfi_startproc
10115 @ args = 0, pretend = 0, frame = 0
10116 @ frame_needed = 0, uses_anonymous_args = 0
6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10117 .loc 1 6097 1 is_stmt 0 view .LVU3531
10118 0000 08B5 push {r3, lr}
10119 .cfi_def_cfa_offset 8
10120 .cfi_offset 3, -8
10121 .cfi_offset 14, -4
6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10122 .loc 1 6098 3 is_stmt 1 view .LVU3532
6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10123 .loc 1 6098 11 is_stmt 0 view .LVU3533
10124 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10125 0006 DBB2 uxtb r3, r3
6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10126 .loc 1 6098 6 view .LVU3534
10127 0008 602B cmp r3, #96
10128 000a 06D0 beq .L638
6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10129 .loc 1 6115 5 is_stmt 1 view .LVU3535
6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10130 .loc 1 6115 25 is_stmt 0 view .LVU3536
10131 000c 0023 movs r3, #0
ARM GAS /tmp/cczJHHnF.s page 356
10132 000e 0363 str r3, [r0, #48]
6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10133 .loc 1 6118 5 is_stmt 1 view .LVU3537
6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10134 .loc 1 6118 5 view .LVU3538
10135 0010 80F84030 strb r3, [r0, #64]
6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10136 .loc 1 6118 5 view .LVU3539
6124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10137 .loc 1 6124 5 view .LVU3540
10138 0014 FFF7FEFF bl HAL_I2C_ErrorCallback
10139 .LVL689:
10140 .L634:
6127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10141 .loc 1 6127 1 is_stmt 0 view .LVU3541
10142 0018 08BD pop {r3, pc}
10143 .LVL690:
10144 .L638:
6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10145 .loc 1 6100 5 is_stmt 1 view .LVU3542
6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10146 .loc 1 6100 17 is_stmt 0 view .LVU3543
10147 001a 2023 movs r3, #32
10148 001c 80F84130 strb r3, [r0, #65]
6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10149 .loc 1 6101 5 is_stmt 1 view .LVU3544
6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10150 .loc 1 6101 25 is_stmt 0 view .LVU3545
10151 0020 0023 movs r3, #0
10152 0022 0363 str r3, [r0, #48]
6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10153 .loc 1 6104 5 is_stmt 1 view .LVU3546
6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10154 .loc 1 6104 5 view .LVU3547
10155 0024 80F84030 strb r3, [r0, #64]
6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10156 .loc 1 6104 5 view .LVU3548
6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10157 .loc 1 6110 5 view .LVU3549
10158 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback
10159 .LVL691:
6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10160 .loc 1 6110 5 is_stmt 0 view .LVU3550
10161 002c F4E7 b .L634
10162 .cfi_endproc
10163 .LFE192:
10165 .section .text.I2C_ITError,"ax",%progbits
10166 .align 1
10167 .syntax unified
10168 .thumb
10169 .thumb_func
10171 I2C_ITError:
10172 .LVL692:
10173 .LFB191:
5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10174 .loc 1 5985 1 is_stmt 1 view -0
10175 .cfi_startproc
ARM GAS /tmp/cczJHHnF.s page 357
10176 @ args = 0, pretend = 0, frame = 0
10177 @ frame_needed = 0, uses_anonymous_args = 0
5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10178 .loc 1 5985 1 is_stmt 0 view .LVU3552
10179 0000 10B5 push {r4, lr}
10180 .cfi_def_cfa_offset 8
10181 .cfi_offset 4, -8
10182 .cfi_offset 14, -4
10183 0002 0446 mov r4, r0
5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate;
10184 .loc 1 5986 3 is_stmt 1 view .LVU3553
5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate;
10185 .loc 1 5986 24 is_stmt 0 view .LVU3554
10186 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10187 .LVL693:
5987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10188 .loc 1 5987 3 is_stmt 1 view .LVU3555
5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10189 .loc 1 5990 3 view .LVU3556
5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10190 .loc 1 5990 23 is_stmt 0 view .LVU3557
10191 0008 0022 movs r2, #0
10192 000a 80F84220 strb r2, [r0, #66]
5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
10193 .loc 1 5991 3 is_stmt 1 view .LVU3558
5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
10194 .loc 1 5991 23 is_stmt 0 view .LVU3559
10195 000e 3B48 ldr r0, .L653
10196 .LVL694:
5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
10197 .loc 1 5991 23 view .LVU3560
10198 0010 E062 str r0, [r4, #44]
5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10199 .loc 1 5992 3 is_stmt 1 view .LVU3561
5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10200 .loc 1 5992 23 is_stmt 0 view .LVU3562
10201 0012 6285 strh r2, [r4, #42] @ movhi
5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10202 .loc 1 5995 3 is_stmt 1 view .LVU3563
5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10203 .loc 1 5995 7 is_stmt 0 view .LVU3564
10204 0014 626C ldr r2, [r4, #68]
5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10205 .loc 1 5995 19 view .LVU3565
10206 0016 0A43 orrs r2, r2, r1
10207 0018 6264 str r2, [r4, #68]
5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10208 .loc 1 5998 3 is_stmt 1 view .LVU3566
5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10209 .loc 1 5999 50 is_stmt 0 view .LVU3567
10210 001a 283B subs r3, r3, #40
10211 .LVL695:
5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10212 .loc 1 5999 50 view .LVU3568
10213 001c DBB2 uxtb r3, r3
5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10214 .loc 1 5998 6 view .LVU3569
ARM GAS /tmp/cczJHHnF.s page 358
10215 001e 022B cmp r3, #2
10216 0020 19D8 bhi .L640
6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10217 .loc 1 6003 5 is_stmt 1 view .LVU3570
10218 0022 0321 movs r1, #3
10219 .LVL696:
6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10220 .loc 1 6003 5 is_stmt 0 view .LVU3571
10221 0024 2046 mov r0, r4
10222 0026 FFF7FEFF bl I2C_Disable_IRQ
10223 .LVL697:
6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
10224 .loc 1 6006 5 is_stmt 1 view .LVU3572
6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
10225 .loc 1 6006 25 is_stmt 0 view .LVU3573
10226 002a 2823 movs r3, #40
10227 002c 84F84130 strb r3, [r4, #65]
6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10228 .loc 1 6007 5 is_stmt 1 view .LVU3574
6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10229 .loc 1 6007 25 is_stmt 0 view .LVU3575
10230 0030 334B ldr r3, .L653+4
10231 0032 6363 str r3, [r4, #52]
10232 .L641:
6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \
10233 .loc 1 6025 3 is_stmt 1 view .LVU3576
6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \
10234 .loc 1 6025 20 is_stmt 0 view .LVU3577
10235 0034 236B ldr r3, [r4, #48]
10236 .LVL698:
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10237 .loc 1 6026 3 is_stmt 1 view .LVU3578
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10238 .loc 1 6026 12 is_stmt 0 view .LVU3579
10239 0036 A26B ldr r2, [r4, #56]
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10240 .loc 1 6026 6 view .LVU3580
10241 0038 1AB1 cbz r2, .L643
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10242 .loc 1 6026 30 discriminator 1 view .LVU3581
10243 003a 112B cmp r3, #17
10244 003c 1BD0 beq .L644
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10245 .loc 1 6026 81 discriminator 2 view .LVU3582
10246 003e 212B cmp r3, #33
10247 0040 19D0 beq .L644
10248 .L643:
6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10249 .loc 1 6056 8 is_stmt 1 view .LVU3583
6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10250 .loc 1 6056 17 is_stmt 0 view .LVU3584
10251 0042 E26B ldr r2, [r4, #60]
6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10252 .loc 1 6056 11 view .LVU3585
10253 0044 1AB1 cbz r2, .L648
6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10254 .loc 1 6056 35 discriminator 1 view .LVU3586
ARM GAS /tmp/cczJHHnF.s page 359
10255 0046 122B cmp r3, #18
10256 0048 36D0 beq .L649
6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10257 .loc 1 6056 86 discriminator 2 view .LVU3587
10258 004a 222B cmp r3, #34
10259 004c 34D0 beq .L649
10260 .L648:
6087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10261 .loc 1 6087 5 is_stmt 1 view .LVU3588
10262 004e 2046 mov r0, r4
10263 0050 FFF7FEFF bl I2C_TreatErrorCallback
10264 .LVL699:
10265 .L639:
6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10266 .loc 1 6089 1 is_stmt 0 view .LVU3589
10267 0054 10BD pop {r4, pc}
10268 .LVL700:
10269 .L640:
6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10270 .loc 1 6012 5 is_stmt 1 view .LVU3590
10271 0056 48F20301 movw r1, #32771
10272 .LVL701:
6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10273 .loc 1 6012 5 is_stmt 0 view .LVU3591
10274 005a 2046 mov r0, r4
10275 005c FFF7FEFF bl I2C_Disable_IRQ
10276 .LVL702:
6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10277 .loc 1 6016 5 is_stmt 1 view .LVU3592
6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10278 .loc 1 6016 13 is_stmt 0 view .LVU3593
10279 0060 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10280 0064 DBB2 uxtb r3, r3
6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10281 .loc 1 6016 8 view .LVU3594
10282 0066 602B cmp r3, #96
10283 0068 02D0 beq .L642
6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10284 .loc 1 6019 7 is_stmt 1 view .LVU3595
6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10285 .loc 1 6019 27 is_stmt 0 view .LVU3596
10286 006a 2023 movs r3, #32
10287 006c 84F84130 strb r3, [r4, #65]
10288 .L642:
6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10289 .loc 1 6021 5 is_stmt 1 view .LVU3597
6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10290 .loc 1 6021 25 is_stmt 0 view .LVU3598
10291 0070 0023 movs r3, #0
10292 0072 6363 str r3, [r4, #52]
10293 0074 DEE7 b .L641
10294 .LVL703:
10295 .L644:
6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10296 .loc 1 6029 5 is_stmt 1 view .LVU3599
6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10297 .loc 1 6029 14 is_stmt 0 view .LVU3600
ARM GAS /tmp/cczJHHnF.s page 360
10298 0076 2368 ldr r3, [r4]
10299 .LVL704:
6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10300 .loc 1 6029 24 view .LVU3601
10301 0078 1A68 ldr r2, [r3]
6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10302 .loc 1 6029 8 view .LVU3602
10303 007a 12F4804F tst r2, #16384
10304 007e 03D0 beq .L645
6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10305 .loc 1 6031 7 is_stmt 1 view .LVU3603
6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10306 .loc 1 6031 21 is_stmt 0 view .LVU3604
10307 0080 1A68 ldr r2, [r3]
6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10308 .loc 1 6031 27 view .LVU3605
10309 0082 22F48042 bic r2, r2, #16384
10310 0086 1A60 str r2, [r3]
10311 .L645:
6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10312 .loc 1 6034 5 is_stmt 1 view .LVU3606
6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10313 .loc 1 6034 9 is_stmt 0 view .LVU3607
10314 0088 A06B ldr r0, [r4, #56]
10315 008a FFF7FEFF bl HAL_DMA_GetState
10316 .LVL705:
6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10317 .loc 1 6034 8 view .LVU3608
10318 008e 0128 cmp r0, #1
10319 0090 0ED0 beq .L646
6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10320 .loc 1 6038 7 is_stmt 1 view .LVU3609
6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10321 .loc 1 6038 11 is_stmt 0 view .LVU3610
10322 0092 A36B ldr r3, [r4, #56]
6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10323 .loc 1 6038 39 view .LVU3611
10324 0094 1B4A ldr r2, .L653+8
10325 0096 5A63 str r2, [r3, #52]
6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10326 .loc 1 6041 7 is_stmt 1 view .LVU3612
6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10327 .loc 1 6041 7 view .LVU3613
10328 0098 0023 movs r3, #0
10329 009a 84F84030 strb r3, [r4, #64]
6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10330 .loc 1 6041 7 view .LVU3614
6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10331 .loc 1 6044 7 view .LVU3615
6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10332 .loc 1 6044 11 is_stmt 0 view .LVU3616
10333 009e A06B ldr r0, [r4, #56]
10334 00a0 FFF7FEFF bl HAL_DMA_Abort_IT
10335 .LVL706:
6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10336 .loc 1 6044 10 view .LVU3617
10337 00a4 0028 cmp r0, #0
ARM GAS /tmp/cczJHHnF.s page 361
10338 00a6 D5D0 beq .L639
6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10339 .loc 1 6047 9 is_stmt 1 view .LVU3618
6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10340 .loc 1 6047 13 is_stmt 0 view .LVU3619
10341 00a8 A06B ldr r0, [r4, #56]
6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10342 .loc 1 6047 21 view .LVU3620
10343 00aa 436B ldr r3, [r0, #52]
6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10344 .loc 1 6047 9 view .LVU3621
10345 00ac 9847 blx r3
10346 .LVL707:
10347 00ae D1E7 b .L639
10348 .L646:
6052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10349 .loc 1 6052 7 is_stmt 1 view .LVU3622
10350 00b0 2046 mov r0, r4
10351 00b2 FFF7FEFF bl I2C_TreatErrorCallback
10352 .LVL708:
10353 00b6 CDE7 b .L639
10354 .LVL709:
10355 .L649:
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10356 .loc 1 6059 5 view .LVU3623
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10357 .loc 1 6059 14 is_stmt 0 view .LVU3624
10358 00b8 2368 ldr r3, [r4]
10359 .LVL710:
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10360 .loc 1 6059 24 view .LVU3625
10361 00ba 1A68 ldr r2, [r3]
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10362 .loc 1 6059 8 view .LVU3626
10363 00bc 12F4004F tst r2, #32768
10364 00c0 03D0 beq .L650
6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10365 .loc 1 6061 7 is_stmt 1 view .LVU3627
6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10366 .loc 1 6061 21 is_stmt 0 view .LVU3628
10367 00c2 1A68 ldr r2, [r3]
6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10368 .loc 1 6061 27 view .LVU3629
10369 00c4 22F40042 bic r2, r2, #32768
10370 00c8 1A60 str r2, [r3]
10371 .L650:
6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10372 .loc 1 6064 5 is_stmt 1 view .LVU3630
6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10373 .loc 1 6064 9 is_stmt 0 view .LVU3631
10374 00ca E06B ldr r0, [r4, #60]
10375 00cc FFF7FEFF bl HAL_DMA_GetState
10376 .LVL711:
6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10377 .loc 1 6064 8 view .LVU3632
10378 00d0 0128 cmp r0, #1
10379 00d2 0ED0 beq .L651
ARM GAS /tmp/cczJHHnF.s page 362
6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10380 .loc 1 6068 7 is_stmt 1 view .LVU3633
6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10381 .loc 1 6068 11 is_stmt 0 view .LVU3634
10382 00d4 E36B ldr r3, [r4, #60]
6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10383 .loc 1 6068 39 view .LVU3635
10384 00d6 0B4A ldr r2, .L653+8
10385 00d8 5A63 str r2, [r3, #52]
6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10386 .loc 1 6071 7 is_stmt 1 view .LVU3636
6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10387 .loc 1 6071 7 view .LVU3637
10388 00da 0023 movs r3, #0
10389 00dc 84F84030 strb r3, [r4, #64]
6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10390 .loc 1 6071 7 view .LVU3638
6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10391 .loc 1 6074 7 view .LVU3639
6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10392 .loc 1 6074 11 is_stmt 0 view .LVU3640
10393 00e0 E06B ldr r0, [r4, #60]
10394 00e2 FFF7FEFF bl HAL_DMA_Abort_IT
10395 .LVL712:
6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10396 .loc 1 6074 10 view .LVU3641
10397 00e6 0028 cmp r0, #0
10398 00e8 B4D0 beq .L639
6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10399 .loc 1 6077 9 is_stmt 1 view .LVU3642
6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10400 .loc 1 6077 13 is_stmt 0 view .LVU3643
10401 00ea E06B ldr r0, [r4, #60]
6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10402 .loc 1 6077 21 view .LVU3644
10403 00ec 436B ldr r3, [r0, #52]
6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10404 .loc 1 6077 9 view .LVU3645
10405 00ee 9847 blx r3
10406 .LVL713:
10407 00f0 B0E7 b .L639
10408 .L651:
6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10409 .loc 1 6082 7 is_stmt 1 view .LVU3646
10410 00f2 2046 mov r0, r4
10411 00f4 FFF7FEFF bl I2C_TreatErrorCallback
10412 .LVL714:
10413 00f8 ACE7 b .L639
10414 .L654:
10415 00fa 00BF .align 2
10416 .L653:
10417 00fc 0000FFFF .word -65536
10418 0100 00000000 .word I2C_Slave_ISR_IT
10419 0104 00000000 .word I2C_DMAAbort
10420 .cfi_endproc
10421 .LFE191:
10423 .section .text.I2C_ITSlaveCplt,"ax",%progbits
ARM GAS /tmp/cczJHHnF.s page 363
10424 .align 1
10425 .syntax unified
10426 .thumb
10427 .thumb_func
10429 I2C_ITSlaveCplt:
10430 .LVL715:
10431 .LFB189:
5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10432 .loc 1 5775 1 view -0
10433 .cfi_startproc
10434 @ args = 0, pretend = 0, frame = 0
10435 @ frame_needed = 0, uses_anonymous_args = 0
5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10436 .loc 1 5775 1 is_stmt 0 view .LVU3648
10437 0000 70B5 push {r4, r5, r6, lr}
10438 .cfi_def_cfa_offset 16
10439 .cfi_offset 4, -16
10440 .cfi_offset 5, -12
10441 .cfi_offset 6, -8
10442 .cfi_offset 14, -4
10443 0002 0446 mov r4, r0
10444 0004 0D46 mov r5, r1
5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
10445 .loc 1 5776 3 is_stmt 1 view .LVU3649
5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
10446 .loc 1 5776 26 is_stmt 0 view .LVU3650
10447 0006 0268 ldr r2, [r0]
5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
10448 .loc 1 5776 12 view .LVU3651
10449 0008 1668 ldr r6, [r2]
10450 .LVL716:
5777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10451 .loc 1 5777 3 is_stmt 1 view .LVU3652
5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10452 .loc 1 5778 3 view .LVU3653
5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10453 .loc 1 5778 24 is_stmt 0 view .LVU3654
10454 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10455 000e DBB2 uxtb r3, r3
10456 .LVL717:
5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10457 .loc 1 5781 3 is_stmt 1 view .LVU3655
10458 0010 2021 movs r1, #32
10459 .LVL718:
5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10460 .loc 1 5781 3 is_stmt 0 view .LVU3656
10461 0012 D161 str r1, [r2, #28]
5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10462 .loc 1 5784 3 is_stmt 1 view .LVU3657
5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10463 .loc 1 5784 6 is_stmt 0 view .LVU3658
10464 0014 212B cmp r3, #33
10465 0016 0DD0 beq .L656
5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10466 .loc 1 5784 43 discriminator 1 view .LVU3659
10467 0018 292B cmp r3, #41
10468 001a 0BD0 beq .L656
ARM GAS /tmp/cczJHHnF.s page 364
5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10469 .loc 1 5789 8 is_stmt 1 view .LVU3660
5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10470 .loc 1 5789 11 is_stmt 0 view .LVU3661
10471 001c 222B cmp r3, #34
10472 001e 01D0 beq .L659
5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10473 .loc 1 5789 48 discriminator 1 view .LVU3662
10474 0020 2A2B cmp r3, #42
10475 0022 0ED1 bne .L658
10476 .L659:
5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
10477 .loc 1 5791 5 is_stmt 1 view .LVU3663
10478 0024 48F20201 movw r1, #32770
10479 0028 2046 mov r0, r4
10480 .LVL719:
5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
10481 .loc 1 5791 5 is_stmt 0 view .LVU3664
10482 002a FFF7FEFF bl I2C_Disable_IRQ
10483 .LVL720:
5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10484 .loc 1 5792 5 is_stmt 1 view .LVU3665
5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10485 .loc 1 5792 25 is_stmt 0 view .LVU3666
10486 002e 2223 movs r3, #34
10487 0030 2363 str r3, [r4, #48]
10488 0032 06E0 b .L658
10489 .LVL721:
10490 .L656:
5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
10491 .loc 1 5786 5 is_stmt 1 view .LVU3667
10492 0034 48F20101 movw r1, #32769
10493 0038 2046 mov r0, r4
10494 .LVL722:
5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
10495 .loc 1 5786 5 is_stmt 0 view .LVU3668
10496 003a FFF7FEFF bl I2C_Disable_IRQ
10497 .LVL723:
5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10498 .loc 1 5787 5 is_stmt 1 view .LVU3669
5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10499 .loc 1 5787 25 is_stmt 0 view .LVU3670
10500 003e 2123 movs r3, #33
10501 0040 2363 str r3, [r4, #48]
10502 .L658:
5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10503 .loc 1 5800 3 is_stmt 1 view .LVU3671
5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10504 .loc 1 5800 7 is_stmt 0 view .LVU3672
10505 0042 2268 ldr r2, [r4]
5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10506 .loc 1 5800 17 view .LVU3673
10507 0044 5368 ldr r3, [r2, #4]
5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10508 .loc 1 5800 23 view .LVU3674
10509 0046 43F40043 orr r3, r3, #32768
10510 004a 5360 str r3, [r2, #4]
ARM GAS /tmp/cczJHHnF.s page 365
5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10511 .loc 1 5803 3 is_stmt 1 view .LVU3675
10512 004c 2268 ldr r2, [r4]
10513 004e 5368 ldr r3, [r2, #4]
10514 0050 23F0FF73 bic r3, r3, #33423360
10515 0054 23F48B33 bic r3, r3, #71168
10516 0058 23F4FF73 bic r3, r3, #510
10517 005c 23F00103 bic r3, r3, #1
10518 0060 5360 str r3, [r2, #4]
5806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10519 .loc 1 5806 3 view .LVU3676
10520 0062 2046 mov r0, r4
10521 0064 FFF7FEFF bl I2C_Flush_TXDR
10522 .LVL724:
5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10523 .loc 1 5809 3 view .LVU3677
5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10524 .loc 1 5809 6 is_stmt 0 view .LVU3678
10525 0068 16F4804F tst r6, #16384
10526 006c 40D0 beq .L660
5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10527 .loc 1 5812 5 is_stmt 1 view .LVU3679
5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10528 .loc 1 5812 9 is_stmt 0 view .LVU3680
10529 006e 2268 ldr r2, [r4]
5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10530 .loc 1 5812 19 view .LVU3681
10531 0070 1368 ldr r3, [r2]
5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10532 .loc 1 5812 25 view .LVU3682
10533 0072 23F48043 bic r3, r3, #16384
10534 0076 1360 str r3, [r2]
5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10535 .loc 1 5814 5 is_stmt 1 view .LVU3683
5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10536 .loc 1 5814 13 is_stmt 0 view .LVU3684
10537 0078 A36B ldr r3, [r4, #56]
5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10538 .loc 1 5814 8 view .LVU3685
10539 007a 1BB1 cbz r3, .L661
5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10540 .loc 1 5816 7 is_stmt 1 view .LVU3686
5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10541 .loc 1 5816 35 is_stmt 0 view .LVU3687
10542 007c 1B68 ldr r3, [r3]
10543 007e 5B68 ldr r3, [r3, #4]
5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10544 .loc 1 5816 25 view .LVU3688
10545 0080 9BB2 uxth r3, r3
5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10546 .loc 1 5816 23 view .LVU3689
10547 0082 6385 strh r3, [r4, #42] @ movhi
10548 .L661:
5832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10549 .loc 1 5832 3 is_stmt 1 view .LVU3690
5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10550 .loc 1 5835 3 view .LVU3691
ARM GAS /tmp/cczJHHnF.s page 366
5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10551 .loc 1 5835 6 is_stmt 0 view .LVU3692
10552 0084 15F0040F tst r5, #4
10553 0088 11D0 beq .L662
5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10554 .loc 1 5838 5 is_stmt 1 view .LVU3693
5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10555 .loc 1 5838 16 is_stmt 0 view .LVU3694
10556 008a 25F00405 bic r5, r5, #4
10557 .LVL725:
5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10558 .loc 1 5841 5 is_stmt 1 view .LVU3695
5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10559 .loc 1 5841 36 is_stmt 0 view .LVU3696
10560 008e 2368 ldr r3, [r4]
5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10561 .loc 1 5841 46 view .LVU3697
10562 0090 5A6A ldr r2, [r3, #36]
5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10563 .loc 1 5841 10 view .LVU3698
10564 0092 636A ldr r3, [r4, #36]
5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10565 .loc 1 5841 21 view .LVU3699
10566 0094 1A70 strb r2, [r3]
5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10567 .loc 1 5844 5 is_stmt 1 view .LVU3700
5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10568 .loc 1 5844 9 is_stmt 0 view .LVU3701
10569 0096 636A ldr r3, [r4, #36]
5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10570 .loc 1 5844 19 view .LVU3702
10571 0098 0133 adds r3, r3, #1
10572 009a 6362 str r3, [r4, #36]
5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10573 .loc 1 5846 5 is_stmt 1 view .LVU3703
5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10574 .loc 1 5846 14 is_stmt 0 view .LVU3704
10575 009c 238D ldrh r3, [r4, #40]
5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10576 .loc 1 5846 8 view .LVU3705
10577 009e 33B1 cbz r3, .L662
5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
10578 .loc 1 5848 7 is_stmt 1 view .LVU3706
5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
10579 .loc 1 5848 21 is_stmt 0 view .LVU3707
10580 00a0 013B subs r3, r3, #1
10581 00a2 2385 strh r3, [r4, #40] @ movhi
5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10582 .loc 1 5849 7 is_stmt 1 view .LVU3708
5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10583 .loc 1 5849 11 is_stmt 0 view .LVU3709
10584 00a4 638D ldrh r3, [r4, #42]
10585 00a6 9BB2 uxth r3, r3
5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10586 .loc 1 5849 22 view .LVU3710
10587 00a8 013B subs r3, r3, #1
10588 00aa 9BB2 uxth r3, r3
ARM GAS /tmp/cczJHHnF.s page 367
10589 00ac 6385 strh r3, [r4, #42] @ movhi
10590 .L662:
5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10591 .loc 1 5854 3 is_stmt 1 view .LVU3711
5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10592 .loc 1 5854 11 is_stmt 0 view .LVU3712
10593 00ae 638D ldrh r3, [r4, #42]
10594 00b0 9BB2 uxth r3, r3
5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10595 .loc 1 5854 6 view .LVU3713
10596 00b2 1BB1 cbz r3, .L663
5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10597 .loc 1 5857 5 is_stmt 1 view .LVU3714
5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10598 .loc 1 5857 9 is_stmt 0 view .LVU3715
10599 00b4 636C ldr r3, [r4, #68]
5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10600 .loc 1 5857 21 view .LVU3716
10601 00b6 43F00403 orr r3, r3, #4
10602 00ba 6364 str r3, [r4, #68]
10603 .L663:
5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
10604 .loc 1 5860 3 is_stmt 1 view .LVU3717
5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
10605 .loc 1 5860 14 is_stmt 0 view .LVU3718
10606 00bc 0023 movs r3, #0
10607 00be 84F84230 strb r3, [r4, #66]
5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10608 .loc 1 5861 3 is_stmt 1 view .LVU3719
5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10609 .loc 1 5861 17 is_stmt 0 view .LVU3720
10610 00c2 6363 str r3, [r4, #52]
5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10611 .loc 1 5863 3 is_stmt 1 view .LVU3721
5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10612 .loc 1 5863 11 is_stmt 0 view .LVU3722
10613 00c4 636C ldr r3, [r4, #68]
5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10614 .loc 1 5863 6 view .LVU3723
10615 00c6 1BBB cbnz r3, .L669
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10616 .loc 1 5875 8 is_stmt 1 view .LVU3724
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10617 .loc 1 5875 16 is_stmt 0 view .LVU3725
10618 00c8 E36A ldr r3, [r4, #44]
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10619 .loc 1 5875 11 view .LVU3726
10620 00ca 13F5803F cmn r3, #65536
10621 00ce 2DD1 bne .L670
5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10622 .loc 1 5895 8 is_stmt 1 view .LVU3727
5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10623 .loc 1 5895 16 is_stmt 0 view .LVU3728
10624 00d0 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10625 00d4 DBB2 uxtb r3, r3
5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10626 .loc 1 5895 11 view .LVU3729
ARM GAS /tmp/cczJHHnF.s page 368
10627 00d6 222B cmp r3, #34
10628 00d8 38D0 beq .L671
5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10629 .loc 1 5912 5 is_stmt 1 view .LVU3730
5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10630 .loc 1 5912 17 is_stmt 0 view .LVU3731
10631 00da 2023 movs r3, #32
10632 00dc 84F84130 strb r3, [r4, #65]
5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10633 .loc 1 5913 5 is_stmt 1 view .LVU3732
5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10634 .loc 1 5913 25 is_stmt 0 view .LVU3733
10635 00e0 0023 movs r3, #0
10636 00e2 2363 str r3, [r4, #48]
5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10637 .loc 1 5916 5 is_stmt 1 view .LVU3734
5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10638 .loc 1 5916 5 view .LVU3735
10639 00e4 84F84030 strb r3, [r4, #64]
5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10640 .loc 1 5916 5 view .LVU3736
5922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10641 .loc 1 5922 5 view .LVU3737
10642 00e8 2046 mov r0, r4
10643 00ea FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
10644 .LVL726:
5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10645 .loc 1 5925 1 is_stmt 0 view .LVU3738
10646 00ee 2CE0 b .L655
10647 .LVL727:
10648 .L660:
5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10649 .loc 1 5819 8 is_stmt 1 view .LVU3739
5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10650 .loc 1 5819 11 is_stmt 0 view .LVU3740
10651 00f0 16F4004F tst r6, #32768
10652 00f4 C6D0 beq .L661
5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10653 .loc 1 5822 5 is_stmt 1 view .LVU3741
5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10654 .loc 1 5822 9 is_stmt 0 view .LVU3742
10655 00f6 2268 ldr r2, [r4]
5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10656 .loc 1 5822 19 view .LVU3743
10657 00f8 1368 ldr r3, [r2]
5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10658 .loc 1 5822 25 view .LVU3744
10659 00fa 23F40043 bic r3, r3, #32768
10660 00fe 1360 str r3, [r2]
5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10661 .loc 1 5824 5 is_stmt 1 view .LVU3745
5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10662 .loc 1 5824 13 is_stmt 0 view .LVU3746
10663 0100 E36B ldr r3, [r4, #60]
5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10664 .loc 1 5824 8 view .LVU3747
10665 0102 002B cmp r3, #0
ARM GAS /tmp/cczJHHnF.s page 369
10666 0104 BED0 beq .L661
5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10667 .loc 1 5826 7 is_stmt 1 view .LVU3748
5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10668 .loc 1 5826 35 is_stmt 0 view .LVU3749
10669 0106 1B68 ldr r3, [r3]
10670 0108 5B68 ldr r3, [r3, #4]
5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10671 .loc 1 5826 25 view .LVU3750
10672 010a 9BB2 uxth r3, r3
5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10673 .loc 1 5826 23 view .LVU3751
10674 010c 6385 strh r3, [r4, #42] @ movhi
10675 010e B9E7 b .L661
10676 .LVL728:
10677 .L669:
5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10678 .loc 1 5866 5 is_stmt 1 view .LVU3752
5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10679 .loc 1 5866 27 is_stmt 0 view .LVU3753
10680 0110 616C ldr r1, [r4, #68]
5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10681 .loc 1 5866 5 view .LVU3754
10682 0112 2046 mov r0, r4
10683 0114 FFF7FEFF bl I2C_ITError
10684 .LVL729:
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10685 .loc 1 5869 5 is_stmt 1 view .LVU3755
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10686 .loc 1 5869 13 is_stmt 0 view .LVU3756
10687 0118 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10688 011c DBB2 uxtb r3, r3
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10689 .loc 1 5869 8 view .LVU3757
10690 011e 282B cmp r3, #40
10691 0120 13D1 bne .L655
5872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10692 .loc 1 5872 7 is_stmt 1 view .LVU3758
10693 0122 2946 mov r1, r5
10694 0124 2046 mov r0, r4
10695 0126 FFF7FEFF bl I2C_ITListenCplt
10696 .LVL730:
10697 012a 0EE0 b .L655
10698 .L670:
5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10699 .loc 1 5878 5 view .LVU3759
10700 012c 2046 mov r0, r4
10701 012e FFF7FEFF bl I2C_ITSlaveSeqCplt
10702 .LVL731:
5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10703 .loc 1 5880 5 view .LVU3760
5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10704 .loc 1 5880 23 is_stmt 0 view .LVU3761
10705 0132 0C4B ldr r3, .L672
10706 0134 E362 str r3, [r4, #44]
5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10707 .loc 1 5881 5 is_stmt 1 view .LVU3762
ARM GAS /tmp/cczJHHnF.s page 370
5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10708 .loc 1 5881 17 is_stmt 0 view .LVU3763
10709 0136 2023 movs r3, #32
10710 0138 84F84130 strb r3, [r4, #65]
5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10711 .loc 1 5882 5 is_stmt 1 view .LVU3764
5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10712 .loc 1 5882 25 is_stmt 0 view .LVU3765
10713 013c 0023 movs r3, #0
10714 013e 2363 str r3, [r4, #48]
5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10715 .loc 1 5885 5 is_stmt 1 view .LVU3766
5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10716 .loc 1 5885 5 view .LVU3767
10717 0140 84F84030 strb r3, [r4, #64]
5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10718 .loc 1 5885 5 view .LVU3768
5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10719 .loc 1 5891 5 view .LVU3769
10720 0144 2046 mov r0, r4
10721 0146 FFF7FEFF bl HAL_I2C_ListenCpltCallback
10722 .LVL732:
10723 .L655:
5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10724 .loc 1 5925 1 is_stmt 0 view .LVU3770
10725 014a 70BD pop {r4, r5, r6, pc}
10726 .LVL733:
10727 .L671:
5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10728 .loc 1 5897 5 is_stmt 1 view .LVU3771
5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10729 .loc 1 5897 17 is_stmt 0 view .LVU3772
10730 014c 2023 movs r3, #32
10731 014e 84F84130 strb r3, [r4, #65]
5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10732 .loc 1 5898 5 is_stmt 1 view .LVU3773
5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10733 .loc 1 5898 25 is_stmt 0 view .LVU3774
10734 0152 0023 movs r3, #0
10735 0154 2363 str r3, [r4, #48]
5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10736 .loc 1 5901 5 is_stmt 1 view .LVU3775
5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10737 .loc 1 5901 5 view .LVU3776
10738 0156 84F84030 strb r3, [r4, #64]
5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10739 .loc 1 5901 5 view .LVU3777
5907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10740 .loc 1 5907 5 view .LVU3778
10741 015a 2046 mov r0, r4
10742 015c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
10743 .LVL734:
10744 0160 F3E7 b .L655
10745 .L673:
10746 0162 00BF .align 2
10747 .L672:
10748 0164 0000FFFF .word -65536
ARM GAS /tmp/cczJHHnF.s page 371
10749 .cfi_endproc
10750 .LFE189:
10752 .section .text.I2C_Slave_ISR_IT,"ax",%progbits
10753 .align 1
10754 .syntax unified
10755 .thumb
10756 .thumb_func
10758 I2C_Slave_ISR_IT:
10759 .LVL735:
10760 .LFB180:
4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10761 .loc 1 4881 1 view -0
10762 .cfi_startproc
10763 @ args = 0, pretend = 0, frame = 0
10764 @ frame_needed = 0, uses_anonymous_args = 0
4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10765 .loc 1 4881 1 is_stmt 0 view .LVU3780
10766 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
10767 .cfi_def_cfa_offset 24
10768 .cfi_offset 3, -24
10769 .cfi_offset 4, -20
10770 .cfi_offset 5, -16
10771 .cfi_offset 6, -12
10772 .cfi_offset 7, -8
10773 .cfi_offset 14, -4
4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
10774 .loc 1 4882 3 is_stmt 1 view .LVU3781
4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
10775 .loc 1 4882 12 is_stmt 0 view .LVU3782
10776 0002 C76A ldr r7, [r0, #44]
10777 .LVL736:
4883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10778 .loc 1 4883 3 is_stmt 1 view .LVU3783
4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10779 .loc 1 4886 3 view .LVU3784
4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10780 .loc 1 4886 3 view .LVU3785
10781 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
10782 0008 012B cmp r3, #1
10783 000a 00F09E80 beq .L688
10784 000e 0446 mov r4, r0
10785 0010 0D46 mov r5, r1
10786 0012 1646 mov r6, r2
4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10787 .loc 1 4886 3 discriminator 2 view .LVU3786
10788 0014 0123 movs r3, #1
10789 0016 80F84030 strb r3, [r0, #64]
4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10790 .loc 1 4886 3 discriminator 2 view .LVU3787
4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
10791 .loc 1 4889 3 discriminator 2 view .LVU3788
4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
10792 .loc 1 4889 6 is_stmt 0 discriminator 2 view .LVU3789
10793 001a 11F0200F tst r1, #32
10794 001e 02D0 beq .L676
4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
10795 .loc 1 4889 61 discriminator 1 view .LVU3790
ARM GAS /tmp/cczJHHnF.s page 372
10796 0020 12F0200F tst r2, #32
10797 0024 19D1 bne .L690
10798 .LVL737:
10799 .L676:
4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
10800 .loc 1 4896 3 is_stmt 1 view .LVU3791
4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
10801 .loc 1 4896 6 is_stmt 0 view .LVU3792
10802 0026 15F0100F tst r5, #16
10803 002a 3ED0 beq .L677
4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
10804 .loc 1 4896 58 discriminator 1 view .LVU3793
10805 002c 16F0100F tst r6, #16
10806 0030 3BD0 beq .L677
4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10807 .loc 1 4903 5 is_stmt 1 view .LVU3794
4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10808 .loc 1 4903 13 is_stmt 0 view .LVU3795
10809 0032 638D ldrh r3, [r4, #42]
10810 0034 9BB2 uxth r3, r3
4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10811 .loc 1 4903 8 view .LVU3796
10812 0036 43BB cbnz r3, .L678
4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
10813 .loc 1 4905 7 is_stmt 1 view .LVU3797
4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
10814 .loc 1 4905 16 is_stmt 0 view .LVU3798
10815 0038 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10816 003c DBB2 uxtb r3, r3
4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
10817 .loc 1 4905 10 view .LVU3799
10818 003e 282B cmp r3, #40
10819 0040 0ED0 beq .L691
10820 .L679:
4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10821 .loc 1 4912 12 is_stmt 1 view .LVU3800
4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10822 .loc 1 4912 21 is_stmt 0 view .LVU3801
10823 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10824 0046 DBB2 uxtb r3, r3
4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10825 .loc 1 4912 15 view .LVU3802
10826 0048 292B cmp r3, #41
10827 004a 11D0 beq .L692
10828 .L681:
4927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10829 .loc 1 4927 9 is_stmt 1 view .LVU3803
10830 004c 2368 ldr r3, [r4]
10831 004e 1022 movs r2, #16
10832 0050 DA61 str r2, [r3, #28]
10833 .L680:
5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10834 .loc 1 5004 3 view .LVU3804
5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10835 .loc 1 5007 3 view .LVU3805
5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10836 .loc 1 5007 3 view .LVU3806
ARM GAS /tmp/cczJHHnF.s page 373
10837 0052 0020 movs r0, #0
10838 0054 84F84000 strb r0, [r4, #64]
5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10839 .loc 1 5007 3 view .LVU3807
5009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10840 .loc 1 5009 3 view .LVU3808
10841 .LVL738:
10842 .L675:
5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10843 .loc 1 5010 1 is_stmt 0 view .LVU3809
10844 0058 F8BD pop {r3, r4, r5, r6, r7, pc}
10845 .LVL739:
10846 .L690:
4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10847 .loc 1 4893 5 is_stmt 1 view .LVU3810
10848 005a FFF7FEFF bl I2C_ITSlaveCplt
10849 .LVL740:
4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10850 .loc 1 4893 5 is_stmt 0 view .LVU3811
10851 005e E2E7 b .L676
10852 .L691:
4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
10853 .loc 1 4905 49 discriminator 1 view .LVU3812
10854 0060 B7F1007F cmp r7, #33554432
10855 0064 EDD1 bne .L679
4910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10856 .loc 1 4910 9 is_stmt 1 view .LVU3813
10857 0066 2946 mov r1, r5
10858 0068 2046 mov r0, r4
10859 006a FFF7FEFF bl I2C_ITListenCplt
10860 .LVL741:
10861 006e F0E7 b .L680
10862 .L692:
4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10863 .loc 1 4912 62 is_stmt 0 discriminator 1 view .LVU3814
10864 0070 17F5803F cmn r7, #65536
10865 0074 EAD0 beq .L681
4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10866 .loc 1 4915 9 is_stmt 1 view .LVU3815
10867 0076 2368 ldr r3, [r4]
10868 0078 1022 movs r2, #16
10869 007a DA61 str r2, [r3, #28]
4918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10870 .loc 1 4918 9 view .LVU3816
10871 007c 2046 mov r0, r4
10872 007e FFF7FEFF bl I2C_Flush_TXDR
10873 .LVL742:
4922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10874 .loc 1 4922 9 view .LVU3817
10875 0082 2046 mov r0, r4
10876 0084 FFF7FEFF bl I2C_ITSlaveSeqCplt
10877 .LVL743:
10878 0088 E3E7 b .L680
10879 .L678:
4934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10880 .loc 1 4934 7 view .LVU3818
10881 008a 2368 ldr r3, [r4]
ARM GAS /tmp/cczJHHnF.s page 374
10882 008c 1022 movs r2, #16
10883 008e DA61 str r2, [r3, #28]
4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10884 .loc 1 4937 7 view .LVU3819
4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10885 .loc 1 4937 11 is_stmt 0 view .LVU3820
10886 0090 636C ldr r3, [r4, #68]
4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10887 .loc 1 4937 23 view .LVU3821
10888 0092 43F00403 orr r3, r3, #4
10889 0096 6364 str r3, [r4, #68]
4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10890 .loc 1 4939 7 is_stmt 1 view .LVU3822
4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10891 .loc 1 4939 10 is_stmt 0 view .LVU3823
10892 0098 17B1 cbz r7, .L682
4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10893 .loc 1 4939 43 discriminator 1 view .LVU3824
10894 009a B7F1807F cmp r7, #16777216
10895 009e D8D1 bne .L680
10896 .L682:
4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10897 .loc 1 4942 9 is_stmt 1 view .LVU3825
4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10898 .loc 1 4942 31 is_stmt 0 view .LVU3826
10899 00a0 616C ldr r1, [r4, #68]
4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10900 .loc 1 4942 9 view .LVU3827
10901 00a2 2046 mov r0, r4
10902 00a4 FFF7FEFF bl I2C_ITError
10903 .LVL744:
10904 00a8 D3E7 b .L680
10905 .L677:
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
10906 .loc 1 4946 8 is_stmt 1 view .LVU3828
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
10907 .loc 1 4946 11 is_stmt 0 view .LVU3829
10908 00aa 15F0040F tst r5, #4
10909 00ae 1FD0 beq .L683
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
10910 .loc 1 4946 65 discriminator 1 view .LVU3830
10911 00b0 16F0040F tst r6, #4
10912 00b4 1CD0 beq .L683
4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10913 .loc 1 4949 5 is_stmt 1 view .LVU3831
4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10914 .loc 1 4949 13 is_stmt 0 view .LVU3832
10915 00b6 638D ldrh r3, [r4, #42]
10916 00b8 9BB2 uxth r3, r3
4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10917 .loc 1 4949 8 view .LVU3833
10918 00ba 73B1 cbz r3, .L684
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10919 .loc 1 4952 7 is_stmt 1 view .LVU3834
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10920 .loc 1 4952 38 is_stmt 0 view .LVU3835
10921 00bc 2368 ldr r3, [r4]
ARM GAS /tmp/cczJHHnF.s page 375
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10922 .loc 1 4952 48 view .LVU3836
10923 00be 5A6A ldr r2, [r3, #36]
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10924 .loc 1 4952 12 view .LVU3837
10925 00c0 636A ldr r3, [r4, #36]
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10926 .loc 1 4952 23 view .LVU3838
10927 00c2 1A70 strb r2, [r3]
4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10928 .loc 1 4955 7 is_stmt 1 view .LVU3839
4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10929 .loc 1 4955 11 is_stmt 0 view .LVU3840
10930 00c4 636A ldr r3, [r4, #36]
4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10931 .loc 1 4955 21 view .LVU3841
10932 00c6 0133 adds r3, r3, #1
10933 00c8 6362 str r3, [r4, #36]
4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
10934 .loc 1 4957 7 is_stmt 1 view .LVU3842
4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
10935 .loc 1 4957 11 is_stmt 0 view .LVU3843
10936 00ca 238D ldrh r3, [r4, #40]
4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
10937 .loc 1 4957 21 view .LVU3844
10938 00cc 013B subs r3, r3, #1
10939 00ce 2385 strh r3, [r4, #40] @ movhi
4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10940 .loc 1 4958 7 is_stmt 1 view .LVU3845
4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10941 .loc 1 4958 11 is_stmt 0 view .LVU3846
10942 00d0 638D ldrh r3, [r4, #42]
10943 00d2 9BB2 uxth r3, r3
4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10944 .loc 1 4958 22 view .LVU3847
10945 00d4 013B subs r3, r3, #1
10946 00d6 9BB2 uxth r3, r3
10947 00d8 6385 strh r3, [r4, #42] @ movhi
10948 .L684:
4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10949 .loc 1 4961 5 is_stmt 1 view .LVU3848
4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10950 .loc 1 4961 14 is_stmt 0 view .LVU3849
10951 00da 638D ldrh r3, [r4, #42]
10952 00dc 9BB2 uxth r3, r3
4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10953 .loc 1 4961 8 view .LVU3850
10954 00de 002B cmp r3, #0
10955 00e0 B7D1 bne .L680
4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10956 .loc 1 4961 33 discriminator 1 view .LVU3851
10957 00e2 17F5803F cmn r7, #65536
10958 00e6 B4D0 beq .L680
4965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10959 .loc 1 4965 7 is_stmt 1 view .LVU3852
10960 00e8 2046 mov r0, r4
10961 00ea FFF7FEFF bl I2C_ITSlaveSeqCplt
ARM GAS /tmp/cczJHHnF.s page 376
10962 .LVL745:
10963 00ee B0E7 b .L680
10964 .L683:
4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
10965 .loc 1 4968 8 view .LVU3853
4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
10966 .loc 1 4968 11 is_stmt 0 view .LVU3854
10967 00f0 15F0080F tst r5, #8
10968 00f4 02D0 beq .L685
4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
10969 .loc 1 4968 65 discriminator 1 view .LVU3855
10970 00f6 16F0080F tst r6, #8
10971 00fa 18D1 bne .L693
10972 .L685:
4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
10973 .loc 1 4973 8 is_stmt 1 view .LVU3856
4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
10974 .loc 1 4973 11 is_stmt 0 view .LVU3857
10975 00fc 15F0020F tst r5, #2
10976 0100 A7D0 beq .L680
4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
10977 .loc 1 4973 65 discriminator 1 view .LVU3858
10978 0102 16F0020F tst r6, #2
10979 0106 A4D0 beq .L680
4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10980 .loc 1 4980 5 is_stmt 1 view .LVU3859
4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10981 .loc 1 4980 13 is_stmt 0 view .LVU3860
10982 0108 638D ldrh r3, [r4, #42]
10983 010a 9BB2 uxth r3, r3
4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10984 .loc 1 4980 8 view .LVU3861
10985 010c A3B1 cbz r3, .L686
4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10986 .loc 1 4983 7 is_stmt 1 view .LVU3862
4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10987 .loc 1 4983 35 is_stmt 0 view .LVU3863
10988 010e 626A ldr r2, [r4, #36]
4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10989 .loc 1 4983 11 view .LVU3864
10990 0110 2368 ldr r3, [r4]
4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10991 .loc 1 4983 30 view .LVU3865
10992 0112 1278 ldrb r2, [r2] @ zero_extendqisi2
4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10993 .loc 1 4983 28 view .LVU3866
10994 0114 9A62 str r2, [r3, #40]
4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10995 .loc 1 4986 7 is_stmt 1 view .LVU3867
4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10996 .loc 1 4986 11 is_stmt 0 view .LVU3868
10997 0116 636A ldr r3, [r4, #36]
4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10998 .loc 1 4986 21 view .LVU3869
10999 0118 0133 adds r3, r3, #1
11000 011a 6362 str r3, [r4, #36]
4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
ARM GAS /tmp/cczJHHnF.s page 377
11001 .loc 1 4988 7 is_stmt 1 view .LVU3870
4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
11002 .loc 1 4988 11 is_stmt 0 view .LVU3871
11003 011c 638D ldrh r3, [r4, #42]
11004 011e 9BB2 uxth r3, r3
4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
11005 .loc 1 4988 22 view .LVU3872
11006 0120 013B subs r3, r3, #1
11007 0122 9BB2 uxth r3, r3
11008 0124 6385 strh r3, [r4, #42] @ movhi
4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11009 .loc 1 4989 7 is_stmt 1 view .LVU3873
4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11010 .loc 1 4989 11 is_stmt 0 view .LVU3874
11011 0126 238D ldrh r3, [r4, #40]
4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11012 .loc 1 4989 21 view .LVU3875
11013 0128 013B subs r3, r3, #1
11014 012a 2385 strh r3, [r4, #40] @ movhi
11015 012c 91E7 b .L680
11016 .L693:
4971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11017 .loc 1 4971 5 is_stmt 1 view .LVU3876
11018 012e 2946 mov r1, r5
11019 0130 2046 mov r0, r4
11020 0132 FFF7FEFF bl I2C_ITAddrCplt
11021 .LVL746:
11022 0136 8CE7 b .L680
11023 .L686:
4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11024 .loc 1 4993 7 view .LVU3877
4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11025 .loc 1 4993 10 is_stmt 0 view .LVU3878
11026 0138 B7F1807F cmp r7, #16777216
11027 013c 01D0 beq .L687
4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11028 .loc 1 4993 42 discriminator 1 view .LVU3879
11029 013e 002F cmp r7, #0
11030 0140 87D1 bne .L680
11031 .L687:
4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11032 .loc 1 4997 9 is_stmt 1 view .LVU3880
11033 0142 2046 mov r0, r4
11034 0144 FFF7FEFF bl I2C_ITSlaveSeqCplt
11035 .LVL747:
11036 0148 83E7 b .L680
11037 .LVL748:
11038 .L688:
4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11039 .loc 1 4886 3 is_stmt 0 view .LVU3881
11040 014a 0220 movs r0, #2
11041 .LVL749:
4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11042 .loc 1 4886 3 view .LVU3882
11043 014c 84E7 b .L675
11044 .cfi_endproc
11045 .LFE180:
ARM GAS /tmp/cczJHHnF.s page 378
11047 .section .text.I2C_ITMasterCplt,"ax",%progbits
11048 .align 1
11049 .syntax unified
11050 .thumb
11051 .thumb_func
11053 I2C_ITMasterCplt:
11054 .LVL750:
11055 .LFB188:
5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
11056 .loc 1 5632 1 is_stmt 1 view -0
11057 .cfi_startproc
11058 @ args = 0, pretend = 0, frame = 8
11059 @ frame_needed = 0, uses_anonymous_args = 0
5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
11060 .loc 1 5632 1 is_stmt 0 view .LVU3884
11061 0000 30B5 push {r4, r5, lr}
11062 .cfi_def_cfa_offset 12
11063 .cfi_offset 4, -12
11064 .cfi_offset 5, -8
11065 .cfi_offset 14, -4
11066 0002 83B0 sub sp, sp, #12
11067 .cfi_def_cfa_offset 24
11068 0004 0446 mov r4, r0
11069 0006 0D46 mov r5, r1
5633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11070 .loc 1 5633 3 is_stmt 1 view .LVU3885
5634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg;
11071 .loc 1 5634 3 view .LVU3886
11072 .LVL751:
5635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11073 .loc 1 5635 3 view .LVU3887
5638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11074 .loc 1 5638 3 view .LVU3888
11075 0008 0368 ldr r3, [r0]
11076 000a 2022 movs r2, #32
11077 000c DA61 str r2, [r3, #28]
5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11078 .loc 1 5641 3 view .LVU3889
5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11079 .loc 1 5641 11 is_stmt 0 view .LVU3890
11080 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
11081 0012 DBB2 uxtb r3, r3
5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11082 .loc 1 5641 6 view .LVU3891
11083 0014 212B cmp r3, #33
11084 0016 33D0 beq .L706
5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11085 .loc 1 5646 8 is_stmt 1 view .LVU3892
5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11086 .loc 1 5646 16 is_stmt 0 view .LVU3893
11087 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
11088 001c DBB2 uxtb r3, r3
5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11089 .loc 1 5646 11 view .LVU3894
11090 001e 222B cmp r3, #34
11091 0020 34D0 beq .L707
11092 .LVL752:
ARM GAS /tmp/cczJHHnF.s page 379
11093 .L696:
5654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11094 .loc 1 5654 3 is_stmt 1 view .LVU3895
5657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11095 .loc 1 5657 3 view .LVU3896
11096 0022 2268 ldr r2, [r4]
11097 0024 5368 ldr r3, [r2, #4]
11098 0026 23F0FF73 bic r3, r3, #33423360
11099 002a 23F48B33 bic r3, r3, #71168
11100 002e 23F4FF73 bic r3, r3, #510
11101 0032 23F00103 bic r3, r3, #1
11102 0036 5360 str r3, [r2, #4]
5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
11103 .loc 1 5660 3 view .LVU3897
5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
11104 .loc 1 5660 23 is_stmt 0 view .LVU3898
11105 0038 0023 movs r3, #0
11106 003a 6363 str r3, [r4, #52]
5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11107 .loc 1 5661 3 is_stmt 1 view .LVU3899
5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11108 .loc 1 5661 23 is_stmt 0 view .LVU3900
11109 003c A3F58033 sub r3, r3, #65536
11110 0040 E362 str r3, [r4, #44]
5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11111 .loc 1 5663 3 is_stmt 1 view .LVU3901
5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11112 .loc 1 5663 6 is_stmt 0 view .LVU3902
11113 0042 15F0100F tst r5, #16
11114 0046 06D0 beq .L697
5666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11115 .loc 1 5666 5 is_stmt 1 view .LVU3903
11116 0048 2368 ldr r3, [r4]
11117 004a 1022 movs r2, #16
11118 004c DA61 str r2, [r3, #28]
5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11119 .loc 1 5669 5 view .LVU3904
5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11120 .loc 1 5669 9 is_stmt 0 view .LVU3905
11121 004e 636C ldr r3, [r4, #68]
5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11122 .loc 1 5669 21 view .LVU3906
11123 0050 43F00403 orr r3, r3, #4
11124 0054 6364 str r3, [r4, #68]
11125 .L697:
5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11126 .loc 1 5673 3 is_stmt 1 view .LVU3907
5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11127 .loc 1 5673 12 is_stmt 0 view .LVU3908
11128 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11129 005a DBB2 uxtb r3, r3
5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11130 .loc 1 5673 6 view .LVU3909
11131 005c 602B cmp r3, #96
11132 005e 1BD0 beq .L708
11133 .L698:
5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 380
11134 .loc 1 5681 3 is_stmt 1 view .LVU3910
11135 0060 2046 mov r0, r4
11136 0062 FFF7FEFF bl I2C_Flush_TXDR
11137 .LVL753:
5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11138 .loc 1 5684 3 view .LVU3911
5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11139 .loc 1 5684 12 is_stmt 0 view .LVU3912
11140 0066 626C ldr r2, [r4, #68]
11141 .LVL754:
5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11142 .loc 1 5687 3 is_stmt 1 view .LVU3913
5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11143 .loc 1 5687 12 is_stmt 0 view .LVU3914
11144 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11145 006c DBB2 uxtb r3, r3
5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11146 .loc 1 5687 6 view .LVU3915
11147 006e 602B cmp r3, #96
11148 0070 00D0 beq .L699
5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11149 .loc 1 5687 44 discriminator 1 view .LVU3916
11150 0072 D2B1 cbz r2, .L700
11151 .L699:
5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11152 .loc 1 5690 5 is_stmt 1 view .LVU3917
5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11153 .loc 1 5690 27 is_stmt 0 view .LVU3918
11154 0074 616C ldr r1, [r4, #68]
5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11155 .loc 1 5690 5 view .LVU3919
11156 0076 2046 mov r0, r4
11157 0078 FFF7FEFF bl I2C_ITError
11158 .LVL755:
11159 .L694:
5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11160 .loc 1 5766 1 view .LVU3920
11161 007c 03B0 add sp, sp, #12
11162 .cfi_remember_state
11163 .cfi_def_cfa_offset 12
11164 @ sp needed
11165 007e 30BD pop {r4, r5, pc}
11166 .LVL756:
11167 .L706:
11168 .cfi_restore_state
5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
11169 .loc 1 5643 5 is_stmt 1 view .LVU3921
11170 0080 0121 movs r1, #1
11171 .LVL757:
5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
11172 .loc 1 5643 5 is_stmt 0 view .LVU3922
11173 0082 FFF7FEFF bl I2C_Disable_IRQ
11174 .LVL758:
5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11175 .loc 1 5644 5 is_stmt 1 view .LVU3923
5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11176 .loc 1 5644 25 is_stmt 0 view .LVU3924
ARM GAS /tmp/cczJHHnF.s page 381
11177 0086 1123 movs r3, #17
11178 0088 2363 str r3, [r4, #48]
11179 008a CAE7 b .L696
11180 .LVL759:
11181 .L707:
5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
11182 .loc 1 5648 5 is_stmt 1 view .LVU3925
11183 008c 0221 movs r1, #2
11184 .LVL760:
5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
11185 .loc 1 5648 5 is_stmt 0 view .LVU3926
11186 008e FFF7FEFF bl I2C_Disable_IRQ
11187 .LVL761:
5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11188 .loc 1 5649 5 is_stmt 1 view .LVU3927
5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11189 .loc 1 5649 25 is_stmt 0 view .LVU3928
11190 0092 1223 movs r3, #18
11191 0094 2363 str r3, [r4, #48]
11192 0096 C4E7 b .L696
11193 .L708:
5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11194 .loc 1 5673 44 discriminator 1 view .LVU3929
11195 0098 15F0040F tst r5, #4
11196 009c E0D0 beq .L698
5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
11197 .loc 1 5676 5 is_stmt 1 view .LVU3930
5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
11198 .loc 1 5676 27 is_stmt 0 view .LVU3931
11199 009e 2368 ldr r3, [r4]
5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
11200 .loc 1 5676 37 view .LVU3932
11201 00a0 5B6A ldr r3, [r3, #36]
11202 00a2 DBB2 uxtb r3, r3
5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
11203 .loc 1 5676 12 view .LVU3933
11204 00a4 0193 str r3, [sp, #4]
5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11205 .loc 1 5677 5 is_stmt 1 view .LVU3934
11206 00a6 019B ldr r3, [sp, #4]
11207 00a8 DAE7 b .L698
11208 .LVL762:
11209 .L700:
5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11210 .loc 1 5693 8 view .LVU3935
5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11211 .loc 1 5693 16 is_stmt 0 view .LVU3936
11212 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11213 00ae DBB2 uxtb r3, r3
5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11214 .loc 1 5693 11 view .LVU3937
11215 00b0 212B cmp r3, #33
11216 00b2 17D0 beq .L709
5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11217 .loc 1 5728 8 is_stmt 1 view .LVU3938
5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11218 .loc 1 5728 16 is_stmt 0 view .LVU3939
ARM GAS /tmp/cczJHHnF.s page 382
11219 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11220 00b8 DBB2 uxtb r3, r3
5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11221 .loc 1 5728 11 view .LVU3940
11222 00ba 222B cmp r3, #34
11223 00bc DED1 bne .L694
5730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11224 .loc 1 5730 5 is_stmt 1 view .LVU3941
5730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11225 .loc 1 5730 17 is_stmt 0 view .LVU3942
11226 00be 2023 movs r3, #32
11227 00c0 84F84130 strb r3, [r4, #65]
5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11228 .loc 1 5731 5 is_stmt 1 view .LVU3943
5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11229 .loc 1 5731 25 is_stmt 0 view .LVU3944
11230 00c4 0023 movs r3, #0
11231 00c6 2363 str r3, [r4, #48]
5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11232 .loc 1 5733 5 is_stmt 1 view .LVU3945
5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11233 .loc 1 5733 13 is_stmt 0 view .LVU3946
11234 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
11235 00cc DBB2 uxtb r3, r3
5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11236 .loc 1 5733 8 view .LVU3947
11237 00ce 402B cmp r3, #64
11238 00d0 24D0 beq .L710
5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11239 .loc 1 5749 7 is_stmt 1 view .LVU3948
5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11240 .loc 1 5749 18 is_stmt 0 view .LVU3949
11241 00d2 0023 movs r3, #0
11242 00d4 84F84230 strb r3, [r4, #66]
5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11243 .loc 1 5752 7 is_stmt 1 view .LVU3950
5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11244 .loc 1 5752 7 view .LVU3951
11245 00d8 84F84030 strb r3, [r4, #64]
5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11246 .loc 1 5752 7 view .LVU3952
5758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11247 .loc 1 5758 7 view .LVU3953
11248 00dc 2046 mov r0, r4
11249 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
11250 .LVL763:
5765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11251 .loc 1 5765 3 view .LVU3954
5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11252 .loc 1 5766 1 is_stmt 0 view .LVU3955
11253 00e2 CBE7 b .L694
11254 .LVL764:
11255 .L709:
5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11256 .loc 1 5695 5 is_stmt 1 view .LVU3956
5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11257 .loc 1 5695 17 is_stmt 0 view .LVU3957
ARM GAS /tmp/cczJHHnF.s page 383
11258 00e4 2023 movs r3, #32
11259 00e6 84F84130 strb r3, [r4, #65]
5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11260 .loc 1 5696 5 is_stmt 1 view .LVU3958
5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11261 .loc 1 5696 25 is_stmt 0 view .LVU3959
11262 00ea 0023 movs r3, #0
11263 00ec 2363 str r3, [r4, #48]
5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11264 .loc 1 5698 5 is_stmt 1 view .LVU3960
5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11265 .loc 1 5698 13 is_stmt 0 view .LVU3961
11266 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
11267 00f2 DBB2 uxtb r3, r3
5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11268 .loc 1 5698 8 view .LVU3962
11269 00f4 402B cmp r3, #64
11270 00f6 08D0 beq .L711
5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11271 .loc 1 5714 7 is_stmt 1 view .LVU3963
5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11272 .loc 1 5714 18 is_stmt 0 view .LVU3964
11273 00f8 0023 movs r3, #0
11274 00fa 84F84230 strb r3, [r4, #66]
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11275 .loc 1 5717 7 is_stmt 1 view .LVU3965
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11276 .loc 1 5717 7 view .LVU3966
11277 00fe 84F84030 strb r3, [r4, #64]
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11278 .loc 1 5717 7 view .LVU3967
5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11279 .loc 1 5723 7 view .LVU3968
11280 0102 2046 mov r0, r4
11281 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
11282 .LVL765:
5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11283 .loc 1 5723 7 is_stmt 0 view .LVU3969
11284 0108 B8E7 b .L694
11285 .LVL766:
11286 .L711:
5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11287 .loc 1 5700 7 is_stmt 1 view .LVU3970
5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11288 .loc 1 5700 18 is_stmt 0 view .LVU3971
11289 010a 0023 movs r3, #0
11290 010c 84F84230 strb r3, [r4, #66]
5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11291 .loc 1 5703 7 is_stmt 1 view .LVU3972
5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11292 .loc 1 5703 7 view .LVU3973
11293 0110 84F84030 strb r3, [r4, #64]
5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11294 .loc 1 5703 7 view .LVU3974
5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11295 .loc 1 5709 7 view .LVU3975
11296 0114 2046 mov r0, r4
ARM GAS /tmp/cczJHHnF.s page 384
11297 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
11298 .LVL767:
5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11299 .loc 1 5709 7 is_stmt 0 view .LVU3976
11300 011a AFE7 b .L694
11301 .LVL768:
11302 .L710:
5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11303 .loc 1 5735 7 is_stmt 1 view .LVU3977
5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11304 .loc 1 5735 18 is_stmt 0 view .LVU3978
11305 011c 0023 movs r3, #0
11306 011e 84F84230 strb r3, [r4, #66]
5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11307 .loc 1 5738 7 is_stmt 1 view .LVU3979
5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11308 .loc 1 5738 7 view .LVU3980
11309 0122 84F84030 strb r3, [r4, #64]
5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11310 .loc 1 5738 7 view .LVU3981
5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11311 .loc 1 5744 7 view .LVU3982
11312 0126 2046 mov r0, r4
11313 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback
11314 .LVL769:
5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11315 .loc 1 5744 7 is_stmt 0 view .LVU3983
11316 012c A6E7 b .L694
11317 .cfi_endproc
11318 .LFE188:
11320 .section .text.I2C_Master_ISR_IT,"ax",%progbits
11321 .align 1
11322 .syntax unified
11323 .thumb
11324 .thumb_func
11326 I2C_Master_ISR_IT:
11327 .LVL770:
11328 .LFB179:
4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
11329 .loc 1 4735 1 is_stmt 1 view -0
11330 .cfi_startproc
11331 @ args = 0, pretend = 0, frame = 0
11332 @ frame_needed = 0, uses_anonymous_args = 0
4736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11333 .loc 1 4736 3 view .LVU3985
4737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11334 .loc 1 4737 3 view .LVU3986
4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11335 .loc 1 4740 3 view .LVU3987
4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11336 .loc 1 4740 3 view .LVU3988
11337 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
11338 0004 012B cmp r3, #1
11339 0006 00F0B980 beq .L726
4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
11340 .loc 1 4735 1 is_stmt 0 discriminator 2 view .LVU3989
11341 000a 70B5 push {r4, r5, r6, lr}
ARM GAS /tmp/cczJHHnF.s page 385
11342 .cfi_def_cfa_offset 16
11343 .cfi_offset 4, -16
11344 .cfi_offset 5, -12
11345 .cfi_offset 6, -8
11346 .cfi_offset 14, -4
11347 000c 82B0 sub sp, sp, #8
11348 .cfi_def_cfa_offset 24
11349 000e 0446 mov r4, r0
11350 0010 0D46 mov r5, r1
11351 0012 1646 mov r6, r2
4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11352 .loc 1 4740 3 is_stmt 1 discriminator 2 view .LVU3990
11353 0014 0123 movs r3, #1
11354 0016 80F84030 strb r3, [r0, #64]
4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11355 .loc 1 4740 3 discriminator 2 view .LVU3991
4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11356 .loc 1 4742 3 discriminator 2 view .LVU3992
4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11357 .loc 1 4742 6 is_stmt 0 discriminator 2 view .LVU3993
11358 001a 11F0100F tst r1, #16
11359 001e 02D0 beq .L714
4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11360 .loc 1 4742 58 discriminator 1 view .LVU3994
11361 0020 12F0100F tst r2, #16
11362 0024 22D1 bne .L731
11363 .L714:
4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11364 .loc 1 4756 8 is_stmt 1 view .LVU3995
4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11365 .loc 1 4756 11 is_stmt 0 view .LVU3996
11366 0026 15F0040F tst r5, #4
11367 002a 29D0 beq .L716
4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11368 .loc 1 4756 65 discriminator 1 view .LVU3997
11369 002c 16F0040F tst r6, #4
11370 0030 26D0 beq .L716
4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11371 .loc 1 4760 5 is_stmt 1 view .LVU3998
4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11372 .loc 1 4760 16 is_stmt 0 view .LVU3999
11373 0032 25F00405 bic r5, r5, #4
11374 .LVL771:
4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11375 .loc 1 4763 5 is_stmt 1 view .LVU4000
4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11376 .loc 1 4763 36 is_stmt 0 view .LVU4001
11377 0036 2368 ldr r3, [r4]
4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11378 .loc 1 4763 46 view .LVU4002
11379 0038 5A6A ldr r2, [r3, #36]
11380 .LVL772:
4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11381 .loc 1 4763 10 view .LVU4003
11382 003a 636A ldr r3, [r4, #36]
4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11383 .loc 1 4763 21 view .LVU4004
ARM GAS /tmp/cczJHHnF.s page 386
11384 003c 1A70 strb r2, [r3]
4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11385 .loc 1 4766 5 is_stmt 1 view .LVU4005
4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11386 .loc 1 4766 9 is_stmt 0 view .LVU4006
11387 003e 636A ldr r3, [r4, #36]
4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11388 .loc 1 4766 19 view .LVU4007
11389 0040 0133 adds r3, r3, #1
11390 0042 6362 str r3, [r4, #36]
4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11391 .loc 1 4768 5 is_stmt 1 view .LVU4008
4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11392 .loc 1 4768 9 is_stmt 0 view .LVU4009
11393 0044 238D ldrh r3, [r4, #40]
4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11394 .loc 1 4768 19 view .LVU4010
11395 0046 013B subs r3, r3, #1
11396 0048 2385 strh r3, [r4, #40] @ movhi
4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11397 .loc 1 4769 5 is_stmt 1 view .LVU4011
4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11398 .loc 1 4769 9 is_stmt 0 view .LVU4012
11399 004a 638D ldrh r3, [r4, #42]
11400 004c 9BB2 uxth r3, r3
4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11401 .loc 1 4769 20 view .LVU4013
11402 004e 013B subs r3, r3, #1
11403 0050 9BB2 uxth r3, r3
11404 0052 6385 strh r3, [r4, #42] @ movhi
11405 .LVL773:
11406 .L715:
4856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11407 .loc 1 4856 3 is_stmt 1 view .LVU4014
4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11408 .loc 1 4858 3 view .LVU4015
4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11409 .loc 1 4858 6 is_stmt 0 view .LVU4016
11410 0054 15F0200F tst r5, #32
11411 0058 03D0 beq .L725
4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11412 .loc 1 4858 61 discriminator 1 view .LVU4017
11413 005a 16F0200F tst r6, #32
11414 005e 40F08880 bne .L732
11415 .L725:
4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11416 .loc 1 4866 3 is_stmt 1 view .LVU4018
4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11417 .loc 1 4866 3 view .LVU4019
11418 0062 0020 movs r0, #0
11419 0064 84F84000 strb r0, [r4, #64]
4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11420 .loc 1 4866 3 view .LVU4020
4868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11421 .loc 1 4868 3 view .LVU4021
4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11422 .loc 1 4869 1 is_stmt 0 view .LVU4022
ARM GAS /tmp/cczJHHnF.s page 387
11423 0068 02B0 add sp, sp, #8
11424 .cfi_remember_state
11425 .cfi_def_cfa_offset 16
11426 @ sp needed
11427 006a 70BD pop {r4, r5, r6, pc}
11428 .LVL774:
11429 .L731:
11430 .cfi_restore_state
4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11431 .loc 1 4746 5 is_stmt 1 view .LVU4023
11432 006c 0368 ldr r3, [r0]
11433 006e 1022 movs r2, #16
11434 .LVL775:
4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11435 .loc 1 4746 5 is_stmt 0 view .LVU4024
11436 0070 DA61 str r2, [r3, #28]
4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11437 .loc 1 4751 5 is_stmt 1 view .LVU4025
4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11438 .loc 1 4751 9 is_stmt 0 view .LVU4026
11439 0072 436C ldr r3, [r0, #68]
4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11440 .loc 1 4751 21 view .LVU4027
11441 0074 43F00403 orr r3, r3, #4
11442 0078 4364 str r3, [r0, #68]
4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11443 .loc 1 4754 5 is_stmt 1 view .LVU4028
11444 007a FFF7FEFF bl I2C_Flush_TXDR
11445 .LVL776:
4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11446 .loc 1 4754 5 is_stmt 0 view .LVU4029
11447 007e E9E7 b .L715
11448 .LVL777:
11449 .L716:
4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
11450 .loc 1 4771 8 is_stmt 1 view .LVU4030
4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
11451 .loc 1 4771 11 is_stmt 0 view .LVU4031
11452 0080 15F0020F tst r5, #2
11453 0084 12D0 beq .L717
4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
11454 .loc 1 4771 65 discriminator 1 view .LVU4032
11455 0086 16F0020F tst r6, #2
11456 008a 0FD0 beq .L717
4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11457 .loc 1 4775 5 is_stmt 1 view .LVU4033
4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11458 .loc 1 4775 33 is_stmt 0 view .LVU4034
11459 008c 626A ldr r2, [r4, #36]
11460 .LVL778:
4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11461 .loc 1 4775 9 view .LVU4035
11462 008e 2368 ldr r3, [r4]
4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11463 .loc 1 4775 28 view .LVU4036
11464 0090 1278 ldrb r2, [r2] @ zero_extendqisi2
4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 388
11465 .loc 1 4775 26 view .LVU4037
11466 0092 9A62 str r2, [r3, #40]
4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11467 .loc 1 4778 5 is_stmt 1 view .LVU4038
4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11468 .loc 1 4778 9 is_stmt 0 view .LVU4039
11469 0094 636A ldr r3, [r4, #36]
4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11470 .loc 1 4778 19 view .LVU4040
11471 0096 0133 adds r3, r3, #1
11472 0098 6362 str r3, [r4, #36]
4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11473 .loc 1 4780 5 is_stmt 1 view .LVU4041
4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11474 .loc 1 4780 9 is_stmt 0 view .LVU4042
11475 009a 238D ldrh r3, [r4, #40]
4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11476 .loc 1 4780 19 view .LVU4043
11477 009c 013B subs r3, r3, #1
11478 009e 2385 strh r3, [r4, #40] @ movhi
4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11479 .loc 1 4781 5 is_stmt 1 view .LVU4044
4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11480 .loc 1 4781 9 is_stmt 0 view .LVU4045
11481 00a0 638D ldrh r3, [r4, #42]
11482 00a2 9BB2 uxth r3, r3
4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11483 .loc 1 4781 20 view .LVU4046
11484 00a4 013B subs r3, r3, #1
11485 00a6 9BB2 uxth r3, r3
11486 00a8 6385 strh r3, [r4, #42] @ movhi
11487 00aa D3E7 b .L715
11488 .LVL779:
11489 .L717:
4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
11490 .loc 1 4783 8 is_stmt 1 view .LVU4047
4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
11491 .loc 1 4783 11 is_stmt 0 view .LVU4048
11492 00ac 15F0800F tst r5, #128
11493 00b0 3FD0 beq .L718
4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
11494 .loc 1 4783 64 discriminator 1 view .LVU4049
11495 00b2 16F0400F tst r6, #64
11496 00b6 3CD0 beq .L718
4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11497 .loc 1 4786 5 is_stmt 1 view .LVU4050
4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11498 .loc 1 4786 14 is_stmt 0 view .LVU4051
11499 00b8 638D ldrh r3, [r4, #42]
11500 00ba 9BB2 uxth r3, r3
4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11501 .loc 1 4786 8 view .LVU4052
11502 00bc 5BB3 cbz r3, .L719
4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11503 .loc 1 4786 41 discriminator 1 view .LVU4053
11504 00be 238D ldrh r3, [r4, #40]
4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 389
11505 .loc 1 4786 33 discriminator 1 view .LVU4054
11506 00c0 4BBB cbnz r3, .L719
4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11507 .loc 1 4788 7 is_stmt 1 view .LVU4055
4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11508 .loc 1 4788 35 is_stmt 0 view .LVU4056
11509 00c2 2368 ldr r3, [r4]
4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11510 .loc 1 4788 45 view .LVU4057
11511 00c4 5968 ldr r1, [r3, #4]
11512 .LVL780:
4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11513 .loc 1 4788 18 view .LVU4058
11514 00c6 C1F30901 ubfx r1, r1, #0, #10
11515 .LVL781:
4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11516 .loc 1 4790 7 is_stmt 1 view .LVU4059
4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11517 .loc 1 4790 15 is_stmt 0 view .LVU4060
11518 00ca 638D ldrh r3, [r4, #42]
11519 00cc 9BB2 uxth r3, r3
4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11520 .loc 1 4790 10 view .LVU4061
11521 00ce FF2B cmp r3, #255
11522 00d0 0ED8 bhi .L733
4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
11523 .loc 1 4797 9 is_stmt 1 view .LVU4062
4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
11524 .loc 1 4797 30 is_stmt 0 view .LVU4063
11525 00d2 628D ldrh r2, [r4, #42]
11526 .LVL782:
4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
11527 .loc 1 4797 30 view .LVU4064
11528 00d4 92B2 uxth r2, r2
4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
11529 .loc 1 4797 24 view .LVU4065
11530 00d6 2285 strh r2, [r4, #40] @ movhi
4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11531 .loc 1 4798 9 is_stmt 1 view .LVU4066
4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11532 .loc 1 4798 17 is_stmt 0 view .LVU4067
11533 00d8 E36A ldr r3, [r4, #44]
4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11534 .loc 1 4798 12 view .LVU4068
11535 00da 13F5803F cmn r3, #65536
11536 00de 11D0 beq .L721
4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
11537 .loc 1 4800 11 is_stmt 1 view .LVU4069
4801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11538 .loc 1 4801 34 is_stmt 0 view .LVU4070
11539 00e0 E36A ldr r3, [r4, #44]
4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
11540 .loc 1 4800 11 view .LVU4071
11541 00e2 0020 movs r0, #0
11542 .LVL783:
4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
11543 .loc 1 4800 11 view .LVU4072
ARM GAS /tmp/cczJHHnF.s page 390
11544 00e4 0090 str r0, [sp]
11545 00e6 D2B2 uxtb r2, r2
11546 00e8 2046 mov r0, r4
11547 00ea FFF7FEFF bl I2C_TransferConfig
11548 .LVL784:
4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
11549 .loc 1 4800 11 view .LVU4073
11550 00ee B1E7 b .L715
11551 .LVL785:
11552 .L733:
4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
11553 .loc 1 4792 9 is_stmt 1 view .LVU4074
4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
11554 .loc 1 4792 24 is_stmt 0 view .LVU4075
11555 00f0 FF22 movs r2, #255
11556 .LVL786:
4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
11557 .loc 1 4792 24 view .LVU4076
11558 00f2 2285 strh r2, [r4, #40] @ movhi
4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11559 .loc 1 4793 9 is_stmt 1 view .LVU4077
11560 00f4 0023 movs r3, #0
11561 00f6 0093 str r3, [sp]
11562 00f8 4FF08073 mov r3, #16777216
11563 00fc 2046 mov r0, r4
11564 .LVL787:
4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11565 .loc 1 4793 9 is_stmt 0 view .LVU4078
11566 00fe FFF7FEFF bl I2C_TransferConfig
11567 .LVL788:
4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11568 .loc 1 4793 9 view .LVU4079
11569 0102 A7E7 b .L715
11570 .LVL789:
11571 .L721:
4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
11572 .loc 1 4805 11 is_stmt 1 view .LVU4080
11573 0104 0023 movs r3, #0
11574 0106 0093 str r3, [sp]
11575 0108 4FF00073 mov r3, #33554432
11576 010c D2B2 uxtb r2, r2
11577 010e 2046 mov r0, r4
11578 .LVL790:
4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
11579 .loc 1 4805 11 is_stmt 0 view .LVU4081
11580 0110 FFF7FEFF bl I2C_TransferConfig
11581 .LVL791:
4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
11582 .loc 1 4805 11 view .LVU4082
11583 0114 9EE7 b .L715
11584 .LVL792:
11585 .L719:
4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11586 .loc 1 4813 7 is_stmt 1 view .LVU4083
4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11587 .loc 1 4813 11 is_stmt 0 view .LVU4084
11588 0116 2368 ldr r3, [r4]
ARM GAS /tmp/cczJHHnF.s page 391
11589 0118 5B68 ldr r3, [r3, #4]
4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11590 .loc 1 4813 10 view .LVU4085
11591 011a 13F0007F tst r3, #33554432
11592 011e 03D1 bne .L722
4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11593 .loc 1 4816 9 is_stmt 1 view .LVU4086
11594 0120 2046 mov r0, r4
11595 .LVL793:
4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11596 .loc 1 4816 9 is_stmt 0 view .LVU4087
11597 0122 FFF7FEFF bl I2C_ITMasterSeqCplt
11598 .LVL794:
4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11599 .loc 1 4816 9 view .LVU4088
11600 0126 95E7 b .L715
11601 .LVL795:
11602 .L722:
4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11603 .loc 1 4822 9 is_stmt 1 view .LVU4089
11604 0128 4021 movs r1, #64
11605 .LVL796:
4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11606 .loc 1 4822 9 is_stmt 0 view .LVU4090
11607 012a 2046 mov r0, r4
11608 .LVL797:
4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11609 .loc 1 4822 9 view .LVU4091
11610 012c FFF7FEFF bl I2C_ITError
11611 .LVL798:
4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11612 .loc 1 4822 9 view .LVU4092
11613 0130 90E7 b .L715
11614 .LVL799:
11615 .L718:
4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
11616 .loc 1 4826 8 is_stmt 1 view .LVU4093
4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
11617 .loc 1 4826 11 is_stmt 0 view .LVU4094
11618 0132 15F0400F tst r5, #64
11619 0136 8DD0 beq .L715
4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
11620 .loc 1 4826 63 discriminator 1 view .LVU4095
11621 0138 16F0400F tst r6, #64
11622 013c 8AD0 beq .L715
4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11623 .loc 1 4829 5 is_stmt 1 view .LVU4096
4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11624 .loc 1 4829 13 is_stmt 0 view .LVU4097
11625 013e 638D ldrh r3, [r4, #42]
11626 0140 9BB2 uxth r3, r3
4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11627 .loc 1 4829 8 view .LVU4098
11628 0142 8BB9 cbnz r3, .L723
4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11629 .loc 1 4831 7 is_stmt 1 view .LVU4099
4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/cczJHHnF.s page 392
11630 .loc 1 4831 11 is_stmt 0 view .LVU4100
11631 0144 2368 ldr r3, [r4]
11632 0146 5A68 ldr r2, [r3, #4]
11633 .LVL800:
4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11634 .loc 1 4831 10 view .LVU4101
11635 0148 12F0007F tst r2, #33554432
11636 014c 82D1 bne .L715
4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11637 .loc 1 4834 9 is_stmt 1 view .LVU4102
4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11638 .loc 1 4834 17 is_stmt 0 view .LVU4103
11639 014e E26A ldr r2, [r4, #44]
4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11640 .loc 1 4834 12 view .LVU4104
11641 0150 12F5803F cmn r2, #65536
11642 0154 04D1 bne .L724
4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11643 .loc 1 4837 11 is_stmt 1 view .LVU4105
4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11644 .loc 1 4837 25 is_stmt 0 view .LVU4106
11645 0156 5A68 ldr r2, [r3, #4]
4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11646 .loc 1 4837 31 view .LVU4107
11647 0158 42F48042 orr r2, r2, #16384
11648 015c 5A60 str r2, [r3, #4]
11649 015e 79E7 b .L715
11650 .L724:
4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11651 .loc 1 4842 11 is_stmt 1 view .LVU4108
11652 0160 2046 mov r0, r4
11653 .LVL801:
4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11654 .loc 1 4842 11 is_stmt 0 view .LVU4109
11655 0162 FFF7FEFF bl I2C_ITMasterSeqCplt
11656 .LVL802:
4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11657 .loc 1 4842 11 view .LVU4110
11658 0166 75E7 b .L715
11659 .LVL803:
11660 .L723:
4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11661 .loc 1 4850 7 is_stmt 1 view .LVU4111
11662 0168 4021 movs r1, #64
11663 .LVL804:
4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11664 .loc 1 4850 7 is_stmt 0 view .LVU4112
11665 016a 2046 mov r0, r4
11666 .LVL805:
4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11667 .loc 1 4850 7 view .LVU4113
11668 016c FFF7FEFF bl I2C_ITError
11669 .LVL806:
4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11670 .loc 1 4850 7 view .LVU4114
11671 0170 70E7 b .L715
11672 .LVL807:
ARM GAS /tmp/cczJHHnF.s page 393
11673 .L732:
4862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11674 .loc 1 4862 5 is_stmt 1 view .LVU4115
11675 0172 2946 mov r1, r5
11676 0174 2046 mov r0, r4
11677 0176 FFF7FEFF bl I2C_ITMasterCplt
11678 .LVL808:
11679 017a 72E7 b .L725
11680 .LVL809:
11681 .L726:
11682 .cfi_def_cfa_offset 0
11683 .cfi_restore 4
11684 .cfi_restore 5
11685 .cfi_restore 6
11686 .cfi_restore 14
4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11687 .loc 1 4740 3 is_stmt 0 view .LVU4116
11688 017c 0220 movs r0, #2
11689 .LVL810:
4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11690 .loc 1 4869 1 view .LVU4117
11691 017e 7047 bx lr
11692 .cfi_endproc
11693 .LFE179:
11695 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
11696 .align 1
11697 .syntax unified
11698 .thumb
11699 .thumb_func
11701 I2C_Slave_ISR_DMA:
11702 .LVL811:
11703 .LFB182:
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11704 .loc 1 5162 1 is_stmt 1 view -0
11705 .cfi_startproc
11706 @ args = 0, pretend = 0, frame = 0
11707 @ frame_needed = 0, uses_anonymous_args = 0
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11708 .loc 1 5162 1 is_stmt 0 view .LVU4119
11709 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
11710 .cfi_def_cfa_offset 24
11711 .cfi_offset 3, -24
11712 .cfi_offset 4, -20
11713 .cfi_offset 5, -16
11714 .cfi_offset 6, -12
11715 .cfi_offset 7, -8
11716 .cfi_offset 14, -4
5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
11717 .loc 1 5163 3 is_stmt 1 view .LVU4120
5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
11718 .loc 1 5163 12 is_stmt 0 view .LVU4121
11719 0002 C76A ldr r7, [r0, #44]
11720 .LVL812:
5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
11721 .loc 1 5164 3 is_stmt 1 view .LVU4122
5165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11722 .loc 1 5165 3 view .LVU4123
ARM GAS /tmp/cczJHHnF.s page 394
5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11723 .loc 1 5168 3 view .LVU4124
5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11724 .loc 1 5168 3 view .LVU4125
11725 0004 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
11726 0008 012B cmp r3, #1
11727 000a 00F08780 beq .L751
11728 000e 0446 mov r4, r0
11729 0010 0D46 mov r5, r1
11730 0012 1646 mov r6, r2
5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11731 .loc 1 5168 3 discriminator 2 view .LVU4126
11732 0014 0123 movs r3, #1
11733 0016 80F84030 strb r3, [r0, #64]
5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11734 .loc 1 5168 3 discriminator 2 view .LVU4127
5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11735 .loc 1 5171 3 discriminator 2 view .LVU4128
5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11736 .loc 1 5171 6 is_stmt 0 discriminator 2 view .LVU4129
11737 001a 11F0200F tst r1, #32
11738 001e 02D0 beq .L736
5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11739 .loc 1 5171 58 discriminator 1 view .LVU4130
11740 0020 12F0200F tst r2, #32
11741 0024 12D1 bne .L756
11742 .LVL813:
11743 .L736:
5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11744 .loc 1 5178 3 is_stmt 1 view .LVU4131
5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11745 .loc 1 5178 6 is_stmt 0 view .LVU4132
11746 0026 15F0100F tst r5, #16
11747 002a 68D0 beq .L737
5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11748 .loc 1 5178 55 discriminator 1 view .LVU4133
11749 002c 16F0100F tst r6, #16
11750 0030 65D0 beq .L737
5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
11751 .loc 1 5185 5 is_stmt 1 view .LVU4134
5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
11752 .loc 1 5185 8 is_stmt 0 view .LVU4135
11753 0032 16F4404F tst r6, #49152
11754 0036 5ED0 beq .L738
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11755 .loc 1 5189 7 is_stmt 1 view .LVU4136
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11756 .loc 1 5189 15 is_stmt 0 view .LVU4137
11757 0038 E36B ldr r3, [r4, #60]
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11758 .loc 1 5189 10 view .LVU4138
11759 003a 53B1 cbz r3, .L752
5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11760 .loc 1 5191 9 is_stmt 1 view .LVU4139
5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11761 .loc 1 5191 12 is_stmt 0 view .LVU4140
11762 003c 16F40042 ands r2, r6, #32768
ARM GAS /tmp/cczJHHnF.s page 395
11763 0040 08D0 beq .L739
5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11764 .loc 1 5193 11 is_stmt 1 view .LVU4141
5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11765 .loc 1 5193 15 is_stmt 0 view .LVU4142
11766 0042 1B68 ldr r3, [r3]
11767 0044 5B68 ldr r3, [r3, #4]
5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11768 .loc 1 5193 14 view .LVU4143
11769 0046 3BB3 cbz r3, .L753
5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
11770 .loc 1 5164 12 view .LVU4144
11771 0048 0022 movs r2, #0
11772 004a 03E0 b .L739
11773 .LVL814:
11774 .L756:
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11775 .loc 1 5175 5 is_stmt 1 view .LVU4145
11776 004c FFF7FEFF bl I2C_ITSlaveCplt
11777 .LVL815:
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11778 .loc 1 5175 5 is_stmt 0 view .LVU4146
11779 0050 E9E7 b .L736
11780 .L752:
5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
11781 .loc 1 5164 12 view .LVU4147
11782 0052 0022 movs r2, #0
11783 .L739:
11784 .LVL816:
5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11785 .loc 1 5201 7 is_stmt 1 view .LVU4148
5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11786 .loc 1 5201 15 is_stmt 0 view .LVU4149
11787 0054 A36B ldr r3, [r4, #56]
5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11788 .loc 1 5201 10 view .LVU4150
11789 0056 2BB1 cbz r3, .L740
5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11790 .loc 1 5203 9 is_stmt 1 view .LVU4151
5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11791 .loc 1 5203 12 is_stmt 0 view .LVU4152
11792 0058 16F4804F tst r6, #16384
11793 005c 02D0 beq .L740
5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11794 .loc 1 5205 11 is_stmt 1 view .LVU4153
5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11795 .loc 1 5205 15 is_stmt 0 view .LVU4154
11796 005e 1B68 ldr r3, [r3]
11797 0060 5B68 ldr r3, [r3, #4]
5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11798 .loc 1 5205 14 view .LVU4155
11799 0062 DBB1 cbz r3, .L741
11800 .L740:
5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11801 .loc 1 5212 7 is_stmt 1 view .LVU4156
5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11802 .loc 1 5212 10 is_stmt 0 view .LVU4157
ARM GAS /tmp/cczJHHnF.s page 396
11803 0064 012A cmp r2, #1
11804 0066 19D0 beq .L741
5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11805 .loc 1 5243 9 is_stmt 1 view .LVU4158
11806 0068 2368 ldr r3, [r4]
11807 006a 1022 movs r2, #16
11808 .LVL817:
5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11809 .loc 1 5243 9 is_stmt 0 view .LVU4159
11810 006c DA61 str r2, [r3, #28]
5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11811 .loc 1 5246 9 is_stmt 1 view .LVU4160
5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11812 .loc 1 5246 13 is_stmt 0 view .LVU4161
11813 006e 636C ldr r3, [r4, #68]
5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11814 .loc 1 5246 25 view .LVU4162
11815 0070 43F00403 orr r3, r3, #4
11816 0074 6364 str r3, [r4, #68]
5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11817 .loc 1 5249 9 is_stmt 1 view .LVU4163
5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11818 .loc 1 5249 18 is_stmt 0 view .LVU4164
11819 0076 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11820 007a DBB2 uxtb r3, r3
11821 .LVL818:
5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11822 .loc 1 5251 9 is_stmt 1 view .LVU4165
5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11823 .loc 1 5251 12 is_stmt 0 view .LVU4166
11824 007c 17B1 cbz r7, .L746
5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11825 .loc 1 5251 45 discriminator 1 view .LVU4167
11826 007e B7F1807F cmp r7, #16777216
11827 0082 42D1 bne .L744
11828 .L746:
5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11829 .loc 1 5253 11 is_stmt 1 view .LVU4168
11830 0084 213B subs r3, r3, #33
11831 .LVL819:
5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11832 .loc 1 5253 11 is_stmt 0 view .LVU4169
11833 0086 092B cmp r3, #9
11834 0088 2DD8 bhi .L747
11835 008a DFE803F0 tbb [pc, r3]
11836 .L749:
11837 008e 2A .byte (.L750-.L749)/2
11838 008f 31 .byte (.L748-.L749)/2
11839 0090 2C .byte (.L747-.L749)/2
11840 0091 2C .byte (.L747-.L749)/2
11841 0092 2C .byte (.L747-.L749)/2
11842 0093 2C .byte (.L747-.L749)/2
11843 0094 2C .byte (.L747-.L749)/2
11844 0095 2C .byte (.L747-.L749)/2
11845 0096 2A .byte (.L750-.L749)/2
11846 0097 31 .byte (.L748-.L749)/2
11847 .LVL820:
ARM GAS /tmp/cczJHHnF.s page 397
11848 .p2align 1
11849 .L753:
5195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11850 .loc 1 5195 26 view .LVU4170
11851 0098 0122 movs r2, #1
11852 009a DBE7 b .L739
11853 .LVL821:
11854 .L741:
5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11855 .loc 1 5214 9 is_stmt 1 view .LVU4171
5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11856 .loc 1 5214 18 is_stmt 0 view .LVU4172
11857 009c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11858 00a0 DBB2 uxtb r3, r3
5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11859 .loc 1 5214 12 view .LVU4173
11860 00a2 282B cmp r3, #40
11861 00a4 08D0 beq .L757
11862 .L743:
5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11863 .loc 1 5221 14 is_stmt 1 view .LVU4174
5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11864 .loc 1 5221 23 is_stmt 0 view .LVU4175
11865 00a6 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11866 00aa DBB2 uxtb r3, r3
5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11867 .loc 1 5221 17 view .LVU4176
11868 00ac 292B cmp r3, #41
11869 00ae 0BD0 beq .L758
11870 .L745:
5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11871 .loc 1 5236 11 is_stmt 1 view .LVU4177
11872 00b0 2368 ldr r3, [r4]
11873 00b2 1022 movs r2, #16
11874 00b4 DA61 str r2, [r3, #28]
11875 00b6 28E0 b .L744
11876 .L757:
5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11877 .loc 1 5214 51 is_stmt 0 discriminator 1 view .LVU4178
11878 00b8 B7F1007F cmp r7, #33554432
11879 00bc F3D1 bne .L743
5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11880 .loc 1 5219 11 is_stmt 1 view .LVU4179
11881 00be 2946 mov r1, r5
11882 00c0 2046 mov r0, r4
11883 00c2 FFF7FEFF bl I2C_ITListenCplt
11884 .LVL822:
11885 00c6 20E0 b .L744
11886 .L758:
5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11887 .loc 1 5221 64 is_stmt 0 discriminator 1 view .LVU4180
11888 00c8 17F5803F cmn r7, #65536
11889 00cc F0D0 beq .L745
5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11890 .loc 1 5224 11 is_stmt 1 view .LVU4181
11891 00ce 2368 ldr r3, [r4]
11892 00d0 1022 movs r2, #16
ARM GAS /tmp/cczJHHnF.s page 398
11893 00d2 DA61 str r2, [r3, #28]
5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11894 .loc 1 5227 11 view .LVU4182
11895 00d4 2046 mov r0, r4
11896 00d6 FFF7FEFF bl I2C_Flush_TXDR
11897 .LVL823:
5231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11898 .loc 1 5231 11 view .LVU4183
11899 00da 2046 mov r0, r4
11900 00dc FFF7FEFF bl I2C_ITSlaveSeqCplt
11901 .LVL824:
11902 00e0 13E0 b .L744
11903 .LVL825:
11904 .L750:
5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11905 .loc 1 5255 13 view .LVU4184
5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11906 .loc 1 5255 33 is_stmt 0 view .LVU4185
11907 00e2 2123 movs r3, #33
11908 .LVL826:
5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11909 .loc 1 5255 33 view .LVU4186
11910 00e4 2363 str r3, [r4, #48]
11911 .L747:
5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11912 .loc 1 5267 11 is_stmt 1 view .LVU4187
5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11913 .loc 1 5267 33 is_stmt 0 view .LVU4188
11914 00e6 616C ldr r1, [r4, #68]
5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11915 .loc 1 5267 11 view .LVU4189
11916 00e8 2046 mov r0, r4
11917 00ea FFF7FEFF bl I2C_ITError
11918 .LVL827:
11919 00ee 0CE0 b .L744
11920 .LVL828:
11921 .L748:
5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11922 .loc 1 5259 13 is_stmt 1 view .LVU4190
5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11923 .loc 1 5259 33 is_stmt 0 view .LVU4191
11924 00f0 2223 movs r3, #34
11925 .LVL829:
5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11926 .loc 1 5259 33 view .LVU4192
11927 00f2 2363 str r3, [r4, #48]
11928 00f4 F7E7 b .L747
11929 .LVL830:
11930 .L738:
5274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11931 .loc 1 5274 7 is_stmt 1 view .LVU4193
11932 00f6 2368 ldr r3, [r4]
11933 00f8 1022 movs r2, #16
11934 00fa DA61 str r2, [r3, #28]
11935 00fc 05E0 b .L744
11936 .L737:
5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
ARM GAS /tmp/cczJHHnF.s page 399
11937 .loc 1 5277 8 view .LVU4194
5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
11938 .loc 1 5277 11 is_stmt 0 view .LVU4195
11939 00fe 15F0080F tst r5, #8
11940 0102 02D0 beq .L744
5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
11941 .loc 1 5277 62 discriminator 1 view .LVU4196
11942 0104 16F0080F tst r6, #8
11943 0108 03D1 bne .L759
11944 .LVL831:
11945 .L744:
5285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11946 .loc 1 5285 3 is_stmt 1 view .LVU4197
5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11947 .loc 1 5288 3 view .LVU4198
5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11948 .loc 1 5288 3 view .LVU4199
11949 010a 0020 movs r0, #0
11950 010c 84F84000 strb r0, [r4, #64]
5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11951 .loc 1 5288 3 view .LVU4200
5290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11952 .loc 1 5290 3 view .LVU4201
11953 .LVL832:
11954 .L735:
5291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11955 .loc 1 5291 1 is_stmt 0 view .LVU4202
11956 0110 F8BD pop {r3, r4, r5, r6, r7, pc}
11957 .LVL833:
11958 .L759:
5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11959 .loc 1 5280 5 is_stmt 1 view .LVU4203
11960 0112 2946 mov r1, r5
11961 0114 2046 mov r0, r4
11962 0116 FFF7FEFF bl I2C_ITAddrCplt
11963 .LVL834:
11964 011a F6E7 b .L744
11965 .LVL835:
11966 .L751:
5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11967 .loc 1 5168 3 is_stmt 0 view .LVU4204
11968 011c 0220 movs r0, #2
11969 .LVL836:
5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11970 .loc 1 5168 3 view .LVU4205
11971 011e F7E7 b .L735
11972 .cfi_endproc
11973 .LFE182:
11975 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
11976 .align 1
11977 .syntax unified
11978 .thumb
11979 .thumb_func
11981 I2C_Master_ISR_DMA:
11982 .LVL837:
11983 .LFB181:
5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
ARM GAS /tmp/cczJHHnF.s page 400
11984 .loc 1 5022 1 is_stmt 1 view -0
11985 .cfi_startproc
11986 @ args = 0, pretend = 0, frame = 0
11987 @ frame_needed = 0, uses_anonymous_args = 0
5023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
11988 .loc 1 5023 3 view .LVU4207
5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11989 .loc 1 5024 3 view .LVU4208
5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11990 .loc 1 5027 3 view .LVU4209
5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11991 .loc 1 5027 3 view .LVU4210
11992 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
11993 0004 012B cmp r3, #1
11994 0006 00F09A80 beq .L773
5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
11995 .loc 1 5022 1 is_stmt 0 discriminator 2 view .LVU4211
11996 000a 10B5 push {r4, lr}
11997 .cfi_def_cfa_offset 8
11998 .cfi_offset 4, -8
11999 .cfi_offset 14, -4
12000 000c 82B0 sub sp, sp, #8
12001 .cfi_def_cfa_offset 16
12002 000e 0446 mov r4, r0
5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12003 .loc 1 5027 3 is_stmt 1 discriminator 2 view .LVU4212
12004 0010 0123 movs r3, #1
12005 0012 80F84030 strb r3, [r0, #64]
5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12006 .loc 1 5027 3 discriminator 2 view .LVU4213
5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12007 .loc 1 5029 3 discriminator 2 view .LVU4214
5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12008 .loc 1 5029 6 is_stmt 0 discriminator 2 view .LVU4215
12009 0016 11F0100F tst r1, #16
12010 001a 02D0 beq .L762
5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12011 .loc 1 5029 55 discriminator 1 view .LVU4216
12012 001c 12F0100F tst r2, #16
12013 0020 32D1 bne .L779
12014 .L762:
5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12015 .loc 1 5046 8 is_stmt 1 view .LVU4217
5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12016 .loc 1 5046 11 is_stmt 0 view .LVU4218
12017 0022 11F0800F tst r1, #128
12018 0026 60D0 beq .L764
5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12019 .loc 1 5046 61 discriminator 1 view .LVU4219
12020 0028 12F0400F tst r2, #64
12021 002c 5DD0 beq .L764
5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12022 .loc 1 5050 5 is_stmt 1 view .LVU4220
12023 002e 2268 ldr r2, [r4]
12024 .LVL838:
5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12025 .loc 1 5050 5 is_stmt 0 view .LVU4221
ARM GAS /tmp/cczJHHnF.s page 401
12026 0030 1368 ldr r3, [r2]
12027 0032 23F04003 bic r3, r3, #64
12028 0036 1360 str r3, [r2]
5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12029 .loc 1 5052 5 is_stmt 1 view .LVU4222
5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12030 .loc 1 5052 13 is_stmt 0 view .LVU4223
12031 0038 638D ldrh r3, [r4, #42]
12032 003a 9BB2 uxth r3, r3
5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12033 .loc 1 5052 8 view .LVU4224
12034 003c 002B cmp r3, #0
12035 003e 46D0 beq .L765
5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12036 .loc 1 5055 7 is_stmt 1 view .LVU4225
5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12037 .loc 1 5055 35 is_stmt 0 view .LVU4226
12038 0040 2368 ldr r3, [r4]
5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12039 .loc 1 5055 45 view .LVU4227
12040 0042 5968 ldr r1, [r3, #4]
12041 .LVL839:
5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12042 .loc 1 5055 18 view .LVU4228
12043 0044 C1F30901 ubfx r1, r1, #0, #10
12044 .LVL840:
5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12045 .loc 1 5058 7 is_stmt 1 view .LVU4229
5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12046 .loc 1 5058 15 is_stmt 0 view .LVU4230
12047 0048 638D ldrh r3, [r4, #42]
12048 004a 9BB2 uxth r3, r3
5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12049 .loc 1 5058 10 view .LVU4231
12050 004c FF2B cmp r3, #255
12051 004e 2DD9 bls .L766
5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
12052 .loc 1 5060 9 is_stmt 1 view .LVU4232
5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
12053 .loc 1 5060 24 is_stmt 0 view .LVU4233
12054 0050 FF23 movs r3, #255
12055 0052 2385 strh r3, [r4, #40] @ movhi
5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12056 .loc 1 5061 9 is_stmt 1 view .LVU4234
12057 .LVL841:
5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12058 .loc 1 5061 18 is_stmt 0 view .LVU4235
12059 0054 4FF08073 mov r3, #16777216
12060 .LVL842:
12061 .L767:
5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12062 .loc 1 5077 7 is_stmt 1 view .LVU4236
12063 0058 0022 movs r2, #0
12064 005a 0092 str r2, [sp]
12065 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
12066 0060 2046 mov r0, r4
12067 .LVL843:
ARM GAS /tmp/cczJHHnF.s page 402
5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12068 .loc 1 5077 7 is_stmt 0 view .LVU4237
12069 0062 FFF7FEFF bl I2C_TransferConfig
12070 .LVL844:
5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12071 .loc 1 5080 7 is_stmt 1 view .LVU4238
5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12072 .loc 1 5080 11 is_stmt 0 view .LVU4239
12073 0066 638D ldrh r3, [r4, #42]
12074 0068 9BB2 uxth r3, r3
5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12075 .loc 1 5080 30 view .LVU4240
12076 006a 228D ldrh r2, [r4, #40]
5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12077 .loc 1 5080 23 view .LVU4241
12078 006c 9B1A subs r3, r3, r2
12079 006e 9BB2 uxth r3, r3
12080 0070 6385 strh r3, [r4, #42] @ movhi
5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12081 .loc 1 5083 7 is_stmt 1 view .LVU4242
5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12082 .loc 1 5083 15 is_stmt 0 view .LVU4243
12083 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12084 0076 DBB2 uxtb r3, r3
5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12085 .loc 1 5083 10 view .LVU4244
12086 0078 222B cmp r3, #34
12087 007a 22D0 beq .L780
5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12088 .loc 1 5089 9 is_stmt 1 view .LVU4245
5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12089 .loc 1 5089 13 is_stmt 0 view .LVU4246
12090 007c 2268 ldr r2, [r4]
5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12091 .loc 1 5089 23 view .LVU4247
12092 007e 1368 ldr r3, [r2]
5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12093 .loc 1 5089 29 view .LVU4248
12094 0080 43F48043 orr r3, r3, #16384
12095 0084 1360 str r3, [r2]
12096 0086 0CE0 b .L763
12097 .LVL845:
12098 .L779:
5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12099 .loc 1 5033 5 is_stmt 1 view .LVU4249
12100 0088 0368 ldr r3, [r0]
12101 008a 1022 movs r2, #16
12102 .LVL846:
5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12103 .loc 1 5033 5 is_stmt 0 view .LVU4250
12104 008c DA61 str r2, [r3, #28]
5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12105 .loc 1 5036 5 is_stmt 1 view .LVU4251
5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12106 .loc 1 5036 9 is_stmt 0 view .LVU4252
12107 008e 436C ldr r3, [r0, #68]
5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/cczJHHnF.s page 403
12108 .loc 1 5036 21 view .LVU4253
12109 0090 43F00403 orr r3, r3, #4
12110 0094 4364 str r3, [r0, #68]
5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12111 .loc 1 5041 5 is_stmt 1 view .LVU4254
12112 0096 2021 movs r1, #32
12113 .LVL847:
5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12114 .loc 1 5041 5 is_stmt 0 view .LVU4255
12115 0098 FFF7FEFF bl I2C_Enable_IRQ
12116 .LVL848:
5044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12117 .loc 1 5044 5 is_stmt 1 view .LVU4256
12118 009c 2046 mov r0, r4
12119 009e FFF7FEFF bl I2C_Flush_TXDR
12120 .LVL849:
12121 .L763:
5144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12122 .loc 1 5144 3 view .LVU4257
5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12123 .loc 1 5147 3 view .LVU4258
5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12124 .loc 1 5147 3 view .LVU4259
12125 00a2 0020 movs r0, #0
12126 00a4 84F84000 strb r0, [r4, #64]
5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12127 .loc 1 5147 3 view .LVU4260
5149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12128 .loc 1 5149 3 view .LVU4261
5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12129 .loc 1 5150 1 is_stmt 0 view .LVU4262
12130 00a8 02B0 add sp, sp, #8
12131 .cfi_remember_state
12132 .cfi_def_cfa_offset 8
12133 @ sp needed
12134 00aa 10BD pop {r4, pc}
12135 .LVL850:
12136 .L766:
12137 .cfi_restore_state
5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12138 .loc 1 5065 9 is_stmt 1 view .LVU4263
5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12139 .loc 1 5065 30 is_stmt 0 view .LVU4264
12140 00ac 638D ldrh r3, [r4, #42]
5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12141 .loc 1 5065 24 view .LVU4265
12142 00ae 2385 strh r3, [r4, #40] @ movhi
5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12143 .loc 1 5066 9 is_stmt 1 view .LVU4266
5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12144 .loc 1 5066 17 is_stmt 0 view .LVU4267
12145 00b0 E36A ldr r3, [r4, #44]
5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12146 .loc 1 5066 12 view .LVU4268
12147 00b2 13F5803F cmn r3, #65536
12148 00b6 01D0 beq .L774
5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 404
12149 .loc 1 5068 11 is_stmt 1 view .LVU4269
5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12150 .loc 1 5068 20 is_stmt 0 view .LVU4270
12151 00b8 E36A ldr r3, [r4, #44]
12152 .LVL851:
5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12153 .loc 1 5068 20 view .LVU4271
12154 00ba CDE7 b .L767
12155 .LVL852:
12156 .L774:
5072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12157 .loc 1 5072 20 view .LVU4272
12158 00bc 4FF00073 mov r3, #33554432
12159 00c0 CAE7 b .L767
12160 .LVL853:
12161 .L780:
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12162 .loc 1 5085 9 is_stmt 1 view .LVU4273
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12163 .loc 1 5085 13 is_stmt 0 view .LVU4274
12164 00c2 2268 ldr r2, [r4]
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12165 .loc 1 5085 23 view .LVU4275
12166 00c4 1368 ldr r3, [r2]
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12167 .loc 1 5085 29 view .LVU4276
12168 00c6 43F40043 orr r3, r3, #32768
12169 00ca 1360 str r3, [r2]
12170 00cc E9E7 b .L763
12171 .LVL854:
12172 .L765:
5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12173 .loc 1 5095 7 is_stmt 1 view .LVU4277
5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12174 .loc 1 5095 11 is_stmt 0 view .LVU4278
12175 00ce 2368 ldr r3, [r4]
12176 00d0 5B68 ldr r3, [r3, #4]
5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12177 .loc 1 5095 10 view .LVU4279
12178 00d2 13F0007F tst r3, #33554432
12179 00d6 03D1 bne .L769
5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12180 .loc 1 5098 9 is_stmt 1 view .LVU4280
12181 00d8 2046 mov r0, r4
12182 .LVL855:
5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12183 .loc 1 5098 9 is_stmt 0 view .LVU4281
12184 00da FFF7FEFF bl I2C_ITMasterSeqCplt
12185 .LVL856:
5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12186 .loc 1 5098 9 view .LVU4282
12187 00de E0E7 b .L763
12188 .LVL857:
12189 .L769:
5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12190 .loc 1 5104 9 is_stmt 1 view .LVU4283
12191 00e0 4021 movs r1, #64
ARM GAS /tmp/cczJHHnF.s page 405
12192 .LVL858:
5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12193 .loc 1 5104 9 is_stmt 0 view .LVU4284
12194 00e2 2046 mov r0, r4
12195 .LVL859:
5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12196 .loc 1 5104 9 view .LVU4285
12197 00e4 FFF7FEFF bl I2C_ITError
12198 .LVL860:
12199 00e8 DBE7 b .L763
12200 .LVL861:
12201 .L764:
5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12202 .loc 1 5108 8 is_stmt 1 view .LVU4286
5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12203 .loc 1 5108 11 is_stmt 0 view .LVU4287
12204 00ea 11F0400F tst r1, #64
12205 00ee 1CD0 beq .L770
5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12206 .loc 1 5108 60 discriminator 1 view .LVU4288
12207 00f0 12F0400F tst r2, #64
12208 00f4 19D0 beq .L770
5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12209 .loc 1 5111 5 is_stmt 1 view .LVU4289
5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12210 .loc 1 5111 13 is_stmt 0 view .LVU4290
12211 00f6 638D ldrh r3, [r4, #42]
12212 00f8 9BB2 uxth r3, r3
5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12213 .loc 1 5111 8 view .LVU4291
12214 00fa 8BB9 cbnz r3, .L771
5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12215 .loc 1 5113 7 is_stmt 1 view .LVU4292
5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12216 .loc 1 5113 11 is_stmt 0 view .LVU4293
12217 00fc 2368 ldr r3, [r4]
12218 00fe 5A68 ldr r2, [r3, #4]
12219 .LVL862:
5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12220 .loc 1 5113 10 view .LVU4294
12221 0100 12F0007F tst r2, #33554432
12222 0104 CDD1 bne .L763
5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12223 .loc 1 5116 9 is_stmt 1 view .LVU4295
5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12224 .loc 1 5116 17 is_stmt 0 view .LVU4296
12225 0106 E26A ldr r2, [r4, #44]
5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12226 .loc 1 5116 12 view .LVU4297
12227 0108 12F5803F cmn r2, #65536
12228 010c 04D1 bne .L772
5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12229 .loc 1 5119 11 is_stmt 1 view .LVU4298
5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12230 .loc 1 5119 25 is_stmt 0 view .LVU4299
12231 010e 5A68 ldr r2, [r3, #4]
5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 406
12232 .loc 1 5119 31 view .LVU4300
12233 0110 42F48042 orr r2, r2, #16384
12234 0114 5A60 str r2, [r3, #4]
12235 0116 C4E7 b .L763
12236 .L772:
5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12237 .loc 1 5124 11 is_stmt 1 view .LVU4301
12238 0118 2046 mov r0, r4
12239 .LVL863:
5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12240 .loc 1 5124 11 is_stmt 0 view .LVU4302
12241 011a FFF7FEFF bl I2C_ITMasterSeqCplt
12242 .LVL864:
5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12243 .loc 1 5124 11 view .LVU4303
12244 011e C0E7 b .L763
12245 .LVL865:
12246 .L771:
5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12247 .loc 1 5132 7 is_stmt 1 view .LVU4304
12248 0120 4021 movs r1, #64
12249 .LVL866:
5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12250 .loc 1 5132 7 is_stmt 0 view .LVU4305
12251 0122 2046 mov r0, r4
12252 .LVL867:
5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12253 .loc 1 5132 7 view .LVU4306
12254 0124 FFF7FEFF bl I2C_ITError
12255 .LVL868:
5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12256 .loc 1 5132 7 view .LVU4307
12257 0128 BBE7 b .L763
12258 .LVL869:
12259 .L770:
5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12260 .loc 1 5135 8 is_stmt 1 view .LVU4308
5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12261 .loc 1 5135 11 is_stmt 0 view .LVU4309
12262 012a 11F0200F tst r1, #32
12263 012e B8D0 beq .L763
5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12264 .loc 1 5135 63 discriminator 1 view .LVU4310
12265 0130 12F0200F tst r2, #32
12266 0134 B5D0 beq .L763
5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12267 .loc 1 5139 5 is_stmt 1 view .LVU4311
12268 0136 2046 mov r0, r4
12269 .LVL870:
5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12270 .loc 1 5139 5 is_stmt 0 view .LVU4312
12271 0138 FFF7FEFF bl I2C_ITMasterCplt
12272 .LVL871:
5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12273 .loc 1 5139 5 view .LVU4313
12274 013c B1E7 b .L763
12275 .LVL872:
ARM GAS /tmp/cczJHHnF.s page 407
12276 .L773:
12277 .cfi_def_cfa_offset 0
12278 .cfi_restore 4
12279 .cfi_restore 14
5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12280 .loc 1 5027 3 view .LVU4314
12281 013e 0220 movs r0, #2
12282 .LVL873:
5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12283 .loc 1 5150 1 view .LVU4315
12284 0140 7047 bx lr
12285 .cfi_endproc
12286 .LFE181:
12288 .section .text.I2C_DMAError,"ax",%progbits
12289 .align 1
12290 .syntax unified
12291 .thumb
12292 .thumb_func
12294 I2C_DMAError:
12295 .LVL874:
12296 .LFB198:
6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
12297 .loc 1 6312 1 is_stmt 1 view -0
12298 .cfi_startproc
12299 @ args = 0, pretend = 0, frame = 0
12300 @ frame_needed = 0, uses_anonymous_args = 0
6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
12301 .loc 1 6312 1 is_stmt 0 view .LVU4317
12302 0000 08B5 push {r3, lr}
12303 .cfi_def_cfa_offset 8
12304 .cfi_offset 3, -8
12305 .cfi_offset 14, -4
6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12306 .loc 1 6314 3 is_stmt 1 view .LVU4318
6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12307 .loc 1 6314 22 is_stmt 0 view .LVU4319
12308 0002 406A ldr r0, [r0, #36]
12309 .LVL875:
6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12310 .loc 1 6317 3 is_stmt 1 view .LVU4320
6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12311 .loc 1 6317 7 is_stmt 0 view .LVU4321
12312 0004 0268 ldr r2, [r0]
6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12313 .loc 1 6317 17 view .LVU4322
12314 0006 5368 ldr r3, [r2, #4]
6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12315 .loc 1 6317 23 view .LVU4323
12316 0008 43F40043 orr r3, r3, #32768
12317 000c 5360 str r3, [r2, #4]
6320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12318 .loc 1 6320 3 is_stmt 1 view .LVU4324
12319 000e 1021 movs r1, #16
12320 0010 FFF7FEFF bl I2C_ITError
12321 .LVL876:
6321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12322 .loc 1 6321 1 is_stmt 0 view .LVU4325
ARM GAS /tmp/cczJHHnF.s page 408
12323 0014 08BD pop {r3, pc}
12324 .cfi_endproc
12325 .LFE198:
12327 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
12328 .align 1
12329 .syntax unified
12330 .thumb
12331 .thumb_func
12333 I2C_DMAMasterTransmitCplt:
12334 .LVL877:
12335 .LFB194:
6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
12336 .loc 1 6156 1 is_stmt 1 view -0
12337 .cfi_startproc
12338 @ args = 0, pretend = 0, frame = 0
12339 @ frame_needed = 0, uses_anonymous_args = 0
6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
12340 .loc 1 6156 1 is_stmt 0 view .LVU4327
12341 0000 10B5 push {r4, lr}
12342 .cfi_def_cfa_offset 8
12343 .cfi_offset 4, -8
12344 .cfi_offset 14, -4
6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12345 .loc 1 6158 3 is_stmt 1 view .LVU4328
6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12346 .loc 1 6158 22 is_stmt 0 view .LVU4329
12347 0002 446A ldr r4, [r0, #36]
12348 .LVL878:
6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12349 .loc 1 6161 3 is_stmt 1 view .LVU4330
6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12350 .loc 1 6161 7 is_stmt 0 view .LVU4331
12351 0004 2268 ldr r2, [r4]
6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12352 .loc 1 6161 17 view .LVU4332
12353 0006 1368 ldr r3, [r2]
6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12354 .loc 1 6161 23 view .LVU4333
12355 0008 23F48043 bic r3, r3, #16384
12356 000c 1360 str r3, [r2]
6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12357 .loc 1 6164 3 is_stmt 1 view .LVU4334
6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12358 .loc 1 6164 11 is_stmt 0 view .LVU4335
12359 000e 638D ldrh r3, [r4, #42]
12360 0010 9BB2 uxth r3, r3
6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12361 .loc 1 6164 6 view .LVU4336
12362 0012 ABB1 cbz r3, .L790
6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12363 .loc 1 6173 5 is_stmt 1 view .LVU4337
6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12364 .loc 1 6173 9 is_stmt 0 view .LVU4338
12365 0014 616A ldr r1, [r4, #36]
6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12366 .loc 1 6173 27 view .LVU4339
12367 0016 238D ldrh r3, [r4, #40]
ARM GAS /tmp/cczJHHnF.s page 409
6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12368 .loc 1 6173 20 view .LVU4340
12369 0018 1944 add r1, r1, r3
12370 001a 6162 str r1, [r4, #36]
6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12371 .loc 1 6176 5 is_stmt 1 view .LVU4341
6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12372 .loc 1 6176 13 is_stmt 0 view .LVU4342
12373 001c 638D ldrh r3, [r4, #42]
12374 001e 9BB2 uxth r3, r3
6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12375 .loc 1 6176 8 view .LVU4343
12376 0020 FF2B cmp r3, #255
12377 0022 12D9 bls .L786
6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12378 .loc 1 6178 7 is_stmt 1 view .LVU4344
6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12379 .loc 1 6178 22 is_stmt 0 view .LVU4345
12380 0024 FF23 movs r3, #255
12381 0026 2385 strh r3, [r4, #40] @ movhi
12382 .L787:
6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12383 .loc 1 6186 5 is_stmt 1 view .LVU4346
6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12384 .loc 1 6186 81 is_stmt 0 view .LVU4347
12385 0028 2268 ldr r2, [r4]
6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12386 .loc 1 6186 9 view .LVU4348
12387 002a 238D ldrh r3, [r4, #40]
12388 002c 2832 adds r2, r2, #40
12389 002e A06B ldr r0, [r4, #56]
12390 .LVL879:
6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12391 .loc 1 6186 9 view .LVU4349
12392 0030 FFF7FEFF bl HAL_DMA_Start_IT
12393 .LVL880:
6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12394 .loc 1 6186 8 view .LVU4350
12395 0034 60B1 cbz r0, .L788
6190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12396 .loc 1 6190 7 is_stmt 1 view .LVU4351
12397 0036 1021 movs r1, #16
12398 0038 2046 mov r0, r4
12399 003a FFF7FEFF bl I2C_ITError
12400 .LVL881:
12401 .L783:
6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12402 .loc 1 6198 1 is_stmt 0 view .LVU4352
12403 003e 10BD pop {r4, pc}
12404 .LVL882:
12405 .L790:
6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12406 .loc 1 6167 5 is_stmt 1 view .LVU4353
12407 0040 2021 movs r1, #32
12408 0042 2046 mov r0, r4
12409 .LVL883:
6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/cczJHHnF.s page 410
12410 .loc 1 6167 5 is_stmt 0 view .LVU4354
12411 0044 FFF7FEFF bl I2C_Enable_IRQ
12412 .LVL884:
12413 0048 F9E7 b .L783
12414 .LVL885:
12415 .L786:
6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12416 .loc 1 6182 7 is_stmt 1 view .LVU4355
6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12417 .loc 1 6182 28 is_stmt 0 view .LVU4356
12418 004a 638D ldrh r3, [r4, #42]
6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12419 .loc 1 6182 22 view .LVU4357
12420 004c 2385 strh r3, [r4, #40] @ movhi
12421 004e EBE7 b .L787
12422 .LVL886:
12423 .L788:
6195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12424 .loc 1 6195 7 is_stmt 1 view .LVU4358
12425 0050 4021 movs r1, #64
12426 0052 2046 mov r0, r4
12427 0054 FFF7FEFF bl I2C_Enable_IRQ
12428 .LVL887:
6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12429 .loc 1 6198 1 is_stmt 0 view .LVU4359
12430 0058 F1E7 b .L783
12431 .cfi_endproc
12432 .LFE194:
12434 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
12435 .align 1
12436 .syntax unified
12437 .thumb
12438 .thumb_func
12440 I2C_DMAMasterReceiveCplt:
12441 .LVL888:
12442 .LFB196:
6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
12443 .loc 1 6234 1 is_stmt 1 view -0
12444 .cfi_startproc
12445 @ args = 0, pretend = 0, frame = 0
12446 @ frame_needed = 0, uses_anonymous_args = 0
6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
12447 .loc 1 6234 1 is_stmt 0 view .LVU4361
12448 0000 10B5 push {r4, lr}
12449 .cfi_def_cfa_offset 8
12450 .cfi_offset 4, -8
12451 .cfi_offset 14, -4
6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12452 .loc 1 6236 3 is_stmt 1 view .LVU4362
6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12453 .loc 1 6236 22 is_stmt 0 view .LVU4363
12454 0002 446A ldr r4, [r0, #36]
12455 .LVL889:
6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12456 .loc 1 6239 3 is_stmt 1 view .LVU4364
6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12457 .loc 1 6239 7 is_stmt 0 view .LVU4365
ARM GAS /tmp/cczJHHnF.s page 411
12458 0004 2268 ldr r2, [r4]
6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12459 .loc 1 6239 17 view .LVU4366
12460 0006 1368 ldr r3, [r2]
6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12461 .loc 1 6239 23 view .LVU4367
12462 0008 23F40043 bic r3, r3, #32768
12463 000c 1360 str r3, [r2]
6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12464 .loc 1 6242 3 is_stmt 1 view .LVU4368
6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12465 .loc 1 6242 11 is_stmt 0 view .LVU4369
12466 000e 638D ldrh r3, [r4, #42]
12467 0010 9BB2 uxth r3, r3
6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12468 .loc 1 6242 6 view .LVU4370
12469 0012 ABB1 cbz r3, .L798
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12470 .loc 1 6251 5 is_stmt 1 view .LVU4371
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12471 .loc 1 6251 9 is_stmt 0 view .LVU4372
12472 0014 626A ldr r2, [r4, #36]
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12473 .loc 1 6251 27 view .LVU4373
12474 0016 238D ldrh r3, [r4, #40]
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12475 .loc 1 6251 20 view .LVU4374
12476 0018 1A44 add r2, r2, r3
12477 001a 6262 str r2, [r4, #36]
6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12478 .loc 1 6254 5 is_stmt 1 view .LVU4375
6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12479 .loc 1 6254 13 is_stmt 0 view .LVU4376
12480 001c 638D ldrh r3, [r4, #42]
12481 001e 9BB2 uxth r3, r3
6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12482 .loc 1 6254 8 view .LVU4377
12483 0020 FF2B cmp r3, #255
12484 0022 12D9 bls .L794
6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12485 .loc 1 6256 7 is_stmt 1 view .LVU4378
6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12486 .loc 1 6256 22 is_stmt 0 view .LVU4379
12487 0024 FF23 movs r3, #255
12488 0026 2385 strh r3, [r4, #40] @ movhi
12489 .L795:
6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12490 .loc 1 6264 5 is_stmt 1 view .LVU4380
6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12491 .loc 1 6264 55 is_stmt 0 view .LVU4381
12492 0028 2168 ldr r1, [r4]
6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12493 .loc 1 6264 9 view .LVU4382
12494 002a 238D ldrh r3, [r4, #40]
12495 002c 2431 adds r1, r1, #36
12496 002e E06B ldr r0, [r4, #60]
12497 .LVL890:
ARM GAS /tmp/cczJHHnF.s page 412
6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12498 .loc 1 6264 9 view .LVU4383
12499 0030 FFF7FEFF bl HAL_DMA_Start_IT
12500 .LVL891:
6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
12501 .loc 1 6264 8 view .LVU4384
12502 0034 60B1 cbz r0, .L796
6268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12503 .loc 1 6268 7 is_stmt 1 view .LVU4385
12504 0036 1021 movs r1, #16
12505 0038 2046 mov r0, r4
12506 003a FFF7FEFF bl I2C_ITError
12507 .LVL892:
12508 .L791:
6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12509 .loc 1 6276 1 is_stmt 0 view .LVU4386
12510 003e 10BD pop {r4, pc}
12511 .LVL893:
12512 .L798:
6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12513 .loc 1 6245 5 is_stmt 1 view .LVU4387
12514 0040 2021 movs r1, #32
12515 0042 2046 mov r0, r4
12516 .LVL894:
6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12517 .loc 1 6245 5 is_stmt 0 view .LVU4388
12518 0044 FFF7FEFF bl I2C_Enable_IRQ
12519 .LVL895:
12520 0048 F9E7 b .L791
12521 .LVL896:
12522 .L794:
6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12523 .loc 1 6260 7 is_stmt 1 view .LVU4389
6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12524 .loc 1 6260 28 is_stmt 0 view .LVU4390
12525 004a 638D ldrh r3, [r4, #42]
6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12526 .loc 1 6260 22 view .LVU4391
12527 004c 2385 strh r3, [r4, #40] @ movhi
12528 004e EBE7 b .L795
12529 .LVL897:
12530 .L796:
6273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12531 .loc 1 6273 7 is_stmt 1 view .LVU4392
12532 0050 4021 movs r1, #64
12533 0052 2046 mov r0, r4
12534 0054 FFF7FEFF bl I2C_Enable_IRQ
12535 .LVL898:
6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12536 .loc 1 6276 1 is_stmt 0 view .LVU4393
12537 0058 F1E7 b .L791
12538 .cfi_endproc
12539 .LFE196:
12541 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
12542 .align 1
12543 .global HAL_I2C_ER_IRQHandler
12544 .syntax unified
ARM GAS /tmp/cczJHHnF.s page 413
12545 .thumb
12546 .thumb_func
12548 HAL_I2C_ER_IRQHandler:
12549 .LVL899:
12550 .LFB165:
4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
12551 .loc 1 4452 1 is_stmt 1 view -0
12552 .cfi_startproc
12553 @ args = 0, pretend = 0, frame = 0
12554 @ frame_needed = 0, uses_anonymous_args = 0
4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
12555 .loc 1 4452 1 is_stmt 0 view .LVU4395
12556 0000 10B5 push {r4, lr}
12557 .cfi_def_cfa_offset 8
12558 .cfi_offset 4, -8
12559 .cfi_offset 14, -4
4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
12560 .loc 1 4453 3 is_stmt 1 view .LVU4396
4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
12561 .loc 1 4453 24 is_stmt 0 view .LVU4397
12562 0002 0268 ldr r2, [r0]
4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
12563 .loc 1 4453 12 view .LVU4398
12564 0004 9369 ldr r3, [r2, #24]
12565 .LVL900:
4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
12566 .loc 1 4454 3 is_stmt 1 view .LVU4399
4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
12567 .loc 1 4454 12 is_stmt 0 view .LVU4400
12568 0006 1168 ldr r1, [r2]
12569 .LVL901:
4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12570 .loc 1 4455 3 is_stmt 1 view .LVU4401
4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
12571 .loc 1 4458 3 view .LVU4402
4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
12572 .loc 1 4458 6 is_stmt 0 view .LVU4403
12573 0008 13F4807F tst r3, #256
12574 000c 09D0 beq .L800
4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
12575 .loc 1 4458 57 discriminator 1 view .LVU4404
12576 000e 11F0800F tst r1, #128
12577 0012 06D0 beq .L800
4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12578 .loc 1 4461 5 is_stmt 1 view .LVU4405
4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12579 .loc 1 4461 9 is_stmt 0 view .LVU4406
12580 0014 446C ldr r4, [r0, #68]
4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12581 .loc 1 4461 21 view .LVU4407
12582 0016 44F00104 orr r4, r4, #1
12583 001a 4464 str r4, [r0, #68]
4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12584 .loc 1 4464 5 is_stmt 1 view .LVU4408
12585 001c 4FF48074 mov r4, #256
12586 0020 D461 str r4, [r2, #28]
12587 .L800:
ARM GAS /tmp/cczJHHnF.s page 414
4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
12588 .loc 1 4468 3 view .LVU4409
4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
12589 .loc 1 4468 6 is_stmt 0 view .LVU4410
12590 0022 13F4806F tst r3, #1024
12591 0026 0AD0 beq .L801
4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
12592 .loc 1 4468 56 discriminator 1 view .LVU4411
12593 0028 11F0800F tst r1, #128
12594 002c 07D0 beq .L801
4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12595 .loc 1 4471 5 is_stmt 1 view .LVU4412
4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12596 .loc 1 4471 9 is_stmt 0 view .LVU4413
12597 002e 426C ldr r2, [r0, #68]
4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12598 .loc 1 4471 21 view .LVU4414
12599 0030 42F00802 orr r2, r2, #8
12600 0034 4264 str r2, [r0, #68]
4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12601 .loc 1 4474 5 is_stmt 1 view .LVU4415
12602 0036 0268 ldr r2, [r0]
12603 0038 4FF48064 mov r4, #1024
12604 003c D461 str r4, [r2, #28]
12605 .L801:
4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
12606 .loc 1 4478 3 view .LVU4416
4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
12607 .loc 1 4478 6 is_stmt 0 view .LVU4417
12608 003e 13F4007F tst r3, #512
12609 0042 0AD0 beq .L802
4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
12610 .loc 1 4478 57 discriminator 1 view .LVU4418
12611 0044 11F0800F tst r1, #128
12612 0048 07D0 beq .L802
4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12613 .loc 1 4481 5 is_stmt 1 view .LVU4419
4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12614 .loc 1 4481 9 is_stmt 0 view .LVU4420
12615 004a 436C ldr r3, [r0, #68]
12616 .LVL902:
4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12617 .loc 1 4481 21 view .LVU4421
12618 004c 43F00203 orr r3, r3, #2
12619 0050 4364 str r3, [r0, #68]
4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12620 .loc 1 4484 5 is_stmt 1 view .LVU4422
12621 0052 0368 ldr r3, [r0]
12622 0054 4FF40072 mov r2, #512
12623 0058 DA61 str r2, [r3, #28]
12624 .L802:
4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12625 .loc 1 4488 3 view .LVU4423
4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12626 .loc 1 4488 12 is_stmt 0 view .LVU4424
12627 005a 416C ldr r1, [r0, #68]
12628 .LVL903:
ARM GAS /tmp/cczJHHnF.s page 415
4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12629 .loc 1 4491 3 is_stmt 1 view .LVU4425
4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12630 .loc 1 4491 6 is_stmt 0 view .LVU4426
12631 005c 11F00B0F tst r1, #11
12632 0060 00D1 bne .L805
12633 .LVL904:
12634 .L799:
4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12635 .loc 1 4495 1 view .LVU4427
12636 0062 10BD pop {r4, pc}
12637 .LVL905:
12638 .L805:
4493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12639 .loc 1 4493 5 is_stmt 1 view .LVU4428
12640 0064 FFF7FEFF bl I2C_ITError
12641 .LVL906:
4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12642 .loc 1 4495 1 is_stmt 0 view .LVU4429
12643 0068 FBE7 b .L799
12644 .cfi_endproc
12645 .LFE165:
12647 .section .text.I2C_DMAAbort,"ax",%progbits
12648 .align 1
12649 .syntax unified
12650 .thumb
12651 .thumb_func
12653 I2C_DMAAbort:
12654 .LVL907:
12655 .LFB199:
6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
12656 .loc 1 6330 1 is_stmt 1 view -0
12657 .cfi_startproc
12658 @ args = 0, pretend = 0, frame = 0
12659 @ frame_needed = 0, uses_anonymous_args = 0
6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
12660 .loc 1 6330 1 is_stmt 0 view .LVU4431
12661 0000 08B5 push {r3, lr}
12662 .cfi_def_cfa_offset 8
12663 .cfi_offset 3, -8
12664 .cfi_offset 14, -4
6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12665 .loc 1 6332 3 is_stmt 1 view .LVU4432
6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12666 .loc 1 6332 22 is_stmt 0 view .LVU4433
12667 0002 406A ldr r0, [r0, #36]
12668 .LVL908:
6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12669 .loc 1 6335 3 is_stmt 1 view .LVU4434
6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12670 .loc 1 6335 11 is_stmt 0 view .LVU4435
12671 0004 836B ldr r3, [r0, #56]
6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12672 .loc 1 6335 6 view .LVU4436
12673 0006 0BB1 cbz r3, .L807
6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12674 .loc 1 6337 5 is_stmt 1 view .LVU4437
ARM GAS /tmp/cczJHHnF.s page 416
6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12675 .loc 1 6337 37 is_stmt 0 view .LVU4438
12676 0008 0022 movs r2, #0
12677 000a 5A63 str r2, [r3, #52]
12678 .L807:
6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12679 .loc 1 6339 3 is_stmt 1 view .LVU4439
6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12680 .loc 1 6339 11 is_stmt 0 view .LVU4440
12681 000c C36B ldr r3, [r0, #60]
6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12682 .loc 1 6339 6 view .LVU4441
12683 000e 0BB1 cbz r3, .L808
6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12684 .loc 1 6341 5 is_stmt 1 view .LVU4442
6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12685 .loc 1 6341 37 is_stmt 0 view .LVU4443
12686 0010 0022 movs r2, #0
12687 0012 5A63 str r2, [r3, #52]
12688 .L808:
6344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12689 .loc 1 6344 3 is_stmt 1 view .LVU4444
12690 0014 FFF7FEFF bl I2C_TreatErrorCallback
12691 .LVL909:
6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12692 .loc 1 6345 1 is_stmt 0 view .LVU4445
12693 0018 08BD pop {r3, pc}
12694 .cfi_endproc
12695 .LFE199:
12697 .section .text.HAL_I2C_GetState,"ax",%progbits
12698 .align 1
12699 .global HAL_I2C_GetState
12700 .syntax unified
12701 .thumb
12702 .thumb_func
12704 HAL_I2C_GetState:
12705 .LVL910:
12706 .LFB176:
4686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */
12707 .loc 1 4686 1 is_stmt 1 view -0
12708 .cfi_startproc
12709 @ args = 0, pretend = 0, frame = 0
12710 @ frame_needed = 0, uses_anonymous_args = 0
12711 @ link register save eliminated.
4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12712 .loc 1 4688 3 view .LVU4447
4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12713 .loc 1 4688 14 is_stmt 0 view .LVU4448
12714 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
12715 .LVL911:
4689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12716 .loc 1 4689 1 view .LVU4449
12717 0004 7047 bx lr
12718 .cfi_endproc
12719 .LFE176:
12721 .section .text.HAL_I2C_GetMode,"ax",%progbits
12722 .align 1
ARM GAS /tmp/cczJHHnF.s page 417
12723 .global HAL_I2C_GetMode
12724 .syntax unified
12725 .thumb
12726 .thumb_func
12728 HAL_I2C_GetMode:
12729 .LVL912:
12730 .LFB177:
4698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode;
12731 .loc 1 4698 1 is_stmt 1 view -0
12732 .cfi_startproc
12733 @ args = 0, pretend = 0, frame = 0
12734 @ frame_needed = 0, uses_anonymous_args = 0
12735 @ link register save eliminated.
4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12736 .loc 1 4699 3 view .LVU4451
4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12737 .loc 1 4699 14 is_stmt 0 view .LVU4452
12738 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2
12739 .LVL913:
4700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12740 .loc 1 4700 1 view .LVU4453
12741 0004 7047 bx lr
12742 .cfi_endproc
12743 .LFE177:
12745 .section .text.HAL_I2C_GetError,"ax",%progbits
12746 .align 1
12747 .global HAL_I2C_GetError
12748 .syntax unified
12749 .thumb
12750 .thumb_func
12752 HAL_I2C_GetError:
12753 .LVL914:
12754 .LFB178:
4709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode;
12755 .loc 1 4709 1 is_stmt 1 view -0
12756 .cfi_startproc
12757 @ args = 0, pretend = 0, frame = 0
12758 @ frame_needed = 0, uses_anonymous_args = 0
12759 @ link register save eliminated.
4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12760 .loc 1 4710 3 view .LVU4455
4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12761 .loc 1 4710 14 is_stmt 0 view .LVU4456
12762 0000 406C ldr r0, [r0, #68]
12763 .LVL915:
4711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12764 .loc 1 4711 1 view .LVU4457
12765 0002 7047 bx lr
12766 .cfi_endproc
12767 .LFE178:
12769 .text
12770 .Letext0:
12771 .file 2 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non
12772 .file 3 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non
12773 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h"
12774 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
12775 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
ARM GAS /tmp/cczJHHnF.s page 418
12776 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
12777 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h"
12778 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
ARM GAS /tmp/cczJHHnF.s page 419
DEFINED SYMBOLS
*ABS*:0000000000000000 stm32f3xx_hal_i2c.c
/tmp/cczJHHnF.s:21 .text.I2C_Flush_TXDR:0000000000000000 $t
/tmp/cczJHHnF.s:26 .text.I2C_Flush_TXDR:0000000000000000 I2C_Flush_TXDR
/tmp/cczJHHnF.s:64 .text.I2C_TransferConfig:0000000000000000 $t
/tmp/cczJHHnF.s:69 .text.I2C_TransferConfig:0000000000000000 I2C_TransferConfig
/tmp/cczJHHnF.s:118 .text.I2C_Enable_IRQ:0000000000000000 $t
/tmp/cczJHHnF.s:123 .text.I2C_Enable_IRQ:0000000000000000 I2C_Enable_IRQ
/tmp/cczJHHnF.s:246 .text.I2C_Enable_IRQ:000000000000006c $d
/tmp/cczJHHnF.s:11981 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA
/tmp/cczJHHnF.s:11701 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA
/tmp/cczJHHnF.s:252 .text.I2C_Disable_IRQ:0000000000000000 $t
/tmp/cczJHHnF.s:257 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ
/tmp/cczJHHnF.s:381 .text.I2C_ConvertOtherXferOptions:0000000000000000 $t
/tmp/cczJHHnF.s:386 .text.I2C_ConvertOtherXferOptions:0000000000000000 I2C_ConvertOtherXferOptions
/tmp/cczJHHnF.s:427 .text.I2C_IsAcknowledgeFailed:0000000000000000 $t
/tmp/cczJHHnF.s:432 .text.I2C_IsAcknowledgeFailed:0000000000000000 I2C_IsAcknowledgeFailed
/tmp/cczJHHnF.s:574 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t
/tmp/cczJHHnF.s:579 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout
/tmp/cczJHHnF.s:669 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t
/tmp/cczJHHnF.s:674 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout
/tmp/cczJHHnF.s:759 .text.I2C_RequestMemoryWrite:0000000000000000 $t
/tmp/cczJHHnF.s:764 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite
/tmp/cczJHHnF.s:879 .text.I2C_RequestMemoryWrite:0000000000000078 $d
/tmp/cczJHHnF.s:884 .text.I2C_RequestMemoryRead:0000000000000000 $t
/tmp/cczJHHnF.s:889 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead
/tmp/cczJHHnF.s:1004 .text.I2C_RequestMemoryRead:0000000000000074 $d
/tmp/cczJHHnF.s:1009 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t
/tmp/cczJHHnF.s:1014 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout
/tmp/cczJHHnF.s:1100 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t
/tmp/cczJHHnF.s:1105 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout
/tmp/cczJHHnF.s:1240 .text.HAL_I2C_MspInit:0000000000000000 $t
/tmp/cczJHHnF.s:1246 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit
/tmp/cczJHHnF.s:1261 .text.HAL_I2C_Init:0000000000000000 $t
/tmp/cczJHHnF.s:1267 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init
/tmp/cczJHHnF.s:1457 .text.HAL_I2C_MspDeInit:0000000000000000 $t
/tmp/cczJHHnF.s:1463 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit
/tmp/cczJHHnF.s:1478 .text.HAL_I2C_DeInit:0000000000000000 $t
/tmp/cczJHHnF.s:1484 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit
/tmp/cczJHHnF.s:1547 .text.HAL_I2C_Master_Transmit:0000000000000000 $t
/tmp/cczJHHnF.s:1553 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit
/tmp/cczJHHnF.s:1859 .text.HAL_I2C_Master_Transmit:0000000000000178 $d
/tmp/cczJHHnF.s:1864 .text.HAL_I2C_Master_Receive:0000000000000000 $t
/tmp/cczJHHnF.s:1870 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive
/tmp/cczJHHnF.s:2175 .text.HAL_I2C_Master_Receive:0000000000000178 $d
/tmp/cczJHHnF.s:2180 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t
/tmp/cczJHHnF.s:2186 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit
/tmp/cczJHHnF.s:2539 .text.HAL_I2C_Slave_Receive:0000000000000000 $t
/tmp/cczJHHnF.s:2545 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive
/tmp/cczJHHnF.s:2872 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t
/tmp/cczJHHnF.s:2878 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT
/tmp/cczJHHnF.s:3027 .text.HAL_I2C_Master_Transmit_IT:000000000000008c $d
/tmp/cczJHHnF.s:11326 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT
/tmp/cczJHHnF.s:3034 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t
/tmp/cczJHHnF.s:3040 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT
/tmp/cczJHHnF.s:3189 .text.HAL_I2C_Master_Receive_IT:000000000000008c $d
/tmp/cczJHHnF.s:3196 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t
ARM GAS /tmp/cczJHHnF.s page 420
/tmp/cczJHHnF.s:3202 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT
/tmp/cczJHHnF.s:3304 .text.HAL_I2C_Slave_Transmit_IT:000000000000005c $d
/tmp/cczJHHnF.s:10758 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT
/tmp/cczJHHnF.s:3310 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t
/tmp/cczJHHnF.s:3316 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT
/tmp/cczJHHnF.s:3418 .text.HAL_I2C_Slave_Receive_IT:000000000000005c $d
/tmp/cczJHHnF.s:3424 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:3430 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA
/tmp/cczJHHnF.s:3728 .text.HAL_I2C_Master_Transmit_DMA:000000000000013c $d
/tmp/cczJHHnF.s:12333 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt
/tmp/cczJHHnF.s:12294 .text.I2C_DMAError:0000000000000000 I2C_DMAError
/tmp/cczJHHnF.s:3738 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:3744 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA
/tmp/cczJHHnF.s:4042 .text.HAL_I2C_Master_Receive_DMA:0000000000000138 $d
/tmp/cczJHHnF.s:12440 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt
/tmp/cczJHHnF.s:4052 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:4058 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA
/tmp/cczJHHnF.s:4278 .text.HAL_I2C_Slave_Transmit_DMA:00000000000000e0 $d
/tmp/cczJHHnF.s:9594 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt
/tmp/cczJHHnF.s:4286 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:4292 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA
/tmp/cczJHHnF.s:4514 .text.HAL_I2C_Slave_Receive_DMA:00000000000000e4 $d
/tmp/cczJHHnF.s:9645 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt
/tmp/cczJHHnF.s:4522 .text.HAL_I2C_Mem_Write:0000000000000000 $t
/tmp/cczJHHnF.s:4528 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write
/tmp/cczJHHnF.s:4882 .text.HAL_I2C_Mem_Read:0000000000000000 $t
/tmp/cczJHHnF.s:4888 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read
/tmp/cczJHHnF.s:5242 .text.HAL_I2C_Mem_Read:00000000000001ac $d
/tmp/cczJHHnF.s:5247 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t
/tmp/cczJHHnF.s:5253 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT
/tmp/cczJHHnF.s:5458 .text.HAL_I2C_Mem_Write_IT:00000000000000dc $d
/tmp/cczJHHnF.s:5464 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t
/tmp/cczJHHnF.s:5470 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT
/tmp/cczJHHnF.s:5676 .text.HAL_I2C_Mem_Read_IT:00000000000000dc $d
/tmp/cczJHHnF.s:5683 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:5689 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA
/tmp/cczJHHnF.s:6003 .text.HAL_I2C_Mem_Write_DMA:000000000000015c $d
/tmp/cczJHHnF.s:6011 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:6017 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA
/tmp/cczJHHnF.s:6332 .text.HAL_I2C_Mem_Read_DMA:000000000000015c $d
/tmp/cczJHHnF.s:6341 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t
/tmp/cczJHHnF.s:6347 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady
/tmp/cczJHHnF.s:6676 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 $t
/tmp/cczJHHnF.s:6682 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 HAL_I2C_Master_Seq_Transmit_IT
/tmp/cczJHHnF.s:6869 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000000000ac $d
/tmp/cczJHHnF.s:6875 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:6881 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Master_Seq_Transmit_DMA
/tmp/cczJHHnF.s:7210 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000160 $d
/tmp/cczJHHnF.s:7219 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 $t
/tmp/cczJHHnF.s:7225 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 HAL_I2C_Master_Seq_Receive_IT
/tmp/cczJHHnF.s:7412 .text.HAL_I2C_Master_Seq_Receive_IT:00000000000000ac $d
/tmp/cczJHHnF.s:7418 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:7424 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 HAL_I2C_Master_Seq_Receive_DMA
/tmp/cczJHHnF.s:7753 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000160 $d
/tmp/cczJHHnF.s:7762 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 $t
/tmp/cczJHHnF.s:7768 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 HAL_I2C_Slave_Seq_Transmit_IT
/tmp/cczJHHnF.s:7968 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000000000d0 $d
ARM GAS /tmp/cczJHHnF.s page 421
/tmp/cczJHHnF.s:12653 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort
/tmp/cczJHHnF.s:7974 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:7980 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Seq_Transmit_DMA
/tmp/cczJHHnF.s:8358 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000194 $d
/tmp/cczJHHnF.s:8366 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 $t
/tmp/cczJHHnF.s:8372 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 HAL_I2C_Slave_Seq_Receive_IT
/tmp/cczJHHnF.s:8572 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000000000d0 $d
/tmp/cczJHHnF.s:8578 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:8584 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 HAL_I2C_Slave_Seq_Receive_DMA
/tmp/cczJHHnF.s:8959 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000190 $d
/tmp/cczJHHnF.s:8967 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t
/tmp/cczJHHnF.s:8973 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT
/tmp/cczJHHnF.s:9019 .text.HAL_I2C_EnableListen_IT:0000000000000028 $d
/tmp/cczJHHnF.s:9024 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t
/tmp/cczJHHnF.s:9030 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT
/tmp/cczJHHnF.s:9095 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t
/tmp/cczJHHnF.s:9101 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT
/tmp/cczJHHnF.s:9236 .text.HAL_I2C_Master_Abort_IT:0000000000000080 $d
/tmp/cczJHHnF.s:9241 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t
/tmp/cczJHHnF.s:9247 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler
/tmp/cczJHHnF.s:9284 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t
/tmp/cczJHHnF.s:9290 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback
/tmp/cczJHHnF.s:9305 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t
/tmp/cczJHHnF.s:9311 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback
/tmp/cczJHHnF.s:9326 .text.I2C_ITMasterSeqCplt:0000000000000000 $t
/tmp/cczJHHnF.s:9331 .text.I2C_ITMasterSeqCplt:0000000000000000 I2C_ITMasterSeqCplt
/tmp/cczJHHnF.s:9415 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t
/tmp/cczJHHnF.s:9421 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback
/tmp/cczJHHnF.s:9436 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t
/tmp/cczJHHnF.s:9442 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback
/tmp/cczJHHnF.s:9457 .text.I2C_ITSlaveSeqCplt:0000000000000000 $t
/tmp/cczJHHnF.s:9462 .text.I2C_ITSlaveSeqCplt:0000000000000000 I2C_ITSlaveSeqCplt
/tmp/cczJHHnF.s:9589 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t
/tmp/cczJHHnF.s:9640 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t
/tmp/cczJHHnF.s:9700 .text.HAL_I2C_AddrCallback:0000000000000000 $t
/tmp/cczJHHnF.s:9706 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback
/tmp/cczJHHnF.s:9723 .text.I2C_ITAddrCplt:0000000000000000 $t
/tmp/cczJHHnF.s:9728 .text.I2C_ITAddrCplt:0000000000000000 I2C_ITAddrCplt
/tmp/cczJHHnF.s:9887 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t
/tmp/cczJHHnF.s:9893 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback
/tmp/cczJHHnF.s:9908 .text.I2C_ITListenCplt:0000000000000000 $t
/tmp/cczJHHnF.s:9913 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt
/tmp/cczJHHnF.s:10016 .text.I2C_ITListenCplt:0000000000000064 $d
/tmp/cczJHHnF.s:10021 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t
/tmp/cczJHHnF.s:10027 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback
/tmp/cczJHHnF.s:10042 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t
/tmp/cczJHHnF.s:10048 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback
/tmp/cczJHHnF.s:10063 .text.HAL_I2C_ErrorCallback:0000000000000000 $t
/tmp/cczJHHnF.s:10069 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback
/tmp/cczJHHnF.s:10084 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t
/tmp/cczJHHnF.s:10090 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback
/tmp/cczJHHnF.s:10105 .text.I2C_TreatErrorCallback:0000000000000000 $t
/tmp/cczJHHnF.s:10110 .text.I2C_TreatErrorCallback:0000000000000000 I2C_TreatErrorCallback
/tmp/cczJHHnF.s:10166 .text.I2C_ITError:0000000000000000 $t
/tmp/cczJHHnF.s:10171 .text.I2C_ITError:0000000000000000 I2C_ITError
/tmp/cczJHHnF.s:10417 .text.I2C_ITError:00000000000000fc $d
/tmp/cczJHHnF.s:10424 .text.I2C_ITSlaveCplt:0000000000000000 $t
ARM GAS /tmp/cczJHHnF.s page 422
/tmp/cczJHHnF.s:10429 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt
/tmp/cczJHHnF.s:10748 .text.I2C_ITSlaveCplt:0000000000000164 $d
/tmp/cczJHHnF.s:10753 .text.I2C_Slave_ISR_IT:0000000000000000 $t
/tmp/cczJHHnF.s:11048 .text.I2C_ITMasterCplt:0000000000000000 $t
/tmp/cczJHHnF.s:11053 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt
/tmp/cczJHHnF.s:11321 .text.I2C_Master_ISR_IT:0000000000000000 $t
/tmp/cczJHHnF.s:11696 .text.I2C_Slave_ISR_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:11837 .text.I2C_Slave_ISR_DMA:000000000000008e $d
/tmp/cczJHHnF.s:11848 .text.I2C_Slave_ISR_DMA:0000000000000098 $t
/tmp/cczJHHnF.s:11976 .text.I2C_Master_ISR_DMA:0000000000000000 $t
/tmp/cczJHHnF.s:12289 .text.I2C_DMAError:0000000000000000 $t
/tmp/cczJHHnF.s:12328 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t
/tmp/cczJHHnF.s:12435 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t
/tmp/cczJHHnF.s:12542 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t
/tmp/cczJHHnF.s:12548 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler
/tmp/cczJHHnF.s:12648 .text.I2C_DMAAbort:0000000000000000 $t
/tmp/cczJHHnF.s:12698 .text.HAL_I2C_GetState:0000000000000000 $t
/tmp/cczJHHnF.s:12704 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState
/tmp/cczJHHnF.s:12722 .text.HAL_I2C_GetMode:0000000000000000 $t
/tmp/cczJHHnF.s:12728 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode
/tmp/cczJHHnF.s:12746 .text.HAL_I2C_GetError:0000000000000000 $t
/tmp/cczJHHnF.s:12752 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError
UNDEFINED SYMBOLS
HAL_GetTick
HAL_DMA_Start_IT
HAL_DMA_Abort_IT
HAL_DMA_GetState