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

25238 lines
1.5 MiB
Raw Permalink Blame History

This file contains invisible Unicode characters

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

ARM GAS /tmp/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