adbmsFunctionTest/build/stm32f3xx_hal_i2c.lst
2024-10-12 22:13:04 +02:00

28544 lines
1.7 MiB
Raw Blame History

This file contains invisible Unicode characters

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

ARM GAS /tmp/ccJ8PJrU.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 .LFB188:
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 **** ******************************************************************************
13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @attention
14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Copyright (c) 2016 STMicroelectronics.
16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * All rights reserved.
17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file
19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the root directory of this software component.
20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS.
21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ******************************************************************************
23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### How to use this driver #####
26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================================================================
27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The I2C HAL driver can be used as follows:
29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example:
ARM GAS /tmp/ccJ8PJrU.s page 2
31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef hi2c;
32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API:
34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) Enable the I2Cx interface clock
35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) I2C pins configuration
36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs
37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain
38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process
39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority
40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel
41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process
42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for
43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the transmit or receive channel
44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using
45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA handle parameters
46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel
47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle
48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on
49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the DMA Tx or Rx channel
50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres
52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure
53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
54: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
55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API.
56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead
58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver :
60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO operation ***
62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
64: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(
65: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()
66: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()
67: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()
68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO MEM operation ***
70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =====================================
71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
72: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
73: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_
74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO operation ***
77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===================================
78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
79: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
80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() 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_MasterTxCpltCallback()
82: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
83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() 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_MasterRxCpltCallback()
85: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
86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
ARM GAS /tmp/ccJ8PJrU.s page 3
88: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_
89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab
94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation ***
101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==========================================================
102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition
104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** when a direction change during transfer
105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer
107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below:
108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac
109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** no sequential mode
110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con
111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and data to transfer without a final stop condition
112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a
113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond
114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** an then permit a call the same master sequential interface several time
115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit
116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D
117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart
118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases
121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart
122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th
123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer
124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases
125: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
126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after several call of the same master sequential interface several time
127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME).
128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one using
129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME.
134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit
135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra
136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio
137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c
138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each call of the same master sequential
139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** interface.
140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave
141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each bytes using
142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT
143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT
144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA
ARM GAS /tmp/ccJ8PJrU.s page 4
145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA
146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME.
147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to
148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** generation of STOP condition.
149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below:
151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using
152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA()
153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut
154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC
155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using
156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA()
157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed
158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Abort a master or memory IT or DMA I2C process communication with Interrupt using HAL_I2
160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT()
163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_DisableListen_IT()
164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can
165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques
166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (Write/Read).
167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can
168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback()
169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using
170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA()
171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute
172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa
173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using
174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA()
175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a
176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO MEM operation ***
183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =======================================
184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
185: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
186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT()
187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
189: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
190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT()
191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO operation ***
197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==============================
198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using
200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA()
201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can
ARM GAS /tmp/ccJ8PJrU.s page 5
202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback()
203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using
204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA()
205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can
206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback()
207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using
208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA()
209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can
210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback()
211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using
212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA()
213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can
214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback()
215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab
218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can
219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback()
220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro.
221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication
222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO MEM operation ***
224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================
225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
226: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
227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA()
228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can
229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback()
230: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
231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA()
232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can
233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback()
234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can
235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback()
236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** I2C HAL driver macros list ***
239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ==================================
240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver.
242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral
244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral
245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode
246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not
247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag
248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt
249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt
250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Callback registration ***
252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================
253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1
255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks.
256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback()
257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to register an interrupt callback.
258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
ARM GAS /tmp/ccJ8PJrU.s page 6
259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks:
260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID
272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and a pointer to the user callback function.
273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall
275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default
277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** weak function.
278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle,
279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the Callback ID.
280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function allows to reset following callbacks:
281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer.
282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer.
283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer.
284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer.
285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode.
286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer.
287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer.
288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection.
289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process.
290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init.
291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit.
292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback().
294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
295: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
296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions:
297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback().
298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are
299: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
300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** these callbacks are null (not registered beforehand).
301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit()
302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state.
303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only.
305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered
306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state,
307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit.
308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks
309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit()
310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Init() function.
311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or
313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks
314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** are set to the corresponding weak functions.
315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 7
316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros
318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
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 **** /* Includes ------------------------------------------------------------------*/
323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #include "stm32f3xx_hal.h"
324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup STM32F3xx_HAL_Driver
326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
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 **** /** @defgroup I2C I2C
330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver
331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
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 **** #ifdef HAL_I2C_MODULE_ENABLED
335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/
337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/
338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define
340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */
343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */
344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */
345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */
346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */
347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */
348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */
349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */
350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */
351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */
352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U
354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U
355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U
356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */
358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \
359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \
360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY))))
361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */
362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Default Value */
364: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) | \
365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */
367: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) | \
368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER))
369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */
370: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) | \
371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */
ARM GAS /tmp/ccJ8PJrU.s page 8
373: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) | \
374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE))
375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */
376: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) | \
377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */
379: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) | \
380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM))
381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */
382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */
385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with
386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with
388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */
389: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
390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */
391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo
393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and NACK treatment */
394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene
395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of
396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */
398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U)
399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
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 **** /* Private macros ------------------------------------------------------------*/
404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro
405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */
408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__)
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 **** */
412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/
414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/
415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions
417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle DMA transfer */
420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma);
421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma);
422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma);
423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma);
424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma);
425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma);
426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
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 void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
ARM GAS /tmp/ccJ8PJrU.s page 9
430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c);
431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c);
432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags);
435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode);
436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */
438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */
446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources);
458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */
460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart);
462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart);
470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */
472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest);
474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to treat different error callback */
476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c);
477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to flush TXDR register */
479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c);
480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */
482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request);
484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to Convert Specific options */
486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
ARM GAS /tmp/ccJ8PJrU.s page 10
487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/
492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions
494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions
498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialization and Configuration functions
499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Initialization and de-initialization functions #####
503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and
505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** deinitialize the I2Cx peripheral:
506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures
508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ).
509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with
511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the selected configuration:
512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Clock Timing
513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 1
514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Addressing mode (Master, Slave)
515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Dual Addressing mode
516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2
517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2 Mask
518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) General call mode
519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Nostretch mode
520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration
522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** of the selected I2Cx peripheral.
523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters
530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle.
531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
ARM GAS /tmp/ccJ8PJrU.s page 11
544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET)
554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Allocate lock resource and initialize it */
556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED;
557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the I2C Callback settings */
560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback
561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback
562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback
563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback
564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback
565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback
570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL)
572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */
574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c);
578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c);
581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the selected I2C peripheral */
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
ARM GAS /tmp/ccJ8PJrU.s page 12
601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */
603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/
608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */
609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10);
612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear the I2C ADD10 bit */
616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10);
617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \
627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/
630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the selected I2C peripheral */
634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c);
635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral.
646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c)
651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL)
654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 13
658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */
664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c);
665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL)
668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */
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 **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c);
674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */
676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c);
677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */
685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialize the I2C MSP.
692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c)
697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file
703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP.
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 **** * @retval None
711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
ARM GAS /tmp/ccJ8PJrU.s page 14
715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file
719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register a User I2C Callback
725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak predefined callback
726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RES
727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID.
728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered
731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Callback function
744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb
747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback)
748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback;
765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback;
769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
ARM GAS /tmp/ccJ8PJrU.s page 15
772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback;
773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback;
777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback;
781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback;
785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback;
789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback;
793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback;
797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback;
822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback;
826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
ARM GAS /tmp/ccJ8PJrU.s page 16
829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Unregister an I2C Callback
851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback
852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_R
853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID.
854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered
857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID
860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID
861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID
862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID
863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID
864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID
865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID
866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID
867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID
868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID
869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID
870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal
873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb
882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb
ARM GAS /tmp/ccJ8PJrU.s page 17
886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba
890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba
894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID :
897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac
898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback
902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback
906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID :
909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback
910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID :
913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback
914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State)
934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID)
936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID :
938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit
939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID :
942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit
ARM GAS /tmp/ccJ8PJrU.s page 18
943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default :
946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
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 **** else
955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback
968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback
969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function
972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC
975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL)
979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = pCallback;
989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
ARM GAS /tmp/ccJ8PJrU.s page 19
1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback
1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal
1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c)
1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State)
1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */
1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */
1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */
1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
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 **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions
1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Data transfers functions
1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### IO operation functions #####
1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data
1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfers.
1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) There are two modes of transfer:
1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode.
1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The status of all data processing is returned by the same function
1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after finishing transfer.
1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts
1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup.
1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The end of the data processing will be indicated through the
1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when
1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using DMA mode.
1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Blocking mode functions are :
ARM GAS /tmp/ccJ8PJrU.s page 20
1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit()
1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive()
1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit()
1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive()
1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write()
1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read()
1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady()
1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are :
1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT()
1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT()
1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT()
1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT()
1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT()
1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT()
1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT()
1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT()
1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT()
1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT()
1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT()
1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT()
1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT()
1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are :
1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA()
1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA()
1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA()
1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA()
1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA()
1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA()
1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA()
1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA()
1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA()
1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA()
1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode:
1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback()
1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback()
1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback()
1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback()
1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback()
1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback()
1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback()
1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback()
1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback()
1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback()
1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode.
1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
ARM GAS /tmp/ccJ8PJrU.s page 21
1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD
1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
ARM GAS /tmp/ccJ8PJrU.s page 22
1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode,
1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode,
1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 23
1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode.
1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa
1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout)
1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
ARM GAS /tmp/ccJ8PJrU.s page 24
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 25
1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */
1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode.
1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t tmpXferCount;
1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef error;
1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
ARM GAS /tmp/ccJ8PJrU.s page 26
1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
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 **** /* Clear ADDR flag */
1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bit addressing mode is selected */
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
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 ADDR flag */
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 27
1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */
1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK)
1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until AF flag is set */
1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart);
1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (error != HAL_OK)
1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
1494: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 */
1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */
1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount;
1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset ErrorCode to NONE */
1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
ARM GAS /tmp/ccJ8PJrU.s page 28
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear AF flag */
1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, 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 **** /* Disable Address Acknowledge */
1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode
1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size,
1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 29
1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK)
1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */
1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK)
1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U)
1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET)
1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
ARM GAS /tmp/ccJ8PJrU.s page 30
1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */
1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */
1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */
1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK)
1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 31
1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
ARM GAS /tmp/ccJ8PJrU.s page 32
1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode,
1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode,
1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *
1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
ARM GAS /tmp/ccJ8PJrU.s page 33
1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ
1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt
1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1854: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)
ARM GAS /tmp/ccJ8PJrU.s page 34
1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt
ARM GAS /tmp/ccJ8PJrU.s page 35
1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1918: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)
1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
ARM GAS /tmp/ccJ8PJrU.s page 36
1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 37
2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART
2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U),
2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 38
2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE,
2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA
2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t
2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size)
2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
ARM GAS /tmp/ccJ8PJrU.s page 39
2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 40
2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART *
2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_
2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
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 and NACK interrupts */
2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_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_RXDMAEN;
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_READY;
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 **** else
2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
ARM GAS /tmp/ccJ8PJrU.s page 41
2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA
2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2278: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
2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */
2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE)
2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
ARM GAS /tmp/ccJ8PJrU.s page 42
2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx,
2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
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 **** if (dmaxferstatus == HAL_OK)
2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 43
2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA
2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2414: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)
2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 44
2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
ARM GAS /tmp/ccJ8PJrU.s page 45
2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address
2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre
2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti
2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 46
2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL
2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
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 **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 47
2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address
2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
ARM GAS /tmp/ccJ8PJrU.s page 48
2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres
2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim
2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/
2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK
2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_
2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
ARM GAS /tmp/ccJ8PJrU.s page 49
2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
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 **** do
2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */
2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK)
2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK)
2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U);
2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK)
2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
ARM GAS /tmp/ccJ8PJrU.s page 50
2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2786: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
2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2797: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
2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
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 **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
ARM GAS /tmp/ccJ8PJrU.s page 51
2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0U;
2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W
2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
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 **** return HAL_BUSY;
2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 **** /**
2874: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
2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
ARM GAS /tmp/ccJ8PJrU.s page 52
2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2885: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
2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_
ARM GAS /tmp/ccJ8PJrU.s page 53
2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
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 ****
2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
2961: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
2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
2972: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
2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
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/ccJ8PJrU.s page 54
2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
ARM GAS /tmp/ccJ8PJrU.s page 55
3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START
3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3107: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.
3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
ARM GAS /tmp/ccJ8PJrU.s page 56
3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be read
3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3118: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
3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size)
3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize));
3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */
ARM GAS /tmp/ccJ8PJrU.s page 57
3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */
3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */
3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress);
3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa
3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */
3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR
3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
ARM GAS /tmp/ccJ8PJrU.s page 58
3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
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 **** return HAL_OK;
3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Checks if target device is ready for communication.
3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This function is used with Memory devices
3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Trials Number of trials
3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria
3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout)
3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL;
3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp1;
3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2;
3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET)
3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 59
3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY;
3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do
3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Start */
3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress);
3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */
3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/
3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET))
3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF);
3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */
3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET)
3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
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 **** /* Clear STOP Flag */
3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Device is ready */
3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
ARM GAS /tmp/ccJ8PJrU.s page 60
3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */
3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK)
3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/
3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Trials */
3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Trials++;
3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials);
3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3378: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
3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
ARM GAS /tmp/ccJ8PJrU.s page 61
3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 62
3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
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 ****
3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3492: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.
3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin
3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
ARM GAS /tmp/ccJ8PJrU.s page 63
3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX;
3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \
3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */
3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize;
3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \
3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
ARM GAS /tmp/ccJ8PJrU.s page 64
3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt;
3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr,
3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */
3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
ARM GAS /tmp/ccJ8PJrU.s page 65
3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */
3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME))
3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest);
3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */
3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT);
3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 66
3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
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 ****
3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3689: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
3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8
3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 67
3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3776: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
3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint
3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions)
3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
ARM GAS /tmp/ccJ8PJrU.s page 68
3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX;
3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame,
3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */
3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */
3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \
3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP;
3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */
3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c);
3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */
3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE)
3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U)
3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt;
ARM GAS /tmp/ccJ8PJrU.s page 69
3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p
3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */
3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest);
3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
ARM GAS /tmp/ccJ8PJrU.s page 70
3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */
3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */
3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */
3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */
3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */
3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI |
3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */
3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
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 **** return HAL_OK;
3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
3944: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
3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
3953: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
3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3962: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)
3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 71
3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 ****
4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 72
4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT);
4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4044: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
4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4053: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
4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4063: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)
4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
ARM GAS /tmp/ccJ8PJrU.s page 73
4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */
4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 **** else
4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN;
4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 74
4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt;
4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError;
4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL;
4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX
4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
ARM GAS /tmp/ccJ8PJrU.s page 75
4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
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 **** /* Process Unlocked */
4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */
4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4228: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
4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4237: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
4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4246: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)
4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
ARM GAS /tmp/ccJ8PJrU.s page 76
4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 ****
4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
ARM GAS /tmp/ccJ8PJrU.s page 77
4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4328: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
4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during
4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer
4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent
4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS
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_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S
4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions)
4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp;
4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions));
4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4347: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)
4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U))
4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM;
4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */
4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */
4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */
ARM GAS /tmp/ccJ8PJrU.s page 78
4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */
4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */
4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 **** /* Nothing to do */
4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN;
4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */
ARM GAS /tmp/ccJ8PJrU.s page 79
4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK;
4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */
4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */
4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt;
4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */
4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError;
4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */
4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL;
4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR,
4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM;
4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK)
4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */
4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0;
4467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */
4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */
4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA;
4476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 80
4477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR);
4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
4485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */
4487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */
4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
4489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
4496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
4500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */
4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT);
4502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 **** * @brief Enable the Address listen mode with Interrupt.
4513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c)
4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
4520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
4523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the Address Match interrupt */
4525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
4532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 81
4534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt.
4537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C
4539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
4544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp;
4545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */
4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
4548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK;
4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
4554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the Address Match interrupt */
4556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
4557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY;
4563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt.
4568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
4571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
4572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)
4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode;
4577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmp_mode == HAL_I2C_MODE_MASTER) || (tmp_mode == HAL_I2C_MODE_MEM))
4579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
4585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
4588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
4590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 82
4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
4593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
4597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */
4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT;
4601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */
4603: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
4604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP);
4605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
4608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process
4610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current
4611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */
4612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
4613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
4615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
4617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong usage of abort function */
4619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */
4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
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 **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks
4629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
4630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request.
4634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */
4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/
4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferISR != NULL)
4646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources);
ARM GAS /tmp/ccJ8PJrU.s page 83
4648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request.
4653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c)
4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
4661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
4662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/
4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \
4665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR;
4668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */
4670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
4671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/
4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \
4675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR;
4678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */
4680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
4681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/
4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \
4685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
4686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO;
4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */
4690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
4691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
4695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */
4697: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_
4698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror);
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 **** /**
4704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback.
ARM GAS /tmp/ccJ8PJrU.s page 84
4705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file
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 **** * @brief Master Rx Transfer completed callback.
4721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
4726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file
4732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback.
4736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c)
4741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file
4747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback.
4752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c)
4757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
ARM GAS /tmp/ccJ8PJrU.s page 85
4762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file
4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Address Match callback.
4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE
4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code
4772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM
4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection);
4779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode);
4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file
4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Listen Complete callback.
4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file
4799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback.
4804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c)
4809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file
4815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
ARM GAS /tmp/ccJ8PJrU.s page 86
4819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback.
4820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c)
4825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file
4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C error callback.
4836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
4841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file
4847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C abort callback.
4852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
4855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c)
4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
4859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c);
4860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed,
4862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file
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 ****
4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
4868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions
4871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions
4872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *
4873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim
4874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
4875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions #####
ARM GAS /tmp/ccJ8PJrU.s page 87
4876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===============================================================================
4877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..]
4878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral
4879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the data flow.
4880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim
4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{
4883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C handle state.
4887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL state
4890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c)
4892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */
4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->State;
4895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode.
4899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for I2C module
4901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL mode
4902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c)
4904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode;
4906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C error code.
4910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval I2C Error Code
4913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c)
4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode;
4917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
4921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @}
4925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions
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 ****
4931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
4932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt.
ARM GAS /tmp/ccJ8PJrU.s page 88
4933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
4935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
4936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
4938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
4940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
4943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
4944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
4947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
4950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
4953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
4956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
4963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
4964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
4967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
4970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
4976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \
4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
4979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)))
4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 89
4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
4992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
4995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
4996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
4998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
5000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
5005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START
5013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
5018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
5020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
5021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize,
5025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
ARM GAS /tmp/ccJ8PJrU.s page 90
5047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
5054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
5057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
5078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
5081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
5082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt.
5092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
5102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 91
5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
5122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
5123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
5126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
5137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
5138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU)
5140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
5143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
5146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */
5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
5154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
5157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \
5160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
ARM GAS /tmp/ccJ8PJrU.s page 92
5161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U))
5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
5170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
5177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \
5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */
5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
5199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT);
5200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
5204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
5210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 93
5218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
5229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
5237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags);
5241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt.
5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
5262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \
5268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags);
5272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
5274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
ARM GAS /tmp/ccJ8PJrU.s page 94
5275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
5277: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 */
5278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/
5279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
5283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
5284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
5285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
5290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
5298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5309: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*/
5310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
5317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \
5324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
5325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
ARM GAS /tmp/ccJ8PJrU.s page 95
5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
5333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \
5339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
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 **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \
5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
5347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags);
5349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
5351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
5352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */
5354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */
5355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if all Data have already been sent */
5356: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 */
5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U)
5358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */
5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr;
5361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
5371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 96
5389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA.
5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
5402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
5417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
5419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
5421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC interrupt */
5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI);
5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Recover Slave address */
5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD);
5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
5439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
5441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 97
5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
5447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
5452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
5454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
5458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */
5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP);
5463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
5475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */
5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
5494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
5497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE)
5499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */
5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME)
5502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 98
5503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */
5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c);
5510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */
5516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
5525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA.
5539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
5549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */
5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */
ARM GAS /tmp/ccJ8PJrU.s page 99
5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */
5563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */
5564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */
5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
5566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \
5571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
5572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */
5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress;
5575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */
5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU;
5578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \
5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */
5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable only Error interrupt */
5586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
5589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */
5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
5595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
5597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
ARM GAS /tmp/ccJ8PJrU.s page 100
5617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
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 **** else
5626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */
5628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE);
5630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \
5633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
5634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */
5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
5637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */
5639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT);
5640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ;
5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
5647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
5650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
5652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
5656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */
5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
5665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */
5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
5668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */
5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize;
5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 101
5674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */
5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN;
5678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN;
5682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */
5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags);
5689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA.
5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled.
5707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags,
5710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources)
5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
5715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c);
5718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */
5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \
5721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
5722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */
5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags);
5725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \
5727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
5730: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 */
ARM GAS /tmp/ccJ8PJrU.s page 102
5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */
5732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) ||
5734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */
5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)
5740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U)
5742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */
5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
5750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET)
5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U)
5754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U;
5756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (treatdmanack == 1U)
5761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
5763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
5764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
5765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags);
5768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM
5770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
5779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
5780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
ARM GAS /tmp/ccJ8PJrU.s page 103
5788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5789: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*/
5790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
5795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */
5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpstate = hi2c->State;
5798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
5802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
5804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN
5806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
5808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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
5820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */
5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
5823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \
5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
5827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags);
5829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
5833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques
5843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
ARM GAS /tmp/ccJ8PJrU.s page 104
5845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
5847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
5850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
5851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t
5855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
5858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */
5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK)
5889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request
5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
5899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
5900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value
5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface
ARM GAS /tmp/ccJ8PJrU.s page 105
5902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address
5903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address
5904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
5905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
5906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
5907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress,
5909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T
5910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */
5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT)
5922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */
5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */
5927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
5928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */
5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress);
5931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */
5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK)
5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */
5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress);
5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TC flag is set */
5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK)
5944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Address complete process callback.
5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
5955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
5956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 106
5959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection;
5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode;
5961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code;
5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code;
5963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(ITFlags);
5966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */
5968: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)
5969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c);
5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
5974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bits addressing mode is selected */
5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
5977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK))
5979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd1code;
5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++;
5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
5983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Address Event counter */
5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount = 0U;
5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
5989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
5994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
5996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd2code;
6004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
6014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
ARM GAS /tmp/ccJ8PJrU.s page 107
6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */
6020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */
6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT);
6024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */
6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode);
6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode);
6033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Else clear address flag only */
6037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */
6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR);
6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master sequential complete process.
6049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c)
6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */
6058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
6060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
6066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
6067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
ARM GAS /tmp/ccJ8PJrU.s page 108
6073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
6076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
6079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
6084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
6087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
6094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
6096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave sequential complete process.
6102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c)
6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
6108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
6114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
6119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
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 **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN)
6129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 109
6130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */
6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
6133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
6136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
6143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
6145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN)
6149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */
6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
6153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
6163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
6165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
6170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master complete process.
6175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
6177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
6183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg;
6184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
ARM GAS /tmp/ccJ8PJrU.s page 110
6187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
6190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT);
6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
6193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
6195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT);
6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
6202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET)
6212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set acknowledge error code */
6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Fetch Last receive data if any */
6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET))
6222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR;
6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
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 **** /* Flush TX register */
6229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */
6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode;
6233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE))
6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */
6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX)
6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
ARM GAS /tmp/ccJ8PJrU.s page 111
6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
6247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c);
6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c);
6258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
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 **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c);
6270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c);
6272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */
6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
6277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM)
6282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c);
6291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c);
6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
ARM GAS /tmp/ccJ8PJrU.s page 112
6301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c);
6305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c);
6307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
6313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave complete process.
6318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
6320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
6325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
6328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */
6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN))
6334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT);
6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT);
6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
6342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN)
6344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT);
6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
6351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */
6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
6355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
6357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
ARM GAS /tmp/ccJ8PJrU.s page 113
6358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */
6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET)
6364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx);
6371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET)
6374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx);
6381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */
6386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)
6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */
6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE;
6393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
6396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
6399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
6401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */
6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U)
6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
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 **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \
ARM GAS /tmp/ccJ8PJrU.s page 114
6415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
6416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */
6418: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 */
6419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/
6420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */
6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME))
6424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
6425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */
6426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME)
6431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
6436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
6439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6450: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*/
6451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
6452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME))
6458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
6461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE)
6469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode);
ARM GAS /tmp/ccJ8PJrU.s page 115
6472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN)
6475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */
6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags);
6478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
6481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */
6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
6495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
6497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX)
6501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c);
6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c);
6513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c);
6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c);
6528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
ARM GAS /tmp/ccJ8PJrU.s page 116
6529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Listen complete process.
6534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle.
6536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET)
6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR;
6552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */
6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++;
6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U))
6557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
6560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */
6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all Interrupts*/
6567: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);
6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */
6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
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 **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */
6576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c);
6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c);
6580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C interrupts error process.
6585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
ARM GAS /tmp/ccJ8PJrU.s page 117
6586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ErrorCode Error code to handle.
6587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
6592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate;
6594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
6599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set new error code */
6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode;
6602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */
6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) ||
6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
6606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
6607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */
6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT);
6610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */
6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN;
6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
6614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts */
6618: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);
6619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
6621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */
6624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This change will be do later */
6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT)
6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */
6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET)
6632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
6634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
6641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 118
6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
6645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX transfer if any */
6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState;
6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \
6651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN)
6654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY)
6659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
6661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort;
6663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */
6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK)
6669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */
6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx);
6672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX transfer if any */
6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \
6681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
6682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN)
6684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY)
6689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback :
6691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */
6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort;
6693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */
6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK)
6699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 119
6700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */
6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx);
6702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Error callback treatment.
6717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
6718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c)
6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
6723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c);
6733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c);
6735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
6740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
6743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c);
6747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else
6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c);
6749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
6750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
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 I2C Tx data register flush process.
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
ARM GAS /tmp/ccJ8PJrU.s page 120
6757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c)
6759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
29 .loc 1 6759 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.
6760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a pending TXIS flag is set */
6761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */
6762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET)
34 .loc 1 6762 3 view .LVU1
35 .loc 1 6762 7 is_stmt 0 view .LVU2
36 0000 0368 ldr r3, [r0]
37 0002 9A69 ldr r2, [r3, #24]
38 .loc 1 6762 6 view .LVU3
39 0004 12F0020F tst r2, #2
40 0008 01D0 beq .L2
6763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U;
41 .loc 1 6764 5 is_stmt 1 view .LVU4
42 .loc 1 6764 26 is_stmt 0 view .LVU5
43 000a 0022 movs r2, #0
44 000c 9A62 str r2, [r3, #40]
45 .L2:
6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register if not empty */
6768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)
46 .loc 1 6768 3 is_stmt 1 view .LVU6
47 .loc 1 6768 7 is_stmt 0 view .LVU7
48 000e 0368 ldr r3, [r0]
49 0010 9A69 ldr r2, [r3, #24]
50 .loc 1 6768 6 view .LVU8
51 0012 12F0010F tst r2, #1
52 0016 03D1 bne .L1
6769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE);
53 .loc 1 6770 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:
6771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
58 .loc 1 6772 1 is_stmt 0 view .LVU10
59 0020 7047 bx lr
60 .cfi_endproc
61 .LFE188:
63 .section .text.I2C_TransferConfig,"ax",%progbits
64 .align 1
65 .syntax unified
66 .thumb
67 .thumb_func
69 I2C_TransferConfig:
70 .LVL1:
71 .LFB200:
ARM GAS /tmp/ccJ8PJrU.s page 121
6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback.
6776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
6777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma)
6780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
6791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
6810: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,
6811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
6812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
6819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback.
6827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
6828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
ARM GAS /tmp/ccJ8PJrU.s page 122
6830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma)
6831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME))
6837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN;
6840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */
6842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6848: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 */
6849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
6850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback.
6856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
6857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma)
6860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */
6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U)
6869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */
6871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT);
6872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */
6874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */
6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize;
6878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */
6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE)
6881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */
6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE)
6884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U;
6886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 123
6887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE;
6890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
6895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */
6898: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,
6899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
6900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
6907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT);
6908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback.
6915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
6916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma)
6919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
6923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \
6925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
6926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */
6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN;
6929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */
6931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c);
6932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
6934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */
6936: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 */
6937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */
6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication error callback.
ARM GAS /tmp/ccJ8PJrU.s page 124
6944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle
6945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma)
6948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Acknowledge */
6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK;
6954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */
6956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA);
6957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication abort callback
6962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure).
6963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle.
6964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
6965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma)
6967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
6969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent);
6970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset AbortCpltCallback */
6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL)
6973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL)
6977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c);
6982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
6986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits
6987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * until a flag is no longer in the specified status.
6988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
6989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
6990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check.
6991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET).
6992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
6993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
6994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
6995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
6996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta
6997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart)
6998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
7000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 125
7001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
7003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
7005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
7008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
7009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
7011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status))
7013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
7021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
7026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
7029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag.
7030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
7032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
7033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
7034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
7035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
7036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
7037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
7038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
7040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
7043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
7045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
7048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
7049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
7051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET))
7053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 126
7058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
7062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
7067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
7070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag.
7071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
7073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
7074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
7075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
7076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
7077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
7078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
7079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
7081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
7084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
7086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
7090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET))
7092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
7101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK;
7105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
7108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag.
7109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
7111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
7112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
7113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
7114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
ARM GAS /tmp/ccJ8PJrU.s page 127
7115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout,
7116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart)
7117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
7119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK))
7121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */
7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK)
7124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
7126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */
7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK))
7130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an RXNE is pending */
7132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */
7133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U))
7134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return HAL_OK */
7136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */
7137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_OK;
7138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */
7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET)
7142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
7144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
7145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
7147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
7148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
7150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
7151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
7159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
7161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK))
7168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET))
7170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT;
ARM GAS /tmp/ccJ8PJrU.s page 128
7172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
7178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
7182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
7185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication.
7186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
7188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration
7189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value
7190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status
7191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
7192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti
7193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
7196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0;
7197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
7198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp1;
7199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2;
7200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF))
7202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACKF Flag */
7204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF);
7205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */
7207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */
7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK))
7209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
7211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY)
7212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
7214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP);
7216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode;
7217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */
7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \
7220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
7221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE))
7222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */
7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP;
7225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Tick with new reference */
7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick();
7228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 129
7229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
7231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */
7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF)
7234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT;
7236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
7238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break;
7240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */
7247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status == HAL_OK)
7248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */
7250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF);
7251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF;
7254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
7256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Refresh Content of Status register */
7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** itflag = hi2c->Instance->ISR;
7260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Then verify if an additional errors occurs */
7262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a Bus error occurred */
7263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR))
7264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR;
7266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */
7268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR);
7269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
7271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */
7274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR))
7275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR;
7277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */
7279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR);
7280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
7282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */
7285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO))
ARM GAS /tmp/ccJ8PJrU.s page 130
7286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO;
7288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */
7290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO);
7291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR;
7293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status != HAL_OK)
7296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */
7298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c);
7299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */
7301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c);
7302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= error_code;
7304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
7305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */
7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c);
7309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status;
7312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
7315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar
7316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
7317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed.
7318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed.
7319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter must be a value between 0 and 255.
7320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation.
7321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
7322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode .
7323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode.
7324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode.
7325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation.
7326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values:
7327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition.
7328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0).
7329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request.
7330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request.
7331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
7332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
7333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t
7334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request)
7335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
72 .loc 1 7335 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 7335 1 is_stmt 0 view .LVU12
78 0000 10B4 push {r4}
ARM GAS /tmp/ccJ8PJrU.s page 131
79 .cfi_def_cfa_offset 4
80 .cfi_offset 4, -4
81 0002 019C ldr r4, [sp, #4]
7336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
7337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
82 .loc 1 7337 3 is_stmt 1 view .LVU13
7338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode));
83 .loc 1 7338 3 view .LVU14
7339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request));
84 .loc 1 7339 3 view .LVU15
7340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \
85 .loc 1 7342 3 view .LVU16
86 .loc 1 7342 52 is_stmt 0 view .LVU17
87 0004 C1F30901 ubfx r1, r1, #0, #10
88 .LVL2:
89 .loc 1 7342 68 view .LVU18
90 0008 41EA0241 orr r1, r1, r2, lsl #16
7343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
91 .loc 1 7343 88 view .LVU19
92 000c 1943 orrs r1, r1, r3
7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
93 .loc 1 7342 19 view .LVU20
94 000e 2143 orrs r1, r1, r4
7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \
95 .loc 1 7342 12 view .LVU21
96 0010 21F00041 bic r1, r1, #-2147483648
97 .LVL3:
7344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U));
7345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* update CR2 register */
7347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \
98 .loc 1 7347 3 is_stmt 1 view .LVU22
99 0014 0268 ldr r2, [r0]
100 .LVL4:
101 .loc 1 7347 3 is_stmt 0 view .LVU23
102 0016 5368 ldr r3, [r2, #4]
103 .LVL5:
104 .loc 1 7347 3 view .LVU24
105 0018 640D lsrs r4, r4, #21
106 001a 04F48064 and r4, r4, #1024
107 001e 44F07F74 orr r4, r4, #66846720
108 0022 44F45834 orr r4, r4, #221184
109 0026 44F47F74 orr r4, r4, #1020
110 002a 44F00304 orr r4, r4, #3
111 002e 23EA0403 bic r3, r3, r4
112 0032 0B43 orrs r3, r3, r1
113 0034 5360 str r3, [r2, #4]
7348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \
7349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \
7350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp);
7351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
114 .loc 1 7351 1 view .LVU25
115 0036 5DF8044B ldr r4, [sp], #4
116 .cfi_restore 4
117 .cfi_def_cfa_offset 0
ARM GAS /tmp/ccJ8PJrU.s page 132
118 .LVL6:
119 .loc 1 7351 1 view .LVU26
120 003a 7047 bx lr
121 .cfi_endproc
122 .LFE200:
124 .section .text.I2C_Enable_IRQ,"ax",%progbits
125 .align 1
126 .syntax unified
127 .thumb
128 .thumb_func
130 I2C_Enable_IRQ:
131 .LVL7:
132 .LFB201:
7352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
7354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts.
7355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
7357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
7358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
7359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
7360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
7361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
133 .loc 1 7361 1 is_stmt 1 view -0
134 .cfi_startproc
135 @ args = 0, pretend = 0, frame = 0
136 @ frame_needed = 0, uses_anonymous_args = 0
137 @ link register save eliminated.
7362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
138 .loc 1 7362 3 view .LVU28
7363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \
139 .loc 1 7364 3 view .LVU29
140 .loc 1 7364 12 is_stmt 0 view .LVU30
141 0000 436B ldr r3, [r0, #52]
142 .loc 1 7364 6 view .LVU31
143 0002 234A ldr r2, .L24
144 0004 9342 cmp r3, r2
145 0006 1FD0 beq .L7
146 .loc 1 7364 45 discriminator 1 view .LVU32
147 0008 224A ldr r2, .L24+4
148 000a 9342 cmp r3, r2
149 000c 1CD0 beq .L7
7365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \
150 .loc 1 7365 44 view .LVU33
151 000e 224A ldr r2, .L24+8
152 0010 9342 cmp r3, r2
153 0012 19D0 beq .L7
7366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA))
7367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
154 .loc 1 7368 5 is_stmt 1 view .LVU34
155 .loc 1 7368 8 is_stmt 0 view .LVU35
156 0014 11F4004F tst r1, #32768
157 0018 11D1 bne .L18
7362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
158 .loc 1 7362 12 view .LVU36
ARM GAS /tmp/ccJ8PJrU.s page 133
159 001a 0023 movs r3, #0
160 .L8:
161 .LVL8:
7369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
7371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
7372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
162 .loc 1 7374 5 is_stmt 1 view .LVU37
163 .loc 1 7374 8 is_stmt 0 view .LVU38
164 001c 11F0010F tst r1, #1
165 0020 01D0 beq .L9
7375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
7377: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;
166 .loc 1 7377 7 is_stmt 1 view .LVU39
167 .loc 1 7377 14 is_stmt 0 view .LVU40
168 0022 43F0F203 orr r3, r3, #242
169 .LVL9:
170 .L9:
7378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
171 .loc 1 7380 5 is_stmt 1 view .LVU41
172 .loc 1 7380 8 is_stmt 0 view .LVU42
173 0026 11F0020F tst r1, #2
174 002a 01D0 beq .L10
7381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
7383: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;
175 .loc 1 7383 7 is_stmt 1 view .LVU43
176 .loc 1 7383 14 is_stmt 0 view .LVU44
177 002c 43F0F403 orr r3, r3, #244
178 .LVL10:
179 .L10:
7384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
180 .loc 1 7386 5 is_stmt 1 view .LVU45
181 .loc 1 7386 8 is_stmt 0 view .LVU46
182 0030 1029 cmp r1, #16
183 0032 06D0 beq .L20
184 .L11:
7387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
7390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
185 .loc 1 7392 5 is_stmt 1 view .LVU47
186 .loc 1 7392 8 is_stmt 0 view .LVU48
187 0034 2029 cmp r1, #32
188 0036 1BD1 bne .L12
7393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
7395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
ARM GAS /tmp/ccJ8PJrU.s page 134
189 .loc 1 7395 7 is_stmt 1 view .LVU49
190 .loc 1 7395 14 is_stmt 0 view .LVU50
191 0038 43F02003 orr r3, r3, #32
192 .LVL11:
193 .loc 1 7395 14 view .LVU51
194 003c 18E0 b .L12
195 .LVL12:
196 .L18:
7371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
197 .loc 1 7371 14 view .LVU52
198 003e B823 movs r3, #184
199 0040 ECE7 b .L8
200 .LVL13:
201 .L20:
7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
202 .loc 1 7389 7 is_stmt 1 view .LVU53
7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
203 .loc 1 7389 14 is_stmt 0 view .LVU54
204 0042 43F09003 orr r3, r3, #144
205 .LVL14:
7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
206 .loc 1 7389 14 view .LVU55
207 0046 F5E7 b .L11
208 .LVL15:
209 .L7:
7396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
7400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
210 .loc 1 7401 5 is_stmt 1 view .LVU56
211 .loc 1 7401 8 is_stmt 0 view .LVU57
212 0048 11F4004F tst r1, #32768
213 004c 15D1 bne .L19
7362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
214 .loc 1 7362 12 view .LVU58
215 004e 0023 movs r3, #0
216 .L13:
217 .LVL16:
7402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */
7404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
7405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
218 .loc 1 7407 5 is_stmt 1 view .LVU59
219 .loc 1 7407 8 is_stmt 0 view .LVU60
220 0050 11F0010F tst r1, #1
221 0054 01D0 beq .L14
7408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */
7410: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;
222 .loc 1 7410 7 is_stmt 1 view .LVU61
223 .loc 1 7410 14 is_stmt 0 view .LVU62
224 0056 43F0F203 orr r3, r3, #242
225 .LVL17:
ARM GAS /tmp/ccJ8PJrU.s page 135
226 .L14:
7411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
227 .loc 1 7413 5 is_stmt 1 view .LVU63
228 .loc 1 7413 8 is_stmt 0 view .LVU64
229 005a 11F0020F tst r1, #2
230 005e 01D0 beq .L15
7414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */
7416: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;
231 .loc 1 7416 7 is_stmt 1 view .LVU65
232 .loc 1 7416 14 is_stmt 0 view .LVU66
233 0060 43F0F403 orr r3, r3, #244
234 .LVL18:
235 .L15:
7417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
236 .loc 1 7419 5 is_stmt 1 view .LVU67
237 .loc 1 7419 8 is_stmt 0 view .LVU68
238 0064 1029 cmp r1, #16
239 0066 0AD0 beq .L21
240 .L16:
7420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
7423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
241 .loc 1 7425 5 is_stmt 1 view .LVU69
242 .loc 1 7425 8 is_stmt 0 view .LVU70
243 0068 2029 cmp r1, #32
244 006a 0BD0 beq .L22
245 .L17:
7426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI);
7429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
246 .loc 1 7431 5 is_stmt 1 view .LVU71
247 .loc 1 7431 8 is_stmt 0 view .LVU72
248 006c 4029 cmp r1, #64
249 006e 0CD0 beq .L23
250 .L12:
7432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
7435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable interrupts only at the end */
7439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */
7440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all interrupts requested done */
7441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr);
251 .loc 1 7441 3 is_stmt 1 view .LVU73
ARM GAS /tmp/ccJ8PJrU.s page 136
252 0070 0168 ldr r1, [r0]
253 .LVL19:
254 .loc 1 7441 3 is_stmt 0 view .LVU74
255 0072 0A68 ldr r2, [r1]
256 0074 1343 orrs r3, r3, r2
257 .LVL20:
258 .loc 1 7441 3 view .LVU75
259 0076 0B60 str r3, [r1]
7442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
260 .loc 1 7442 1 view .LVU76
261 0078 7047 bx lr
262 .LVL21:
263 .L19:
7404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
264 .loc 1 7404 14 view .LVU77
265 007a B823 movs r3, #184
266 007c E8E7 b .L13
267 .LVL22:
268 .L21:
7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
269 .loc 1 7422 7 is_stmt 1 view .LVU78
7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
270 .loc 1 7422 14 is_stmt 0 view .LVU79
271 007e 43F09003 orr r3, r3, #144
272 .LVL23:
7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
273 .loc 1 7422 14 view .LVU80
274 0082 F1E7 b .L16
275 .L22:
7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
276 .loc 1 7428 7 is_stmt 1 view .LVU81
7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
277 .loc 1 7428 14 is_stmt 0 view .LVU82
278 0084 43F06003 orr r3, r3, #96
279 .LVL24:
7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
280 .loc 1 7428 14 view .LVU83
281 0088 F0E7 b .L17
282 .L23:
7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
283 .loc 1 7434 7 is_stmt 1 view .LVU84
7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
284 .loc 1 7434 14 is_stmt 0 view .LVU85
285 008a 43F04003 orr r3, r3, #64
286 .LVL25:
7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
287 .loc 1 7434 14 view .LVU86
288 008e EFE7 b .L12
289 .L25:
290 .align 2
291 .L24:
292 0090 00000000 .word I2C_Master_ISR_DMA
293 0094 00000000 .word I2C_Slave_ISR_DMA
294 0098 00000000 .word I2C_Mem_ISR_DMA
295 .cfi_endproc
296 .LFE201:
298 .section .text.I2C_Disable_IRQ,"ax",%progbits
ARM GAS /tmp/ccJ8PJrU.s page 137
299 .align 1
300 .syntax unified
301 .thumb
302 .thumb_func
304 I2C_Disable_IRQ:
305 .LVL26:
306 .LFB202:
7443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
7445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts.
7446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
7447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C.
7448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
7449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
7450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
7451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest)
7452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
307 .loc 1 7452 1 is_stmt 1 view -0
308 .cfi_startproc
309 @ args = 0, pretend = 0, frame = 0
310 @ frame_needed = 0, uses_anonymous_args = 0
311 @ link register save eliminated.
7453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U;
312 .loc 1 7453 3 view .LVU88
7454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT)
313 .loc 1 7455 3 view .LVU89
314 .loc 1 7455 6 is_stmt 0 view .LVU90
315 0000 11F0010F tst r1, #1
316 0004 09D0 beq .L33
7456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and TXI interrupts */
7458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI;
317 .loc 1 7458 5 is_stmt 1 view .LVU91
318 .LVL27:
7459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7460: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)
319 .loc 1 7460 5 view .LVU92
320 .loc 1 7460 24 is_stmt 0 view .LVU93
321 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
322 .loc 1 7460 8 view .LVU94
323 000a 03F02803 and r3, r3, #40
324 000e 282B cmp r3, #40
325 0010 01D0 beq .L36
7461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
7463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
326 .loc 1 7463 14 view .LVU95
327 0012 F223 movs r3, #242
328 0014 02E0 b .L27
329 .L36:
7458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
330 .loc 1 7458 12 view .LVU96
331 0016 4223 movs r3, #66
332 0018 00E0 b .L27
333 .LVL28:
334 .L33:
ARM GAS /tmp/ccJ8PJrU.s page 138
7453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
335 .loc 1 7453 12 view .LVU97
336 001a 0023 movs r3, #0
337 .LVL29:
338 .L27:
7464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT)
339 .loc 1 7467 3 is_stmt 1 view .LVU98
340 .loc 1 7467 6 is_stmt 0 view .LVU99
341 001c 11F0020F tst r1, #2
342 0020 09D0 beq .L28
7468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and RXI interrupts */
7470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI;
343 .loc 1 7470 5 is_stmt 1 view .LVU100
344 .loc 1 7470 12 is_stmt 0 view .LVU101
345 0022 43F0440C orr ip, r3, #68
346 .LVL30:
7471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7472: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)
347 .loc 1 7472 5 is_stmt 1 view .LVU102
348 .loc 1 7472 24 is_stmt 0 view .LVU103
349 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
350 .loc 1 7472 8 view .LVU104
351 002a 02F02802 and r2, r2, #40
352 002e 282A cmp r2, #40
353 0030 10D0 beq .L35
7473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */
7475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
354 .loc 1 7475 7 is_stmt 1 view .LVU105
355 .loc 1 7475 14 is_stmt 0 view .LVU106
356 0032 43F0F403 orr r3, r3, #244
357 .LVL31:
358 .L28:
7476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT)
359 .loc 1 7479 3 is_stmt 1 view .LVU107
360 .loc 1 7479 6 is_stmt 0 view .LVU108
361 0036 11F4004F tst r1, #32768
362 003a 0DD1 bne .L37
363 .L29:
7480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */
7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI;
7483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT)
364 .loc 1 7485 3 is_stmt 1 view .LVU109
365 .loc 1 7485 6 is_stmt 0 view .LVU110
366 003c 1029 cmp r1, #16
367 003e 0ED0 beq .L38
368 .L30:
ARM GAS /tmp/ccJ8PJrU.s page 139
7486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */
7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI;
7489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT)
369 .loc 1 7491 3 is_stmt 1 view .LVU111
370 .loc 1 7491 6 is_stmt 0 view .LVU112
371 0040 2029 cmp r1, #32
372 0042 0FD0 beq .L39
373 .L31:
7492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */
7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI;
7495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT)
374 .loc 1 7497 3 is_stmt 1 view .LVU113
375 .loc 1 7497 6 is_stmt 0 view .LVU114
376 0044 4029 cmp r1, #64
377 0046 10D0 beq .L40
378 .L32:
7498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */
7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI;
7501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable interrupts only at the end */
7504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */
7505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all disable interrupts request are not done */
7506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr);
379 .loc 1 7506 3 is_stmt 1 view .LVU115
380 0048 0168 ldr r1, [r0]
381 .LVL32:
382 .loc 1 7506 3 is_stmt 0 view .LVU116
383 004a 0A68 ldr r2, [r1]
384 004c 22EA0303 bic r3, r2, r3
385 .LVL33:
386 .loc 1 7506 3 view .LVU117
387 0050 0B60 str r3, [r1]
7507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
388 .loc 1 7507 1 view .LVU118
389 0052 7047 bx lr
390 .LVL34:
391 .L35:
7470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
392 .loc 1 7470 12 view .LVU119
393 0054 6346 mov r3, ip
394 0056 EEE7 b .L28
395 .LVL35:
396 .L37:
7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
397 .loc 1 7482 5 is_stmt 1 view .LVU120
7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
398 .loc 1 7482 12 is_stmt 0 view .LVU121
399 0058 43F0B803 orr r3, r3, #184
400 .LVL36:
ARM GAS /tmp/ccJ8PJrU.s page 140
7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
401 .loc 1 7482 12 view .LVU122
402 005c EEE7 b .L29
403 .L38:
7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
404 .loc 1 7488 5 is_stmt 1 view .LVU123
7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
405 .loc 1 7488 12 is_stmt 0 view .LVU124
406 005e 43F09003 orr r3, r3, #144
407 .LVL37:
7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
408 .loc 1 7488 12 view .LVU125
409 0062 EDE7 b .L30
410 .L39:
7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
411 .loc 1 7494 5 is_stmt 1 view .LVU126
7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
412 .loc 1 7494 12 is_stmt 0 view .LVU127
413 0064 43F02003 orr r3, r3, #32
414 .LVL38:
7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
415 .loc 1 7494 12 view .LVU128
416 0068 ECE7 b .L31
417 .L40:
7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
418 .loc 1 7500 5 is_stmt 1 view .LVU129
7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
419 .loc 1 7500 12 is_stmt 0 view .LVU130
420 006a 43F04003 orr r3, r3, #64
421 .LVL39:
7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
422 .loc 1 7500 12 view .LVU131
423 006e EBE7 b .L32
424 .cfi_endproc
425 .LFE202:
427 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits
428 .align 1
429 .syntax unified
430 .thumb
431 .thumb_func
433 I2C_ConvertOtherXferOptions:
434 .LVL40:
435 .LFB203:
7508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
7510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions.
7511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle.
7512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None
7513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */
7514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c)
7515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
436 .loc 1 7515 1 is_stmt 1 view -0
437 .cfi_startproc
438 @ args = 0, pretend = 0, frame = 0
439 @ frame_needed = 0, uses_anonymous_args = 0
440 @ link register save eliminated.
7516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */
ARM GAS /tmp/ccJ8PJrU.s page 141
7517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
7518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */
7519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME)
441 .loc 1 7519 3 view .LVU133
442 .loc 1 7519 11 is_stmt 0 view .LVU134
443 0000 C36A ldr r3, [r0, #44]
444 .loc 1 7519 6 view .LVU135
445 0002 AA2B cmp r3, #170
446 0004 04D0 beq .L44
7520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME;
7522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */
7524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */
7525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */
7526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */
7527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME)
447 .loc 1 7527 8 is_stmt 1 view .LVU136
448 .loc 1 7527 16 is_stmt 0 view .LVU137
449 0006 C36A ldr r3, [r0, #44]
450 .loc 1 7527 11 view .LVU138
451 0008 B3F52A4F cmp r3, #43520
452 000c 03D0 beq .L45
453 .L41:
7528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME;
7530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else
7532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */
7534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
454 .loc 1 7535 1 view .LVU139
455 000e 7047 bx lr
456 .L44:
7521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
457 .loc 1 7521 5 is_stmt 1 view .LVU140
7521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
458 .loc 1 7521 23 is_stmt 0 view .LVU141
459 0010 0023 movs r3, #0
460 0012 C362 str r3, [r0, #44]
461 0014 7047 bx lr
462 .L45:
7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
463 .loc 1 7529 5 is_stmt 1 view .LVU142
7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
464 .loc 1 7529 23 is_stmt 0 view .LVU143
465 0016 4FF00073 mov r3, #33554432
466 001a C362 str r3, [r0, #44]
7534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
467 .loc 1 7534 3 is_stmt 1 view .LVU144
468 .loc 1 7535 1 is_stmt 0 view .LVU145
469 001c F7E7 b .L41
470 .cfi_endproc
471 .LFE203:
473 .section .text.I2C_IsErrorOccurred,"ax",%progbits
474 .align 1
ARM GAS /tmp/ccJ8PJrU.s page 142
475 .syntax unified
476 .thumb
477 .thumb_func
479 I2C_IsErrorOccurred:
480 .LVL41:
481 .LFB199:
7193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
482 .loc 1 7193 1 is_stmt 1 view -0
483 .cfi_startproc
484 @ args = 0, pretend = 0, frame = 0
485 @ frame_needed = 0, uses_anonymous_args = 0
7193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
486 .loc 1 7193 1 is_stmt 0 view .LVU147
487 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
488 .cfi_def_cfa_offset 24
489 .cfi_offset 4, -24
490 .cfi_offset 5, -20
491 .cfi_offset 6, -16
492 .cfi_offset 7, -12
493 .cfi_offset 8, -8
494 .cfi_offset 14, -4
495 0004 0446 mov r4, r0
7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
496 .loc 1 7194 3 is_stmt 1 view .LVU148
497 .LVL42:
7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0;
498 .loc 1 7195 3 view .LVU149
7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0;
499 .loc 1 7195 27 is_stmt 0 view .LVU150
500 0006 0368 ldr r3, [r0]
7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0;
501 .loc 1 7195 12 view .LVU151
502 0008 9E69 ldr r6, [r3, #24]
503 .LVL43:
7196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
504 .loc 1 7196 3 is_stmt 1 view .LVU152
7197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp1;
505 .loc 1 7197 3 view .LVU153
7198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2;
506 .loc 1 7198 3 view .LVU154
7199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
507 .loc 1 7199 3 view .LVU155
7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
508 .loc 1 7201 3 view .LVU156
7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
509 .loc 1 7201 6 is_stmt 0 view .LVU157
510 000a 16F01006 ands r6, r6, #16
511 .LVL44:
7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
512 .loc 1 7201 6 view .LVU158
513 000e 7CD0 beq .L63
514 0010 0D46 mov r5, r1
515 0012 9046 mov r8, r2
7204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
516 .loc 1 7204 5 is_stmt 1 view .LVU159
517 0014 1022 movs r2, #16
518 .LVL45:
ARM GAS /tmp/ccJ8PJrU.s page 143
7204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
519 .loc 1 7204 5 is_stmt 0 view .LVU160
520 0016 DA61 str r2, [r3, #28]
7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
521 .loc 1 7208 5 is_stmt 1 view .LVU161
7196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart = Tickstart;
522 .loc 1 7196 12 is_stmt 0 view .LVU162
523 0018 0026 movs r6, #0
7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
524 .loc 1 7194 21 view .LVU163
525 001a 3746 mov r7, r6
526 .LVL46:
527 .L49:
7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
528 .loc 1 7208 64 is_stmt 1 view .LVU164
7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
529 .loc 1 7208 13 is_stmt 0 view .LVU165
530 001c 2368 ldr r3, [r4]
531 001e 9869 ldr r0, [r3, #24]
7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
532 .loc 1 7208 64 view .LVU166
533 0020 10F0200F tst r0, #32
534 0024 30D1 bne .L55
7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
535 .loc 1 7208 64 discriminator 1 view .LVU167
536 0026 7FBB cbnz r7, .L55
7211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
537 .loc 1 7211 7 is_stmt 1 view .LVU168
7211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
538 .loc 1 7211 10 is_stmt 0 view .LVU169
539 0028 B5F1FF3F cmp r5, #-1
540 002c F6D0 beq .L49
7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
541 .loc 1 7213 9 is_stmt 1 view .LVU170
7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
542 .loc 1 7213 15 is_stmt 0 view .LVU171
543 002e FFF7FEFF bl HAL_GetTick
544 .LVL47:
7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
545 .loc 1 7213 29 discriminator 1 view .LVU172
546 0032 A0EB0800 sub r0, r0, r8
7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
547 .loc 1 7213 12 discriminator 1 view .LVU173
548 0036 A842 cmp r0, r5
549 0038 01D8 bhi .L50
7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
550 .loc 1 7213 53 discriminator 1 view .LVU174
551 003a 002D cmp r5, #0
552 003c EED1 bne .L49
553 .L50:
7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode;
554 .loc 1 7215 11 is_stmt 1 view .LVU175
7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode;
555 .loc 1 7215 33 is_stmt 0 view .LVU176
556 003e 2168 ldr r1, [r4]
7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode;
557 .loc 1 7215 43 view .LVU177
ARM GAS /tmp/ccJ8PJrU.s page 144
558 0040 4B68 ldr r3, [r1, #4]
7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode;
559 .loc 1 7215 16 view .LVU178
560 0042 03F48043 and r3, r3, #16384
561 .LVL48:
7216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
562 .loc 1 7216 11 is_stmt 1 view .LVU179
7216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
563 .loc 1 7216 16 is_stmt 0 view .LVU180
564 0046 94F84220 ldrb r2, [r4, #66] @ zero_extendqisi2
565 004a D2B2 uxtb r2, r2
566 .LVL49:
7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
567 .loc 1 7219 11 is_stmt 1 view .LVU181
7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
568 .loc 1 7219 16 is_stmt 0 view .LVU182
569 004c 8869 ldr r0, [r1, #24]
7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
570 .loc 1 7219 14 view .LVU183
571 004e 10F4004F tst r0, #32768
572 0052 02D0 beq .L53
7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \
573 .loc 1 7219 66 discriminator 1 view .LVU184
574 0054 0BB9 cbnz r3, .L53
7220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE))
575 .loc 1 7220 38 view .LVU185
576 0056 202A cmp r2, #32
577 0058 0ED1 bne .L65
578 .LVL50:
579 .L53:
7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
580 .loc 1 7230 59 is_stmt 1 view .LVU186
7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
581 .loc 1 7230 18 is_stmt 0 view .LVU187
582 005a 2368 ldr r3, [r4]
583 005c 9B69 ldr r3, [r3, #24]
7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
584 .loc 1 7230 59 view .LVU188
585 005e 13F0200F tst r3, #32
586 0062 DBD1 bne .L49
7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
587 .loc 1 7233 13 is_stmt 1 view .LVU189
7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
588 .loc 1 7233 18 is_stmt 0 view .LVU190
589 0064 FFF7FEFF bl HAL_GetTick
590 .LVL51:
7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
591 .loc 1 7233 32 discriminator 1 view .LVU191
592 0068 A0EB0800 sub r0, r0, r8
7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
593 .loc 1 7233 16 discriminator 1 view .LVU192
594 006c 1928 cmp r0, #25
595 006e F4D9 bls .L53
7235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
596 .loc 1 7235 15 is_stmt 1 view .LVU193
7235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
597 .loc 1 7235 26 is_stmt 0 view .LVU194
ARM GAS /tmp/ccJ8PJrU.s page 145
598 0070 46F02006 orr r6, r6, #32
599 .LVL52:
7237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
600 .loc 1 7237 15 is_stmt 1 view .LVU195
7239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
601 .loc 1 7239 15 view .LVU196
7237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
602 .loc 1 7237 22 is_stmt 0 view .LVU197
603 0074 0127 movs r7, #1
7239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
604 .loc 1 7239 15 view .LVU198
605 0076 D1E7 b .L49
606 .LVL53:
607 .L65:
7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
608 .loc 1 7224 13 is_stmt 1 view .LVU199
7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
609 .loc 1 7224 27 is_stmt 0 view .LVU200
610 0078 4B68 ldr r3, [r1, #4]
611 .LVL54:
7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
612 .loc 1 7224 33 view .LVU201
613 007a 43F48043 orr r3, r3, #16384
614 007e 4B60 str r3, [r1, #4]
7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
615 .loc 1 7227 13 is_stmt 1 view .LVU202
7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
616 .loc 1 7227 25 is_stmt 0 view .LVU203
617 0080 FFF7FEFF bl HAL_GetTick
618 .LVL55:
7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
619 .loc 1 7227 25 view .LVU204
620 0084 8046 mov r8, r0
621 .LVL56:
7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
622 .loc 1 7227 25 view .LVU205
623 0086 E8E7 b .L53
624 .LVL57:
625 .L55:
7247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
626 .loc 1 7247 5 is_stmt 1 view .LVU206
7247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
627 .loc 1 7247 8 is_stmt 0 view .LVU207
628 0088 0FB9 cbnz r7, .L57
7250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
629 .loc 1 7250 7 is_stmt 1 view .LVU208
630 008a 2022 movs r2, #32
631 008c DA61 str r2, [r3, #28]
632 .L57:
7253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
633 .loc 1 7253 5 view .LVU209
7253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
634 .loc 1 7253 16 is_stmt 0 view .LVU210
635 008e 46F00406 orr r6, r6, #4
636 .LVL58:
7255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
637 .loc 1 7255 5 is_stmt 1 view .LVU211
ARM GAS /tmp/ccJ8PJrU.s page 146
7255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
638 .loc 1 7255 12 is_stmt 0 view .LVU212
639 0092 0125 movs r5, #1
640 .LVL59:
641 .L47:
7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
642 .loc 1 7259 3 is_stmt 1 view .LVU213
7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
643 .loc 1 7259 16 is_stmt 0 view .LVU214
644 0094 2268 ldr r2, [r4]
7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
645 .loc 1 7259 10 view .LVU215
646 0096 9369 ldr r3, [r2, #24]
647 .LVL60:
7263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
648 .loc 1 7263 3 is_stmt 1 view .LVU216
7263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
649 .loc 1 7263 6 is_stmt 0 view .LVU217
650 0098 13F4807F tst r3, #256
651 009c 05D0 beq .L58
7265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
652 .loc 1 7265 5 is_stmt 1 view .LVU218
7265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
653 .loc 1 7265 16 is_stmt 0 view .LVU219
654 009e 46F00106 orr r6, r6, #1
655 .LVL61:
7268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
656 .loc 1 7268 5 is_stmt 1 view .LVU220
657 00a2 4FF48071 mov r1, #256
658 00a6 D161 str r1, [r2, #28]
7270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
659 .loc 1 7270 5 view .LVU221
660 .LVL62:
7270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
661 .loc 1 7270 12 is_stmt 0 view .LVU222
662 00a8 0125 movs r5, #1
663 .LVL63:
664 .L58:
7274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
665 .loc 1 7274 3 is_stmt 1 view .LVU223
7274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
666 .loc 1 7274 6 is_stmt 0 view .LVU224
667 00aa 13F4806F tst r3, #1024
668 00ae 06D0 beq .L59
7276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
669 .loc 1 7276 5 is_stmt 1 view .LVU225
7276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
670 .loc 1 7276 16 is_stmt 0 view .LVU226
671 00b0 46F00806 orr r6, r6, #8
672 .LVL64:
7279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
673 .loc 1 7279 5 is_stmt 1 view .LVU227
674 00b4 2268 ldr r2, [r4]
675 00b6 4FF48061 mov r1, #1024
676 00ba D161 str r1, [r2, #28]
7281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
677 .loc 1 7281 5 view .LVU228
ARM GAS /tmp/ccJ8PJrU.s page 147
678 .LVL65:
7281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
679 .loc 1 7281 12 is_stmt 0 view .LVU229
680 00bc 0125 movs r5, #1
681 .LVL66:
682 .L59:
7285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
683 .loc 1 7285 3 is_stmt 1 view .LVU230
7285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
684 .loc 1 7285 6 is_stmt 0 view .LVU231
685 00be 13F4007F tst r3, #512
686 00c2 24D0 beq .L60
7287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
687 .loc 1 7287 5 is_stmt 1 view .LVU232
7287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
688 .loc 1 7287 16 is_stmt 0 view .LVU233
689 00c4 46F00206 orr r6, r6, #2
690 .LVL67:
7290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
691 .loc 1 7290 5 is_stmt 1 view .LVU234
692 00c8 2368 ldr r3, [r4]
693 .LVL68:
7290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
694 .loc 1 7290 5 is_stmt 0 view .LVU235
695 00ca 4FF40072 mov r2, #512
696 00ce DA61 str r2, [r3, #28]
7292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
697 .loc 1 7292 5 is_stmt 1 view .LVU236
698 .LVL69:
7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
699 .loc 1 7295 3 view .LVU237
7292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
700 .loc 1 7292 12 is_stmt 0 view .LVU238
701 00d0 0125 movs r5, #1
702 .LVL70:
703 .L61:
7298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
704 .loc 1 7298 5 is_stmt 1 view .LVU239
705 00d2 2046 mov r0, r4
706 00d4 FFF7FEFF bl I2C_Flush_TXDR
707 .LVL71:
7301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
708 .loc 1 7301 5 view .LVU240
709 00d8 2268 ldr r2, [r4]
710 00da 5368 ldr r3, [r2, #4]
711 00dc 23F0FF73 bic r3, r3, #33423360
712 00e0 23F48B33 bic r3, r3, #71168
713 00e4 23F4FF73 bic r3, r3, #510
714 00e8 23F00103 bic r3, r3, #1
715 00ec 5360 str r3, [r2, #4]
7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
716 .loc 1 7303 5 view .LVU241
7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
717 .loc 1 7303 9 is_stmt 0 view .LVU242
718 00ee 636C ldr r3, [r4, #68]
7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
719 .loc 1 7303 21 view .LVU243
ARM GAS /tmp/ccJ8PJrU.s page 148
720 00f0 3343 orrs r3, r3, r6
721 00f2 6364 str r3, [r4, #68]
7304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
722 .loc 1 7304 5 is_stmt 1 view .LVU244
7304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
723 .loc 1 7304 17 is_stmt 0 view .LVU245
724 00f4 2023 movs r3, #32
725 00f6 84F84130 strb r3, [r4, #65]
7305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
726 .loc 1 7305 5 is_stmt 1 view .LVU246
7305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
727 .loc 1 7305 16 is_stmt 0 view .LVU247
728 00fa 0023 movs r3, #0
729 00fc 84F84230 strb r3, [r4, #66]
7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
730 .loc 1 7308 5 is_stmt 1 view .LVU248
7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
731 .loc 1 7308 5 view .LVU249
732 0100 84F84030 strb r3, [r4, #64]
733 .L62:
7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
734 .loc 1 7308 5 discriminator 1 view .LVU250
7311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
735 .loc 1 7311 3 view .LVU251
7312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
736 .loc 1 7312 1 is_stmt 0 view .LVU252
737 0104 2846 mov r0, r5
738 0106 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
739 .LVL72:
740 .L63:
7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR;
741 .loc 1 7194 21 view .LVU253
742 010a 0025 movs r5, #0
743 010c C2E7 b .L47
744 .LVL73:
745 .L60:
7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
746 .loc 1 7295 3 is_stmt 1 view .LVU254
7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
747 .loc 1 7295 6 is_stmt 0 view .LVU255
748 010e 002D cmp r5, #0
749 0110 F8D0 beq .L62
750 0112 DEE7 b .L61
751 .cfi_endproc
752 .LFE199:
754 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits
755 .align 1
756 .syntax unified
757 .thumb
758 .thumb_func
760 I2C_WaitOnTXISFlagUntilTimeout:
761 .LVL74:
762 .LFB196:
7038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
763 .loc 1 7038 1 is_stmt 1 view -0
764 .cfi_startproc
765 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccJ8PJrU.s page 149
766 @ frame_needed = 0, uses_anonymous_args = 0
7038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)
767 .loc 1 7038 1 is_stmt 0 view .LVU257
768 0000 70B5 push {r4, r5, r6, lr}
769 .cfi_def_cfa_offset 16
770 .cfi_offset 4, -16
771 .cfi_offset 5, -12
772 .cfi_offset 6, -8
773 .cfi_offset 14, -4
774 0002 0446 mov r4, r0
775 0004 0D46 mov r5, r1
776 0006 1646 mov r6, r2
7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
777 .loc 1 7039 3 is_stmt 1 view .LVU258
778 .LVL75:
779 .L69:
7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
780 .loc 1 7039 50 view .LVU259
7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
781 .loc 1 7039 10 is_stmt 0 view .LVU260
782 0008 2368 ldr r3, [r4]
783 000a 9B69 ldr r3, [r3, #24]
7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
784 .loc 1 7039 50 view .LVU261
785 000c 13F0020F tst r3, #2
786 0010 22D1 bne .L74
7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
787 .loc 1 7042 5 is_stmt 1 view .LVU262
7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
788 .loc 1 7042 9 is_stmt 0 view .LVU263
789 0012 3246 mov r2, r6
790 0014 2946 mov r1, r5
791 0016 2046 mov r0, r4
792 0018 FFF7FEFF bl I2C_IsErrorOccurred
793 .LVL76:
7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
794 .loc 1 7042 8 discriminator 1 view .LVU264
795 001c F0B9 cbnz r0, .L72
7048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
796 .loc 1 7048 5 is_stmt 1 view .LVU265
7048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
797 .loc 1 7048 8 is_stmt 0 view .LVU266
798 001e B5F1FF3F cmp r5, #-1
799 0022 F1D0 beq .L69
7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
800 .loc 1 7050 7 is_stmt 1 view .LVU267
7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
801 .loc 1 7050 13 is_stmt 0 view .LVU268
802 0024 FFF7FEFF bl HAL_GetTick
803 .LVL77:
7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
804 .loc 1 7050 27 discriminator 1 view .LVU269
805 0028 801B subs r0, r0, r6
7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
806 .loc 1 7050 10 discriminator 1 view .LVU270
807 002a A842 cmp r0, r5
808 002c 01D8 bhi .L70
ARM GAS /tmp/ccJ8PJrU.s page 150
7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
809 .loc 1 7050 51 discriminator 1 view .LVU271
810 002e 002D cmp r5, #0
811 0030 EAD1 bne .L69
812 .L70:
7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
813 .loc 1 7052 9 is_stmt 1 view .LVU272
7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
814 .loc 1 7052 14 is_stmt 0 view .LVU273
815 0032 2368 ldr r3, [r4]
816 0034 9B69 ldr r3, [r3, #24]
7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
817 .loc 1 7052 12 view .LVU274
818 0036 13F0020F tst r3, #2
819 003a E5D1 bne .L69
7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
820 .loc 1 7054 11 is_stmt 1 view .LVU275
7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
821 .loc 1 7054 15 is_stmt 0 view .LVU276
822 003c 636C ldr r3, [r4, #68]
7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
823 .loc 1 7054 27 view .LVU277
824 003e 43F02003 orr r3, r3, #32
825 0042 6364 str r3, [r4, #68]
7055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
826 .loc 1 7055 11 is_stmt 1 view .LVU278
7055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
827 .loc 1 7055 23 is_stmt 0 view .LVU279
828 0044 2023 movs r3, #32
829 0046 84F84130 strb r3, [r4, #65]
7056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
830 .loc 1 7056 11 is_stmt 1 view .LVU280
7056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
831 .loc 1 7056 22 is_stmt 0 view .LVU281
832 004a 0023 movs r3, #0
833 004c 84F84230 strb r3, [r4, #66]
7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
834 .loc 1 7059 11 is_stmt 1 view .LVU282
7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
835 .loc 1 7059 11 view .LVU283
836 0050 84F84030 strb r3, [r4, #64]
7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
837 .loc 1 7059 11 view .LVU284
7061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
838 .loc 1 7061 11 view .LVU285
7061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
839 .loc 1 7061 18 is_stmt 0 view .LVU286
840 0054 0120 movs r0, #1
841 0056 00E0 b .L68
842 .L74:
7066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
843 .loc 1 7066 10 view .LVU287
844 0058 0020 movs r0, #0
845 .L68:
7067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
846 .loc 1 7067 1 view .LVU288
847 005a 70BD pop {r4, r5, r6, pc}
ARM GAS /tmp/ccJ8PJrU.s page 151
848 .LVL78:
849 .L72:
7044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
850 .loc 1 7044 14 view .LVU289
851 005c 0120 movs r0, #1
852 005e FCE7 b .L68
853 .cfi_endproc
854 .LFE196:
856 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits
857 .align 1
858 .syntax unified
859 .thumb
860 .thumb_func
862 I2C_WaitOnFlagUntilTimeout:
863 .LVL79:
864 .LFB195:
6998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
865 .loc 1 6998 1 is_stmt 1 view -0
866 .cfi_startproc
867 @ args = 4, pretend = 0, frame = 0
868 @ frame_needed = 0, uses_anonymous_args = 0
6998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)
869 .loc 1 6998 1 is_stmt 0 view .LVU291
870 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr}
871 .cfi_def_cfa_offset 32
872 .cfi_offset 3, -32
873 .cfi_offset 4, -28
874 .cfi_offset 5, -24
875 .cfi_offset 6, -20
876 .cfi_offset 7, -16
877 .cfi_offset 8, -12
878 .cfi_offset 9, -8
879 .cfi_offset 14, -4
880 0004 0546 mov r5, r0
881 0006 8846 mov r8, r1
882 0008 1746 mov r7, r2
883 000a 1E46 mov r6, r3
884 000c DDF82090 ldr r9, [sp, #32]
6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
885 .loc 1 6999 3 is_stmt 1 view .LVU292
886 .LVL80:
887 .L78:
6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
888 .loc 1 6999 41 view .LVU293
6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
889 .loc 1 6999 10 is_stmt 0 view .LVU294
890 0010 2B68 ldr r3, [r5]
891 0012 9C69 ldr r4, [r3, #24]
892 0014 38EA0404 bics r4, r8, r4
893 0018 0CBF ite eq
894 001a 0123 moveq r3, #1
895 001c 0023 movne r3, #0
6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
896 .loc 1 6999 41 view .LVU295
897 001e BB42 cmp r3, r7
898 0020 27D1 bne .L83
7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 152
899 .loc 1 7002 5 is_stmt 1 view .LVU296
7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
900 .loc 1 7002 9 is_stmt 0 view .LVU297
901 0022 4A46 mov r2, r9
902 0024 3146 mov r1, r6
903 0026 2846 mov r0, r5
904 0028 FFF7FEFF bl I2C_IsErrorOccurred
905 .LVL81:
7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
906 .loc 1 7002 8 discriminator 1 view .LVU298
907 002c 20BB cbnz r0, .L81
7008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
908 .loc 1 7008 5 is_stmt 1 view .LVU299
7008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
909 .loc 1 7008 8 is_stmt 0 view .LVU300
910 002e B6F1FF3F cmp r6, #-1
911 0032 EDD0 beq .L78
7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
912 .loc 1 7010 7 is_stmt 1 view .LVU301
7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
913 .loc 1 7010 13 is_stmt 0 view .LVU302
914 0034 FFF7FEFF bl HAL_GetTick
915 .LVL82:
7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
916 .loc 1 7010 27 discriminator 1 view .LVU303
917 0038 A0EB0900 sub r0, r0, r9
7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
918 .loc 1 7010 10 discriminator 1 view .LVU304
919 003c B042 cmp r0, r6
920 003e 01D8 bhi .L79
7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
921 .loc 1 7010 51 discriminator 1 view .LVU305
922 0040 002E cmp r6, #0
923 0042 E5D1 bne .L78
924 .L79:
7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
925 .loc 1 7012 9 is_stmt 1 view .LVU306
7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
926 .loc 1 7012 14 is_stmt 0 view .LVU307
927 0044 2B68 ldr r3, [r5]
928 0046 9B69 ldr r3, [r3, #24]
929 0048 38EA0303 bics r3, r8, r3
930 004c 0CBF ite eq
931 004e 0123 moveq r3, #1
932 0050 0023 movne r3, #0
7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
933 .loc 1 7012 12 view .LVU308
934 0052 BB42 cmp r3, r7
935 0054 DCD1 bne .L78
7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
936 .loc 1 7014 11 is_stmt 1 view .LVU309
7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
937 .loc 1 7014 15 is_stmt 0 view .LVU310
938 0056 6B6C ldr r3, [r5, #68]
7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
939 .loc 1 7014 27 view .LVU311
940 0058 43F02003 orr r3, r3, #32
ARM GAS /tmp/ccJ8PJrU.s page 153
941 005c 6B64 str r3, [r5, #68]
7015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
942 .loc 1 7015 11 is_stmt 1 view .LVU312
7015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
943 .loc 1 7015 23 is_stmt 0 view .LVU313
944 005e 2023 movs r3, #32
945 0060 85F84130 strb r3, [r5, #65]
7016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
946 .loc 1 7016 11 is_stmt 1 view .LVU314
7016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
947 .loc 1 7016 22 is_stmt 0 view .LVU315
948 0064 0023 movs r3, #0
949 0066 85F84230 strb r3, [r5, #66]
7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
950 .loc 1 7019 11 is_stmt 1 view .LVU316
7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
951 .loc 1 7019 11 view .LVU317
952 006a 85F84030 strb r3, [r5, #64]
7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
953 .loc 1 7019 11 view .LVU318
7020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
954 .loc 1 7020 11 view .LVU319
7020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
955 .loc 1 7020 18 is_stmt 0 view .LVU320
956 006e 0120 movs r0, #1
957 0070 00E0 b .L77
958 .L83:
7025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
959 .loc 1 7025 10 view .LVU321
960 0072 0020 movs r0, #0
961 .L77:
7026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
962 .loc 1 7026 1 view .LVU322
963 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc}
964 .LVL83:
965 .L81:
7004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
966 .loc 1 7004 14 view .LVU323
967 0078 0120 movs r0, #1
968 007a FBE7 b .L77
969 .cfi_endproc
970 .LFE195:
972 .section .text.I2C_RequestMemoryWrite,"ax",%progbits
973 .align 1
974 .syntax unified
975 .thumb
976 .thumb_func
978 I2C_RequestMemoryWrite:
979 .LVL84:
980 .LFB178:
5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
981 .loc 1 5856 1 is_stmt 1 view -0
982 .cfi_startproc
983 @ args = 8, pretend = 0, frame = 0
984 @ frame_needed = 0, uses_anonymous_args = 0
5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI
985 .loc 1 5856 1 is_stmt 0 view .LVU325
ARM GAS /tmp/ccJ8PJrU.s page 154
986 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
987 .cfi_def_cfa_offset 24
988 .cfi_offset 4, -24
989 .cfi_offset 5, -20
990 .cfi_offset 6, -16
991 .cfi_offset 7, -12
992 .cfi_offset 8, -8
993 .cfi_offset 14, -4
994 0004 82B0 sub sp, sp, #8
995 .cfi_def_cfa_offset 32
996 0006 0446 mov r4, r0
997 0008 9046 mov r8, r2
998 000a 1D46 mov r5, r3
999 000c 089E ldr r6, [sp, #32]
1000 000e 099F ldr r7, [sp, #36]
5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1001 .loc 1 5857 3 is_stmt 1 view .LVU326
1002 0010 194B ldr r3, .L93
1003 .LVL85:
5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1004 .loc 1 5857 3 is_stmt 0 view .LVU327
1005 0012 0093 str r3, [sp]
1006 0014 4FF08073 mov r3, #16777216
1007 0018 EAB2 uxtb r2, r5
1008 .LVL86:
5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1009 .loc 1 5857 3 view .LVU328
1010 001a FFF7FEFF bl I2C_TransferConfig
1011 .LVL87:
5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1012 .loc 1 5860 3 is_stmt 1 view .LVU329
5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1013 .loc 1 5860 7 is_stmt 0 view .LVU330
1014 001e 3A46 mov r2, r7
1015 0020 3146 mov r1, r6
1016 0022 2046 mov r0, r4
1017 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1018 .LVL88:
5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1019 .loc 1 5860 6 discriminator 1 view .LVU331
1020 0028 F8B9 cbnz r0, .L88
5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1021 .loc 1 5866 3 is_stmt 1 view .LVU332
5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1022 .loc 1 5866 6 is_stmt 0 view .LVU333
1023 002a 012D cmp r5, #1
1024 002c 0ED1 bne .L86
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1025 .loc 1 5869 5 is_stmt 1 view .LVU334
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1026 .loc 1 5869 9 is_stmt 0 view .LVU335
1027 002e 2368 ldr r3, [r4]
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1028 .loc 1 5869 28 view .LVU336
1029 0030 5FFA88F2 uxtb r2, r8
5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1030 .loc 1 5869 26 view .LVU337
ARM GAS /tmp/ccJ8PJrU.s page 155
1031 0034 9A62 str r2, [r3, #40]
1032 .L87:
5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1033 .loc 1 5888 3 is_stmt 1 view .LVU338
5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1034 .loc 1 5888 7 is_stmt 0 view .LVU339
1035 0036 0097 str r7, [sp]
1036 0038 3346 mov r3, r6
1037 003a 0022 movs r2, #0
1038 003c 8021 movs r1, #128
1039 003e 2046 mov r0, r4
1040 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1041 .LVL89:
5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1042 .loc 1 5888 6 discriminator 1 view .LVU340
1043 0044 A8B9 cbnz r0, .L92
1044 .L85:
5894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1045 .loc 1 5894 1 view .LVU341
1046 0046 02B0 add sp, sp, #8
1047 .cfi_remember_state
1048 .cfi_def_cfa_offset 24
1049 @ sp needed
1050 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
1051 .LVL90:
1052 .L86:
1053 .cfi_restore_state
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1054 .loc 1 5875 5 is_stmt 1 view .LVU342
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1055 .loc 1 5875 9 is_stmt 0 view .LVU343
1056 004c 2368 ldr r3, [r4]
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1057 .loc 1 5875 28 view .LVU344
1058 004e 4FEA1822 lsr r2, r8, #8
5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1059 .loc 1 5875 26 view .LVU345
1060 0052 9A62 str r2, [r3, #40]
5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1061 .loc 1 5878 5 is_stmt 1 view .LVU346
5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1062 .loc 1 5878 9 is_stmt 0 view .LVU347
1063 0054 3A46 mov r2, r7
1064 0056 3146 mov r1, r6
1065 0058 2046 mov r0, r4
1066 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1067 .LVL91:
5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1068 .loc 1 5878 8 discriminator 1 view .LVU348
1069 005e 30B9 cbnz r0, .L89
5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1070 .loc 1 5884 5 is_stmt 1 view .LVU349
5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1071 .loc 1 5884 9 is_stmt 0 view .LVU350
1072 0060 2368 ldr r3, [r4]
5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1073 .loc 1 5884 28 view .LVU351
ARM GAS /tmp/ccJ8PJrU.s page 156
1074 0062 5FFA88F2 uxtb r2, r8
5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1075 .loc 1 5884 26 view .LVU352
1076 0066 9A62 str r2, [r3, #40]
1077 0068 E5E7 b .L87
1078 .L88:
5862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1079 .loc 1 5862 12 view .LVU353
1080 006a 0120 movs r0, #1
1081 006c EBE7 b .L85
1082 .L89:
5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1083 .loc 1 5880 14 view .LVU354
1084 006e 0120 movs r0, #1
1085 0070 E9E7 b .L85
1086 .L92:
5890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1087 .loc 1 5890 12 view .LVU355
1088 0072 0120 movs r0, #1
1089 0074 E7E7 b .L85
1090 .L94:
1091 0076 00BF .align 2
1092 .L93:
1093 0078 00200080 .word -2147475456
1094 .cfi_endproc
1095 .LFE178:
1097 .section .text.I2C_RequestMemoryRead,"ax",%progbits
1098 .align 1
1099 .syntax unified
1100 .thumb
1101 .thumb_func
1103 I2C_RequestMemoryRead:
1104 .LVL92:
1105 .LFB179:
5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
1106 .loc 1 5911 1 is_stmt 1 view -0
1107 .cfi_startproc
1108 @ args = 8, pretend = 0, frame = 0
1109 @ frame_needed = 0, uses_anonymous_args = 0
5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR
1110 .loc 1 5911 1 is_stmt 0 view .LVU357
1111 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
1112 .cfi_def_cfa_offset 24
1113 .cfi_offset 4, -24
1114 .cfi_offset 5, -20
1115 .cfi_offset 6, -16
1116 .cfi_offset 7, -12
1117 .cfi_offset 8, -8
1118 .cfi_offset 14, -4
1119 0004 82B0 sub sp, sp, #8
1120 .cfi_def_cfa_offset 32
1121 0006 0446 mov r4, r0
1122 0008 9046 mov r8, r2
1123 000a 1D46 mov r5, r3
1124 000c 089E ldr r6, [sp, #32]
1125 000e 099F ldr r7, [sp, #36]
5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 157
1126 .loc 1 5912 3 is_stmt 1 view .LVU358
1127 0010 184B ldr r3, .L104
1128 .LVL93:
5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1129 .loc 1 5912 3 is_stmt 0 view .LVU359
1130 0012 0093 str r3, [sp]
1131 0014 0023 movs r3, #0
1132 0016 EAB2 uxtb r2, r5
1133 .LVL94:
5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1134 .loc 1 5912 3 view .LVU360
1135 0018 FFF7FEFF bl I2C_TransferConfig
1136 .LVL95:
5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1137 .loc 1 5915 3 is_stmt 1 view .LVU361
5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1138 .loc 1 5915 7 is_stmt 0 view .LVU362
1139 001c 3A46 mov r2, r7
1140 001e 3146 mov r1, r6
1141 0020 2046 mov r0, r4
1142 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1143 .LVL96:
5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1144 .loc 1 5915 6 discriminator 1 view .LVU363
1145 0026 F8B9 cbnz r0, .L99
5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1146 .loc 1 5921 3 is_stmt 1 view .LVU364
5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1147 .loc 1 5921 6 is_stmt 0 view .LVU365
1148 0028 012D cmp r5, #1
1149 002a 0ED1 bne .L97
5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1150 .loc 1 5924 5 is_stmt 1 view .LVU366
5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1151 .loc 1 5924 9 is_stmt 0 view .LVU367
1152 002c 2368 ldr r3, [r4]
5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1153 .loc 1 5924 28 view .LVU368
1154 002e 5FFA88F2 uxtb r2, r8
5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1155 .loc 1 5924 26 view .LVU369
1156 0032 9A62 str r2, [r3, #40]
1157 .L98:
5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1158 .loc 1 5943 3 is_stmt 1 view .LVU370
5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1159 .loc 1 5943 7 is_stmt 0 view .LVU371
1160 0034 0097 str r7, [sp]
1161 0036 3346 mov r3, r6
1162 0038 0022 movs r2, #0
1163 003a 4021 movs r1, #64
1164 003c 2046 mov r0, r4
1165 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1166 .LVL97:
5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1167 .loc 1 5943 6 discriminator 1 view .LVU372
1168 0042 A8B9 cbnz r0, .L103
ARM GAS /tmp/ccJ8PJrU.s page 158
1169 .L96:
5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1170 .loc 1 5949 1 view .LVU373
1171 0044 02B0 add sp, sp, #8
1172 .cfi_remember_state
1173 .cfi_def_cfa_offset 24
1174 @ sp needed
1175 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
1176 .LVL98:
1177 .L97:
1178 .cfi_restore_state
5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1179 .loc 1 5930 5 is_stmt 1 view .LVU374
5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1180 .loc 1 5930 9 is_stmt 0 view .LVU375
1181 004a 2368 ldr r3, [r4]
5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1182 .loc 1 5930 28 view .LVU376
1183 004c 4FEA1822 lsr r2, r8, #8
5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1184 .loc 1 5930 26 view .LVU377
1185 0050 9A62 str r2, [r3, #40]
5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1186 .loc 1 5933 5 is_stmt 1 view .LVU378
5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1187 .loc 1 5933 9 is_stmt 0 view .LVU379
1188 0052 3A46 mov r2, r7
1189 0054 3146 mov r1, r6
1190 0056 2046 mov r0, r4
1191 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
1192 .LVL99:
5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1193 .loc 1 5933 8 discriminator 1 view .LVU380
1194 005c 30B9 cbnz r0, .L100
5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1195 .loc 1 5939 5 is_stmt 1 view .LVU381
5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1196 .loc 1 5939 9 is_stmt 0 view .LVU382
1197 005e 2368 ldr r3, [r4]
5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1198 .loc 1 5939 28 view .LVU383
1199 0060 5FFA88F2 uxtb r2, r8
5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1200 .loc 1 5939 26 view .LVU384
1201 0064 9A62 str r2, [r3, #40]
1202 0066 E5E7 b .L98
1203 .L99:
5917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1204 .loc 1 5917 12 view .LVU385
1205 0068 0120 movs r0, #1
1206 006a EBE7 b .L96
1207 .L100:
5935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1208 .loc 1 5935 14 view .LVU386
1209 006c 0120 movs r0, #1
1210 006e E9E7 b .L96
1211 .L103:
ARM GAS /tmp/ccJ8PJrU.s page 159
5945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1212 .loc 1 5945 12 view .LVU387
1213 0070 0120 movs r0, #1
1214 0072 E7E7 b .L96
1215 .L105:
1216 .align 2
1217 .L104:
1218 0074 00200080 .word -2147475456
1219 .cfi_endproc
1220 .LFE179:
1222 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits
1223 .align 1
1224 .syntax unified
1225 .thumb
1226 .thumb_func
1228 I2C_WaitOnSTOPFlagUntilTimeout:
1229 .LVL100:
1230 .LFB197:
7079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1231 .loc 1 7079 1 is_stmt 1 view -0
1232 .cfi_startproc
1233 @ args = 0, pretend = 0, frame = 0
1234 @ frame_needed = 0, uses_anonymous_args = 0
7079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)
1235 .loc 1 7079 1 is_stmt 0 view .LVU389
1236 0000 70B5 push {r4, r5, r6, lr}
1237 .cfi_def_cfa_offset 16
1238 .cfi_offset 4, -16
1239 .cfi_offset 5, -12
1240 .cfi_offset 6, -8
1241 .cfi_offset 14, -4
1242 0002 0446 mov r4, r0
1243 0004 0D46 mov r5, r1
1244 0006 1646 mov r6, r2
7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1245 .loc 1 7080 3 is_stmt 1 view .LVU390
7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1246 .loc 1 7080 9 is_stmt 0 view .LVU391
1247 0008 04E0 b .L107
1248 .LVL101:
1249 .L109:
7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1250 .loc 1 7091 7 is_stmt 1 view .LVU392
7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1251 .loc 1 7091 12 is_stmt 0 view .LVU393
1252 000a 2368 ldr r3, [r4]
1253 000c 9B69 ldr r3, [r3, #24]
7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1254 .loc 1 7091 10 view .LVU394
1255 000e 13F0200F tst r3, #32
1256 0012 12D0 beq .L113
1257 .L107:
7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1258 .loc 1 7080 51 is_stmt 1 view .LVU395
7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1259 .loc 1 7080 10 is_stmt 0 view .LVU396
1260 0014 2368 ldr r3, [r4]
ARM GAS /tmp/ccJ8PJrU.s page 160
1261 0016 9B69 ldr r3, [r3, #24]
7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1262 .loc 1 7080 51 view .LVU397
1263 0018 13F0200F tst r3, #32
1264 001c 1BD1 bne .L114
7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1265 .loc 1 7083 5 is_stmt 1 view .LVU398
7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1266 .loc 1 7083 9 is_stmt 0 view .LVU399
1267 001e 3246 mov r2, r6
1268 0020 2946 mov r1, r5
1269 0022 2046 mov r0, r4
1270 0024 FFF7FEFF bl I2C_IsErrorOccurred
1271 .LVL102:
7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1272 .loc 1 7083 8 discriminator 1 view .LVU400
1273 0028 B8B9 cbnz r0, .L111
7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1274 .loc 1 7089 5 is_stmt 1 view .LVU401
7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1275 .loc 1 7089 11 is_stmt 0 view .LVU402
1276 002a FFF7FEFF bl HAL_GetTick
1277 .LVL103:
7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1278 .loc 1 7089 25 discriminator 1 view .LVU403
1279 002e 801B subs r0, r0, r6
7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1280 .loc 1 7089 8 discriminator 1 view .LVU404
1281 0030 A842 cmp r0, r5
1282 0032 EAD8 bhi .L109
7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1283 .loc 1 7089 49 discriminator 1 view .LVU405
1284 0034 002D cmp r5, #0
1285 0036 EDD1 bne .L107
1286 0038 E7E7 b .L109
1287 .L113:
7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1288 .loc 1 7093 9 is_stmt 1 view .LVU406
7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1289 .loc 1 7093 13 is_stmt 0 view .LVU407
1290 003a 636C ldr r3, [r4, #68]
7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1291 .loc 1 7093 25 view .LVU408
1292 003c 43F02003 orr r3, r3, #32
1293 0040 6364 str r3, [r4, #68]
7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1294 .loc 1 7094 9 is_stmt 1 view .LVU409
7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1295 .loc 1 7094 21 is_stmt 0 view .LVU410
1296 0042 2023 movs r3, #32
1297 0044 84F84130 strb r3, [r4, #65]
7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1298 .loc 1 7095 9 is_stmt 1 view .LVU411
7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1299 .loc 1 7095 20 is_stmt 0 view .LVU412
1300 0048 0023 movs r3, #0
1301 004a 84F84230 strb r3, [r4, #66]
ARM GAS /tmp/ccJ8PJrU.s page 161
7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1302 .loc 1 7098 9 is_stmt 1 view .LVU413
7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1303 .loc 1 7098 9 view .LVU414
1304 004e 84F84030 strb r3, [r4, #64]
7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1305 .loc 1 7098 9 view .LVU415
7100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1306 .loc 1 7100 9 view .LVU416
7100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1307 .loc 1 7100 16 is_stmt 0 view .LVU417
1308 0052 0120 movs r0, #1
1309 0054 00E0 b .L108
1310 .L114:
7104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1311 .loc 1 7104 10 view .LVU418
1312 0056 0020 movs r0, #0
1313 .L108:
7105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1314 .loc 1 7105 1 view .LVU419
1315 0058 70BD pop {r4, r5, r6, pc}
1316 .LVL104:
1317 .L111:
7085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1318 .loc 1 7085 14 view .LVU420
1319 005a 0120 movs r0, #1
1320 005c FCE7 b .L108
1321 .cfi_endproc
1322 .LFE197:
1324 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits
1325 .align 1
1326 .syntax unified
1327 .thumb
1328 .thumb_func
1330 I2C_WaitOnRXNEFlagUntilTimeout:
1331 .LVL105:
1332 .LFB198:
7117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
1333 .loc 1 7117 1 is_stmt 1 view -0
1334 .cfi_startproc
1335 @ args = 0, pretend = 0, frame = 0
1336 @ frame_needed = 0, uses_anonymous_args = 0
7117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK;
1337 .loc 1 7117 1 is_stmt 0 view .LVU422
1338 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
1339 .cfi_def_cfa_offset 24
1340 .cfi_offset 3, -24
1341 .cfi_offset 4, -20
1342 .cfi_offset 5, -16
1343 .cfi_offset 6, -12
1344 .cfi_offset 7, -8
1345 .cfi_offset 14, -4
1346 0002 0446 mov r4, r0
1347 0004 0E46 mov r6, r1
1348 0006 1746 mov r7, r2
7118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1349 .loc 1 7118 3 is_stmt 1 view .LVU423
ARM GAS /tmp/ccJ8PJrU.s page 162
1350 .LVL106:
7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1351 .loc 1 7120 3 view .LVU424
7118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1352 .loc 1 7118 21 is_stmt 0 view .LVU425
1353 0008 0025 movs r5, #0
7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1354 .loc 1 7120 9 view .LVU426
1355 000a 18E0 b .L116
1356 .LVL107:
1357 .L119:
7162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1358 .loc 1 7162 9 is_stmt 1 view .LVU427
7162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1359 .loc 1 7162 25 is_stmt 0 view .LVU428
1360 000c 0023 movs r3, #0
1361 000e 6364 str r3, [r4, #68]
1362 .LVL108:
1363 .L118:
7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1364 .loc 1 7167 5 is_stmt 1 view .LVU429
7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1365 .loc 1 7167 12 is_stmt 0 view .LVU430
1366 0010 FFF7FEFF bl HAL_GetTick
1367 .LVL109:
7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1368 .loc 1 7167 26 discriminator 1 view .LVU431
1369 0014 C01B subs r0, r0, r7
7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1370 .loc 1 7167 8 discriminator 1 view .LVU432
1371 0016 B042 cmp r0, r6
1372 0018 00D8 bhi .L120
7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1373 .loc 1 7167 50 discriminator 2 view .LVU433
1374 001a 86B9 cbnz r6, .L116
1375 .L120:
7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1376 .loc 1 7167 70 discriminator 3 view .LVU434
1377 001c 7DB9 cbnz r5, .L116
7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1378 .loc 1 7169 7 is_stmt 1 view .LVU435
7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1379 .loc 1 7169 12 is_stmt 0 view .LVU436
1380 001e 2368 ldr r3, [r4]
1381 0020 9B69 ldr r3, [r3, #24]
7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1382 .loc 1 7169 10 view .LVU437
1383 0022 13F0040F tst r3, #4
1384 0026 0AD1 bne .L116
7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1385 .loc 1 7171 9 is_stmt 1 view .LVU438
7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1386 .loc 1 7171 13 is_stmt 0 view .LVU439
1387 0028 636C ldr r3, [r4, #68]
7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1388 .loc 1 7171 25 view .LVU440
1389 002a 43F02003 orr r3, r3, #32
ARM GAS /tmp/ccJ8PJrU.s page 163
1390 002e 6364 str r3, [r4, #68]
7172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1391 .loc 1 7172 9 is_stmt 1 view .LVU441
7172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1392 .loc 1 7172 21 is_stmt 0 view .LVU442
1393 0030 2023 movs r3, #32
1394 0032 84F84130 strb r3, [r4, #65]
7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1395 .loc 1 7175 9 is_stmt 1 view .LVU443
7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1396 .loc 1 7175 9 view .LVU444
1397 0036 0023 movs r3, #0
1398 0038 84F84030 strb r3, [r4, #64]
7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1399 .loc 1 7175 9 view .LVU445
7177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1400 .loc 1 7177 9 view .LVU446
1401 .LVL110:
7177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1402 .loc 1 7177 16 is_stmt 0 view .LVU447
1403 003c 0125 movs r5, #1
1404 .LVL111:
1405 .L116:
7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1406 .loc 1 7120 61 is_stmt 1 view .LVU448
7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1407 .loc 1 7120 11 is_stmt 0 view .LVU449
1408 003e 2368 ldr r3, [r4]
1409 0040 9B69 ldr r3, [r3, #24]
7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1410 .loc 1 7120 61 view .LVU450
1411 0042 13F0040F tst r3, #4
1412 0046 2ED1 bne .L122
7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1413 .loc 1 7120 61 discriminator 1 view .LVU451
1414 0048 6DBB cbnz r5, .L122
7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1415 .loc 1 7123 5 is_stmt 1 view .LVU452
7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1416 .loc 1 7123 9 is_stmt 0 view .LVU453
1417 004a 3A46 mov r2, r7
1418 004c 3146 mov r1, r6
1419 004e 2046 mov r0, r4
1420 0050 FFF7FEFF bl I2C_IsErrorOccurred
1421 .LVL112:
7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1422 .loc 1 7123 8 discriminator 1 view .LVU454
1423 0054 00B1 cbz r0, .L117
7125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1424 .loc 1 7125 14 view .LVU455
1425 0056 0125 movs r5, #1
1426 .LVL113:
1427 .L117:
7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1428 .loc 1 7129 5 is_stmt 1 view .LVU456
7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1429 .loc 1 7129 10 is_stmt 0 view .LVU457
ARM GAS /tmp/ccJ8PJrU.s page 164
1430 0058 2368 ldr r3, [r4]
1431 005a 9A69 ldr r2, [r3, #24]
7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1432 .loc 1 7129 8 view .LVU458
1433 005c 12F0200F tst r2, #32
1434 0060 D6D0 beq .L118
7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1435 .loc 1 7129 59 discriminator 1 view .LVU459
1436 0062 002D cmp r5, #0
1437 0064 D4D1 bne .L118
7133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1438 .loc 1 7133 7 is_stmt 1 view .LVU460
7133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1439 .loc 1 7133 12 is_stmt 0 view .LVU461
1440 0066 9A69 ldr r2, [r3, #24]
7137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1441 .loc 1 7137 9 is_stmt 1 view .LVU462
7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1442 .loc 1 7141 7 view .LVU463
7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1443 .loc 1 7141 11 is_stmt 0 view .LVU464
1444 0068 9A69 ldr r2, [r3, #24]
7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1445 .loc 1 7141 10 view .LVU465
1446 006a 12F0100F tst r2, #16
1447 006e CDD0 beq .L119
7143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF;
1448 .loc 1 7143 9 is_stmt 1 view .LVU466
1449 0070 1022 movs r2, #16
1450 0072 DA61 str r2, [r3, #28]
7144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1451 .loc 1 7144 9 view .LVU467
7144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1452 .loc 1 7144 25 is_stmt 0 view .LVU468
1453 0074 0423 movs r3, #4
1454 0076 6364 str r3, [r4, #68]
7147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1455 .loc 1 7147 9 is_stmt 1 view .LVU469
1456 0078 2368 ldr r3, [r4]
1457 007a 2022 movs r2, #32
1458 007c DA61 str r2, [r3, #28]
7150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1459 .loc 1 7150 9 view .LVU470
1460 007e 2168 ldr r1, [r4]
1461 0080 4B68 ldr r3, [r1, #4]
1462 0082 23F0FF73 bic r3, r3, #33423360
1463 0086 23F48B33 bic r3, r3, #71168
1464 008a 23F4FF73 bic r3, r3, #510
1465 008e 23F00103 bic r3, r3, #1
1466 0092 4B60 str r3, [r1, #4]
7152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1467 .loc 1 7152 9 view .LVU471
7152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1468 .loc 1 7152 21 is_stmt 0 view .LVU472
1469 0094 84F84120 strb r2, [r4, #65]
7153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1470 .loc 1 7153 9 is_stmt 1 view .LVU473
ARM GAS /tmp/ccJ8PJrU.s page 165
7153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1471 .loc 1 7153 20 is_stmt 0 view .LVU474
1472 0098 0023 movs r3, #0
1473 009a 84F84230 strb r3, [r4, #66]
7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1474 .loc 1 7156 9 is_stmt 1 view .LVU475
7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1475 .loc 1 7156 9 view .LVU476
1476 009e 84F84030 strb r3, [r4, #64]
7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1477 .loc 1 7156 9 view .LVU477
7158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1478 .loc 1 7158 9 view .LVU478
1479 .LVL114:
7158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1480 .loc 1 7158 16 is_stmt 0 view .LVU479
1481 00a2 0125 movs r5, #1
1482 00a4 B4E7 b .L118
1483 .LVL115:
1484 .L122:
7181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1485 .loc 1 7181 3 is_stmt 1 view .LVU480
7182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1486 .loc 1 7182 1 is_stmt 0 view .LVU481
1487 00a6 2846 mov r0, r5
1488 00a8 F8BD pop {r3, r4, r5, r6, r7, pc}
7182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1489 .loc 1 7182 1 view .LVU482
1490 .cfi_endproc
1491 .LFE198:
1493 .section .text.HAL_I2C_MspInit,"ax",%progbits
1494 .align 1
1495 .weak HAL_I2C_MspInit
1496 .syntax unified
1497 .thumb
1498 .thumb_func
1500 HAL_I2C_MspInit:
1501 .LVL116:
1502 .LFB125:
697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1503 .loc 1 697 1 is_stmt 1 view -0
1504 .cfi_startproc
1505 @ args = 0, pretend = 0, frame = 0
1506 @ frame_needed = 0, uses_anonymous_args = 0
1507 @ link register save eliminated.
699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1508 .loc 1 699 3 view .LVU484
704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1509 .loc 1 704 1 is_stmt 0 view .LVU485
1510 0000 7047 bx lr
1511 .cfi_endproc
1512 .LFE125:
1514 .section .text.HAL_I2C_Init,"ax",%progbits
1515 .align 1
1516 .global HAL_I2C_Init
1517 .syntax unified
1518 .thumb
ARM GAS /tmp/ccJ8PJrU.s page 166
1519 .thumb_func
1521 HAL_I2C_Init:
1522 .LVL117:
1523 .LFB123:
536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
1524 .loc 1 536 1 is_stmt 1 view -0
1525 .cfi_startproc
1526 @ args = 0, pretend = 0, frame = 0
1527 @ frame_needed = 0, uses_anonymous_args = 0
538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1528 .loc 1 538 3 view .LVU487
538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1529 .loc 1 538 6 is_stmt 0 view .LVU488
1530 0000 0028 cmp r0, #0
1531 0002 5FD0 beq .L134
536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
1532 .loc 1 536 1 view .LVU489
1533 0004 10B5 push {r4, lr}
1534 .cfi_def_cfa_offset 8
1535 .cfi_offset 4, -8
1536 .cfi_offset 14, -4
1537 0006 0446 mov r4, r0
544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
1538 .loc 1 544 3 is_stmt 1 view .LVU490
545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode));
1539 .loc 1 545 3 view .LVU491
546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode));
1540 .loc 1 546 3 view .LVU492
547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2));
1541 .loc 1 547 3 view .LVU493
548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks));
1542 .loc 1 548 3 view .LVU494
549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode));
1543 .loc 1 549 3 view .LVU495
550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode));
1544 .loc 1 550 3 view .LVU496
551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1545 .loc 1 551 3 view .LVU497
553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1546 .loc 1 553 3 view .LVU498
553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1547 .loc 1 553 11 is_stmt 0 view .LVU499
1548 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1549 .loc 1 553 6 view .LVU500
1550 000c 002B cmp r3, #0
1551 000e 48D0 beq .L139
1552 .LVL118:
1553 .L129:
584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1554 .loc 1 584 3 is_stmt 1 view .LVU501
584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1555 .loc 1 584 15 is_stmt 0 view .LVU502
1556 0010 2423 movs r3, #36
1557 0012 84F84130 strb r3, [r4, #65]
587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1558 .loc 1 587 3 is_stmt 1 view .LVU503
ARM GAS /tmp/ccJ8PJrU.s page 167
1559 0016 2268 ldr r2, [r4]
1560 0018 1368 ldr r3, [r2]
1561 001a 23F00103 bic r3, r3, #1
1562 001e 1360 str r3, [r2]
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1563 .loc 1 591 3 view .LVU504
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1564 .loc 1 591 39 is_stmt 0 view .LVU505
1565 0020 6368 ldr r3, [r4, #4]
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1566 .loc 1 591 7 view .LVU506
1567 0022 2268 ldr r2, [r4]
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1568 .loc 1 591 47 view .LVU507
1569 0024 23F07063 bic r3, r3, #251658240
591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1570 .loc 1 591 27 view .LVU508
1571 0028 1361 str r3, [r2, #16]
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1572 .loc 1 595 3 is_stmt 1 view .LVU509
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1573 .loc 1 595 7 is_stmt 0 view .LVU510
1574 002a 2268 ldr r2, [r4]
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1575 .loc 1 595 17 view .LVU511
1576 002c 9368 ldr r3, [r2, #8]
595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1577 .loc 1 595 24 view .LVU512
1578 002e 23F40043 bic r3, r3, #32768
1579 0032 9360 str r3, [r2, #8]
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1580 .loc 1 598 3 is_stmt 1 view .LVU513
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1581 .loc 1 598 17 is_stmt 0 view .LVU514
1582 0034 E368 ldr r3, [r4, #12]
598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1583 .loc 1 598 6 view .LVU515
1584 0036 012B cmp r3, #1
1585 0038 38D0 beq .L140
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1586 .loc 1 604 5 is_stmt 1 view .LVU516
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1587 .loc 1 604 75 is_stmt 0 view .LVU517
1588 003a A368 ldr r3, [r4, #8]
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1589 .loc 1 604 9 view .LVU518
1590 003c 2268 ldr r2, [r4]
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1591 .loc 1 604 63 view .LVU519
1592 003e 43F40443 orr r3, r3, #33792
604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1593 .loc 1 604 26 view .LVU520
1594 0042 9360 str r3, [r2, #8]
1595 .L131:
609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1596 .loc 1 609 3 is_stmt 1 view .LVU521
609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 168
1597 .loc 1 609 17 is_stmt 0 view .LVU522
1598 0044 E368 ldr r3, [r4, #12]
609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1599 .loc 1 609 6 view .LVU523
1600 0046 022B cmp r3, #2
1601 0048 36D0 beq .L141
616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1602 .loc 1 616 5 is_stmt 1 view .LVU524
1603 004a 2268 ldr r2, [r4]
1604 004c 5368 ldr r3, [r2, #4]
1605 004e 23F40063 bic r3, r3, #2048
1606 0052 5360 str r3, [r2, #4]
1607 .L133:
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1608 .loc 1 619 3 view .LVU525
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1609 .loc 1 619 7 is_stmt 0 view .LVU526
1610 0054 2268 ldr r2, [r4]
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1611 .loc 1 619 17 view .LVU527
1612 0056 5368 ldr r3, [r2, #4]
619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1613 .loc 1 619 23 view .LVU528
1614 0058 43F00073 orr r3, r3, #33554432
1615 005c 43F40043 orr r3, r3, #32768
1616 0060 5360 str r3, [r2, #4]
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1617 .loc 1 623 3 is_stmt 1 view .LVU529
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1618 .loc 1 623 7 is_stmt 0 view .LVU530
1619 0062 2268 ldr r2, [r4]
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1620 .loc 1 623 17 view .LVU531
1621 0064 D368 ldr r3, [r2, #12]
623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1622 .loc 1 623 24 view .LVU532
1623 0066 23F40043 bic r3, r3, #32768
1624 006a D360 str r3, [r2, #12]
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1625 .loc 1 626 3 is_stmt 1 view .LVU533
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1626 .loc 1 626 37 is_stmt 0 view .LVU534
1627 006c 2369 ldr r3, [r4, #16]
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1628 .loc 1 626 66 view .LVU535
1629 006e 6269 ldr r2, [r4, #20]
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1630 .loc 1 626 54 view .LVU536
1631 0070 1343 orrs r3, r3, r2
627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1632 .loc 1 627 38 view .LVU537
1633 0072 A169 ldr r1, [r4, #24]
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1634 .loc 1 626 7 view .LVU538
1635 0074 2268 ldr r2, [r4]
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1636 .loc 1 626 79 view .LVU539
ARM GAS /tmp/ccJ8PJrU.s page 169
1637 0076 43EA0123 orr r3, r3, r1, lsl #8
626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8));
1638 .loc 1 626 24 view .LVU540
1639 007a D360 str r3, [r2, #12]
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1640 .loc 1 631 3 is_stmt 1 view .LVU541
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1641 .loc 1 631 36 is_stmt 0 view .LVU542
1642 007c E369 ldr r3, [r4, #28]
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1643 .loc 1 631 65 view .LVU543
1644 007e 216A ldr r1, [r4, #32]
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1645 .loc 1 631 7 view .LVU544
1646 0080 2268 ldr r2, [r4]
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1647 .loc 1 631 53 view .LVU545
1648 0082 0B43 orrs r3, r3, r1
631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1649 .loc 1 631 23 view .LVU546
1650 0084 1360 str r3, [r2]
634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1651 .loc 1 634 3 is_stmt 1 view .LVU547
1652 0086 2268 ldr r2, [r4]
1653 0088 1368 ldr r3, [r2]
1654 008a 43F00103 orr r3, r3, #1
1655 008e 1360 str r3, [r2]
636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1656 .loc 1 636 3 view .LVU548
636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
1657 .loc 1 636 19 is_stmt 0 view .LVU549
1658 0090 0020 movs r0, #0
1659 0092 6064 str r0, [r4, #68]
637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1660 .loc 1 637 3 is_stmt 1 view .LVU550
637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1661 .loc 1 637 15 is_stmt 0 view .LVU551
1662 0094 2023 movs r3, #32
1663 0096 84F84130 strb r3, [r4, #65]
638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1664 .loc 1 638 3 is_stmt 1 view .LVU552
638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1665 .loc 1 638 23 is_stmt 0 view .LVU553
1666 009a 2063 str r0, [r4, #48]
639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1667 .loc 1 639 3 is_stmt 1 view .LVU554
639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1668 .loc 1 639 14 is_stmt 0 view .LVU555
1669 009c 84F84200 strb r0, [r4, #66]
641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1670 .loc 1 641 3 is_stmt 1 view .LVU556
642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1671 .loc 1 642 1 is_stmt 0 view .LVU557
1672 00a0 10BD pop {r4, pc}
1673 .LVL119:
1674 .L139:
556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 170
1675 .loc 1 556 5 is_stmt 1 view .LVU558
556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1676 .loc 1 556 16 is_stmt 0 view .LVU559
1677 00a2 80F84030 strb r3, [r0, #64]
580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1678 .loc 1 580 5 is_stmt 1 view .LVU560
1679 00a6 FFF7FEFF bl HAL_I2C_MspInit
1680 .LVL120:
580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1681 .loc 1 580 5 is_stmt 0 view .LVU561
1682 00aa B1E7 b .L129
1683 .L140:
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1684 .loc 1 600 5 is_stmt 1 view .LVU562
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1685 .loc 1 600 56 is_stmt 0 view .LVU563
1686 00ac A368 ldr r3, [r4, #8]
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1687 .loc 1 600 9 view .LVU564
1688 00ae 2268 ldr r2, [r4]
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1689 .loc 1 600 44 view .LVU565
1690 00b0 43F40043 orr r3, r3, #32768
600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1691 .loc 1 600 26 view .LVU566
1692 00b4 9360 str r3, [r2, #8]
1693 00b6 C5E7 b .L131
1694 .L141:
611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1695 .loc 1 611 5 is_stmt 1 view .LVU567
1696 00b8 2268 ldr r2, [r4]
1697 00ba 5368 ldr r3, [r2, #4]
1698 00bc 43F40063 orr r3, r3, #2048
1699 00c0 5360 str r3, [r2, #4]
1700 00c2 C7E7 b .L133
1701 .LVL121:
1702 .L134:
1703 .cfi_def_cfa_offset 0
1704 .cfi_restore 4
1705 .cfi_restore 14
540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1706 .loc 1 540 12 is_stmt 0 view .LVU568
1707 00c4 0120 movs r0, #1
1708 .LVL122:
642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1709 .loc 1 642 1 view .LVU569
1710 00c6 7047 bx lr
1711 .cfi_endproc
1712 .LFE123:
1714 .section .text.HAL_I2C_MspDeInit,"ax",%progbits
1715 .align 1
1716 .weak HAL_I2C_MspDeInit
1717 .syntax unified
1718 .thumb
1719 .thumb_func
1721 HAL_I2C_MspDeInit:
1722 .LVL123:
ARM GAS /tmp/ccJ8PJrU.s page 171
1723 .LFB126:
713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
1724 .loc 1 713 1 is_stmt 1 view -0
1725 .cfi_startproc
1726 @ args = 0, pretend = 0, frame = 0
1727 @ frame_needed = 0, uses_anonymous_args = 0
1728 @ link register save eliminated.
715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1729 .loc 1 715 3 view .LVU571
720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1730 .loc 1 720 1 is_stmt 0 view .LVU572
1731 0000 7047 bx lr
1732 .cfi_endproc
1733 .LFE126:
1735 .section .text.HAL_I2C_DeInit,"ax",%progbits
1736 .align 1
1737 .global HAL_I2C_DeInit
1738 .syntax unified
1739 .thumb
1740 .thumb_func
1742 HAL_I2C_DeInit:
1743 .LVL124:
1744 .LFB124:
651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
1745 .loc 1 651 1 is_stmt 1 view -0
1746 .cfi_startproc
1747 @ args = 0, pretend = 0, frame = 0
1748 @ frame_needed = 0, uses_anonymous_args = 0
653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1749 .loc 1 653 3 view .LVU574
653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1750 .loc 1 653 6 is_stmt 0 view .LVU575
1751 0000 A8B1 cbz r0, .L145
651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */
1752 .loc 1 651 1 view .LVU576
1753 0002 10B5 push {r4, lr}
1754 .cfi_def_cfa_offset 8
1755 .cfi_offset 4, -8
1756 .cfi_offset 14, -4
1757 0004 0446 mov r4, r0
659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1758 .loc 1 659 3 is_stmt 1 view .LVU577
661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1759 .loc 1 661 3 view .LVU578
661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1760 .loc 1 661 15 is_stmt 0 view .LVU579
1761 0006 2423 movs r3, #36
1762 0008 80F84130 strb r3, [r0, #65]
664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1763 .loc 1 664 3 is_stmt 1 view .LVU580
1764 000c 0268 ldr r2, [r0]
1765 000e 1368 ldr r3, [r2]
1766 0010 23F00103 bic r3, r3, #1
1767 0014 1360 str r3, [r2]
676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
1768 .loc 1 676 3 view .LVU581
1769 0016 FFF7FEFF bl HAL_I2C_MspDeInit
ARM GAS /tmp/ccJ8PJrU.s page 172
1770 .LVL125:
679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1771 .loc 1 679 3 view .LVU582
679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET;
1772 .loc 1 679 19 is_stmt 0 view .LVU583
1773 001a 0020 movs r0, #0
1774 001c 6064 str r0, [r4, #68]
680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1775 .loc 1 680 3 is_stmt 1 view .LVU584
680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
1776 .loc 1 680 15 is_stmt 0 view .LVU585
1777 001e 84F84100 strb r0, [r4, #65]
681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1778 .loc 1 681 3 is_stmt 1 view .LVU586
681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
1779 .loc 1 681 23 is_stmt 0 view .LVU587
1780 0022 2063 str r0, [r4, #48]
682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1781 .loc 1 682 3 is_stmt 1 view .LVU588
682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1782 .loc 1 682 14 is_stmt 0 view .LVU589
1783 0024 84F84200 strb r0, [r4, #66]
685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1784 .loc 1 685 3 is_stmt 1 view .LVU590
685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1785 .loc 1 685 3 view .LVU591
1786 0028 84F84000 strb r0, [r4, #64]
685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1787 .loc 1 685 3 view .LVU592
687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1788 .loc 1 687 3 view .LVU593
688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1789 .loc 1 688 1 is_stmt 0 view .LVU594
1790 002c 10BD pop {r4, pc}
1791 .LVL126:
1792 .L145:
1793 .cfi_def_cfa_offset 0
1794 .cfi_restore 4
1795 .cfi_restore 14
655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1796 .loc 1 655 12 view .LVU595
1797 002e 0120 movs r0, #1
1798 .LVL127:
688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1799 .loc 1 688 1 view .LVU596
1800 0030 7047 bx lr
1801 .cfi_endproc
1802 .LFE124:
1804 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits
1805 .align 1
1806 .global HAL_I2C_Master_Transmit
1807 .syntax unified
1808 .thumb
1809 .thumb_func
1811 HAL_I2C_Master_Transmit:
1812 .LVL128:
1813 .LFB127:
ARM GAS /tmp/ccJ8PJrU.s page 173
1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1814 .loc 1 1121 1 is_stmt 1 view -0
1815 .cfi_startproc
1816 @ args = 4, pretend = 0, frame = 0
1817 @ frame_needed = 0, uses_anonymous_args = 0
1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
1818 .loc 1 1121 1 is_stmt 0 view .LVU598
1819 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
1820 .cfi_def_cfa_offset 32
1821 .cfi_offset 4, -32
1822 .cfi_offset 5, -28
1823 .cfi_offset 6, -24
1824 .cfi_offset 7, -20
1825 .cfi_offset 8, -16
1826 .cfi_offset 9, -12
1827 .cfi_offset 10, -8
1828 .cfi_offset 14, -4
1829 0004 82B0 sub sp, sp, #8
1830 .cfi_def_cfa_offset 40
1831 0006 0F46 mov r7, r1
1832 0008 0A9E ldr r6, [sp, #40]
1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
1833 .loc 1 1122 3 is_stmt 1 view .LVU599
1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1834 .loc 1 1123 3 view .LVU600
1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1835 .loc 1 1125 3 view .LVU601
1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1836 .loc 1 1125 11 is_stmt 0 view .LVU602
1837 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
1838 .LVL129:
1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1839 .loc 1 1125 11 view .LVU603
1840 000e C9B2 uxtb r1, r1
1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1841 .loc 1 1125 6 view .LVU604
1842 0010 2029 cmp r1, #32
1843 0012 40F0B780 bne .L160
1844 0016 0446 mov r4, r0
1845 0018 9046 mov r8, r2
1846 001a 9946 mov r9, r3
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1847 .loc 1 1128 5 is_stmt 1 view .LVU605
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1848 .loc 1 1128 5 view .LVU606
1849 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
1850 .LVL130:
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1851 .loc 1 1128 5 is_stmt 0 view .LVU607
1852 0020 012B cmp r3, #1
1853 0022 00F0B380 beq .L161
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1854 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU608
1855 0026 4FF0010A mov r10, #1
1856 002a 80F840A0 strb r10, [r0, #64]
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1857 .loc 1 1128 5 discriminator 2 view .LVU609
ARM GAS /tmp/ccJ8PJrU.s page 174
1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1858 .loc 1 1131 5 view .LVU610
1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1859 .loc 1 1131 17 is_stmt 0 view .LVU611
1860 002e FFF7FEFF bl HAL_GetTick
1861 .LVL131:
1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1862 .loc 1 1131 17 view .LVU612
1863 0032 0546 mov r5, r0
1864 .LVL132:
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1865 .loc 1 1133 5 is_stmt 1 view .LVU613
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1866 .loc 1 1133 9 is_stmt 0 view .LVU614
1867 0034 0090 str r0, [sp]
1868 0036 1923 movs r3, #25
1869 0038 5246 mov r2, r10
1870 003a 4FF40041 mov r1, #32768
1871 003e 2046 mov r0, r4
1872 .LVL133:
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1873 .loc 1 1133 9 view .LVU615
1874 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
1875 .LVL134:
1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1876 .loc 1 1133 8 discriminator 1 view .LVU616
1877 0044 0028 cmp r0, #0
1878 0046 40F0A380 bne .L162
1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1879 .loc 1 1138 5 is_stmt 1 view .LVU617
1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
1880 .loc 1 1138 21 is_stmt 0 view .LVU618
1881 004a 2123 movs r3, #33
1882 004c 84F84130 strb r3, [r4, #65]
1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1883 .loc 1 1139 5 is_stmt 1 view .LVU619
1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
1884 .loc 1 1139 21 is_stmt 0 view .LVU620
1885 0050 1023 movs r3, #16
1886 0052 84F84230 strb r3, [r4, #66]
1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1887 .loc 1 1140 5 is_stmt 1 view .LVU621
1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1888 .loc 1 1140 21 is_stmt 0 view .LVU622
1889 0056 0023 movs r3, #0
1890 0058 6364 str r3, [r4, #68]
1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1891 .loc 1 1143 5 is_stmt 1 view .LVU623
1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
1892 .loc 1 1143 21 is_stmt 0 view .LVU624
1893 005a C4F82480 str r8, [r4, #36]
1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1894 .loc 1 1144 5 is_stmt 1 view .LVU625
1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
1895 .loc 1 1144 21 is_stmt 0 view .LVU626
1896 005e A4F82A90 strh r9, [r4, #42] @ movhi
1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 175
1897 .loc 1 1145 5 is_stmt 1 view .LVU627
1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1898 .loc 1 1145 21 is_stmt 0 view .LVU628
1899 0062 6363 str r3, [r4, #52]
1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1900 .loc 1 1147 5 is_stmt 1 view .LVU629
1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1901 .loc 1 1147 13 is_stmt 0 view .LVU630
1902 0064 638D ldrh r3, [r4, #42]
1903 0066 9BB2 uxth r3, r3
1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1904 .loc 1 1147 8 view .LVU631
1905 0068 FF2B cmp r3, #255
1906 006a 1ED9 bls .L152
1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1907 .loc 1 1149 7 is_stmt 1 view .LVU632
1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
1908 .loc 1 1149 22 is_stmt 0 view .LVU633
1909 006c FF23 movs r3, #255
1910 006e 2385 strh r3, [r4, #40] @ movhi
1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1911 .loc 1 1150 7 is_stmt 1 view .LVU634
1912 .LVL135:
1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1913 .loc 1 1150 16 is_stmt 0 view .LVU635
1914 0070 4FF08073 mov r3, #16777216
1915 .LVL136:
1916 .L153:
1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1917 .loc 1 1158 5 is_stmt 1 view .LVU636
1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1918 .loc 1 1158 13 is_stmt 0 view .LVU637
1919 0074 228D ldrh r2, [r4, #40]
1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
1920 .loc 1 1158 8 view .LVU638
1921 0076 EAB1 cbz r2, .L154
1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1922 .loc 1 1162 7 is_stmt 1 view .LVU639
1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1923 .loc 1 1162 11 is_stmt 0 view .LVU640
1924 0078 2268 ldr r2, [r4]
1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1925 .loc 1 1162 30 view .LVU641
1926 007a 98F80010 ldrb r1, [r8] @ zero_extendqisi2
1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1927 .loc 1 1162 28 view .LVU642
1928 007e 9162 str r1, [r2, #40]
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1929 .loc 1 1165 7 is_stmt 1 view .LVU643
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1930 .loc 1 1165 11 is_stmt 0 view .LVU644
1931 0080 626A ldr r2, [r4, #36]
1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1932 .loc 1 1165 21 view .LVU645
1933 0082 0132 adds r2, r2, #1
1934 0084 6262 str r2, [r4, #36]
1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
ARM GAS /tmp/ccJ8PJrU.s page 176
1935 .loc 1 1167 7 is_stmt 1 view .LVU646
1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1936 .loc 1 1167 11 is_stmt 0 view .LVU647
1937 0086 628D ldrh r2, [r4, #42]
1938 0088 92B2 uxth r2, r2
1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
1939 .loc 1 1167 22 view .LVU648
1940 008a 013A subs r2, r2, #1
1941 008c 92B2 uxth r2, r2
1942 008e 6285 strh r2, [r4, #42] @ movhi
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1943 .loc 1 1168 7 is_stmt 1 view .LVU649
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1944 .loc 1 1168 11 is_stmt 0 view .LVU650
1945 0090 228D ldrh r2, [r4, #40]
1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
1946 .loc 1 1168 21 view .LVU651
1947 0092 013A subs r2, r2, #1
1948 0094 92B2 uxth r2, r2
1949 0096 2285 strh r2, [r4, #40] @ movhi
1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1950 .loc 1 1172 7 is_stmt 1 view .LVU652
1951 0098 0132 adds r2, r2, #1
1952 009a 4149 ldr r1, .L168
1953 009c 0091 str r1, [sp]
1954 009e D2B2 uxtb r2, r2
1955 00a0 3946 mov r1, r7
1956 00a2 2046 mov r0, r4
1957 00a4 FFF7FEFF bl I2C_TransferConfig
1958 .LVL137:
1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1959 .loc 1 1172 7 is_stmt 0 view .LVU653
1960 00a8 18E0 b .L156
1961 .LVL138:
1962 .L152:
1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1963 .loc 1 1154 7 is_stmt 1 view .LVU654
1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1964 .loc 1 1154 28 is_stmt 0 view .LVU655
1965 00aa 638D ldrh r3, [r4, #42]
1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
1966 .loc 1 1154 22 view .LVU656
1967 00ac 2385 strh r3, [r4, #40] @ movhi
1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1968 .loc 1 1155 7 is_stmt 1 view .LVU657
1969 .LVL139:
1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
1970 .loc 1 1155 16 is_stmt 0 view .LVU658
1971 00ae 4FF00073 mov r3, #33554432
1972 00b2 DFE7 b .L153
1973 .LVL140:
1974 .L154:
1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1975 .loc 1 1179 7 is_stmt 1 view .LVU659
1976 00b4 3A49 ldr r1, .L168
1977 00b6 0091 str r1, [sp]
1978 00b8 D2B2 uxtb r2, r2
ARM GAS /tmp/ccJ8PJrU.s page 177
1979 00ba 3946 mov r1, r7
1980 00bc 2046 mov r0, r4
1981 00be FFF7FEFF bl I2C_TransferConfig
1982 .LVL141:
1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
1983 .loc 1 1179 7 is_stmt 0 view .LVU660
1984 00c2 0BE0 b .L156
1985 .L158:
1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1986 .loc 1 1215 11 is_stmt 1 view .LVU661
1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1987 .loc 1 1215 32 is_stmt 0 view .LVU662
1988 00c4 628D ldrh r2, [r4, #42]
1989 00c6 92B2 uxth r2, r2
1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
1990 .loc 1 1215 26 view .LVU663
1991 00c8 2285 strh r2, [r4, #40] @ movhi
1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
1992 .loc 1 1216 11 is_stmt 1 view .LVU664
1993 00ca 0023 movs r3, #0
1994 00cc 0093 str r3, [sp]
1995 00ce 4FF00073 mov r3, #33554432
1996 00d2 D2B2 uxtb r2, r2
1997 00d4 3946 mov r1, r7
1998 00d6 2046 mov r0, r4
1999 00d8 FFF7FEFF bl I2C_TransferConfig
2000 .LVL142:
2001 .L156:
1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2002 .loc 1 1183 28 view .LVU665
1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2003 .loc 1 1183 16 is_stmt 0 view .LVU666
2004 00dc 638D ldrh r3, [r4, #42]
2005 00de 9BB2 uxth r3, r3
1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2006 .loc 1 1183 28 view .LVU667
2007 00e0 002B cmp r3, #0
2008 00e2 33D0 beq .L167
1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2009 .loc 1 1186 7 is_stmt 1 view .LVU668
1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2010 .loc 1 1186 11 is_stmt 0 view .LVU669
2011 00e4 2A46 mov r2, r5
2012 00e6 3146 mov r1, r6
2013 00e8 2046 mov r0, r4
2014 00ea FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
2015 .LVL143:
1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2016 .loc 1 1186 10 discriminator 1 view .LVU670
2017 00ee 0028 cmp r0, #0
2018 00f0 50D1 bne .L163
1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2019 .loc 1 1191 7 is_stmt 1 view .LVU671
1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2020 .loc 1 1191 35 is_stmt 0 view .LVU672
2021 00f2 626A ldr r2, [r4, #36]
1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 178
2022 .loc 1 1191 11 view .LVU673
2023 00f4 2368 ldr r3, [r4]
1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2024 .loc 1 1191 30 view .LVU674
2025 00f6 1278 ldrb r2, [r2] @ zero_extendqisi2
1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2026 .loc 1 1191 28 view .LVU675
2027 00f8 9A62 str r2, [r3, #40]
1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2028 .loc 1 1194 7 is_stmt 1 view .LVU676
1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2029 .loc 1 1194 11 is_stmt 0 view .LVU677
2030 00fa 636A ldr r3, [r4, #36]
1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2031 .loc 1 1194 21 view .LVU678
2032 00fc 0133 adds r3, r3, #1
2033 00fe 6362 str r3, [r4, #36]
1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
2034 .loc 1 1196 7 is_stmt 1 view .LVU679
1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
2035 .loc 1 1196 11 is_stmt 0 view .LVU680
2036 0100 638D ldrh r3, [r4, #42]
2037 0102 9BB2 uxth r3, r3
1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
2038 .loc 1 1196 22 view .LVU681
2039 0104 013B subs r3, r3, #1
2040 0106 9BB2 uxth r3, r3
2041 0108 6385 strh r3, [r4, #42] @ movhi
1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2042 .loc 1 1197 7 is_stmt 1 view .LVU682
1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2043 .loc 1 1197 11 is_stmt 0 view .LVU683
2044 010a 238D ldrh r3, [r4, #40]
1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2045 .loc 1 1197 21 view .LVU684
2046 010c 013B subs r3, r3, #1
2047 010e 9BB2 uxth r3, r3
2048 0110 2385 strh r3, [r4, #40] @ movhi
1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2049 .loc 1 1199 7 is_stmt 1 view .LVU685
1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2050 .loc 1 1199 16 is_stmt 0 view .LVU686
2051 0112 628D ldrh r2, [r4, #42]
2052 0114 92B2 uxth r2, r2
1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2053 .loc 1 1199 10 view .LVU687
2054 0116 002A cmp r2, #0
2055 0118 E0D0 beq .L156
1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2056 .loc 1 1199 35 discriminator 1 view .LVU688
2057 011a 002B cmp r3, #0
2058 011c DED1 bne .L156
1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2059 .loc 1 1202 9 is_stmt 1 view .LVU689
1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2060 .loc 1 1202 13 is_stmt 0 view .LVU690
2061 011e 0095 str r5, [sp]
ARM GAS /tmp/ccJ8PJrU.s page 179
2062 0120 3346 mov r3, r6
2063 0122 0022 movs r2, #0
2064 0124 8021 movs r1, #128
2065 0126 2046 mov r0, r4
2066 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2067 .LVL144:
1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2068 .loc 1 1202 12 discriminator 1 view .LVU691
2069 012c A0BB cbnz r0, .L164
1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2070 .loc 1 1207 9 is_stmt 1 view .LVU692
1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2071 .loc 1 1207 17 is_stmt 0 view .LVU693
2072 012e 638D ldrh r3, [r4, #42]
2073 0130 9BB2 uxth r3, r3
1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2074 .loc 1 1207 12 view .LVU694
2075 0132 FF2B cmp r3, #255
2076 0134 C6D9 bls .L158
1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2077 .loc 1 1209 11 is_stmt 1 view .LVU695
1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2078 .loc 1 1209 26 is_stmt 0 view .LVU696
2079 0136 FF22 movs r2, #255
2080 0138 2285 strh r2, [r4, #40] @ movhi
1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2081 .loc 1 1210 11 is_stmt 1 view .LVU697
2082 013a 0023 movs r3, #0
2083 013c 0093 str r3, [sp]
2084 013e 4FF08073 mov r3, #16777216
2085 0142 3946 mov r1, r7
2086 0144 2046 mov r0, r4
2087 0146 FFF7FEFF bl I2C_TransferConfig
2088 .LVL145:
2089 014a C7E7 b .L156
2090 .L167:
1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2091 .loc 1 1224 5 view .LVU698
1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2092 .loc 1 1224 9 is_stmt 0 view .LVU699
2093 014c 2A46 mov r2, r5
2094 014e 3146 mov r1, r6
2095 0150 2046 mov r0, r4
2096 0152 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2097 .LVL146:
1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2098 .loc 1 1224 8 discriminator 1 view .LVU700
2099 0156 08BB cbnz r0, .L165
1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2100 .loc 1 1230 5 is_stmt 1 view .LVU701
2101 0158 2368 ldr r3, [r4]
2102 015a 2022 movs r2, #32
2103 015c DA61 str r2, [r3, #28]
1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2104 .loc 1 1233 5 view .LVU702
2105 015e 2168 ldr r1, [r4]
2106 0160 4B68 ldr r3, [r1, #4]
ARM GAS /tmp/ccJ8PJrU.s page 180
2107 0162 23F0FF73 bic r3, r3, #33423360
2108 0166 23F48B33 bic r3, r3, #71168
2109 016a 23F4FF73 bic r3, r3, #510
2110 016e 23F00103 bic r3, r3, #1
2111 0172 4B60 str r3, [r1, #4]
1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2112 .loc 1 1235 5 view .LVU703
1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2113 .loc 1 1235 17 is_stmt 0 view .LVU704
2114 0174 84F84120 strb r2, [r4, #65]
1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2115 .loc 1 1236 5 is_stmt 1 view .LVU705
1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2116 .loc 1 1236 17 is_stmt 0 view .LVU706
2117 0178 0023 movs r3, #0
2118 017a 84F84230 strb r3, [r4, #66]
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2119 .loc 1 1239 5 is_stmt 1 view .LVU707
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2120 .loc 1 1239 5 view .LVU708
2121 017e 84F84030 strb r3, [r4, #64]
1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2122 .loc 1 1239 5 view .LVU709
1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2123 .loc 1 1241 5 view .LVU710
1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2124 .loc 1 1241 12 is_stmt 0 view .LVU711
2125 0182 00E0 b .L151
2126 .LVL147:
2127 .L160:
1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2128 .loc 1 1245 12 view .LVU712
2129 0184 0220 movs r0, #2
2130 .LVL148:
2131 .L151:
1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2132 .loc 1 1247 1 view .LVU713
2133 0186 02B0 add sp, sp, #8
2134 .cfi_remember_state
2135 .cfi_def_cfa_offset 32
2136 @ sp needed
2137 0188 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
2138 .LVL149:
2139 .L161:
2140 .cfi_restore_state
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2141 .loc 1 1128 5 discriminator 1 view .LVU714
2142 018c 0220 movs r0, #2
2143 .LVL150:
1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2144 .loc 1 1128 5 discriminator 1 view .LVU715
2145 018e FAE7 b .L151
2146 .LVL151:
2147 .L162:
1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2148 .loc 1 1135 14 view .LVU716
2149 0190 0120 movs r0, #1
ARM GAS /tmp/ccJ8PJrU.s page 181
2150 0192 F8E7 b .L151
2151 .LVL152:
2152 .L163:
1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2153 .loc 1 1188 16 view .LVU717
2154 0194 0120 movs r0, #1
2155 0196 F6E7 b .L151
2156 .L164:
1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2157 .loc 1 1204 18 view .LVU718
2158 0198 0120 movs r0, #1
2159 019a F4E7 b .L151
2160 .L165:
1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2161 .loc 1 1226 14 view .LVU719
2162 019c 0120 movs r0, #1
2163 019e F2E7 b .L151
2164 .L169:
2165 .align 2
2166 .L168:
2167 01a0 00200080 .word -2147475456
2168 .cfi_endproc
2169 .LFE127:
2171 .section .text.HAL_I2C_Master_Receive,"ax",%progbits
2172 .align 1
2173 .global HAL_I2C_Master_Receive
2174 .syntax unified
2175 .thumb
2176 .thumb_func
2178 HAL_I2C_Master_Receive:
2179 .LVL153:
2180 .LFB128:
1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2181 .loc 1 1262 1 is_stmt 1 view -0
2182 .cfi_startproc
2183 @ args = 4, pretend = 0, frame = 0
2184 @ frame_needed = 0, uses_anonymous_args = 0
1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2185 .loc 1 1262 1 is_stmt 0 view .LVU721
2186 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
2187 .cfi_def_cfa_offset 32
2188 .cfi_offset 4, -32
2189 .cfi_offset 5, -28
2190 .cfi_offset 6, -24
2191 .cfi_offset 7, -20
2192 .cfi_offset 8, -16
2193 .cfi_offset 9, -12
2194 .cfi_offset 10, -8
2195 .cfi_offset 14, -4
2196 0004 82B0 sub sp, sp, #8
2197 .cfi_def_cfa_offset 40
2198 0006 0F46 mov r7, r1
2199 0008 0A9E ldr r6, [sp, #40]
1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2200 .loc 1 1263 3 is_stmt 1 view .LVU722
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2201 .loc 1 1265 3 view .LVU723
ARM GAS /tmp/ccJ8PJrU.s page 182
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2202 .loc 1 1265 11 is_stmt 0 view .LVU724
2203 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
2204 .LVL154:
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2205 .loc 1 1265 11 view .LVU725
2206 000e C9B2 uxtb r1, r1
1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2207 .loc 1 1265 6 view .LVU726
2208 0010 2029 cmp r1, #32
2209 0012 40F0A380 bne .L178
2210 0016 0446 mov r4, r0
2211 0018 9046 mov r8, r2
2212 001a 9946 mov r9, r3
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2213 .loc 1 1268 5 is_stmt 1 view .LVU727
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2214 .loc 1 1268 5 view .LVU728
2215 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2216 .LVL155:
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2217 .loc 1 1268 5 is_stmt 0 view .LVU729
2218 0020 012B cmp r3, #1
2219 0022 00F09F80 beq .L179
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2220 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU730
2221 0026 4FF0010A mov r10, #1
2222 002a 80F840A0 strb r10, [r0, #64]
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2223 .loc 1 1268 5 discriminator 2 view .LVU731
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2224 .loc 1 1271 5 view .LVU732
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2225 .loc 1 1271 17 is_stmt 0 view .LVU733
2226 002e FFF7FEFF bl HAL_GetTick
2227 .LVL156:
1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2228 .loc 1 1271 17 view .LVU734
2229 0032 0546 mov r5, r0
2230 .LVL157:
1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2231 .loc 1 1273 5 is_stmt 1 view .LVU735
1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2232 .loc 1 1273 9 is_stmt 0 view .LVU736
2233 0034 0090 str r0, [sp]
2234 0036 1923 movs r3, #25
2235 0038 5246 mov r2, r10
2236 003a 4FF40041 mov r1, #32768
2237 003e 2046 mov r0, r4
2238 .LVL158:
1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2239 .loc 1 1273 9 view .LVU737
2240 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2241 .LVL159:
1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2242 .loc 1 1273 8 discriminator 1 view .LVU738
2243 0044 0028 cmp r0, #0
ARM GAS /tmp/ccJ8PJrU.s page 183
2244 0046 40F08F80 bne .L180
1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2245 .loc 1 1278 5 is_stmt 1 view .LVU739
1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
2246 .loc 1 1278 21 is_stmt 0 view .LVU740
2247 004a 2223 movs r3, #34
2248 004c 84F84130 strb r3, [r4, #65]
1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2249 .loc 1 1279 5 is_stmt 1 view .LVU741
1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2250 .loc 1 1279 21 is_stmt 0 view .LVU742
2251 0050 1023 movs r3, #16
2252 0052 84F84230 strb r3, [r4, #66]
1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2253 .loc 1 1280 5 is_stmt 1 view .LVU743
1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2254 .loc 1 1280 21 is_stmt 0 view .LVU744
2255 0056 0023 movs r3, #0
2256 0058 6364 str r3, [r4, #68]
1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2257 .loc 1 1283 5 is_stmt 1 view .LVU745
1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2258 .loc 1 1283 21 is_stmt 0 view .LVU746
2259 005a C4F82480 str r8, [r4, #36]
1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2260 .loc 1 1284 5 is_stmt 1 view .LVU747
1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2261 .loc 1 1284 21 is_stmt 0 view .LVU748
2262 005e A4F82A90 strh r9, [r4, #42] @ movhi
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2263 .loc 1 1285 5 is_stmt 1 view .LVU749
1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2264 .loc 1 1285 21 is_stmt 0 view .LVU750
2265 0062 6363 str r3, [r4, #52]
1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2266 .loc 1 1289 5 is_stmt 1 view .LVU751
1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2267 .loc 1 1289 13 is_stmt 0 view .LVU752
2268 0064 638D ldrh r3, [r4, #42]
2269 0066 9BB2 uxth r3, r3
1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2270 .loc 1 1289 8 view .LVU753
2271 0068 FF2B cmp r3, #255
2272 006a 0BD9 bls .L172
1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2273 .loc 1 1291 7 is_stmt 1 view .LVU754
1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2274 .loc 1 1291 22 is_stmt 0 view .LVU755
2275 006c 5246 mov r2, r10
2276 006e A4F828A0 strh r10, [r4, #40] @ movhi
1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2277 .loc 1 1292 7 is_stmt 1 view .LVU756
2278 0072 414B ldr r3, .L186
2279 0074 0093 str r3, [sp]
2280 0076 4FF08073 mov r3, #16777216
2281 007a 3946 mov r1, r7
2282 007c 2046 mov r0, r4
ARM GAS /tmp/ccJ8PJrU.s page 184
2283 007e FFF7FEFF bl I2C_TransferConfig
2284 .LVL160:
2285 0082 18E0 b .L174
2286 .L172:
1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2287 .loc 1 1297 7 view .LVU757
1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2288 .loc 1 1297 28 is_stmt 0 view .LVU758
2289 0084 628D ldrh r2, [r4, #42]
2290 0086 92B2 uxth r2, r2
1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2291 .loc 1 1297 22 view .LVU759
2292 0088 2285 strh r2, [r4, #40] @ movhi
1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
2293 .loc 1 1298 7 is_stmt 1 view .LVU760
2294 008a 3B4B ldr r3, .L186
2295 008c 0093 str r3, [sp]
2296 008e 4FF00073 mov r3, #33554432
2297 0092 D2B2 uxtb r2, r2
2298 0094 3946 mov r1, r7
2299 0096 2046 mov r0, r4
2300 0098 FFF7FEFF bl I2C_TransferConfig
2301 .LVL161:
2302 009c 0BE0 b .L174
2303 .L176:
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2304 .loc 1 1335 11 view .LVU761
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2305 .loc 1 1335 32 is_stmt 0 view .LVU762
2306 009e 628D ldrh r2, [r4, #42]
2307 00a0 92B2 uxth r2, r2
1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
2308 .loc 1 1335 26 view .LVU763
2309 00a2 2285 strh r2, [r4, #40] @ movhi
1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2310 .loc 1 1336 11 is_stmt 1 view .LVU764
2311 00a4 0023 movs r3, #0
2312 00a6 0093 str r3, [sp]
2313 00a8 4FF00073 mov r3, #33554432
2314 00ac D2B2 uxtb r2, r2
2315 00ae 3946 mov r1, r7
2316 00b0 2046 mov r0, r4
2317 00b2 FFF7FEFF bl I2C_TransferConfig
2318 .LVL162:
2319 .L174:
1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2320 .loc 1 1302 28 view .LVU765
1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2321 .loc 1 1302 16 is_stmt 0 view .LVU766
2322 00b6 638D ldrh r3, [r4, #42]
2323 00b8 9BB2 uxth r3, r3
1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2324 .loc 1 1302 28 view .LVU767
2325 00ba 002B cmp r3, #0
2326 00bc 32D0 beq .L185
1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2327 .loc 1 1305 7 is_stmt 1 view .LVU768
ARM GAS /tmp/ccJ8PJrU.s page 185
1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2328 .loc 1 1305 11 is_stmt 0 view .LVU769
2329 00be 2A46 mov r2, r5
2330 00c0 3146 mov r1, r6
2331 00c2 2046 mov r0, r4
2332 00c4 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
2333 .LVL163:
1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2334 .loc 1 1305 10 discriminator 1 view .LVU770
2335 00c8 0028 cmp r0, #0
2336 00ca 4FD1 bne .L181
1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2337 .loc 1 1311 7 is_stmt 1 view .LVU771
1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2338 .loc 1 1311 38 is_stmt 0 view .LVU772
2339 00cc 2368 ldr r3, [r4]
1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2340 .loc 1 1311 48 view .LVU773
2341 00ce 5A6A ldr r2, [r3, #36]
1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2342 .loc 1 1311 12 view .LVU774
2343 00d0 636A ldr r3, [r4, #36]
1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2344 .loc 1 1311 23 view .LVU775
2345 00d2 1A70 strb r2, [r3]
1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2346 .loc 1 1314 7 is_stmt 1 view .LVU776
1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2347 .loc 1 1314 11 is_stmt 0 view .LVU777
2348 00d4 636A ldr r3, [r4, #36]
1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2349 .loc 1 1314 21 view .LVU778
2350 00d6 0133 adds r3, r3, #1
2351 00d8 6362 str r3, [r4, #36]
1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2352 .loc 1 1316 7 is_stmt 1 view .LVU779
1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2353 .loc 1 1316 11 is_stmt 0 view .LVU780
2354 00da 228D ldrh r2, [r4, #40]
1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
2355 .loc 1 1316 21 view .LVU781
2356 00dc 013A subs r2, r2, #1
2357 00de 92B2 uxth r2, r2
2358 00e0 2285 strh r2, [r4, #40] @ movhi
1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2359 .loc 1 1317 7 is_stmt 1 view .LVU782
1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2360 .loc 1 1317 11 is_stmt 0 view .LVU783
2361 00e2 638D ldrh r3, [r4, #42]
2362 00e4 9BB2 uxth r3, r3
1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2363 .loc 1 1317 22 view .LVU784
2364 00e6 013B subs r3, r3, #1
2365 00e8 9BB2 uxth r3, r3
2366 00ea 6385 strh r3, [r4, #42] @ movhi
1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2367 .loc 1 1319 7 is_stmt 1 view .LVU785
ARM GAS /tmp/ccJ8PJrU.s page 186
1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2368 .loc 1 1319 16 is_stmt 0 view .LVU786
2369 00ec 638D ldrh r3, [r4, #42]
2370 00ee 9BB2 uxth r3, r3
1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2371 .loc 1 1319 10 view .LVU787
2372 00f0 002B cmp r3, #0
2373 00f2 E0D0 beq .L174
1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2374 .loc 1 1319 35 discriminator 1 view .LVU788
2375 00f4 002A cmp r2, #0
2376 00f6 DED1 bne .L174
1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2377 .loc 1 1322 9 is_stmt 1 view .LVU789
1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2378 .loc 1 1322 13 is_stmt 0 view .LVU790
2379 00f8 0095 str r5, [sp]
2380 00fa 3346 mov r3, r6
2381 00fc 8021 movs r1, #128
2382 00fe 2046 mov r0, r4
2383 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2384 .LVL164:
1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2385 .loc 1 1322 12 discriminator 1 view .LVU791
2386 0104 A0BB cbnz r0, .L182
1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2387 .loc 1 1327 9 is_stmt 1 view .LVU792
1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2388 .loc 1 1327 17 is_stmt 0 view .LVU793
2389 0106 638D ldrh r3, [r4, #42]
2390 0108 9BB2 uxth r3, r3
1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2391 .loc 1 1327 12 view .LVU794
2392 010a FF2B cmp r3, #255
2393 010c C7D9 bls .L176
1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2394 .loc 1 1329 11 is_stmt 1 view .LVU795
1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
2395 .loc 1 1329 26 is_stmt 0 view .LVU796
2396 010e FF22 movs r2, #255
2397 0110 2285 strh r2, [r4, #40] @ movhi
1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
2398 .loc 1 1330 11 is_stmt 1 view .LVU797
2399 0112 0023 movs r3, #0
2400 0114 0093 str r3, [sp]
2401 0116 4FF08073 mov r3, #16777216
2402 011a 3946 mov r1, r7
2403 011c 2046 mov r0, r4
2404 011e FFF7FEFF bl I2C_TransferConfig
2405 .LVL165:
2406 0122 C8E7 b .L174
2407 .L185:
1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2408 .loc 1 1344 5 view .LVU798
1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2409 .loc 1 1344 9 is_stmt 0 view .LVU799
2410 0124 2A46 mov r2, r5
ARM GAS /tmp/ccJ8PJrU.s page 187
2411 0126 3146 mov r1, r6
2412 0128 2046 mov r0, r4
2413 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
2414 .LVL166:
1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2415 .loc 1 1344 8 discriminator 1 view .LVU800
2416 012e 08BB cbnz r0, .L183
1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2417 .loc 1 1350 5 is_stmt 1 view .LVU801
2418 0130 2368 ldr r3, [r4]
2419 0132 2022 movs r2, #32
2420 0134 DA61 str r2, [r3, #28]
1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2421 .loc 1 1353 5 view .LVU802
2422 0136 2168 ldr r1, [r4]
2423 0138 4B68 ldr r3, [r1, #4]
2424 013a 23F0FF73 bic r3, r3, #33423360
2425 013e 23F48B33 bic r3, r3, #71168
2426 0142 23F4FF73 bic r3, r3, #510
2427 0146 23F00103 bic r3, r3, #1
2428 014a 4B60 str r3, [r1, #4]
1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2429 .loc 1 1355 5 view .LVU803
1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2430 .loc 1 1355 17 is_stmt 0 view .LVU804
2431 014c 84F84120 strb r2, [r4, #65]
1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2432 .loc 1 1356 5 is_stmt 1 view .LVU805
1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2433 .loc 1 1356 17 is_stmt 0 view .LVU806
2434 0150 0023 movs r3, #0
2435 0152 84F84230 strb r3, [r4, #66]
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2436 .loc 1 1359 5 is_stmt 1 view .LVU807
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2437 .loc 1 1359 5 view .LVU808
2438 0156 84F84030 strb r3, [r4, #64]
1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2439 .loc 1 1359 5 view .LVU809
1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2440 .loc 1 1361 5 view .LVU810
1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2441 .loc 1 1361 12 is_stmt 0 view .LVU811
2442 015a 00E0 b .L171
2443 .LVL167:
2444 .L178:
1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2445 .loc 1 1365 12 view .LVU812
2446 015c 0220 movs r0, #2
2447 .LVL168:
2448 .L171:
1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2449 .loc 1 1367 1 view .LVU813
2450 015e 02B0 add sp, sp, #8
2451 .cfi_remember_state
2452 .cfi_def_cfa_offset 32
2453 @ sp needed
ARM GAS /tmp/ccJ8PJrU.s page 188
2454 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
2455 .LVL169:
2456 .L179:
2457 .cfi_restore_state
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2458 .loc 1 1268 5 discriminator 1 view .LVU814
2459 0164 0220 movs r0, #2
2460 .LVL170:
1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2461 .loc 1 1268 5 discriminator 1 view .LVU815
2462 0166 FAE7 b .L171
2463 .LVL171:
2464 .L180:
1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2465 .loc 1 1275 14 view .LVU816
2466 0168 0120 movs r0, #1
2467 016a F8E7 b .L171
2468 .L181:
1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2469 .loc 1 1307 16 view .LVU817
2470 016c 0120 movs r0, #1
2471 016e F6E7 b .L171
2472 .L182:
1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2473 .loc 1 1324 18 view .LVU818
2474 0170 0120 movs r0, #1
2475 0172 F4E7 b .L171
2476 .L183:
1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2477 .loc 1 1346 14 view .LVU819
2478 0174 0120 movs r0, #1
2479 0176 F2E7 b .L171
2480 .L187:
2481 .align 2
2482 .L186:
2483 0178 00240080 .word -2147474432
2484 .cfi_endproc
2485 .LFE128:
2487 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits
2488 .align 1
2489 .global HAL_I2C_Slave_Transmit
2490 .syntax unified
2491 .thumb
2492 .thumb_func
2494 HAL_I2C_Slave_Transmit:
2495 .LVL172:
2496 .LFB129:
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2497 .loc 1 1380 1 is_stmt 1 view -0
2498 .cfi_startproc
2499 @ args = 0, pretend = 0, frame = 0
2500 @ frame_needed = 0, uses_anonymous_args = 0
1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2501 .loc 1 1380 1 is_stmt 0 view .LVU821
2502 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2503 .cfi_def_cfa_offset 24
2504 .cfi_offset 4, -24
ARM GAS /tmp/ccJ8PJrU.s page 189
2505 .cfi_offset 5, -20
2506 .cfi_offset 6, -16
2507 .cfi_offset 7, -12
2508 .cfi_offset 8, -8
2509 .cfi_offset 14, -4
2510 0004 82B0 sub sp, sp, #8
2511 .cfi_def_cfa_offset 32
2512 0006 1D46 mov r5, r3
1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t tmpXferCount;
2513 .loc 1 1381 3 is_stmt 1 view .LVU822
1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef error;
2514 .loc 1 1382 3 view .LVU823
1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2515 .loc 1 1383 3 view .LVU824
1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2516 .loc 1 1385 3 view .LVU825
1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2517 .loc 1 1385 11 is_stmt 0 view .LVU826
2518 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2519 .LVL173:
1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2520 .loc 1 1385 11 view .LVU827
2521 000c DBB2 uxtb r3, r3
1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2522 .loc 1 1385 6 view .LVU828
2523 000e 202B cmp r3, #32
2524 0010 40F0EA80 bne .L204
2525 0014 0446 mov r4, r0
2526 0016 0F46 mov r7, r1
2527 0018 9046 mov r8, r2
1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2528 .loc 1 1387 5 is_stmt 1 view .LVU829
1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2529 .loc 1 1387 8 is_stmt 0 view .LVU830
2530 001a 0029 cmp r1, #0
2531 001c 57D0 beq .L190
1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2532 .loc 1 1387 25 discriminator 1 view .LVU831
2533 001e 002A cmp r2, #0
2534 0020 55D0 beq .L190
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2535 .loc 1 1393 5 is_stmt 1 view .LVU832
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2536 .loc 1 1393 5 view .LVU833
2537 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2538 0026 012B cmp r3, #1
2539 0028 00F0E280 beq .L205
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2540 .loc 1 1393 5 discriminator 2 view .LVU834
2541 002c 0123 movs r3, #1
2542 002e 80F84030 strb r3, [r0, #64]
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2543 .loc 1 1393 5 discriminator 2 view .LVU835
1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2544 .loc 1 1396 5 view .LVU836
1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2545 .loc 1 1396 17 is_stmt 0 view .LVU837
ARM GAS /tmp/ccJ8PJrU.s page 190
2546 0032 FFF7FEFF bl HAL_GetTick
2547 .LVL174:
1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2548 .loc 1 1396 17 view .LVU838
2549 0036 0646 mov r6, r0
2550 .LVL175:
1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2551 .loc 1 1398 5 is_stmt 1 view .LVU839
1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
2552 .loc 1 1398 21 is_stmt 0 view .LVU840
2553 0038 2123 movs r3, #33
2554 003a 84F84130 strb r3, [r4, #65]
1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2555 .loc 1 1399 5 is_stmt 1 view .LVU841
1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
2556 .loc 1 1399 21 is_stmt 0 view .LVU842
2557 003e 2023 movs r3, #32
2558 0040 84F84230 strb r3, [r4, #66]
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2559 .loc 1 1400 5 is_stmt 1 view .LVU843
1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2560 .loc 1 1400 21 is_stmt 0 view .LVU844
2561 0044 0023 movs r3, #0
2562 0046 6364 str r3, [r4, #68]
1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2563 .loc 1 1403 5 is_stmt 1 view .LVU845
1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
2564 .loc 1 1403 21 is_stmt 0 view .LVU846
2565 0048 6762 str r7, [r4, #36]
1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2566 .loc 1 1404 5 is_stmt 1 view .LVU847
1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
2567 .loc 1 1404 21 is_stmt 0 view .LVU848
2568 004a A4F82A80 strh r8, [r4, #42] @ movhi
1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2569 .loc 1 1405 5 is_stmt 1 view .LVU849
1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2570 .loc 1 1405 21 is_stmt 0 view .LVU850
2571 004e 6363 str r3, [r4, #52]
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2572 .loc 1 1408 5 is_stmt 1 view .LVU851
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2573 .loc 1 1408 9 is_stmt 0 view .LVU852
2574 0050 2268 ldr r2, [r4]
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2575 .loc 1 1408 19 view .LVU853
2576 0052 5368 ldr r3, [r2, #4]
1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2577 .loc 1 1408 25 view .LVU854
2578 0054 23F40043 bic r3, r3, #32768
2579 0058 5360 str r3, [r2, #4]
1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2580 .loc 1 1411 5 is_stmt 1 view .LVU855
1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2581 .loc 1 1411 19 is_stmt 0 view .LVU856
2582 005a 236A ldr r3, [r4, #32]
1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 191
2583 .loc 1 1411 8 view .LVU857
2584 005c B3F5003F cmp r3, #131072
2585 0060 3AD0 beq .L207
2586 .L192:
1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2587 .loc 1 1424 5 is_stmt 1 view .LVU858
1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2588 .loc 1 1424 9 is_stmt 0 view .LVU859
2589 0062 0096 str r6, [sp]
2590 0064 2B46 mov r3, r5
2591 0066 0022 movs r2, #0
2592 0068 0821 movs r1, #8
2593 006a 2046 mov r0, r4
2594 .LVL176:
1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2595 .loc 1 1424 9 view .LVU860
2596 006c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2597 .LVL177:
1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2598 .loc 1 1424 8 discriminator 1 view .LVU861
2599 0070 0028 cmp r0, #0
2600 0072 3ED1 bne .L208
1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2601 .loc 1 1436 5 is_stmt 1 view .LVU862
2602 0074 2368 ldr r3, [r4]
2603 0076 0822 movs r2, #8
2604 0078 DA61 str r2, [r3, #28]
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2605 .loc 1 1439 5 view .LVU863
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2606 .loc 1 1439 19 is_stmt 0 view .LVU864
2607 007a E368 ldr r3, [r4, #12]
1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2608 .loc 1 1439 8 view .LVU865
2609 007c 022B cmp r3, #2
2610 007e 42D0 beq .L209
2611 .L194:
1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2612 .loc 1 1458 5 is_stmt 1 view .LVU866
1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2613 .loc 1 1458 9 is_stmt 0 view .LVU867
2614 0080 0096 str r6, [sp]
2615 0082 2B46 mov r3, r5
2616 0084 0022 movs r2, #0
2617 0086 4FF48031 mov r1, #65536
2618 008a 2046 mov r0, r4
2619 008c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2620 .LVL178:
1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2621 .loc 1 1458 8 discriminator 1 view .LVU868
2622 0090 0028 cmp r0, #0
2623 0092 4ED1 bne .L210
2624 .L196:
1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2625 .loc 1 1469 28 is_stmt 1 view .LVU869
1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2626 .loc 1 1469 16 is_stmt 0 view .LVU870
ARM GAS /tmp/ccJ8PJrU.s page 192
2627 0094 628D ldrh r2, [r4, #42]
2628 0096 92B2 uxth r2, r2
1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2629 .loc 1 1469 28 view .LVU871
2630 0098 002A cmp r2, #0
2631 009a 5BD0 beq .L211
1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2632 .loc 1 1472 7 is_stmt 1 view .LVU872
1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2633 .loc 1 1472 11 is_stmt 0 view .LVU873
2634 009c 3246 mov r2, r6
2635 009e 2946 mov r1, r5
2636 00a0 2046 mov r0, r4
2637 00a2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
2638 .LVL179:
1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2639 .loc 1 1472 10 discriminator 1 view .LVU874
2640 00a6 0028 cmp r0, #0
2641 00a8 4DD1 bne .L212
1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2642 .loc 1 1480 7 is_stmt 1 view .LVU875
1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2643 .loc 1 1480 35 is_stmt 0 view .LVU876
2644 00aa 626A ldr r2, [r4, #36]
1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2645 .loc 1 1480 11 view .LVU877
2646 00ac 2368 ldr r3, [r4]
1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2647 .loc 1 1480 30 view .LVU878
2648 00ae 1278 ldrb r2, [r2] @ zero_extendqisi2
1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2649 .loc 1 1480 28 view .LVU879
2650 00b0 9A62 str r2, [r3, #40]
1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2651 .loc 1 1483 7 is_stmt 1 view .LVU880
1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2652 .loc 1 1483 11 is_stmt 0 view .LVU881
2653 00b2 636A ldr r3, [r4, #36]
1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2654 .loc 1 1483 21 view .LVU882
2655 00b4 0133 adds r3, r3, #1
2656 00b6 6362 str r3, [r4, #36]
1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2657 .loc 1 1485 7 is_stmt 1 view .LVU883
1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2658 .loc 1 1485 11 is_stmt 0 view .LVU884
2659 00b8 B4F82AC0 ldrh ip, [r4, #42]
2660 00bc 1FFA8CFC uxth ip, ip
1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2661 .loc 1 1485 22 view .LVU885
2662 00c0 0CF1FF3C add ip, ip, #-1
2663 00c4 1FFA8CFC uxth ip, ip
2664 00c8 A4F82AC0 strh ip, [r4, #42] @ movhi
2665 00cc E2E7 b .L196
2666 .LVL180:
2667 .L190:
1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
ARM GAS /tmp/ccJ8PJrU.s page 193
2668 .loc 1 1389 7 is_stmt 1 view .LVU886
1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2669 .loc 1 1389 23 is_stmt 0 view .LVU887
2670 00ce 4FF40073 mov r3, #512
2671 00d2 6364 str r3, [r4, #68]
1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2672 .loc 1 1390 7 is_stmt 1 view .LVU888
1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2673 .loc 1 1390 15 is_stmt 0 view .LVU889
2674 00d4 0120 movs r0, #1
2675 .LVL181:
1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2676 .loc 1 1390 15 view .LVU890
2677 00d6 88E0 b .L189
2678 .LVL182:
2679 .L207:
1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2680 .loc 1 1415 7 is_stmt 1 view .LVU891
1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2681 .loc 1 1415 35 is_stmt 0 view .LVU892
2682 00d8 626A ldr r2, [r4, #36]
1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2683 .loc 1 1415 11 view .LVU893
2684 00da 2368 ldr r3, [r4]
1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2685 .loc 1 1415 30 view .LVU894
2686 00dc 1278 ldrb r2, [r2] @ zero_extendqisi2
1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2687 .loc 1 1415 28 view .LVU895
2688 00de 9A62 str r2, [r3, #40]
1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2689 .loc 1 1418 7 is_stmt 1 view .LVU896
1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2690 .loc 1 1418 11 is_stmt 0 view .LVU897
2691 00e0 636A ldr r3, [r4, #36]
1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2692 .loc 1 1418 21 view .LVU898
2693 00e2 0133 adds r3, r3, #1
2694 00e4 6362 str r3, [r4, #36]
1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2695 .loc 1 1420 7 is_stmt 1 view .LVU899
1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2696 .loc 1 1420 11 is_stmt 0 view .LVU900
2697 00e6 638D ldrh r3, [r4, #42]
2698 00e8 9BB2 uxth r3, r3
1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2699 .loc 1 1420 22 view .LVU901
2700 00ea 013B subs r3, r3, #1
2701 00ec 9BB2 uxth r3, r3
2702 00ee 6385 strh r3, [r4, #42] @ movhi
2703 00f0 B7E7 b .L192
2704 .LVL183:
2705 .L208:
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2706 .loc 1 1427 7 is_stmt 1 view .LVU902
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2707 .loc 1 1427 11 is_stmt 0 view .LVU903
ARM GAS /tmp/ccJ8PJrU.s page 194
2708 00f2 2268 ldr r2, [r4]
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2709 .loc 1 1427 21 view .LVU904
2710 00f4 5368 ldr r3, [r2, #4]
1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2711 .loc 1 1427 27 view .LVU905
2712 00f6 43F40043 orr r3, r3, #32768
2713 00fa 5360 str r3, [r2, #4]
1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2714 .loc 1 1430 7 is_stmt 1 view .LVU906
2715 00fc 2046 mov r0, r4
2716 00fe FFF7FEFF bl I2C_Flush_TXDR
2717 .LVL184:
1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2718 .loc 1 1432 7 view .LVU907
1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2719 .loc 1 1432 14 is_stmt 0 view .LVU908
2720 0102 0120 movs r0, #1
2721 0104 71E0 b .L189
2722 .L209:
1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2723 .loc 1 1442 7 is_stmt 1 view .LVU909
1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2724 .loc 1 1442 11 is_stmt 0 view .LVU910
2725 0106 0096 str r6, [sp]
2726 0108 2B46 mov r3, r5
2727 010a 0022 movs r2, #0
2728 010c 0821 movs r1, #8
2729 010e 2046 mov r0, r4
2730 0110 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2731 .LVL185:
1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2732 .loc 1 1442 10 discriminator 1 view .LVU911
2733 0114 18B9 cbnz r0, .L213
1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2734 .loc 1 1454 7 is_stmt 1 view .LVU912
2735 0116 2368 ldr r3, [r4]
2736 0118 0822 movs r2, #8
2737 011a DA61 str r2, [r3, #28]
2738 011c B0E7 b .L194
2739 .L213:
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2740 .loc 1 1445 9 view .LVU913
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2741 .loc 1 1445 13 is_stmt 0 view .LVU914
2742 011e 2268 ldr r2, [r4]
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2743 .loc 1 1445 23 view .LVU915
2744 0120 5368 ldr r3, [r2, #4]
1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2745 .loc 1 1445 29 view .LVU916
2746 0122 43F40043 orr r3, r3, #32768
2747 0126 5360 str r3, [r2, #4]
1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2748 .loc 1 1448 9 is_stmt 1 view .LVU917
2749 0128 2046 mov r0, r4
2750 012a FFF7FEFF bl I2C_Flush_TXDR
ARM GAS /tmp/ccJ8PJrU.s page 195
2751 .LVL186:
1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2752 .loc 1 1450 9 view .LVU918
1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2753 .loc 1 1450 16 is_stmt 0 view .LVU919
2754 012e 0120 movs r0, #1
2755 0130 5BE0 b .L189
2756 .L210:
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2757 .loc 1 1461 7 is_stmt 1 view .LVU920
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2758 .loc 1 1461 11 is_stmt 0 view .LVU921
2759 0132 2268 ldr r2, [r4]
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2760 .loc 1 1461 21 view .LVU922
2761 0134 5368 ldr r3, [r2, #4]
1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2762 .loc 1 1461 27 view .LVU923
2763 0136 43F40043 orr r3, r3, #32768
2764 013a 5360 str r3, [r2, #4]
1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2765 .loc 1 1464 7 is_stmt 1 view .LVU924
2766 013c 2046 mov r0, r4
2767 013e FFF7FEFF bl I2C_Flush_TXDR
2768 .LVL187:
1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2769 .loc 1 1466 7 view .LVU925
1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2770 .loc 1 1466 14 is_stmt 0 view .LVU926
2771 0142 0120 movs r0, #1
2772 0144 51E0 b .L189
2773 .L212:
1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2774 .loc 1 1475 9 is_stmt 1 view .LVU927
1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2775 .loc 1 1475 13 is_stmt 0 view .LVU928
2776 0146 2268 ldr r2, [r4]
1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2777 .loc 1 1475 23 view .LVU929
2778 0148 5368 ldr r3, [r2, #4]
1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2779 .loc 1 1475 29 view .LVU930
2780 014a 43F40043 orr r3, r3, #32768
2781 014e 5360 str r3, [r2, #4]
1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2782 .loc 1 1476 9 is_stmt 1 view .LVU931
1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2783 .loc 1 1476 16 is_stmt 0 view .LVU932
2784 0150 0120 movs r0, #1
2785 0152 4AE0 b .L189
2786 .L211:
1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2787 .loc 1 1489 5 is_stmt 1 view .LVU933
1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2788 .loc 1 1489 13 is_stmt 0 view .LVU934
2789 0154 0096 str r6, [sp]
2790 0156 2B46 mov r3, r5
ARM GAS /tmp/ccJ8PJrU.s page 196
2791 0158 1021 movs r1, #16
2792 015a 2046 mov r0, r4
2793 015c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2794 .LVL188:
1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2795 .loc 1 1491 5 is_stmt 1 view .LVU935
1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2796 .loc 1 1491 8 is_stmt 0 view .LVU936
2797 0160 E8B1 cbz r0, .L199
1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
2798 .loc 1 1497 7 is_stmt 1 view .LVU937
1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U))
2799 .loc 1 1497 20 is_stmt 0 view .LVU938
2800 0162 638D ldrh r3, [r4, #42]
2801 0164 9BB2 uxth r3, r3
2802 .LVL189:
1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2803 .loc 1 1498 7 is_stmt 1 view .LVU939
1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2804 .loc 1 1498 16 is_stmt 0 view .LVU940
2805 0166 626C ldr r2, [r4, #68]
1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2806 .loc 1 1498 10 view .LVU941
2807 0168 042A cmp r2, #4
2808 016a 11D1 bne .L200
1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2809 .loc 1 1498 49 discriminator 1 view .LVU942
2810 016c 83B9 cbnz r3, .L200
1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2811 .loc 1 1501 9 is_stmt 1 view .LVU943
1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2812 .loc 1 1501 25 is_stmt 0 view .LVU944
2813 016e 6364 str r3, [r4, #68]
2814 .LVL190:
2815 .L201:
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2816 .loc 1 1532 5 is_stmt 1 view .LVU945
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2817 .loc 1 1532 9 is_stmt 0 view .LVU946
2818 0170 0096 str r6, [sp]
2819 0172 2B46 mov r3, r5
2820 0174 0122 movs r2, #1
2821 0176 4FF40041 mov r1, #32768
2822 017a 2046 mov r0, r4
2823 017c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
2824 .LVL191:
1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2825 .loc 1 1532 8 discriminator 1 view .LVU947
2826 0180 20B3 cbz r0, .L203
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2827 .loc 1 1535 7 is_stmt 1 view .LVU948
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2828 .loc 1 1535 11 is_stmt 0 view .LVU949
2829 0182 2268 ldr r2, [r4]
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2830 .loc 1 1535 21 view .LVU950
2831 0184 5368 ldr r3, [r2, #4]
ARM GAS /tmp/ccJ8PJrU.s page 197
1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2832 .loc 1 1535 27 view .LVU951
2833 0186 43F40043 orr r3, r3, #32768
2834 018a 5360 str r3, [r2, #4]
1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2835 .loc 1 1536 7 is_stmt 1 view .LVU952
1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2836 .loc 1 1536 14 is_stmt 0 view .LVU953
2837 018c 0120 movs r0, #1
2838 018e 2CE0 b .L189
2839 .LVL192:
2840 .L200:
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2841 .loc 1 1506 9 is_stmt 1 view .LVU954
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2842 .loc 1 1506 13 is_stmt 0 view .LVU955
2843 0190 2268 ldr r2, [r4]
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2844 .loc 1 1506 23 view .LVU956
2845 0192 5368 ldr r3, [r2, #4]
2846 .LVL193:
1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
2847 .loc 1 1506 29 view .LVU957
2848 0194 43F40043 orr r3, r3, #32768
2849 0198 5360 str r3, [r2, #4]
1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2850 .loc 1 1507 9 is_stmt 1 view .LVU958
1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2851 .loc 1 1507 16 is_stmt 0 view .LVU959
2852 019a 0120 movs r0, #1
2853 .LVL194:
1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2854 .loc 1 1507 16 view .LVU960
2855 019c 25E0 b .L189
2856 .LVL195:
2857 .L199:
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2858 .loc 1 1513 7 is_stmt 1 view .LVU961
2859 019e 2046 mov r0, r4
2860 .LVL196:
1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2861 .loc 1 1513 7 is_stmt 0 view .LVU962
2862 01a0 FFF7FEFF bl I2C_Flush_TXDR
2863 .LVL197:
1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2864 .loc 1 1516 7 is_stmt 1 view .LVU963
2865 01a4 2368 ldr r3, [r4]
2866 01a6 1022 movs r2, #16
2867 01a8 DA61 str r2, [r3, #28]
1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2868 .loc 1 1519 7 view .LVU964
1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2869 .loc 1 1519 11 is_stmt 0 view .LVU965
2870 01aa 3246 mov r2, r6
2871 01ac 2946 mov r1, r5
2872 01ae 2046 mov r0, r4
2873 01b0 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
ARM GAS /tmp/ccJ8PJrU.s page 198
2874 .LVL198:
1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2875 .loc 1 1519 10 discriminator 1 view .LVU966
2876 01b4 18B9 cbnz r0, .L214
1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2877 .loc 1 1528 7 is_stmt 1 view .LVU967
2878 01b6 2368 ldr r3, [r4]
2879 01b8 2022 movs r2, #32
2880 01ba DA61 str r2, [r3, #28]
2881 01bc D8E7 b .L201
2882 .L214:
1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2883 .loc 1 1522 9 view .LVU968
1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2884 .loc 1 1522 13 is_stmt 0 view .LVU969
2885 01be 2268 ldr r2, [r4]
1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2886 .loc 1 1522 23 view .LVU970
2887 01c0 5368 ldr r3, [r2, #4]
1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2888 .loc 1 1522 29 view .LVU971
2889 01c2 43F40043 orr r3, r3, #32768
2890 01c6 5360 str r3, [r2, #4]
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2891 .loc 1 1524 9 is_stmt 1 view .LVU972
1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2892 .loc 1 1524 16 is_stmt 0 view .LVU973
2893 01c8 0120 movs r0, #1
2894 01ca 0EE0 b .L189
2895 .L203:
1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2896 .loc 1 1540 5 is_stmt 1 view .LVU974
1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2897 .loc 1 1540 9 is_stmt 0 view .LVU975
2898 01cc 2268 ldr r2, [r4]
1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2899 .loc 1 1540 19 view .LVU976
2900 01ce 5368 ldr r3, [r2, #4]
1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2901 .loc 1 1540 25 view .LVU977
2902 01d0 43F40043 orr r3, r3, #32768
2903 01d4 5360 str r3, [r2, #4]
1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2904 .loc 1 1542 5 is_stmt 1 view .LVU978
1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
2905 .loc 1 1542 17 is_stmt 0 view .LVU979
2906 01d6 2023 movs r3, #32
2907 01d8 84F84130 strb r3, [r4, #65]
1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2908 .loc 1 1543 5 is_stmt 1 view .LVU980
1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2909 .loc 1 1543 17 is_stmt 0 view .LVU981
2910 01dc 0023 movs r3, #0
2911 01de 84F84230 strb r3, [r4, #66]
1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2912 .loc 1 1546 5 is_stmt 1 view .LVU982
1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 199
2913 .loc 1 1546 5 view .LVU983
2914 01e2 84F84030 strb r3, [r4, #64]
1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2915 .loc 1 1546 5 view .LVU984
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2916 .loc 1 1548 5 view .LVU985
1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2917 .loc 1 1548 12 is_stmt 0 view .LVU986
2918 01e6 00E0 b .L189
2919 .LVL199:
2920 .L204:
1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
2921 .loc 1 1552 12 view .LVU987
2922 01e8 0220 movs r0, #2
2923 .LVL200:
2924 .L189:
1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2925 .loc 1 1554 1 view .LVU988
2926 01ea 02B0 add sp, sp, #8
2927 .cfi_remember_state
2928 .cfi_def_cfa_offset 24
2929 @ sp needed
2930 01ec BDE8F081 pop {r4, r5, r6, r7, r8, pc}
2931 .LVL201:
2932 .L205:
2933 .cfi_restore_state
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2934 .loc 1 1393 5 discriminator 1 view .LVU989
2935 01f0 0220 movs r0, #2
2936 .LVL202:
1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2937 .loc 1 1393 5 discriminator 1 view .LVU990
2938 01f2 FAE7 b .L189
2939 .cfi_endproc
2940 .LFE129:
2942 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits
2943 .align 1
2944 .global HAL_I2C_Slave_Receive
2945 .syntax unified
2946 .thumb
2947 .thumb_func
2949 HAL_I2C_Slave_Receive:
2950 .LVL203:
2951 .LFB130:
1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2952 .loc 1 1567 1 is_stmt 1 view -0
2953 .cfi_startproc
2954 @ args = 0, pretend = 0, frame = 0
2955 @ frame_needed = 0, uses_anonymous_args = 0
1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
2956 .loc 1 1567 1 is_stmt 0 view .LVU992
2957 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
2958 .cfi_def_cfa_offset 24
2959 .cfi_offset 4, -24
2960 .cfi_offset 5, -20
2961 .cfi_offset 6, -16
2962 .cfi_offset 7, -12
ARM GAS /tmp/ccJ8PJrU.s page 200
2963 .cfi_offset 8, -8
2964 .cfi_offset 14, -4
2965 0004 82B0 sub sp, sp, #8
2966 .cfi_def_cfa_offset 32
2967 0006 1D46 mov r5, r3
1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2968 .loc 1 1568 3 is_stmt 1 view .LVU993
1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2969 .loc 1 1570 3 view .LVU994
1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2970 .loc 1 1570 11 is_stmt 0 view .LVU995
2971 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
2972 .LVL204:
1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2973 .loc 1 1570 11 view .LVU996
2974 000c DBB2 uxtb r3, r3
1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2975 .loc 1 1570 6 view .LVU997
2976 000e 202B cmp r3, #32
2977 0010 40F0AF80 bne .L226
2978 0014 0446 mov r4, r0
2979 0016 0E46 mov r6, r1
2980 0018 9046 mov r8, r2
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2981 .loc 1 1572 5 is_stmt 1 view .LVU998
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2982 .loc 1 1572 8 is_stmt 0 view .LVU999
2983 001a 61B3 cbz r1, .L217
1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
2984 .loc 1 1572 25 discriminator 1 view .LVU1000
2985 001c 5AB3 cbz r2, .L217
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2986 .loc 1 1578 5 is_stmt 1 view .LVU1001
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2987 .loc 1 1578 5 view .LVU1002
2988 001e 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
2989 0022 012B cmp r3, #1
2990 0024 00F0A980 beq .L227
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2991 .loc 1 1578 5 discriminator 2 view .LVU1003
2992 0028 0123 movs r3, #1
2993 002a 80F84030 strb r3, [r0, #64]
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2994 .loc 1 1578 5 discriminator 2 view .LVU1004
1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2995 .loc 1 1581 5 view .LVU1005
1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2996 .loc 1 1581 17 is_stmt 0 view .LVU1006
2997 002e FFF7FEFF bl HAL_GetTick
2998 .LVL205:
1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
2999 .loc 1 1581 17 view .LVU1007
3000 0032 0746 mov r7, r0
3001 .LVL206:
1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3002 .loc 1 1583 5 is_stmt 1 view .LVU1008
1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
ARM GAS /tmp/ccJ8PJrU.s page 201
3003 .loc 1 1583 21 is_stmt 0 view .LVU1009
3004 0034 2223 movs r3, #34
3005 0036 84F84130 strb r3, [r4, #65]
1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3006 .loc 1 1584 5 is_stmt 1 view .LVU1010
1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3007 .loc 1 1584 21 is_stmt 0 view .LVU1011
3008 003a 2023 movs r3, #32
3009 003c 84F84230 strb r3, [r4, #66]
1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3010 .loc 1 1585 5 is_stmt 1 view .LVU1012
1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3011 .loc 1 1585 21 is_stmt 0 view .LVU1013
3012 0040 0022 movs r2, #0
3013 0042 6264 str r2, [r4, #68]
1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3014 .loc 1 1588 5 is_stmt 1 view .LVU1014
1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3015 .loc 1 1588 21 is_stmt 0 view .LVU1015
3016 0044 6662 str r6, [r4, #36]
1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3017 .loc 1 1589 5 is_stmt 1 view .LVU1016
1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3018 .loc 1 1589 21 is_stmt 0 view .LVU1017
3019 0046 A4F82A80 strh r8, [r4, #42] @ movhi
1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
3020 .loc 1 1590 5 is_stmt 1 view .LVU1018
1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
3021 .loc 1 1590 26 is_stmt 0 view .LVU1019
3022 004a 638D ldrh r3, [r4, #42]
1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
3023 .loc 1 1590 20 view .LVU1020
3024 004c 2385 strh r3, [r4, #40] @ movhi
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3025 .loc 1 1591 5 is_stmt 1 view .LVU1021
1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3026 .loc 1 1591 21 is_stmt 0 view .LVU1022
3027 004e 6263 str r2, [r4, #52]
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3028 .loc 1 1594 5 is_stmt 1 view .LVU1023
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3029 .loc 1 1594 9 is_stmt 0 view .LVU1024
3030 0050 2168 ldr r1, [r4]
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3031 .loc 1 1594 19 view .LVU1025
3032 0052 4B68 ldr r3, [r1, #4]
1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3033 .loc 1 1594 25 view .LVU1026
3034 0054 23F40043 bic r3, r3, #32768
3035 0058 4B60 str r3, [r1, #4]
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3036 .loc 1 1597 5 is_stmt 1 view .LVU1027
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3037 .loc 1 1597 9 is_stmt 0 view .LVU1028
3038 005a 0090 str r0, [sp]
3039 005c 2B46 mov r3, r5
3040 005e 0821 movs r1, #8
ARM GAS /tmp/ccJ8PJrU.s page 202
3041 0060 2046 mov r0, r4
3042 .LVL207:
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3043 .loc 1 1597 9 view .LVU1029
3044 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
3045 .LVL208:
1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3046 .loc 1 1597 8 discriminator 1 view .LVU1030
3047 0066 58B1 cbz r0, .L219
1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3048 .loc 1 1600 7 is_stmt 1 view .LVU1031
1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3049 .loc 1 1600 11 is_stmt 0 view .LVU1032
3050 0068 2268 ldr r2, [r4]
1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3051 .loc 1 1600 21 view .LVU1033
3052 006a 5368 ldr r3, [r2, #4]
1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3053 .loc 1 1600 27 view .LVU1034
3054 006c 43F40043 orr r3, r3, #32768
3055 0070 5360 str r3, [r2, #4]
1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3056 .loc 1 1601 7 is_stmt 1 view .LVU1035
1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3057 .loc 1 1601 14 is_stmt 0 view .LVU1036
3058 0072 0120 movs r0, #1
3059 0074 7EE0 b .L216
3060 .LVL209:
3061 .L217:
1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3062 .loc 1 1574 7 is_stmt 1 view .LVU1037
1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3063 .loc 1 1574 23 is_stmt 0 view .LVU1038
3064 0076 4FF40073 mov r3, #512
3065 007a 6364 str r3, [r4, #68]
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3066 .loc 1 1575 7 is_stmt 1 view .LVU1039
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3067 .loc 1 1575 15 is_stmt 0 view .LVU1040
3068 007c 0120 movs r0, #1
3069 .LVL210:
1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3070 .loc 1 1575 15 view .LVU1041
3071 007e 79E0 b .L216
3072 .LVL211:
3073 .L219:
1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3074 .loc 1 1605 5 is_stmt 1 view .LVU1042
3075 0080 2368 ldr r3, [r4]
3076 0082 0822 movs r2, #8
3077 0084 DA61 str r2, [r3, #28]
1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3078 .loc 1 1608 5 view .LVU1043
1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3079 .loc 1 1608 9 is_stmt 0 view .LVU1044
3080 0086 0097 str r7, [sp]
3081 0088 2B46 mov r3, r5
ARM GAS /tmp/ccJ8PJrU.s page 203
3082 008a 0122 movs r2, #1
3083 008c 4FF48031 mov r1, #65536
3084 0090 2046 mov r0, r4
3085 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
3086 .LVL212:
1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3087 .loc 1 1608 8 discriminator 1 view .LVU1045
3088 0096 D0B1 cbz r0, .L220
1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3089 .loc 1 1611 7 is_stmt 1 view .LVU1046
1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3090 .loc 1 1611 11 is_stmt 0 view .LVU1047
3091 0098 2268 ldr r2, [r4]
1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3092 .loc 1 1611 21 view .LVU1048
3093 009a 5368 ldr r3, [r2, #4]
1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3094 .loc 1 1611 27 view .LVU1049
3095 009c 43F40043 orr r3, r3, #32768
3096 00a0 5360 str r3, [r2, #4]
1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3097 .loc 1 1612 7 is_stmt 1 view .LVU1050
1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3098 .loc 1 1612 14 is_stmt 0 view .LVU1051
3099 00a2 0120 movs r0, #1
3100 00a4 66E0 b .L216
3101 .L221:
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3102 .loc 1 1640 7 is_stmt 1 view .LVU1052
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3103 .loc 1 1640 38 is_stmt 0 view .LVU1053
3104 00a6 2368 ldr r3, [r4]
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3105 .loc 1 1640 48 view .LVU1054
3106 00a8 5A6A ldr r2, [r3, #36]
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3107 .loc 1 1640 12 view .LVU1055
3108 00aa 636A ldr r3, [r4, #36]
1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3109 .loc 1 1640 23 view .LVU1056
3110 00ac 1A70 strb r2, [r3]
1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3111 .loc 1 1643 7 is_stmt 1 view .LVU1057
1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3112 .loc 1 1643 11 is_stmt 0 view .LVU1058
3113 00ae 636A ldr r3, [r4, #36]
1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3114 .loc 1 1643 21 view .LVU1059
3115 00b0 0133 adds r3, r3, #1
3116 00b2 6362 str r3, [r4, #36]
1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3117 .loc 1 1645 7 is_stmt 1 view .LVU1060
1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3118 .loc 1 1645 11 is_stmt 0 view .LVU1061
3119 00b4 B4F82AC0 ldrh ip, [r4, #42]
3120 00b8 1FFA8CFC uxth ip, ip
1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
ARM GAS /tmp/ccJ8PJrU.s page 204
3121 .loc 1 1645 22 view .LVU1062
3122 00bc 0CF1FF3C add ip, ip, #-1
3123 00c0 1FFA8CFC uxth ip, ip
3124 00c4 A4F82AC0 strh ip, [r4, #42] @ movhi
1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3125 .loc 1 1646 7 is_stmt 1 view .LVU1063
1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3126 .loc 1 1646 11 is_stmt 0 view .LVU1064
3127 00c8 238D ldrh r3, [r4, #40]
1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3128 .loc 1 1646 21 view .LVU1065
3129 00ca 013B subs r3, r3, #1
3130 00cc 2385 strh r3, [r4, #40] @ movhi
3131 .L220:
1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3132 .loc 1 1615 28 is_stmt 1 view .LVU1066
1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3133 .loc 1 1615 16 is_stmt 0 view .LVU1067
3134 00ce 638D ldrh r3, [r4, #42]
3135 00d0 9BB2 uxth r3, r3
1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3136 .loc 1 1615 28 view .LVU1068
3137 00d2 03B3 cbz r3, .L229
1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3138 .loc 1 1618 7 is_stmt 1 view .LVU1069
1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3139 .loc 1 1618 11 is_stmt 0 view .LVU1070
3140 00d4 3A46 mov r2, r7
3141 00d6 2946 mov r1, r5
3142 00d8 2046 mov r0, r4
3143 00da FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout
3144 .LVL213:
1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3145 .loc 1 1618 10 discriminator 1 view .LVU1071
3146 00de 0028 cmp r0, #0
3147 00e0 E1D0 beq .L221
1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3148 .loc 1 1621 9 is_stmt 1 view .LVU1072
1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3149 .loc 1 1621 13 is_stmt 0 view .LVU1073
3150 00e2 2268 ldr r2, [r4]
1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3151 .loc 1 1621 23 view .LVU1074
3152 00e4 5368 ldr r3, [r2, #4]
1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3153 .loc 1 1621 29 view .LVU1075
3154 00e6 43F40043 orr r3, r3, #32768
3155 00ea 5360 str r3, [r2, #4]
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3156 .loc 1 1624 9 is_stmt 1 view .LVU1076
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3157 .loc 1 1624 13 is_stmt 0 view .LVU1077
3158 00ec 2368 ldr r3, [r4]
3159 00ee 9A69 ldr r2, [r3, #24]
1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3160 .loc 1 1624 12 view .LVU1078
3161 00f0 12F0040F tst r2, #4
ARM GAS /tmp/ccJ8PJrU.s page 205
3162 00f4 0DD0 beq .L222
1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3163 .loc 1 1627 11 is_stmt 1 view .LVU1079
1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3164 .loc 1 1627 52 is_stmt 0 view .LVU1080
3165 00f6 5A6A ldr r2, [r3, #36]
1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3166 .loc 1 1627 16 view .LVU1081
3167 00f8 636A ldr r3, [r4, #36]
1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3168 .loc 1 1627 27 view .LVU1082
3169 00fa 1A70 strb r2, [r3]
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3170 .loc 1 1630 11 is_stmt 1 view .LVU1083
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3171 .loc 1 1630 15 is_stmt 0 view .LVU1084
3172 00fc 636A ldr r3, [r4, #36]
1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3173 .loc 1 1630 25 view .LVU1085
3174 00fe 0133 adds r3, r3, #1
3175 0100 6362 str r3, [r4, #36]
1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3176 .loc 1 1632 11 is_stmt 1 view .LVU1086
1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3177 .loc 1 1632 15 is_stmt 0 view .LVU1087
3178 0102 638D ldrh r3, [r4, #42]
3179 0104 9BB2 uxth r3, r3
1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3180 .loc 1 1632 26 view .LVU1088
3181 0106 013B subs r3, r3, #1
3182 0108 9BB2 uxth r3, r3
3183 010a 6385 strh r3, [r4, #42] @ movhi
1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3184 .loc 1 1633 11 is_stmt 1 view .LVU1089
1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3185 .loc 1 1633 15 is_stmt 0 view .LVU1090
3186 010c 238D ldrh r3, [r4, #40]
1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3187 .loc 1 1633 25 view .LVU1091
3188 010e 013B subs r3, r3, #1
3189 0110 2385 strh r3, [r4, #40] @ movhi
3190 .L222:
1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3191 .loc 1 1636 9 is_stmt 1 view .LVU1092
1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3192 .loc 1 1636 16 is_stmt 0 view .LVU1093
3193 0112 0120 movs r0, #1
3194 0114 2EE0 b .L216
3195 .L229:
1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3196 .loc 1 1650 5 is_stmt 1 view .LVU1094
1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3197 .loc 1 1650 9 is_stmt 0 view .LVU1095
3198 0116 3A46 mov r2, r7
3199 0118 2946 mov r1, r5
3200 011a 2046 mov r0, r4
3201 011c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
ARM GAS /tmp/ccJ8PJrU.s page 206
3202 .LVL214:
1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3203 .loc 1 1650 8 discriminator 1 view .LVU1096
3204 0120 30B1 cbz r0, .L224
1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3205 .loc 1 1653 7 is_stmt 1 view .LVU1097
1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3206 .loc 1 1653 11 is_stmt 0 view .LVU1098
3207 0122 2268 ldr r2, [r4]
1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3208 .loc 1 1653 21 view .LVU1099
3209 0124 5368 ldr r3, [r2, #4]
1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3210 .loc 1 1653 27 view .LVU1100
3211 0126 43F40043 orr r3, r3, #32768
3212 012a 5360 str r3, [r2, #4]
1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3213 .loc 1 1654 7 is_stmt 1 view .LVU1101
1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3214 .loc 1 1654 14 is_stmt 0 view .LVU1102
3215 012c 0120 movs r0, #1
3216 012e 21E0 b .L216
3217 .L224:
1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3218 .loc 1 1658 5 is_stmt 1 view .LVU1103
3219 0130 2368 ldr r3, [r4]
3220 0132 2022 movs r2, #32
3221 0134 DA61 str r2, [r3, #28]
1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3222 .loc 1 1661 5 view .LVU1104
1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3223 .loc 1 1661 9 is_stmt 0 view .LVU1105
3224 0136 0097 str r7, [sp]
3225 0138 2B46 mov r3, r5
3226 013a 0122 movs r2, #1
3227 013c 4FF40041 mov r1, #32768
3228 0140 2046 mov r0, r4
3229 0142 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
3230 .LVL215:
1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3231 .loc 1 1661 8 discriminator 1 view .LVU1106
3232 0146 30B1 cbz r0, .L225
1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3233 .loc 1 1664 7 is_stmt 1 view .LVU1107
1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3234 .loc 1 1664 11 is_stmt 0 view .LVU1108
3235 0148 2268 ldr r2, [r4]
1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3236 .loc 1 1664 21 view .LVU1109
3237 014a 5368 ldr r3, [r2, #4]
1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
3238 .loc 1 1664 27 view .LVU1110
3239 014c 43F40043 orr r3, r3, #32768
3240 0150 5360 str r3, [r2, #4]
1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3241 .loc 1 1665 7 is_stmt 1 view .LVU1111
1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 207
3242 .loc 1 1665 14 is_stmt 0 view .LVU1112
3243 0152 0120 movs r0, #1
3244 0154 0EE0 b .L216
3245 .L225:
1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3246 .loc 1 1669 5 is_stmt 1 view .LVU1113
1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3247 .loc 1 1669 9 is_stmt 0 view .LVU1114
3248 0156 2268 ldr r2, [r4]
1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3249 .loc 1 1669 19 view .LVU1115
3250 0158 5368 ldr r3, [r2, #4]
1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3251 .loc 1 1669 25 view .LVU1116
3252 015a 43F40043 orr r3, r3, #32768
3253 015e 5360 str r3, [r2, #4]
1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3254 .loc 1 1671 5 is_stmt 1 view .LVU1117
1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
3255 .loc 1 1671 17 is_stmt 0 view .LVU1118
3256 0160 2023 movs r3, #32
3257 0162 84F84130 strb r3, [r4, #65]
1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3258 .loc 1 1672 5 is_stmt 1 view .LVU1119
1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3259 .loc 1 1672 17 is_stmt 0 view .LVU1120
3260 0166 0023 movs r3, #0
3261 0168 84F84230 strb r3, [r4, #66]
1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3262 .loc 1 1675 5 is_stmt 1 view .LVU1121
1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3263 .loc 1 1675 5 view .LVU1122
3264 016c 84F84030 strb r3, [r4, #64]
1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3265 .loc 1 1675 5 view .LVU1123
1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3266 .loc 1 1677 5 view .LVU1124
1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3267 .loc 1 1677 12 is_stmt 0 view .LVU1125
3268 0170 00E0 b .L216
3269 .LVL216:
3270 .L226:
1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3271 .loc 1 1681 12 view .LVU1126
3272 0172 0220 movs r0, #2
3273 .LVL217:
3274 .L216:
1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3275 .loc 1 1683 1 view .LVU1127
3276 0174 02B0 add sp, sp, #8
3277 .cfi_remember_state
3278 .cfi_def_cfa_offset 24
3279 @ sp needed
3280 0176 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
3281 .LVL218:
3282 .L227:
3283 .cfi_restore_state
ARM GAS /tmp/ccJ8PJrU.s page 208
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3284 .loc 1 1578 5 discriminator 1 view .LVU1128
3285 017a 0220 movs r0, #2
3286 .LVL219:
1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3287 .loc 1 1578 5 discriminator 1 view .LVU1129
3288 017c FAE7 b .L216
3289 .cfi_endproc
3290 .LFE130:
3292 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits
3293 .align 1
3294 .global HAL_I2C_Master_Transmit_IT
3295 .syntax unified
3296 .thumb
3297 .thumb_func
3299 HAL_I2C_Master_Transmit_IT:
3300 .LVL220:
3301 .LFB131:
1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3302 .loc 1 1697 1 is_stmt 1 view -0
3303 .cfi_startproc
3304 @ args = 0, pretend = 0, frame = 0
3305 @ frame_needed = 0, uses_anonymous_args = 0
1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3306 .loc 1 1697 1 is_stmt 0 view .LVU1131
3307 0000 30B5 push {r4, r5, lr}
3308 .cfi_def_cfa_offset 12
3309 .cfi_offset 4, -12
3310 .cfi_offset 5, -8
3311 .cfi_offset 14, -4
3312 0002 83B0 sub sp, sp, #12
3313 .cfi_def_cfa_offset 24
3314 0004 0446 mov r4, r0
1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3315 .loc 1 1698 3 is_stmt 1 view .LVU1132
1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3316 .loc 1 1700 3 view .LVU1133
1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3317 .loc 1 1700 11 is_stmt 0 view .LVU1134
3318 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3319 .LVL221:
1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3320 .loc 1 1700 11 view .LVU1135
3321 000a C0B2 uxtb r0, r0
1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3322 .loc 1 1700 6 view .LVU1136
3323 000c 2028 cmp r0, #32
3324 000e 4ED1 bne .L236
1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3325 .loc 1 1702 5 is_stmt 1 view .LVU1137
1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3326 .loc 1 1702 9 is_stmt 0 view .LVU1138
3327 0010 2068 ldr r0, [r4]
3328 0012 8569 ldr r5, [r0, #24]
1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3329 .loc 1 1702 8 view .LVU1139
3330 0014 15F4004F tst r5, #32768
ARM GAS /tmp/ccJ8PJrU.s page 209
3331 0018 4BD1 bne .L237
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3332 .loc 1 1708 5 is_stmt 1 view .LVU1140
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3333 .loc 1 1708 5 view .LVU1141
3334 001a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2
3335 001e 012D cmp r5, #1
3336 0020 49D0 beq .L238
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3337 .loc 1 1708 5 discriminator 2 view .LVU1142
3338 0022 0125 movs r5, #1
3339 0024 84F84050 strb r5, [r4, #64]
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3340 .loc 1 1708 5 discriminator 2 view .LVU1143
1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3341 .loc 1 1710 5 view .LVU1144
1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3342 .loc 1 1710 23 is_stmt 0 view .LVU1145
3343 0028 2125 movs r5, #33
3344 002a 84F84150 strb r5, [r4, #65]
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3345 .loc 1 1711 5 is_stmt 1 view .LVU1146
1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3346 .loc 1 1711 23 is_stmt 0 view .LVU1147
3347 002e 1025 movs r5, #16
3348 0030 84F84250 strb r5, [r4, #66]
1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3349 .loc 1 1712 5 is_stmt 1 view .LVU1148
1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3350 .loc 1 1712 23 is_stmt 0 view .LVU1149
3351 0034 0025 movs r5, #0
3352 0036 6564 str r5, [r4, #68]
1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3353 .loc 1 1715 5 is_stmt 1 view .LVU1150
1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3354 .loc 1 1715 23 is_stmt 0 view .LVU1151
3355 0038 6262 str r2, [r4, #36]
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3356 .loc 1 1716 5 is_stmt 1 view .LVU1152
1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3357 .loc 1 1716 23 is_stmt 0 view .LVU1153
3358 003a 6385 strh r3, [r4, #42] @ movhi
1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3359 .loc 1 1717 5 is_stmt 1 view .LVU1154
1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3360 .loc 1 1717 23 is_stmt 0 view .LVU1155
3361 003c 1F4B ldr r3, .L240
3362 .LVL222:
1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3363 .loc 1 1717 23 view .LVU1156
3364 003e E362 str r3, [r4, #44]
3365 .LVL223:
1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3366 .loc 1 1718 5 is_stmt 1 view .LVU1157
1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3367 .loc 1 1718 23 is_stmt 0 view .LVU1158
3368 0040 1F4B ldr r3, .L240+4
ARM GAS /tmp/ccJ8PJrU.s page 210
3369 0042 6363 str r3, [r4, #52]
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3370 .loc 1 1720 5 is_stmt 1 view .LVU1159
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3371 .loc 1 1720 13 is_stmt 0 view .LVU1160
3372 0044 638D ldrh r3, [r4, #42]
3373 0046 9BB2 uxth r3, r3
1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3374 .loc 1 1720 8 view .LVU1161
3375 0048 FF2B cmp r3, #255
3376 004a 24D9 bls .L232
1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3377 .loc 1 1722 7 is_stmt 1 view .LVU1162
1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3378 .loc 1 1722 22 is_stmt 0 view .LVU1163
3379 004c FF23 movs r3, #255
3380 004e 2385 strh r3, [r4, #40] @ movhi
1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3381 .loc 1 1723 7 is_stmt 1 view .LVU1164
3382 .LVL224:
1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3383 .loc 1 1723 16 is_stmt 0 view .LVU1165
3384 0050 4FF08073 mov r3, #16777216
3385 .LVL225:
3386 .L233:
1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3387 .loc 1 1733 5 is_stmt 1 view .LVU1166
1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3388 .loc 1 1733 13 is_stmt 0 view .LVU1167
3389 0054 258D ldrh r5, [r4, #40]
1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3390 .loc 1 1733 8 view .LVU1168
3391 0056 1DB3 cbz r5, .L234
1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3392 .loc 1 1737 7 is_stmt 1 view .LVU1169
1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3393 .loc 1 1737 30 is_stmt 0 view .LVU1170
3394 0058 1278 ldrb r2, [r2] @ zero_extendqisi2
3395 .LVL226:
1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3396 .loc 1 1737 28 view .LVU1171
3397 005a 8262 str r2, [r0, #40]
3398 .LVL227:
1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3399 .loc 1 1740 7 is_stmt 1 view .LVU1172
1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3400 .loc 1 1740 11 is_stmt 0 view .LVU1173
3401 005c 626A ldr r2, [r4, #36]
1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3402 .loc 1 1740 21 view .LVU1174
3403 005e 0132 adds r2, r2, #1
3404 0060 6262 str r2, [r4, #36]
1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3405 .loc 1 1742 7 is_stmt 1 view .LVU1175
1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3406 .loc 1 1742 11 is_stmt 0 view .LVU1176
3407 0062 628D ldrh r2, [r4, #42]
ARM GAS /tmp/ccJ8PJrU.s page 211
3408 0064 92B2 uxth r2, r2
1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3409 .loc 1 1742 22 view .LVU1177
3410 0066 013A subs r2, r2, #1
3411 0068 92B2 uxth r2, r2
3412 006a 6285 strh r2, [r4, #42] @ movhi
1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3413 .loc 1 1743 7 is_stmt 1 view .LVU1178
1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3414 .loc 1 1743 11 is_stmt 0 view .LVU1179
3415 006c 228D ldrh r2, [r4, #40]
1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3416 .loc 1 1743 21 view .LVU1180
3417 006e 013A subs r2, r2, #1
3418 0070 92B2 uxth r2, r2
3419 0072 2285 strh r2, [r4, #40] @ movhi
1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3420 .loc 1 1745 7 is_stmt 1 view .LVU1181
3421 0074 0132 adds r2, r2, #1
3422 0076 1348 ldr r0, .L240+8
3423 0078 0090 str r0, [sp]
3424 007a D2B2 uxtb r2, r2
3425 007c 2046 mov r0, r4
3426 007e FFF7FEFF bl I2C_TransferConfig
3427 .LVL228:
3428 .L235:
1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3429 .loc 1 1755 5 view .LVU1182
1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3430 .loc 1 1755 5 view .LVU1183
3431 0082 0025 movs r5, #0
3432 0084 84F84050 strb r5, [r4, #64]
1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3433 .loc 1 1755 5 view .LVU1184
1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3434 .loc 1 1765 5 view .LVU1185
3435 0088 0121 movs r1, #1
3436 008a 2046 mov r0, r4
3437 008c FFF7FEFF bl I2C_Enable_IRQ
3438 .LVL229:
1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3439 .loc 1 1767 5 view .LVU1186
1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3440 .loc 1 1767 12 is_stmt 0 view .LVU1187
3441 0090 2846 mov r0, r5
3442 .LVL230:
3443 .L231:
1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3444 .loc 1 1773 1 view .LVU1188
3445 0092 03B0 add sp, sp, #12
3446 .cfi_remember_state
3447 .cfi_def_cfa_offset 12
3448 @ sp needed
3449 0094 30BD pop {r4, r5, pc}
3450 .LVL231:
3451 .L232:
3452 .cfi_restore_state
ARM GAS /tmp/ccJ8PJrU.s page 212
1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3453 .loc 1 1727 7 is_stmt 1 view .LVU1189
1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3454 .loc 1 1727 28 is_stmt 0 view .LVU1190
3455 0096 638D ldrh r3, [r4, #42]
1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3456 .loc 1 1727 22 view .LVU1191
3457 0098 2385 strh r3, [r4, #40] @ movhi
1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3458 .loc 1 1728 7 is_stmt 1 view .LVU1192
3459 .LVL232:
1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3460 .loc 1 1728 16 is_stmt 0 view .LVU1193
3461 009a 4FF00073 mov r3, #33554432
3462 009e D9E7 b .L233
3463 .LVL233:
3464 .L234:
1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3465 .loc 1 1750 7 is_stmt 1 view .LVU1194
3466 00a0 084A ldr r2, .L240+8
3467 .LVL234:
1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3468 .loc 1 1750 7 is_stmt 0 view .LVU1195
3469 00a2 0092 str r2, [sp]
3470 .LVL235:
1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3471 .loc 1 1750 7 view .LVU1196
3472 00a4 EAB2 uxtb r2, r5
3473 00a6 2046 mov r0, r4
3474 00a8 FFF7FEFF bl I2C_TransferConfig
3475 .LVL236:
1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
3476 .loc 1 1750 7 view .LVU1197
3477 00ac E9E7 b .L235
3478 .LVL237:
3479 .L236:
1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3480 .loc 1 1771 12 view .LVU1198
3481 00ae 0220 movs r0, #2
3482 00b0 EFE7 b .L231
3483 .L237:
1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3484 .loc 1 1704 14 view .LVU1199
3485 00b2 0220 movs r0, #2
3486 00b4 EDE7 b .L231
3487 .L238:
1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3488 .loc 1 1708 5 discriminator 1 view .LVU1200
3489 00b6 0220 movs r0, #2
3490 00b8 EBE7 b .L231
3491 .L241:
3492 00ba 00BF .align 2
3493 .L240:
3494 00bc 0000FFFF .word -65536
3495 00c0 00000000 .word I2C_Master_ISR_IT
3496 00c4 00200080 .word -2147475456
3497 .cfi_endproc
ARM GAS /tmp/ccJ8PJrU.s page 213
3498 .LFE131:
3500 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits
3501 .align 1
3502 .global HAL_I2C_Master_Receive_IT
3503 .syntax unified
3504 .thumb
3505 .thumb_func
3507 HAL_I2C_Master_Receive_IT:
3508 .LVL238:
3509 .LFB132:
1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3510 .loc 1 1787 1 is_stmt 1 view -0
3511 .cfi_startproc
3512 @ args = 0, pretend = 0, frame = 0
3513 @ frame_needed = 0, uses_anonymous_args = 0
1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3514 .loc 1 1787 1 is_stmt 0 view .LVU1202
3515 0000 30B5 push {r4, r5, lr}
3516 .cfi_def_cfa_offset 12
3517 .cfi_offset 4, -12
3518 .cfi_offset 5, -8
3519 .cfi_offset 14, -4
3520 0002 83B0 sub sp, sp, #12
3521 .cfi_def_cfa_offset 24
3522 0004 0446 mov r4, r0
1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3523 .loc 1 1788 3 is_stmt 1 view .LVU1203
1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3524 .loc 1 1790 3 view .LVU1204
1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3525 .loc 1 1790 11 is_stmt 0 view .LVU1205
3526 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3527 .LVL239:
1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3528 .loc 1 1790 11 view .LVU1206
3529 000a C0B2 uxtb r0, r0
1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3530 .loc 1 1790 6 view .LVU1207
3531 000c 2028 cmp r0, #32
3532 000e 37D1 bne .L246
1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3533 .loc 1 1792 5 is_stmt 1 view .LVU1208
1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3534 .loc 1 1792 9 is_stmt 0 view .LVU1209
3535 0010 2068 ldr r0, [r4]
3536 0012 8069 ldr r0, [r0, #24]
1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3537 .loc 1 1792 8 view .LVU1210
3538 0014 10F4004F tst r0, #32768
3539 0018 34D1 bne .L247
1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3540 .loc 1 1798 5 is_stmt 1 view .LVU1211
1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3541 .loc 1 1798 5 view .LVU1212
3542 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
3543 001e 0128 cmp r0, #1
3544 0020 32D0 beq .L248
ARM GAS /tmp/ccJ8PJrU.s page 214
1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3545 .loc 1 1798 5 discriminator 2 view .LVU1213
3546 0022 0120 movs r0, #1
3547 0024 84F84000 strb r0, [r4, #64]
1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3548 .loc 1 1798 5 discriminator 2 view .LVU1214
1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3549 .loc 1 1800 5 view .LVU1215
1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3550 .loc 1 1800 23 is_stmt 0 view .LVU1216
3551 0028 2220 movs r0, #34
3552 002a 84F84100 strb r0, [r4, #65]
1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3553 .loc 1 1801 5 is_stmt 1 view .LVU1217
1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3554 .loc 1 1801 23 is_stmt 0 view .LVU1218
3555 002e 1020 movs r0, #16
3556 0030 84F84200 strb r0, [r4, #66]
1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3557 .loc 1 1802 5 is_stmt 1 view .LVU1219
1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3558 .loc 1 1802 23 is_stmt 0 view .LVU1220
3559 0034 0020 movs r0, #0
3560 0036 6064 str r0, [r4, #68]
1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3561 .loc 1 1805 5 is_stmt 1 view .LVU1221
1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3562 .loc 1 1805 23 is_stmt 0 view .LVU1222
3563 0038 6262 str r2, [r4, #36]
1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3564 .loc 1 1806 5 is_stmt 1 view .LVU1223
1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3565 .loc 1 1806 23 is_stmt 0 view .LVU1224
3566 003a 6385 strh r3, [r4, #42] @ movhi
1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3567 .loc 1 1807 5 is_stmt 1 view .LVU1225
1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3568 .loc 1 1807 23 is_stmt 0 view .LVU1226
3569 003c 134B ldr r3, .L250
3570 .LVL240:
1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
3571 .loc 1 1807 23 view .LVU1227
3572 003e E362 str r3, [r4, #44]
3573 .LVL241:
1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3574 .loc 1 1808 5 is_stmt 1 view .LVU1228
1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3575 .loc 1 1808 23 is_stmt 0 view .LVU1229
3576 0040 134B ldr r3, .L250+4
3577 0042 6363 str r3, [r4, #52]
1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3578 .loc 1 1810 5 is_stmt 1 view .LVU1230
1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3579 .loc 1 1810 13 is_stmt 0 view .LVU1231
3580 0044 638D ldrh r3, [r4, #42]
3581 0046 9BB2 uxth r3, r3
1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 215
3582 .loc 1 1810 8 view .LVU1232
3583 0048 FF2B cmp r3, #255
3584 004a 14D9 bls .L244
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3585 .loc 1 1812 7 is_stmt 1 view .LVU1233
1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
3586 .loc 1 1812 22 is_stmt 0 view .LVU1234
3587 004c 0123 movs r3, #1
3588 004e 2385 strh r3, [r4, #40] @ movhi
1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3589 .loc 1 1813 7 is_stmt 1 view .LVU1235
3590 .LVL242:
1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3591 .loc 1 1813 16 is_stmt 0 view .LVU1236
3592 0050 4FF08073 mov r3, #16777216
3593 .LVL243:
3594 .L245:
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3595 .loc 1 1823 5 is_stmt 1 view .LVU1237
3596 0054 0F4A ldr r2, .L250+8
3597 .LVL244:
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3598 .loc 1 1823 5 is_stmt 0 view .LVU1238
3599 0056 0092 str r2, [sp]
3600 .LVL245:
1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3601 .loc 1 1823 5 view .LVU1239
3602 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
3603 005c 2046 mov r0, r4
3604 005e FFF7FEFF bl I2C_TransferConfig
3605 .LVL246:
1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3606 .loc 1 1826 5 is_stmt 1 view .LVU1240
1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3607 .loc 1 1826 5 view .LVU1241
3608 0062 0025 movs r5, #0
3609 0064 84F84050 strb r5, [r4, #64]
1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3610 .loc 1 1826 5 view .LVU1242
1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3611 .loc 1 1836 5 view .LVU1243
3612 0068 0221 movs r1, #2
3613 006a 2046 mov r0, r4
3614 006c FFF7FEFF bl I2C_Enable_IRQ
3615 .LVL247:
1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3616 .loc 1 1838 5 view .LVU1244
1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3617 .loc 1 1838 12 is_stmt 0 view .LVU1245
3618 0070 2846 mov r0, r5
3619 .LVL248:
3620 .L243:
1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3621 .loc 1 1844 1 view .LVU1246
3622 0072 03B0 add sp, sp, #12
3623 .cfi_remember_state
3624 .cfi_def_cfa_offset 12
ARM GAS /tmp/ccJ8PJrU.s page 216
3625 @ sp needed
3626 0074 30BD pop {r4, r5, pc}
3627 .LVL249:
3628 .L244:
3629 .cfi_restore_state
1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3630 .loc 1 1817 7 is_stmt 1 view .LVU1247
1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3631 .loc 1 1817 28 is_stmt 0 view .LVU1248
3632 0076 638D ldrh r3, [r4, #42]
1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
3633 .loc 1 1817 22 view .LVU1249
3634 0078 2385 strh r3, [r4, #40] @ movhi
1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3635 .loc 1 1818 7 is_stmt 1 view .LVU1250
3636 .LVL250:
1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3637 .loc 1 1818 16 is_stmt 0 view .LVU1251
3638 007a 4FF00073 mov r3, #33554432
3639 007e E9E7 b .L245
3640 .LVL251:
3641 .L246:
1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3642 .loc 1 1842 12 view .LVU1252
3643 0080 0220 movs r0, #2
3644 0082 F6E7 b .L243
3645 .L247:
1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3646 .loc 1 1794 14 view .LVU1253
3647 0084 0220 movs r0, #2
3648 0086 F4E7 b .L243
3649 .L248:
1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3650 .loc 1 1798 5 discriminator 1 view .LVU1254
3651 0088 0220 movs r0, #2
3652 008a F2E7 b .L243
3653 .L251:
3654 .align 2
3655 .L250:
3656 008c 0000FFFF .word -65536
3657 0090 00000000 .word I2C_Master_ISR_IT
3658 0094 00240080 .word -2147474432
3659 .cfi_endproc
3660 .LFE132:
3662 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits
3663 .align 1
3664 .global HAL_I2C_Slave_Transmit_IT
3665 .syntax unified
3666 .thumb
3667 .thumb_func
3669 HAL_I2C_Slave_Transmit_IT:
3670 .LVL252:
3671 .LFB133:
1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3672 .loc 1 1855 1 is_stmt 1 view -0
3673 .cfi_startproc
3674 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccJ8PJrU.s page 217
3675 @ frame_needed = 0, uses_anonymous_args = 0
1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3676 .loc 1 1856 3 view .LVU1256
1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3677 .loc 1 1856 11 is_stmt 0 view .LVU1257
3678 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
3679 0004 DBB2 uxtb r3, r3
1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3680 .loc 1 1856 6 view .LVU1258
3681 0006 202B cmp r3, #32
3682 0008 38D1 bne .L255
1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3683 .loc 1 1859 5 is_stmt 1 view .LVU1259
1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3684 .loc 1 1859 5 view .LVU1260
3685 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
3686 000e 012B cmp r3, #1
3687 0010 36D0 beq .L256
1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3688 .loc 1 1855 1 is_stmt 0 view .LVU1261
3689 0012 10B5 push {r4, lr}
3690 .cfi_def_cfa_offset 8
3691 .cfi_offset 4, -8
3692 .cfi_offset 14, -4
1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3693 .loc 1 1859 5 is_stmt 1 discriminator 2 view .LVU1262
3694 0014 0123 movs r3, #1
3695 0016 80F84030 strb r3, [r0, #64]
1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3696 .loc 1 1859 5 discriminator 2 view .LVU1263
1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3697 .loc 1 1861 5 view .LVU1264
1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3698 .loc 1 1861 23 is_stmt 0 view .LVU1265
3699 001a 2123 movs r3, #33
3700 001c 80F84130 strb r3, [r0, #65]
1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3701 .loc 1 1862 5 is_stmt 1 view .LVU1266
1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3702 .loc 1 1862 23 is_stmt 0 view .LVU1267
3703 0020 2023 movs r3, #32
3704 0022 80F84230 strb r3, [r0, #66]
1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3705 .loc 1 1863 5 is_stmt 1 view .LVU1268
1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3706 .loc 1 1863 23 is_stmt 0 view .LVU1269
3707 0026 0023 movs r3, #0
3708 0028 4364 str r3, [r0, #68]
1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3709 .loc 1 1866 5 is_stmt 1 view .LVU1270
1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3710 .loc 1 1866 9 is_stmt 0 view .LVU1271
3711 002a 0468 ldr r4, [r0]
1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3712 .loc 1 1866 19 view .LVU1272
3713 002c 6368 ldr r3, [r4, #4]
1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 218
3714 .loc 1 1866 25 view .LVU1273
3715 002e 23F40043 bic r3, r3, #32768
3716 0032 6360 str r3, [r4, #4]
1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3717 .loc 1 1869 5 is_stmt 1 view .LVU1274
1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3718 .loc 1 1869 23 is_stmt 0 view .LVU1275
3719 0034 4162 str r1, [r0, #36]
1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3720 .loc 1 1870 5 is_stmt 1 view .LVU1276
1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3721 .loc 1 1870 23 is_stmt 0 view .LVU1277
3722 0036 4285 strh r2, [r0, #42] @ movhi
1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3723 .loc 1 1871 5 is_stmt 1 view .LVU1278
1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3724 .loc 1 1871 29 is_stmt 0 view .LVU1279
3725 0038 438D ldrh r3, [r0, #42]
1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3726 .loc 1 1871 23 view .LVU1280
3727 003a 0385 strh r3, [r0, #40] @ movhi
1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3728 .loc 1 1872 5 is_stmt 1 view .LVU1281
1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3729 .loc 1 1872 23 is_stmt 0 view .LVU1282
3730 003c 114B ldr r3, .L262
3731 003e C362 str r3, [r0, #44]
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3732 .loc 1 1873 5 is_stmt 1 view .LVU1283
1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3733 .loc 1 1873 23 is_stmt 0 view .LVU1284
3734 0040 114B ldr r3, .L262+4
3735 0042 4363 str r3, [r0, #52]
1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3736 .loc 1 1876 5 is_stmt 1 view .LVU1285
1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3737 .loc 1 1876 19 is_stmt 0 view .LVU1286
3738 0044 036A ldr r3, [r0, #32]
1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3739 .loc 1 1876 8 view .LVU1287
3740 0046 B3F5003F cmp r3, #131072
3741 004a 08D0 beq .L261
3742 .LVL253:
3743 .L254:
1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3744 .loc 1 1890 5 is_stmt 1 view .LVU1288
1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3745 .loc 1 1890 5 view .LVU1289
3746 004c 0024 movs r4, #0
3747 004e 80F84040 strb r4, [r0, #64]
1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3748 .loc 1 1890 5 view .LVU1290
1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3749 .loc 1 1900 5 view .LVU1291
3750 0052 48F20101 movw r1, #32769
3751 .LVL254:
1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 219
3752 .loc 1 1900 5 is_stmt 0 view .LVU1292
3753 0056 FFF7FEFF bl I2C_Enable_IRQ
3754 .LVL255:
1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3755 .loc 1 1902 5 is_stmt 1 view .LVU1293
1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3756 .loc 1 1902 12 is_stmt 0 view .LVU1294
3757 005a 2046 mov r0, r4
1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3758 .loc 1 1908 1 view .LVU1295
3759 005c 10BD pop {r4, pc}
3760 .LVL256:
3761 .L261:
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3762 .loc 1 1880 7 is_stmt 1 view .LVU1296
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3763 .loc 1 1880 11 is_stmt 0 view .LVU1297
3764 005e 0368 ldr r3, [r0]
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3765 .loc 1 1880 30 view .LVU1298
3766 0060 0A78 ldrb r2, [r1] @ zero_extendqisi2
3767 .LVL257:
1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3768 .loc 1 1880 28 view .LVU1299
3769 0062 9A62 str r2, [r3, #40]
1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3770 .loc 1 1883 7 is_stmt 1 view .LVU1300
1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3771 .loc 1 1883 11 is_stmt 0 view .LVU1301
3772 0064 436A ldr r3, [r0, #36]
1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3773 .loc 1 1883 21 view .LVU1302
3774 0066 0133 adds r3, r3, #1
3775 0068 4362 str r3, [r0, #36]
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3776 .loc 1 1885 7 is_stmt 1 view .LVU1303
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3777 .loc 1 1885 11 is_stmt 0 view .LVU1304
3778 006a 438D ldrh r3, [r0, #42]
3779 006c 9BB2 uxth r3, r3
1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
3780 .loc 1 1885 22 view .LVU1305
3781 006e 013B subs r3, r3, #1
3782 0070 9BB2 uxth r3, r3
3783 0072 4385 strh r3, [r0, #42] @ movhi
1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3784 .loc 1 1886 7 is_stmt 1 view .LVU1306
1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3785 .loc 1 1886 11 is_stmt 0 view .LVU1307
3786 0074 038D ldrh r3, [r0, #40]
1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3787 .loc 1 1886 21 view .LVU1308
3788 0076 013B subs r3, r3, #1
3789 0078 0385 strh r3, [r0, #40] @ movhi
3790 007a E7E7 b .L254
3791 .LVL258:
3792 .L255:
ARM GAS /tmp/ccJ8PJrU.s page 220
3793 .cfi_def_cfa_offset 0
3794 .cfi_restore 4
3795 .cfi_restore 14
1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3796 .loc 1 1906 12 view .LVU1309
3797 007c 0220 movs r0, #2
3798 .LVL259:
1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3799 .loc 1 1906 12 view .LVU1310
3800 007e 7047 bx lr
3801 .LVL260:
3802 .L256:
1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3803 .loc 1 1859 5 discriminator 1 view .LVU1311
3804 0080 0220 movs r0, #2
3805 .LVL261:
1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3806 .loc 1 1908 1 view .LVU1312
3807 0082 7047 bx lr
3808 .L263:
3809 .align 2
3810 .L262:
3811 0084 0000FFFF .word -65536
3812 0088 00000000 .word I2C_Slave_ISR_IT
3813 .cfi_endproc
3814 .LFE133:
3816 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits
3817 .align 1
3818 .global HAL_I2C_Slave_Receive_IT
3819 .syntax unified
3820 .thumb
3821 .thumb_func
3823 HAL_I2C_Slave_Receive_IT:
3824 .LVL262:
3825 .LFB134:
1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3826 .loc 1 1919 1 is_stmt 1 view -0
3827 .cfi_startproc
3828 @ args = 0, pretend = 0, frame = 0
3829 @ frame_needed = 0, uses_anonymous_args = 0
1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
3830 .loc 1 1919 1 is_stmt 0 view .LVU1314
3831 0000 38B5 push {r3, r4, r5, lr}
3832 .cfi_def_cfa_offset 16
3833 .cfi_offset 3, -16
3834 .cfi_offset 4, -12
3835 .cfi_offset 5, -8
3836 .cfi_offset 14, -4
1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3837 .loc 1 1920 3 is_stmt 1 view .LVU1315
1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3838 .loc 1 1920 11 is_stmt 0 view .LVU1316
3839 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
3840 0006 DBB2 uxtb r3, r3
1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3841 .loc 1 1920 6 view .LVU1317
3842 0008 202B cmp r3, #32
ARM GAS /tmp/ccJ8PJrU.s page 221
3843 000a 23D1 bne .L266
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3844 .loc 1 1923 5 is_stmt 1 view .LVU1318
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3845 .loc 1 1923 5 view .LVU1319
3846 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
3847 0010 012B cmp r3, #1
3848 0012 21D0 beq .L267
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3849 .loc 1 1923 5 discriminator 2 view .LVU1320
3850 0014 0123 movs r3, #1
3851 0016 80F84030 strb r3, [r0, #64]
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3852 .loc 1 1923 5 discriminator 2 view .LVU1321
1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3853 .loc 1 1925 5 view .LVU1322
1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
3854 .loc 1 1925 23 is_stmt 0 view .LVU1323
3855 001a 2223 movs r3, #34
3856 001c 80F84130 strb r3, [r0, #65]
1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3857 .loc 1 1926 5 is_stmt 1 view .LVU1324
1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3858 .loc 1 1926 23 is_stmt 0 view .LVU1325
3859 0020 2023 movs r3, #32
3860 0022 80F84230 strb r3, [r0, #66]
1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3861 .loc 1 1927 5 is_stmt 1 view .LVU1326
1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3862 .loc 1 1927 23 is_stmt 0 view .LVU1327
3863 0026 0024 movs r4, #0
3864 0028 4464 str r4, [r0, #68]
1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3865 .loc 1 1930 5 is_stmt 1 view .LVU1328
1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3866 .loc 1 1930 9 is_stmt 0 view .LVU1329
3867 002a 0568 ldr r5, [r0]
1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3868 .loc 1 1930 19 view .LVU1330
3869 002c 6B68 ldr r3, [r5, #4]
1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3870 .loc 1 1930 25 view .LVU1331
3871 002e 23F40043 bic r3, r3, #32768
3872 0032 6B60 str r3, [r5, #4]
1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3873 .loc 1 1933 5 is_stmt 1 view .LVU1332
1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3874 .loc 1 1933 23 is_stmt 0 view .LVU1333
3875 0034 4162 str r1, [r0, #36]
1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3876 .loc 1 1934 5 is_stmt 1 view .LVU1334
1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
3877 .loc 1 1934 23 is_stmt 0 view .LVU1335
3878 0036 4285 strh r2, [r0, #42] @ movhi
1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3879 .loc 1 1935 5 is_stmt 1 view .LVU1336
1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
ARM GAS /tmp/ccJ8PJrU.s page 222
3880 .loc 1 1935 29 is_stmt 0 view .LVU1337
3881 0038 438D ldrh r3, [r0, #42]
1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
3882 .loc 1 1935 23 view .LVU1338
3883 003a 0385 strh r3, [r0, #40] @ movhi
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3884 .loc 1 1936 5 is_stmt 1 view .LVU1339
1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
3885 .loc 1 1936 23 is_stmt 0 view .LVU1340
3886 003c 074B ldr r3, .L269
3887 003e C362 str r3, [r0, #44]
1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3888 .loc 1 1937 5 is_stmt 1 view .LVU1341
1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3889 .loc 1 1937 23 is_stmt 0 view .LVU1342
3890 0040 074B ldr r3, .L269+4
3891 0042 4363 str r3, [r0, #52]
1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3892 .loc 1 1940 5 is_stmt 1 view .LVU1343
1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3893 .loc 1 1940 5 view .LVU1344
3894 0044 80F84040 strb r4, [r0, #64]
1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3895 .loc 1 1940 5 view .LVU1345
1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3896 .loc 1 1950 5 view .LVU1346
3897 0048 48F20201 movw r1, #32770
3898 .LVL263:
1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3899 .loc 1 1950 5 is_stmt 0 view .LVU1347
3900 004c FFF7FEFF bl I2C_Enable_IRQ
3901 .LVL264:
1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3902 .loc 1 1952 5 is_stmt 1 view .LVU1348
1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3903 .loc 1 1952 12 is_stmt 0 view .LVU1349
3904 0050 2046 mov r0, r4
3905 .L265:
1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3906 .loc 1 1958 1 view .LVU1350
3907 0052 38BD pop {r3, r4, r5, pc}
3908 .LVL265:
3909 .L266:
1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3910 .loc 1 1956 12 view .LVU1351
3911 0054 0220 movs r0, #2
3912 .LVL266:
1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
3913 .loc 1 1956 12 view .LVU1352
3914 0056 FCE7 b .L265
3915 .LVL267:
3916 .L267:
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3917 .loc 1 1923 5 discriminator 1 view .LVU1353
3918 0058 0220 movs r0, #2
3919 .LVL268:
1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 223
3920 .loc 1 1923 5 discriminator 1 view .LVU1354
3921 005a FAE7 b .L265
3922 .L270:
3923 .align 2
3924 .L269:
3925 005c 0000FFFF .word -65536
3926 0060 00000000 .word I2C_Slave_ISR_IT
3927 .cfi_endproc
3928 .LFE134:
3930 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits
3931 .align 1
3932 .global HAL_I2C_Master_Transmit_DMA
3933 .syntax unified
3934 .thumb
3935 .thumb_func
3937 HAL_I2C_Master_Transmit_DMA:
3938 .LVL269:
3939 .LFB135:
1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3940 .loc 1 1972 1 is_stmt 1 view -0
3941 .cfi_startproc
3942 @ args = 0, pretend = 0, frame = 0
3943 @ frame_needed = 0, uses_anonymous_args = 0
1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
3944 .loc 1 1972 1 is_stmt 0 view .LVU1356
3945 0000 70B5 push {r4, r5, r6, lr}
3946 .cfi_def_cfa_offset 16
3947 .cfi_offset 4, -16
3948 .cfi_offset 5, -12
3949 .cfi_offset 6, -8
3950 .cfi_offset 14, -4
3951 0002 82B0 sub sp, sp, #8
3952 .cfi_def_cfa_offset 24
3953 0004 0446 mov r4, r0
1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
3954 .loc 1 1973 3 is_stmt 1 view .LVU1357
1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
3955 .loc 1 1974 3 view .LVU1358
1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3956 .loc 1 1975 3 view .LVU1359
3957 .LVL270:
1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3958 .loc 1 1977 3 view .LVU1360
1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3959 .loc 1 1977 11 is_stmt 0 view .LVU1361
3960 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
3961 .LVL271:
1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3962 .loc 1 1977 11 view .LVU1362
3963 000a C0B2 uxtb r0, r0
1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3964 .loc 1 1977 6 view .LVU1363
3965 000c 2028 cmp r0, #32
3966 000e 40F09D80 bne .L281
3967 0012 0D46 mov r5, r1
1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3968 .loc 1 1979 5 is_stmt 1 view .LVU1364
ARM GAS /tmp/ccJ8PJrU.s page 224
1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3969 .loc 1 1979 9 is_stmt 0 view .LVU1365
3970 0014 2068 ldr r0, [r4]
3971 0016 8169 ldr r1, [r0, #24]
3972 .LVL272:
1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
3973 .loc 1 1979 8 view .LVU1366
3974 0018 11F40041 ands r1, r1, #32768
3975 001c 40F09980 bne .L282
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3976 .loc 1 1985 5 is_stmt 1 view .LVU1367
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3977 .loc 1 1985 5 view .LVU1368
3978 0020 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2
3979 0024 012E cmp r6, #1
3980 0026 00F09680 beq .L283
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3981 .loc 1 1985 5 discriminator 2 view .LVU1369
3982 002a 0126 movs r6, #1
3983 002c 84F84060 strb r6, [r4, #64]
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3984 .loc 1 1985 5 discriminator 2 view .LVU1370
1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3985 .loc 1 1987 5 view .LVU1371
1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
3986 .loc 1 1987 23 is_stmt 0 view .LVU1372
3987 0030 2126 movs r6, #33
3988 0032 84F84160 strb r6, [r4, #65]
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3989 .loc 1 1988 5 is_stmt 1 view .LVU1373
1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
3990 .loc 1 1988 23 is_stmt 0 view .LVU1374
3991 0036 1026 movs r6, #16
3992 0038 84F84260 strb r6, [r4, #66]
1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3993 .loc 1 1989 5 is_stmt 1 view .LVU1375
1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
3994 .loc 1 1989 23 is_stmt 0 view .LVU1376
3995 003c 0026 movs r6, #0
3996 003e 6664 str r6, [r4, #68]
1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3997 .loc 1 1992 5 is_stmt 1 view .LVU1377
1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
3998 .loc 1 1992 23 is_stmt 0 view .LVU1378
3999 0040 6262 str r2, [r4, #36]
1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4000 .loc 1 1993 5 is_stmt 1 view .LVU1379
1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4001 .loc 1 1993 23 is_stmt 0 view .LVU1380
4002 0042 6385 strh r3, [r4, #42] @ movhi
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4003 .loc 1 1994 5 is_stmt 1 view .LVU1381
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4004 .loc 1 1994 23 is_stmt 0 view .LVU1382
4005 0044 454B ldr r3, .L287
4006 .LVL273:
1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
ARM GAS /tmp/ccJ8PJrU.s page 225
4007 .loc 1 1994 23 view .LVU1383
4008 0046 E362 str r3, [r4, #44]
4009 .LVL274:
1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4010 .loc 1 1995 5 is_stmt 1 view .LVU1384
1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4011 .loc 1 1995 23 is_stmt 0 view .LVU1385
4012 0048 454B ldr r3, .L287+4
4013 004a 6363 str r3, [r4, #52]
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4014 .loc 1 1997 5 is_stmt 1 view .LVU1386
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4015 .loc 1 1997 13 is_stmt 0 view .LVU1387
4016 004c 638D ldrh r3, [r4, #42]
4017 004e 9BB2 uxth r3, r3
1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4018 .loc 1 1997 8 view .LVU1388
4019 0050 FF2B cmp r3, #255
4020 0052 37D9 bls .L273
1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4021 .loc 1 1999 7 is_stmt 1 view .LVU1389
1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4022 .loc 1 1999 22 is_stmt 0 view .LVU1390
4023 0054 FF23 movs r3, #255
4024 0056 2385 strh r3, [r4, #40] @ movhi
2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4025 .loc 1 2000 7 is_stmt 1 view .LVU1391
4026 .LVL275:
2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4027 .loc 1 2000 16 is_stmt 0 view .LVU1392
4028 0058 4FF08076 mov r6, #16777216
4029 .LVL276:
4030 .L274:
2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4031 .loc 1 2008 5 is_stmt 1 view .LVU1393
2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4032 .loc 1 2008 13 is_stmt 0 view .LVU1394
4033 005c 238D ldrh r3, [r4, #40]
2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4034 .loc 1 2008 8 view .LVU1395
4035 005e 63B1 cbz r3, .L275
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4036 .loc 1 2012 7 is_stmt 1 view .LVU1396
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4037 .loc 1 2012 30 is_stmt 0 view .LVU1397
4038 0060 1378 ldrb r3, [r2] @ zero_extendqisi2
2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4039 .loc 1 2012 28 view .LVU1398
4040 0062 8362 str r3, [r0, #40]
2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4041 .loc 1 2015 7 is_stmt 1 view .LVU1399
2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4042 .loc 1 2015 11 is_stmt 0 view .LVU1400
4043 0064 636A ldr r3, [r4, #36]
2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4044 .loc 1 2015 21 view .LVU1401
4045 0066 0133 adds r3, r3, #1
ARM GAS /tmp/ccJ8PJrU.s page 226
4046 0068 6362 str r3, [r4, #36]
2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
4047 .loc 1 2017 7 is_stmt 1 view .LVU1402
2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
4048 .loc 1 2017 24 is_stmt 0 view .LVU1403
4049 006a 218D ldrh r1, [r4, #40]
4050 .LVL277:
2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4051 .loc 1 2018 7 is_stmt 1 view .LVU1404
2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4052 .loc 1 2018 11 is_stmt 0 view .LVU1405
4053 006c 638D ldrh r3, [r4, #42]
4054 006e 9BB2 uxth r3, r3
2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4055 .loc 1 2018 22 view .LVU1406
4056 0070 013B subs r3, r3, #1
4057 0072 9BB2 uxth r3, r3
4058 0074 6385 strh r3, [r4, #42] @ movhi
2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4059 .loc 1 2019 7 is_stmt 1 view .LVU1407
2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4060 .loc 1 2019 21 is_stmt 0 view .LVU1408
4061 0076 4B1E subs r3, r1, #1
4062 0078 2385 strh r3, [r4, #40] @ movhi
4063 .LVL278:
4064 .L275:
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4065 .loc 1 2022 5 is_stmt 1 view .LVU1409
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4066 .loc 1 2022 13 is_stmt 0 view .LVU1410
4067 007a 238D ldrh r3, [r4, #40]
2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4068 .loc 1 2022 8 view .LVU1411
4069 007c 002B cmp r3, #0
4070 007e 51D0 beq .L276
2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4071 .loc 1 2024 7 is_stmt 1 view .LVU1412
2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4072 .loc 1 2024 15 is_stmt 0 view .LVU1413
4073 0080 A36B ldr r3, [r4, #56]
2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4074 .loc 1 2024 10 view .LVU1414
4075 0082 23B3 cbz r3, .L277
2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4076 .loc 1 2027 9 is_stmt 1 view .LVU1415
2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4077 .loc 1 2027 40 is_stmt 0 view .LVU1416
4078 0084 374A ldr r2, .L287+8
4079 .LVL279:
2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4080 .loc 1 2027 40 view .LVU1417
4081 0086 9A62 str r2, [r3, #40]
2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4082 .loc 1 2030 9 is_stmt 1 view .LVU1418
2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4083 .loc 1 2030 13 is_stmt 0 view .LVU1419
4084 0088 A36B ldr r3, [r4, #56]
ARM GAS /tmp/ccJ8PJrU.s page 227
2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4085 .loc 1 2030 41 view .LVU1420
4086 008a 374A ldr r2, .L287+12
4087 008c 1A63 str r2, [r3, #48]
2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4088 .loc 1 2033 9 is_stmt 1 view .LVU1421
2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4089 .loc 1 2033 13 is_stmt 0 view .LVU1422
4090 008e A26B ldr r2, [r4, #56]
2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4091 .loc 1 2033 44 view .LVU1423
4092 0090 0023 movs r3, #0
4093 0092 D362 str r3, [r2, #44]
2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4094 .loc 1 2034 9 is_stmt 1 view .LVU1424
2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4095 .loc 1 2034 13 is_stmt 0 view .LVU1425
4096 0094 A26B ldr r2, [r4, #56]
2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4097 .loc 1 2034 41 view .LVU1426
4098 0096 5363 str r3, [r2, #52]
2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
4099 .loc 1 2037 9 is_stmt 1 view .LVU1427
2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4100 .loc 1 2038 57 is_stmt 0 view .LVU1428
4101 0098 2268 ldr r2, [r4]
2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
4102 .loc 1 2037 25 view .LVU1429
4103 009a 238D ldrh r3, [r4, #40]
4104 009c 2832 adds r2, r2, #40
4105 009e 616A ldr r1, [r4, #36]
4106 .LVL280:
2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
4107 .loc 1 2037 25 view .LVU1430
4108 00a0 A06B ldr r0, [r4, #56]
4109 00a2 FFF7FEFF bl HAL_DMA_Start_IT
4110 .LVL281:
2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4111 .loc 1 2055 7 is_stmt 1 view .LVU1431
2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4112 .loc 1 2055 10 is_stmt 0 view .LVU1432
4113 00a6 00B3 cbz r0, .L286
2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4114 .loc 1 2080 9 is_stmt 1 view .LVU1433
2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4115 .loc 1 2080 25 is_stmt 0 view .LVU1434
4116 00a8 2023 movs r3, #32
4117 00aa 84F84130 strb r3, [r4, #65]
2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4118 .loc 1 2081 9 is_stmt 1 view .LVU1435
2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4119 .loc 1 2081 25 is_stmt 0 view .LVU1436
4120 00ae 0022 movs r2, #0
4121 00b0 84F84220 strb r2, [r4, #66]
2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4122 .loc 1 2084 9 is_stmt 1 view .LVU1437
2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 228
4123 .loc 1 2084 13 is_stmt 0 view .LVU1438
4124 00b4 636C ldr r3, [r4, #68]
2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4125 .loc 1 2084 25 view .LVU1439
4126 00b6 43F01003 orr r3, r3, #16
4127 00ba 6364 str r3, [r4, #68]
2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4128 .loc 1 2087 9 is_stmt 1 view .LVU1440
2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4129 .loc 1 2087 9 view .LVU1441
4130 00bc 84F84020 strb r2, [r4, #64]
2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4131 .loc 1 2087 9 view .LVU1442
2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4132 .loc 1 2089 9 view .LVU1443
2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4133 .loc 1 2089 16 is_stmt 0 view .LVU1444
4134 00c0 0120 movs r0, #1
4135 .LVL282:
2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4136 .loc 1 2089 16 view .LVU1445
4137 00c2 44E0 b .L272
4138 .LVL283:
4139 .L273:
2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4140 .loc 1 2004 7 is_stmt 1 view .LVU1446
2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4141 .loc 1 2004 28 is_stmt 0 view .LVU1447
4142 00c4 638D ldrh r3, [r4, #42]
2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4143 .loc 1 2004 22 view .LVU1448
4144 00c6 2385 strh r3, [r4, #40] @ movhi
2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4145 .loc 1 2005 7 is_stmt 1 view .LVU1449
4146 .LVL284:
2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4147 .loc 1 2005 16 is_stmt 0 view .LVU1450
4148 00c8 4FF00076 mov r6, #33554432
4149 00cc C6E7 b .L274
4150 .LVL285:
4151 .L277:
2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4152 .loc 1 2043 9 is_stmt 1 view .LVU1451
2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4153 .loc 1 2043 25 is_stmt 0 view .LVU1452
4154 00ce 2023 movs r3, #32
4155 00d0 84F84130 strb r3, [r4, #65]
2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4156 .loc 1 2044 9 is_stmt 1 view .LVU1453
2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4157 .loc 1 2044 25 is_stmt 0 view .LVU1454
4158 00d4 0022 movs r2, #0
4159 .LVL286:
2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4160 .loc 1 2044 25 view .LVU1455
4161 00d6 84F84220 strb r2, [r4, #66]
2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 229
4162 .loc 1 2047 9 is_stmt 1 view .LVU1456
2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4163 .loc 1 2047 13 is_stmt 0 view .LVU1457
4164 00da 636C ldr r3, [r4, #68]
2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4165 .loc 1 2047 25 view .LVU1458
4166 00dc 43F08003 orr r3, r3, #128
4167 00e0 6364 str r3, [r4, #68]
2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4168 .loc 1 2050 9 is_stmt 1 view .LVU1459
2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4169 .loc 1 2050 9 view .LVU1460
4170 00e2 84F84020 strb r2, [r4, #64]
2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4171 .loc 1 2050 9 view .LVU1461
2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4172 .loc 1 2052 9 view .LVU1462
2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4173 .loc 1 2052 16 is_stmt 0 view .LVU1463
4174 00e6 0120 movs r0, #1
4175 00e8 31E0 b .L272
4176 .LVL287:
4177 .L286:
2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4178 .loc 1 2059 9 is_stmt 1 view .LVU1464
2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4179 .loc 1 2059 60 is_stmt 0 view .LVU1465
4180 00ea 228D ldrh r2, [r4, #40]
2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4181 .loc 1 2059 9 view .LVU1466
4182 00ec 0132 adds r2, r2, #1
4183 00ee 1F4B ldr r3, .L287+16
4184 00f0 0093 str r3, [sp]
4185 00f2 3346 mov r3, r6
4186 00f4 D2B2 uxtb r2, r2
4187 00f6 2946 mov r1, r5
4188 00f8 2046 mov r0, r4
4189 .LVL288:
2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE);
4190 .loc 1 2059 9 view .LVU1467
4191 00fa FFF7FEFF bl I2C_TransferConfig
4192 .LVL289:
2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4193 .loc 1 2063 9 is_stmt 1 view .LVU1468
2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4194 .loc 1 2063 13 is_stmt 0 view .LVU1469
4195 00fe 638D ldrh r3, [r4, #42]
4196 0100 9BB2 uxth r3, r3
2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4197 .loc 1 2063 32 view .LVU1470
4198 0102 228D ldrh r2, [r4, #40]
2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4199 .loc 1 2063 25 view .LVU1471
4200 0104 9B1A subs r3, r3, r2
4201 0106 9BB2 uxth r3, r3
4202 0108 6385 strh r3, [r4, #42] @ movhi
2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 230
4203 .loc 1 2066 9 is_stmt 1 view .LVU1472
2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4204 .loc 1 2066 9 view .LVU1473
4205 010a 0023 movs r3, #0
4206 010c 84F84030 strb r3, [r4, #64]
2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4207 .loc 1 2066 9 view .LVU1474
2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4208 .loc 1 2072 9 view .LVU1475
4209 0110 1021 movs r1, #16
4210 0112 2046 mov r0, r4
4211 0114 FFF7FEFF bl I2C_Enable_IRQ
4212 .LVL290:
2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4213 .loc 1 2075 9 view .LVU1476
2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4214 .loc 1 2075 13 is_stmt 0 view .LVU1477
4215 0118 2268 ldr r2, [r4]
2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4216 .loc 1 2075 23 view .LVU1478
4217 011a 1368 ldr r3, [r2]
2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4218 .loc 1 2075 29 view .LVU1479
4219 011c 43F48043 orr r3, r3, #16384
4220 0120 1360 str r3, [r2]
4221 0122 11E0 b .L280
4222 .LVL291:
4223 .L276:
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4224 .loc 1 2095 7 is_stmt 1 view .LVU1480
2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4225 .loc 1 2095 21 is_stmt 0 view .LVU1481
4226 0124 124B ldr r3, .L287+20
4227 0126 6363 str r3, [r4, #52]
2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
4228 .loc 1 2099 7 is_stmt 1 view .LVU1482
4229 0128 104B ldr r3, .L287+16
4230 012a 0093 str r3, [sp]
4231 012c 4FF00073 mov r3, #33554432
4232 0130 CAB2 uxtb r2, r1
4233 .LVL292:
2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
4234 .loc 1 2099 7 is_stmt 0 view .LVU1483
4235 0132 2946 mov r1, r5
4236 .LVL293:
2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE);
4237 .loc 1 2099 7 view .LVU1484
4238 0134 2046 mov r0, r4
4239 0136 FFF7FEFF bl I2C_TransferConfig
4240 .LVL294:
2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4241 .loc 1 2103 7 is_stmt 1 view .LVU1485
2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4242 .loc 1 2103 7 view .LVU1486
4243 013a 0023 movs r3, #0
4244 013c 84F84030 strb r3, [r4, #64]
2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 231
4245 .loc 1 2103 7 view .LVU1487
2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4246 .loc 1 2112 7 view .LVU1488
4247 0140 0121 movs r1, #1
4248 0142 2046 mov r0, r4
4249 0144 FFF7FEFF bl I2C_Enable_IRQ
4250 .LVL295:
4251 .L280:
2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4252 .loc 1 2115 5 view .LVU1489
2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4253 .loc 1 2115 12 is_stmt 0 view .LVU1490
4254 0148 0020 movs r0, #0
4255 014a 00E0 b .L272
4256 .LVL296:
4257 .L281:
2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4258 .loc 1 2119 12 view .LVU1491
4259 014c 0220 movs r0, #2
4260 .LVL297:
4261 .L272:
2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4262 .loc 1 2121 1 view .LVU1492
4263 014e 02B0 add sp, sp, #8
4264 .cfi_remember_state
4265 .cfi_def_cfa_offset 16
4266 @ sp needed
4267 0150 70BD pop {r4, r5, r6, pc}
4268 .LVL298:
4269 .L282:
4270 .cfi_restore_state
1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4271 .loc 1 1981 14 view .LVU1493
4272 0152 0220 movs r0, #2
4273 0154 FBE7 b .L272
4274 .L283:
1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4275 .loc 1 1985 5 discriminator 1 view .LVU1494
4276 0156 0220 movs r0, #2
4277 0158 F9E7 b .L272
4278 .L288:
4279 015a 00BF .align 2
4280 .L287:
4281 015c 0000FFFF .word -65536
4282 0160 00000000 .word I2C_Master_ISR_DMA
4283 0164 00000000 .word I2C_DMAMasterTransmitCplt
4284 0168 00000000 .word I2C_DMAError
4285 016c 00200080 .word -2147475456
4286 0170 00000000 .word I2C_Master_ISR_IT
4287 .cfi_endproc
4288 .LFE135:
4290 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits
4291 .align 1
4292 .global HAL_I2C_Master_Receive_DMA
4293 .syntax unified
4294 .thumb
4295 .thumb_func
ARM GAS /tmp/ccJ8PJrU.s page 232
4297 HAL_I2C_Master_Receive_DMA:
4298 .LVL299:
4299 .LFB136:
2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
4300 .loc 1 2135 1 is_stmt 1 view -0
4301 .cfi_startproc
4302 @ args = 0, pretend = 0, frame = 0
4303 @ frame_needed = 0, uses_anonymous_args = 0
2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
4304 .loc 1 2135 1 is_stmt 0 view .LVU1496
4305 0000 70B5 push {r4, r5, r6, lr}
4306 .cfi_def_cfa_offset 16
4307 .cfi_offset 4, -16
4308 .cfi_offset 5, -12
4309 .cfi_offset 6, -8
4310 .cfi_offset 14, -4
4311 0002 82B0 sub sp, sp, #8
4312 .cfi_def_cfa_offset 24
4313 0004 0446 mov r4, r0
2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4314 .loc 1 2136 3 is_stmt 1 view .LVU1497
2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4315 .loc 1 2137 3 view .LVU1498
2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4316 .loc 1 2139 3 view .LVU1499
2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4317 .loc 1 2139 11 is_stmt 0 view .LVU1500
4318 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
4319 .LVL300:
2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4320 .loc 1 2139 11 view .LVU1501
4321 000a C0B2 uxtb r0, r0
2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4322 .loc 1 2139 6 view .LVU1502
4323 000c 2028 cmp r0, #32
4324 000e 40F08C80 bne .L298
4325 0012 0D46 mov r5, r1
2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4326 .loc 1 2141 5 is_stmt 1 view .LVU1503
2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4327 .loc 1 2141 9 is_stmt 0 view .LVU1504
4328 0014 2168 ldr r1, [r4]
4329 .LVL301:
2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4330 .loc 1 2141 9 view .LVU1505
4331 0016 8969 ldr r1, [r1, #24]
2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4332 .loc 1 2141 8 view .LVU1506
4333 0018 11F4004F tst r1, #32768
4334 001c 40F08880 bne .L299
2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4335 .loc 1 2147 5 is_stmt 1 view .LVU1507
2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4336 .loc 1 2147 5 view .LVU1508
4337 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
4338 0024 0129 cmp r1, #1
4339 0026 00F08580 beq .L300
ARM GAS /tmp/ccJ8PJrU.s page 233
2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4340 .loc 1 2147 5 discriminator 2 view .LVU1509
4341 002a 0121 movs r1, #1
4342 002c 84F84010 strb r1, [r4, #64]
2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4343 .loc 1 2147 5 discriminator 2 view .LVU1510
2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
4344 .loc 1 2149 5 view .LVU1511
2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
4345 .loc 1 2149 23 is_stmt 0 view .LVU1512
4346 0030 2221 movs r1, #34
4347 0032 84F84110 strb r1, [r4, #65]
2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4348 .loc 1 2150 5 is_stmt 1 view .LVU1513
2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4349 .loc 1 2150 23 is_stmt 0 view .LVU1514
4350 0036 1021 movs r1, #16
4351 0038 84F84210 strb r1, [r4, #66]
2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4352 .loc 1 2151 5 is_stmt 1 view .LVU1515
2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4353 .loc 1 2151 23 is_stmt 0 view .LVU1516
4354 003c 0021 movs r1, #0
4355 003e 6164 str r1, [r4, #68]
2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4356 .loc 1 2154 5 is_stmt 1 view .LVU1517
2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4357 .loc 1 2154 23 is_stmt 0 view .LVU1518
4358 0040 6262 str r2, [r4, #36]
2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4359 .loc 1 2155 5 is_stmt 1 view .LVU1519
2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4360 .loc 1 2155 23 is_stmt 0 view .LVU1520
4361 0042 6385 strh r3, [r4, #42] @ movhi
2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4362 .loc 1 2156 5 is_stmt 1 view .LVU1521
2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4363 .loc 1 2156 23 is_stmt 0 view .LVU1522
4364 0044 3C4B ldr r3, .L304
4365 .LVL302:
2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
4366 .loc 1 2156 23 view .LVU1523
4367 0046 E362 str r3, [r4, #44]
4368 .LVL303:
2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4369 .loc 1 2157 5 is_stmt 1 view .LVU1524
2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4370 .loc 1 2157 23 is_stmt 0 view .LVU1525
4371 0048 3C4B ldr r3, .L304+4
4372 004a 6363 str r3, [r4, #52]
2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4373 .loc 1 2159 5 is_stmt 1 view .LVU1526
2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4374 .loc 1 2159 13 is_stmt 0 view .LVU1527
4375 004c 638D ldrh r3, [r4, #42]
4376 004e 9BB2 uxth r3, r3
2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 234
4377 .loc 1 2159 8 view .LVU1528
4378 0050 FF2B cmp r3, #255
4379 0052 27D9 bls .L291
2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4380 .loc 1 2161 7 is_stmt 1 view .LVU1529
2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
4381 .loc 1 2161 22 is_stmt 0 view .LVU1530
4382 0054 0123 movs r3, #1
4383 0056 2385 strh r3, [r4, #40] @ movhi
2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4384 .loc 1 2162 7 is_stmt 1 view .LVU1531
4385 .LVL304:
2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4386 .loc 1 2162 16 is_stmt 0 view .LVU1532
4387 0058 4FF08076 mov r6, #16777216
4388 .LVL305:
4389 .L292:
2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4390 .loc 1 2170 5 is_stmt 1 view .LVU1533
2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4391 .loc 1 2170 13 is_stmt 0 view .LVU1534
4392 005c 218D ldrh r1, [r4, #40]
2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4393 .loc 1 2170 8 view .LVU1535
4394 005e 0029 cmp r1, #0
4395 0060 4FD0 beq .L293
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4396 .loc 1 2172 7 is_stmt 1 view .LVU1536
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4397 .loc 1 2172 15 is_stmt 0 view .LVU1537
4398 0062 E36B ldr r3, [r4, #60]
2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4399 .loc 1 2172 10 view .LVU1538
4400 0064 1BB3 cbz r3, .L294
2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4401 .loc 1 2175 9 is_stmt 1 view .LVU1539
2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4402 .loc 1 2175 40 is_stmt 0 view .LVU1540
4403 0066 3649 ldr r1, .L304+8
4404 0068 9962 str r1, [r3, #40]
2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4405 .loc 1 2178 9 is_stmt 1 view .LVU1541
2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4406 .loc 1 2178 13 is_stmt 0 view .LVU1542
4407 006a E36B ldr r3, [r4, #60]
2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4408 .loc 1 2178 41 view .LVU1543
4409 006c 3549 ldr r1, .L304+12
4410 006e 1963 str r1, [r3, #48]
2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4411 .loc 1 2181 9 is_stmt 1 view .LVU1544
2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4412 .loc 1 2181 13 is_stmt 0 view .LVU1545
4413 0070 E16B ldr r1, [r4, #60]
2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
4414 .loc 1 2181 44 view .LVU1546
4415 0072 0023 movs r3, #0
ARM GAS /tmp/ccJ8PJrU.s page 235
4416 0074 CB62 str r3, [r1, #44]
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4417 .loc 1 2182 9 is_stmt 1 view .LVU1547
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4418 .loc 1 2182 13 is_stmt 0 view .LVU1548
4419 0076 E16B ldr r1, [r4, #60]
2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4420 .loc 1 2182 41 view .LVU1549
4421 0078 4B63 str r3, [r1, #52]
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4422 .loc 1 2185 9 is_stmt 1 view .LVU1550
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4423 .loc 1 2185 71 is_stmt 0 view .LVU1551
4424 007a 2168 ldr r1, [r4]
2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4425 .loc 1 2185 25 view .LVU1552
4426 007c 238D ldrh r3, [r4, #40]
4427 007e 2431 adds r1, r1, #36
4428 0080 E06B ldr r0, [r4, #60]
4429 0082 FFF7FEFF bl HAL_DMA_Start_IT
4430 .LVL306:
2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4431 .loc 1 2203 7 is_stmt 1 view .LVU1553
2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4432 .loc 1 2203 10 is_stmt 0 view .LVU1554
4433 0086 00B3 cbz r0, .L303
2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4434 .loc 1 2227 9 is_stmt 1 view .LVU1555
2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4435 .loc 1 2227 25 is_stmt 0 view .LVU1556
4436 0088 2023 movs r3, #32
4437 008a 84F84130 strb r3, [r4, #65]
2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4438 .loc 1 2228 9 is_stmt 1 view .LVU1557
2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4439 .loc 1 2228 25 is_stmt 0 view .LVU1558
4440 008e 0022 movs r2, #0
4441 0090 84F84220 strb r2, [r4, #66]
2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4442 .loc 1 2231 9 is_stmt 1 view .LVU1559
2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4443 .loc 1 2231 13 is_stmt 0 view .LVU1560
4444 0094 636C ldr r3, [r4, #68]
2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4445 .loc 1 2231 25 view .LVU1561
4446 0096 43F01003 orr r3, r3, #16
4447 009a 6364 str r3, [r4, #68]
2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4448 .loc 1 2234 9 is_stmt 1 view .LVU1562
2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4449 .loc 1 2234 9 view .LVU1563
4450 009c 84F84020 strb r2, [r4, #64]
2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4451 .loc 1 2234 9 view .LVU1564
2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4452 .loc 1 2236 9 view .LVU1565
2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 236
4453 .loc 1 2236 16 is_stmt 0 view .LVU1566
4454 00a0 0120 movs r0, #1
4455 .LVL307:
2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4456 .loc 1 2236 16 view .LVU1567
4457 00a2 43E0 b .L290
4458 .LVL308:
4459 .L291:
2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4460 .loc 1 2166 7 is_stmt 1 view .LVU1568
2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4461 .loc 1 2166 28 is_stmt 0 view .LVU1569
4462 00a4 638D ldrh r3, [r4, #42]
2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE;
4463 .loc 1 2166 22 view .LVU1570
4464 00a6 2385 strh r3, [r4, #40] @ movhi
2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4465 .loc 1 2167 7 is_stmt 1 view .LVU1571
4466 .LVL309:
2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4467 .loc 1 2167 16 is_stmt 0 view .LVU1572
4468 00a8 4FF00076 mov r6, #33554432
4469 00ac D6E7 b .L292
4470 .LVL310:
4471 .L294:
2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4472 .loc 1 2191 9 is_stmt 1 view .LVU1573
2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4473 .loc 1 2191 25 is_stmt 0 view .LVU1574
4474 00ae 2023 movs r3, #32
4475 00b0 84F84130 strb r3, [r4, #65]
2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4476 .loc 1 2192 9 is_stmt 1 view .LVU1575
2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4477 .loc 1 2192 25 is_stmt 0 view .LVU1576
4478 00b4 0022 movs r2, #0
4479 .LVL311:
2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4480 .loc 1 2192 25 view .LVU1577
4481 00b6 84F84220 strb r2, [r4, #66]
2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4482 .loc 1 2195 9 is_stmt 1 view .LVU1578
2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4483 .loc 1 2195 13 is_stmt 0 view .LVU1579
4484 00ba 636C ldr r3, [r4, #68]
2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4485 .loc 1 2195 25 view .LVU1580
4486 00bc 43F08003 orr r3, r3, #128
4487 00c0 6364 str r3, [r4, #68]
2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4488 .loc 1 2198 9 is_stmt 1 view .LVU1581
2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4489 .loc 1 2198 9 view .LVU1582
4490 00c2 84F84020 strb r2, [r4, #64]
2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4491 .loc 1 2198 9 view .LVU1583
2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 237
4492 .loc 1 2200 9 view .LVU1584
2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4493 .loc 1 2200 16 is_stmt 0 view .LVU1585
4494 00c6 0120 movs r0, #1
4495 00c8 30E0 b .L290
4496 .LVL312:
4497 .L303:
2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4498 .loc 1 2207 9 is_stmt 1 view .LVU1586
4499 00ca 1F4B ldr r3, .L304+16
4500 00cc 0093 str r3, [sp]
4501 00ce 3346 mov r3, r6
4502 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
4503 00d4 2946 mov r1, r5
4504 00d6 2046 mov r0, r4
4505 .LVL313:
2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4506 .loc 1 2207 9 is_stmt 0 view .LVU1587
4507 00d8 FFF7FEFF bl I2C_TransferConfig
4508 .LVL314:
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4509 .loc 1 2210 9 is_stmt 1 view .LVU1588
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4510 .loc 1 2210 13 is_stmt 0 view .LVU1589
4511 00dc 638D ldrh r3, [r4, #42]
4512 00de 9BB2 uxth r3, r3
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4513 .loc 1 2210 32 view .LVU1590
4514 00e0 228D ldrh r2, [r4, #40]
2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4515 .loc 1 2210 25 view .LVU1591
4516 00e2 9B1A subs r3, r3, r2
4517 00e4 9BB2 uxth r3, r3
4518 00e6 6385 strh r3, [r4, #42] @ movhi
2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4519 .loc 1 2213 9 is_stmt 1 view .LVU1592
2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4520 .loc 1 2213 9 view .LVU1593
4521 00e8 0023 movs r3, #0
4522 00ea 84F84030 strb r3, [r4, #64]
2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4523 .loc 1 2213 9 view .LVU1594
2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4524 .loc 1 2219 9 view .LVU1595
4525 00ee 1021 movs r1, #16
4526 00f0 2046 mov r0, r4
4527 00f2 FFF7FEFF bl I2C_Enable_IRQ
4528 .LVL315:
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4529 .loc 1 2222 9 view .LVU1596
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4530 .loc 1 2222 13 is_stmt 0 view .LVU1597
4531 00f6 2268 ldr r2, [r4]
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4532 .loc 1 2222 23 view .LVU1598
4533 00f8 1368 ldr r3, [r2]
2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 238
4534 .loc 1 2222 29 view .LVU1599
4535 00fa 43F40043 orr r3, r3, #32768
4536 00fe 1360 str r3, [r2]
4537 0100 11E0 b .L297
4538 .LVL316:
4539 .L293:
2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4540 .loc 1 2242 7 is_stmt 1 view .LVU1600
2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4541 .loc 1 2242 21 is_stmt 0 view .LVU1601
4542 0102 124B ldr r3, .L304+20
4543 0104 6363 str r3, [r4, #52]
2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
4544 .loc 1 2246 7 is_stmt 1 view .LVU1602
4545 0106 104B ldr r3, .L304+16
4546 0108 0093 str r3, [sp]
4547 010a 4FF00073 mov r3, #33554432
4548 010e CAB2 uxtb r2, r1
4549 .LVL317:
2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
4550 .loc 1 2246 7 is_stmt 0 view .LVU1603
4551 0110 2946 mov r1, r5
4552 0112 2046 mov r0, r4
4553 0114 FFF7FEFF bl I2C_TransferConfig
4554 .LVL318:
2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4555 .loc 1 2250 7 is_stmt 1 view .LVU1604
2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4556 .loc 1 2250 7 view .LVU1605
4557 0118 0023 movs r3, #0
4558 011a 84F84030 strb r3, [r4, #64]
2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4559 .loc 1 2250 7 view .LVU1606
2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4560 .loc 1 2259 7 view .LVU1607
4561 011e 0221 movs r1, #2
4562 0120 2046 mov r0, r4
4563 0122 FFF7FEFF bl I2C_Enable_IRQ
4564 .LVL319:
4565 .L297:
2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4566 .loc 1 2262 5 view .LVU1608
2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4567 .loc 1 2262 12 is_stmt 0 view .LVU1609
4568 0126 0020 movs r0, #0
4569 0128 00E0 b .L290
4570 .LVL320:
4571 .L298:
2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4572 .loc 1 2266 12 view .LVU1610
4573 012a 0220 movs r0, #2
4574 .LVL321:
4575 .L290:
2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4576 .loc 1 2268 1 view .LVU1611
4577 012c 02B0 add sp, sp, #8
4578 .cfi_remember_state
ARM GAS /tmp/ccJ8PJrU.s page 239
4579 .cfi_def_cfa_offset 16
4580 @ sp needed
4581 012e 70BD pop {r4, r5, r6, pc}
4582 .LVL322:
4583 .L299:
4584 .cfi_restore_state
2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4585 .loc 1 2143 14 view .LVU1612
4586 0130 0220 movs r0, #2
4587 0132 FBE7 b .L290
4588 .L300:
2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4589 .loc 1 2147 5 discriminator 1 view .LVU1613
4590 0134 0220 movs r0, #2
4591 0136 F9E7 b .L290
4592 .L305:
4593 .align 2
4594 .L304:
4595 0138 0000FFFF .word -65536
4596 013c 00000000 .word I2C_Master_ISR_DMA
4597 0140 00000000 .word I2C_DMAMasterReceiveCplt
4598 0144 00000000 .word I2C_DMAError
4599 0148 00240080 .word -2147474432
4600 014c 00000000 .word I2C_Master_ISR_IT
4601 .cfi_endproc
4602 .LFE136:
4604 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits
4605 .align 1
4606 .global HAL_I2C_Slave_Transmit_DMA
4607 .syntax unified
4608 .thumb
4609 .thumb_func
4611 HAL_I2C_Slave_Transmit_DMA:
4612 .LVL323:
4613 .LFB137:
2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4614 .loc 1 2279 1 is_stmt 1 view -0
4615 .cfi_startproc
4616 @ args = 0, pretend = 0, frame = 0
4617 @ frame_needed = 0, uses_anonymous_args = 0
2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4618 .loc 1 2280 3 view .LVU1615
2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4619 .loc 1 2282 3 view .LVU1616
2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4620 .loc 1 2282 11 is_stmt 0 view .LVU1617
4621 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4622 0004 DBB2 uxtb r3, r3
2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4623 .loc 1 2282 6 view .LVU1618
4624 0006 202B cmp r3, #32
4625 0008 40F08D80 bne .L316
2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4626 .loc 1 2279 1 view .LVU1619
4627 000c 10B5 push {r4, lr}
4628 .cfi_def_cfa_offset 8
4629 .cfi_offset 4, -8
ARM GAS /tmp/ccJ8PJrU.s page 240
4630 .cfi_offset 14, -4
4631 000e 0446 mov r4, r0
2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4632 .loc 1 2284 5 is_stmt 1 view .LVU1620
2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4633 .loc 1 2284 8 is_stmt 0 view .LVU1621
4634 0010 0029 cmp r1, #0
4635 0012 44D0 beq .L308
2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4636 .loc 1 2284 25 discriminator 1 view .LVU1622
4637 0014 002A cmp r2, #0
4638 0016 42D0 beq .L308
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4639 .loc 1 2290 5 is_stmt 1 view .LVU1623
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4640 .loc 1 2290 5 view .LVU1624
4641 0018 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4642 001c 012B cmp r3, #1
4643 001e 00F08480 beq .L317
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4644 .loc 1 2290 5 discriminator 2 view .LVU1625
4645 0022 0123 movs r3, #1
4646 0024 80F84030 strb r3, [r0, #64]
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4647 .loc 1 2290 5 discriminator 2 view .LVU1626
2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4648 .loc 1 2292 5 view .LVU1627
2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4649 .loc 1 2292 23 is_stmt 0 view .LVU1628
4650 0028 2123 movs r3, #33
4651 002a 80F84130 strb r3, [r0, #65]
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4652 .loc 1 2293 5 is_stmt 1 view .LVU1629
2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4653 .loc 1 2293 23 is_stmt 0 view .LVU1630
4654 002e 2023 movs r3, #32
4655 0030 80F84230 strb r3, [r0, #66]
2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4656 .loc 1 2294 5 is_stmt 1 view .LVU1631
2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4657 .loc 1 2294 23 is_stmt 0 view .LVU1632
4658 0034 0023 movs r3, #0
4659 0036 4364 str r3, [r0, #68]
2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4660 .loc 1 2297 5 is_stmt 1 view .LVU1633
2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4661 .loc 1 2297 23 is_stmt 0 view .LVU1634
4662 0038 4162 str r1, [r0, #36]
2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4663 .loc 1 2298 5 is_stmt 1 view .LVU1635
2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4664 .loc 1 2298 23 is_stmt 0 view .LVU1636
4665 003a 4285 strh r2, [r0, #42] @ movhi
2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4666 .loc 1 2299 5 is_stmt 1 view .LVU1637
2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4667 .loc 1 2299 29 is_stmt 0 view .LVU1638
ARM GAS /tmp/ccJ8PJrU.s page 241
4668 003c 438D ldrh r3, [r0, #42]
2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4669 .loc 1 2299 23 view .LVU1639
4670 003e 0385 strh r3, [r0, #40] @ movhi
2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4671 .loc 1 2300 5 is_stmt 1 view .LVU1640
2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4672 .loc 1 2300 23 is_stmt 0 view .LVU1641
4673 0040 3B4B ldr r3, .L325
4674 0042 C362 str r3, [r0, #44]
2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4675 .loc 1 2301 5 is_stmt 1 view .LVU1642
2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4676 .loc 1 2301 23 is_stmt 0 view .LVU1643
4677 0044 3B4B ldr r3, .L325+4
4678 0046 4363 str r3, [r0, #52]
2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4679 .loc 1 2304 5 is_stmt 1 view .LVU1644
2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4680 .loc 1 2304 19 is_stmt 0 view .LVU1645
4681 0048 036A ldr r3, [r0, #32]
2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4682 .loc 1 2304 8 view .LVU1646
4683 004a B3F5003F cmp r3, #131072
4684 004e 2BD0 beq .L323
4685 .LVL324:
4686 .L310:
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4687 .loc 1 2317 5 is_stmt 1 view .LVU1647
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4688 .loc 1 2317 13 is_stmt 0 view .LVU1648
4689 0050 638D ldrh r3, [r4, #42]
4690 0052 9BB2 uxth r3, r3
2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4691 .loc 1 2317 8 view .LVU1649
4692 0054 002B cmp r3, #0
4693 0056 57D0 beq .L311
2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4694 .loc 1 2319 7 is_stmt 1 view .LVU1650
2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4695 .loc 1 2319 15 is_stmt 0 view .LVU1651
4696 0058 A36B ldr r3, [r4, #56]
2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4697 .loc 1 2319 10 view .LVU1652
4698 005a 002B cmp r3, #0
4699 005c 33D0 beq .L312
2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4700 .loc 1 2322 9 is_stmt 1 view .LVU1653
2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4701 .loc 1 2322 40 is_stmt 0 view .LVU1654
4702 005e 364A ldr r2, .L325+8
4703 0060 9A62 str r2, [r3, #40]
2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4704 .loc 1 2325 9 is_stmt 1 view .LVU1655
2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4705 .loc 1 2325 13 is_stmt 0 view .LVU1656
4706 0062 A36B ldr r3, [r4, #56]
ARM GAS /tmp/ccJ8PJrU.s page 242
2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4707 .loc 1 2325 41 view .LVU1657
4708 0064 354A ldr r2, .L325+12
4709 0066 1A63 str r2, [r3, #48]
2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4710 .loc 1 2328 9 is_stmt 1 view .LVU1658
2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4711 .loc 1 2328 13 is_stmt 0 view .LVU1659
4712 0068 A26B ldr r2, [r4, #56]
2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
4713 .loc 1 2328 44 view .LVU1660
4714 006a 0023 movs r3, #0
4715 006c D362 str r3, [r2, #44]
2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4716 .loc 1 2329 9 is_stmt 1 view .LVU1661
2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4717 .loc 1 2329 13 is_stmt 0 view .LVU1662
4718 006e A26B ldr r2, [r4, #56]
2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4719 .loc 1 2329 41 view .LVU1663
4720 0070 5363 str r3, [r2, #52]
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4721 .loc 1 2332 9 is_stmt 1 view .LVU1664
2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
4722 .loc 1 2333 83 is_stmt 0 view .LVU1665
4723 0072 2268 ldr r2, [r4]
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4724 .loc 1 2332 25 view .LVU1666
4725 0074 238D ldrh r3, [r4, #40]
4726 0076 2832 adds r2, r2, #40
4727 0078 616A ldr r1, [r4, #36]
4728 .LVL325:
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4729 .loc 1 2332 25 view .LVU1667
4730 007a A06B ldr r0, [r4, #56]
4731 .LVL326:
2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR,
4732 .loc 1 2332 25 view .LVU1668
4733 007c FFF7FEFF bl HAL_DMA_Start_IT
4734 .LVL327:
2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4735 .loc 1 2351 7 is_stmt 1 view .LVU1669
2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4736 .loc 1 2351 10 is_stmt 0 view .LVU1670
4737 0080 78B3 cbz r0, .L324
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4738 .loc 1 2371 9 is_stmt 1 view .LVU1671
2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4739 .loc 1 2371 25 is_stmt 0 view .LVU1672
4740 0082 2823 movs r3, #40
4741 0084 84F84130 strb r3, [r4, #65]
2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4742 .loc 1 2372 9 is_stmt 1 view .LVU1673
2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4743 .loc 1 2372 25 is_stmt 0 view .LVU1674
4744 0088 0022 movs r2, #0
4745 008a 84F84220 strb r2, [r4, #66]
ARM GAS /tmp/ccJ8PJrU.s page 243
2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4746 .loc 1 2375 9 is_stmt 1 view .LVU1675
2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4747 .loc 1 2375 13 is_stmt 0 view .LVU1676
4748 008e 636C ldr r3, [r4, #68]
2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4749 .loc 1 2375 25 view .LVU1677
4750 0090 43F01003 orr r3, r3, #16
4751 0094 6364 str r3, [r4, #68]
2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4752 .loc 1 2378 9 is_stmt 1 view .LVU1678
2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4753 .loc 1 2378 9 view .LVU1679
4754 0096 84F84020 strb r2, [r4, #64]
2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4755 .loc 1 2378 9 view .LVU1680
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4756 .loc 1 2380 9 view .LVU1681
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4757 .loc 1 2380 16 is_stmt 0 view .LVU1682
4758 009a 0120 movs r0, #1
4759 .LVL328:
2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4760 .loc 1 2380 16 view .LVU1683
4761 009c 03E0 b .L307
4762 .LVL329:
4763 .L308:
2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4764 .loc 1 2286 7 is_stmt 1 view .LVU1684
2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
4765 .loc 1 2286 23 is_stmt 0 view .LVU1685
4766 009e 4FF40073 mov r3, #512
4767 00a2 6364 str r3, [r4, #68]
2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4768 .loc 1 2287 7 is_stmt 1 view .LVU1686
2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4769 .loc 1 2287 15 is_stmt 0 view .LVU1687
4770 00a4 0120 movs r0, #1
4771 .LVL330:
4772 .L307:
2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4773 .loc 1 2404 1 view .LVU1688
4774 00a6 10BD pop {r4, pc}
4775 .LVL331:
4776 .L323:
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4777 .loc 1 2308 7 is_stmt 1 view .LVU1689
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4778 .loc 1 2308 11 is_stmt 0 view .LVU1690
4779 00a8 0368 ldr r3, [r0]
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4780 .loc 1 2308 30 view .LVU1691
4781 00aa 0A78 ldrb r2, [r1] @ zero_extendqisi2
4782 .LVL332:
2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4783 .loc 1 2308 28 view .LVU1692
4784 00ac 9A62 str r2, [r3, #40]
ARM GAS /tmp/ccJ8PJrU.s page 244
2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4785 .loc 1 2311 7 is_stmt 1 view .LVU1693
2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4786 .loc 1 2311 11 is_stmt 0 view .LVU1694
4787 00ae 436A ldr r3, [r0, #36]
2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4788 .loc 1 2311 21 view .LVU1695
4789 00b0 0133 adds r3, r3, #1
4790 00b2 4362 str r3, [r0, #36]
2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4791 .loc 1 2313 7 is_stmt 1 view .LVU1696
2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4792 .loc 1 2313 11 is_stmt 0 view .LVU1697
4793 00b4 438D ldrh r3, [r0, #42]
4794 00b6 9BB2 uxth r3, r3
2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
4795 .loc 1 2313 22 view .LVU1698
4796 00b8 013B subs r3, r3, #1
4797 00ba 9BB2 uxth r3, r3
4798 00bc 4385 strh r3, [r0, #42] @ movhi
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4799 .loc 1 2314 7 is_stmt 1 view .LVU1699
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4800 .loc 1 2314 11 is_stmt 0 view .LVU1700
4801 00be 038D ldrh r3, [r0, #40]
2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4802 .loc 1 2314 21 view .LVU1701
4803 00c0 013B subs r3, r3, #1
4804 00c2 0385 strh r3, [r0, #40] @ movhi
4805 00c4 C4E7 b .L310
4806 .L312:
2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4807 .loc 1 2339 9 is_stmt 1 view .LVU1702
2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
4808 .loc 1 2339 25 is_stmt 0 view .LVU1703
4809 00c6 2823 movs r3, #40
4810 00c8 84F84130 strb r3, [r4, #65]
2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4811 .loc 1 2340 9 is_stmt 1 view .LVU1704
2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4812 .loc 1 2340 25 is_stmt 0 view .LVU1705
4813 00cc 0022 movs r2, #0
4814 00ce 84F84220 strb r2, [r4, #66]
2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4815 .loc 1 2343 9 is_stmt 1 view .LVU1706
2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4816 .loc 1 2343 13 is_stmt 0 view .LVU1707
4817 00d2 636C ldr r3, [r4, #68]
2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4818 .loc 1 2343 25 view .LVU1708
4819 00d4 43F08003 orr r3, r3, #128
4820 00d8 6364 str r3, [r4, #68]
2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4821 .loc 1 2346 9 is_stmt 1 view .LVU1709
2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4822 .loc 1 2346 9 view .LVU1710
4823 00da 84F84020 strb r2, [r4, #64]
ARM GAS /tmp/ccJ8PJrU.s page 245
2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4824 .loc 1 2346 9 view .LVU1711
2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4825 .loc 1 2348 9 view .LVU1712
2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4826 .loc 1 2348 16 is_stmt 0 view .LVU1713
4827 00de 0120 movs r0, #1
4828 .LVL333:
2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4829 .loc 1 2348 16 view .LVU1714
4830 00e0 E1E7 b .L307
4831 .LVL334:
4832 .L324:
2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4833 .loc 1 2354 9 is_stmt 1 view .LVU1715
2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4834 .loc 1 2354 13 is_stmt 0 view .LVU1716
4835 00e2 2268 ldr r2, [r4]
2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4836 .loc 1 2354 23 view .LVU1717
4837 00e4 5368 ldr r3, [r2, #4]
2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4838 .loc 1 2354 29 view .LVU1718
4839 00e6 23F40043 bic r3, r3, #32768
4840 00ea 5360 str r3, [r2, #4]
2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4841 .loc 1 2357 9 is_stmt 1 view .LVU1719
2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4842 .loc 1 2357 9 view .LVU1720
4843 00ec 0023 movs r3, #0
4844 00ee 84F84030 strb r3, [r4, #64]
2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4845 .loc 1 2357 9 view .LVU1721
2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4846 .loc 1 2363 9 view .LVU1722
4847 00f2 4FF40041 mov r1, #32768
4848 00f6 2046 mov r0, r4
4849 .LVL335:
2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4850 .loc 1 2363 9 is_stmt 0 view .LVU1723
4851 00f8 FFF7FEFF bl I2C_Enable_IRQ
4852 .LVL336:
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4853 .loc 1 2366 9 is_stmt 1 view .LVU1724
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4854 .loc 1 2366 13 is_stmt 0 view .LVU1725
4855 00fc 2268 ldr r2, [r4]
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4856 .loc 1 2366 23 view .LVU1726
4857 00fe 1368 ldr r3, [r2]
2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4858 .loc 1 2366 29 view .LVU1727
4859 0100 43F48043 orr r3, r3, #16384
4860 0104 1360 str r3, [r2]
4861 0106 0CE0 b .L315
4862 .LVL337:
4863 .L311:
ARM GAS /tmp/ccJ8PJrU.s page 246
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4864 .loc 1 2386 7 is_stmt 1 view .LVU1728
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4865 .loc 1 2386 11 is_stmt 0 view .LVU1729
4866 0108 2268 ldr r2, [r4]
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4867 .loc 1 2386 21 view .LVU1730
4868 010a 5368 ldr r3, [r2, #4]
2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4869 .loc 1 2386 27 view .LVU1731
4870 010c 23F40043 bic r3, r3, #32768
4871 0110 5360 str r3, [r2, #4]
2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4872 .loc 1 2389 7 is_stmt 1 view .LVU1732
2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4873 .loc 1 2389 7 view .LVU1733
4874 0112 0023 movs r3, #0
4875 0114 84F84030 strb r3, [r4, #64]
2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4876 .loc 1 2389 7 view .LVU1734
2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4877 .loc 1 2395 7 view .LVU1735
4878 0118 4FF40041 mov r1, #32768
4879 .LVL338:
2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4880 .loc 1 2395 7 is_stmt 0 view .LVU1736
4881 011c 2046 mov r0, r4
4882 .LVL339:
2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4883 .loc 1 2395 7 view .LVU1737
4884 011e FFF7FEFF bl I2C_Enable_IRQ
4885 .LVL340:
4886 .L315:
2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4887 .loc 1 2398 5 is_stmt 1 view .LVU1738
2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4888 .loc 1 2398 12 is_stmt 0 view .LVU1739
4889 0122 0020 movs r0, #0
4890 0124 BFE7 b .L307
4891 .LVL341:
4892 .L316:
4893 .cfi_def_cfa_offset 0
4894 .cfi_restore 4
4895 .cfi_restore 14
2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
4896 .loc 1 2402 12 view .LVU1740
4897 0126 0220 movs r0, #2
4898 .LVL342:
2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4899 .loc 1 2404 1 view .LVU1741
4900 0128 7047 bx lr
4901 .LVL343:
4902 .L317:
4903 .cfi_def_cfa_offset 8
4904 .cfi_offset 4, -8
4905 .cfi_offset 14, -4
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 247
4906 .loc 1 2290 5 discriminator 1 view .LVU1742
4907 012a 0220 movs r0, #2
4908 .LVL344:
2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4909 .loc 1 2290 5 discriminator 1 view .LVU1743
4910 012c BBE7 b .L307
4911 .L326:
4912 012e 00BF .align 2
4913 .L325:
4914 0130 0000FFFF .word -65536
4915 0134 00000000 .word I2C_Slave_ISR_DMA
4916 0138 00000000 .word I2C_DMASlaveTransmitCplt
4917 013c 00000000 .word I2C_DMAError
4918 .cfi_endproc
4919 .LFE137:
4921 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits
4922 .align 1
4923 .global HAL_I2C_Slave_Receive_DMA
4924 .syntax unified
4925 .thumb
4926 .thumb_func
4928 HAL_I2C_Slave_Receive_DMA:
4929 .LVL345:
4930 .LFB138:
2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4931 .loc 1 2415 1 is_stmt 1 view -0
4932 .cfi_startproc
4933 @ args = 0, pretend = 0, frame = 0
4934 @ frame_needed = 0, uses_anonymous_args = 0
2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
4935 .loc 1 2415 1 is_stmt 0 view .LVU1745
4936 0000 38B5 push {r3, r4, r5, lr}
4937 .cfi_def_cfa_offset 16
4938 .cfi_offset 3, -16
4939 .cfi_offset 4, -12
4940 .cfi_offset 5, -8
4941 .cfi_offset 14, -4
2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4942 .loc 1 2416 3 is_stmt 1 view .LVU1746
2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4943 .loc 1 2418 3 view .LVU1747
2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4944 .loc 1 2418 11 is_stmt 0 view .LVU1748
4945 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
4946 0006 DBB2 uxtb r3, r3
2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4947 .loc 1 2418 6 view .LVU1749
4948 0008 202B cmp r3, #32
4949 000a 65D1 bne .L334
4950 000c 0446 mov r4, r0
2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4951 .loc 1 2420 5 is_stmt 1 view .LVU1750
2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4952 .loc 1 2420 8 is_stmt 0 view .LVU1751
4953 000e 0029 cmp r1, #0
4954 0010 3CD0 beq .L329
2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 248
4955 .loc 1 2420 25 discriminator 1 view .LVU1752
4956 0012 002A cmp r2, #0
4957 0014 3AD0 beq .L329
2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4958 .loc 1 2426 5 is_stmt 1 view .LVU1753
2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4959 .loc 1 2426 5 view .LVU1754
4960 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
4961 001a 012B cmp r3, #1
4962 001c 5FD0 beq .L335
2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4963 .loc 1 2426 5 discriminator 2 view .LVU1755
4964 001e 0123 movs r3, #1
4965 0020 80F84030 strb r3, [r0, #64]
2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4966 .loc 1 2426 5 discriminator 2 view .LVU1756
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4967 .loc 1 2428 5 view .LVU1757
2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
4968 .loc 1 2428 23 is_stmt 0 view .LVU1758
4969 0024 2223 movs r3, #34
4970 0026 80F84130 strb r3, [r0, #65]
2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4971 .loc 1 2429 5 is_stmt 1 view .LVU1759
2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
4972 .loc 1 2429 23 is_stmt 0 view .LVU1760
4973 002a 2023 movs r3, #32
4974 002c 80F84230 strb r3, [r0, #66]
2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4975 .loc 1 2430 5 is_stmt 1 view .LVU1761
2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4976 .loc 1 2430 23 is_stmt 0 view .LVU1762
4977 0030 0023 movs r3, #0
4978 0032 4364 str r3, [r0, #68]
2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4979 .loc 1 2433 5 is_stmt 1 view .LVU1763
2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
4980 .loc 1 2433 23 is_stmt 0 view .LVU1764
4981 0034 4162 str r1, [r0, #36]
2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4982 .loc 1 2434 5 is_stmt 1 view .LVU1765
2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
4983 .loc 1 2434 23 is_stmt 0 view .LVU1766
4984 0036 4285 strh r2, [r0, #42] @ movhi
2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4985 .loc 1 2435 5 is_stmt 1 view .LVU1767
2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4986 .loc 1 2435 29 is_stmt 0 view .LVU1768
4987 0038 438D ldrh r3, [r0, #42]
2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
4988 .loc 1 2435 23 view .LVU1769
4989 003a 0385 strh r3, [r0, #40] @ movhi
2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4990 .loc 1 2436 5 is_stmt 1 view .LVU1770
2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
4991 .loc 1 2436 23 is_stmt 0 view .LVU1771
4992 003c 294B ldr r3, .L339
ARM GAS /tmp/ccJ8PJrU.s page 249
4993 003e C362 str r3, [r0, #44]
2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4994 .loc 1 2437 5 is_stmt 1 view .LVU1772
2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
4995 .loc 1 2437 23 is_stmt 0 view .LVU1773
4996 0040 294B ldr r3, .L339+4
4997 0042 4363 str r3, [r0, #52]
2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4998 .loc 1 2439 5 is_stmt 1 view .LVU1774
2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
4999 .loc 1 2439 13 is_stmt 0 view .LVU1775
5000 0044 C36B ldr r3, [r0, #60]
2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5001 .loc 1 2439 8 view .LVU1776
5002 0046 33B3 cbz r3, .L331
2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5003 .loc 1 2442 7 is_stmt 1 view .LVU1777
2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5004 .loc 1 2442 38 is_stmt 0 view .LVU1778
5005 0048 284A ldr r2, .L339+8
5006 .LVL346:
2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5007 .loc 1 2442 38 view .LVU1779
5008 004a 9A62 str r2, [r3, #40]
2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5009 .loc 1 2445 7 is_stmt 1 view .LVU1780
2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5010 .loc 1 2445 11 is_stmt 0 view .LVU1781
5011 004c C36B ldr r3, [r0, #60]
2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5012 .loc 1 2445 39 view .LVU1782
5013 004e 284A ldr r2, .L339+12
5014 0050 1A63 str r2, [r3, #48]
2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
5015 .loc 1 2448 7 is_stmt 1 view .LVU1783
2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
5016 .loc 1 2448 11 is_stmt 0 view .LVU1784
5017 0052 C26B ldr r2, [r0, #60]
2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
5018 .loc 1 2448 42 view .LVU1785
5019 0054 0023 movs r3, #0
5020 0056 D362 str r3, [r2, #44]
2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5021 .loc 1 2449 7 is_stmt 1 view .LVU1786
2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5022 .loc 1 2449 11 is_stmt 0 view .LVU1787
5023 0058 C26B ldr r2, [r0, #60]
2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5024 .loc 1 2449 39 view .LVU1788
5025 005a 5363 str r3, [r2, #52]
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
5026 .loc 1 2452 7 is_stmt 1 view .LVU1789
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
5027 .loc 1 2452 69 is_stmt 0 view .LVU1790
5028 005c 0068 ldr r0, [r0]
5029 .LVL347:
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
ARM GAS /tmp/ccJ8PJrU.s page 250
5030 .loc 1 2452 23 view .LVU1791
5031 005e 238D ldrh r3, [r4, #40]
5032 0060 0A46 mov r2, r1
5033 0062 00F12401 add r1, r0, #36
5034 .LVL348:
2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
5035 .loc 1 2452 23 view .LVU1792
5036 0066 E06B ldr r0, [r4, #60]
5037 0068 FFF7FEFF bl HAL_DMA_Start_IT
5038 .LVL349:
2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5039 .loc 1 2470 5 is_stmt 1 view .LVU1793
2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5040 .loc 1 2470 8 is_stmt 0 view .LVU1794
5041 006c 0546 mov r5, r0
5042 006e 00B3 cbz r0, .L338
2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5043 .loc 1 2490 7 is_stmt 1 view .LVU1795
2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5044 .loc 1 2490 23 is_stmt 0 view .LVU1796
5045 0070 2823 movs r3, #40
5046 0072 84F84130 strb r3, [r4, #65]
2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5047 .loc 1 2491 7 is_stmt 1 view .LVU1797
2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5048 .loc 1 2491 23 is_stmt 0 view .LVU1798
5049 0076 0022 movs r2, #0
5050 0078 84F84220 strb r2, [r4, #66]
2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5051 .loc 1 2494 7 is_stmt 1 view .LVU1799
2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5052 .loc 1 2494 11 is_stmt 0 view .LVU1800
5053 007c 636C ldr r3, [r4, #68]
2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5054 .loc 1 2494 23 view .LVU1801
5055 007e 43F01003 orr r3, r3, #16
5056 0082 6364 str r3, [r4, #68]
2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5057 .loc 1 2497 7 is_stmt 1 view .LVU1802
2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5058 .loc 1 2497 7 view .LVU1803
5059 0084 84F84020 strb r2, [r4, #64]
2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5060 .loc 1 2497 7 view .LVU1804
2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5061 .loc 1 2499 7 view .LVU1805
2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5062 .loc 1 2499 14 is_stmt 0 view .LVU1806
5063 0088 0125 movs r5, #1
5064 008a 26E0 b .L328
5065 .LVL350:
5066 .L329:
2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5067 .loc 1 2422 7 is_stmt 1 view .LVU1807
2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5068 .loc 1 2422 23 is_stmt 0 view .LVU1808
5069 008c 4FF40073 mov r3, #512
ARM GAS /tmp/ccJ8PJrU.s page 251
5070 0090 6364 str r3, [r4, #68]
2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5071 .loc 1 2423 7 is_stmt 1 view .LVU1809
2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5072 .loc 1 2423 15 is_stmt 0 view .LVU1810
5073 0092 0125 movs r5, #1
5074 0094 21E0 b .L328
5075 .L331:
2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5076 .loc 1 2458 7 is_stmt 1 view .LVU1811
2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5077 .loc 1 2458 23 is_stmt 0 view .LVU1812
5078 0096 2823 movs r3, #40
5079 0098 80F84130 strb r3, [r0, #65]
2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5080 .loc 1 2459 7 is_stmt 1 view .LVU1813
2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5081 .loc 1 2459 23 is_stmt 0 view .LVU1814
5082 009c 0022 movs r2, #0
5083 .LVL351:
2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5084 .loc 1 2459 23 view .LVU1815
5085 009e 80F84220 strb r2, [r0, #66]
2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5086 .loc 1 2462 7 is_stmt 1 view .LVU1816
2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5087 .loc 1 2462 11 is_stmt 0 view .LVU1817
5088 00a2 436C ldr r3, [r0, #68]
2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5089 .loc 1 2462 23 view .LVU1818
5090 00a4 43F08003 orr r3, r3, #128
5091 00a8 4364 str r3, [r0, #68]
2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5092 .loc 1 2465 7 is_stmt 1 view .LVU1819
2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5093 .loc 1 2465 7 view .LVU1820
5094 00aa 80F84020 strb r2, [r0, #64]
2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5095 .loc 1 2465 7 view .LVU1821
2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5096 .loc 1 2467 7 view .LVU1822
2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5097 .loc 1 2467 14 is_stmt 0 view .LVU1823
5098 00ae 0125 movs r5, #1
5099 00b0 13E0 b .L328
5100 .LVL352:
5101 .L338:
2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5102 .loc 1 2473 7 is_stmt 1 view .LVU1824
2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5103 .loc 1 2473 11 is_stmt 0 view .LVU1825
5104 00b2 2268 ldr r2, [r4]
2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5105 .loc 1 2473 21 view .LVU1826
5106 00b4 5368 ldr r3, [r2, #4]
2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5107 .loc 1 2473 27 view .LVU1827
ARM GAS /tmp/ccJ8PJrU.s page 252
5108 00b6 23F40043 bic r3, r3, #32768
5109 00ba 5360 str r3, [r2, #4]
2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5110 .loc 1 2476 7 is_stmt 1 view .LVU1828
2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5111 .loc 1 2476 7 view .LVU1829
5112 00bc 0023 movs r3, #0
5113 00be 84F84030 strb r3, [r4, #64]
2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5114 .loc 1 2476 7 view .LVU1830
2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5115 .loc 1 2482 7 view .LVU1831
5116 00c2 4FF40041 mov r1, #32768
5117 00c6 2046 mov r0, r4
5118 .LVL353:
2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5119 .loc 1 2482 7 is_stmt 0 view .LVU1832
5120 00c8 FFF7FEFF bl I2C_Enable_IRQ
5121 .LVL354:
2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5122 .loc 1 2485 7 is_stmt 1 view .LVU1833
2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5123 .loc 1 2485 11 is_stmt 0 view .LVU1834
5124 00cc 2268 ldr r2, [r4]
2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5125 .loc 1 2485 21 view .LVU1835
5126 00ce 1368 ldr r3, [r2]
2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5127 .loc 1 2485 27 view .LVU1836
5128 00d0 43F40043 orr r3, r3, #32768
5129 00d4 1360 str r3, [r2]
2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5130 .loc 1 2502 5 is_stmt 1 view .LVU1837
2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5131 .loc 1 2502 12 is_stmt 0 view .LVU1838
5132 00d6 00E0 b .L328
5133 .LVL355:
5134 .L334:
2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5135 .loc 1 2506 12 view .LVU1839
5136 00d8 0225 movs r5, #2
5137 .LVL356:
5138 .L328:
2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5139 .loc 1 2508 1 view .LVU1840
5140 00da 2846 mov r0, r5
5141 00dc 38BD pop {r3, r4, r5, pc}
5142 .LVL357:
5143 .L335:
2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5144 .loc 1 2426 5 discriminator 1 view .LVU1841
5145 00de 0225 movs r5, #2
5146 00e0 FBE7 b .L328
5147 .L340:
5148 00e2 00BF .align 2
5149 .L339:
5150 00e4 0000FFFF .word -65536
ARM GAS /tmp/ccJ8PJrU.s page 253
5151 00e8 00000000 .word I2C_Slave_ISR_DMA
5152 00ec 00000000 .word I2C_DMASlaveReceiveCplt
5153 00f0 00000000 .word I2C_DMAError
5154 .cfi_endproc
5155 .LFE138:
5157 .section .text.HAL_I2C_Mem_Write,"ax",%progbits
5158 .align 1
5159 .global HAL_I2C_Mem_Write
5160 .syntax unified
5161 .thumb
5162 .thumb_func
5164 HAL_I2C_Mem_Write:
5165 .LVL358:
5166 .LFB139:
2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5167 .loc 1 2525 1 is_stmt 1 view -0
5168 .cfi_startproc
5169 @ args = 12, pretend = 0, frame = 0
5170 @ frame_needed = 0, uses_anonymous_args = 0
2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5171 .loc 1 2525 1 is_stmt 0 view .LVU1843
5172 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5173 .cfi_def_cfa_offset 36
5174 .cfi_offset 4, -36
5175 .cfi_offset 5, -32
5176 .cfi_offset 6, -28
5177 .cfi_offset 7, -24
5178 .cfi_offset 8, -20
5179 .cfi_offset 9, -16
5180 .cfi_offset 10, -12
5181 .cfi_offset 11, -8
5182 .cfi_offset 14, -4
5183 0004 83B0 sub sp, sp, #12
5184 .cfi_def_cfa_offset 48
5185 0006 0E46 mov r6, r1
5186 0008 BDF834A0 ldrh r10, [sp, #52]
5187 000c 0E9D ldr r5, [sp, #56]
2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5188 .loc 1 2526 3 is_stmt 1 view .LVU1844
2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5189 .loc 1 2529 3 view .LVU1845
2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5190 .loc 1 2531 3 view .LVU1846
2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5191 .loc 1 2531 11 is_stmt 0 view .LVU1847
5192 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
5193 .LVL359:
2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5194 .loc 1 2531 11 view .LVU1848
5195 0012 C9B2 uxtb r1, r1
2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5196 .loc 1 2531 6 view .LVU1849
5197 0014 2029 cmp r1, #32
5198 0016 40F0BB80 bne .L351
5199 001a 0446 mov r4, r0
5200 001c 9046 mov r8, r2
5201 001e 9946 mov r9, r3
ARM GAS /tmp/ccJ8PJrU.s page 254
2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5202 .loc 1 2533 5 is_stmt 1 view .LVU1850
2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5203 .loc 1 2533 8 is_stmt 0 view .LVU1851
5204 0020 0C9B ldr r3, [sp, #48]
5205 .LVL360:
2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5206 .loc 1 2533 8 view .LVU1852
5207 0022 CBB1 cbz r3, .L343
2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5208 .loc 1 2533 25 discriminator 1 view .LVU1853
5209 0024 BAF1000F cmp r10, #0
5210 0028 16D0 beq .L343
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5211 .loc 1 2540 5 is_stmt 1 view .LVU1854
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5212 .loc 1 2540 5 view .LVU1855
5213 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
5214 002e 012B cmp r3, #1
5215 0030 00F0B280 beq .L352
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5216 .loc 1 2540 5 discriminator 2 view .LVU1856
5217 0034 4FF0010B mov fp, #1
5218 0038 80F840B0 strb fp, [r0, #64]
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5219 .loc 1 2540 5 discriminator 2 view .LVU1857
2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5220 .loc 1 2543 5 view .LVU1858
2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5221 .loc 1 2543 17 is_stmt 0 view .LVU1859
5222 003c FFF7FEFF bl HAL_GetTick
5223 .LVL361:
2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5224 .loc 1 2543 17 view .LVU1860
5225 0040 0746 mov r7, r0
5226 .LVL362:
2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5227 .loc 1 2545 5 is_stmt 1 view .LVU1861
2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5228 .loc 1 2545 9 is_stmt 0 view .LVU1862
5229 0042 0090 str r0, [sp]
5230 0044 1923 movs r3, #25
5231 0046 5A46 mov r2, fp
5232 0048 4FF40041 mov r1, #32768
5233 004c 2046 mov r0, r4
5234 .LVL363:
2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5235 .loc 1 2545 9 view .LVU1863
5236 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5237 .LVL364:
2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5238 .loc 1 2545 8 discriminator 1 view .LVU1864
5239 0052 30B1 cbz r0, .L358
2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5240 .loc 1 2547 14 view .LVU1865
5241 0054 0120 movs r0, #1
5242 0056 9CE0 b .L342
ARM GAS /tmp/ccJ8PJrU.s page 255
5243 .LVL365:
5244 .L343:
2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5245 .loc 1 2535 7 is_stmt 1 view .LVU1866
2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5246 .loc 1 2535 23 is_stmt 0 view .LVU1867
5247 0058 4FF40073 mov r3, #512
5248 005c 6364 str r3, [r4, #68]
2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5249 .loc 1 2536 7 is_stmt 1 view .LVU1868
2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5250 .loc 1 2536 15 is_stmt 0 view .LVU1869
5251 005e 0120 movs r0, #1
5252 .LVL366:
2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5253 .loc 1 2536 15 view .LVU1870
5254 0060 97E0 b .L342
5255 .LVL367:
5256 .L358:
2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5257 .loc 1 2550 5 is_stmt 1 view .LVU1871
2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5258 .loc 1 2550 21 is_stmt 0 view .LVU1872
5259 0062 2123 movs r3, #33
5260 0064 84F84130 strb r3, [r4, #65]
2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5261 .loc 1 2551 5 is_stmt 1 view .LVU1873
2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5262 .loc 1 2551 21 is_stmt 0 view .LVU1874
5263 0068 4023 movs r3, #64
5264 006a 84F84230 strb r3, [r4, #66]
2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5265 .loc 1 2552 5 is_stmt 1 view .LVU1875
2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5266 .loc 1 2552 21 is_stmt 0 view .LVU1876
5267 006e 0023 movs r3, #0
5268 0070 6364 str r3, [r4, #68]
2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5269 .loc 1 2555 5 is_stmt 1 view .LVU1877
2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5270 .loc 1 2555 21 is_stmt 0 view .LVU1878
5271 0072 0C9A ldr r2, [sp, #48]
5272 0074 6262 str r2, [r4, #36]
2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
5273 .loc 1 2556 5 is_stmt 1 view .LVU1879
2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
5274 .loc 1 2556 21 is_stmt 0 view .LVU1880
5275 0076 A4F82AA0 strh r10, [r4, #42] @ movhi
2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5276 .loc 1 2557 5 is_stmt 1 view .LVU1881
2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5277 .loc 1 2557 21 is_stmt 0 view .LVU1882
5278 007a 6363 str r3, [r4, #52]
2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5279 .loc 1 2560 5 is_stmt 1 view .LVU1883
2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5280 .loc 1 2560 9 is_stmt 0 view .LVU1884
ARM GAS /tmp/ccJ8PJrU.s page 256
5281 007c 0197 str r7, [sp, #4]
5282 007e 0095 str r5, [sp]
5283 0080 4B46 mov r3, r9
5284 0082 4246 mov r2, r8
5285 0084 3146 mov r1, r6
5286 0086 2046 mov r0, r4
5287 0088 FFF7FEFF bl I2C_RequestMemoryWrite
5288 .LVL368:
2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5289 .loc 1 2560 8 discriminator 1 view .LVU1885
5290 008c 70B9 cbnz r0, .L359
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5291 .loc 1 2568 5 is_stmt 1 view .LVU1886
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5292 .loc 1 2568 13 is_stmt 0 view .LVU1887
5293 008e 638D ldrh r3, [r4, #42]
5294 0090 9BB2 uxth r3, r3
2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5295 .loc 1 2568 8 view .LVU1888
5296 0092 FF2B cmp r3, #255
5297 0094 0FD9 bls .L346
2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
5298 .loc 1 2570 7 is_stmt 1 view .LVU1889
2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST
5299 .loc 1 2570 22 is_stmt 0 view .LVU1890
5300 0096 FF22 movs r2, #255
5301 0098 2285 strh r2, [r4, #40] @ movhi
2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5302 .loc 1 2571 7 is_stmt 1 view .LVU1891
5303 009a 0023 movs r3, #0
5304 009c 0093 str r3, [sp]
5305 009e 4FF08073 mov r3, #16777216
5306 00a2 3146 mov r1, r6
5307 00a4 2046 mov r0, r4
5308 00a6 FFF7FEFF bl I2C_TransferConfig
5309 .LVL369:
5310 00aa 21E0 b .L350
5311 .L359:
2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5312 .loc 1 2563 7 view .LVU1892
2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5313 .loc 1 2563 7 view .LVU1893
5314 00ac 0023 movs r3, #0
5315 00ae 84F84030 strb r3, [r4, #64]
2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5316 .loc 1 2563 7 view .LVU1894
2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5317 .loc 1 2564 7 view .LVU1895
2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5318 .loc 1 2564 14 is_stmt 0 view .LVU1896
5319 00b2 5846 mov r0, fp
5320 00b4 6DE0 b .L342
5321 .L346:
2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
5322 .loc 1 2575 7 is_stmt 1 view .LVU1897
2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
5323 .loc 1 2575 28 is_stmt 0 view .LVU1898
ARM GAS /tmp/ccJ8PJrU.s page 257
5324 00b6 628D ldrh r2, [r4, #42]
5325 00b8 92B2 uxth r2, r2
2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS
5326 .loc 1 2575 22 view .LVU1899
5327 00ba 2285 strh r2, [r4, #40] @ movhi
2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5328 .loc 1 2576 7 is_stmt 1 view .LVU1900
5329 00bc 0023 movs r3, #0
5330 00be 0093 str r3, [sp]
5331 00c0 4FF00073 mov r3, #33554432
5332 00c4 D2B2 uxtb r2, r2
5333 00c6 3146 mov r1, r6
5334 00c8 2046 mov r0, r4
5335 00ca FFF7FEFF bl I2C_TransferConfig
5336 .LVL370:
5337 00ce 0FE0 b .L350
5338 .L349:
2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5339 .loc 1 2612 11 view .LVU1901
2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5340 .loc 1 2612 32 is_stmt 0 view .LVU1902
5341 00d0 628D ldrh r2, [r4, #42]
5342 00d2 92B2 uxth r2, r2
2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5343 .loc 1 2612 26 view .LVU1903
5344 00d4 2285 strh r2, [r4, #40] @ movhi
2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5345 .loc 1 2613 11 is_stmt 1 view .LVU1904
5346 00d6 0023 movs r3, #0
5347 00d8 0093 str r3, [sp]
5348 00da 4FF00073 mov r3, #33554432
5349 00de D2B2 uxtb r2, r2
5350 00e0 3146 mov r1, r6
5351 00e2 2046 mov r0, r4
5352 00e4 FFF7FEFF bl I2C_TransferConfig
5353 .LVL371:
5354 .L348:
2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5355 .loc 1 2618 30 view .LVU1905
2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5356 .loc 1 2618 18 is_stmt 0 view .LVU1906
5357 00e8 638D ldrh r3, [r4, #42]
5358 00ea 9BB2 uxth r3, r3
2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5359 .loc 1 2618 30 view .LVU1907
5360 00ec 002B cmp r3, #0
5361 00ee 33D0 beq .L360
5362 .L350:
2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5363 .loc 1 2579 5 is_stmt 1 view .LVU1908
2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5364 .loc 1 2582 7 view .LVU1909
2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5365 .loc 1 2582 11 is_stmt 0 view .LVU1910
5366 00f0 3A46 mov r2, r7
5367 00f2 2946 mov r1, r5
5368 00f4 2046 mov r0, r4
ARM GAS /tmp/ccJ8PJrU.s page 258
5369 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout
5370 .LVL372:
2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5371 .loc 1 2582 10 discriminator 1 view .LVU1911
5372 00fa 0028 cmp r0, #0
5373 00fc 4ED1 bne .L354
2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5374 .loc 1 2588 7 is_stmt 1 view .LVU1912
2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5375 .loc 1 2588 35 is_stmt 0 view .LVU1913
5376 00fe 626A ldr r2, [r4, #36]
2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5377 .loc 1 2588 11 view .LVU1914
5378 0100 2368 ldr r3, [r4]
2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5379 .loc 1 2588 30 view .LVU1915
5380 0102 1278 ldrb r2, [r2] @ zero_extendqisi2
2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5381 .loc 1 2588 28 view .LVU1916
5382 0104 9A62 str r2, [r3, #40]
2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5383 .loc 1 2591 7 is_stmt 1 view .LVU1917
2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5384 .loc 1 2591 11 is_stmt 0 view .LVU1918
5385 0106 636A ldr r3, [r4, #36]
2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5386 .loc 1 2591 21 view .LVU1919
5387 0108 0133 adds r3, r3, #1
5388 010a 6362 str r3, [r4, #36]
2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
5389 .loc 1 2593 7 is_stmt 1 view .LVU1920
2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
5390 .loc 1 2593 11 is_stmt 0 view .LVU1921
5391 010c 638D ldrh r3, [r4, #42]
5392 010e 9BB2 uxth r3, r3
2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
5393 .loc 1 2593 22 view .LVU1922
5394 0110 013B subs r3, r3, #1
5395 0112 9BB2 uxth r3, r3
5396 0114 6385 strh r3, [r4, #42] @ movhi
2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5397 .loc 1 2594 7 is_stmt 1 view .LVU1923
2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5398 .loc 1 2594 11 is_stmt 0 view .LVU1924
5399 0116 238D ldrh r3, [r4, #40]
2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5400 .loc 1 2594 21 view .LVU1925
5401 0118 013B subs r3, r3, #1
5402 011a 9BB2 uxth r3, r3
5403 011c 2385 strh r3, [r4, #40] @ movhi
2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5404 .loc 1 2596 7 is_stmt 1 view .LVU1926
2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5405 .loc 1 2596 16 is_stmt 0 view .LVU1927
5406 011e 628D ldrh r2, [r4, #42]
5407 0120 92B2 uxth r2, r2
2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 259
5408 .loc 1 2596 10 view .LVU1928
5409 0122 002A cmp r2, #0
5410 0124 E0D0 beq .L348
2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5411 .loc 1 2596 35 discriminator 1 view .LVU1929
5412 0126 002B cmp r3, #0
5413 0128 DED1 bne .L348
2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5414 .loc 1 2599 9 is_stmt 1 view .LVU1930
2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5415 .loc 1 2599 13 is_stmt 0 view .LVU1931
5416 012a 0097 str r7, [sp]
5417 012c 2B46 mov r3, r5
5418 012e 0022 movs r2, #0
5419 0130 8021 movs r1, #128
5420 0132 2046 mov r0, r4
5421 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5422 .LVL373:
2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5423 .loc 1 2599 12 discriminator 1 view .LVU1932
5424 0138 90BB cbnz r0, .L355
2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5425 .loc 1 2604 9 is_stmt 1 view .LVU1933
2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5426 .loc 1 2604 17 is_stmt 0 view .LVU1934
5427 013a 638D ldrh r3, [r4, #42]
5428 013c 9BB2 uxth r3, r3
2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5429 .loc 1 2604 12 view .LVU1935
5430 013e FF2B cmp r3, #255
5431 0140 C6D9 bls .L349
2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5432 .loc 1 2606 11 is_stmt 1 view .LVU1936
2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5433 .loc 1 2606 26 is_stmt 0 view .LVU1937
5434 0142 FF22 movs r2, #255
5435 0144 2285 strh r2, [r4, #40] @ movhi
2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5436 .loc 1 2607 11 is_stmt 1 view .LVU1938
5437 0146 0023 movs r3, #0
5438 0148 0093 str r3, [sp]
5439 014a 4FF08073 mov r3, #16777216
5440 014e 3146 mov r1, r6
5441 0150 2046 mov r0, r4
5442 0152 FFF7FEFF bl I2C_TransferConfig
5443 .LVL374:
5444 0156 C7E7 b .L348
5445 .L360:
2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5446 .loc 1 2622 5 view .LVU1939
2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5447 .loc 1 2622 9 is_stmt 0 view .LVU1940
5448 0158 3A46 mov r2, r7
5449 015a 2946 mov r1, r5
5450 015c 2046 mov r0, r4
5451 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
5452 .LVL375:
ARM GAS /tmp/ccJ8PJrU.s page 260
2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5453 .loc 1 2622 8 discriminator 1 view .LVU1941
5454 0162 F8B9 cbnz r0, .L356
2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5455 .loc 1 2628 5 is_stmt 1 view .LVU1942
5456 0164 2368 ldr r3, [r4]
5457 0166 2022 movs r2, #32
5458 0168 DA61 str r2, [r3, #28]
2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5459 .loc 1 2631 5 view .LVU1943
5460 016a 2168 ldr r1, [r4]
5461 016c 4B68 ldr r3, [r1, #4]
5462 016e 23F0FF73 bic r3, r3, #33423360
5463 0172 23F48B33 bic r3, r3, #71168
5464 0176 23F4FF73 bic r3, r3, #510
5465 017a 23F00103 bic r3, r3, #1
5466 017e 4B60 str r3, [r1, #4]
2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5467 .loc 1 2633 5 view .LVU1944
2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5468 .loc 1 2633 17 is_stmt 0 view .LVU1945
5469 0180 84F84120 strb r2, [r4, #65]
2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5470 .loc 1 2634 5 is_stmt 1 view .LVU1946
2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5471 .loc 1 2634 17 is_stmt 0 view .LVU1947
5472 0184 0023 movs r3, #0
5473 0186 84F84230 strb r3, [r4, #66]
2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5474 .loc 1 2637 5 is_stmt 1 view .LVU1948
2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5475 .loc 1 2637 5 view .LVU1949
5476 018a 84F84030 strb r3, [r4, #64]
2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5477 .loc 1 2637 5 view .LVU1950
2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5478 .loc 1 2639 5 view .LVU1951
2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5479 .loc 1 2639 12 is_stmt 0 view .LVU1952
5480 018e 00E0 b .L342
5481 .LVL376:
5482 .L351:
2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5483 .loc 1 2643 12 view .LVU1953
5484 0190 0220 movs r0, #2
5485 .LVL377:
5486 .L342:
2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5487 .loc 1 2645 1 view .LVU1954
5488 0192 03B0 add sp, sp, #12
5489 .cfi_remember_state
5490 .cfi_def_cfa_offset 36
5491 @ sp needed
5492 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5493 .LVL378:
5494 .L352:
5495 .cfi_restore_state
ARM GAS /tmp/ccJ8PJrU.s page 261
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5496 .loc 1 2540 5 discriminator 1 view .LVU1955
5497 0198 0220 movs r0, #2
5498 .LVL379:
2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5499 .loc 1 2540 5 discriminator 1 view .LVU1956
5500 019a FAE7 b .L342
5501 .LVL380:
5502 .L354:
2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5503 .loc 1 2584 16 view .LVU1957
5504 019c 0120 movs r0, #1
5505 019e F8E7 b .L342
5506 .L355:
2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5507 .loc 1 2601 18 view .LVU1958
5508 01a0 0120 movs r0, #1
5509 01a2 F6E7 b .L342
5510 .L356:
2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5511 .loc 1 2624 14 view .LVU1959
5512 01a4 0120 movs r0, #1
5513 01a6 F4E7 b .L342
5514 .cfi_endproc
5515 .LFE139:
5517 .section .text.HAL_I2C_Mem_Read,"ax",%progbits
5518 .align 1
5519 .global HAL_I2C_Mem_Read
5520 .syntax unified
5521 .thumb
5522 .thumb_func
5524 HAL_I2C_Mem_Read:
5525 .LVL381:
5526 .LFB140:
2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5527 .loc 1 2662 1 is_stmt 1 view -0
5528 .cfi_startproc
5529 @ args = 12, pretend = 0, frame = 0
5530 @ frame_needed = 0, uses_anonymous_args = 0
2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
5531 .loc 1 2662 1 is_stmt 0 view .LVU1961
5532 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5533 .cfi_def_cfa_offset 36
5534 .cfi_offset 4, -36
5535 .cfi_offset 5, -32
5536 .cfi_offset 6, -28
5537 .cfi_offset 7, -24
5538 .cfi_offset 8, -20
5539 .cfi_offset 9, -16
5540 .cfi_offset 10, -12
5541 .cfi_offset 11, -8
5542 .cfi_offset 14, -4
5543 0004 83B0 sub sp, sp, #12
5544 .cfi_def_cfa_offset 48
5545 0006 0E46 mov r6, r1
5546 0008 BDF834A0 ldrh r10, [sp, #52]
5547 000c 0E9D ldr r5, [sp, #56]
ARM GAS /tmp/ccJ8PJrU.s page 262
2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5548 .loc 1 2663 3 is_stmt 1 view .LVU1962
2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5549 .loc 1 2666 3 view .LVU1963
2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5550 .loc 1 2668 3 view .LVU1964
2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5551 .loc 1 2668 11 is_stmt 0 view .LVU1965
5552 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2
5553 .LVL382:
2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5554 .loc 1 2668 11 view .LVU1966
5555 0012 C9B2 uxtb r1, r1
2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5556 .loc 1 2668 6 view .LVU1967
5557 0014 2029 cmp r1, #32
5558 0016 40F0BC80 bne .L371
5559 001a 0446 mov r4, r0
5560 001c 9046 mov r8, r2
5561 001e 9946 mov r9, r3
2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5562 .loc 1 2670 5 is_stmt 1 view .LVU1968
2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5563 .loc 1 2670 8 is_stmt 0 view .LVU1969
5564 0020 0C9B ldr r3, [sp, #48]
5565 .LVL383:
2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5566 .loc 1 2670 8 view .LVU1970
5567 0022 CBB1 cbz r3, .L363
2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5568 .loc 1 2670 25 discriminator 1 view .LVU1971
5569 0024 BAF1000F cmp r10, #0
5570 0028 16D0 beq .L363
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5571 .loc 1 2677 5 is_stmt 1 view .LVU1972
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5572 .loc 1 2677 5 view .LVU1973
5573 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
5574 002e 012B cmp r3, #1
5575 0030 00F0B380 beq .L372
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5576 .loc 1 2677 5 discriminator 2 view .LVU1974
5577 0034 4FF0010B mov fp, #1
5578 0038 80F840B0 strb fp, [r0, #64]
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5579 .loc 1 2677 5 discriminator 2 view .LVU1975
2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5580 .loc 1 2680 5 view .LVU1976
2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5581 .loc 1 2680 17 is_stmt 0 view .LVU1977
5582 003c FFF7FEFF bl HAL_GetTick
5583 .LVL384:
2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5584 .loc 1 2680 17 view .LVU1978
5585 0040 0746 mov r7, r0
5586 .LVL385:
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 263
5587 .loc 1 2682 5 is_stmt 1 view .LVU1979
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5588 .loc 1 2682 9 is_stmt 0 view .LVU1980
5589 0042 0090 str r0, [sp]
5590 0044 1923 movs r3, #25
5591 0046 5A46 mov r2, fp
5592 0048 4FF40041 mov r1, #32768
5593 004c 2046 mov r0, r4
5594 .LVL386:
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5595 .loc 1 2682 9 view .LVU1981
5596 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5597 .LVL387:
2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5598 .loc 1 2682 8 discriminator 1 view .LVU1982
5599 0052 30B1 cbz r0, .L378
2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5600 .loc 1 2684 14 view .LVU1983
5601 0054 0120 movs r0, #1
5602 0056 9DE0 b .L362
5603 .LVL388:
5604 .L363:
2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5605 .loc 1 2672 7 is_stmt 1 view .LVU1984
2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5606 .loc 1 2672 23 is_stmt 0 view .LVU1985
5607 0058 4FF40073 mov r3, #512
5608 005c 6364 str r3, [r4, #68]
2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5609 .loc 1 2673 7 is_stmt 1 view .LVU1986
2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5610 .loc 1 2673 15 is_stmt 0 view .LVU1987
5611 005e 0120 movs r0, #1
5612 .LVL389:
2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5613 .loc 1 2673 15 view .LVU1988
5614 0060 98E0 b .L362
5615 .LVL390:
5616 .L378:
2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5617 .loc 1 2687 5 is_stmt 1 view .LVU1989
2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5618 .loc 1 2687 21 is_stmt 0 view .LVU1990
5619 0062 2223 movs r3, #34
5620 0064 84F84130 strb r3, [r4, #65]
2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5621 .loc 1 2688 5 is_stmt 1 view .LVU1991
2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5622 .loc 1 2688 21 is_stmt 0 view .LVU1992
5623 0068 4023 movs r3, #64
5624 006a 84F84230 strb r3, [r4, #66]
2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5625 .loc 1 2689 5 is_stmt 1 view .LVU1993
2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5626 .loc 1 2689 21 is_stmt 0 view .LVU1994
5627 006e 0023 movs r3, #0
5628 0070 6364 str r3, [r4, #68]
ARM GAS /tmp/ccJ8PJrU.s page 264
2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5629 .loc 1 2692 5 is_stmt 1 view .LVU1995
2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5630 .loc 1 2692 21 is_stmt 0 view .LVU1996
5631 0072 0C9A ldr r2, [sp, #48]
5632 0074 6262 str r2, [r4, #36]
2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
5633 .loc 1 2693 5 is_stmt 1 view .LVU1997
2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
5634 .loc 1 2693 21 is_stmt 0 view .LVU1998
5635 0076 A4F82AA0 strh r10, [r4, #42] @ movhi
2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5636 .loc 1 2694 5 is_stmt 1 view .LVU1999
2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5637 .loc 1 2694 21 is_stmt 0 view .LVU2000
5638 007a 6363 str r3, [r4, #52]
2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5639 .loc 1 2697 5 is_stmt 1 view .LVU2001
2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5640 .loc 1 2697 9 is_stmt 0 view .LVU2002
5641 007c 0197 str r7, [sp, #4]
5642 007e 0095 str r5, [sp]
5643 0080 4B46 mov r3, r9
5644 0082 4246 mov r2, r8
5645 0084 3146 mov r1, r6
5646 0086 2046 mov r0, r4
5647 0088 FFF7FEFF bl I2C_RequestMemoryRead
5648 .LVL391:
2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5649 .loc 1 2697 8 discriminator 1 view .LVU2003
5650 008c 70B9 cbnz r0, .L379
2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5651 .loc 1 2706 5 is_stmt 1 view .LVU2004
2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5652 .loc 1 2706 13 is_stmt 0 view .LVU2005
5653 008e 638D ldrh r3, [r4, #42]
5654 0090 9BB2 uxth r3, r3
2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5655 .loc 1 2706 8 view .LVU2006
5656 0092 FF2B cmp r3, #255
5657 0094 0FD9 bls .L366
2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5658 .loc 1 2708 7 is_stmt 1 view .LVU2007
2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE,
5659 .loc 1 2708 22 is_stmt 0 view .LVU2008
5660 0096 0122 movs r2, #1
5661 0098 2285 strh r2, [r4, #40] @ movhi
2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
5662 .loc 1 2709 7 is_stmt 1 view .LVU2009
5663 009a 444B ldr r3, .L381
5664 009c 0093 str r3, [sp]
5665 009e 4FF08073 mov r3, #16777216
5666 00a2 3146 mov r1, r6
5667 00a4 2046 mov r0, r4
5668 00a6 FFF7FEFF bl I2C_TransferConfig
5669 .LVL392:
5670 00aa 21E0 b .L370
ARM GAS /tmp/ccJ8PJrU.s page 265
5671 .L379:
2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5672 .loc 1 2700 7 view .LVU2010
2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5673 .loc 1 2700 7 view .LVU2011
5674 00ac 0023 movs r3, #0
5675 00ae 84F84030 strb r3, [r4, #64]
2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
5676 .loc 1 2700 7 view .LVU2012
2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5677 .loc 1 2701 7 view .LVU2013
2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5678 .loc 1 2701 14 is_stmt 0 view .LVU2014
5679 00b2 5846 mov r0, fp
5680 00b4 6EE0 b .L362
5681 .L366:
2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5682 .loc 1 2714 7 is_stmt 1 view .LVU2015
2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5683 .loc 1 2714 28 is_stmt 0 view .LVU2016
5684 00b6 628D ldrh r2, [r4, #42]
5685 00b8 92B2 uxth r2, r2
2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5686 .loc 1 2714 22 view .LVU2017
5687 00ba 2285 strh r2, [r4, #40] @ movhi
2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
5688 .loc 1 2715 7 is_stmt 1 view .LVU2018
5689 00bc 3B4B ldr r3, .L381
5690 00be 0093 str r3, [sp]
5691 00c0 4FF00073 mov r3, #33554432
5692 00c4 D2B2 uxtb r2, r2
5693 00c6 3146 mov r1, r6
5694 00c8 2046 mov r0, r4
5695 00ca FFF7FEFF bl I2C_TransferConfig
5696 .LVL393:
5697 00ce 0FE0 b .L370
5698 .L369:
2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5699 .loc 1 2752 11 view .LVU2019
2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5700 .loc 1 2752 32 is_stmt 0 view .LVU2020
5701 00d0 628D ldrh r2, [r4, #42]
5702 00d2 92B2 uxth r2, r2
2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE,
5703 .loc 1 2752 26 view .LVU2021
5704 00d4 2285 strh r2, [r4, #40] @ movhi
2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5705 .loc 1 2753 11 is_stmt 1 view .LVU2022
5706 00d6 0023 movs r3, #0
5707 00d8 0093 str r3, [sp]
5708 00da 4FF00073 mov r3, #33554432
5709 00de D2B2 uxtb r2, r2
5710 00e0 3146 mov r1, r6
5711 00e2 2046 mov r0, r4
5712 00e4 FFF7FEFF bl I2C_TransferConfig
5713 .LVL394:
5714 .L368:
ARM GAS /tmp/ccJ8PJrU.s page 266
2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5715 .loc 1 2757 30 view .LVU2023
2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5716 .loc 1 2757 18 is_stmt 0 view .LVU2024
5717 00e8 638D ldrh r3, [r4, #42]
5718 00ea 9BB2 uxth r3, r3
2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5719 .loc 1 2757 30 view .LVU2025
5720 00ec 002B cmp r3, #0
5721 00ee 34D0 beq .L380
5722 .L370:
2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5723 .loc 1 2719 5 is_stmt 1 view .LVU2026
2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5724 .loc 1 2722 7 view .LVU2027
2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5725 .loc 1 2722 11 is_stmt 0 view .LVU2028
5726 00f0 0097 str r7, [sp]
5727 00f2 2B46 mov r3, r5
5728 00f4 0022 movs r2, #0
5729 00f6 0421 movs r1, #4
5730 00f8 2046 mov r0, r4
5731 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5732 .LVL395:
2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5733 .loc 1 2722 10 discriminator 1 view .LVU2029
5734 00fe 0028 cmp r0, #0
5735 0100 4DD1 bne .L374
2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5736 .loc 1 2728 7 is_stmt 1 view .LVU2030
2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5737 .loc 1 2728 38 is_stmt 0 view .LVU2031
5738 0102 2368 ldr r3, [r4]
2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5739 .loc 1 2728 48 view .LVU2032
5740 0104 5A6A ldr r2, [r3, #36]
2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5741 .loc 1 2728 12 view .LVU2033
5742 0106 636A ldr r3, [r4, #36]
2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5743 .loc 1 2728 23 view .LVU2034
5744 0108 1A70 strb r2, [r3]
2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5745 .loc 1 2731 7 is_stmt 1 view .LVU2035
2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5746 .loc 1 2731 11 is_stmt 0 view .LVU2036
5747 010a 636A ldr r3, [r4, #36]
2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5748 .loc 1 2731 21 view .LVU2037
5749 010c 0133 adds r3, r3, #1
5750 010e 6362 str r3, [r4, #36]
2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5751 .loc 1 2733 7 is_stmt 1 view .LVU2038
2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
5752 .loc 1 2733 11 is_stmt 0 view .LVU2039
5753 0110 228D ldrh r2, [r4, #40]
2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
ARM GAS /tmp/ccJ8PJrU.s page 267
5754 .loc 1 2733 21 view .LVU2040
5755 0112 013A subs r2, r2, #1
5756 0114 92B2 uxth r2, r2
5757 0116 2285 strh r2, [r4, #40] @ movhi
2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5758 .loc 1 2734 7 is_stmt 1 view .LVU2041
2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5759 .loc 1 2734 11 is_stmt 0 view .LVU2042
5760 0118 638D ldrh r3, [r4, #42]
5761 011a 9BB2 uxth r3, r3
2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5762 .loc 1 2734 22 view .LVU2043
5763 011c 013B subs r3, r3, #1
5764 011e 9BB2 uxth r3, r3
5765 0120 6385 strh r3, [r4, #42] @ movhi
2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5766 .loc 1 2736 7 is_stmt 1 view .LVU2044
2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5767 .loc 1 2736 16 is_stmt 0 view .LVU2045
5768 0122 638D ldrh r3, [r4, #42]
5769 0124 9BB2 uxth r3, r3
2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5770 .loc 1 2736 10 view .LVU2046
5771 0126 002B cmp r3, #0
5772 0128 DED0 beq .L368
2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5773 .loc 1 2736 35 discriminator 1 view .LVU2047
5774 012a 002A cmp r2, #0
5775 012c DCD1 bne .L368
2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5776 .loc 1 2739 9 is_stmt 1 view .LVU2048
2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5777 .loc 1 2739 13 is_stmt 0 view .LVU2049
5778 012e 0097 str r7, [sp]
5779 0130 2B46 mov r3, r5
5780 0132 8021 movs r1, #128
5781 0134 2046 mov r0, r4
5782 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
5783 .LVL396:
2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5784 .loc 1 2739 12 discriminator 1 view .LVU2050
5785 013a 90BB cbnz r0, .L375
2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5786 .loc 1 2744 9 is_stmt 1 view .LVU2051
2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5787 .loc 1 2744 17 is_stmt 0 view .LVU2052
5788 013c 638D ldrh r3, [r4, #42]
5789 013e 9BB2 uxth r3, r3
2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5790 .loc 1 2744 12 view .LVU2053
5791 0140 FF2B cmp r3, #255
5792 0142 C5D9 bls .L369
2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
5793 .loc 1 2746 11 is_stmt 1 view .LVU2054
2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE,
5794 .loc 1 2746 26 is_stmt 0 view .LVU2055
5795 0144 0122 movs r2, #1
ARM GAS /tmp/ccJ8PJrU.s page 268
5796 0146 2285 strh r2, [r4, #40] @ movhi
2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP);
5797 .loc 1 2747 11 is_stmt 1 view .LVU2056
5798 0148 0023 movs r3, #0
5799 014a 0093 str r3, [sp]
5800 014c 4FF08073 mov r3, #16777216
5801 0150 3146 mov r1, r6
5802 0152 2046 mov r0, r4
5803 0154 FFF7FEFF bl I2C_TransferConfig
5804 .LVL397:
5805 0158 C6E7 b .L368
5806 .L380:
2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5807 .loc 1 2761 5 view .LVU2057
2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5808 .loc 1 2761 9 is_stmt 0 view .LVU2058
5809 015a 3A46 mov r2, r7
5810 015c 2946 mov r1, r5
5811 015e 2046 mov r0, r4
5812 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout
5813 .LVL398:
2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5814 .loc 1 2761 8 discriminator 1 view .LVU2059
5815 0164 F8B9 cbnz r0, .L376
2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5816 .loc 1 2767 5 is_stmt 1 view .LVU2060
5817 0166 2368 ldr r3, [r4]
5818 0168 2022 movs r2, #32
5819 016a DA61 str r2, [r3, #28]
2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5820 .loc 1 2770 5 view .LVU2061
5821 016c 2168 ldr r1, [r4]
5822 016e 4B68 ldr r3, [r1, #4]
5823 0170 23F0FF73 bic r3, r3, #33423360
5824 0174 23F48B33 bic r3, r3, #71168
5825 0178 23F4FF73 bic r3, r3, #510
5826 017c 23F00103 bic r3, r3, #1
5827 0180 4B60 str r3, [r1, #4]
2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5828 .loc 1 2772 5 view .LVU2062
2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
5829 .loc 1 2772 17 is_stmt 0 view .LVU2063
5830 0182 84F84120 strb r2, [r4, #65]
2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5831 .loc 1 2773 5 is_stmt 1 view .LVU2064
2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5832 .loc 1 2773 17 is_stmt 0 view .LVU2065
5833 0186 0023 movs r3, #0
5834 0188 84F84230 strb r3, [r4, #66]
2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5835 .loc 1 2776 5 is_stmt 1 view .LVU2066
2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5836 .loc 1 2776 5 view .LVU2067
5837 018c 84F84030 strb r3, [r4, #64]
2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5838 .loc 1 2776 5 view .LVU2068
2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 269
5839 .loc 1 2778 5 view .LVU2069
2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5840 .loc 1 2778 12 is_stmt 0 view .LVU2070
5841 0190 00E0 b .L362
5842 .LVL399:
5843 .L371:
2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5844 .loc 1 2782 12 view .LVU2071
5845 0192 0220 movs r0, #2
5846 .LVL400:
5847 .L362:
2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /**
5848 .loc 1 2784 1 view .LVU2072
5849 0194 03B0 add sp, sp, #12
5850 .cfi_remember_state
5851 .cfi_def_cfa_offset 36
5852 @ sp needed
5853 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5854 .LVL401:
5855 .L372:
5856 .cfi_restore_state
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5857 .loc 1 2677 5 discriminator 1 view .LVU2073
5858 019a 0220 movs r0, #2
5859 .LVL402:
2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5860 .loc 1 2677 5 discriminator 1 view .LVU2074
5861 019c FAE7 b .L362
5862 .LVL403:
5863 .L374:
2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5864 .loc 1 2724 16 view .LVU2075
5865 019e 0120 movs r0, #1
5866 01a0 F8E7 b .L362
5867 .L375:
2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5868 .loc 1 2741 18 view .LVU2076
5869 01a2 0120 movs r0, #1
5870 01a4 F6E7 b .L362
5871 .L376:
2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5872 .loc 1 2763 14 view .LVU2077
5873 01a6 0120 movs r0, #1
5874 01a8 F4E7 b .L362
5875 .L382:
5876 01aa 00BF .align 2
5877 .L381:
5878 01ac 00240080 .word -2147474432
5879 .cfi_endproc
5880 .LFE140:
5882 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits
5883 .align 1
5884 .global HAL_I2C_Mem_Write_IT
5885 .syntax unified
5886 .thumb
5887 .thumb_func
5889 HAL_I2C_Mem_Write_IT:
ARM GAS /tmp/ccJ8PJrU.s page 270
5890 .LVL404:
5891 .LFB141:
2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
5892 .loc 1 2799 1 is_stmt 1 view -0
5893 .cfi_startproc
5894 @ args = 8, pretend = 0, frame = 0
5895 @ frame_needed = 0, uses_anonymous_args = 0
2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
5896 .loc 1 2799 1 is_stmt 0 view .LVU2079
5897 0000 70B5 push {r4, r5, r6, lr}
5898 .cfi_def_cfa_offset 16
5899 .cfi_offset 4, -16
5900 .cfi_offset 5, -12
5901 .cfi_offset 6, -8
5902 .cfi_offset 14, -4
5903 0002 82B0 sub sp, sp, #8
5904 .cfi_def_cfa_offset 24
5905 0004 0446 mov r4, r0
5906 0006 1D46 mov r5, r3
5907 0008 BDF81C30 ldrh r3, [sp, #28]
5908 .LVL405:
2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5909 .loc 1 2801 3 is_stmt 1 view .LVU2080
2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5910 .loc 1 2803 3 view .LVU2081
2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5911 .loc 1 2803 11 is_stmt 0 view .LVU2082
5912 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
5913 .LVL406:
2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5914 .loc 1 2803 11 view .LVU2083
5915 0010 C0B2 uxtb r0, r0
2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5916 .loc 1 2803 6 view .LVU2084
5917 0012 2028 cmp r0, #32
5918 0014 43D1 bne .L389
2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5919 .loc 1 2805 5 is_stmt 1 view .LVU2085
2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5920 .loc 1 2805 8 is_stmt 0 view .LVU2086
5921 0016 0698 ldr r0, [sp, #24]
5922 0018 0028 cmp r0, #0
5923 001a 35D0 beq .L385
2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5924 .loc 1 2805 25 discriminator 1 view .LVU2087
5925 001c 002B cmp r3, #0
5926 001e 33D0 beq .L385
2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5927 .loc 1 2811 5 is_stmt 1 view .LVU2088
2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5928 .loc 1 2811 9 is_stmt 0 view .LVU2089
5929 0020 2068 ldr r0, [r4]
5930 0022 8669 ldr r6, [r0, #24]
2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5931 .loc 1 2811 8 view .LVU2090
5932 0024 16F4004F tst r6, #32768
5933 0028 3CD1 bne .L390
ARM GAS /tmp/ccJ8PJrU.s page 271
2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5934 .loc 1 2817 5 is_stmt 1 view .LVU2091
2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5935 .loc 1 2817 5 view .LVU2092
5936 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2
5937 002e 012E cmp r6, #1
5938 0030 3AD0 beq .L391
2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5939 .loc 1 2817 5 discriminator 2 view .LVU2093
5940 0032 0126 movs r6, #1
5941 0034 84F84060 strb r6, [r4, #64]
2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5942 .loc 1 2817 5 discriminator 2 view .LVU2094
2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5943 .loc 1 2819 5 view .LVU2095
2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
5944 .loc 1 2819 23 is_stmt 0 view .LVU2096
5945 0038 2126 movs r6, #33
5946 003a 84F84160 strb r6, [r4, #65]
2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5947 .loc 1 2820 5 is_stmt 1 view .LVU2097
2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
5948 .loc 1 2820 23 is_stmt 0 view .LVU2098
5949 003e 4026 movs r6, #64
5950 0040 84F84260 strb r6, [r4, #66]
2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5951 .loc 1 2821 5 is_stmt 1 view .LVU2099
2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5952 .loc 1 2821 23 is_stmt 0 view .LVU2100
5953 0044 0026 movs r6, #0
5954 0046 6664 str r6, [r4, #68]
2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
5955 .loc 1 2824 5 is_stmt 1 view .LVU2101
2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData;
5956 .loc 1 2824 23 is_stmt 0 view .LVU2102
5957 0048 2685 strh r6, [r4, #40] @ movhi
2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5958 .loc 1 2825 5 is_stmt 1 view .LVU2103
2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
5959 .loc 1 2825 23 is_stmt 0 view .LVU2104
5960 004a 069E ldr r6, [sp, #24]
5961 004c 6662 str r6, [r4, #36]
2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5962 .loc 1 2826 5 is_stmt 1 view .LVU2105
2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
5963 .loc 1 2826 23 is_stmt 0 view .LVU2106
5964 004e 6385 strh r3, [r4, #42] @ movhi
2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
5965 .loc 1 2827 5 is_stmt 1 view .LVU2107
2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
5966 .loc 1 2827 23 is_stmt 0 view .LVU2108
5967 0050 164B ldr r3, .L394
5968 0052 E362 str r3, [r4, #44]
2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
5969 .loc 1 2828 5 is_stmt 1 view .LVU2109
2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
5970 .loc 1 2828 23 is_stmt 0 view .LVU2110
ARM GAS /tmp/ccJ8PJrU.s page 272
5971 0054 164B ldr r3, .L394+4
5972 0056 6363 str r3, [r4, #52]
2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5973 .loc 1 2829 5 is_stmt 1 view .LVU2111
2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5974 .loc 1 2829 23 is_stmt 0 view .LVU2112
5975 0058 E164 str r1, [r4, #76]
2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5976 .loc 1 2832 5 is_stmt 1 view .LVU2113
2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
5977 .loc 1 2832 8 is_stmt 0 view .LVU2114
5978 005a 012D cmp r5, #1
5979 005c 19D0 beq .L393
2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5980 .loc 1 2844 7 is_stmt 1 view .LVU2115
2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5981 .loc 1 2844 30 is_stmt 0 view .LVU2116
5982 005e 130A lsrs r3, r2, #8
2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5983 .loc 1 2844 28 view .LVU2117
5984 0060 8362 str r3, [r0, #40]
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5985 .loc 1 2847 7 is_stmt 1 view .LVU2118
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5986 .loc 1 2847 26 is_stmt 0 view .LVU2119
5987 0062 D2B2 uxtb r2, r2
5988 .LVL407:
2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
5989 .loc 1 2847 24 view .LVU2120
5990 0064 2265 str r2, [r4, #80]
5991 .L388:
2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
5992 .loc 1 2850 5 is_stmt 1 view .LVU2121
5993 0066 134B ldr r3, .L394+8
5994 0068 0093 str r3, [sp]
5995 006a 4FF08073 mov r3, #16777216
5996 006e EAB2 uxtb r2, r5
5997 0070 2046 mov r0, r4
5998 0072 FFF7FEFF bl I2C_TransferConfig
5999 .LVL408:
2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6000 .loc 1 2853 5 view .LVU2122
2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6001 .loc 1 2853 5 view .LVU2123
6002 0076 0025 movs r5, #0
6003 .LVL409:
2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6004 .loc 1 2853 5 is_stmt 0 view .LVU2124
6005 0078 84F84050 strb r5, [r4, #64]
2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6006 .loc 1 2853 5 is_stmt 1 view .LVU2125
2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6007 .loc 1 2863 5 view .LVU2126
6008 007c 0121 movs r1, #1
6009 007e 2046 mov r0, r4
6010 0080 FFF7FEFF bl I2C_Enable_IRQ
6011 .LVL410:
ARM GAS /tmp/ccJ8PJrU.s page 273
2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6012 .loc 1 2865 5 view .LVU2127
2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6013 .loc 1 2865 12 is_stmt 0 view .LVU2128
6014 0084 2846 mov r0, r5
6015 0086 0BE0 b .L384
6016 .LVL411:
6017 .L385:
2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6018 .loc 1 2807 7 is_stmt 1 view .LVU2129
2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6019 .loc 1 2807 23 is_stmt 0 view .LVU2130
6020 0088 4FF40073 mov r3, #512
6021 008c 6364 str r3, [r4, #68]
2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6022 .loc 1 2808 7 is_stmt 1 view .LVU2131
2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6023 .loc 1 2808 15 is_stmt 0 view .LVU2132
6024 008e 0120 movs r0, #1
6025 0090 06E0 b .L384
6026 .L393:
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6027 .loc 1 2835 7 is_stmt 1 view .LVU2133
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6028 .loc 1 2835 30 is_stmt 0 view .LVU2134
6029 0092 D2B2 uxtb r2, r2
6030 .LVL412:
2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6031 .loc 1 2835 28 view .LVU2135
6032 0094 8262 str r2, [r0, #40]
2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6033 .loc 1 2838 7 is_stmt 1 view .LVU2136
2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6034 .loc 1 2838 24 is_stmt 0 view .LVU2137
6035 0096 4FF0FF33 mov r3, #-1
6036 009a 2365 str r3, [r4, #80]
6037 009c E3E7 b .L388
6038 .LVL413:
6039 .L389:
2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6040 .loc 1 2869 12 view .LVU2138
6041 009e 0220 movs r0, #2
6042 .LVL414:
6043 .L384:
2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6044 .loc 1 2871 1 view .LVU2139
6045 00a0 02B0 add sp, sp, #8
6046 .cfi_remember_state
6047 .cfi_def_cfa_offset 16
6048 @ sp needed
6049 00a2 70BD pop {r4, r5, r6, pc}
6050 .LVL415:
6051 .L390:
6052 .cfi_restore_state
2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6053 .loc 1 2813 14 view .LVU2140
6054 00a4 0220 movs r0, #2
ARM GAS /tmp/ccJ8PJrU.s page 274
6055 00a6 FBE7 b .L384
6056 .L391:
2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6057 .loc 1 2817 5 discriminator 1 view .LVU2141
6058 00a8 0220 movs r0, #2
6059 00aa F9E7 b .L384
6060 .L395:
6061 .align 2
6062 .L394:
6063 00ac 0000FFFF .word -65536
6064 00b0 00000000 .word I2C_Mem_ISR_IT
6065 00b4 00200080 .word -2147475456
6066 .cfi_endproc
6067 .LFE141:
6069 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits
6070 .align 1
6071 .global HAL_I2C_Mem_Read_IT
6072 .syntax unified
6073 .thumb
6074 .thumb_func
6076 HAL_I2C_Mem_Read_IT:
6077 .LVL416:
6078 .LFB142:
2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
6079 .loc 1 2887 1 is_stmt 1 view -0
6080 .cfi_startproc
6081 @ args = 8, pretend = 0, frame = 0
6082 @ frame_needed = 0, uses_anonymous_args = 0
2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */
6083 .loc 1 2887 1 is_stmt 0 view .LVU2143
6084 0000 70B5 push {r4, r5, r6, lr}
6085 .cfi_def_cfa_offset 16
6086 .cfi_offset 4, -16
6087 .cfi_offset 5, -12
6088 .cfi_offset 6, -8
6089 .cfi_offset 14, -4
6090 0002 82B0 sub sp, sp, #8
6091 .cfi_def_cfa_offset 24
6092 0004 0446 mov r4, r0
6093 0006 1D46 mov r5, r3
6094 0008 BDF81C30 ldrh r3, [sp, #28]
6095 .LVL417:
2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6096 .loc 1 2889 3 is_stmt 1 view .LVU2144
2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6097 .loc 1 2891 3 view .LVU2145
2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6098 .loc 1 2891 11 is_stmt 0 view .LVU2146
6099 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6100 .LVL418:
2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6101 .loc 1 2891 11 view .LVU2147
6102 0010 C0B2 uxtb r0, r0
2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6103 .loc 1 2891 6 view .LVU2148
6104 0012 2028 cmp r0, #32
6105 0014 41D1 bne .L402
ARM GAS /tmp/ccJ8PJrU.s page 275
2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6106 .loc 1 2893 5 is_stmt 1 view .LVU2149
2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6107 .loc 1 2893 8 is_stmt 0 view .LVU2150
6108 0016 0698 ldr r0, [sp, #24]
6109 0018 0028 cmp r0, #0
6110 001a 33D0 beq .L398
2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6111 .loc 1 2893 25 discriminator 1 view .LVU2151
6112 001c 002B cmp r3, #0
6113 001e 31D0 beq .L398
2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6114 .loc 1 2899 5 is_stmt 1 view .LVU2152
2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6115 .loc 1 2899 9 is_stmt 0 view .LVU2153
6116 0020 2068 ldr r0, [r4]
6117 0022 8669 ldr r6, [r0, #24]
2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6118 .loc 1 2899 8 view .LVU2154
6119 0024 16F4004F tst r6, #32768
6120 0028 3AD1 bne .L403
2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6121 .loc 1 2905 5 is_stmt 1 view .LVU2155
2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6122 .loc 1 2905 5 view .LVU2156
6123 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2
6124 002e 012E cmp r6, #1
6125 0030 38D0 beq .L404
2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6126 .loc 1 2905 5 discriminator 2 view .LVU2157
6127 0032 0126 movs r6, #1
6128 0034 84F84060 strb r6, [r4, #64]
2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6129 .loc 1 2905 5 discriminator 2 view .LVU2158
2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6130 .loc 1 2907 5 view .LVU2159
2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6131 .loc 1 2907 23 is_stmt 0 view .LVU2160
6132 0038 2226 movs r6, #34
6133 003a 84F84160 strb r6, [r4, #65]
2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6134 .loc 1 2908 5 is_stmt 1 view .LVU2161
2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6135 .loc 1 2908 23 is_stmt 0 view .LVU2162
6136 003e 4026 movs r6, #64
6137 0040 84F84260 strb r6, [r4, #66]
2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6138 .loc 1 2909 5 is_stmt 1 view .LVU2163
2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6139 .loc 1 2909 23 is_stmt 0 view .LVU2164
6140 0044 0026 movs r6, #0
6141 0046 6664 str r6, [r4, #68]
2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6142 .loc 1 2912 5 is_stmt 1 view .LVU2165
2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6143 .loc 1 2912 23 is_stmt 0 view .LVU2166
6144 0048 069E ldr r6, [sp, #24]
ARM GAS /tmp/ccJ8PJrU.s page 276
6145 004a 6662 str r6, [r4, #36]
2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6146 .loc 1 2913 5 is_stmt 1 view .LVU2167
2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6147 .loc 1 2913 23 is_stmt 0 view .LVU2168
6148 004c 6385 strh r3, [r4, #42] @ movhi
2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
6149 .loc 1 2914 5 is_stmt 1 view .LVU2169
2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT;
6150 .loc 1 2914 23 is_stmt 0 view .LVU2170
6151 004e 164B ldr r3, .L407
6152 0050 E362 str r3, [r4, #44]
2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6153 .loc 1 2915 5 is_stmt 1 view .LVU2171
2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6154 .loc 1 2915 23 is_stmt 0 view .LVU2172
6155 0052 164B ldr r3, .L407+4
6156 0054 6363 str r3, [r4, #52]
2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6157 .loc 1 2916 5 is_stmt 1 view .LVU2173
2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6158 .loc 1 2916 23 is_stmt 0 view .LVU2174
6159 0056 E164 str r1, [r4, #76]
2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6160 .loc 1 2919 5 is_stmt 1 view .LVU2175
2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6161 .loc 1 2919 8 is_stmt 0 view .LVU2176
6162 0058 012D cmp r5, #1
6163 005a 18D0 beq .L406
2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6164 .loc 1 2931 7 is_stmt 1 view .LVU2177
2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6165 .loc 1 2931 30 is_stmt 0 view .LVU2178
6166 005c 130A lsrs r3, r2, #8
2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6167 .loc 1 2931 28 view .LVU2179
6168 005e 8362 str r3, [r0, #40]
2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6169 .loc 1 2934 7 is_stmt 1 view .LVU2180
2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6170 .loc 1 2934 26 is_stmt 0 view .LVU2181
6171 0060 D2B2 uxtb r2, r2
6172 .LVL419:
2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6173 .loc 1 2934 24 view .LVU2182
6174 0062 2265 str r2, [r4, #80]
6175 .L401:
2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6176 .loc 1 2937 5 is_stmt 1 view .LVU2183
6177 0064 124B ldr r3, .L407+8
6178 0066 0093 str r3, [sp]
6179 0068 0023 movs r3, #0
6180 006a EAB2 uxtb r2, r5
6181 006c 2046 mov r0, r4
6182 006e FFF7FEFF bl I2C_TransferConfig
6183 .LVL420:
2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 277
6184 .loc 1 2940 5 view .LVU2184
2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6185 .loc 1 2940 5 view .LVU2185
6186 0072 0025 movs r5, #0
6187 .LVL421:
2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6188 .loc 1 2940 5 is_stmt 0 view .LVU2186
6189 0074 84F84050 strb r5, [r4, #64]
2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6190 .loc 1 2940 5 is_stmt 1 view .LVU2187
2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6191 .loc 1 2950 5 view .LVU2188
6192 0078 0121 movs r1, #1
6193 007a 2046 mov r0, r4
6194 007c FFF7FEFF bl I2C_Enable_IRQ
6195 .LVL422:
2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6196 .loc 1 2952 5 view .LVU2189
2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6197 .loc 1 2952 12 is_stmt 0 view .LVU2190
6198 0080 2846 mov r0, r5
6199 0082 0BE0 b .L397
6200 .LVL423:
6201 .L398:
2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6202 .loc 1 2895 7 is_stmt 1 view .LVU2191
2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6203 .loc 1 2895 23 is_stmt 0 view .LVU2192
6204 0084 4FF40073 mov r3, #512
6205 0088 6364 str r3, [r4, #68]
2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6206 .loc 1 2896 7 is_stmt 1 view .LVU2193
2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6207 .loc 1 2896 15 is_stmt 0 view .LVU2194
6208 008a 0120 movs r0, #1
6209 008c 06E0 b .L397
6210 .L406:
2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6211 .loc 1 2922 7 is_stmt 1 view .LVU2195
2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6212 .loc 1 2922 30 is_stmt 0 view .LVU2196
6213 008e D2B2 uxtb r2, r2
6214 .LVL424:
2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6215 .loc 1 2922 28 view .LVU2197
6216 0090 8262 str r2, [r0, #40]
2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6217 .loc 1 2925 7 is_stmt 1 view .LVU2198
2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6218 .loc 1 2925 24 is_stmt 0 view .LVU2199
6219 0092 4FF0FF33 mov r3, #-1
6220 0096 2365 str r3, [r4, #80]
6221 0098 E4E7 b .L401
6222 .LVL425:
6223 .L402:
2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6224 .loc 1 2956 12 view .LVU2200
ARM GAS /tmp/ccJ8PJrU.s page 278
6225 009a 0220 movs r0, #2
6226 .LVL426:
6227 .L397:
2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6228 .loc 1 2958 1 view .LVU2201
6229 009c 02B0 add sp, sp, #8
6230 .cfi_remember_state
6231 .cfi_def_cfa_offset 16
6232 @ sp needed
6233 009e 70BD pop {r4, r5, r6, pc}
6234 .LVL427:
6235 .L403:
6236 .cfi_restore_state
2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6237 .loc 1 2901 14 view .LVU2202
6238 00a0 0220 movs r0, #2
6239 00a2 FBE7 b .L397
6240 .L404:
2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6241 .loc 1 2905 5 discriminator 1 view .LVU2203
6242 00a4 0220 movs r0, #2
6243 00a6 F9E7 b .L397
6244 .L408:
6245 .align 2
6246 .L407:
6247 00a8 0000FFFF .word -65536
6248 00ac 00000000 .word I2C_Mem_ISR_IT
6249 00b0 00200080 .word -2147475456
6250 .cfi_endproc
6251 .LFE142:
6253 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits
6254 .align 1
6255 .global HAL_I2C_Mem_Write_DMA
6256 .syntax unified
6257 .thumb
6258 .thumb_func
6260 HAL_I2C_Mem_Write_DMA:
6261 .LVL428:
6262 .LFB143:
2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6263 .loc 1 2974 1 is_stmt 1 view -0
6264 .cfi_startproc
6265 @ args = 8, pretend = 0, frame = 0
6266 @ frame_needed = 0, uses_anonymous_args = 0
2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6267 .loc 1 2974 1 is_stmt 0 view .LVU2205
6268 0000 F0B5 push {r4, r5, r6, r7, lr}
6269 .cfi_def_cfa_offset 20
6270 .cfi_offset 4, -20
6271 .cfi_offset 5, -16
6272 .cfi_offset 6, -12
6273 .cfi_offset 7, -8
6274 .cfi_offset 14, -4
6275 0002 83B0 sub sp, sp, #12
6276 .cfi_def_cfa_offset 32
6277 0004 0446 mov r4, r0
6278 0006 0E46 mov r6, r1
ARM GAS /tmp/ccJ8PJrU.s page 279
6279 0008 1F46 mov r7, r3
6280 000a 0899 ldr r1, [sp, #32]
6281 .LVL429:
2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6282 .loc 1 2974 1 view .LVU2206
6283 000c BDF82430 ldrh r3, [sp, #36]
6284 .LVL430:
2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6285 .loc 1 2975 3 is_stmt 1 view .LVU2207
2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6286 .loc 1 2978 3 view .LVU2208
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6287 .loc 1 2980 3 view .LVU2209
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6288 .loc 1 2980 11 is_stmt 0 view .LVU2210
6289 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6290 .LVL431:
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6291 .loc 1 2980 11 view .LVU2211
6292 0014 C0B2 uxtb r0, r0
2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6293 .loc 1 2980 6 view .LVU2212
6294 0016 2028 cmp r0, #32
6295 0018 7AD1 bne .L420
2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6296 .loc 1 2982 5 is_stmt 1 view .LVU2213
2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6297 .loc 1 2982 8 is_stmt 0 view .LVU2214
6298 001a 0029 cmp r1, #0
6299 001c 4BD0 beq .L411
2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6300 .loc 1 2982 25 discriminator 1 view .LVU2215
6301 001e 002B cmp r3, #0
6302 0020 49D0 beq .L411
2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6303 .loc 1 2988 5 is_stmt 1 view .LVU2216
2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6304 .loc 1 2988 9 is_stmt 0 view .LVU2217
6305 0022 2068 ldr r0, [r4]
6306 0024 8569 ldr r5, [r0, #24]
2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6307 .loc 1 2988 8 view .LVU2218
6308 0026 15F4004F tst r5, #32768
6309 002a 75D1 bne .L421
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6310 .loc 1 2994 5 is_stmt 1 view .LVU2219
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6311 .loc 1 2994 5 view .LVU2220
6312 002c 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2
6313 0030 012D cmp r5, #1
6314 0032 73D0 beq .L422
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6315 .loc 1 2994 5 discriminator 2 view .LVU2221
6316 0034 0125 movs r5, #1
6317 0036 84F84050 strb r5, [r4, #64]
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6318 .loc 1 2994 5 discriminator 2 view .LVU2222
ARM GAS /tmp/ccJ8PJrU.s page 280
2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6319 .loc 1 2996 5 view .LVU2223
2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6320 .loc 1 2996 23 is_stmt 0 view .LVU2224
6321 003a 2125 movs r5, #33
6322 003c 84F84150 strb r5, [r4, #65]
2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6323 .loc 1 2997 5 is_stmt 1 view .LVU2225
2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6324 .loc 1 2997 23 is_stmt 0 view .LVU2226
6325 0040 4025 movs r5, #64
6326 0042 84F84250 strb r5, [r4, #66]
2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6327 .loc 1 2998 5 is_stmt 1 view .LVU2227
2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6328 .loc 1 2998 23 is_stmt 0 view .LVU2228
6329 0046 0025 movs r5, #0
6330 0048 6564 str r5, [r4, #68]
3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6331 .loc 1 3001 5 is_stmt 1 view .LVU2229
3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6332 .loc 1 3001 23 is_stmt 0 view .LVU2230
6333 004a 6162 str r1, [r4, #36]
3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6334 .loc 1 3002 5 is_stmt 1 view .LVU2231
3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6335 .loc 1 3002 23 is_stmt 0 view .LVU2232
6336 004c 6385 strh r3, [r4, #42] @ movhi
3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6337 .loc 1 3003 5 is_stmt 1 view .LVU2233
3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6338 .loc 1 3003 23 is_stmt 0 view .LVU2234
6339 004e 344B ldr r3, .L427
6340 0050 E362 str r3, [r4, #44]
3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6341 .loc 1 3004 5 is_stmt 1 view .LVU2235
3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6342 .loc 1 3004 23 is_stmt 0 view .LVU2236
6343 0052 344B ldr r3, .L427+4
6344 0054 6363 str r3, [r4, #52]
3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6345 .loc 1 3005 5 is_stmt 1 view .LVU2237
3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6346 .loc 1 3005 23 is_stmt 0 view .LVU2238
6347 0056 E664 str r6, [r4, #76]
3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6348 .loc 1 3007 5 is_stmt 1 view .LVU2239
3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6349 .loc 1 3007 13 is_stmt 0 view .LVU2240
6350 0058 638D ldrh r3, [r4, #42]
6351 005a 9BB2 uxth r3, r3
3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6352 .loc 1 3007 8 view .LVU2241
6353 005c FF2B cmp r3, #255
6354 005e 2FD9 bls .L413
3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6355 .loc 1 3009 7 is_stmt 1 view .LVU2242
ARM GAS /tmp/ccJ8PJrU.s page 281
3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6356 .loc 1 3009 22 is_stmt 0 view .LVU2243
6357 0060 FF23 movs r3, #255
6358 0062 2385 strh r3, [r4, #40] @ movhi
6359 .L414:
3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6360 .loc 1 3017 5 is_stmt 1 view .LVU2244
3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6361 .loc 1 3017 8 is_stmt 0 view .LVU2245
6362 0064 012F cmp r7, #1
6363 0066 2ED0 beq .L425
3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6364 .loc 1 3029 7 is_stmt 1 view .LVU2246
3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6365 .loc 1 3029 30 is_stmt 0 view .LVU2247
6366 0068 130A lsrs r3, r2, #8
3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6367 .loc 1 3029 28 view .LVU2248
6368 006a 8362 str r3, [r0, #40]
3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6369 .loc 1 3032 7 is_stmt 1 view .LVU2249
3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6370 .loc 1 3032 26 is_stmt 0 view .LVU2250
6371 006c D2B2 uxtb r2, r2
6372 .LVL432:
3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6373 .loc 1 3032 24 view .LVU2251
6374 006e 2265 str r2, [r4, #80]
6375 .L416:
3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6376 .loc 1 3035 5 is_stmt 1 view .LVU2252
3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6377 .loc 1 3035 13 is_stmt 0 view .LVU2253
6378 0070 A36B ldr r3, [r4, #56]
3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6379 .loc 1 3035 8 view .LVU2254
6380 0072 002B cmp r3, #0
6381 0074 2DD0 beq .L417
3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6382 .loc 1 3038 7 is_stmt 1 view .LVU2255
3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6383 .loc 1 3038 38 is_stmt 0 view .LVU2256
6384 0076 2C4A ldr r2, .L427+8
6385 0078 9A62 str r2, [r3, #40]
3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6386 .loc 1 3041 7 is_stmt 1 view .LVU2257
3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6387 .loc 1 3041 11 is_stmt 0 view .LVU2258
6388 007a A36B ldr r3, [r4, #56]
3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6389 .loc 1 3041 39 view .LVU2259
6390 007c 2B4A ldr r2, .L427+12
6391 007e 1A63 str r2, [r3, #48]
3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6392 .loc 1 3044 7 is_stmt 1 view .LVU2260
3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6393 .loc 1 3044 11 is_stmt 0 view .LVU2261
ARM GAS /tmp/ccJ8PJrU.s page 282
6394 0080 A26B ldr r2, [r4, #56]
3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
6395 .loc 1 3044 42 view .LVU2262
6396 0082 0023 movs r3, #0
6397 0084 D362 str r3, [r2, #44]
3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6398 .loc 1 3045 7 is_stmt 1 view .LVU2263
3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6399 .loc 1 3045 11 is_stmt 0 view .LVU2264
6400 0086 A26B ldr r2, [r4, #56]
3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6401 .loc 1 3045 39 view .LVU2265
6402 0088 5363 str r3, [r2, #52]
3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
6403 .loc 1 3048 7 is_stmt 1 view .LVU2266
3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
6404 .loc 1 3048 86 is_stmt 0 view .LVU2267
6405 008a 2268 ldr r2, [r4]
3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
6406 .loc 1 3048 23 view .LVU2268
6407 008c 238D ldrh r3, [r4, #40]
6408 008e 2832 adds r2, r2, #40
6409 0090 A06B ldr r0, [r4, #56]
6410 0092 FFF7FEFF bl HAL_DMA_Start_IT
6411 .LVL433:
3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6412 .loc 1 3066 5 is_stmt 1 view .LVU2269
3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6413 .loc 1 3066 8 is_stmt 0 view .LVU2270
6414 0096 0546 mov r5, r0
6415 0098 48B3 cbz r0, .L426
3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6416 .loc 1 3086 7 is_stmt 1 view .LVU2271
3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6417 .loc 1 3086 23 is_stmt 0 view .LVU2272
6418 009a 2023 movs r3, #32
6419 009c 84F84130 strb r3, [r4, #65]
3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6420 .loc 1 3087 7 is_stmt 1 view .LVU2273
3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6421 .loc 1 3087 23 is_stmt 0 view .LVU2274
6422 00a0 0022 movs r2, #0
6423 00a2 84F84220 strb r2, [r4, #66]
3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6424 .loc 1 3090 7 is_stmt 1 view .LVU2275
3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6425 .loc 1 3090 11 is_stmt 0 view .LVU2276
6426 00a6 636C ldr r3, [r4, #68]
3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6427 .loc 1 3090 23 view .LVU2277
6428 00a8 43F01003 orr r3, r3, #16
6429 00ac 6364 str r3, [r4, #68]
3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6430 .loc 1 3093 7 is_stmt 1 view .LVU2278
3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6431 .loc 1 3093 7 view .LVU2279
6432 00ae 84F84020 strb r2, [r4, #64]
ARM GAS /tmp/ccJ8PJrU.s page 283
3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6433 .loc 1 3093 7 view .LVU2280
3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6434 .loc 1 3095 7 view .LVU2281
3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6435 .loc 1 3095 14 is_stmt 0 view .LVU2282
6436 00b2 0125 movs r5, #1
6437 00b4 2DE0 b .L410
6438 .LVL434:
6439 .L411:
2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6440 .loc 1 2984 7 is_stmt 1 view .LVU2283
2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6441 .loc 1 2984 23 is_stmt 0 view .LVU2284
6442 00b6 4FF40073 mov r3, #512
6443 00ba 6364 str r3, [r4, #68]
2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6444 .loc 1 2985 7 is_stmt 1 view .LVU2285
2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6445 .loc 1 2985 15 is_stmt 0 view .LVU2286
6446 00bc 0125 movs r5, #1
6447 00be 28E0 b .L410
6448 .L413:
3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6449 .loc 1 3013 7 is_stmt 1 view .LVU2287
3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6450 .loc 1 3013 28 is_stmt 0 view .LVU2288
6451 00c0 638D ldrh r3, [r4, #42]
3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6452 .loc 1 3013 22 view .LVU2289
6453 00c2 2385 strh r3, [r4, #40] @ movhi
6454 00c4 CEE7 b .L414
6455 .L425:
3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6456 .loc 1 3020 7 is_stmt 1 view .LVU2290
3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6457 .loc 1 3020 30 is_stmt 0 view .LVU2291
6458 00c6 D2B2 uxtb r2, r2
6459 .LVL435:
3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6460 .loc 1 3020 28 view .LVU2292
6461 00c8 8262 str r2, [r0, #40]
3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6462 .loc 1 3023 7 is_stmt 1 view .LVU2293
3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6463 .loc 1 3023 24 is_stmt 0 view .LVU2294
6464 00ca 4FF0FF33 mov r3, #-1
6465 00ce 2365 str r3, [r4, #80]
6466 00d0 CEE7 b .L416
6467 .L417:
3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6468 .loc 1 3054 7 is_stmt 1 view .LVU2295
3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6469 .loc 1 3054 23 is_stmt 0 view .LVU2296
6470 00d2 2023 movs r3, #32
6471 00d4 84F84130 strb r3, [r4, #65]
3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 284
6472 .loc 1 3055 7 is_stmt 1 view .LVU2297
3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6473 .loc 1 3055 23 is_stmt 0 view .LVU2298
6474 00d8 0022 movs r2, #0
6475 00da 84F84220 strb r2, [r4, #66]
3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6476 .loc 1 3058 7 is_stmt 1 view .LVU2299
3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6477 .loc 1 3058 11 is_stmt 0 view .LVU2300
6478 00de 636C ldr r3, [r4, #68]
3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6479 .loc 1 3058 23 view .LVU2301
6480 00e0 43F08003 orr r3, r3, #128
6481 00e4 6364 str r3, [r4, #68]
3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6482 .loc 1 3061 7 is_stmt 1 view .LVU2302
3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6483 .loc 1 3061 7 view .LVU2303
6484 00e6 84F84020 strb r2, [r4, #64]
3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6485 .loc 1 3061 7 view .LVU2304
3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6486 .loc 1 3063 7 view .LVU2305
3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6487 .loc 1 3063 14 is_stmt 0 view .LVU2306
6488 00ea 0125 movs r5, #1
6489 00ec 11E0 b .L410
6490 .LVL436:
6491 .L426:
3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6492 .loc 1 3069 7 is_stmt 1 view .LVU2307
6493 00ee 104B ldr r3, .L427+16
6494 00f0 0093 str r3, [sp]
6495 00f2 4FF08073 mov r3, #16777216
6496 00f6 FAB2 uxtb r2, r7
6497 00f8 3146 mov r1, r6
6498 00fa 2046 mov r0, r4
6499 .LVL437:
3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6500 .loc 1 3069 7 is_stmt 0 view .LVU2308
6501 00fc FFF7FEFF bl I2C_TransferConfig
6502 .LVL438:
3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6503 .loc 1 3072 7 is_stmt 1 view .LVU2309
3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6504 .loc 1 3072 7 view .LVU2310
6505 0100 0023 movs r3, #0
6506 0102 84F84030 strb r3, [r4, #64]
3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6507 .loc 1 3072 7 view .LVU2311
3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6508 .loc 1 3081 7 view .LVU2312
6509 0106 0121 movs r1, #1
6510 0108 2046 mov r0, r4
6511 010a FFF7FEFF bl I2C_Enable_IRQ
6512 .LVL439:
3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 285
6513 .loc 1 3098 5 view .LVU2313
3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6514 .loc 1 3098 12 is_stmt 0 view .LVU2314
6515 010e 00E0 b .L410
6516 .LVL440:
6517 .L420:
3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6518 .loc 1 3102 12 view .LVU2315
6519 0110 0225 movs r5, #2
6520 .LVL441:
6521 .L410:
3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6522 .loc 1 3104 1 view .LVU2316
6523 0112 2846 mov r0, r5
6524 0114 03B0 add sp, sp, #12
6525 .cfi_remember_state
6526 .cfi_def_cfa_offset 20
6527 @ sp needed
6528 0116 F0BD pop {r4, r5, r6, r7, pc}
6529 .LVL442:
6530 .L421:
6531 .cfi_restore_state
2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6532 .loc 1 2990 14 view .LVU2317
6533 0118 0225 movs r5, #2
6534 011a FAE7 b .L410
6535 .L422:
2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6536 .loc 1 2994 5 discriminator 1 view .LVU2318
6537 011c 0225 movs r5, #2
6538 011e F8E7 b .L410
6539 .L428:
6540 .align 2
6541 .L427:
6542 0120 0000FFFF .word -65536
6543 0124 00000000 .word I2C_Mem_ISR_DMA
6544 0128 00000000 .word I2C_DMAMasterTransmitCplt
6545 012c 00000000 .word I2C_DMAError
6546 0130 00200080 .word -2147475456
6547 .cfi_endproc
6548 .LFE143:
6550 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits
6551 .align 1
6552 .global HAL_I2C_Mem_Read_DMA
6553 .syntax unified
6554 .thumb
6555 .thumb_func
6557 HAL_I2C_Mem_Read_DMA:
6558 .LVL443:
6559 .LFB144:
3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6560 .loc 1 3120 1 is_stmt 1 view -0
6561 .cfi_startproc
6562 @ args = 8, pretend = 0, frame = 0
6563 @ frame_needed = 0, uses_anonymous_args = 0
3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
6564 .loc 1 3120 1 is_stmt 0 view .LVU2320
ARM GAS /tmp/ccJ8PJrU.s page 286
6565 0000 F0B5 push {r4, r5, r6, r7, lr}
6566 .cfi_def_cfa_offset 20
6567 .cfi_offset 4, -20
6568 .cfi_offset 5, -16
6569 .cfi_offset 6, -12
6570 .cfi_offset 7, -8
6571 .cfi_offset 14, -4
6572 0002 83B0 sub sp, sp, #12
6573 .cfi_def_cfa_offset 32
6574 0004 0446 mov r4, r0
6575 0006 1F46 mov r7, r3
6576 0008 089D ldr r5, [sp, #32]
6577 000a BDF82430 ldrh r3, [sp, #36]
6578 .LVL444:
3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6579 .loc 1 3121 3 is_stmt 1 view .LVU2321
3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6580 .loc 1 3124 3 view .LVU2322
3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6581 .loc 1 3126 3 view .LVU2323
3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6582 .loc 1 3126 11 is_stmt 0 view .LVU2324
6583 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
6584 .LVL445:
3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6585 .loc 1 3126 11 view .LVU2325
6586 0012 C0B2 uxtb r0, r0
3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6587 .loc 1 3126 6 view .LVU2326
6588 0014 2028 cmp r0, #32
6589 0016 7BD1 bne .L440
6590 0018 0E46 mov r6, r1
3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6591 .loc 1 3128 5 is_stmt 1 view .LVU2327
3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6592 .loc 1 3128 8 is_stmt 0 view .LVU2328
6593 001a 002D cmp r5, #0
6594 001c 4CD0 beq .L431
3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6595 .loc 1 3128 25 discriminator 1 view .LVU2329
6596 001e 002B cmp r3, #0
6597 0020 4AD0 beq .L431
3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6598 .loc 1 3134 5 is_stmt 1 view .LVU2330
3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6599 .loc 1 3134 9 is_stmt 0 view .LVU2331
6600 0022 2168 ldr r1, [r4]
6601 .LVL446:
3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6602 .loc 1 3134 9 view .LVU2332
6603 0024 8869 ldr r0, [r1, #24]
3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6604 .loc 1 3134 8 view .LVU2333
6605 0026 10F4004F tst r0, #32768
6606 002a 75D1 bne .L441
3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6607 .loc 1 3140 5 is_stmt 1 view .LVU2334
ARM GAS /tmp/ccJ8PJrU.s page 287
3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6608 .loc 1 3140 5 view .LVU2335
6609 002c 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2
6610 0030 0128 cmp r0, #1
6611 0032 73D0 beq .L442
3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6612 .loc 1 3140 5 discriminator 2 view .LVU2336
6613 0034 0120 movs r0, #1
6614 0036 84F84000 strb r0, [r4, #64]
3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6615 .loc 1 3140 5 discriminator 2 view .LVU2337
3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6616 .loc 1 3142 5 view .LVU2338
3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM;
6617 .loc 1 3142 23 is_stmt 0 view .LVU2339
6618 003a 2220 movs r0, #34
6619 003c 84F84100 strb r0, [r4, #65]
3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6620 .loc 1 3143 5 is_stmt 1 view .LVU2340
3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6621 .loc 1 3143 23 is_stmt 0 view .LVU2341
6622 0040 4020 movs r0, #64
6623 0042 84F84200 strb r0, [r4, #66]
3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6624 .loc 1 3144 5 is_stmt 1 view .LVU2342
3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6625 .loc 1 3144 23 is_stmt 0 view .LVU2343
6626 0046 0020 movs r0, #0
6627 0048 6064 str r0, [r4, #68]
3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6628 .loc 1 3147 5 is_stmt 1 view .LVU2344
3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
6629 .loc 1 3147 23 is_stmt 0 view .LVU2345
6630 004a 6562 str r5, [r4, #36]
3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6631 .loc 1 3148 5 is_stmt 1 view .LVU2346
3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
6632 .loc 1 3148 23 is_stmt 0 view .LVU2347
6633 004c 6385 strh r3, [r4, #42] @ movhi
3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6634 .loc 1 3149 5 is_stmt 1 view .LVU2348
3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA;
6635 .loc 1 3149 23 is_stmt 0 view .LVU2349
6636 004e 344B ldr r3, .L447
6637 0050 E362 str r3, [r4, #44]
3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6638 .loc 1 3150 5 is_stmt 1 view .LVU2350
3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress;
6639 .loc 1 3150 23 is_stmt 0 view .LVU2351
6640 0052 344B ldr r3, .L447+4
6641 0054 6363 str r3, [r4, #52]
3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6642 .loc 1 3151 5 is_stmt 1 view .LVU2352
3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6643 .loc 1 3151 23 is_stmt 0 view .LVU2353
6644 0056 E664 str r6, [r4, #76]
3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 288
6645 .loc 1 3153 5 is_stmt 1 view .LVU2354
3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6646 .loc 1 3153 13 is_stmt 0 view .LVU2355
6647 0058 638D ldrh r3, [r4, #42]
6648 005a 9BB2 uxth r3, r3
3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6649 .loc 1 3153 8 view .LVU2356
6650 005c FF2B cmp r3, #255
6651 005e 30D9 bls .L433
3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6652 .loc 1 3155 7 is_stmt 1 view .LVU2357
3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6653 .loc 1 3155 22 is_stmt 0 view .LVU2358
6654 0060 FF23 movs r3, #255
6655 0062 2385 strh r3, [r4, #40] @ movhi
6656 .L434:
3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6657 .loc 1 3163 5 is_stmt 1 view .LVU2359
3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6658 .loc 1 3163 8 is_stmt 0 view .LVU2360
6659 0064 012F cmp r7, #1
6660 0066 2FD0 beq .L445
3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6661 .loc 1 3175 7 is_stmt 1 view .LVU2361
3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6662 .loc 1 3175 30 is_stmt 0 view .LVU2362
6663 0068 130A lsrs r3, r2, #8
3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6664 .loc 1 3175 28 view .LVU2363
6665 006a 8B62 str r3, [r1, #40]
3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6666 .loc 1 3178 7 is_stmt 1 view .LVU2364
3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6667 .loc 1 3178 26 is_stmt 0 view .LVU2365
6668 006c D2B2 uxtb r2, r2
6669 .LVL447:
3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6670 .loc 1 3178 24 view .LVU2366
6671 006e 2265 str r2, [r4, #80]
6672 .L436:
3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6673 .loc 1 3181 5 is_stmt 1 view .LVU2367
3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6674 .loc 1 3181 13 is_stmt 0 view .LVU2368
6675 0070 E36B ldr r3, [r4, #60]
3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6676 .loc 1 3181 8 view .LVU2369
6677 0072 002B cmp r3, #0
6678 0074 2ED0 beq .L437
3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6679 .loc 1 3184 7 is_stmt 1 view .LVU2370
3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6680 .loc 1 3184 38 is_stmt 0 view .LVU2371
6681 0076 2C4A ldr r2, .L447+8
6682 0078 9A62 str r2, [r3, #40]
3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6683 .loc 1 3187 7 is_stmt 1 view .LVU2372
ARM GAS /tmp/ccJ8PJrU.s page 289
3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6684 .loc 1 3187 11 is_stmt 0 view .LVU2373
6685 007a E36B ldr r3, [r4, #60]
3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6686 .loc 1 3187 39 view .LVU2374
6687 007c 2B4A ldr r2, .L447+12
6688 007e 1A63 str r2, [r3, #48]
3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6689 .loc 1 3190 7 is_stmt 1 view .LVU2375
3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6690 .loc 1 3190 11 is_stmt 0 view .LVU2376
6691 0080 E26B ldr r2, [r4, #60]
3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
6692 .loc 1 3190 42 view .LVU2377
6693 0082 0023 movs r3, #0
6694 0084 D362 str r3, [r2, #44]
3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6695 .loc 1 3191 7 is_stmt 1 view .LVU2378
3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6696 .loc 1 3191 11 is_stmt 0 view .LVU2379
6697 0086 E26B ldr r2, [r4, #60]
3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6698 .loc 1 3191 39 view .LVU2380
6699 0088 5363 str r3, [r2, #52]
3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
6700 .loc 1 3194 7 is_stmt 1 view .LVU2381
3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
6701 .loc 1 3194 69 is_stmt 0 view .LVU2382
6702 008a 2168 ldr r1, [r4]
3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
6703 .loc 1 3194 23 view .LVU2383
6704 008c 238D ldrh r3, [r4, #40]
6705 008e 2A46 mov r2, r5
6706 0090 2431 adds r1, r1, #36
6707 0092 E06B ldr r0, [r4, #60]
6708 0094 FFF7FEFF bl HAL_DMA_Start_IT
6709 .LVL448:
3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6710 .loc 1 3212 5 is_stmt 1 view .LVU2384
3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6711 .loc 1 3212 8 is_stmt 0 view .LVU2385
6712 0098 0546 mov r5, r0
6713 009a 48B3 cbz r0, .L446
3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6714 .loc 1 3232 7 is_stmt 1 view .LVU2386
3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6715 .loc 1 3232 23 is_stmt 0 view .LVU2387
6716 009c 2023 movs r3, #32
6717 009e 84F84130 strb r3, [r4, #65]
3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6718 .loc 1 3233 7 is_stmt 1 view .LVU2388
3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6719 .loc 1 3233 23 is_stmt 0 view .LVU2389
6720 00a2 0022 movs r2, #0
6721 00a4 84F84220 strb r2, [r4, #66]
3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6722 .loc 1 3236 7 is_stmt 1 view .LVU2390
ARM GAS /tmp/ccJ8PJrU.s page 290
3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6723 .loc 1 3236 11 is_stmt 0 view .LVU2391
6724 00a8 636C ldr r3, [r4, #68]
3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6725 .loc 1 3236 23 view .LVU2392
6726 00aa 43F01003 orr r3, r3, #16
6727 00ae 6364 str r3, [r4, #68]
3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6728 .loc 1 3239 7 is_stmt 1 view .LVU2393
3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6729 .loc 1 3239 7 view .LVU2394
6730 00b0 84F84020 strb r2, [r4, #64]
3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6731 .loc 1 3239 7 view .LVU2395
3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6732 .loc 1 3241 7 view .LVU2396
3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6733 .loc 1 3241 14 is_stmt 0 view .LVU2397
6734 00b4 0125 movs r5, #1
6735 00b6 2CE0 b .L430
6736 .LVL449:
6737 .L431:
3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6738 .loc 1 3130 7 is_stmt 1 view .LVU2398
3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
6739 .loc 1 3130 23 is_stmt 0 view .LVU2399
6740 00b8 4FF40073 mov r3, #512
6741 00bc 6364 str r3, [r4, #68]
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6742 .loc 1 3131 7 is_stmt 1 view .LVU2400
3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6743 .loc 1 3131 15 is_stmt 0 view .LVU2401
6744 00be 0125 movs r5, #1
6745 00c0 27E0 b .L430
6746 .LVL450:
6747 .L433:
3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6748 .loc 1 3159 7 is_stmt 1 view .LVU2402
3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6749 .loc 1 3159 28 is_stmt 0 view .LVU2403
6750 00c2 638D ldrh r3, [r4, #42]
3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6751 .loc 1 3159 22 view .LVU2404
6752 00c4 2385 strh r3, [r4, #40] @ movhi
6753 00c6 CDE7 b .L434
6754 .L445:
3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6755 .loc 1 3166 7 is_stmt 1 view .LVU2405
3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6756 .loc 1 3166 30 is_stmt 0 view .LVU2406
6757 00c8 D2B2 uxtb r2, r2
6758 .LVL451:
3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6759 .loc 1 3166 28 view .LVU2407
6760 00ca 8A62 str r2, [r1, #40]
3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6761 .loc 1 3169 7 is_stmt 1 view .LVU2408
ARM GAS /tmp/ccJ8PJrU.s page 291
3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6762 .loc 1 3169 24 is_stmt 0 view .LVU2409
6763 00cc 4FF0FF33 mov r3, #-1
6764 00d0 2365 str r3, [r4, #80]
6765 00d2 CDE7 b .L436
6766 .L437:
3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6767 .loc 1 3200 7 is_stmt 1 view .LVU2410
3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
6768 .loc 1 3200 23 is_stmt 0 view .LVU2411
6769 00d4 2023 movs r3, #32
6770 00d6 84F84130 strb r3, [r4, #65]
3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6771 .loc 1 3201 7 is_stmt 1 view .LVU2412
3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6772 .loc 1 3201 23 is_stmt 0 view .LVU2413
6773 00da 0022 movs r2, #0
6774 00dc 84F84220 strb r2, [r4, #66]
3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6775 .loc 1 3204 7 is_stmt 1 view .LVU2414
3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6776 .loc 1 3204 11 is_stmt 0 view .LVU2415
6777 00e0 636C ldr r3, [r4, #68]
3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6778 .loc 1 3204 23 view .LVU2416
6779 00e2 43F08003 orr r3, r3, #128
6780 00e6 6364 str r3, [r4, #68]
3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6781 .loc 1 3207 7 is_stmt 1 view .LVU2417
3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6782 .loc 1 3207 7 view .LVU2418
6783 00e8 84F84020 strb r2, [r4, #64]
3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6784 .loc 1 3207 7 view .LVU2419
3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6785 .loc 1 3209 7 view .LVU2420
3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6786 .loc 1 3209 14 is_stmt 0 view .LVU2421
6787 00ec 0125 movs r5, #1
6788 00ee 10E0 b .L430
6789 .LVL452:
6790 .L446:
3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6791 .loc 1 3215 7 is_stmt 1 view .LVU2422
6792 00f0 0F4B ldr r3, .L447+16
6793 00f2 0093 str r3, [sp]
6794 00f4 0023 movs r3, #0
6795 00f6 FAB2 uxtb r2, r7
6796 00f8 3146 mov r1, r6
6797 00fa 2046 mov r0, r4
6798 .LVL453:
3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6799 .loc 1 3215 7 is_stmt 0 view .LVU2423
6800 00fc FFF7FEFF bl I2C_TransferConfig
6801 .LVL454:
3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6802 .loc 1 3218 7 is_stmt 1 view .LVU2424
ARM GAS /tmp/ccJ8PJrU.s page 292
3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6803 .loc 1 3218 7 view .LVU2425
6804 0100 0023 movs r3, #0
6805 0102 84F84030 strb r3, [r4, #64]
3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6806 .loc 1 3218 7 view .LVU2426
3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6807 .loc 1 3227 7 view .LVU2427
6808 0106 0121 movs r1, #1
6809 0108 2046 mov r0, r4
6810 010a FFF7FEFF bl I2C_Enable_IRQ
6811 .LVL455:
3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6812 .loc 1 3244 5 view .LVU2428
3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6813 .loc 1 3244 12 is_stmt 0 view .LVU2429
6814 010e 00E0 b .L430
6815 .LVL456:
6816 .L440:
3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6817 .loc 1 3248 12 view .LVU2430
6818 0110 0225 movs r5, #2
6819 .LVL457:
6820 .L430:
3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6821 .loc 1 3250 1 view .LVU2431
6822 0112 2846 mov r0, r5
6823 0114 03B0 add sp, sp, #12
6824 .cfi_remember_state
6825 .cfi_def_cfa_offset 20
6826 @ sp needed
6827 0116 F0BD pop {r4, r5, r6, r7, pc}
6828 .LVL458:
6829 .L441:
6830 .cfi_restore_state
3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6831 .loc 1 3136 14 view .LVU2432
6832 0118 0225 movs r5, #2
6833 011a FAE7 b .L430
6834 .L442:
3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6835 .loc 1 3140 5 discriminator 1 view .LVU2433
6836 011c 0225 movs r5, #2
6837 011e F8E7 b .L430
6838 .L448:
6839 .align 2
6840 .L447:
6841 0120 0000FFFF .word -65536
6842 0124 00000000 .word I2C_Mem_ISR_DMA
6843 0128 00000000 .word I2C_DMAMasterReceiveCplt
6844 012c 00000000 .word I2C_DMAError
6845 0130 00200080 .word -2147475456
6846 .cfi_endproc
6847 .LFE144:
6849 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits
6850 .align 1
6851 .global HAL_I2C_IsDeviceReady
ARM GAS /tmp/ccJ8PJrU.s page 293
6852 .syntax unified
6853 .thumb
6854 .thumb_func
6856 HAL_I2C_IsDeviceReady:
6857 .LVL459:
6858 .LFB145:
3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
6859 .loc 1 3265 1 is_stmt 1 view -0
6860 .cfi_startproc
6861 @ args = 0, pretend = 0, frame = 8
6862 @ frame_needed = 0, uses_anonymous_args = 0
3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart;
6863 .loc 1 3265 1 is_stmt 0 view .LVU2435
6864 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
6865 .cfi_def_cfa_offset 28
6866 .cfi_offset 4, -28
6867 .cfi_offset 5, -24
6868 .cfi_offset 6, -20
6869 .cfi_offset 7, -16
6870 .cfi_offset 8, -12
6871 .cfi_offset 9, -8
6872 .cfi_offset 14, -4
6873 0004 85B0 sub sp, sp, #20
6874 .cfi_def_cfa_offset 48
6875 0006 1D46 mov r5, r3
3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6876 .loc 1 3266 3 is_stmt 1 view .LVU2436
3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6877 .loc 1 3268 3 view .LVU2437
3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6878 .loc 1 3268 17 is_stmt 0 view .LVU2438
6879 0008 0023 movs r3, #0
6880 .LVL460:
3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6881 .loc 1 3268 17 view .LVU2439
6882 000a 0393 str r3, [sp, #12]
3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2;
6883 .loc 1 3270 3 is_stmt 1 view .LVU2440
3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6884 .loc 1 3271 3 view .LVU2441
3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6885 .loc 1 3273 3 view .LVU2442
3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6886 .loc 1 3273 11 is_stmt 0 view .LVU2443
6887 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
6888 0010 DBB2 uxtb r3, r3
3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6889 .loc 1 3273 6 view .LVU2444
6890 0012 202B cmp r3, #32
6891 0014 40F08980 bne .L460
6892 0018 0646 mov r6, r0
6893 001a 8846 mov r8, r1
6894 001c 9146 mov r9, r2
3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6895 .loc 1 3275 5 is_stmt 1 view .LVU2445
3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6896 .loc 1 3275 9 is_stmt 0 view .LVU2446
ARM GAS /tmp/ccJ8PJrU.s page 294
6897 001e 0368 ldr r3, [r0]
6898 0020 9B69 ldr r3, [r3, #24]
3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6899 .loc 1 3275 8 view .LVU2447
6900 0022 13F4004F tst r3, #32768
6901 0026 40F08280 bne .L461
3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6902 .loc 1 3281 5 is_stmt 1 view .LVU2448
3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6903 .loc 1 3281 5 view .LVU2449
6904 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
6905 002e 012B cmp r3, #1
6906 0030 7FD0 beq .L462
3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6907 .loc 1 3281 5 discriminator 2 view .LVU2450
6908 0032 0123 movs r3, #1
6909 0034 80F84030 strb r3, [r0, #64]
3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6910 .loc 1 3281 5 discriminator 2 view .LVU2451
3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6911 .loc 1 3283 5 view .LVU2452
3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
6912 .loc 1 3283 17 is_stmt 0 view .LVU2453
6913 0038 2423 movs r3, #36
6914 003a 80F84130 strb r3, [r0, #65]
3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6915 .loc 1 3284 5 is_stmt 1 view .LVU2454
3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6916 .loc 1 3284 21 is_stmt 0 view .LVU2455
6917 003e 0023 movs r3, #0
6918 0040 4364 str r3, [r0, #68]
6919 0042 41E0 b .L459
6920 .LVL461:
6921 .L468:
3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6922 .loc 1 3289 29 discriminator 1 view .LVU2456
6923 0044 C8F30903 ubfx r3, r8, #0, #10
6924 0048 43F00073 orr r3, r3, #33554432
6925 004c 43F40053 orr r3, r3, #8192
6926 0050 43E0 b .L452
6927 .LVL462:
6928 .L454:
3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6929 .loc 1 3317 9 is_stmt 1 view .LVU2457
3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6930 .loc 1 3317 16 is_stmt 0 view .LVU2458
6931 0052 3368 ldr r3, [r6]
6932 0054 9C69 ldr r4, [r3, #24]
6933 .LVL463:
3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
6934 .loc 1 3317 16 view .LVU2459
6935 0056 C4F34014 ubfx r4, r4, #5, #1
6936 .LVL464:
3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6937 .loc 1 3318 9 is_stmt 1 view .LVU2460
3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6938 .loc 1 3318 16 is_stmt 0 view .LVU2461
ARM GAS /tmp/ccJ8PJrU.s page 295
6939 005a 9B69 ldr r3, [r3, #24]
6940 005c C3F30013 ubfx r3, r3, #4, #1
6941 .LVL465:
6942 .L453:
3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6943 .loc 1 3298 30 is_stmt 1 view .LVU2462
6944 0060 C4B9 cbnz r4, .L456
3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6945 .loc 1 3298 30 is_stmt 0 discriminator 1 view .LVU2463
6946 0062 BBB9 cbnz r3, .L456
3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6947 .loc 1 3300 9 is_stmt 1 view .LVU2464
3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6948 .loc 1 3300 12 is_stmt 0 view .LVU2465
6949 0064 B5F1FF3F cmp r5, #-1
6950 0068 F3D0 beq .L454
3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6951 .loc 1 3302 11 is_stmt 1 view .LVU2466
3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6952 .loc 1 3302 17 is_stmt 0 view .LVU2467
6953 006a FFF7FEFF bl HAL_GetTick
6954 .LVL466:
3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6955 .loc 1 3302 31 discriminator 1 view .LVU2468
6956 006e C01B subs r0, r0, r7
3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6957 .loc 1 3302 14 discriminator 1 view .LVU2469
6958 0070 A842 cmp r0, r5
6959 0072 01D8 bhi .L455
3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6960 .loc 1 3302 55 discriminator 1 view .LVU2470
6961 0074 002D cmp r5, #0
6962 0076 ECD1 bne .L454
6963 .L455:
3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6964 .loc 1 3305 13 is_stmt 1 view .LVU2471
3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6965 .loc 1 3305 25 is_stmt 0 view .LVU2472
6966 0078 2023 movs r3, #32
6967 007a 86F84130 strb r3, [r6, #65]
3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6968 .loc 1 3308 13 is_stmt 1 view .LVU2473
3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6969 .loc 1 3308 17 is_stmt 0 view .LVU2474
6970 007e 736C ldr r3, [r6, #68]
3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6971 .loc 1 3308 29 view .LVU2475
6972 0080 43F02003 orr r3, r3, #32
6973 0084 7364 str r3, [r6, #68]
3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6974 .loc 1 3311 13 is_stmt 1 view .LVU2476
3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6975 .loc 1 3311 13 view .LVU2477
6976 0086 0023 movs r3, #0
6977 0088 86F84030 strb r3, [r6, #64]
3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6978 .loc 1 3311 13 view .LVU2478
ARM GAS /tmp/ccJ8PJrU.s page 296
3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6979 .loc 1 3313 13 view .LVU2479
3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
6980 .loc 1 3313 20 is_stmt 0 view .LVU2480
6981 008c 0120 movs r0, #1
6982 .LVL467:
6983 .L450:
3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
6984 .loc 1 3375 1 view .LVU2481
6985 008e 05B0 add sp, sp, #20
6986 .cfi_remember_state
6987 .cfi_def_cfa_offset 28
6988 @ sp needed
6989 0090 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
6990 .LVL468:
6991 .L456:
6992 .cfi_restore_state
3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6993 .loc 1 3322 7 is_stmt 1 view .LVU2482
3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6994 .loc 1 3322 11 is_stmt 0 view .LVU2483
6995 0094 3368 ldr r3, [r6]
6996 .LVL469:
3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6997 .loc 1 3322 11 view .LVU2484
6998 0096 9B69 ldr r3, [r3, #24]
3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
6999 .loc 1 3322 10 view .LVU2485
7000 0098 13F0100F tst r3, #16
7001 009c 2AD0 beq .L466
3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7002 .loc 1 3344 9 is_stmt 1 view .LVU2486
3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7003 .loc 1 3344 13 is_stmt 0 view .LVU2487
7004 009e 0097 str r7, [sp]
7005 00a0 2B46 mov r3, r5
7006 00a2 0022 movs r2, #0
7007 00a4 2021 movs r1, #32
7008 00a6 3046 mov r0, r6
7009 00a8 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
7010 .LVL470:
3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7011 .loc 1 3344 12 discriminator 1 view .LVU2488
7012 00ac 0028 cmp r0, #0
7013 00ae 44D1 bne .L464
3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7014 .loc 1 3350 9 is_stmt 1 view .LVU2489
7015 00b0 3368 ldr r3, [r6]
7016 00b2 1022 movs r2, #16
7017 00b4 DA61 str r2, [r3, #28]
3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7018 .loc 1 3353 9 view .LVU2490
7019 00b6 3368 ldr r3, [r6]
7020 00b8 2022 movs r2, #32
7021 00ba DA61 str r2, [r3, #28]
3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials);
7022 .loc 1 3357 7 view .LVU2491
ARM GAS /tmp/ccJ8PJrU.s page 297
3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials);
7023 .loc 1 3357 17 is_stmt 0 view .LVU2492
7024 00bc 039B ldr r3, [sp, #12]
7025 00be 0133 adds r3, r3, #1
7026 00c0 0393 str r3, [sp, #12]
3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7027 .loc 1 3358 25 is_stmt 1 view .LVU2493
7028 00c2 039B ldr r3, [sp, #12]
7029 00c4 4B45 cmp r3, r9
7030 00c6 26D2 bcs .L467
7031 .LVL471:
7032 .L459:
3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7033 .loc 1 3286 5 view .LVU2494
3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7034 .loc 1 3289 7 view .LVU2495
3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7035 .loc 1 3289 29 is_stmt 0 view .LVU2496
7036 00c8 F368 ldr r3, [r6, #12]
7037 00ca 012B cmp r3, #1
7038 00cc BAD0 beq .L468
3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7039 .loc 1 3289 29 discriminator 2 view .LVU2497
7040 00ce C8F30903 ubfx r3, r8, #0, #10
7041 00d2 43F00073 orr r3, r3, #33554432
7042 00d6 43F42053 orr r3, r3, #10240
7043 .L452:
3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7044 .loc 1 3289 11 discriminator 4 view .LVU2498
7045 00da 3268 ldr r2, [r6]
3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7046 .loc 1 3289 27 discriminator 4 view .LVU2499
7047 00dc 5360 str r3, [r2, #4]
3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7048 .loc 1 3293 7 is_stmt 1 view .LVU2500
3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7049 .loc 1 3293 19 is_stmt 0 view .LVU2501
7050 00de FFF7FEFF bl HAL_GetTick
7051 .LVL472:
7052 00e2 0746 mov r7, r0
7053 .LVL473:
3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
7054 .loc 1 3295 7 is_stmt 1 view .LVU2502
3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF);
7055 .loc 1 3295 14 is_stmt 0 view .LVU2503
7056 00e4 3368 ldr r3, [r6]
7057 00e6 9C69 ldr r4, [r3, #24]
7058 00e8 C4F34014 ubfx r4, r4, #5, #1
7059 .LVL474:
3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7060 .loc 1 3296 7 is_stmt 1 view .LVU2504
3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7061 .loc 1 3296 14 is_stmt 0 view .LVU2505
7062 00ec 9B69 ldr r3, [r3, #24]
7063 00ee C3F30013 ubfx r3, r3, #4, #1
7064 .LVL475:
3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 298
7065 .loc 1 3298 7 is_stmt 1 view .LVU2506
3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7066 .loc 1 3298 13 is_stmt 0 view .LVU2507
7067 00f2 B5E7 b .L453
7068 .LVL476:
7069 .L466:
3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7070 .loc 1 3325 9 is_stmt 1 view .LVU2508
3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7071 .loc 1 3325 13 is_stmt 0 view .LVU2509
7072 00f4 0097 str r7, [sp]
7073 00f6 2B46 mov r3, r5
7074 00f8 0022 movs r2, #0
7075 00fa 2021 movs r1, #32
7076 00fc 3046 mov r0, r6
7077 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout
7078 .LVL477:
3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7079 .loc 1 3325 12 discriminator 1 view .LVU2510
7080 0102 C0B9 cbnz r0, .L463
3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7081 .loc 1 3331 9 is_stmt 1 view .LVU2511
7082 0104 3268 ldr r2, [r6]
7083 0106 2023 movs r3, #32
7084 0108 D361 str r3, [r2, #28]
3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7085 .loc 1 3334 9 view .LVU2512
3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7086 .loc 1 3334 21 is_stmt 0 view .LVU2513
7087 010a 86F84130 strb r3, [r6, #65]
3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7088 .loc 1 3337 9 is_stmt 1 view .LVU2514
3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7089 .loc 1 3337 9 view .LVU2515
7090 010e 0023 movs r3, #0
7091 0110 86F84030 strb r3, [r6, #64]
3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7092 .loc 1 3337 9 view .LVU2516
3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7093 .loc 1 3339 9 view .LVU2517
3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7094 .loc 1 3339 16 is_stmt 0 view .LVU2518
7095 0114 BBE7 b .L450
7096 .L467:
3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7097 .loc 1 3361 5 is_stmt 1 view .LVU2519
3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7098 .loc 1 3361 17 is_stmt 0 view .LVU2520
7099 0116 86F84120 strb r2, [r6, #65]
3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7100 .loc 1 3364 5 is_stmt 1 view .LVU2521
3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7101 .loc 1 3364 9 is_stmt 0 view .LVU2522
7102 011a 736C ldr r3, [r6, #68]
3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7103 .loc 1 3364 21 view .LVU2523
7104 011c 1343 orrs r3, r3, r2
ARM GAS /tmp/ccJ8PJrU.s page 299
7105 011e 7364 str r3, [r6, #68]
3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7106 .loc 1 3367 5 is_stmt 1 view .LVU2524
3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7107 .loc 1 3367 5 view .LVU2525
7108 0120 0023 movs r3, #0
7109 0122 86F84030 strb r3, [r6, #64]
3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7110 .loc 1 3367 5 view .LVU2526
3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7111 .loc 1 3369 5 view .LVU2527
3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7112 .loc 1 3369 12 is_stmt 0 view .LVU2528
7113 0126 0120 movs r0, #1
7114 0128 B1E7 b .L450
7115 .LVL478:
7116 .L460:
3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7117 .loc 1 3373 12 view .LVU2529
7118 012a 0220 movs r0, #2
7119 .LVL479:
3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7120 .loc 1 3373 12 view .LVU2530
7121 012c AFE7 b .L450
7122 .LVL480:
7123 .L461:
3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7124 .loc 1 3277 14 view .LVU2531
7125 012e 0220 movs r0, #2
7126 .LVL481:
3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7127 .loc 1 3277 14 view .LVU2532
7128 0130 ADE7 b .L450
7129 .LVL482:
7130 .L462:
3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7131 .loc 1 3281 5 discriminator 1 view .LVU2533
7132 0132 0220 movs r0, #2
7133 .LVL483:
3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7134 .loc 1 3281 5 discriminator 1 view .LVU2534
7135 0134 ABE7 b .L450
7136 .LVL484:
7137 .L463:
3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7138 .loc 1 3327 18 view .LVU2535
7139 0136 0120 movs r0, #1
7140 0138 A9E7 b .L450
7141 .L464:
3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7142 .loc 1 3346 18 view .LVU2536
7143 013a 0120 movs r0, #1
7144 013c A7E7 b .L450
7145 .cfi_endproc
7146 .LFE145:
7148 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits
7149 .align 1
ARM GAS /tmp/ccJ8PJrU.s page 300
7150 .global HAL_I2C_Master_Seq_Transmit_IT
7151 .syntax unified
7152 .thumb
7153 .thumb_func
7155 HAL_I2C_Master_Seq_Transmit_IT:
7156 .LVL485:
7157 .LFB146:
3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7158 .loc 1 3391 1 is_stmt 1 view -0
7159 .cfi_startproc
7160 @ args = 4, pretend = 0, frame = 0
7161 @ frame_needed = 0, uses_anonymous_args = 0
3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7162 .loc 1 3391 1 is_stmt 0 view .LVU2538
7163 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
7164 .cfi_def_cfa_offset 24
7165 .cfi_offset 4, -24
7166 .cfi_offset 5, -20
7167 .cfi_offset 6, -16
7168 .cfi_offset 7, -12
7169 .cfi_offset 8, -8
7170 .cfi_offset 14, -4
7171 0004 82B0 sub sp, sp, #8
7172 .cfi_def_cfa_offset 32
7173 0006 0446 mov r4, r0
7174 0008 089E ldr r6, [sp, #32]
3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
7175 .loc 1 3392 3 is_stmt 1 view .LVU2539
3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7176 .loc 1 3393 3 view .LVU2540
7177 .LVL486:
3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7178 .loc 1 3394 3 view .LVU2541
3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7179 .loc 1 3397 3 view .LVU2542
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7180 .loc 1 3399 3 view .LVU2543
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7181 .loc 1 3399 11 is_stmt 0 view .LVU2544
7182 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7183 .LVL487:
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7184 .loc 1 3399 11 view .LVU2545
7185 000e C0B2 uxtb r0, r0
3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7186 .loc 1 3399 6 view .LVU2546
7187 0010 2028 cmp r0, #32
7188 0012 71D1 bne .L480
7189 0014 0D46 mov r5, r1
3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7190 .loc 1 3402 5 is_stmt 1 view .LVU2547
3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7191 .loc 1 3402 5 view .LVU2548
7192 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7193 .LVL488:
3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7194 .loc 1 3402 5 is_stmt 0 view .LVU2549
ARM GAS /tmp/ccJ8PJrU.s page 301
7195 001a 0129 cmp r1, #1
7196 001c 6ED0 beq .L481
3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7197 .loc 1 3402 5 is_stmt 1 discriminator 2 view .LVU2550
7198 001e 0121 movs r1, #1
7199 0020 84F84010 strb r1, [r4, #64]
3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7200 .loc 1 3402 5 discriminator 2 view .LVU2551
3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7201 .loc 1 3404 5 view .LVU2552
3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7202 .loc 1 3404 21 is_stmt 0 view .LVU2553
7203 0024 2121 movs r1, #33
7204 0026 84F84110 strb r1, [r4, #65]
3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7205 .loc 1 3405 5 is_stmt 1 view .LVU2554
3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7206 .loc 1 3405 21 is_stmt 0 view .LVU2555
7207 002a 1021 movs r1, #16
7208 002c 84F84210 strb r1, [r4, #66]
3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7209 .loc 1 3406 5 is_stmt 1 view .LVU2556
3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7210 .loc 1 3406 21 is_stmt 0 view .LVU2557
7211 0030 0021 movs r1, #0
7212 0032 6164 str r1, [r4, #68]
3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7213 .loc 1 3409 5 is_stmt 1 view .LVU2558
3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7214 .loc 1 3409 23 is_stmt 0 view .LVU2559
7215 0034 6262 str r2, [r4, #36]
3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7216 .loc 1 3410 5 is_stmt 1 view .LVU2560
3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7217 .loc 1 3410 23 is_stmt 0 view .LVU2561
7218 0036 6385 strh r3, [r4, #42] @ movhi
3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7219 .loc 1 3411 5 is_stmt 1 view .LVU2562
3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7220 .loc 1 3411 23 is_stmt 0 view .LVU2563
7221 0038 E662 str r6, [r4, #44]
3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7222 .loc 1 3412 5 is_stmt 1 view .LVU2564
3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7223 .loc 1 3412 23 is_stmt 0 view .LVU2565
7224 003a 314B ldr r3, .L487
7225 .LVL489:
3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7226 .loc 1 3412 23 view .LVU2566
7227 003c 6363 str r3, [r4, #52]
3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7228 .loc 1 3415 5 is_stmt 1 view .LVU2567
3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7229 .loc 1 3415 13 is_stmt 0 view .LVU2568
7230 003e 638D ldrh r3, [r4, #42]
7231 0040 9BB2 uxth r3, r3
3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 302
7232 .loc 1 3415 8 view .LVU2569
7233 0042 FF2B cmp r3, #255
7234 0044 0CD9 bls .L471
3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7235 .loc 1 3417 7 is_stmt 1 view .LVU2570
3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7236 .loc 1 3417 22 is_stmt 0 view .LVU2571
7237 0046 FF23 movs r3, #255
7238 0048 2385 strh r3, [r4, #40] @ movhi
3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7239 .loc 1 3418 7 is_stmt 1 view .LVU2572
7240 .LVL490:
3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7241 .loc 1 3418 16 is_stmt 0 view .LVU2573
7242 004a 4FF08077 mov r7, #16777216
7243 .LVL491:
7244 .L472:
3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7245 .loc 1 3426 5 is_stmt 1 view .LVU2574
3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7246 .loc 1 3426 14 is_stmt 0 view .LVU2575
7247 004e 238D ldrh r3, [r4, #40]
3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7248 .loc 1 3426 8 view .LVU2576
7249 0050 DBB1 cbz r3, .L482
3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7250 .loc 1 3426 31 discriminator 1 view .LVU2577
7251 0052 4EB1 cbz r6, .L474
3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7252 .loc 1 3426 68 discriminator 2 view .LVU2578
7253 0054 B6F1007F cmp r6, #33554432
7254 0058 06D0 beq .L474
3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7255 .loc 1 3394 12 view .LVU2579
7256 005a 4FF00008 mov r8, #0
7257 005e 16E0 b .L473
7258 .LVL492:
7259 .L471:
3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7260 .loc 1 3422 7 is_stmt 1 view .LVU2580
3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7261 .loc 1 3422 28 is_stmt 0 view .LVU2581
7262 0060 638D ldrh r3, [r4, #42]
3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7263 .loc 1 3422 22 view .LVU2582
7264 0062 2385 strh r3, [r4, #40] @ movhi
3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7265 .loc 1 3423 7 is_stmt 1 view .LVU2583
3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7266 .loc 1 3423 16 is_stmt 0 view .LVU2584
7267 0064 E76A ldr r7, [r4, #44]
7268 .LVL493:
3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7269 .loc 1 3423 16 view .LVU2585
7270 0066 F2E7 b .L472
7271 .L474:
3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 303
7272 .loc 1 3431 7 is_stmt 1 view .LVU2586
3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7273 .loc 1 3431 11 is_stmt 0 view .LVU2587
7274 0068 2368 ldr r3, [r4]
3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7275 .loc 1 3431 30 view .LVU2588
7276 006a 1278 ldrb r2, [r2] @ zero_extendqisi2
7277 .LVL494:
3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7278 .loc 1 3431 28 view .LVU2589
7279 006c 9A62 str r2, [r3, #40]
7280 .LVL495:
3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7281 .loc 1 3434 7 is_stmt 1 view .LVU2590
3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7282 .loc 1 3434 11 is_stmt 0 view .LVU2591
7283 006e 636A ldr r3, [r4, #36]
3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7284 .loc 1 3434 21 view .LVU2592
7285 0070 0133 adds r3, r3, #1
7286 0072 6362 str r3, [r4, #36]
3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
7287 .loc 1 3436 7 is_stmt 1 view .LVU2593
3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
7288 .loc 1 3436 24 is_stmt 0 view .LVU2594
7289 0074 B4F82880 ldrh r8, [r4, #40]
7290 .LVL496:
3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
7291 .loc 1 3437 7 is_stmt 1 view .LVU2595
3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
7292 .loc 1 3437 11 is_stmt 0 view .LVU2596
7293 0078 638D ldrh r3, [r4, #42]
7294 007a 9BB2 uxth r3, r3
3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
7295 .loc 1 3437 22 view .LVU2597
7296 007c 013B subs r3, r3, #1
7297 007e 9BB2 uxth r3, r3
7298 0080 6385 strh r3, [r4, #42] @ movhi
3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7299 .loc 1 3438 7 is_stmt 1 view .LVU2598
3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7300 .loc 1 3438 21 is_stmt 0 view .LVU2599
7301 0082 08F1FF33 add r3, r8, #-1
7302 0086 2385 strh r3, [r4, #40] @ movhi
7303 0088 01E0 b .L473
7304 .LVL497:
7305 .L482:
3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7306 .loc 1 3394 12 view .LVU2600
7307 008a 4FF00008 mov r8, #0
7308 .LVL498:
7309 .L473:
3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7310 .loc 1 3444 5 is_stmt 1 view .LVU2601
3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7311 .loc 1 3444 14 is_stmt 0 view .LVU2602
7312 008e 236B ldr r3, [r4, #48]
ARM GAS /tmp/ccJ8PJrU.s page 304
3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7313 .loc 1 3444 8 view .LVU2603
7314 0090 112B cmp r3, #17
7315 0092 06D1 bne .L475
3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7316 .loc 1 3445 10 view .LVU2604
7317 0094 AA2E cmp r6, #170
7318 0096 04D0 beq .L475
3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7319 .loc 1 3445 10 discriminator 2 view .LVU2605
7320 0098 B6F52A4F cmp r6, #43520
7321 009c 01D0 beq .L475
3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7322 .loc 1 3447 19 view .LVU2606
7323 009e 0023 movs r3, #0
7324 00a0 08E0 b .L476
7325 .L475:
3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7326 .loc 1 3452 7 is_stmt 1 view .LVU2607
7327 00a2 2046 mov r0, r4
7328 00a4 FFF7FEFF bl I2C_ConvertOtherXferOptions
7329 .LVL499:
3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7330 .loc 1 3455 7 view .LVU2608
3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7331 .loc 1 3455 15 is_stmt 0 view .LVU2609
7332 00a8 638D ldrh r3, [r4, #42]
7333 00aa 9BB2 uxth r3, r3
3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7334 .loc 1 3455 10 view .LVU2610
7335 00ac FF2B cmp r3, #255
7336 00ae 18D8 bhi .L485
3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7337 .loc 1 3457 9 is_stmt 1 view .LVU2611
3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7338 .loc 1 3457 18 is_stmt 0 view .LVU2612
7339 00b0 E76A ldr r7, [r4, #44]
7340 .LVL500:
3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7341 .loc 1 3393 12 view .LVU2613
7342 00b2 144B ldr r3, .L487+4
7343 .L476:
7344 .LVL501:
3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7345 .loc 1 3462 5 is_stmt 1 view .LVU2614
3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7346 .loc 1 3462 8 is_stmt 0 view .LVU2615
7347 00b4 16B1 cbz r6, .L477
3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7348 .loc 1 3462 42 discriminator 1 view .LVU2616
7349 00b6 B6F1007F cmp r6, #33554432
7350 00ba 14D1 bne .L478
7351 .L477:
3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7352 .loc 1 3464 7 is_stmt 1 view .LVU2617
7353 00bc 0093 str r3, [sp]
7354 00be 3B46 mov r3, r7
ARM GAS /tmp/ccJ8PJrU.s page 305
7355 .LVL502:
3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7356 .loc 1 3464 7 is_stmt 0 view .LVU2618
7357 00c0 5FFA88F2 uxtb r2, r8
7358 00c4 2946 mov r1, r5
7359 00c6 2046 mov r0, r4
7360 00c8 FFF7FEFF bl I2C_TransferConfig
7361 .LVL503:
7362 .L479:
3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7363 .loc 1 3472 5 is_stmt 1 view .LVU2619
3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7364 .loc 1 3472 5 view .LVU2620
7365 00cc 0025 movs r5, #0
7366 .LVL504:
3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7367 .loc 1 3472 5 is_stmt 0 view .LVU2621
7368 00ce 84F84050 strb r5, [r4, #64]
3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7369 .loc 1 3472 5 is_stmt 1 view .LVU2622
3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7370 .loc 1 3481 5 view .LVU2623
7371 00d2 0121 movs r1, #1
7372 00d4 2046 mov r0, r4
7373 00d6 FFF7FEFF bl I2C_Enable_IRQ
7374 .LVL505:
3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7375 .loc 1 3483 5 view .LVU2624
3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7376 .loc 1 3483 12 is_stmt 0 view .LVU2625
7377 00da 2846 mov r0, r5
7378 .LVL506:
7379 .L470:
3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7380 .loc 1 3489 1 view .LVU2626
7381 00dc 02B0 add sp, sp, #8
7382 .cfi_remember_state
7383 .cfi_def_cfa_offset 24
7384 @ sp needed
7385 00de BDE8F081 pop {r4, r5, r6, r7, r8, pc}
7386 .LVL507:
7387 .L485:
7388 .cfi_restore_state
3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7389 .loc 1 3393 12 view .LVU2627
7390 00e2 084B ldr r3, .L487+4
7391 00e4 E6E7 b .L476
7392 .LVL508:
7393 .L478:
3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7394 .loc 1 3468 7 is_stmt 1 view .LVU2628
7395 00e6 0093 str r3, [sp]
7396 00e8 3B46 mov r3, r7
7397 .LVL509:
3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7398 .loc 1 3468 7 is_stmt 0 view .LVU2629
7399 00ea 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
ARM GAS /tmp/ccJ8PJrU.s page 306
7400 00ee 2946 mov r1, r5
7401 00f0 2046 mov r0, r4
7402 00f2 FFF7FEFF bl I2C_TransferConfig
7403 .LVL510:
3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7404 .loc 1 3468 7 view .LVU2630
7405 00f6 E9E7 b .L479
7406 .LVL511:
7407 .L480:
3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7408 .loc 1 3487 12 view .LVU2631
7409 00f8 0220 movs r0, #2
7410 00fa EFE7 b .L470
7411 .LVL512:
7412 .L481:
3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7413 .loc 1 3402 5 discriminator 1 view .LVU2632
7414 00fc 0220 movs r0, #2
7415 00fe EDE7 b .L470
7416 .L488:
7417 .align 2
7418 .L487:
7419 0100 00000000 .word I2C_Master_ISR_IT
7420 0104 00200080 .word -2147475456
7421 .cfi_endproc
7422 .LFE146:
7424 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits
7425 .align 1
7426 .global HAL_I2C_Master_Seq_Transmit_DMA
7427 .syntax unified
7428 .thumb
7429 .thumb_func
7431 HAL_I2C_Master_Seq_Transmit_DMA:
7432 .LVL513:
7433 .LFB147:
3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7434 .loc 1 3505 1 is_stmt 1 view -0
7435 .cfi_startproc
7436 @ args = 4, pretend = 0, frame = 0
7437 @ frame_needed = 0, uses_anonymous_args = 0
3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7438 .loc 1 3505 1 is_stmt 0 view .LVU2634
7439 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr}
7440 .cfi_def_cfa_offset 28
7441 .cfi_offset 4, -28
7442 .cfi_offset 5, -24
7443 .cfi_offset 6, -20
7444 .cfi_offset 7, -16
7445 .cfi_offset 8, -12
7446 .cfi_offset 9, -8
7447 .cfi_offset 14, -4
7448 0004 83B0 sub sp, sp, #12
7449 .cfi_def_cfa_offset 40
7450 0006 0446 mov r4, r0
7451 0008 0A9E ldr r6, [sp, #40]
3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE;
7452 .loc 1 3506 3 is_stmt 1 view .LVU2635
ARM GAS /tmp/ccJ8PJrU.s page 307
3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7453 .loc 1 3507 3 view .LVU2636
7454 .LVL514:
3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U;
7455 .loc 1 3508 3 view .LVU2637
3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7456 .loc 1 3509 3 view .LVU2638
3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7457 .loc 1 3512 3 view .LVU2639
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7458 .loc 1 3514 3 view .LVU2640
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7459 .loc 1 3514 11 is_stmt 0 view .LVU2641
7460 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7461 .LVL515:
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7462 .loc 1 3514 11 view .LVU2642
7463 000e C0B2 uxtb r0, r0
3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7464 .loc 1 3514 6 view .LVU2643
7465 0010 2028 cmp r0, #32
7466 0012 40F0D480 bne .L508
7467 0016 0D46 mov r5, r1
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7468 .loc 1 3517 5 is_stmt 1 view .LVU2644
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7469 .loc 1 3517 5 view .LVU2645
7470 0018 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7471 .LVL516:
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7472 .loc 1 3517 5 is_stmt 0 view .LVU2646
7473 001c 0129 cmp r1, #1
7474 001e 00F0D280 beq .L509
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7475 .loc 1 3517 5 is_stmt 1 discriminator 2 view .LVU2647
7476 0022 0121 movs r1, #1
7477 0024 84F84010 strb r1, [r4, #64]
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7478 .loc 1 3517 5 discriminator 2 view .LVU2648
3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7479 .loc 1 3519 5 view .LVU2649
3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7480 .loc 1 3519 21 is_stmt 0 view .LVU2650
7481 0028 2121 movs r1, #33
7482 002a 84F84110 strb r1, [r4, #65]
3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7483 .loc 1 3520 5 is_stmt 1 view .LVU2651
3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7484 .loc 1 3520 21 is_stmt 0 view .LVU2652
7485 002e 1021 movs r1, #16
7486 0030 84F84210 strb r1, [r4, #66]
3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7487 .loc 1 3521 5 is_stmt 1 view .LVU2653
3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7488 .loc 1 3521 21 is_stmt 0 view .LVU2654
7489 0034 0021 movs r1, #0
7490 0036 6164 str r1, [r4, #68]
ARM GAS /tmp/ccJ8PJrU.s page 308
3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7491 .loc 1 3524 5 is_stmt 1 view .LVU2655
3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7492 .loc 1 3524 23 is_stmt 0 view .LVU2656
7493 0038 6262 str r2, [r4, #36]
3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7494 .loc 1 3525 5 is_stmt 1 view .LVU2657
3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7495 .loc 1 3525 23 is_stmt 0 view .LVU2658
7496 003a 6385 strh r3, [r4, #42] @ movhi
3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7497 .loc 1 3526 5 is_stmt 1 view .LVU2659
3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
7498 .loc 1 3526 23 is_stmt 0 view .LVU2660
7499 003c E662 str r6, [r4, #44]
3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7500 .loc 1 3527 5 is_stmt 1 view .LVU2661
3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7501 .loc 1 3527 23 is_stmt 0 view .LVU2662
7502 003e 634B ldr r3, .L516
7503 .LVL517:
3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7504 .loc 1 3527 23 view .LVU2663
7505 0040 6363 str r3, [r4, #52]
3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7506 .loc 1 3530 5 is_stmt 1 view .LVU2664
3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7507 .loc 1 3530 13 is_stmt 0 view .LVU2665
7508 0042 638D ldrh r3, [r4, #42]
7509 0044 9BB2 uxth r3, r3
3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7510 .loc 1 3530 8 view .LVU2666
7511 0046 FF2B cmp r3, #255
7512 0048 0CD9 bls .L491
3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7513 .loc 1 3532 7 is_stmt 1 view .LVU2667
3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7514 .loc 1 3532 22 is_stmt 0 view .LVU2668
7515 004a FF23 movs r3, #255
7516 004c 2385 strh r3, [r4, #40] @ movhi
3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7517 .loc 1 3533 7 is_stmt 1 view .LVU2669
7518 .LVL518:
3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7519 .loc 1 3533 16 is_stmt 0 view .LVU2670
7520 004e 4FF08077 mov r7, #16777216
7521 .LVL519:
7522 .L492:
3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7523 .loc 1 3541 5 is_stmt 1 view .LVU2671
3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7524 .loc 1 3541 14 is_stmt 0 view .LVU2672
7525 0052 238D ldrh r3, [r4, #40]
3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7526 .loc 1 3541 8 view .LVU2673
7527 0054 DBB1 cbz r3, .L510
3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
ARM GAS /tmp/ccJ8PJrU.s page 309
7528 .loc 1 3541 31 discriminator 1 view .LVU2674
7529 0056 4EB1 cbz r6, .L494
3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME)))
7530 .loc 1 3541 68 discriminator 2 view .LVU2675
7531 0058 B6F1007F cmp r6, #33554432
7532 005c 06D0 beq .L494
3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7533 .loc 1 3509 12 view .LVU2676
7534 005e 4FF00008 mov r8, #0
7535 0062 16E0 b .L493
7536 .LVL520:
7537 .L491:
3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7538 .loc 1 3537 7 is_stmt 1 view .LVU2677
3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7539 .loc 1 3537 28 is_stmt 0 view .LVU2678
7540 0064 638D ldrh r3, [r4, #42]
3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7541 .loc 1 3537 22 view .LVU2679
7542 0066 2385 strh r3, [r4, #40] @ movhi
3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7543 .loc 1 3538 7 is_stmt 1 view .LVU2680
3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7544 .loc 1 3538 16 is_stmt 0 view .LVU2681
7545 0068 E76A ldr r7, [r4, #44]
7546 .LVL521:
3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7547 .loc 1 3538 16 view .LVU2682
7548 006a F2E7 b .L492
7549 .L494:
3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7550 .loc 1 3546 7 is_stmt 1 view .LVU2683
3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7551 .loc 1 3546 11 is_stmt 0 view .LVU2684
7552 006c 2368 ldr r3, [r4]
3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7553 .loc 1 3546 30 view .LVU2685
7554 006e 1278 ldrb r2, [r2] @ zero_extendqisi2
7555 .LVL522:
3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7556 .loc 1 3546 28 view .LVU2686
7557 0070 9A62 str r2, [r3, #40]
7558 .LVL523:
3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7559 .loc 1 3549 7 is_stmt 1 view .LVU2687
3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7560 .loc 1 3549 11 is_stmt 0 view .LVU2688
7561 0072 636A ldr r3, [r4, #36]
3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7562 .loc 1 3549 21 view .LVU2689
7563 0074 0133 adds r3, r3, #1
7564 0076 6362 str r3, [r4, #36]
3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
7565 .loc 1 3551 7 is_stmt 1 view .LVU2690
3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
7566 .loc 1 3551 24 is_stmt 0 view .LVU2691
7567 0078 B4F82880 ldrh r8, [r4, #40]
ARM GAS /tmp/ccJ8PJrU.s page 310
7568 .LVL524:
3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
7569 .loc 1 3552 7 is_stmt 1 view .LVU2692
3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
7570 .loc 1 3552 11 is_stmt 0 view .LVU2693
7571 007c 638D ldrh r3, [r4, #42]
7572 007e 9BB2 uxth r3, r3
3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
7573 .loc 1 3552 22 view .LVU2694
7574 0080 013B subs r3, r3, #1
7575 0082 9BB2 uxth r3, r3
7576 0084 6385 strh r3, [r4, #42] @ movhi
3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7577 .loc 1 3553 7 is_stmt 1 view .LVU2695
3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7578 .loc 1 3553 21 is_stmt 0 view .LVU2696
7579 0086 08F1FF33 add r3, r8, #-1
7580 008a 2385 strh r3, [r4, #40] @ movhi
7581 008c 01E0 b .L493
7582 .LVL525:
7583 .L510:
3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7584 .loc 1 3509 12 view .LVU2697
7585 008e 4FF00008 mov r8, #0
7586 .LVL526:
7587 .L493:
3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7588 .loc 1 3559 5 is_stmt 1 view .LVU2698
3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7589 .loc 1 3559 14 is_stmt 0 view .LVU2699
7590 0092 236B ldr r3, [r4, #48]
3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7591 .loc 1 3559 8 view .LVU2700
7592 0094 112B cmp r3, #17
7593 0096 07D1 bne .L495
3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7594 .loc 1 3560 10 view .LVU2701
7595 0098 AA2E cmp r6, #170
7596 009a 05D0 beq .L495
3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7597 .loc 1 3560 10 discriminator 2 view .LVU2702
7598 009c B6F52A4F cmp r6, #43520
7599 00a0 02D0 beq .L495
3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7600 .loc 1 3562 19 view .LVU2703
7601 00a2 4FF00009 mov r9, #0
7602 00a6 09E0 b .L496
7603 .L495:
3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7604 .loc 1 3567 7 is_stmt 1 view .LVU2704
7605 00a8 2046 mov r0, r4
7606 00aa FFF7FEFF bl I2C_ConvertOtherXferOptions
7607 .LVL527:
3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7608 .loc 1 3570 7 view .LVU2705
3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7609 .loc 1 3570 15 is_stmt 0 view .LVU2706
ARM GAS /tmp/ccJ8PJrU.s page 311
7610 00ae 638D ldrh r3, [r4, #42]
7611 00b0 9BB2 uxth r3, r3
3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7612 .loc 1 3570 10 view .LVU2707
7613 00b2 FF2B cmp r3, #255
7614 00b4 27D8 bhi .L513
3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7615 .loc 1 3572 9 is_stmt 1 view .LVU2708
3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7616 .loc 1 3572 18 is_stmt 0 view .LVU2709
7617 00b6 E76A ldr r7, [r4, #44]
7618 .LVL528:
3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7619 .loc 1 3507 12 view .LVU2710
7620 00b8 DFF82091 ldr r9, .L516+16
7621 .L496:
7622 .LVL529:
3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7623 .loc 1 3576 5 is_stmt 1 view .LVU2711
3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7624 .loc 1 3576 13 is_stmt 0 view .LVU2712
7625 00bc 228D ldrh r2, [r4, #40]
3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7626 .loc 1 3576 8 view .LVU2713
7627 00be 002A cmp r2, #0
7628 00c0 5CD0 beq .L497
3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7629 .loc 1 3578 7 is_stmt 1 view .LVU2714
3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7630 .loc 1 3578 15 is_stmt 0 view .LVU2715
7631 00c2 A36B ldr r3, [r4, #56]
3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7632 .loc 1 3578 10 view .LVU2716
7633 00c4 13B3 cbz r3, .L498
3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7634 .loc 1 3581 9 is_stmt 1 view .LVU2717
3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7635 .loc 1 3581 40 is_stmt 0 view .LVU2718
7636 00c6 424A ldr r2, .L516+4
7637 00c8 9A62 str r2, [r3, #40]
3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7638 .loc 1 3584 9 is_stmt 1 view .LVU2719
3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7639 .loc 1 3584 13 is_stmt 0 view .LVU2720
7640 00ca A36B ldr r3, [r4, #56]
3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7641 .loc 1 3584 41 view .LVU2721
7642 00cc 414A ldr r2, .L516+8
7643 00ce 1A63 str r2, [r3, #48]
3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7644 .loc 1 3587 9 is_stmt 1 view .LVU2722
3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7645 .loc 1 3587 13 is_stmt 0 view .LVU2723
7646 00d0 A26B ldr r2, [r4, #56]
3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
7647 .loc 1 3587 44 view .LVU2724
7648 00d2 0023 movs r3, #0
ARM GAS /tmp/ccJ8PJrU.s page 312
7649 00d4 D362 str r3, [r2, #44]
3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7650 .loc 1 3588 9 is_stmt 1 view .LVU2725
3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7651 .loc 1 3588 13 is_stmt 0 view .LVU2726
7652 00d6 A26B ldr r2, [r4, #56]
3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7653 .loc 1 3588 41 view .LVU2727
7654 00d8 5363 str r3, [r2, #52]
3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
7655 .loc 1 3591 9 is_stmt 1 view .LVU2728
3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7656 .loc 1 3592 57 is_stmt 0 view .LVU2729
7657 00da 2268 ldr r2, [r4]
3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize);
7658 .loc 1 3591 25 view .LVU2730
7659 00dc 238D ldrh r3, [r4, #40]
7660 00de 2832 adds r2, r2, #40
7661 00e0 616A ldr r1, [r4, #36]
7662 00e2 A06B ldr r0, [r4, #56]
7663 00e4 FFF7FEFF bl HAL_DMA_Start_IT
7664 .LVL530:
3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7665 .loc 1 3609 7 is_stmt 1 view .LVU2731
3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7666 .loc 1 3609 10 is_stmt 0 view .LVU2732
7667 00e8 F0B1 cbz r0, .L499
3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7668 .loc 1 3639 9 is_stmt 1 view .LVU2733
3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7669 .loc 1 3639 25 is_stmt 0 view .LVU2734
7670 00ea 2023 movs r3, #32
7671 00ec 84F84130 strb r3, [r4, #65]
3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7672 .loc 1 3640 9 is_stmt 1 view .LVU2735
3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7673 .loc 1 3640 25 is_stmt 0 view .LVU2736
7674 00f0 0022 movs r2, #0
7675 00f2 84F84220 strb r2, [r4, #66]
3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7676 .loc 1 3643 9 is_stmt 1 view .LVU2737
3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7677 .loc 1 3643 13 is_stmt 0 view .LVU2738
7678 00f6 636C ldr r3, [r4, #68]
3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7679 .loc 1 3643 25 view .LVU2739
7680 00f8 43F01003 orr r3, r3, #16
7681 00fc 6364 str r3, [r4, #68]
3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7682 .loc 1 3646 9 is_stmt 1 view .LVU2740
3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7683 .loc 1 3646 9 view .LVU2741
7684 00fe 84F84020 strb r2, [r4, #64]
3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7685 .loc 1 3646 9 view .LVU2742
3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7686 .loc 1 3648 9 view .LVU2743
ARM GAS /tmp/ccJ8PJrU.s page 313
3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7687 .loc 1 3648 16 is_stmt 0 view .LVU2744
7688 0102 0120 movs r0, #1
7689 .LVL531:
3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7690 .loc 1 3648 16 view .LVU2745
7691 0104 5CE0 b .L490
7692 .LVL532:
7693 .L513:
3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
7694 .loc 1 3507 12 view .LVU2746
7695 0106 DFF8D490 ldr r9, .L516+16
7696 010a D7E7 b .L496
7697 .LVL533:
7698 .L498:
3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7699 .loc 1 3597 9 is_stmt 1 view .LVU2747
3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
7700 .loc 1 3597 25 is_stmt 0 view .LVU2748
7701 010c 2023 movs r3, #32
7702 010e 84F84130 strb r3, [r4, #65]
3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7703 .loc 1 3598 9 is_stmt 1 view .LVU2749
3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7704 .loc 1 3598 25 is_stmt 0 view .LVU2750
7705 0112 0022 movs r2, #0
7706 0114 84F84220 strb r2, [r4, #66]
3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7707 .loc 1 3601 9 is_stmt 1 view .LVU2751
3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7708 .loc 1 3601 13 is_stmt 0 view .LVU2752
7709 0118 636C ldr r3, [r4, #68]
3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7710 .loc 1 3601 25 view .LVU2753
7711 011a 43F08003 orr r3, r3, #128
7712 011e 6364 str r3, [r4, #68]
3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7713 .loc 1 3604 9 is_stmt 1 view .LVU2754
3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7714 .loc 1 3604 9 view .LVU2755
7715 0120 84F84020 strb r2, [r4, #64]
3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7716 .loc 1 3604 9 view .LVU2756
3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7717 .loc 1 3606 9 view .LVU2757
3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7718 .loc 1 3606 16 is_stmt 0 view .LVU2758
7719 0124 0120 movs r0, #1
7720 0126 4BE0 b .L490
7721 .LVL534:
7722 .L499:
3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7723 .loc 1 3612 9 is_stmt 1 view .LVU2759
3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7724 .loc 1 3612 12 is_stmt 0 view .LVU2760
7725 0128 16B1 cbz r6, .L501
3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 314
7726 .loc 1 3612 46 discriminator 1 view .LVU2761
7727 012a B6F1007F cmp r6, #33554432
7728 012e 1BD1 bne .L502
7729 .L501:
3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7730 .loc 1 3614 11 is_stmt 1 view .LVU2762
7731 0130 CDF80090 str r9, [sp]
7732 0134 3B46 mov r3, r7
7733 0136 5FFA88F2 uxtb r2, r8
7734 013a 2946 mov r1, r5
7735 013c 2046 mov r0, r4
7736 .LVL535:
3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7737 .loc 1 3614 11 is_stmt 0 view .LVU2763
7738 013e FFF7FEFF bl I2C_TransferConfig
7739 .LVL536:
7740 .L503:
3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7741 .loc 1 3622 9 is_stmt 1 view .LVU2764
3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7742 .loc 1 3622 13 is_stmt 0 view .LVU2765
7743 0142 638D ldrh r3, [r4, #42]
7744 0144 9BB2 uxth r3, r3
3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7745 .loc 1 3622 32 view .LVU2766
7746 0146 228D ldrh r2, [r4, #40]
3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7747 .loc 1 3622 25 view .LVU2767
7748 0148 9B1A subs r3, r3, r2
7749 014a 9BB2 uxth r3, r3
7750 014c 6385 strh r3, [r4, #42] @ movhi
3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7751 .loc 1 3625 9 is_stmt 1 view .LVU2768
3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7752 .loc 1 3625 9 view .LVU2769
7753 014e 0023 movs r3, #0
7754 0150 84F84030 strb r3, [r4, #64]
3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7755 .loc 1 3625 9 view .LVU2770
3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7756 .loc 1 3631 9 view .LVU2771
7757 0154 1021 movs r1, #16
7758 0156 2046 mov r0, r4
7759 0158 FFF7FEFF bl I2C_Enable_IRQ
7760 .LVL537:
3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7761 .loc 1 3634 9 view .LVU2772
3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7762 .loc 1 3634 13 is_stmt 0 view .LVU2773
7763 015c 2268 ldr r2, [r4]
3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7764 .loc 1 3634 23 view .LVU2774
7765 015e 1368 ldr r3, [r2]
3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7766 .loc 1 3634 29 view .LVU2775
7767 0160 43F48043 orr r3, r3, #16384
7768 0164 1360 str r3, [r2]
ARM GAS /tmp/ccJ8PJrU.s page 315
7769 0166 1FE0 b .L504
7770 .LVL538:
7771 .L502:
3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7772 .loc 1 3618 11 is_stmt 1 view .LVU2776
7773 0168 CDF80090 str r9, [sp]
7774 016c 3B46 mov r3, r7
7775 016e 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
7776 0172 2946 mov r1, r5
7777 0174 2046 mov r0, r4
7778 .LVL539:
3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7779 .loc 1 3618 11 is_stmt 0 view .LVU2777
7780 0176 FFF7FEFF bl I2C_TransferConfig
7781 .LVL540:
7782 017a E2E7 b .L503
7783 .LVL541:
7784 .L497:
3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7785 .loc 1 3654 7 is_stmt 1 view .LVU2778
3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7786 .loc 1 3654 21 is_stmt 0 view .LVU2779
7787 017c 164B ldr r3, .L516+12
7788 017e 6363 str r3, [r4, #52]
3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7789 .loc 1 3658 7 is_stmt 1 view .LVU2780
3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7790 .loc 1 3658 10 is_stmt 0 view .LVU2781
7791 0180 16B1 cbz r6, .L505
3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7792 .loc 1 3658 44 discriminator 1 view .LVU2782
7793 0182 B6F1007F cmp r6, #33554432
7794 0186 11D1 bne .L506
7795 .L505:
3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7796 .loc 1 3660 9 is_stmt 1 view .LVU2783
7797 0188 CDF80090 str r9, [sp]
7798 018c 3B46 mov r3, r7
7799 018e 5FFA88F2 uxtb r2, r8
7800 0192 2946 mov r1, r5
7801 0194 2046 mov r0, r4
7802 0196 FFF7FEFF bl I2C_TransferConfig
7803 .LVL542:
7804 .L507:
3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7805 .loc 1 3668 7 view .LVU2784
3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7806 .loc 1 3668 7 view .LVU2785
7807 019a 0023 movs r3, #0
7808 019c 84F84030 strb r3, [r4, #64]
3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7809 .loc 1 3668 7 view .LVU2786
3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7810 .loc 1 3677 7 view .LVU2787
7811 01a0 0121 movs r1, #1
7812 01a2 2046 mov r0, r4
7813 01a4 FFF7FEFF bl I2C_Enable_IRQ
ARM GAS /tmp/ccJ8PJrU.s page 316
7814 .LVL543:
7815 .L504:
3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7816 .loc 1 3680 5 view .LVU2788
3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7817 .loc 1 3680 12 is_stmt 0 view .LVU2789
7818 01a8 0020 movs r0, #0
7819 01aa 09E0 b .L490
7820 .L506:
3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7821 .loc 1 3664 9 is_stmt 1 view .LVU2790
7822 01ac CDF80090 str r9, [sp]
7823 01b0 3B46 mov r3, r7
7824 01b2 D2B2 uxtb r2, r2
7825 01b4 2946 mov r1, r5
7826 01b6 2046 mov r0, r4
7827 01b8 FFF7FEFF bl I2C_TransferConfig
7828 .LVL544:
7829 01bc EDE7 b .L507
7830 .LVL545:
7831 .L508:
3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7832 .loc 1 3684 12 is_stmt 0 view .LVU2791
7833 01be 0220 movs r0, #2
7834 .LVL546:
7835 .L490:
3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7836 .loc 1 3686 1 view .LVU2792
7837 01c0 03B0 add sp, sp, #12
7838 .cfi_remember_state
7839 .cfi_def_cfa_offset 28
7840 @ sp needed
7841 01c2 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc}
7842 .LVL547:
7843 .L509:
7844 .cfi_restore_state
3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7845 .loc 1 3517 5 discriminator 1 view .LVU2793
7846 01c6 0220 movs r0, #2
7847 01c8 FAE7 b .L490
7848 .L517:
7849 01ca 00BF .align 2
7850 .L516:
7851 01cc 00000000 .word I2C_Master_ISR_DMA
7852 01d0 00000000 .word I2C_DMAMasterTransmitCplt
7853 01d4 00000000 .word I2C_DMAError
7854 01d8 00000000 .word I2C_Master_ISR_IT
7855 01dc 00200080 .word -2147475456
7856 .cfi_endproc
7857 .LFE147:
7859 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits
7860 .align 1
7861 .global HAL_I2C_Master_Seq_Receive_IT
7862 .syntax unified
7863 .thumb
7864 .thumb_func
7866 HAL_I2C_Master_Seq_Receive_IT:
ARM GAS /tmp/ccJ8PJrU.s page 317
7867 .LVL548:
7868 .LFB148:
3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7869 .loc 1 3702 1 is_stmt 1 view -0
7870 .cfi_startproc
7871 @ args = 4, pretend = 0, frame = 0
7872 @ frame_needed = 0, uses_anonymous_args = 0
3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
7873 .loc 1 3702 1 is_stmt 0 view .LVU2795
7874 0000 70B5 push {r4, r5, r6, lr}
7875 .cfi_def_cfa_offset 16
7876 .cfi_offset 4, -16
7877 .cfi_offset 5, -12
7878 .cfi_offset 6, -8
7879 .cfi_offset 14, -4
7880 0002 82B0 sub sp, sp, #8
7881 .cfi_def_cfa_offset 24
7882 0004 0446 mov r4, r0
3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
7883 .loc 1 3703 3 is_stmt 1 view .LVU2796
3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7884 .loc 1 3704 3 view .LVU2797
7885 .LVL549:
3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7886 .loc 1 3707 3 view .LVU2798
3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7887 .loc 1 3709 3 view .LVU2799
3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7888 .loc 1 3709 11 is_stmt 0 view .LVU2800
7889 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
7890 .LVL550:
3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7891 .loc 1 3709 11 view .LVU2801
7892 000a C0B2 uxtb r0, r0
3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7893 .loc 1 3709 6 view .LVU2802
7894 000c 2028 cmp r0, #32
7895 000e 49D1 bne .L524
7896 0010 0D46 mov r5, r1
3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7897 .loc 1 3712 5 is_stmt 1 view .LVU2803
3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7898 .loc 1 3712 5 view .LVU2804
7899 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
7900 .LVL551:
3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7901 .loc 1 3712 5 is_stmt 0 view .LVU2805
7902 0016 0129 cmp r1, #1
7903 0018 46D0 beq .L525
3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7904 .loc 1 3712 5 is_stmt 1 discriminator 2 view .LVU2806
7905 001a 0121 movs r1, #1
7906 001c 84F84010 strb r1, [r4, #64]
3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7907 .loc 1 3712 5 discriminator 2 view .LVU2807
3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7908 .loc 1 3714 5 view .LVU2808
ARM GAS /tmp/ccJ8PJrU.s page 318
3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
7909 .loc 1 3714 21 is_stmt 0 view .LVU2809
7910 0020 2221 movs r1, #34
7911 0022 84F84110 strb r1, [r4, #65]
3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7912 .loc 1 3715 5 is_stmt 1 view .LVU2810
3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
7913 .loc 1 3715 21 is_stmt 0 view .LVU2811
7914 0026 1021 movs r1, #16
7915 0028 84F84210 strb r1, [r4, #66]
3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7916 .loc 1 3716 5 is_stmt 1 view .LVU2812
3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7917 .loc 1 3716 21 is_stmt 0 view .LVU2813
7918 002c 0021 movs r1, #0
7919 002e 6164 str r1, [r4, #68]
3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7920 .loc 1 3719 5 is_stmt 1 view .LVU2814
3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
7921 .loc 1 3719 23 is_stmt 0 view .LVU2815
7922 0030 6262 str r2, [r4, #36]
3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7923 .loc 1 3720 5 is_stmt 1 view .LVU2816
3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
7924 .loc 1 3720 23 is_stmt 0 view .LVU2817
7925 0032 6385 strh r3, [r4, #42] @ movhi
3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7926 .loc 1 3721 5 is_stmt 1 view .LVU2818
3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7927 .loc 1 3721 23 is_stmt 0 view .LVU2819
7928 0034 069B ldr r3, [sp, #24]
7929 .LVL552:
3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT;
7930 .loc 1 3721 23 view .LVU2820
7931 0036 E362 str r3, [r4, #44]
7932 .LVL553:
3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7933 .loc 1 3722 5 is_stmt 1 view .LVU2821
3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7934 .loc 1 3722 23 is_stmt 0 view .LVU2822
7935 0038 1C4B ldr r3, .L529
7936 003a 6363 str r3, [r4, #52]
3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7937 .loc 1 3725 5 is_stmt 1 view .LVU2823
3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7938 .loc 1 3725 13 is_stmt 0 view .LVU2824
7939 003c 638D ldrh r3, [r4, #42]
7940 003e 9BB2 uxth r3, r3
3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7941 .loc 1 3725 8 view .LVU2825
7942 0040 FF2B cmp r3, #255
7943 0042 0ED9 bls .L520
3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7944 .loc 1 3727 7 is_stmt 1 view .LVU2826
3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
7945 .loc 1 3727 22 is_stmt 0 view .LVU2827
7946 0044 FF23 movs r3, #255
ARM GAS /tmp/ccJ8PJrU.s page 319
7947 0046 2385 strh r3, [r4, #40] @ movhi
3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7948 .loc 1 3728 7 is_stmt 1 view .LVU2828
7949 .LVL554:
3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7950 .loc 1 3728 16 is_stmt 0 view .LVU2829
7951 0048 4FF08076 mov r6, #16777216
7952 .LVL555:
7953 .L521:
3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7954 .loc 1 3739 5 is_stmt 1 view .LVU2830
3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7955 .loc 1 3739 14 is_stmt 0 view .LVU2831
7956 004c 236B ldr r3, [r4, #48]
3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
7957 .loc 1 3739 8 view .LVU2832
7958 004e 122B cmp r3, #18
7959 0050 0BD1 bne .L522
3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7960 .loc 1 3740 10 view .LVU2833
7961 0052 069B ldr r3, [sp, #24]
7962 0054 AA2B cmp r3, #170
7963 0056 08D0 beq .L522
3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7964 .loc 1 3740 10 discriminator 2 view .LVU2834
7965 0058 B3F52A4F cmp r3, #43520
7966 005c 05D0 beq .L522
3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7967 .loc 1 3742 19 view .LVU2835
7968 005e 0023 movs r3, #0
7969 0060 0CE0 b .L523
7970 .LVL556:
7971 .L520:
3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7972 .loc 1 3732 7 is_stmt 1 view .LVU2836
3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7973 .loc 1 3732 28 is_stmt 0 view .LVU2837
7974 0062 638D ldrh r3, [r4, #42]
3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
7975 .loc 1 3732 22 view .LVU2838
7976 0064 2385 strh r3, [r4, #40] @ movhi
3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7977 .loc 1 3733 7 is_stmt 1 view .LVU2839
3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7978 .loc 1 3733 16 is_stmt 0 view .LVU2840
7979 0066 E66A ldr r6, [r4, #44]
7980 .LVL557:
3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7981 .loc 1 3733 16 view .LVU2841
7982 0068 F0E7 b .L521
7983 .L522:
3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7984 .loc 1 3747 7 is_stmt 1 view .LVU2842
7985 006a 2046 mov r0, r4
7986 006c FFF7FEFF bl I2C_ConvertOtherXferOptions
7987 .LVL558:
3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 320
7988 .loc 1 3750 7 view .LVU2843
3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7989 .loc 1 3750 15 is_stmt 0 view .LVU2844
7990 0070 638D ldrh r3, [r4, #42]
7991 0072 9BB2 uxth r3, r3
3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
7992 .loc 1 3750 10 view .LVU2845
7993 0074 FF2B cmp r3, #255
7994 0076 13D8 bhi .L527
3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7995 .loc 1 3752 9 is_stmt 1 view .LVU2846
3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
7996 .loc 1 3752 18 is_stmt 0 view .LVU2847
7997 0078 E66A ldr r6, [r4, #44]
7998 .LVL559:
3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
7999 .loc 1 3704 12 view .LVU2848
8000 007a 0D4B ldr r3, .L529+4
8001 .L523:
8002 .LVL560:
3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8003 .loc 1 3757 5 is_stmt 1 view .LVU2849
8004 007c 0093 str r3, [sp]
8005 007e 3346 mov r3, r6
8006 .LVL561:
3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8007 .loc 1 3757 5 is_stmt 0 view .LVU2850
8008 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
8009 0084 2946 mov r1, r5
8010 0086 2046 mov r0, r4
8011 0088 FFF7FEFF bl I2C_TransferConfig
8012 .LVL562:
3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8013 .loc 1 3760 5 is_stmt 1 view .LVU2851
3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8014 .loc 1 3760 5 view .LVU2852
8015 008c 0025 movs r5, #0
8016 .LVL563:
3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8017 .loc 1 3760 5 is_stmt 0 view .LVU2853
8018 008e 84F84050 strb r5, [r4, #64]
3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8019 .loc 1 3760 5 is_stmt 1 view .LVU2854
3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8020 .loc 1 3765 5 view .LVU2855
8021 0092 0221 movs r1, #2
8022 0094 2046 mov r0, r4
8023 0096 FFF7FEFF bl I2C_Enable_IRQ
8024 .LVL564:
3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8025 .loc 1 3767 5 view .LVU2856
3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8026 .loc 1 3767 12 is_stmt 0 view .LVU2857
8027 009a 2846 mov r0, r5
8028 .LVL565:
8029 .L519:
3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 321
8030 .loc 1 3773 1 view .LVU2858
8031 009c 02B0 add sp, sp, #8
8032 .cfi_remember_state
8033 .cfi_def_cfa_offset 16
8034 @ sp needed
8035 009e 70BD pop {r4, r5, r6, pc}
8036 .LVL566:
8037 .L527:
8038 .cfi_restore_state
3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8039 .loc 1 3704 12 view .LVU2859
8040 00a0 034B ldr r3, .L529+4
8041 00a2 EBE7 b .L523
8042 .LVL567:
8043 .L524:
3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8044 .loc 1 3771 12 view .LVU2860
8045 00a4 0220 movs r0, #2
8046 00a6 F9E7 b .L519
8047 .LVL568:
8048 .L525:
3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8049 .loc 1 3712 5 discriminator 1 view .LVU2861
8050 00a8 0220 movs r0, #2
8051 00aa F7E7 b .L519
8052 .L530:
8053 .align 2
8054 .L529:
8055 00ac 00000000 .word I2C_Master_ISR_IT
8056 00b0 00240080 .word -2147474432
8057 .cfi_endproc
8058 .LFE148:
8060 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits
8061 .align 1
8062 .global HAL_I2C_Master_Seq_Receive_DMA
8063 .syntax unified
8064 .thumb
8065 .thumb_func
8067 HAL_I2C_Master_Seq_Receive_DMA:
8068 .LVL569:
8069 .LFB149:
3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
8070 .loc 1 3789 1 is_stmt 1 view -0
8071 .cfi_startproc
8072 @ args = 4, pretend = 0, frame = 0
8073 @ frame_needed = 0, uses_anonymous_args = 0
3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
8074 .loc 1 3789 1 is_stmt 0 view .LVU2863
8075 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr}
8076 .cfi_def_cfa_offset 24
8077 .cfi_offset 4, -24
8078 .cfi_offset 5, -20
8079 .cfi_offset 6, -16
8080 .cfi_offset 7, -12
8081 .cfi_offset 8, -8
8082 .cfi_offset 14, -4
8083 0004 82B0 sub sp, sp, #8
ARM GAS /tmp/ccJ8PJrU.s page 322
8084 .cfi_def_cfa_offset 32
8085 0006 0446 mov r4, r0
8086 0008 1546 mov r5, r2
8087 000a 089A ldr r2, [sp, #32]
8088 .LVL570:
3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ;
8089 .loc 1 3790 3 is_stmt 1 view .LVU2864
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8090 .loc 1 3791 3 view .LVU2865
3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8091 .loc 1 3792 3 view .LVU2866
3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8092 .loc 1 3795 3 view .LVU2867
3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8093 .loc 1 3797 3 view .LVU2868
3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8094 .loc 1 3797 11 is_stmt 0 view .LVU2869
8095 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8096 .LVL571:
3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8097 .loc 1 3797 11 view .LVU2870
8098 0010 C0B2 uxtb r0, r0
3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8099 .loc 1 3797 6 view .LVU2871
8100 0012 2028 cmp r0, #32
8101 0014 40F09D80 bne .L542
8102 0018 0E46 mov r6, r1
3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8103 .loc 1 3800 5 is_stmt 1 view .LVU2872
3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8104 .loc 1 3800 5 view .LVU2873
8105 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2
8106 .LVL572:
3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8107 .loc 1 3800 5 is_stmt 0 view .LVU2874
8108 001e 0129 cmp r1, #1
8109 0020 00F09B80 beq .L543
3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8110 .loc 1 3800 5 is_stmt 1 discriminator 2 view .LVU2875
8111 0024 0121 movs r1, #1
8112 0026 84F84010 strb r1, [r4, #64]
3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8113 .loc 1 3800 5 discriminator 2 view .LVU2876
3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
8114 .loc 1 3802 5 view .LVU2877
3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER;
8115 .loc 1 3802 21 is_stmt 0 view .LVU2878
8116 002a 2221 movs r1, #34
8117 002c 84F84110 strb r1, [r4, #65]
3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8118 .loc 1 3803 5 is_stmt 1 view .LVU2879
3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8119 .loc 1 3803 21 is_stmt 0 view .LVU2880
8120 0030 1021 movs r1, #16
8121 0032 84F84210 strb r1, [r4, #66]
3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8122 .loc 1 3804 5 is_stmt 1 view .LVU2881
ARM GAS /tmp/ccJ8PJrU.s page 323
3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8123 .loc 1 3804 21 is_stmt 0 view .LVU2882
8124 0036 0021 movs r1, #0
8125 0038 6164 str r1, [r4, #68]
3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8126 .loc 1 3807 5 is_stmt 1 view .LVU2883
3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8127 .loc 1 3807 23 is_stmt 0 view .LVU2884
8128 003a 6562 str r5, [r4, #36]
3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8129 .loc 1 3808 5 is_stmt 1 view .LVU2885
3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8130 .loc 1 3808 23 is_stmt 0 view .LVU2886
8131 003c 6385 strh r3, [r4, #42] @ movhi
3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
8132 .loc 1 3809 5 is_stmt 1 view .LVU2887
3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA;
8133 .loc 1 3809 23 is_stmt 0 view .LVU2888
8134 003e E262 str r2, [r4, #44]
3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8135 .loc 1 3810 5 is_stmt 1 view .LVU2889
3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8136 .loc 1 3810 23 is_stmt 0 view .LVU2890
8137 0040 474B ldr r3, .L549
8138 .LVL573:
3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8139 .loc 1 3810 23 view .LVU2891
8140 0042 6363 str r3, [r4, #52]
3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8141 .loc 1 3813 5 is_stmt 1 view .LVU2892
3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8142 .loc 1 3813 13 is_stmt 0 view .LVU2893
8143 0044 638D ldrh r3, [r4, #42]
8144 0046 9BB2 uxth r3, r3
3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8145 .loc 1 3813 8 view .LVU2894
8146 0048 FF2B cmp r3, #255
8147 004a 0ED9 bls .L533
3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
8148 .loc 1 3815 7 is_stmt 1 view .LVU2895
3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE;
8149 .loc 1 3815 22 is_stmt 0 view .LVU2896
8150 004c FF23 movs r3, #255
8151 004e 2385 strh r3, [r4, #40] @ movhi
3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8152 .loc 1 3816 7 is_stmt 1 view .LVU2897
8153 .LVL574:
3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8154 .loc 1 3816 16 is_stmt 0 view .LVU2898
8155 0050 4FF08077 mov r7, #16777216
8156 .LVL575:
8157 .L534:
3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8158 .loc 1 3827 5 is_stmt 1 view .LVU2899
3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8159 .loc 1 3827 14 is_stmt 0 view .LVU2900
8160 0054 236B ldr r3, [r4, #48]
ARM GAS /tmp/ccJ8PJrU.s page 324
3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0))
8161 .loc 1 3827 8 view .LVU2901
8162 0056 122B cmp r3, #18
8163 0058 0BD1 bne .L535
3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8164 .loc 1 3828 10 view .LVU2902
8165 005a AA2A cmp r2, #170
8166 005c 09D0 beq .L535
3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8167 .loc 1 3828 10 discriminator 2 view .LVU2903
8168 005e B2F52A4F cmp r2, #43520
8169 0062 06D0 beq .L535
3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8170 .loc 1 3830 19 view .LVU2904
8171 0064 4FF00008 mov r8, #0
8172 0068 0DE0 b .L536
8173 .LVL576:
8174 .L533:
3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8175 .loc 1 3820 7 is_stmt 1 view .LVU2905
3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8176 .loc 1 3820 28 is_stmt 0 view .LVU2906
8177 006a 638D ldrh r3, [r4, #42]
3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions;
8178 .loc 1 3820 22 view .LVU2907
8179 006c 2385 strh r3, [r4, #40] @ movhi
3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8180 .loc 1 3821 7 is_stmt 1 view .LVU2908
3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8181 .loc 1 3821 16 is_stmt 0 view .LVU2909
8182 006e E76A ldr r7, [r4, #44]
8183 .LVL577:
3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8184 .loc 1 3821 16 view .LVU2910
8185 0070 F0E7 b .L534
8186 .L535:
3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8187 .loc 1 3835 7 is_stmt 1 view .LVU2911
8188 0072 2046 mov r0, r4
8189 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions
8190 .LVL578:
3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8191 .loc 1 3838 7 view .LVU2912
3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8192 .loc 1 3838 15 is_stmt 0 view .LVU2913
8193 0078 638D ldrh r3, [r4, #42]
8194 007a 9BB2 uxth r3, r3
3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8195 .loc 1 3838 10 view .LVU2914
8196 007c FF2B cmp r3, #255
8197 007e 27D8 bhi .L545
3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8198 .loc 1 3840 9 is_stmt 1 view .LVU2915
3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8199 .loc 1 3840 18 is_stmt 0 view .LVU2916
8200 0080 E76A ldr r7, [r4, #44]
8201 .LVL579:
ARM GAS /tmp/ccJ8PJrU.s page 325
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8202 .loc 1 3791 12 view .LVU2917
8203 0082 DFF8EC80 ldr r8, .L549+16
8204 .L536:
8205 .LVL580:
3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8206 .loc 1 3844 5 is_stmt 1 view .LVU2918
3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8207 .loc 1 3844 13 is_stmt 0 view .LVU2919
8208 0086 228D ldrh r2, [r4, #40]
3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8209 .loc 1 3844 8 view .LVU2920
8210 0088 002A cmp r2, #0
8211 008a 4ED0 beq .L537
3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8212 .loc 1 3846 7 is_stmt 1 view .LVU2921
3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8213 .loc 1 3846 15 is_stmt 0 view .LVU2922
8214 008c E36B ldr r3, [r4, #60]
3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8215 .loc 1 3846 10 view .LVU2923
8216 008e 13B3 cbz r3, .L538
3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8217 .loc 1 3849 9 is_stmt 1 view .LVU2924
3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8218 .loc 1 3849 40 is_stmt 0 view .LVU2925
8219 0090 344A ldr r2, .L549+4
8220 0092 9A62 str r2, [r3, #40]
3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8221 .loc 1 3852 9 is_stmt 1 view .LVU2926
3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8222 .loc 1 3852 13 is_stmt 0 view .LVU2927
8223 0094 E36B ldr r3, [r4, #60]
3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8224 .loc 1 3852 41 view .LVU2928
8225 0096 344A ldr r2, .L549+8
8226 0098 1A63 str r2, [r3, #48]
3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8227 .loc 1 3855 9 is_stmt 1 view .LVU2929
3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8228 .loc 1 3855 13 is_stmt 0 view .LVU2930
8229 009a E26B ldr r2, [r4, #60]
3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
8230 .loc 1 3855 44 view .LVU2931
8231 009c 0023 movs r3, #0
8232 009e D362 str r3, [r2, #44]
3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8233 .loc 1 3856 9 is_stmt 1 view .LVU2932
3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8234 .loc 1 3856 13 is_stmt 0 view .LVU2933
8235 00a0 E26B ldr r2, [r4, #60]
3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8236 .loc 1 3856 41 view .LVU2934
8237 00a2 5363 str r3, [r2, #52]
3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
8238 .loc 1 3859 9 is_stmt 1 view .LVU2935
3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
ARM GAS /tmp/ccJ8PJrU.s page 326
8239 .loc 1 3859 71 is_stmt 0 view .LVU2936
8240 00a4 2168 ldr r1, [r4]
3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
8241 .loc 1 3859 25 view .LVU2937
8242 00a6 238D ldrh r3, [r4, #40]
8243 00a8 2A46 mov r2, r5
8244 00aa 2431 adds r1, r1, #36
8245 00ac E06B ldr r0, [r4, #60]
8246 00ae FFF7FEFF bl HAL_DMA_Start_IT
8247 .LVL581:
3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8248 .loc 1 3877 7 is_stmt 1 view .LVU2938
3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8249 .loc 1 3877 10 is_stmt 0 view .LVU2939
8250 00b2 F0B1 cbz r0, .L548
3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8251 .loc 1 3900 9 is_stmt 1 view .LVU2940
3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8252 .loc 1 3900 25 is_stmt 0 view .LVU2941
8253 00b4 2023 movs r3, #32
8254 00b6 84F84130 strb r3, [r4, #65]
3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8255 .loc 1 3901 9 is_stmt 1 view .LVU2942
3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8256 .loc 1 3901 25 is_stmt 0 view .LVU2943
8257 00ba 0022 movs r2, #0
8258 00bc 84F84220 strb r2, [r4, #66]
3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8259 .loc 1 3904 9 is_stmt 1 view .LVU2944
3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8260 .loc 1 3904 13 is_stmt 0 view .LVU2945
8261 00c0 636C ldr r3, [r4, #68]
3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8262 .loc 1 3904 25 view .LVU2946
8263 00c2 43F01003 orr r3, r3, #16
8264 00c6 6364 str r3, [r4, #68]
3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8265 .loc 1 3907 9 is_stmt 1 view .LVU2947
3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8266 .loc 1 3907 9 view .LVU2948
8267 00c8 84F84020 strb r2, [r4, #64]
3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8268 .loc 1 3907 9 view .LVU2949
3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8269 .loc 1 3909 9 view .LVU2950
3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8270 .loc 1 3909 16 is_stmt 0 view .LVU2951
8271 00cc 0120 movs r0, #1
8272 .LVL582:
3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8273 .loc 1 3909 16 view .LVU2952
8274 00ce 41E0 b .L532
8275 .LVL583:
8276 .L545:
3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8277 .loc 1 3791 12 view .LVU2953
8278 00d0 DFF89C80 ldr r8, .L549+16
ARM GAS /tmp/ccJ8PJrU.s page 327
8279 00d4 D7E7 b .L536
8280 .LVL584:
8281 .L538:
3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8282 .loc 1 3865 9 is_stmt 1 view .LVU2954
3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8283 .loc 1 3865 25 is_stmt 0 view .LVU2955
8284 00d6 2023 movs r3, #32
8285 00d8 84F84130 strb r3, [r4, #65]
3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8286 .loc 1 3866 9 is_stmt 1 view .LVU2956
3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8287 .loc 1 3866 25 is_stmt 0 view .LVU2957
8288 00dc 0022 movs r2, #0
8289 00de 84F84220 strb r2, [r4, #66]
3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8290 .loc 1 3869 9 is_stmt 1 view .LVU2958
3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8291 .loc 1 3869 13 is_stmt 0 view .LVU2959
8292 00e2 636C ldr r3, [r4, #68]
3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8293 .loc 1 3869 25 view .LVU2960
8294 00e4 43F08003 orr r3, r3, #128
8295 00e8 6364 str r3, [r4, #68]
3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8296 .loc 1 3872 9 is_stmt 1 view .LVU2961
3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8297 .loc 1 3872 9 view .LVU2962
8298 00ea 84F84020 strb r2, [r4, #64]
3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8299 .loc 1 3872 9 view .LVU2963
3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8300 .loc 1 3874 9 view .LVU2964
3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8301 .loc 1 3874 16 is_stmt 0 view .LVU2965
8302 00ee 0120 movs r0, #1
8303 00f0 30E0 b .L532
8304 .LVL585:
8305 .L548:
3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8306 .loc 1 3880 9 is_stmt 1 view .LVU2966
8307 00f2 CDF80080 str r8, [sp]
8308 00f6 3B46 mov r3, r7
8309 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
8310 00fc 3146 mov r1, r6
8311 00fe 2046 mov r0, r4
8312 .LVL586:
3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8313 .loc 1 3880 9 is_stmt 0 view .LVU2967
8314 0100 FFF7FEFF bl I2C_TransferConfig
8315 .LVL587:
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8316 .loc 1 3883 9 is_stmt 1 view .LVU2968
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8317 .loc 1 3883 13 is_stmt 0 view .LVU2969
8318 0104 638D ldrh r3, [r4, #42]
8319 0106 9BB2 uxth r3, r3
ARM GAS /tmp/ccJ8PJrU.s page 328
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8320 .loc 1 3883 32 view .LVU2970
8321 0108 228D ldrh r2, [r4, #40]
3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8322 .loc 1 3883 25 view .LVU2971
8323 010a 9B1A subs r3, r3, r2
8324 010c 9BB2 uxth r3, r3
8325 010e 6385 strh r3, [r4, #42] @ movhi
3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8326 .loc 1 3886 9 is_stmt 1 view .LVU2972
3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8327 .loc 1 3886 9 view .LVU2973
8328 0110 0023 movs r3, #0
8329 0112 84F84030 strb r3, [r4, #64]
3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8330 .loc 1 3886 9 view .LVU2974
3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8331 .loc 1 3892 9 view .LVU2975
8332 0116 1021 movs r1, #16
8333 0118 2046 mov r0, r4
8334 011a FFF7FEFF bl I2C_Enable_IRQ
8335 .LVL588:
3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8336 .loc 1 3895 9 view .LVU2976
3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8337 .loc 1 3895 13 is_stmt 0 view .LVU2977
8338 011e 2268 ldr r2, [r4]
3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8339 .loc 1 3895 23 view .LVU2978
8340 0120 1368 ldr r3, [r2]
3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8341 .loc 1 3895 29 view .LVU2979
8342 0122 43F40043 orr r3, r3, #32768
8343 0126 1360 str r3, [r2]
8344 0128 11E0 b .L541
8345 .LVL589:
8346 .L537:
3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8347 .loc 1 3915 7 is_stmt 1 view .LVU2980
3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8348 .loc 1 3915 21 is_stmt 0 view .LVU2981
8349 012a 104B ldr r3, .L549+12
8350 012c 6363 str r3, [r4, #52]
3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ);
8351 .loc 1 3919 7 is_stmt 1 view .LVU2982
8352 012e 104B ldr r3, .L549+16
8353 0130 0093 str r3, [sp]
8354 0132 4FF00073 mov r3, #33554432
8355 0136 D2B2 uxtb r2, r2
8356 0138 3146 mov r1, r6
8357 013a 2046 mov r0, r4
8358 013c FFF7FEFF bl I2C_TransferConfig
8359 .LVL590:
3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8360 .loc 1 3923 7 view .LVU2983
3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8361 .loc 1 3923 7 view .LVU2984
ARM GAS /tmp/ccJ8PJrU.s page 329
8362 0140 0023 movs r3, #0
8363 0142 84F84030 strb r3, [r4, #64]
3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8364 .loc 1 3923 7 view .LVU2985
3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8365 .loc 1 3932 7 view .LVU2986
8366 0146 0221 movs r1, #2
8367 0148 2046 mov r0, r4
8368 014a FFF7FEFF bl I2C_Enable_IRQ
8369 .LVL591:
8370 .L541:
3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8371 .loc 1 3935 5 view .LVU2987
3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8372 .loc 1 3935 12 is_stmt 0 view .LVU2988
8373 014e 0020 movs r0, #0
8374 0150 00E0 b .L532
8375 .LVL592:
8376 .L542:
3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8377 .loc 1 3939 12 view .LVU2989
8378 0152 0220 movs r0, #2
8379 .LVL593:
8380 .L532:
3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8381 .loc 1 3941 1 view .LVU2990
8382 0154 02B0 add sp, sp, #8
8383 .cfi_remember_state
8384 .cfi_def_cfa_offset 24
8385 @ sp needed
8386 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc}
8387 .LVL594:
8388 .L543:
8389 .cfi_restore_state
3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8390 .loc 1 3800 5 discriminator 1 view .LVU2991
8391 015a 0220 movs r0, #2
8392 015c FAE7 b .L532
8393 .L550:
8394 015e 00BF .align 2
8395 .L549:
8396 0160 00000000 .word I2C_Master_ISR_DMA
8397 0164 00000000 .word I2C_DMAMasterReceiveCplt
8398 0168 00000000 .word I2C_DMAError
8399 016c 00000000 .word I2C_Master_ISR_IT
8400 0170 00240080 .word -2147474432
8401 .cfi_endproc
8402 .LFE149:
8404 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits
8405 .align 1
8406 .global HAL_I2C_Slave_Seq_Transmit_IT
8407 .syntax unified
8408 .thumb
8409 .thumb_func
8411 HAL_I2C_Slave_Seq_Transmit_IT:
8412 .LVL595:
8413 .LFB150:
ARM GAS /tmp/ccJ8PJrU.s page 330
3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8414 .loc 1 3955 1 is_stmt 1 view -0
8415 .cfi_startproc
8416 @ args = 0, pretend = 0, frame = 0
8417 @ frame_needed = 0, uses_anonymous_args = 0
3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8418 .loc 1 3955 1 is_stmt 0 view .LVU2993
8419 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8420 .cfi_def_cfa_offset 24
8421 .cfi_offset 3, -24
8422 .cfi_offset 4, -20
8423 .cfi_offset 5, -16
8424 .cfi_offset 6, -12
8425 .cfi_offset 7, -8
8426 .cfi_offset 14, -4
8427 0002 0446 mov r4, r0
3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8428 .loc 1 3957 3 is_stmt 1 view .LVU2994
3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8429 .loc 1 3960 3 view .LVU2995
3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8430 .loc 1 3962 3 view .LVU2996
3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8431 .loc 1 3962 22 is_stmt 0 view .LVU2997
8432 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8433 .LVL596:
3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8434 .loc 1 3962 6 view .LVU2998
8435 0008 00F02800 and r0, r0, #40
8436 000c 2828 cmp r0, #40
8437 000e 5ED1 bne .L557
8438 0010 0F46 mov r7, r1
8439 0012 1646 mov r6, r2
8440 0014 1D46 mov r5, r3
3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8441 .loc 1 3964 5 is_stmt 1 view .LVU2999
3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8442 .loc 1 3964 8 is_stmt 0 view .LVU3000
8443 0016 01B1 cbz r1, .L553
3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8444 .loc 1 3964 25 discriminator 1 view .LVU3001
8445 0018 22B9 cbnz r2, .L554
8446 .L553:
3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8447 .loc 1 3966 7 is_stmt 1 view .LVU3002
3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8448 .loc 1 3966 23 is_stmt 0 view .LVU3003
8449 001a 4FF40073 mov r3, #512
8450 .LVL597:
3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8451 .loc 1 3966 23 view .LVU3004
8452 001e 6364 str r3, [r4, #68]
3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8453 .loc 1 3967 7 is_stmt 1 view .LVU3005
3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8454 .loc 1 3967 15 is_stmt 0 view .LVU3006
8455 0020 0120 movs r0, #1
ARM GAS /tmp/ccJ8PJrU.s page 331
8456 0022 55E0 b .L552
8457 .LVL598:
8458 .L554:
3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8459 .loc 1 3971 5 is_stmt 1 view .LVU3007
8460 0024 48F20101 movw r1, #32769
8461 .LVL599:
3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8462 .loc 1 3971 5 is_stmt 0 view .LVU3008
8463 0028 2046 mov r0, r4
8464 002a FFF7FEFF bl I2C_Disable_IRQ
8465 .LVL600:
3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8466 .loc 1 3974 5 is_stmt 1 view .LVU3009
3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8467 .loc 1 3974 5 view .LVU3010
8468 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8469 0032 012B cmp r3, #1
8470 0034 4DD0 beq .L558
3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8471 .loc 1 3974 5 discriminator 2 view .LVU3011
8472 0036 0123 movs r3, #1
8473 0038 84F84030 strb r3, [r4, #64]
3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8474 .loc 1 3974 5 discriminator 2 view .LVU3012
3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8475 .loc 1 3978 5 view .LVU3013
3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8476 .loc 1 3978 13 is_stmt 0 view .LVU3014
8477 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8478 0040 DBB2 uxtb r3, r3
3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8479 .loc 1 3978 8 view .LVU3015
8480 0042 2A2B cmp r3, #42
8481 0044 28D0 beq .L560
8482 .L555:
4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8483 .loc 1 4004 5 is_stmt 1 view .LVU3016
4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8484 .loc 1 4004 21 is_stmt 0 view .LVU3017
8485 0046 2923 movs r3, #41
8486 0048 84F84130 strb r3, [r4, #65]
4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8487 .loc 1 4005 5 is_stmt 1 view .LVU3018
4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8488 .loc 1 4005 21 is_stmt 0 view .LVU3019
8489 004c 2023 movs r3, #32
8490 004e 84F84230 strb r3, [r4, #66]
4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8491 .loc 1 4006 5 is_stmt 1 view .LVU3020
4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8492 .loc 1 4006 21 is_stmt 0 view .LVU3021
8493 0052 0023 movs r3, #0
8494 0054 6364 str r3, [r4, #68]
4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8495 .loc 1 4009 5 is_stmt 1 view .LVU3022
4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 332
8496 .loc 1 4009 9 is_stmt 0 view .LVU3023
8497 0056 2268 ldr r2, [r4]
4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8498 .loc 1 4009 19 view .LVU3024
8499 0058 5368 ldr r3, [r2, #4]
4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8500 .loc 1 4009 25 view .LVU3025
8501 005a 23F40043 bic r3, r3, #32768
8502 005e 5360 str r3, [r2, #4]
4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8503 .loc 1 4012 5 is_stmt 1 view .LVU3026
4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8504 .loc 1 4012 23 is_stmt 0 view .LVU3027
8505 0060 6762 str r7, [r4, #36]
4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8506 .loc 1 4013 5 is_stmt 1 view .LVU3028
4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8507 .loc 1 4013 23 is_stmt 0 view .LVU3029
8508 0062 6685 strh r6, [r4, #42] @ movhi
4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8509 .loc 1 4014 5 is_stmt 1 view .LVU3030
4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8510 .loc 1 4014 29 is_stmt 0 view .LVU3031
8511 0064 638D ldrh r3, [r4, #42]
4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8512 .loc 1 4014 23 view .LVU3032
8513 0066 2385 strh r3, [r4, #40] @ movhi
4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8514 .loc 1 4015 5 is_stmt 1 view .LVU3033
4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
8515 .loc 1 4015 23 is_stmt 0 view .LVU3034
8516 0068 E562 str r5, [r4, #44]
4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8517 .loc 1 4016 5 is_stmt 1 view .LVU3035
4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8518 .loc 1 4016 23 is_stmt 0 view .LVU3036
8519 006a 1B4B ldr r3, .L561
8520 006c 6363 str r3, [r4, #52]
4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8521 .loc 1 4018 5 is_stmt 1 view .LVU3037
4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8522 .loc 1 4018 11 is_stmt 0 view .LVU3038
8523 006e 2268 ldr r2, [r4]
8524 0070 9369 ldr r3, [r2, #24]
8525 0072 03F00803 and r3, r3, #8
8526 .LVL601:
4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8527 .loc 1 4019 5 is_stmt 1 view .LVU3039
4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8528 .loc 1 4019 10 is_stmt 0 view .LVU3040
8529 0076 9169 ldr r1, [r2, #24]
4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8530 .loc 1 4019 8 view .LVU3041
8531 0078 11F4803F tst r1, #65536
8532 007c 02D0 beq .L556
4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8533 .loc 1 4019 54 discriminator 1 view .LVU3042
ARM GAS /tmp/ccJ8PJrU.s page 333
8534 007e 0BB1 cbz r3, .L556
4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8535 .loc 1 4023 7 is_stmt 1 view .LVU3043
8536 0080 0823 movs r3, #8
8537 .LVL602:
4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8538 .loc 1 4023 7 is_stmt 0 view .LVU3044
8539 0082 D361 str r3, [r2, #28]
8540 .L556:
4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8541 .loc 1 4027 5 is_stmt 1 view .LVU3045
4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8542 .loc 1 4027 5 view .LVU3046
8543 0084 0025 movs r5, #0
8544 .LVL603:
4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8545 .loc 1 4027 5 is_stmt 0 view .LVU3047
8546 0086 84F84050 strb r5, [r4, #64]
4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8547 .loc 1 4027 5 is_stmt 1 view .LVU3048
4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8548 .loc 1 4033 5 view .LVU3049
8549 008a 48F20101 movw r1, #32769
8550 008e 2046 mov r0, r4
8551 0090 FFF7FEFF bl I2C_Enable_IRQ
8552 .LVL604:
4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8553 .loc 1 4035 5 view .LVU3050
4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8554 .loc 1 4035 12 is_stmt 0 view .LVU3051
8555 0094 2846 mov r0, r5
8556 0096 1BE0 b .L552
8557 .LVL605:
8558 .L560:
3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8559 .loc 1 3981 7 is_stmt 1 view .LVU3052
8560 0098 0221 movs r1, #2
8561 009a 2046 mov r0, r4
8562 009c FFF7FEFF bl I2C_Disable_IRQ
8563 .LVL606:
3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8564 .loc 1 3984 7 view .LVU3053
3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8565 .loc 1 3984 16 is_stmt 0 view .LVU3054
8566 00a0 2368 ldr r3, [r4]
3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8567 .loc 1 3984 26 view .LVU3055
8568 00a2 1A68 ldr r2, [r3]
3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8569 .loc 1 3984 10 view .LVU3056
8570 00a4 12F4004F tst r2, #32768
8571 00a8 CDD0 beq .L555
3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8572 .loc 1 3986 9 is_stmt 1 view .LVU3057
3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8573 .loc 1 3986 23 is_stmt 0 view .LVU3058
8574 00aa 1A68 ldr r2, [r3]
ARM GAS /tmp/ccJ8PJrU.s page 334
3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8575 .loc 1 3986 29 view .LVU3059
8576 00ac 22F40042 bic r2, r2, #32768
8577 00b0 1A60 str r2, [r3]
3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8578 .loc 1 3988 9 is_stmt 1 view .LVU3060
3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8579 .loc 1 3988 17 is_stmt 0 view .LVU3061
8580 00b2 E36B ldr r3, [r4, #60]
3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8581 .loc 1 3988 12 view .LVU3062
8582 00b4 002B cmp r3, #0
8583 00b6 C6D0 beq .L555
3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8584 .loc 1 3992 11 is_stmt 1 view .LVU3063
3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8585 .loc 1 3992 43 is_stmt 0 view .LVU3064
8586 00b8 084A ldr r2, .L561+4
8587 00ba 5A63 str r2, [r3, #52]
3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8588 .loc 1 3995 11 is_stmt 1 view .LVU3065
3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8589 .loc 1 3995 15 is_stmt 0 view .LVU3066
8590 00bc E06B ldr r0, [r4, #60]
8591 00be FFF7FEFF bl HAL_DMA_Abort_IT
8592 .LVL607:
3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8593 .loc 1 3995 14 discriminator 1 view .LVU3067
8594 00c2 0028 cmp r0, #0
8595 00c4 BFD0 beq .L555
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8596 .loc 1 3998 13 is_stmt 1 view .LVU3068
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8597 .loc 1 3998 17 is_stmt 0 view .LVU3069
8598 00c6 E06B ldr r0, [r4, #60]
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8599 .loc 1 3998 25 view .LVU3070
8600 00c8 436B ldr r3, [r0, #52]
3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8601 .loc 1 3998 13 view .LVU3071
8602 00ca 9847 blx r3
8603 .LVL608:
8604 00cc BBE7 b .L555
8605 .LVL609:
8606 .L557:
4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8607 .loc 1 4039 12 view .LVU3072
8608 00ce 0120 movs r0, #1
8609 .LVL610:
8610 .L552:
4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8611 .loc 1 4041 1 view .LVU3073
8612 00d0 F8BD pop {r3, r4, r5, r6, r7, pc}
8613 .LVL611:
8614 .L558:
3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8615 .loc 1 3974 5 discriminator 1 view .LVU3074
ARM GAS /tmp/ccJ8PJrU.s page 335
8616 00d2 0220 movs r0, #2
8617 00d4 FCE7 b .L552
8618 .L562:
8619 00d6 00BF .align 2
8620 .L561:
8621 00d8 00000000 .word I2C_Slave_ISR_IT
8622 00dc 00000000 .word I2C_DMAAbort
8623 .cfi_endproc
8624 .LFE150:
8626 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits
8627 .align 1
8628 .global HAL_I2C_Slave_Seq_Transmit_DMA
8629 .syntax unified
8630 .thumb
8631 .thumb_func
8633 HAL_I2C_Slave_Seq_Transmit_DMA:
8634 .LVL612:
8635 .LFB151:
4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8636 .loc 1 4055 1 is_stmt 1 view -0
8637 .cfi_startproc
8638 @ args = 0, pretend = 0, frame = 0
8639 @ frame_needed = 0, uses_anonymous_args = 0
4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
8640 .loc 1 4055 1 is_stmt 0 view .LVU3076
8641 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
8642 .cfi_def_cfa_offset 24
8643 .cfi_offset 3, -24
8644 .cfi_offset 4, -20
8645 .cfi_offset 5, -16
8646 .cfi_offset 6, -12
8647 .cfi_offset 7, -8
8648 .cfi_offset 14, -4
8649 0002 0446 mov r4, r0
4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
8650 .loc 1 4057 3 is_stmt 1 view .LVU3077
4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8651 .loc 1 4058 3 view .LVU3078
4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8652 .loc 1 4061 3 view .LVU3079
4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8653 .loc 1 4063 3 view .LVU3080
4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8654 .loc 1 4063 22 is_stmt 0 view .LVU3081
8655 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
8656 .LVL613:
4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8657 .loc 1 4063 6 view .LVU3082
8658 0008 00F02800 and r0, r0, #40
8659 000c 2828 cmp r0, #40
8660 000e 40F0C080 bne .L574
8661 0012 0F46 mov r7, r1
8662 0014 1646 mov r6, r2
8663 0016 1D46 mov r5, r3
4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8664 .loc 1 4065 5 is_stmt 1 view .LVU3083
4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 336
8665 .loc 1 4065 8 is_stmt 0 view .LVU3084
8666 0018 0029 cmp r1, #0
8667 001a 51D0 beq .L565
4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8668 .loc 1 4065 25 discriminator 1 view .LVU3085
8669 001c 002A cmp r2, #0
8670 001e 4FD0 beq .L565
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8671 .loc 1 4072 5 is_stmt 1 view .LVU3086
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8672 .loc 1 4072 5 view .LVU3087
8673 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
8674 .LVL614:
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8675 .loc 1 4072 5 is_stmt 0 view .LVU3088
8676 0024 012B cmp r3, #1
8677 0026 00F0B780 beq .L575
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8678 .loc 1 4072 5 is_stmt 1 discriminator 2 view .LVU3089
8679 002a 0123 movs r3, #1
8680 002c 84F84030 strb r3, [r4, #64]
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8681 .loc 1 4072 5 discriminator 2 view .LVU3090
4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8682 .loc 1 4075 5 view .LVU3091
8683 0030 48F20101 movw r1, #32769
8684 .LVL615:
4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8685 .loc 1 4075 5 is_stmt 0 view .LVU3092
8686 0034 2046 mov r0, r4
8687 0036 FFF7FEFF bl I2C_Disable_IRQ
8688 .LVL616:
4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8689 .loc 1 4079 5 is_stmt 1 view .LVU3093
4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8690 .loc 1 4079 13 is_stmt 0 view .LVU3094
8691 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8692 003e DBB2 uxtb r3, r3
4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8693 .loc 1 4079 8 view .LVU3095
8694 0040 2A2B cmp r3, #42
8695 0042 42D0 beq .L578
4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8696 .loc 1 4104 10 is_stmt 1 view .LVU3096
4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8697 .loc 1 4104 18 is_stmt 0 view .LVU3097
8698 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
8699 0048 DBB2 uxtb r3, r3
4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8700 .loc 1 4104 13 view .LVU3098
8701 004a 292B cmp r3, #41
8702 004c 59D0 beq .L579
8703 .L568:
4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8704 .loc 1 4129 5 is_stmt 1 view .LVU3099
4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8705 .loc 1 4131 5 view .LVU3100
ARM GAS /tmp/ccJ8PJrU.s page 337
4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
8706 .loc 1 4131 21 is_stmt 0 view .LVU3101
8707 004e 2923 movs r3, #41
8708 0050 84F84130 strb r3, [r4, #65]
4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8709 .loc 1 4132 5 is_stmt 1 view .LVU3102
4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
8710 .loc 1 4132 21 is_stmt 0 view .LVU3103
8711 0054 2023 movs r3, #32
8712 0056 84F84230 strb r3, [r4, #66]
4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8713 .loc 1 4133 5 is_stmt 1 view .LVU3104
4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8714 .loc 1 4133 21 is_stmt 0 view .LVU3105
8715 005a 0023 movs r3, #0
8716 005c 6364 str r3, [r4, #68]
4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8717 .loc 1 4136 5 is_stmt 1 view .LVU3106
4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8718 .loc 1 4136 9 is_stmt 0 view .LVU3107
8719 005e 2268 ldr r2, [r4]
4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8720 .loc 1 4136 19 view .LVU3108
8721 0060 5368 ldr r3, [r2, #4]
4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8722 .loc 1 4136 25 view .LVU3109
8723 0062 23F40043 bic r3, r3, #32768
8724 0066 5360 str r3, [r2, #4]
4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8725 .loc 1 4139 5 is_stmt 1 view .LVU3110
4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
8726 .loc 1 4139 23 is_stmt 0 view .LVU3111
8727 0068 6762 str r7, [r4, #36]
4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8728 .loc 1 4140 5 is_stmt 1 view .LVU3112
4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
8729 .loc 1 4140 23 is_stmt 0 view .LVU3113
8730 006a 6685 strh r6, [r4, #42] @ movhi
4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8731 .loc 1 4141 5 is_stmt 1 view .LVU3114
4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8732 .loc 1 4141 29 is_stmt 0 view .LVU3115
8733 006c 638D ldrh r3, [r4, #42]
4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
8734 .loc 1 4141 23 view .LVU3116
8735 006e 2385 strh r3, [r4, #40] @ movhi
4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8736 .loc 1 4142 5 is_stmt 1 view .LVU3117
4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
8737 .loc 1 4142 23 is_stmt 0 view .LVU3118
8738 0070 E562 str r5, [r4, #44]
4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8739 .loc 1 4143 5 is_stmt 1 view .LVU3119
4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8740 .loc 1 4143 23 is_stmt 0 view .LVU3120
8741 0072 4A4B ldr r3, .L580
8742 0074 6363 str r3, [r4, #52]
ARM GAS /tmp/ccJ8PJrU.s page 338
4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8743 .loc 1 4145 5 is_stmt 1 view .LVU3121
4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8744 .loc 1 4145 13 is_stmt 0 view .LVU3122
8745 0076 A36B ldr r3, [r4, #56]
4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8746 .loc 1 4145 8 view .LVU3123
8747 0078 002B cmp r3, #0
8748 007a 59D0 beq .L569
4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8749 .loc 1 4148 7 is_stmt 1 view .LVU3124
4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8750 .loc 1 4148 38 is_stmt 0 view .LVU3125
8751 007c 484A ldr r2, .L580+4
8752 007e 9A62 str r2, [r3, #40]
4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8753 .loc 1 4151 7 is_stmt 1 view .LVU3126
4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8754 .loc 1 4151 11 is_stmt 0 view .LVU3127
8755 0080 A36B ldr r3, [r4, #56]
4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8756 .loc 1 4151 39 view .LVU3128
8757 0082 484A ldr r2, .L580+8
8758 0084 1A63 str r2, [r3, #48]
4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8759 .loc 1 4154 7 is_stmt 1 view .LVU3129
4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8760 .loc 1 4154 11 is_stmt 0 view .LVU3130
8761 0086 A26B ldr r2, [r4, #56]
4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL;
8762 .loc 1 4154 42 view .LVU3131
8763 0088 0023 movs r3, #0
8764 008a D362 str r3, [r2, #44]
4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8765 .loc 1 4155 7 is_stmt 1 view .LVU3132
4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8766 .loc 1 4155 11 is_stmt 0 view .LVU3133
8767 008c A26B ldr r2, [r4, #56]
4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8768 .loc 1 4155 39 view .LVU3134
8769 008e 5363 str r3, [r2, #52]
4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
8770 .loc 1 4158 7 is_stmt 1 view .LVU3135
4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
8771 .loc 1 4158 86 is_stmt 0 view .LVU3136
8772 0090 2268 ldr r2, [r4]
4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize);
8773 .loc 1 4158 23 view .LVU3137
8774 0092 238D ldrh r3, [r4, #40]
8775 0094 2832 adds r2, r2, #40
8776 0096 3946 mov r1, r7
8777 0098 A06B ldr r0, [r4, #56]
8778 009a FFF7FEFF bl HAL_DMA_Start_IT
8779 .LVL617:
4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8780 .loc 1 4176 5 is_stmt 1 view .LVU3138
4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 339
8781 .loc 1 4176 8 is_stmt 0 view .LVU3139
8782 009e 0546 mov r5, r0
8783 .LVL618:
4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8784 .loc 1 4176 8 view .LVU3140
8785 00a0 0028 cmp r0, #0
8786 00a2 53D0 beq .L570
4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8787 .loc 1 4187 7 is_stmt 1 view .LVU3141
4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8788 .loc 1 4187 23 is_stmt 0 view .LVU3142
8789 00a4 2823 movs r3, #40
8790 00a6 84F84130 strb r3, [r4, #65]
4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8791 .loc 1 4188 7 is_stmt 1 view .LVU3143
4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8792 .loc 1 4188 23 is_stmt 0 view .LVU3144
8793 00aa 0022 movs r2, #0
8794 00ac 84F84220 strb r2, [r4, #66]
4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8795 .loc 1 4191 7 is_stmt 1 view .LVU3145
4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8796 .loc 1 4191 11 is_stmt 0 view .LVU3146
8797 00b0 636C ldr r3, [r4, #68]
4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8798 .loc 1 4191 23 view .LVU3147
8799 00b2 43F01003 orr r3, r3, #16
8800 00b6 6364 str r3, [r4, #68]
4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8801 .loc 1 4194 7 is_stmt 1 view .LVU3148
4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8802 .loc 1 4194 7 view .LVU3149
8803 00b8 84F84020 strb r2, [r4, #64]
4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8804 .loc 1 4194 7 view .LVU3150
4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8805 .loc 1 4196 7 view .LVU3151
4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8806 .loc 1 4196 14 is_stmt 0 view .LVU3152
8807 00bc 0125 movs r5, #1
8808 00be 69E0 b .L564
8809 .LVL619:
8810 .L565:
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8811 .loc 1 4067 7 is_stmt 1 view .LVU3153
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8812 .loc 1 4067 23 is_stmt 0 view .LVU3154
8813 00c0 4FF40073 mov r3, #512
8814 .LVL620:
4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
8815 .loc 1 4067 23 view .LVU3155
8816 00c4 6364 str r3, [r4, #68]
4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8817 .loc 1 4068 7 is_stmt 1 view .LVU3156
4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8818 .loc 1 4068 15 is_stmt 0 view .LVU3157
8819 00c6 0125 movs r5, #1
ARM GAS /tmp/ccJ8PJrU.s page 340
8820 .LVL621:
4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8821 .loc 1 4068 15 view .LVU3158
8822 00c8 64E0 b .L564
8823 .LVL622:
8824 .L578:
4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8825 .loc 1 4082 7 is_stmt 1 view .LVU3159
8826 00ca 0221 movs r1, #2
8827 00cc 2046 mov r0, r4
8828 00ce FFF7FEFF bl I2C_Disable_IRQ
8829 .LVL623:
4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8830 .loc 1 4084 7 view .LVU3160
4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8831 .loc 1 4084 16 is_stmt 0 view .LVU3161
8832 00d2 2368 ldr r3, [r4]
4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8833 .loc 1 4084 26 view .LVU3162
8834 00d4 1A68 ldr r2, [r3]
4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8835 .loc 1 4084 10 view .LVU3163
8836 00d6 12F4004F tst r2, #32768
8837 00da B8D0 beq .L568
4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8838 .loc 1 4087 9 is_stmt 1 view .LVU3164
4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8839 .loc 1 4087 17 is_stmt 0 view .LVU3165
8840 00dc E26B ldr r2, [r4, #60]
4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8841 .loc 1 4087 12 view .LVU3166
8842 00de 002A cmp r2, #0
8843 00e0 B5D0 beq .L568
4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8844 .loc 1 4089 11 is_stmt 1 view .LVU3167
4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8845 .loc 1 4089 25 is_stmt 0 view .LVU3168
8846 00e2 1A68 ldr r2, [r3]
4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8847 .loc 1 4089 31 view .LVU3169
8848 00e4 22F40042 bic r2, r2, #32768
8849 00e8 1A60 str r2, [r3]
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8850 .loc 1 4093 11 is_stmt 1 view .LVU3170
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8851 .loc 1 4093 15 is_stmt 0 view .LVU3171
8852 00ea E36B ldr r3, [r4, #60]
4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8853 .loc 1 4093 43 view .LVU3172
8854 00ec 2E4A ldr r2, .L580+12
8855 00ee 5A63 str r2, [r3, #52]
4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8856 .loc 1 4096 11 is_stmt 1 view .LVU3173
4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8857 .loc 1 4096 15 is_stmt 0 view .LVU3174
8858 00f0 E06B ldr r0, [r4, #60]
8859 00f2 FFF7FEFF bl HAL_DMA_Abort_IT
ARM GAS /tmp/ccJ8PJrU.s page 341
8860 .LVL624:
4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8861 .loc 1 4096 14 discriminator 1 view .LVU3175
8862 00f6 0028 cmp r0, #0
8863 00f8 A9D0 beq .L568
4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8864 .loc 1 4099 13 is_stmt 1 view .LVU3176
4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8865 .loc 1 4099 17 is_stmt 0 view .LVU3177
8866 00fa E06B ldr r0, [r4, #60]
4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8867 .loc 1 4099 25 view .LVU3178
8868 00fc 436B ldr r3, [r0, #52]
4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8869 .loc 1 4099 13 view .LVU3179
8870 00fe 9847 blx r3
8871 .LVL625:
8872 0100 A5E7 b .L568
8873 .L579:
4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8874 .loc 1 4106 7 is_stmt 1 view .LVU3180
4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8875 .loc 1 4106 16 is_stmt 0 view .LVU3181
8876 0102 2368 ldr r3, [r4]
4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8877 .loc 1 4106 26 view .LVU3182
8878 0104 1A68 ldr r2, [r3]
4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8879 .loc 1 4106 10 view .LVU3183
8880 0106 12F4804F tst r2, #16384
8881 010a A0D0 beq .L568
4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8882 .loc 1 4108 9 is_stmt 1 view .LVU3184
4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8883 .loc 1 4108 23 is_stmt 0 view .LVU3185
8884 010c 1A68 ldr r2, [r3]
4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8885 .loc 1 4108 29 view .LVU3186
8886 010e 22F48042 bic r2, r2, #16384
8887 0112 1A60 str r2, [r3]
4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8888 .loc 1 4111 9 is_stmt 1 view .LVU3187
4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8889 .loc 1 4111 17 is_stmt 0 view .LVU3188
8890 0114 A36B ldr r3, [r4, #56]
4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8891 .loc 1 4111 12 view .LVU3189
8892 0116 002B cmp r3, #0
8893 0118 99D0 beq .L568
4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8894 .loc 1 4115 11 is_stmt 1 view .LVU3190
4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8895 .loc 1 4115 43 is_stmt 0 view .LVU3191
8896 011a 234A ldr r2, .L580+12
8897 011c 5A63 str r2, [r3, #52]
4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8898 .loc 1 4118 11 is_stmt 1 view .LVU3192
ARM GAS /tmp/ccJ8PJrU.s page 342
4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8899 .loc 1 4118 15 is_stmt 0 view .LVU3193
8900 011e A06B ldr r0, [r4, #56]
8901 0120 FFF7FEFF bl HAL_DMA_Abort_IT
8902 .LVL626:
4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8903 .loc 1 4118 14 discriminator 1 view .LVU3194
8904 0124 0028 cmp r0, #0
8905 0126 92D0 beq .L568
4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8906 .loc 1 4121 13 is_stmt 1 view .LVU3195
4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8907 .loc 1 4121 17 is_stmt 0 view .LVU3196
8908 0128 A06B ldr r0, [r4, #56]
4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8909 .loc 1 4121 25 view .LVU3197
8910 012a 436B ldr r3, [r0, #52]
4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8911 .loc 1 4121 13 view .LVU3198
8912 012c 9847 blx r3
8913 .LVL627:
8914 012e 8EE7 b .L568
8915 .L569:
4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8916 .loc 1 4164 7 is_stmt 1 view .LVU3199
4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
8917 .loc 1 4164 23 is_stmt 0 view .LVU3200
8918 0130 2823 movs r3, #40
8919 0132 84F84130 strb r3, [r4, #65]
4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8920 .loc 1 4165 7 is_stmt 1 view .LVU3201
4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8921 .loc 1 4165 23 is_stmt 0 view .LVU3202
8922 0136 0022 movs r2, #0
8923 0138 84F84220 strb r2, [r4, #66]
4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8924 .loc 1 4168 7 is_stmt 1 view .LVU3203
4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8925 .loc 1 4168 11 is_stmt 0 view .LVU3204
8926 013c 636C ldr r3, [r4, #68]
4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8927 .loc 1 4168 23 view .LVU3205
8928 013e 43F08003 orr r3, r3, #128
8929 0142 6364 str r3, [r4, #68]
4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8930 .loc 1 4171 7 is_stmt 1 view .LVU3206
4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8931 .loc 1 4171 7 view .LVU3207
8932 0144 84F84020 strb r2, [r4, #64]
4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8933 .loc 1 4171 7 view .LVU3208
4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8934 .loc 1 4173 7 view .LVU3209
4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8935 .loc 1 4173 14 is_stmt 0 view .LVU3210
8936 0148 0125 movs r5, #1
8937 .LVL628:
ARM GAS /tmp/ccJ8PJrU.s page 343
4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8938 .loc 1 4173 14 view .LVU3211
8939 014a 23E0 b .L564
8940 .LVL629:
8941 .L570:
4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8942 .loc 1 4179 7 is_stmt 1 view .LVU3212
4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8943 .loc 1 4179 11 is_stmt 0 view .LVU3213
8944 014c 638D ldrh r3, [r4, #42]
8945 014e 9BB2 uxth r3, r3
4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8946 .loc 1 4179 30 view .LVU3214
8947 0150 228D ldrh r2, [r4, #40]
4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8948 .loc 1 4179 23 view .LVU3215
8949 0152 9B1A subs r3, r3, r2
8950 0154 9BB2 uxth r3, r3
8951 0156 6385 strh r3, [r4, #42] @ movhi
4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8952 .loc 1 4182 7 is_stmt 1 view .LVU3216
4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8953 .loc 1 4182 22 is_stmt 0 view .LVU3217
8954 0158 0023 movs r3, #0
8955 015a 2385 strh r3, [r4, #40] @ movhi
4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8956 .loc 1 4199 5 is_stmt 1 view .LVU3218
4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET))
8957 .loc 1 4199 11 is_stmt 0 view .LVU3219
8958 015c 2268 ldr r2, [r4]
8959 015e 9369 ldr r3, [r2, #24]
8960 0160 03F00803 and r3, r3, #8
8961 .LVL630:
4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8962 .loc 1 4200 5 is_stmt 1 view .LVU3220
4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8963 .loc 1 4200 10 is_stmt 0 view .LVU3221
8964 0164 9169 ldr r1, [r2, #24]
4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8965 .loc 1 4200 8 view .LVU3222
8966 0166 11F4803F tst r1, #65536
8967 016a 0DD1 bne .L572
8968 .LVL631:
8969 .L573:
4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8970 .loc 1 4208 5 is_stmt 1 view .LVU3223
4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8971 .loc 1 4208 5 view .LVU3224
8972 016c 0023 movs r3, #0
8973 016e 84F84030 strb r3, [r4, #64]
4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8974 .loc 1 4208 5 view .LVU3225
4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8975 .loc 1 4211 5 view .LVU3226
4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8976 .loc 1 4211 9 is_stmt 0 view .LVU3227
8977 0172 2268 ldr r2, [r4]
ARM GAS /tmp/ccJ8PJrU.s page 344
4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8978 .loc 1 4211 19 view .LVU3228
8979 0174 1368 ldr r3, [r2]
4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8980 .loc 1 4211 25 view .LVU3229
8981 0176 43F48043 orr r3, r3, #16384
8982 017a 1360 str r3, [r2]
4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8983 .loc 1 4217 5 is_stmt 1 view .LVU3230
8984 017c 4FF40041 mov r1, #32768
8985 0180 2046 mov r0, r4
8986 .LVL632:
4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
8987 .loc 1 4217 5 is_stmt 0 view .LVU3231
8988 0182 FFF7FEFF bl I2C_Enable_IRQ
8989 .LVL633:
4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8990 .loc 1 4219 5 is_stmt 1 view .LVU3232
4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8991 .loc 1 4219 12 is_stmt 0 view .LVU3233
8992 0186 05E0 b .L564
8993 .LVL634:
8994 .L572:
4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
8995 .loc 1 4200 54 discriminator 1 view .LVU3234
8996 0188 002B cmp r3, #0
8997 018a EFD0 beq .L573
4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
8998 .loc 1 4204 7 is_stmt 1 view .LVU3235
8999 018c 0823 movs r3, #8
9000 .LVL635:
4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9001 .loc 1 4204 7 is_stmt 0 view .LVU3236
9002 018e D361 str r3, [r2, #28]
9003 0190 ECE7 b .L573
9004 .LVL636:
9005 .L574:
4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9006 .loc 1 4223 12 view .LVU3237
9007 0192 0125 movs r5, #1
9008 .LVL637:
9009 .L564:
4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9010 .loc 1 4225 1 view .LVU3238
9011 0194 2846 mov r0, r5
9012 0196 F8BD pop {r3, r4, r5, r6, r7, pc}
9013 .LVL638:
9014 .L575:
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9015 .loc 1 4072 5 discriminator 1 view .LVU3239
9016 0198 0225 movs r5, #2
9017 .LVL639:
4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9018 .loc 1 4072 5 discriminator 1 view .LVU3240
9019 019a FBE7 b .L564
9020 .L581:
9021 .align 2
ARM GAS /tmp/ccJ8PJrU.s page 345
9022 .L580:
9023 019c 00000000 .word I2C_Slave_ISR_DMA
9024 01a0 00000000 .word I2C_DMASlaveTransmitCplt
9025 01a4 00000000 .word I2C_DMAError
9026 01a8 00000000 .word I2C_DMAAbort
9027 .cfi_endproc
9028 .LFE151:
9030 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits
9031 .align 1
9032 .global HAL_I2C_Slave_Seq_Receive_IT
9033 .syntax unified
9034 .thumb
9035 .thumb_func
9037 HAL_I2C_Slave_Seq_Receive_IT:
9038 .LVL640:
9039 .LFB152:
4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9040 .loc 1 4239 1 is_stmt 1 view -0
9041 .cfi_startproc
9042 @ args = 0, pretend = 0, frame = 0
9043 @ frame_needed = 0, uses_anonymous_args = 0
4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9044 .loc 1 4239 1 is_stmt 0 view .LVU3242
9045 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
9046 .cfi_def_cfa_offset 24
9047 .cfi_offset 3, -24
9048 .cfi_offset 4, -20
9049 .cfi_offset 5, -16
9050 .cfi_offset 6, -12
9051 .cfi_offset 7, -8
9052 .cfi_offset 14, -4
9053 0002 0446 mov r4, r0
4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9054 .loc 1 4241 3 is_stmt 1 view .LVU3243
4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9055 .loc 1 4244 3 view .LVU3244
4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9056 .loc 1 4246 3 view .LVU3245
4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9057 .loc 1 4246 22 is_stmt 0 view .LVU3246
9058 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
9059 .LVL641:
4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9060 .loc 1 4246 6 view .LVU3247
9061 0008 00F02800 and r0, r0, #40
9062 000c 2828 cmp r0, #40
9063 000e 5ED1 bne .L588
9064 0010 0F46 mov r7, r1
9065 0012 1646 mov r6, r2
9066 0014 1D46 mov r5, r3
4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9067 .loc 1 4248 5 is_stmt 1 view .LVU3248
4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9068 .loc 1 4248 8 is_stmt 0 view .LVU3249
9069 0016 01B1 cbz r1, .L584
4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9070 .loc 1 4248 25 discriminator 1 view .LVU3250
ARM GAS /tmp/ccJ8PJrU.s page 346
9071 0018 22B9 cbnz r2, .L585
9072 .L584:
4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
9073 .loc 1 4250 7 is_stmt 1 view .LVU3251
4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
9074 .loc 1 4250 23 is_stmt 0 view .LVU3252
9075 001a 4FF40073 mov r3, #512
9076 .LVL642:
4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
9077 .loc 1 4250 23 view .LVU3253
9078 001e 6364 str r3, [r4, #68]
4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9079 .loc 1 4251 7 is_stmt 1 view .LVU3254
4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9080 .loc 1 4251 15 is_stmt 0 view .LVU3255
9081 0020 0120 movs r0, #1
9082 0022 55E0 b .L583
9083 .LVL643:
9084 .L585:
4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9085 .loc 1 4255 5 is_stmt 1 view .LVU3256
9086 0024 48F20201 movw r1, #32770
9087 .LVL644:
4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9088 .loc 1 4255 5 is_stmt 0 view .LVU3257
9089 0028 2046 mov r0, r4
9090 002a FFF7FEFF bl I2C_Disable_IRQ
9091 .LVL645:
4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9092 .loc 1 4258 5 is_stmt 1 view .LVU3258
4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9093 .loc 1 4258 5 view .LVU3259
9094 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
9095 0032 012B cmp r3, #1
9096 0034 4DD0 beq .L589
4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9097 .loc 1 4258 5 discriminator 2 view .LVU3260
9098 0036 0123 movs r3, #1
9099 0038 84F84030 strb r3, [r4, #64]
4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9100 .loc 1 4258 5 discriminator 2 view .LVU3261
4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9101 .loc 1 4262 5 view .LVU3262
4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9102 .loc 1 4262 13 is_stmt 0 view .LVU3263
9103 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
9104 0040 DBB2 uxtb r3, r3
4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9105 .loc 1 4262 8 view .LVU3264
9106 0042 292B cmp r3, #41
9107 0044 28D0 beq .L591
9108 .L586:
4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9109 .loc 1 4288 5 is_stmt 1 view .LVU3265
4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9110 .loc 1 4288 21 is_stmt 0 view .LVU3266
9111 0046 2A23 movs r3, #42
ARM GAS /tmp/ccJ8PJrU.s page 347
9112 0048 84F84130 strb r3, [r4, #65]
4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9113 .loc 1 4289 5 is_stmt 1 view .LVU3267
4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9114 .loc 1 4289 21 is_stmt 0 view .LVU3268
9115 004c 2023 movs r3, #32
9116 004e 84F84230 strb r3, [r4, #66]
4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9117 .loc 1 4290 5 is_stmt 1 view .LVU3269
4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9118 .loc 1 4290 21 is_stmt 0 view .LVU3270
9119 0052 0023 movs r3, #0
9120 0054 6364 str r3, [r4, #68]
4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9121 .loc 1 4293 5 is_stmt 1 view .LVU3271
4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9122 .loc 1 4293 9 is_stmt 0 view .LVU3272
9123 0056 2268 ldr r2, [r4]
4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9124 .loc 1 4293 19 view .LVU3273
9125 0058 5368 ldr r3, [r2, #4]
4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9126 .loc 1 4293 25 view .LVU3274
9127 005a 23F40043 bic r3, r3, #32768
9128 005e 5360 str r3, [r2, #4]
4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
9129 .loc 1 4296 5 is_stmt 1 view .LVU3275
4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
9130 .loc 1 4296 23 is_stmt 0 view .LVU3276
9131 0060 6762 str r7, [r4, #36]
4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9132 .loc 1 4297 5 is_stmt 1 view .LVU3277
4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9133 .loc 1 4297 23 is_stmt 0 view .LVU3278
9134 0062 6685 strh r6, [r4, #42] @ movhi
4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9135 .loc 1 4298 5 is_stmt 1 view .LVU3279
4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9136 .loc 1 4298 29 is_stmt 0 view .LVU3280
9137 0064 638D ldrh r3, [r4, #42]
4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9138 .loc 1 4298 23 view .LVU3281
9139 0066 2385 strh r3, [r4, #40] @ movhi
4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9140 .loc 1 4299 5 is_stmt 1 view .LVU3282
4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9141 .loc 1 4299 23 is_stmt 0 view .LVU3283
9142 0068 E562 str r5, [r4, #44]
4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9143 .loc 1 4300 5 is_stmt 1 view .LVU3284
4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9144 .loc 1 4300 23 is_stmt 0 view .LVU3285
9145 006a 1B4B ldr r3, .L592
9146 006c 6363 str r3, [r4, #52]
4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9147 .loc 1 4302 5 is_stmt 1 view .LVU3286
4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
ARM GAS /tmp/ccJ8PJrU.s page 348
9148 .loc 1 4302 11 is_stmt 0 view .LVU3287
9149 006e 2268 ldr r2, [r4]
9150 0070 9369 ldr r3, [r2, #24]
9151 0072 03F00803 and r3, r3, #8
9152 .LVL646:
4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9153 .loc 1 4303 5 is_stmt 1 view .LVU3288
4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9154 .loc 1 4303 10 is_stmt 0 view .LVU3289
9155 0076 9169 ldr r1, [r2, #24]
4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9156 .loc 1 4303 8 view .LVU3290
9157 0078 11F4803F tst r1, #65536
9158 007c 02D1 bne .L587
4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9159 .loc 1 4303 55 discriminator 1 view .LVU3291
9160 007e 0BB1 cbz r3, .L587
4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9161 .loc 1 4307 7 is_stmt 1 view .LVU3292
9162 0080 0823 movs r3, #8
9163 .LVL647:
4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9164 .loc 1 4307 7 is_stmt 0 view .LVU3293
9165 0082 D361 str r3, [r2, #28]
9166 .L587:
4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9167 .loc 1 4311 5 is_stmt 1 view .LVU3294
4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9168 .loc 1 4311 5 view .LVU3295
9169 0084 0025 movs r5, #0
9170 .LVL648:
4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9171 .loc 1 4311 5 is_stmt 0 view .LVU3296
9172 0086 84F84050 strb r5, [r4, #64]
4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9173 .loc 1 4311 5 is_stmt 1 view .LVU3297
4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9174 .loc 1 4317 5 view .LVU3298
9175 008a 48F20201 movw r1, #32770
9176 008e 2046 mov r0, r4
9177 0090 FFF7FEFF bl I2C_Enable_IRQ
9178 .LVL649:
4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9179 .loc 1 4319 5 view .LVU3299
4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9180 .loc 1 4319 12 is_stmt 0 view .LVU3300
9181 0094 2846 mov r0, r5
9182 0096 1BE0 b .L583
9183 .LVL650:
9184 .L591:
4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9185 .loc 1 4265 7 is_stmt 1 view .LVU3301
9186 0098 0121 movs r1, #1
9187 009a 2046 mov r0, r4
9188 009c FFF7FEFF bl I2C_Disable_IRQ
9189 .LVL651:
4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 349
9190 .loc 1 4267 7 view .LVU3302
4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9191 .loc 1 4267 16 is_stmt 0 view .LVU3303
9192 00a0 2368 ldr r3, [r4]
4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9193 .loc 1 4267 26 view .LVU3304
9194 00a2 1A68 ldr r2, [r3]
4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9195 .loc 1 4267 10 view .LVU3305
9196 00a4 12F4804F tst r2, #16384
9197 00a8 CDD0 beq .L586
4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9198 .loc 1 4269 9 is_stmt 1 view .LVU3306
4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9199 .loc 1 4269 23 is_stmt 0 view .LVU3307
9200 00aa 1A68 ldr r2, [r3]
4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9201 .loc 1 4269 29 view .LVU3308
9202 00ac 22F48042 bic r2, r2, #16384
9203 00b0 1A60 str r2, [r3]
4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9204 .loc 1 4272 9 is_stmt 1 view .LVU3309
4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9205 .loc 1 4272 17 is_stmt 0 view .LVU3310
9206 00b2 A36B ldr r3, [r4, #56]
4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9207 .loc 1 4272 12 view .LVU3311
9208 00b4 002B cmp r3, #0
9209 00b6 C6D0 beq .L586
4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9210 .loc 1 4276 11 is_stmt 1 view .LVU3312
4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9211 .loc 1 4276 43 is_stmt 0 view .LVU3313
9212 00b8 084A ldr r2, .L592+4
9213 00ba 5A63 str r2, [r3, #52]
4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9214 .loc 1 4279 11 is_stmt 1 view .LVU3314
4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9215 .loc 1 4279 15 is_stmt 0 view .LVU3315
9216 00bc A06B ldr r0, [r4, #56]
9217 00be FFF7FEFF bl HAL_DMA_Abort_IT
9218 .LVL652:
4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9219 .loc 1 4279 14 discriminator 1 view .LVU3316
9220 00c2 0028 cmp r0, #0
9221 00c4 BFD0 beq .L586
4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9222 .loc 1 4282 13 is_stmt 1 view .LVU3317
4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9223 .loc 1 4282 17 is_stmt 0 view .LVU3318
9224 00c6 A06B ldr r0, [r4, #56]
4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9225 .loc 1 4282 25 view .LVU3319
9226 00c8 436B ldr r3, [r0, #52]
4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9227 .loc 1 4282 13 view .LVU3320
9228 00ca 9847 blx r3
ARM GAS /tmp/ccJ8PJrU.s page 350
9229 .LVL653:
9230 00cc BBE7 b .L586
9231 .LVL654:
9232 .L588:
4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9233 .loc 1 4323 12 view .LVU3321
9234 00ce 0120 movs r0, #1
9235 .LVL655:
9236 .L583:
4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9237 .loc 1 4325 1 view .LVU3322
9238 00d0 F8BD pop {r3, r4, r5, r6, r7, pc}
9239 .LVL656:
9240 .L589:
4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9241 .loc 1 4258 5 discriminator 1 view .LVU3323
9242 00d2 0220 movs r0, #2
9243 00d4 FCE7 b .L583
9244 .L593:
9245 00d6 00BF .align 2
9246 .L592:
9247 00d8 00000000 .word I2C_Slave_ISR_IT
9248 00dc 00000000 .word I2C_DMAAbort
9249 .cfi_endproc
9250 .LFE152:
9252 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits
9253 .align 1
9254 .global HAL_I2C_Slave_Seq_Receive_DMA
9255 .syntax unified
9256 .thumb
9257 .thumb_func
9259 HAL_I2C_Slave_Seq_Receive_DMA:
9260 .LVL657:
9261 .LFB153:
4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9262 .loc 1 4339 1 is_stmt 1 view -0
9263 .cfi_startproc
9264 @ args = 0, pretend = 0, frame = 0
9265 @ frame_needed = 0, uses_anonymous_args = 0
4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9266 .loc 1 4339 1 is_stmt 0 view .LVU3325
9267 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
9268 .cfi_def_cfa_offset 24
9269 .cfi_offset 3, -24
9270 .cfi_offset 4, -20
9271 .cfi_offset 5, -16
9272 .cfi_offset 6, -12
9273 .cfi_offset 7, -8
9274 .cfi_offset 14, -4
9275 0002 0446 mov r4, r0
4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus;
9276 .loc 1 4341 3 is_stmt 1 view .LVU3326
4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9277 .loc 1 4342 3 view .LVU3327
4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9278 .loc 1 4345 3 view .LVU3328
4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 351
9279 .loc 1 4347 3 view .LVU3329
4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9280 .loc 1 4347 22 is_stmt 0 view .LVU3330
9281 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
9282 .LVL658:
4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9283 .loc 1 4347 6 view .LVU3331
9284 0008 00F02800 and r0, r0, #40
9285 000c 2828 cmp r0, #40
9286 000e 40F0BE80 bne .L605
9287 0012 0F46 mov r7, r1
9288 0014 1646 mov r6, r2
9289 0016 1D46 mov r5, r3
4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9290 .loc 1 4349 5 is_stmt 1 view .LVU3332
4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9291 .loc 1 4349 8 is_stmt 0 view .LVU3333
9292 0018 01B1 cbz r1, .L596
4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9293 .loc 1 4349 25 discriminator 1 view .LVU3334
9294 001a 22B9 cbnz r2, .L597
9295 .L596:
4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
9296 .loc 1 4351 7 is_stmt 1 view .LVU3335
4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
9297 .loc 1 4351 23 is_stmt 0 view .LVU3336
9298 001c 4FF40073 mov r3, #512
9299 .LVL659:
4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR;
9300 .loc 1 4351 23 view .LVU3337
9301 0020 6364 str r3, [r4, #68]
4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9302 .loc 1 4352 7 is_stmt 1 view .LVU3338
4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9303 .loc 1 4352 15 is_stmt 0 view .LVU3339
9304 0022 0125 movs r5, #1
9305 .LVL660:
4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9306 .loc 1 4352 15 view .LVU3340
9307 0024 B4E0 b .L595
9308 .LVL661:
9309 .L597:
4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9310 .loc 1 4356 5 is_stmt 1 view .LVU3341
9311 0026 48F20201 movw r1, #32770
9312 .LVL662:
4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9313 .loc 1 4356 5 is_stmt 0 view .LVU3342
9314 002a 2046 mov r0, r4
9315 002c FFF7FEFF bl I2C_Disable_IRQ
9316 .LVL663:
4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9317 .loc 1 4359 5 is_stmt 1 view .LVU3343
4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9318 .loc 1 4359 5 view .LVU3344
9319 0030 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
9320 0034 012B cmp r3, #1
ARM GAS /tmp/ccJ8PJrU.s page 352
9321 0036 00F0AD80 beq .L606
4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9322 .loc 1 4359 5 discriminator 2 view .LVU3345
9323 003a 0123 movs r3, #1
9324 003c 84F84030 strb r3, [r4, #64]
4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9325 .loc 1 4359 5 discriminator 2 view .LVU3346
4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9326 .loc 1 4363 5 view .LVU3347
4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9327 .loc 1 4363 13 is_stmt 0 view .LVU3348
9328 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
9329 0044 DBB2 uxtb r3, r3
4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9330 .loc 1 4363 8 view .LVU3349
9331 0046 292B cmp r3, #41
9332 0048 3DD0 beq .L609
4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9333 .loc 1 4388 10 is_stmt 1 view .LVU3350
4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9334 .loc 1 4388 18 is_stmt 0 view .LVU3351
9335 004a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
9336 004e DBB2 uxtb r3, r3
4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9337 .loc 1 4388 13 view .LVU3352
9338 0050 2A2B cmp r3, #42
9339 0052 54D0 beq .L610
9340 .L599:
4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9341 .loc 1 4413 5 is_stmt 1 view .LVU3353
4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9342 .loc 1 4415 5 view .LVU3354
4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE;
9343 .loc 1 4415 21 is_stmt 0 view .LVU3355
9344 0054 2A23 movs r3, #42
9345 0056 84F84130 strb r3, [r4, #65]
4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9346 .loc 1 4416 5 is_stmt 1 view .LVU3356
4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE;
9347 .loc 1 4416 21 is_stmt 0 view .LVU3357
9348 005a 2023 movs r3, #32
9349 005c 84F84230 strb r3, [r4, #66]
4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9350 .loc 1 4417 5 is_stmt 1 view .LVU3358
4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9351 .loc 1 4417 21 is_stmt 0 view .LVU3359
9352 0060 0023 movs r3, #0
9353 0062 6364 str r3, [r4, #68]
4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9354 .loc 1 4420 5 is_stmt 1 view .LVU3360
4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9355 .loc 1 4420 9 is_stmt 0 view .LVU3361
9356 0064 2268 ldr r2, [r4]
4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9357 .loc 1 4420 19 view .LVU3362
9358 0066 5368 ldr r3, [r2, #4]
4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 353
9359 .loc 1 4420 25 view .LVU3363
9360 0068 23F40043 bic r3, r3, #32768
9361 006c 5360 str r3, [r2, #4]
4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
9362 .loc 1 4423 5 is_stmt 1 view .LVU3364
4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size;
9363 .loc 1 4423 23 is_stmt 0 view .LVU3365
9364 006e 6762 str r7, [r4, #36]
4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9365 .loc 1 4424 5 is_stmt 1 view .LVU3366
4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount;
9366 .loc 1 4424 23 is_stmt 0 view .LVU3367
9367 0070 6685 strh r6, [r4, #42] @ movhi
4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9368 .loc 1 4425 5 is_stmt 1 view .LVU3368
4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9369 .loc 1 4425 29 is_stmt 0 view .LVU3369
9370 0072 638D ldrh r3, [r4, #42]
4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions;
9371 .loc 1 4425 23 view .LVU3370
9372 0074 2385 strh r3, [r4, #40] @ movhi
4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
9373 .loc 1 4426 5 is_stmt 1 view .LVU3371
4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA;
9374 .loc 1 4426 23 is_stmt 0 view .LVU3372
9375 0076 E562 str r5, [r4, #44]
4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9376 .loc 1 4427 5 is_stmt 1 view .LVU3373
4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9377 .loc 1 4427 23 is_stmt 0 view .LVU3374
9378 0078 474B ldr r3, .L611
9379 007a 6363 str r3, [r4, #52]
4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9380 .loc 1 4429 5 is_stmt 1 view .LVU3375
4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9381 .loc 1 4429 13 is_stmt 0 view .LVU3376
9382 007c E36B ldr r3, [r4, #60]
4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9383 .loc 1 4429 8 view .LVU3377
9384 007e 002B cmp r3, #0
9385 0080 54D0 beq .L600
4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9386 .loc 1 4432 7 is_stmt 1 view .LVU3378
4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9387 .loc 1 4432 38 is_stmt 0 view .LVU3379
9388 0082 464A ldr r2, .L611+4
9389 0084 9A62 str r2, [r3, #40]
4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9390 .loc 1 4435 7 is_stmt 1 view .LVU3380
4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9391 .loc 1 4435 11 is_stmt 0 view .LVU3381
9392 0086 E36B ldr r3, [r4, #60]
4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9393 .loc 1 4435 39 view .LVU3382
9394 0088 454A ldr r2, .L611+8
9395 008a 1A63 str r2, [r3, #48]
4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
ARM GAS /tmp/ccJ8PJrU.s page 354
9396 .loc 1 4438 7 is_stmt 1 view .LVU3383
4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
9397 .loc 1 4438 11 is_stmt 0 view .LVU3384
9398 008c E26B ldr r2, [r4, #60]
4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL;
9399 .loc 1 4438 42 view .LVU3385
9400 008e 0023 movs r3, #0
9401 0090 D362 str r3, [r2, #44]
4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9402 .loc 1 4439 7 is_stmt 1 view .LVU3386
4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9403 .loc 1 4439 11 is_stmt 0 view .LVU3387
9404 0092 E26B ldr r2, [r4, #60]
4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9405 .loc 1 4439 39 view .LVU3388
9406 0094 5363 str r3, [r2, #52]
4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
9407 .loc 1 4442 7 is_stmt 1 view .LVU3389
4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
9408 .loc 1 4442 69 is_stmt 0 view .LVU3390
9409 0096 2168 ldr r1, [r4]
4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize);
9410 .loc 1 4442 23 view .LVU3391
9411 0098 238D ldrh r3, [r4, #40]
9412 009a 3A46 mov r2, r7
9413 009c 2431 adds r1, r1, #36
9414 009e E06B ldr r0, [r4, #60]
9415 00a0 FFF7FEFF bl HAL_DMA_Start_IT
9416 .LVL664:
4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9417 .loc 1 4460 5 is_stmt 1 view .LVU3392
4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9418 .loc 1 4460 8 is_stmt 0 view .LVU3393
9419 00a4 0546 mov r5, r0
9420 .LVL665:
4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9421 .loc 1 4460 8 view .LVU3394
9422 00a6 0028 cmp r0, #0
9423 00a8 4ED0 beq .L601
4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9424 .loc 1 4471 7 is_stmt 1 view .LVU3395
4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9425 .loc 1 4471 23 is_stmt 0 view .LVU3396
9426 00aa 2823 movs r3, #40
9427 00ac 84F84130 strb r3, [r4, #65]
4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9428 .loc 1 4472 7 is_stmt 1 view .LVU3397
4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9429 .loc 1 4472 23 is_stmt 0 view .LVU3398
9430 00b0 0022 movs r2, #0
9431 00b2 84F84220 strb r2, [r4, #66]
4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9432 .loc 1 4475 7 is_stmt 1 view .LVU3399
4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9433 .loc 1 4475 11 is_stmt 0 view .LVU3400
9434 00b6 636C ldr r3, [r4, #68]
4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 355
9435 .loc 1 4475 23 view .LVU3401
9436 00b8 43F01003 orr r3, r3, #16
9437 00bc 6364 str r3, [r4, #68]
4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9438 .loc 1 4478 7 is_stmt 1 view .LVU3402
4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9439 .loc 1 4478 7 view .LVU3403
9440 00be 84F84020 strb r2, [r4, #64]
4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9441 .loc 1 4478 7 view .LVU3404
4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9442 .loc 1 4480 7 view .LVU3405
4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9443 .loc 1 4480 14 is_stmt 0 view .LVU3406
9444 00c2 0125 movs r5, #1
9445 00c4 64E0 b .L595
9446 .LVL666:
9447 .L609:
4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9448 .loc 1 4366 7 is_stmt 1 view .LVU3407
9449 00c6 0121 movs r1, #1
9450 00c8 2046 mov r0, r4
9451 00ca FFF7FEFF bl I2C_Disable_IRQ
9452 .LVL667:
4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9453 .loc 1 4368 7 view .LVU3408
4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9454 .loc 1 4368 16 is_stmt 0 view .LVU3409
9455 00ce 2368 ldr r3, [r4]
4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9456 .loc 1 4368 26 view .LVU3410
9457 00d0 1A68 ldr r2, [r3]
4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9458 .loc 1 4368 10 view .LVU3411
9459 00d2 12F4804F tst r2, #16384
9460 00d6 BDD0 beq .L599
4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9461 .loc 1 4371 9 is_stmt 1 view .LVU3412
4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9462 .loc 1 4371 17 is_stmt 0 view .LVU3413
9463 00d8 A26B ldr r2, [r4, #56]
4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9464 .loc 1 4371 12 view .LVU3414
9465 00da 002A cmp r2, #0
9466 00dc BAD0 beq .L599
4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9467 .loc 1 4373 11 is_stmt 1 view .LVU3415
4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9468 .loc 1 4373 25 is_stmt 0 view .LVU3416
9469 00de 1A68 ldr r2, [r3]
4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9470 .loc 1 4373 31 view .LVU3417
9471 00e0 22F48042 bic r2, r2, #16384
9472 00e4 1A60 str r2, [r3]
4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9473 .loc 1 4377 11 is_stmt 1 view .LVU3418
4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 356
9474 .loc 1 4377 15 is_stmt 0 view .LVU3419
9475 00e6 A36B ldr r3, [r4, #56]
4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9476 .loc 1 4377 43 view .LVU3420
9477 00e8 2E4A ldr r2, .L611+12
9478 00ea 5A63 str r2, [r3, #52]
4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9479 .loc 1 4380 11 is_stmt 1 view .LVU3421
4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9480 .loc 1 4380 15 is_stmt 0 view .LVU3422
9481 00ec A06B ldr r0, [r4, #56]
9482 00ee FFF7FEFF bl HAL_DMA_Abort_IT
9483 .LVL668:
4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9484 .loc 1 4380 14 discriminator 1 view .LVU3423
9485 00f2 0028 cmp r0, #0
9486 00f4 AED0 beq .L599
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9487 .loc 1 4383 13 is_stmt 1 view .LVU3424
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9488 .loc 1 4383 17 is_stmt 0 view .LVU3425
9489 00f6 A06B ldr r0, [r4, #56]
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9490 .loc 1 4383 25 view .LVU3426
9491 00f8 436B ldr r3, [r0, #52]
4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9492 .loc 1 4383 13 view .LVU3427
9493 00fa 9847 blx r3
9494 .LVL669:
9495 00fc AAE7 b .L599
9496 .L610:
4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9497 .loc 1 4390 7 is_stmt 1 view .LVU3428
4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9498 .loc 1 4390 16 is_stmt 0 view .LVU3429
9499 00fe 2368 ldr r3, [r4]
4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9500 .loc 1 4390 26 view .LVU3430
9501 0100 1A68 ldr r2, [r3]
4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9502 .loc 1 4390 10 view .LVU3431
9503 0102 12F4004F tst r2, #32768
9504 0106 A5D0 beq .L599
4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9505 .loc 1 4392 9 is_stmt 1 view .LVU3432
4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9506 .loc 1 4392 23 is_stmt 0 view .LVU3433
9507 0108 1A68 ldr r2, [r3]
4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9508 .loc 1 4392 29 view .LVU3434
9509 010a 22F40042 bic r2, r2, #32768
9510 010e 1A60 str r2, [r3]
4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9511 .loc 1 4395 9 is_stmt 1 view .LVU3435
4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9512 .loc 1 4395 17 is_stmt 0 view .LVU3436
9513 0110 E36B ldr r3, [r4, #60]
ARM GAS /tmp/ccJ8PJrU.s page 357
4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9514 .loc 1 4395 12 view .LVU3437
9515 0112 002B cmp r3, #0
9516 0114 9ED0 beq .L599
4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9517 .loc 1 4399 11 is_stmt 1 view .LVU3438
4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9518 .loc 1 4399 43 is_stmt 0 view .LVU3439
9519 0116 234A ldr r2, .L611+12
9520 0118 5A63 str r2, [r3, #52]
4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9521 .loc 1 4402 11 is_stmt 1 view .LVU3440
4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9522 .loc 1 4402 15 is_stmt 0 view .LVU3441
9523 011a E06B ldr r0, [r4, #60]
9524 011c FFF7FEFF bl HAL_DMA_Abort_IT
9525 .LVL670:
4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9526 .loc 1 4402 14 discriminator 1 view .LVU3442
9527 0120 0028 cmp r0, #0
9528 0122 97D0 beq .L599
4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9529 .loc 1 4405 13 is_stmt 1 view .LVU3443
4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9530 .loc 1 4405 17 is_stmt 0 view .LVU3444
9531 0124 E06B ldr r0, [r4, #60]
4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9532 .loc 1 4405 25 view .LVU3445
9533 0126 436B ldr r3, [r0, #52]
4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9534 .loc 1 4405 13 view .LVU3446
9535 0128 9847 blx r3
9536 .LVL671:
9537 012a 93E7 b .L599
9538 .L600:
4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9539 .loc 1 4448 7 is_stmt 1 view .LVU3447
4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9540 .loc 1 4448 23 is_stmt 0 view .LVU3448
9541 012c 2823 movs r3, #40
9542 012e 84F84130 strb r3, [r4, #65]
4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9543 .loc 1 4449 7 is_stmt 1 view .LVU3449
4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9544 .loc 1 4449 23 is_stmt 0 view .LVU3450
9545 0132 0022 movs r2, #0
9546 0134 84F84220 strb r2, [r4, #66]
4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9547 .loc 1 4452 7 is_stmt 1 view .LVU3451
4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9548 .loc 1 4452 11 is_stmt 0 view .LVU3452
9549 0138 636C ldr r3, [r4, #68]
4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9550 .loc 1 4452 23 view .LVU3453
9551 013a 43F08003 orr r3, r3, #128
9552 013e 6364 str r3, [r4, #68]
4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 358
9553 .loc 1 4455 7 is_stmt 1 view .LVU3454
4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9554 .loc 1 4455 7 view .LVU3455
9555 0140 84F84020 strb r2, [r4, #64]
4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9556 .loc 1 4455 7 view .LVU3456
4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9557 .loc 1 4457 7 view .LVU3457
4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9558 .loc 1 4457 14 is_stmt 0 view .LVU3458
9559 0144 0125 movs r5, #1
9560 .LVL672:
4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9561 .loc 1 4457 14 view .LVU3459
9562 0146 23E0 b .L595
9563 .LVL673:
9564 .L601:
4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9565 .loc 1 4463 7 is_stmt 1 view .LVU3460
4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9566 .loc 1 4463 11 is_stmt 0 view .LVU3461
9567 0148 638D ldrh r3, [r4, #42]
9568 014a 9BB2 uxth r3, r3
4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9569 .loc 1 4463 30 view .LVU3462
9570 014c 228D ldrh r2, [r4, #40]
4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9571 .loc 1 4463 23 view .LVU3463
9572 014e 9B1A subs r3, r3, r2
9573 0150 9BB2 uxth r3, r3
9574 0152 6385 strh r3, [r4, #42] @ movhi
4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9575 .loc 1 4466 7 is_stmt 1 view .LVU3464
4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9576 .loc 1 4466 22 is_stmt 0 view .LVU3465
9577 0154 0023 movs r3, #0
9578 0156 2385 strh r3, [r4, #40] @ movhi
4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9579 .loc 1 4483 5 is_stmt 1 view .LVU3466
4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET))
9580 .loc 1 4483 11 is_stmt 0 view .LVU3467
9581 0158 2268 ldr r2, [r4]
9582 015a 9369 ldr r3, [r2, #24]
9583 015c 03F00803 and r3, r3, #8
9584 .LVL674:
4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9585 .loc 1 4484 5 is_stmt 1 view .LVU3468
4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9586 .loc 1 4484 10 is_stmt 0 view .LVU3469
9587 0160 9169 ldr r1, [r2, #24]
4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9588 .loc 1 4484 8 view .LVU3470
9589 0162 11F4803F tst r1, #65536
9590 0166 0DD0 beq .L603
9591 .LVL675:
9592 .L604:
4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 359
9593 .loc 1 4492 5 is_stmt 1 view .LVU3471
4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9594 .loc 1 4492 5 view .LVU3472
9595 0168 0023 movs r3, #0
9596 016a 84F84030 strb r3, [r4, #64]
4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9597 .loc 1 4492 5 view .LVU3473
4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9598 .loc 1 4495 5 view .LVU3474
4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9599 .loc 1 4495 9 is_stmt 0 view .LVU3475
9600 016e 2268 ldr r2, [r4]
4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9601 .loc 1 4495 19 view .LVU3476
9602 0170 1368 ldr r3, [r2]
4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9603 .loc 1 4495 25 view .LVU3477
9604 0172 43F40043 orr r3, r3, #32768
9605 0176 1360 str r3, [r2]
4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9606 .loc 1 4501 5 is_stmt 1 view .LVU3478
9607 0178 48F20201 movw r1, #32770
9608 017c 2046 mov r0, r4
9609 .LVL676:
4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9610 .loc 1 4501 5 is_stmt 0 view .LVU3479
9611 017e FFF7FEFF bl I2C_Enable_IRQ
9612 .LVL677:
4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9613 .loc 1 4503 5 is_stmt 1 view .LVU3480
4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9614 .loc 1 4503 12 is_stmt 0 view .LVU3481
9615 0182 05E0 b .L595
9616 .LVL678:
9617 .L603:
4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9618 .loc 1 4484 55 discriminator 1 view .LVU3482
9619 0184 002B cmp r3, #0
9620 0186 EFD0 beq .L604
4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9621 .loc 1 4488 7 is_stmt 1 view .LVU3483
9622 0188 0823 movs r3, #8
9623 .LVL679:
4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9624 .loc 1 4488 7 is_stmt 0 view .LVU3484
9625 018a D361 str r3, [r2, #28]
9626 018c ECE7 b .L604
9627 .LVL680:
9628 .L605:
4507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9629 .loc 1 4507 12 view .LVU3485
9630 018e 0125 movs r5, #1
9631 .LVL681:
9632 .L595:
4509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9633 .loc 1 4509 1 view .LVU3486
9634 0190 2846 mov r0, r5
ARM GAS /tmp/ccJ8PJrU.s page 360
9635 0192 F8BD pop {r3, r4, r5, r6, r7, pc}
9636 .LVL682:
9637 .L606:
4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9638 .loc 1 4359 5 discriminator 1 view .LVU3487
9639 0194 0225 movs r5, #2
9640 .LVL683:
4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9641 .loc 1 4359 5 discriminator 1 view .LVU3488
9642 0196 FBE7 b .L595
9643 .L612:
9644 .align 2
9645 .L611:
9646 0198 00000000 .word I2C_Slave_ISR_DMA
9647 019c 00000000 .word I2C_DMASlaveReceiveCplt
9648 01a0 00000000 .word I2C_DMAError
9649 01a4 00000000 .word I2C_DMAAbort
9650 .cfi_endproc
9651 .LFE153:
9653 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits
9654 .align 1
9655 .global HAL_I2C_EnableListen_IT
9656 .syntax unified
9657 .thumb
9658 .thumb_func
9660 HAL_I2C_EnableListen_IT:
9661 .LVL684:
9662 .LFB154:
4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
9663 .loc 1 4518 1 is_stmt 1 view -0
9664 .cfi_startproc
9665 @ args = 0, pretend = 0, frame = 0
9666 @ frame_needed = 0, uses_anonymous_args = 0
4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY)
9667 .loc 1 4518 1 is_stmt 0 view .LVU3490
9668 0000 08B5 push {r3, lr}
9669 .cfi_def_cfa_offset 8
9670 .cfi_offset 3, -8
9671 .cfi_offset 14, -4
4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9672 .loc 1 4519 3 is_stmt 1 view .LVU3491
4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9673 .loc 1 4519 11 is_stmt 0 view .LVU3492
9674 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9675 0006 DBB2 uxtb r3, r3
4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9676 .loc 1 4519 6 view .LVU3493
9677 0008 202B cmp r3, #32
9678 000a 01D0 beq .L617
4531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9679 .loc 1 4531 12 view .LVU3494
9680 000c 0220 movs r0, #2
9681 .LVL685:
9682 .L614:
4533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9683 .loc 1 4533 1 view .LVU3495
9684 000e 08BD pop {r3, pc}
ARM GAS /tmp/ccJ8PJrU.s page 361
9685 .LVL686:
9686 .L617:
4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9687 .loc 1 4521 5 is_stmt 1 view .LVU3496
4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
9688 .loc 1 4521 17 is_stmt 0 view .LVU3497
9689 0010 2823 movs r3, #40
9690 0012 80F84130 strb r3, [r0, #65]
4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9691 .loc 1 4522 5 is_stmt 1 view .LVU3498
4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9692 .loc 1 4522 19 is_stmt 0 view .LVU3499
9693 0016 044B ldr r3, .L618
9694 0018 4363 str r3, [r0, #52]
4525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9695 .loc 1 4525 5 is_stmt 1 view .LVU3500
9696 001a 4FF40041 mov r1, #32768
9697 001e FFF7FEFF bl I2C_Enable_IRQ
9698 .LVL687:
4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9699 .loc 1 4527 5 view .LVU3501
4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9700 .loc 1 4527 12 is_stmt 0 view .LVU3502
9701 0022 0020 movs r0, #0
9702 0024 F3E7 b .L614
9703 .L619:
9704 0026 00BF .align 2
9705 .L618:
9706 0028 00000000 .word I2C_Slave_ISR_IT
9707 .cfi_endproc
9708 .LFE154:
9710 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits
9711 .align 1
9712 .global HAL_I2C_DisableListen_IT
9713 .syntax unified
9714 .thumb
9715 .thumb_func
9717 HAL_I2C_DisableListen_IT:
9718 .LVL688:
9719 .LFB155:
4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9720 .loc 1 4542 1 is_stmt 1 view -0
9721 .cfi_startproc
9722 @ args = 0, pretend = 0, frame = 0
9723 @ frame_needed = 0, uses_anonymous_args = 0
4544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9724 .loc 1 4544 3 view .LVU3504
4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9725 .loc 1 4547 3 view .LVU3505
4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9726 .loc 1 4547 11 is_stmt 0 view .LVU3506
9727 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
9728 0004 DBB2 uxtb r3, r3
4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9729 .loc 1 4547 6 view .LVU3507
9730 0006 282B cmp r3, #40
9731 0008 01D0 beq .L627
ARM GAS /tmp/ccJ8PJrU.s page 362
4562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9732 .loc 1 4562 12 view .LVU3508
9733 000a 0220 movs r0, #2
9734 .LVL689:
4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9735 .loc 1 4564 1 view .LVU3509
9736 000c 7047 bx lr
9737 .LVL690:
9738 .L627:
4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */
9739 .loc 1 4542 1 view .LVU3510
9740 000e 10B5 push {r4, lr}
9741 .cfi_def_cfa_offset 8
9742 .cfi_offset 4, -8
9743 .cfi_offset 14, -4
4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9744 .loc 1 4549 5 is_stmt 1 view .LVU3511
4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode);
9745 .loc 1 4549 26 is_stmt 0 view .LVU3512
9746 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2
9747 .LVL691:
4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9748 .loc 1 4550 5 is_stmt 1 view .LVU3513
4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9749 .loc 1 4550 48 is_stmt 0 view .LVU3514
9750 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9751 .loc 1 4550 31 view .LVU3515
9752 0018 02F00302 and r2, r2, #3
9753 .LVL692:
4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9754 .loc 1 4550 31 view .LVU3516
9755 001c 1343 orrs r3, r3, r2
4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
9756 .loc 1 4550 25 view .LVU3517
9757 001e 0363 str r3, [r0, #48]
4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9758 .loc 1 4551 5 is_stmt 1 view .LVU3518
4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
9759 .loc 1 4551 17 is_stmt 0 view .LVU3519
9760 0020 2023 movs r3, #32
9761 0022 80F84130 strb r3, [r0, #65]
4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9762 .loc 1 4552 5 is_stmt 1 view .LVU3520
4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
9763 .loc 1 4552 16 is_stmt 0 view .LVU3521
9764 0026 0024 movs r4, #0
9765 0028 80F84240 strb r4, [r0, #66]
4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9766 .loc 1 4553 5 is_stmt 1 view .LVU3522
4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9767 .loc 1 4553 19 is_stmt 0 view .LVU3523
9768 002c 4463 str r4, [r0, #52]
4556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9769 .loc 1 4556 5 is_stmt 1 view .LVU3524
9770 002e 4FF40041 mov r1, #32768
9771 0032 FFF7FEFF bl I2C_Disable_IRQ
ARM GAS /tmp/ccJ8PJrU.s page 363
9772 .LVL693:
4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9773 .loc 1 4558 5 view .LVU3525
4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9774 .loc 1 4558 12 is_stmt 0 view .LVU3526
9775 0036 2046 mov r0, r4
4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9776 .loc 1 4564 1 view .LVU3527
9777 0038 10BD pop {r4, pc}
9778 .cfi_endproc
9779 .LFE155:
9781 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits
9782 .align 1
9783 .global HAL_I2C_Master_Abort_IT
9784 .syntax unified
9785 .thumb
9786 .thumb_func
9788 HAL_I2C_Master_Abort_IT:
9789 .LVL694:
9790 .LFB156:
4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode;
9791 .loc 1 4575 1 is_stmt 1 view -0
9792 .cfi_startproc
9793 @ args = 0, pretend = 0, frame = 0
9794 @ frame_needed = 0, uses_anonymous_args = 0
4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode;
9795 .loc 1 4575 1 is_stmt 0 view .LVU3529
9796 0000 30B5 push {r4, r5, lr}
9797 .cfi_def_cfa_offset 12
9798 .cfi_offset 4, -12
9799 .cfi_offset 5, -8
9800 .cfi_offset 14, -4
9801 0002 83B0 sub sp, sp, #12
9802 .cfi_def_cfa_offset 24
9803 0004 0446 mov r4, r0
9804 0006 0D46 mov r5, r1
4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9805 .loc 1 4576 3 is_stmt 1 view .LVU3530
4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9806 .loc 1 4576 23 is_stmt 0 view .LVU3531
9807 0008 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2
9808 000c DBB2 uxtb r3, r3
9809 .LVL695:
4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9810 .loc 1 4578 3 is_stmt 1 view .LVU3532
4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9811 .loc 1 4578 6 is_stmt 0 view .LVU3533
9812 000e 102B cmp r3, #16
9813 0010 01D0 beq .L629
4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9814 .loc 1 4578 41 discriminator 1 view .LVU3534
9815 0012 402B cmp r3, #64
9816 0014 34D1 bne .L633
9817 .L629:
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9818 .loc 1 4581 5 is_stmt 1 view .LVU3535
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 364
9819 .loc 1 4581 5 view .LVU3536
9820 0016 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
9821 .LVL696:
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9822 .loc 1 4581 5 is_stmt 0 view .LVU3537
9823 001a 012B cmp r3, #1
9824 001c 32D0 beq .L634
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9825 .loc 1 4581 5 is_stmt 1 discriminator 2 view .LVU3538
9826 001e 0123 movs r3, #1
9827 0020 84F84030 strb r3, [r4, #64]
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9828 .loc 1 4581 5 discriminator 2 view .LVU3539
4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9829 .loc 1 4584 5 view .LVU3540
4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9830 .loc 1 4584 13 is_stmt 0 view .LVU3541
9831 0024 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
9832 0028 DBB2 uxtb r3, r3
4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9833 .loc 1 4584 8 view .LVU3542
9834 002a 212B cmp r3, #33
9835 002c 1AD0 beq .L636
4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9836 .loc 1 4589 10 is_stmt 1 view .LVU3543
4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9837 .loc 1 4589 18 is_stmt 0 view .LVU3544
9838 002e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
9839 0032 DBB2 uxtb r3, r3
4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9840 .loc 1 4589 13 view .LVU3545
9841 0034 222B cmp r3, #34
9842 0036 1CD0 beq .L637
9843 .LVL697:
9844 .L632:
4597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9845 .loc 1 4597 5 is_stmt 1 view .LVU3546
4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9846 .loc 1 4600 5 view .LVU3547
4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9847 .loc 1 4600 17 is_stmt 0 view .LVU3548
9848 0038 6023 movs r3, #96
9849 003a 84F84130 strb r3, [r4, #65]
4604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9850 .loc 1 4604 5 is_stmt 1 view .LVU3549
9851 003e 124B ldr r3, .L638
9852 0040 0093 str r3, [sp]
9853 0042 4FF00073 mov r3, #33554432
9854 0046 0122 movs r2, #1
9855 0048 2946 mov r1, r5
9856 004a 2046 mov r0, r4
9857 004c FFF7FEFF bl I2C_TransferConfig
9858 .LVL698:
4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9859 .loc 1 4607 5 view .LVU3550
4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9860 .loc 1 4607 5 view .LVU3551
ARM GAS /tmp/ccJ8PJrU.s page 365
9861 0050 0025 movs r5, #0
9862 .LVL699:
4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9863 .loc 1 4607 5 is_stmt 0 view .LVU3552
9864 0052 84F84050 strb r5, [r4, #64]
4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9865 .loc 1 4607 5 is_stmt 1 view .LVU3553
4612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9866 .loc 1 4612 5 view .LVU3554
9867 0056 2021 movs r1, #32
9868 0058 2046 mov r0, r4
9869 005a FFF7FEFF bl I2C_Enable_IRQ
9870 .LVL700:
4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9871 .loc 1 4614 5 view .LVU3555
4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9872 .loc 1 4614 12 is_stmt 0 view .LVU3556
9873 005e 2846 mov r0, r5
9874 .L630:
4622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9875 .loc 1 4622 1 view .LVU3557
9876 0060 03B0 add sp, sp, #12
9877 .cfi_remember_state
9878 .cfi_def_cfa_offset 12
9879 @ sp needed
9880 0062 30BD pop {r4, r5, pc}
9881 .LVL701:
9882 .L636:
9883 .cfi_restore_state
4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9884 .loc 1 4586 7 is_stmt 1 view .LVU3558
9885 0064 0121 movs r1, #1
9886 .LVL702:
4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9887 .loc 1 4586 7 is_stmt 0 view .LVU3559
9888 0066 2046 mov r0, r4
9889 .LVL703:
4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
9890 .loc 1 4586 7 view .LVU3560
9891 0068 FFF7FEFF bl I2C_Disable_IRQ
9892 .LVL704:
4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9893 .loc 1 4587 7 is_stmt 1 view .LVU3561
4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9894 .loc 1 4587 27 is_stmt 0 view .LVU3562
9895 006c 1123 movs r3, #17
9896 006e 2363 str r3, [r4, #48]
9897 0070 E2E7 b .L632
9898 .LVL705:
9899 .L637:
4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9900 .loc 1 4591 7 is_stmt 1 view .LVU3563
9901 0072 0221 movs r1, #2
9902 .LVL706:
4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9903 .loc 1 4591 7 is_stmt 0 view .LVU3564
9904 0074 2046 mov r0, r4
ARM GAS /tmp/ccJ8PJrU.s page 366
9905 .LVL707:
4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
9906 .loc 1 4591 7 view .LVU3565
9907 0076 FFF7FEFF bl I2C_Disable_IRQ
9908 .LVL708:
4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9909 .loc 1 4592 7 is_stmt 1 view .LVU3566
4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9910 .loc 1 4592 27 is_stmt 0 view .LVU3567
9911 007a 1223 movs r3, #18
9912 007c 2363 str r3, [r4, #48]
9913 007e DBE7 b .L632
9914 .LVL709:
9915 .L633:
4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9916 .loc 1 4620 12 view .LVU3568
9917 0080 0120 movs r0, #1
9918 .LVL710:
4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9919 .loc 1 4620 12 view .LVU3569
9920 0082 EDE7 b .L630
9921 .LVL711:
9922 .L634:
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9923 .loc 1 4581 5 discriminator 1 view .LVU3570
9924 0084 0220 movs r0, #2
9925 .LVL712:
4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9926 .loc 1 4581 5 discriminator 1 view .LVU3571
9927 0086 EBE7 b .L630
9928 .L639:
9929 .align 2
9930 .L638:
9931 0088 00400080 .word -2147467264
9932 .cfi_endproc
9933 .LFE156:
9935 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits
9936 .align 1
9937 .global HAL_I2C_EV_IRQHandler
9938 .syntax unified
9939 .thumb
9940 .thumb_func
9942 HAL_I2C_EV_IRQHandler:
9943 .LVL713:
9944 .LFB157:
4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9945 .loc 1 4639 1 is_stmt 1 view -0
9946 .cfi_startproc
9947 @ args = 0, pretend = 0, frame = 0
9948 @ frame_needed = 0, uses_anonymous_args = 0
4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */
9949 .loc 1 4639 1 is_stmt 0 view .LVU3573
9950 0000 08B5 push {r3, lr}
9951 .cfi_def_cfa_offset 8
9952 .cfi_offset 3, -8
9953 .cfi_offset 14, -4
4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
ARM GAS /tmp/ccJ8PJrU.s page 367
9954 .loc 1 4641 3 is_stmt 1 view .LVU3574
4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9955 .loc 1 4641 24 is_stmt 0 view .LVU3575
9956 0002 0368 ldr r3, [r0]
4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
9957 .loc 1 4641 12 view .LVU3576
9958 0004 9969 ldr r1, [r3, #24]
9959 .LVL714:
4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9960 .loc 1 4642 3 is_stmt 1 view .LVU3577
4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9961 .loc 1 4642 12 is_stmt 0 view .LVU3578
9962 0006 1A68 ldr r2, [r3]
9963 .LVL715:
4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9964 .loc 1 4645 3 is_stmt 1 view .LVU3579
4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9965 .loc 1 4645 11 is_stmt 0 view .LVU3580
9966 0008 436B ldr r3, [r0, #52]
4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
9967 .loc 1 4645 6 view .LVU3581
9968 000a 03B1 cbz r3, .L640
4647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
9969 .loc 1 4647 5 is_stmt 1 view .LVU3582
9970 000c 9847 blx r3
9971 .LVL716:
9972 .L640:
4649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9973 .loc 1 4649 1 is_stmt 0 view .LVU3583
9974 000e 08BD pop {r3, pc}
9975 .cfi_endproc
9976 .LFE157:
9978 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits
9979 .align 1
9980 .weak HAL_I2C_MasterTxCpltCallback
9981 .syntax unified
9982 .thumb
9983 .thumb_func
9985 HAL_I2C_MasterTxCpltCallback:
9986 .LVL717:
9987 .LFB159:
4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
9988 .loc 1 4710 1 is_stmt 1 view -0
9989 .cfi_startproc
9990 @ args = 0, pretend = 0, frame = 0
9991 @ frame_needed = 0, uses_anonymous_args = 0
9992 @ link register save eliminated.
4712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9993 .loc 1 4712 3 view .LVU3585
4717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
9994 .loc 1 4717 1 is_stmt 0 view .LVU3586
9995 0000 7047 bx lr
9996 .cfi_endproc
9997 .LFE159:
9999 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits
10000 .align 1
10001 .weak HAL_I2C_MasterRxCpltCallback
ARM GAS /tmp/ccJ8PJrU.s page 368
10002 .syntax unified
10003 .thumb
10004 .thumb_func
10006 HAL_I2C_MasterRxCpltCallback:
10007 .LVL718:
10008 .LFB160:
4726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10009 .loc 1 4726 1 is_stmt 1 view -0
10010 .cfi_startproc
10011 @ args = 0, pretend = 0, frame = 0
10012 @ frame_needed = 0, uses_anonymous_args = 0
10013 @ link register save eliminated.
4728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10014 .loc 1 4728 3 view .LVU3588
4733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10015 .loc 1 4733 1 is_stmt 0 view .LVU3589
10016 0000 7047 bx lr
10017 .cfi_endproc
10018 .LFE160:
10020 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits
10021 .align 1
10022 .syntax unified
10023 .thumb
10024 .thumb_func
10026 I2C_ITMasterSeqCplt:
10027 .LVL719:
10028 .LFB181:
6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
10029 .loc 1 6053 1 is_stmt 1 view -0
10030 .cfi_startproc
10031 @ args = 0, pretend = 0, frame = 0
10032 @ frame_needed = 0, uses_anonymous_args = 0
6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */
10033 .loc 1 6053 1 is_stmt 0 view .LVU3591
10034 0000 38B5 push {r3, r4, r5, lr}
10035 .cfi_def_cfa_offset 16
10036 .cfi_offset 3, -16
10037 .cfi_offset 4, -12
10038 .cfi_offset 5, -8
10039 .cfi_offset 14, -4
10040 0002 0446 mov r4, r0
6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10041 .loc 1 6055 3 is_stmt 1 view .LVU3592
6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10042 .loc 1 6055 14 is_stmt 0 view .LVU3593
10043 0004 0023 movs r3, #0
10044 0006 80F84230 strb r3, [r0, #66]
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10045 .loc 1 6059 3 is_stmt 1 view .LVU3594
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10046 .loc 1 6059 11 is_stmt 0 view .LVU3595
10047 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10048 000e DBB2 uxtb r3, r3
6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10049 .loc 1 6059 6 view .LVU3596
10050 0010 212B cmp r3, #33
10051 0012 0FD0 beq .L649
ARM GAS /tmp/ccJ8PJrU.s page 369
6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
10052 .loc 1 6081 5 is_stmt 1 view .LVU3597
6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
10053 .loc 1 6081 25 is_stmt 0 view .LVU3598
10054 0014 2023 movs r3, #32
10055 0016 80F84130 strb r3, [r0, #65]
6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
10056 .loc 1 6082 5 is_stmt 1 view .LVU3599
6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
10057 .loc 1 6082 25 is_stmt 0 view .LVU3600
10058 001a 1223 movs r3, #18
10059 001c 0363 str r3, [r0, #48]
6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10060 .loc 1 6083 5 is_stmt 1 view .LVU3601
6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10061 .loc 1 6083 25 is_stmt 0 view .LVU3602
10062 001e 0025 movs r5, #0
10063 0020 4563 str r5, [r0, #52]
6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10064 .loc 1 6086 5 is_stmt 1 view .LVU3603
10065 0022 0221 movs r1, #2
10066 0024 FFF7FEFF bl I2C_Disable_IRQ
10067 .LVL720:
6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10068 .loc 1 6089 5 view .LVU3604
6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10069 .loc 1 6089 5 view .LVU3605
10070 0028 84F84050 strb r5, [r4, #64]
6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10071 .loc 1 6089 5 view .LVU3606
6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10072 .loc 1 6095 5 view .LVU3607
10073 002c 2046 mov r0, r4
10074 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
10075 .LVL721:
10076 .L645:
6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10077 .loc 1 6098 1 is_stmt 0 view .LVU3608
10078 0032 38BD pop {r3, r4, r5, pc}
10079 .LVL722:
10080 .L649:
6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
10081 .loc 1 6061 5 is_stmt 1 view .LVU3609
6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
10082 .loc 1 6061 25 is_stmt 0 view .LVU3610
10083 0034 2023 movs r3, #32
10084 0036 80F84130 strb r3, [r0, #65]
6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
10085 .loc 1 6062 5 is_stmt 1 view .LVU3611
6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
10086 .loc 1 6062 25 is_stmt 0 view .LVU3612
10087 003a 1123 movs r3, #17
10088 003c 0363 str r3, [r0, #48]
6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10089 .loc 1 6063 5 is_stmt 1 view .LVU3613
6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10090 .loc 1 6063 25 is_stmt 0 view .LVU3614
ARM GAS /tmp/ccJ8PJrU.s page 370
10091 003e 0025 movs r5, #0
10092 0040 4563 str r5, [r0, #52]
6066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10093 .loc 1 6066 5 is_stmt 1 view .LVU3615
10094 0042 0121 movs r1, #1
10095 0044 FFF7FEFF bl I2C_Disable_IRQ
10096 .LVL723:
6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10097 .loc 1 6069 5 view .LVU3616
6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10098 .loc 1 6069 5 view .LVU3617
10099 0048 84F84050 strb r5, [r4, #64]
6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10100 .loc 1 6069 5 view .LVU3618
6075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10101 .loc 1 6075 5 view .LVU3619
10102 004c 2046 mov r0, r4
10103 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
10104 .LVL724:
10105 0052 EEE7 b .L645
10106 .cfi_endproc
10107 .LFE181:
10109 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits
10110 .align 1
10111 .weak HAL_I2C_SlaveTxCpltCallback
10112 .syntax unified
10113 .thumb
10114 .thumb_func
10116 HAL_I2C_SlaveTxCpltCallback:
10117 .LVL725:
10118 .LFB161:
4741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10119 .loc 1 4741 1 view -0
10120 .cfi_startproc
10121 @ args = 0, pretend = 0, frame = 0
10122 @ frame_needed = 0, uses_anonymous_args = 0
10123 @ link register save eliminated.
4743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10124 .loc 1 4743 3 view .LVU3621
4748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10125 .loc 1 4748 1 is_stmt 0 view .LVU3622
10126 0000 7047 bx lr
10127 .cfi_endproc
10128 .LFE161:
10130 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits
10131 .align 1
10132 .weak HAL_I2C_SlaveRxCpltCallback
10133 .syntax unified
10134 .thumb
10135 .thumb_func
10137 HAL_I2C_SlaveRxCpltCallback:
10138 .LVL726:
10139 .LFB162:
4757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10140 .loc 1 4757 1 is_stmt 1 view -0
10141 .cfi_startproc
10142 @ args = 0, pretend = 0, frame = 0
ARM GAS /tmp/ccJ8PJrU.s page 371
10143 @ frame_needed = 0, uses_anonymous_args = 0
10144 @ link register save eliminated.
4759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10145 .loc 1 4759 3 view .LVU3624
4764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10146 .loc 1 4764 1 is_stmt 0 view .LVU3625
10147 0000 7047 bx lr
10148 .cfi_endproc
10149 .LFE162:
10151 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits
10152 .align 1
10153 .syntax unified
10154 .thumb
10155 .thumb_func
10157 I2C_ITSlaveSeqCplt:
10158 .LVL727:
10159 .LFB182:
6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10160 .loc 1 6106 1 is_stmt 1 view -0
10161 .cfi_startproc
10162 @ args = 0, pretend = 0, frame = 0
10163 @ frame_needed = 0, uses_anonymous_args = 0
6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
10164 .loc 1 6106 1 is_stmt 0 view .LVU3627
10165 0000 10B5 push {r4, lr}
10166 .cfi_def_cfa_offset 8
10167 .cfi_offset 4, -8
10168 .cfi_offset 14, -4
10169 0002 0446 mov r4, r0
6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10170 .loc 1 6107 3 is_stmt 1 view .LVU3628
6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10171 .loc 1 6107 26 is_stmt 0 view .LVU3629
10172 0004 0368 ldr r3, [r0]
6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10173 .loc 1 6107 12 view .LVU3630
10174 0006 1A68 ldr r2, [r3]
10175 .LVL728:
6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10176 .loc 1 6110 3 is_stmt 1 view .LVU3631
6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10177 .loc 1 6110 14 is_stmt 0 view .LVU3632
10178 0008 0021 movs r1, #0
10179 000a 80F84210 strb r1, [r0, #66]
6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10180 .loc 1 6113 3 is_stmt 1 view .LVU3633
6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10181 .loc 1 6113 6 is_stmt 0 view .LVU3634
10182 000e 12F4804F tst r2, #16384
10183 0012 0ED0 beq .L653
6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10184 .loc 1 6116 5 is_stmt 1 view .LVU3635
6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10185 .loc 1 6116 19 is_stmt 0 view .LVU3636
10186 0014 1A68 ldr r2, [r3]
10187 .LVL729:
6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 372
10188 .loc 1 6116 25 view .LVU3637
10189 0016 22F48042 bic r2, r2, #16384
10190 001a 1A60 str r2, [r3]
10191 .L654:
6126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10192 .loc 1 6126 3 is_stmt 1 view .LVU3638
6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10193 .loc 1 6128 3 view .LVU3639
6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10194 .loc 1 6128 11 is_stmt 0 view .LVU3640
10195 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10196 0020 DBB2 uxtb r3, r3
6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10197 .loc 1 6128 6 view .LVU3641
10198 0022 292B cmp r3, #41
10199 0024 0DD0 beq .L658
6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10200 .loc 1 6148 8 is_stmt 1 view .LVU3642
6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10201 .loc 1 6148 16 is_stmt 0 view .LVU3643
10202 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10203 002a DBB2 uxtb r3, r3
6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10204 .loc 1 6148 11 view .LVU3644
10205 002c 2A2B cmp r3, #42
10206 002e 18D0 beq .L659
10207 .LVL730:
10208 .L652:
6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10209 .loc 1 6171 1 view .LVU3645
10210 0030 10BD pop {r4, pc}
10211 .LVL731:
10212 .L653:
6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10213 .loc 1 6118 8 is_stmt 1 view .LVU3646
6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10214 .loc 1 6118 11 is_stmt 0 view .LVU3647
10215 0032 12F4004F tst r2, #32768
10216 0036 F1D0 beq .L654
6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10217 .loc 1 6121 5 is_stmt 1 view .LVU3648
6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10218 .loc 1 6121 19 is_stmt 0 view .LVU3649
10219 0038 1A68 ldr r2, [r3]
10220 .LVL732:
6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10221 .loc 1 6121 25 view .LVU3650
10222 003a 22F40042 bic r2, r2, #32768
10223 003e 1A60 str r2, [r3]
10224 0040 ECE7 b .L654
10225 .L658:
6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
10226 .loc 1 6131 5 is_stmt 1 view .LVU3651
6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
10227 .loc 1 6131 25 is_stmt 0 view .LVU3652
10228 0042 2823 movs r3, #40
10229 0044 84F84130 strb r3, [r4, #65]
ARM GAS /tmp/ccJ8PJrU.s page 373
6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10230 .loc 1 6132 5 is_stmt 1 view .LVU3653
6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10231 .loc 1 6132 25 is_stmt 0 view .LVU3654
10232 0048 2123 movs r3, #33
10233 004a 2363 str r3, [r4, #48]
6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10234 .loc 1 6135 5 is_stmt 1 view .LVU3655
10235 004c 0121 movs r1, #1
10236 004e 2046 mov r0, r4
10237 .LVL733:
6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10238 .loc 1 6135 5 is_stmt 0 view .LVU3656
10239 0050 FFF7FEFF bl I2C_Disable_IRQ
10240 .LVL734:
6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10241 .loc 1 6138 5 is_stmt 1 view .LVU3657
6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10242 .loc 1 6138 5 view .LVU3658
10243 0054 0023 movs r3, #0
10244 0056 84F84030 strb r3, [r4, #64]
6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10245 .loc 1 6138 5 view .LVU3659
6144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10246 .loc 1 6144 5 view .LVU3660
10247 005a 2046 mov r0, r4
10248 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
10249 .LVL735:
10250 0060 E6E7 b .L652
10251 .LVL736:
10252 .L659:
6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
10253 .loc 1 6151 5 view .LVU3661
6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
10254 .loc 1 6151 25 is_stmt 0 view .LVU3662
10255 0062 2823 movs r3, #40
10256 0064 84F84130 strb r3, [r4, #65]
6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10257 .loc 1 6152 5 is_stmt 1 view .LVU3663
6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10258 .loc 1 6152 25 is_stmt 0 view .LVU3664
10259 0068 2223 movs r3, #34
10260 006a 2363 str r3, [r4, #48]
6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10261 .loc 1 6155 5 is_stmt 1 view .LVU3665
10262 006c 0221 movs r1, #2
10263 006e 2046 mov r0, r4
10264 .LVL737:
6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10265 .loc 1 6155 5 is_stmt 0 view .LVU3666
10266 0070 FFF7FEFF bl I2C_Disable_IRQ
10267 .LVL738:
6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10268 .loc 1 6158 5 is_stmt 1 view .LVU3667
6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10269 .loc 1 6158 5 view .LVU3668
10270 0074 0023 movs r3, #0
ARM GAS /tmp/ccJ8PJrU.s page 374
10271 0076 84F84030 strb r3, [r4, #64]
6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10272 .loc 1 6158 5 view .LVU3669
6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10273 .loc 1 6164 5 view .LVU3670
10274 007a 2046 mov r0, r4
10275 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
10276 .LVL739:
6170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10277 .loc 1 6170 3 view .LVU3671
6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10278 .loc 1 6171 1 is_stmt 0 view .LVU3672
10279 0080 D6E7 b .L652
10280 .cfi_endproc
10281 .LFE182:
10283 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits
10284 .align 1
10285 .syntax unified
10286 .thumb
10287 .thumb_func
10289 I2C_DMASlaveTransmitCplt:
10290 .LVL740:
10291 .LFB190:
6831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10292 .loc 1 6831 1 is_stmt 1 view -0
10293 .cfi_startproc
10294 @ args = 0, pretend = 0, frame = 0
10295 @ frame_needed = 0, uses_anonymous_args = 0
6831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10296 .loc 1 6831 1 is_stmt 0 view .LVU3674
10297 0000 08B5 push {r3, lr}
10298 .cfi_def_cfa_offset 8
10299 .cfi_offset 3, -8
10300 .cfi_offset 14, -4
6833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10301 .loc 1 6833 3 is_stmt 1 view .LVU3675
6833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10302 .loc 1 6833 22 is_stmt 0 view .LVU3676
10303 0002 406A ldr r0, [r0, #36]
10304 .LVL741:
6834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10305 .loc 1 6834 3 is_stmt 1 view .LVU3677
6834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10306 .loc 1 6834 12 is_stmt 0 view .LVU3678
10307 0004 C36A ldr r3, [r0, #44]
10308 .LVL742:
6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10309 .loc 1 6836 3 is_stmt 1 view .LVU3679
6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10310 .loc 1 6836 6 is_stmt 0 view .LVU3680
10311 0006 B3F1807F cmp r3, #16777216
10312 000a 00D0 beq .L661
6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10313 .loc 1 6836 38 discriminator 1 view .LVU3681
10314 000c 33B9 cbnz r3, .L660
10315 .L661:
6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 375
10316 .loc 1 6839 5 is_stmt 1 view .LVU3682
6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10317 .loc 1 6839 9 is_stmt 0 view .LVU3683
10318 000e 0268 ldr r2, [r0]
6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10319 .loc 1 6839 19 view .LVU3684
10320 0010 1368 ldr r3, [r2]
10321 .LVL743:
6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10322 .loc 1 6839 25 view .LVU3685
10323 0012 23F48043 bic r3, r3, #16384
10324 0016 1360 str r3, [r2]
6843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10325 .loc 1 6843 5 is_stmt 1 view .LVU3686
10326 0018 FFF7FEFF bl I2C_ITSlaveSeqCplt
10327 .LVL744:
10328 .L660:
6851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10329 .loc 1 6851 1 is_stmt 0 view .LVU3687
10330 001c 08BD pop {r3, pc}
10331 .cfi_endproc
10332 .LFE190:
10334 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits
10335 .align 1
10336 .syntax unified
10337 .thumb
10338 .thumb_func
10340 I2C_DMASlaveReceiveCplt:
10341 .LVL745:
10342 .LFB192:
6919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10343 .loc 1 6919 1 is_stmt 1 view -0
10344 .cfi_startproc
10345 @ args = 0, pretend = 0, frame = 0
10346 @ frame_needed = 0, uses_anonymous_args = 0
6919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
10347 .loc 1 6919 1 is_stmt 0 view .LVU3689
10348 0000 08B5 push {r3, lr}
10349 .cfi_def_cfa_offset 8
10350 .cfi_offset 3, -8
10351 .cfi_offset 14, -4
6921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10352 .loc 1 6921 3 is_stmt 1 view .LVU3690
6921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
10353 .loc 1 6921 22 is_stmt 0 view .LVU3691
10354 0002 406A ldr r0, [r0, #36]
10355 .LVL746:
6922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10356 .loc 1 6922 3 is_stmt 1 view .LVU3692
6922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10357 .loc 1 6922 12 is_stmt 0 view .LVU3693
10358 0004 C26A ldr r2, [r0, #44]
10359 .LVL747:
6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10360 .loc 1 6924 3 is_stmt 1 view .LVU3694
6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10361 .loc 1 6924 8 is_stmt 0 view .LVU3695
ARM GAS /tmp/ccJ8PJrU.s page 376
10362 0006 C36B ldr r3, [r0, #60]
10363 0008 1B68 ldr r3, [r3]
10364 000a 5B68 ldr r3, [r3, #4]
6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10365 .loc 1 6924 6 view .LVU3696
10366 000c 13B9 cbnz r3, .L664
6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
10367 .loc 1 6924 53 discriminator 1 view .LVU3697
10368 000e 12F5803F cmn r2, #65536
10369 0012 00D1 bne .L667
10370 .LVL748:
10371 .L664:
6939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10372 .loc 1 6939 1 view .LVU3698
10373 0014 08BD pop {r3, pc}
10374 .LVL749:
10375 .L667:
6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10376 .loc 1 6928 5 is_stmt 1 view .LVU3699
6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10377 .loc 1 6928 9 is_stmt 0 view .LVU3700
10378 0016 0268 ldr r2, [r0]
10379 .LVL750:
6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10380 .loc 1 6928 19 view .LVU3701
10381 0018 1368 ldr r3, [r2]
6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10382 .loc 1 6928 25 view .LVU3702
10383 001a 23F40043 bic r3, r3, #32768
10384 001e 1360 str r3, [r2]
6931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10385 .loc 1 6931 5 is_stmt 1 view .LVU3703
10386 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt
10387 .LVL751:
6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10388 .loc 1 6938 3 view .LVU3704
6939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10389 .loc 1 6939 1 is_stmt 0 view .LVU3705
10390 0024 F6E7 b .L664
10391 .cfi_endproc
10392 .LFE192:
10394 .section .text.HAL_I2C_AddrCallback,"ax",%progbits
10395 .align 1
10396 .weak HAL_I2C_AddrCallback
10397 .syntax unified
10398 .thumb
10399 .thumb_func
10401 HAL_I2C_AddrCallback:
10402 .LVL752:
10403 .LFB163:
4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10404 .loc 1 4775 1 is_stmt 1 view -0
10405 .cfi_startproc
10406 @ args = 0, pretend = 0, frame = 0
10407 @ frame_needed = 0, uses_anonymous_args = 0
10408 @ link register save eliminated.
4777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection);
ARM GAS /tmp/ccJ8PJrU.s page 377
10409 .loc 1 4777 3 view .LVU3707
4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode);
10410 .loc 1 4778 3 view .LVU3708
4779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10411 .loc 1 4779 3 view .LVU3709
4784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10412 .loc 1 4784 1 is_stmt 0 view .LVU3710
10413 0000 7047 bx lr
10414 .cfi_endproc
10415 .LFE163:
10417 .section .text.I2C_ITAddrCplt,"ax",%progbits
10418 .align 1
10419 .syntax unified
10420 .thumb
10421 .thumb_func
10423 I2C_ITAddrCplt:
10424 .LVL753:
10425 .LFB180:
5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection;
10426 .loc 1 5958 1 is_stmt 1 view -0
10427 .cfi_startproc
10428 @ args = 0, pretend = 0, frame = 0
10429 @ frame_needed = 0, uses_anonymous_args = 0
5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection;
10430 .loc 1 5958 1 is_stmt 0 view .LVU3712
10431 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
10432 .cfi_def_cfa_offset 24
10433 .cfi_offset 3, -24
10434 .cfi_offset 4, -20
10435 .cfi_offset 5, -16
10436 .cfi_offset 6, -12
10437 .cfi_offset 7, -8
10438 .cfi_offset 14, -4
10439 0002 0446 mov r4, r0
5959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode;
10440 .loc 1 5959 3 is_stmt 1 view .LVU3713
5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code;
10441 .loc 1 5960 3 view .LVU3714
5961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code;
10442 .loc 1 5961 3 view .LVU3715
5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10443 .loc 1 5962 3 view .LVU3716
5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10444 .loc 1 5965 3 view .LVU3717
5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10445 .loc 1 5968 3 view .LVU3718
5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10446 .loc 1 5968 22 is_stmt 0 view .LVU3719
10447 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10448 .loc 1 5968 6 view .LVU3720
10449 0008 03F02803 and r3, r3, #40
10450 000c 282B cmp r3, #40
10451 000e 06D0 beq .L675
6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10452 .loc 1 6040 5 is_stmt 1 view .LVU3721
10453 0010 0368 ldr r3, [r0]
ARM GAS /tmp/ccJ8PJrU.s page 378
10454 0012 0822 movs r2, #8
10455 0014 DA61 str r2, [r3, #28]
6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10456 .loc 1 6043 5 view .LVU3722
6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10457 .loc 1 6043 5 view .LVU3723
10458 0016 0023 movs r3, #0
10459 0018 80F84030 strb r3, [r0, #64]
6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10460 .loc 1 6043 5 discriminator 1 view .LVU3724
10461 .LVL754:
10462 .L669:
6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10463 .loc 1 6045 1 is_stmt 0 view .LVU3725
10464 001c F8BD pop {r3, r4, r5, r6, r7, pc}
10465 .LVL755:
10466 .L675:
5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
10467 .loc 1 5970 5 is_stmt 1 view .LVU3726
5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
10468 .loc 1 5970 25 is_stmt 0 view .LVU3727
10469 001e 0368 ldr r3, [r0]
10470 0020 9E69 ldr r6, [r3, #24]
5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c);
10471 .loc 1 5970 23 view .LVU3728
10472 0022 C6F30046 ubfx r6, r6, #16, #1
10473 .LVL756:
5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
10474 .loc 1 5971 5 is_stmt 1 view .LVU3729
5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
10475 .loc 1 5971 25 is_stmt 0 view .LVU3730
10476 0026 9A69 ldr r2, [r3, #24]
10477 0028 120C lsrs r2, r2, #16
5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c);
10478 .loc 1 5971 23 view .LVU3731
10479 002a 02F0FE05 and r5, r2, #254
10480 .LVL757:
5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
10481 .loc 1 5972 5 is_stmt 1 view .LVU3732
5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
10482 .loc 1 5972 25 is_stmt 0 view .LVU3733
10483 002e 9A68 ldr r2, [r3, #8]
5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c);
10484 .loc 1 5972 23 view .LVU3734
10485 0030 C2F30902 ubfx r2, r2, #0, #10
10486 .LVL758:
5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10487 .loc 1 5973 5 is_stmt 1 view .LVU3735
5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10488 .loc 1 5973 25 is_stmt 0 view .LVU3736
10489 0034 DF68 ldr r7, [r3, #12]
5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10490 .loc 1 5973 23 view .LVU3737
10491 0036 07F0FE07 and r7, r7, #254
10492 .LVL759:
5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10493 .loc 1 5976 5 is_stmt 1 view .LVU3738
ARM GAS /tmp/ccJ8PJrU.s page 379
5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10494 .loc 1 5976 19 is_stmt 0 view .LVU3739
10495 003a C168 ldr r1, [r0, #12]
10496 .LVL760:
5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10497 .loc 1 5976 8 view .LVU3740
10498 003c 0229 cmp r1, #2
10499 003e 22D1 bne .L671
5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10500 .loc 1 5978 7 is_stmt 1 view .LVU3741
5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10501 .loc 1 5978 44 is_stmt 0 view .LVU3742
10502 0040 85EAD215 eor r5, r5, r2, lsr #7
10503 .LVL761:
5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10504 .loc 1 5978 10 view .LVU3743
10505 0044 15F0060F tst r5, #6
10506 0048 10D1 bne .L672
5980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++;
10507 .loc 1 5980 9 is_stmt 1 view .LVU3744
10508 .LVL762:
5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
10509 .loc 1 5981 9 view .LVU3745
5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
10510 .loc 1 5981 13 is_stmt 0 view .LVU3746
10511 004a 816C ldr r1, [r0, #72]
5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U)
10512 .loc 1 5981 29 view .LVU3747
10513 004c 0131 adds r1, r1, #1
10514 004e 8164 str r1, [r0, #72]
5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10515 .loc 1 5982 9 is_stmt 1 view .LVU3748
5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10516 .loc 1 5982 17 is_stmt 0 view .LVU3749
10517 0050 816C ldr r1, [r0, #72]
5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10518 .loc 1 5982 12 view .LVU3750
10519 0052 0229 cmp r1, #2
10520 0054 E2D1 bne .L669
5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10521 .loc 1 5985 11 is_stmt 1 view .LVU3751
5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10522 .loc 1 5985 32 is_stmt 0 view .LVU3752
10523 0056 0021 movs r1, #0
10524 0058 8164 str r1, [r0, #72]
5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10525 .loc 1 5988 11 is_stmt 1 view .LVU3753
10526 005a 0820 movs r0, #8
10527 .LVL763:
5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10528 .loc 1 5988 11 is_stmt 0 view .LVU3754
10529 005c D861 str r0, [r3, #28]
5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10530 .loc 1 5991 11 is_stmt 1 view .LVU3755
5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10531 .loc 1 5991 11 view .LVU3756
10532 005e 84F84010 strb r1, [r4, #64]
ARM GAS /tmp/ccJ8PJrU.s page 380
5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10533 .loc 1 5991 11 view .LVU3757
5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10534 .loc 1 5997 11 view .LVU3758
10535 0062 3146 mov r1, r6
10536 0064 2046 mov r0, r4
10537 0066 FFF7FEFF bl HAL_I2C_AddrCallback
10538 .LVL764:
5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10539 .loc 1 5997 11 is_stmt 0 view .LVU3759
10540 006a D7E7 b .L669
10541 .LVL765:
10542 .L672:
6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10543 .loc 1 6003 9 is_stmt 1 view .LVU3760
6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10544 .loc 1 6006 9 view .LVU3761
10545 006c 4FF40041 mov r1, #32768
10546 0070 FFF7FEFF bl I2C_Disable_IRQ
10547 .LVL766:
6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10548 .loc 1 6009 9 view .LVU3762
6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10549 .loc 1 6009 9 view .LVU3763
10550 0074 0023 movs r3, #0
10551 0076 84F84030 strb r3, [r4, #64]
6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10552 .loc 1 6009 9 view .LVU3764
6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10553 .loc 1 6015 9 view .LVU3765
10554 007a 3A46 mov r2, r7
10555 007c 3146 mov r1, r6
10556 007e 2046 mov r0, r4
10557 0080 FFF7FEFF bl HAL_I2C_AddrCallback
10558 .LVL767:
10559 0084 CAE7 b .L669
10560 .LVL768:
10561 .L671:
6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10562 .loc 1 6023 7 view .LVU3766
10563 0086 4FF40041 mov r1, #32768
10564 008a FFF7FEFF bl I2C_Disable_IRQ
10565 .LVL769:
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10566 .loc 1 6026 7 view .LVU3767
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10567 .loc 1 6026 7 view .LVU3768
10568 008e 0023 movs r3, #0
10569 0090 84F84030 strb r3, [r4, #64]
6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10570 .loc 1 6026 7 view .LVU3769
6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10571 .loc 1 6032 7 view .LVU3770
10572 0094 2A46 mov r2, r5
10573 0096 3146 mov r1, r6
10574 0098 2046 mov r0, r4
10575 009a FFF7FEFF bl HAL_I2C_AddrCallback
ARM GAS /tmp/ccJ8PJrU.s page 381
10576 .LVL770:
10577 009e BDE7 b .L669
10578 .cfi_endproc
10579 .LFE180:
10581 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits
10582 .align 1
10583 .weak HAL_I2C_ListenCpltCallback
10584 .syntax unified
10585 .thumb
10586 .thumb_func
10588 HAL_I2C_ListenCpltCallback:
10589 .LVL771:
10590 .LFB164:
4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10591 .loc 1 4793 1 view -0
10592 .cfi_startproc
10593 @ args = 0, pretend = 0, frame = 0
10594 @ frame_needed = 0, uses_anonymous_args = 0
10595 @ link register save eliminated.
4795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10596 .loc 1 4795 3 view .LVU3772
4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10597 .loc 1 4800 1 is_stmt 0 view .LVU3773
10598 0000 7047 bx lr
10599 .cfi_endproc
10600 .LFE164:
10602 .section .text.I2C_ITListenCplt,"ax",%progbits
10603 .align 1
10604 .syntax unified
10605 .thumb
10606 .thumb_func
10608 I2C_ITListenCplt:
10609 .LVL772:
10610 .LFB185:
6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
10611 .loc 1 6539 1 is_stmt 1 view -0
10612 .cfi_startproc
10613 @ args = 0, pretend = 0, frame = 0
10614 @ frame_needed = 0, uses_anonymous_args = 0
6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */
10615 .loc 1 6539 1 is_stmt 0 view .LVU3775
10616 0000 10B5 push {r4, lr}
10617 .cfi_def_cfa_offset 8
10618 .cfi_offset 4, -8
10619 .cfi_offset 14, -4
10620 0002 0446 mov r4, r0
6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10621 .loc 1 6541 3 is_stmt 1 view .LVU3776
6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10622 .loc 1 6541 21 is_stmt 0 view .LVU3777
10623 0004 174B ldr r3, .L680
10624 0006 C362 str r3, [r0, #44]
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10625 .loc 1 6542 3 is_stmt 1 view .LVU3778
6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
10626 .loc 1 6542 23 is_stmt 0 view .LVU3779
10627 0008 0023 movs r3, #0
ARM GAS /tmp/ccJ8PJrU.s page 382
10628 000a 0363 str r3, [r0, #48]
6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
10629 .loc 1 6543 3 is_stmt 1 view .LVU3780
6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE;
10630 .loc 1 6543 15 is_stmt 0 view .LVU3781
10631 000c 2022 movs r2, #32
10632 000e 80F84120 strb r2, [r0, #65]
6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
10633 .loc 1 6544 3 is_stmt 1 view .LVU3782
6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
10634 .loc 1 6544 14 is_stmt 0 view .LVU3783
10635 0012 80F84230 strb r3, [r0, #66]
6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10636 .loc 1 6545 3 is_stmt 1 view .LVU3784
6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10637 .loc 1 6545 17 is_stmt 0 view .LVU3785
10638 0016 4363 str r3, [r0, #52]
6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10639 .loc 1 6548 3 is_stmt 1 view .LVU3786
6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10640 .loc 1 6548 6 is_stmt 0 view .LVU3787
10641 0018 11F0040F tst r1, #4
10642 001c 13D0 beq .L678
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10643 .loc 1 6551 5 is_stmt 1 view .LVU3788
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10644 .loc 1 6551 36 is_stmt 0 view .LVU3789
10645 001e 0368 ldr r3, [r0]
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10646 .loc 1 6551 46 view .LVU3790
10647 0020 5A6A ldr r2, [r3, #36]
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10648 .loc 1 6551 10 view .LVU3791
10649 0022 436A ldr r3, [r0, #36]
6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10650 .loc 1 6551 21 view .LVU3792
10651 0024 1A70 strb r2, [r3]
6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10652 .loc 1 6554 5 is_stmt 1 view .LVU3793
6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10653 .loc 1 6554 9 is_stmt 0 view .LVU3794
10654 0026 436A ldr r3, [r0, #36]
6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10655 .loc 1 6554 19 view .LVU3795
10656 0028 0133 adds r3, r3, #1
10657 002a 4362 str r3, [r0, #36]
6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10658 .loc 1 6556 5 is_stmt 1 view .LVU3796
6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10659 .loc 1 6556 14 is_stmt 0 view .LVU3797
10660 002c 038D ldrh r3, [r0, #40]
6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10661 .loc 1 6556 8 view .LVU3798
10662 002e 53B1 cbz r3, .L678
6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
10663 .loc 1 6558 7 is_stmt 1 view .LVU3799
6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
ARM GAS /tmp/ccJ8PJrU.s page 383
10664 .loc 1 6558 21 is_stmt 0 view .LVU3800
10665 0030 013B subs r3, r3, #1
10666 0032 0385 strh r3, [r0, #40] @ movhi
6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10667 .loc 1 6559 7 is_stmt 1 view .LVU3801
6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10668 .loc 1 6559 11 is_stmt 0 view .LVU3802
10669 0034 438D ldrh r3, [r0, #42]
10670 0036 9BB2 uxth r3, r3
6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10671 .loc 1 6559 22 view .LVU3803
10672 0038 013B subs r3, r3, #1
10673 003a 9BB2 uxth r3, r3
10674 003c 4385 strh r3, [r0, #42] @ movhi
6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10675 .loc 1 6562 7 is_stmt 1 view .LVU3804
6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10676 .loc 1 6562 11 is_stmt 0 view .LVU3805
10677 003e 436C ldr r3, [r0, #68]
6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10678 .loc 1 6562 23 view .LVU3806
10679 0040 43F00403 orr r3, r3, #4
10680 0044 4364 str r3, [r0, #68]
10681 .L678:
6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10682 .loc 1 6567 3 is_stmt 1 view .LVU3807
10683 0046 48F20301 movw r1, #32771
10684 .LVL773:
6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10685 .loc 1 6567 3 is_stmt 0 view .LVU3808
10686 004a 2046 mov r0, r4
10687 .LVL774:
6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10688 .loc 1 6567 3 view .LVU3809
10689 004c FFF7FEFF bl I2C_Disable_IRQ
10690 .LVL775:
6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10691 .loc 1 6570 3 is_stmt 1 view .LVU3810
10692 0050 2368 ldr r3, [r4]
10693 0052 1022 movs r2, #16
10694 0054 DA61 str r2, [r3, #28]
6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10695 .loc 1 6573 3 view .LVU3811
6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10696 .loc 1 6573 3 view .LVU3812
10697 0056 0023 movs r3, #0
10698 0058 84F84030 strb r3, [r4, #64]
6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10699 .loc 1 6573 3 view .LVU3813
6579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10700 .loc 1 6579 3 view .LVU3814
10701 005c 2046 mov r0, r4
10702 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback
10703 .LVL776:
6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10704 .loc 1 6581 1 is_stmt 0 view .LVU3815
10705 0062 10BD pop {r4, pc}
ARM GAS /tmp/ccJ8PJrU.s page 384
10706 .LVL777:
10707 .L681:
6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10708 .loc 1 6581 1 view .LVU3816
10709 .align 2
10710 .L680:
10711 0064 0000FFFF .word -65536
10712 .cfi_endproc
10713 .LFE185:
10715 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits
10716 .align 1
10717 .weak HAL_I2C_MemTxCpltCallback
10718 .syntax unified
10719 .thumb
10720 .thumb_func
10722 HAL_I2C_MemTxCpltCallback:
10723 .LVL778:
10724 .LFB165:
4809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10725 .loc 1 4809 1 is_stmt 1 view -0
10726 .cfi_startproc
10727 @ args = 0, pretend = 0, frame = 0
10728 @ frame_needed = 0, uses_anonymous_args = 0
10729 @ link register save eliminated.
4811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10730 .loc 1 4811 3 view .LVU3818
4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10731 .loc 1 4816 1 is_stmt 0 view .LVU3819
10732 0000 7047 bx lr
10733 .cfi_endproc
10734 .LFE165:
10736 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits
10737 .align 1
10738 .weak HAL_I2C_MemRxCpltCallback
10739 .syntax unified
10740 .thumb
10741 .thumb_func
10743 HAL_I2C_MemRxCpltCallback:
10744 .LVL779:
10745 .LFB166:
4825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10746 .loc 1 4825 1 is_stmt 1 view -0
10747 .cfi_startproc
10748 @ args = 0, pretend = 0, frame = 0
10749 @ frame_needed = 0, uses_anonymous_args = 0
10750 @ link register save eliminated.
4827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10751 .loc 1 4827 3 view .LVU3821
4832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10752 .loc 1 4832 1 is_stmt 0 view .LVU3822
10753 0000 7047 bx lr
10754 .cfi_endproc
10755 .LFE166:
10757 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits
10758 .align 1
10759 .weak HAL_I2C_ErrorCallback
10760 .syntax unified
ARM GAS /tmp/ccJ8PJrU.s page 385
10761 .thumb
10762 .thumb_func
10764 HAL_I2C_ErrorCallback:
10765 .LVL780:
10766 .LFB167:
4841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10767 .loc 1 4841 1 is_stmt 1 view -0
10768 .cfi_startproc
10769 @ args = 0, pretend = 0, frame = 0
10770 @ frame_needed = 0, uses_anonymous_args = 0
10771 @ link register save eliminated.
4843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10772 .loc 1 4843 3 view .LVU3824
4848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10773 .loc 1 4848 1 is_stmt 0 view .LVU3825
10774 0000 7047 bx lr
10775 .cfi_endproc
10776 .LFE167:
10778 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits
10779 .align 1
10780 .weak HAL_I2C_AbortCpltCallback
10781 .syntax unified
10782 .thumb
10783 .thumb_func
10785 HAL_I2C_AbortCpltCallback:
10786 .LVL781:
10787 .LFB168:
4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */
10788 .loc 1 4857 1 is_stmt 1 view -0
10789 .cfi_startproc
10790 @ args = 0, pretend = 0, frame = 0
10791 @ frame_needed = 0, uses_anonymous_args = 0
10792 @ link register save eliminated.
4859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10793 .loc 1 4859 3 view .LVU3827
4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10794 .loc 1 4864 1 is_stmt 0 view .LVU3828
10795 0000 7047 bx lr
10796 .cfi_endproc
10797 .LFE168:
10799 .section .text.I2C_TreatErrorCallback,"ax",%progbits
10800 .align 1
10801 .syntax unified
10802 .thumb
10803 .thumb_func
10805 I2C_TreatErrorCallback:
10806 .LVL782:
10807 .LFB187:
6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10808 .loc 1 6721 1 is_stmt 1 view -0
10809 .cfi_startproc
10810 @ args = 0, pretend = 0, frame = 0
10811 @ frame_needed = 0, uses_anonymous_args = 0
6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT)
10812 .loc 1 6721 1 is_stmt 0 view .LVU3830
10813 0000 08B5 push {r3, lr}
10814 .cfi_def_cfa_offset 8
ARM GAS /tmp/ccJ8PJrU.s page 386
10815 .cfi_offset 3, -8
10816 .cfi_offset 14, -4
6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10817 .loc 1 6722 3 is_stmt 1 view .LVU3831
6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10818 .loc 1 6722 11 is_stmt 0 view .LVU3832
10819 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10820 0006 DBB2 uxtb r3, r3
6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10821 .loc 1 6722 6 view .LVU3833
10822 0008 602B cmp r3, #96
10823 000a 06D0 beq .L690
6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10824 .loc 1 6739 5 is_stmt 1 view .LVU3834
6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10825 .loc 1 6739 25 is_stmt 0 view .LVU3835
10826 000c 0023 movs r3, #0
10827 000e 0363 str r3, [r0, #48]
6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10828 .loc 1 6742 5 is_stmt 1 view .LVU3836
6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10829 .loc 1 6742 5 view .LVU3837
10830 0010 80F84030 strb r3, [r0, #64]
6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10831 .loc 1 6742 5 view .LVU3838
6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10832 .loc 1 6748 5 view .LVU3839
10833 0014 FFF7FEFF bl HAL_I2C_ErrorCallback
10834 .LVL783:
10835 .L686:
6751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10836 .loc 1 6751 1 is_stmt 0 view .LVU3840
10837 0018 08BD pop {r3, pc}
10838 .LVL784:
10839 .L690:
6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10840 .loc 1 6724 5 is_stmt 1 view .LVU3841
6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
10841 .loc 1 6724 17 is_stmt 0 view .LVU3842
10842 001a 2023 movs r3, #32
10843 001c 80F84130 strb r3, [r0, #65]
6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10844 .loc 1 6725 5 is_stmt 1 view .LVU3843
6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10845 .loc 1 6725 25 is_stmt 0 view .LVU3844
10846 0020 0023 movs r3, #0
10847 0022 0363 str r3, [r0, #48]
6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10848 .loc 1 6728 5 is_stmt 1 view .LVU3845
6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10849 .loc 1 6728 5 view .LVU3846
10850 0024 80F84030 strb r3, [r0, #64]
6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10851 .loc 1 6728 5 view .LVU3847
6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10852 .loc 1 6734 5 view .LVU3848
10853 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback
ARM GAS /tmp/ccJ8PJrU.s page 387
10854 .LVL785:
6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
10855 .loc 1 6734 5 is_stmt 0 view .LVU3849
10856 002c F4E7 b .L686
10857 .cfi_endproc
10858 .LFE187:
10860 .section .text.I2C_ITError,"ax",%progbits
10861 .align 1
10862 .syntax unified
10863 .thumb
10864 .thumb_func
10866 I2C_ITError:
10867 .LVL786:
10868 .LFB186:
6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10869 .loc 1 6590 1 is_stmt 1 view -0
10870 .cfi_startproc
10871 @ args = 0, pretend = 0, frame = 0
10872 @ frame_needed = 0, uses_anonymous_args = 0
6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
10873 .loc 1 6590 1 is_stmt 0 view .LVU3851
10874 0000 10B5 push {r4, lr}
10875 .cfi_def_cfa_offset 8
10876 .cfi_offset 4, -8
10877 .cfi_offset 14, -4
10878 0002 0446 mov r4, r0
6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10879 .loc 1 6591 3 is_stmt 1 view .LVU3852
6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10880 .loc 1 6591 24 is_stmt 0 view .LVU3853
10881 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
10882 .LVL787:
6593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10883 .loc 1 6593 3 is_stmt 1 view .LVU3854
6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10884 .loc 1 6596 3 view .LVU3855
6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
10885 .loc 1 6596 23 is_stmt 0 view .LVU3856
10886 0008 0022 movs r2, #0
10887 000a 80F84220 strb r2, [r0, #66]
6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
10888 .loc 1 6597 3 is_stmt 1 view .LVU3857
6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
10889 .loc 1 6597 23 is_stmt 0 view .LVU3858
10890 000e 4548 ldr r0, .L706
10891 .LVL788:
6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U;
10892 .loc 1 6597 23 view .LVU3859
10893 0010 E062 str r0, [r4, #44]
6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10894 .loc 1 6598 3 is_stmt 1 view .LVU3860
6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10895 .loc 1 6598 23 is_stmt 0 view .LVU3861
10896 0012 6285 strh r2, [r4, #42] @ movhi
6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10897 .loc 1 6601 3 is_stmt 1 view .LVU3862
6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 388
10898 .loc 1 6601 7 is_stmt 0 view .LVU3863
10899 0014 626C ldr r2, [r4, #68]
6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10900 .loc 1 6601 19 view .LVU3864
10901 0016 0A43 orrs r2, r2, r1
10902 0018 6264 str r2, [r4, #68]
6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10903 .loc 1 6604 3 is_stmt 1 view .LVU3865
6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10904 .loc 1 6605 50 is_stmt 0 view .LVU3866
10905 001a 283B subs r3, r3, #40
10906 .LVL789:
6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN))
10907 .loc 1 6605 50 view .LVU3867
10908 001c DBB2 uxtb r3, r3
10909 .LVL790:
6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) ||
10910 .loc 1 6604 6 view .LVU3868
10911 001e 022B cmp r3, #2
10912 0020 19D8 bhi .L692
6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10913 .loc 1 6609 5 is_stmt 1 view .LVU3869
10914 0022 0321 movs r1, #3
10915 .LVL791:
6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10916 .loc 1 6609 5 is_stmt 0 view .LVU3870
10917 0024 2046 mov r0, r4
10918 0026 FFF7FEFF bl I2C_Disable_IRQ
10919 .LVL792:
6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
10920 .loc 1 6612 5 is_stmt 1 view .LVU3871
6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT;
10921 .loc 1 6612 25 is_stmt 0 view .LVU3872
10922 002a 2823 movs r3, #40
10923 002c 84F84130 strb r3, [r4, #65]
6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10924 .loc 1 6613 5 is_stmt 1 view .LVU3873
6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10925 .loc 1 6613 25 is_stmt 0 view .LVU3874
10926 0030 3D4B ldr r3, .L706+4
10927 0032 6363 str r3, [r4, #52]
10928 .L693:
6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10929 .loc 1 6648 3 is_stmt 1 view .LVU3875
6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10930 .loc 1 6648 20 is_stmt 0 view .LVU3876
10931 0034 236B ldr r3, [r4, #48]
10932 .LVL793:
6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10933 .loc 1 6650 3 is_stmt 1 view .LVU3877
6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10934 .loc 1 6650 12 is_stmt 0 view .LVU3878
10935 0036 A26B ldr r2, [r4, #56]
6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10936 .loc 1 6650 6 view .LVU3879
10937 0038 1AB1 cbz r2, .L696
6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
ARM GAS /tmp/ccJ8PJrU.s page 389
10938 .loc 1 6650 30 discriminator 1 view .LVU3880
10939 003a 112B cmp r3, #17
10940 003c 30D0 beq .L697
6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX)))
10941 .loc 1 6650 81 discriminator 2 view .LVU3881
10942 003e 212B cmp r3, #33
10943 0040 2ED0 beq .L697
10944 .L696:
6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10945 .loc 1 6680 8 is_stmt 1 view .LVU3882
6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10946 .loc 1 6680 17 is_stmt 0 view .LVU3883
10947 0042 E26B ldr r2, [r4, #60]
6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10948 .loc 1 6680 11 view .LVU3884
10949 0044 1AB1 cbz r2, .L701
6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10950 .loc 1 6680 35 discriminator 1 view .LVU3885
10951 0046 122B cmp r3, #18
10952 0048 4BD0 beq .L702
6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX)))
10953 .loc 1 6680 86 discriminator 2 view .LVU3886
10954 004a 222B cmp r3, #34
10955 004c 49D0 beq .L702
10956 .L701:
6711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
10957 .loc 1 6711 5 is_stmt 1 view .LVU3887
10958 004e 2046 mov r0, r4
10959 0050 FFF7FEFF bl I2C_TreatErrorCallback
10960 .LVL794:
10961 .L691:
6713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10962 .loc 1 6713 1 is_stmt 0 view .LVU3888
10963 0054 10BD pop {r4, pc}
10964 .LVL795:
10965 .L692:
6618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10966 .loc 1 6618 5 is_stmt 1 view .LVU3889
10967 0056 48F20301 movw r1, #32771
10968 .LVL796:
6618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10969 .loc 1 6618 5 is_stmt 0 view .LVU3890
10970 005a 2046 mov r0, r4
10971 005c FFF7FEFF bl I2C_Disable_IRQ
10972 .LVL797:
6621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10973 .loc 1 6621 5 is_stmt 1 view .LVU3891
10974 0060 2046 mov r0, r4
10975 0062 FFF7FEFF bl I2C_Flush_TXDR
10976 .LVL798:
6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10977 .loc 1 6625 5 view .LVU3892
6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10978 .loc 1 6625 13 is_stmt 0 view .LVU3893
10979 0066 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
10980 006a DBB2 uxtb r3, r3
6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 390
10981 .loc 1 6625 8 view .LVU3894
10982 006c 602B cmp r3, #96
10983 006e 14D0 beq .L694
6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10984 .loc 1 6628 7 is_stmt 1 view .LVU3895
6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
10985 .loc 1 6628 27 is_stmt 0 view .LVU3896
10986 0070 2023 movs r3, #32
10987 0072 84F84130 strb r3, [r4, #65]
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10988 .loc 1 6631 7 is_stmt 1 view .LVU3897
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10989 .loc 1 6631 11 is_stmt 0 view .LVU3898
10990 0076 2368 ldr r3, [r4]
10991 0078 9A69 ldr r2, [r3, #24]
6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10992 .loc 1 6631 10 view .LVU3899
10993 007a 12F0200F tst r2, #32
10994 007e 0CD0 beq .L694
6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10995 .loc 1 6633 9 is_stmt 1 view .LVU3900
6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10996 .loc 1 6633 13 is_stmt 0 view .LVU3901
10997 0080 9A69 ldr r2, [r3, #24]
6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
10998 .loc 1 6633 12 view .LVU3902
10999 0082 12F0100F tst r2, #16
11000 0086 05D0 beq .L695
6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF;
11001 .loc 1 6635 11 is_stmt 1 view .LVU3903
11002 0088 1022 movs r2, #16
11003 008a DA61 str r2, [r3, #28]
6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11004 .loc 1 6636 11 view .LVU3904
6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11005 .loc 1 6636 15 is_stmt 0 view .LVU3905
11006 008c 636C ldr r3, [r4, #68]
6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11007 .loc 1 6636 27 view .LVU3906
11008 008e 43F00403 orr r3, r3, #4
11009 0092 6364 str r3, [r4, #68]
11010 .L695:
6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11011 .loc 1 6640 9 is_stmt 1 view .LVU3907
11012 0094 2368 ldr r3, [r4]
11013 0096 2022 movs r2, #32
11014 0098 DA61 str r2, [r3, #28]
11015 .L694:
6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11016 .loc 1 6644 5 view .LVU3908
6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11017 .loc 1 6644 25 is_stmt 0 view .LVU3909
11018 009a 0023 movs r3, #0
11019 009c 6363 str r3, [r4, #52]
11020 009e C9E7 b .L693
11021 .LVL799:
11022 .L697:
ARM GAS /tmp/ccJ8PJrU.s page 391
6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11023 .loc 1 6653 5 is_stmt 1 view .LVU3910
6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11024 .loc 1 6653 14 is_stmt 0 view .LVU3911
11025 00a0 2368 ldr r3, [r4]
11026 .LVL800:
6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11027 .loc 1 6653 24 view .LVU3912
11028 00a2 1A68 ldr r2, [r3]
6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11029 .loc 1 6653 8 view .LVU3913
11030 00a4 12F4804F tst r2, #16384
11031 00a8 03D0 beq .L698
6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11032 .loc 1 6655 7 is_stmt 1 view .LVU3914
6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11033 .loc 1 6655 21 is_stmt 0 view .LVU3915
11034 00aa 1A68 ldr r2, [r3]
6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11035 .loc 1 6655 27 view .LVU3916
11036 00ac 22F48042 bic r2, r2, #16384
11037 00b0 1A60 str r2, [r3]
11038 .L698:
6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11039 .loc 1 6658 5 is_stmt 1 view .LVU3917
6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11040 .loc 1 6658 9 is_stmt 0 view .LVU3918
11041 00b2 A06B ldr r0, [r4, #56]
11042 00b4 FFF7FEFF bl HAL_DMA_GetState
11043 .LVL801:
6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11044 .loc 1 6658 8 discriminator 1 view .LVU3919
11045 00b8 0128 cmp r0, #1
11046 00ba 0ED0 beq .L699
6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11047 .loc 1 6662 7 is_stmt 1 view .LVU3920
6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11048 .loc 1 6662 11 is_stmt 0 view .LVU3921
11049 00bc A36B ldr r3, [r4, #56]
6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11050 .loc 1 6662 39 view .LVU3922
11051 00be 1B4A ldr r2, .L706+8
11052 00c0 5A63 str r2, [r3, #52]
6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11053 .loc 1 6665 7 is_stmt 1 view .LVU3923
6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11054 .loc 1 6665 7 view .LVU3924
11055 00c2 0023 movs r3, #0
11056 00c4 84F84030 strb r3, [r4, #64]
6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11057 .loc 1 6665 7 view .LVU3925
6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11058 .loc 1 6668 7 view .LVU3926
6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11059 .loc 1 6668 11 is_stmt 0 view .LVU3927
11060 00c8 A06B ldr r0, [r4, #56]
11061 00ca FFF7FEFF bl HAL_DMA_Abort_IT
ARM GAS /tmp/ccJ8PJrU.s page 392
11062 .LVL802:
6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11063 .loc 1 6668 10 discriminator 1 view .LVU3928
11064 00ce 0028 cmp r0, #0
11065 00d0 C0D0 beq .L691
6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11066 .loc 1 6671 9 is_stmt 1 view .LVU3929
6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11067 .loc 1 6671 13 is_stmt 0 view .LVU3930
11068 00d2 A06B ldr r0, [r4, #56]
6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11069 .loc 1 6671 21 view .LVU3931
11070 00d4 436B ldr r3, [r0, #52]
6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11071 .loc 1 6671 9 view .LVU3932
11072 00d6 9847 blx r3
11073 .LVL803:
11074 00d8 BCE7 b .L691
11075 .L699:
6676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11076 .loc 1 6676 7 is_stmt 1 view .LVU3933
11077 00da 2046 mov r0, r4
11078 00dc FFF7FEFF bl I2C_TreatErrorCallback
11079 .LVL804:
11080 00e0 B8E7 b .L691
11081 .LVL805:
11082 .L702:
6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11083 .loc 1 6683 5 view .LVU3934
6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11084 .loc 1 6683 14 is_stmt 0 view .LVU3935
11085 00e2 2368 ldr r3, [r4]
11086 .LVL806:
6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11087 .loc 1 6683 24 view .LVU3936
11088 00e4 1A68 ldr r2, [r3]
6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11089 .loc 1 6683 8 view .LVU3937
11090 00e6 12F4004F tst r2, #32768
11091 00ea 03D0 beq .L703
6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11092 .loc 1 6685 7 is_stmt 1 view .LVU3938
6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11093 .loc 1 6685 21 is_stmt 0 view .LVU3939
11094 00ec 1A68 ldr r2, [r3]
6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11095 .loc 1 6685 27 view .LVU3940
11096 00ee 22F40042 bic r2, r2, #32768
11097 00f2 1A60 str r2, [r3]
11098 .L703:
6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11099 .loc 1 6688 5 is_stmt 1 view .LVU3941
6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11100 .loc 1 6688 9 is_stmt 0 view .LVU3942
11101 00f4 E06B ldr r0, [r4, #60]
11102 00f6 FFF7FEFF bl HAL_DMA_GetState
11103 .LVL807:
ARM GAS /tmp/ccJ8PJrU.s page 393
6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11104 .loc 1 6688 8 discriminator 1 view .LVU3943
11105 00fa 0128 cmp r0, #1
11106 00fc 0ED0 beq .L704
6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11107 .loc 1 6692 7 is_stmt 1 view .LVU3944
6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11108 .loc 1 6692 11 is_stmt 0 view .LVU3945
11109 00fe E36B ldr r3, [r4, #60]
6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11110 .loc 1 6692 39 view .LVU3946
11111 0100 0A4A ldr r2, .L706+8
11112 0102 5A63 str r2, [r3, #52]
6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11113 .loc 1 6695 7 is_stmt 1 view .LVU3947
6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11114 .loc 1 6695 7 view .LVU3948
11115 0104 0023 movs r3, #0
11116 0106 84F84030 strb r3, [r4, #64]
6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11117 .loc 1 6695 7 view .LVU3949
6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11118 .loc 1 6698 7 view .LVU3950
6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11119 .loc 1 6698 11 is_stmt 0 view .LVU3951
11120 010a E06B ldr r0, [r4, #60]
11121 010c FFF7FEFF bl HAL_DMA_Abort_IT
11122 .LVL808:
6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11123 .loc 1 6698 10 discriminator 1 view .LVU3952
11124 0110 0028 cmp r0, #0
11125 0112 9FD0 beq .L691
6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11126 .loc 1 6701 9 is_stmt 1 view .LVU3953
6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11127 .loc 1 6701 13 is_stmt 0 view .LVU3954
11128 0114 E06B ldr r0, [r4, #60]
6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11129 .loc 1 6701 21 view .LVU3955
11130 0116 436B ldr r3, [r0, #52]
6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11131 .loc 1 6701 9 view .LVU3956
11132 0118 9847 blx r3
11133 .LVL809:
11134 011a 9BE7 b .L691
11135 .L704:
6706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11136 .loc 1 6706 7 is_stmt 1 view .LVU3957
11137 011c 2046 mov r0, r4
11138 011e FFF7FEFF bl I2C_TreatErrorCallback
11139 .LVL810:
11140 0122 97E7 b .L691
11141 .L707:
11142 .align 2
11143 .L706:
11144 0124 0000FFFF .word -65536
11145 0128 00000000 .word I2C_Slave_ISR_IT
ARM GAS /tmp/ccJ8PJrU.s page 394
11146 012c 00000000 .word I2C_DMAAbort
11147 .cfi_endproc
11148 .LFE186:
11150 .section .text.I2C_ITSlaveCplt,"ax",%progbits
11151 .align 1
11152 .syntax unified
11153 .thumb
11154 .thumb_func
11156 I2C_ITSlaveCplt:
11157 .LVL811:
11158 .LFB184:
6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
11159 .loc 1 6323 1 view -0
11160 .cfi_startproc
11161 @ args = 0, pretend = 0, frame = 0
11162 @ frame_needed = 0, uses_anonymous_args = 0
6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1);
11163 .loc 1 6323 1 is_stmt 0 view .LVU3959
11164 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
11165 .cfi_def_cfa_offset 24
11166 .cfi_offset 3, -24
11167 .cfi_offset 4, -20
11168 .cfi_offset 5, -16
11169 .cfi_offset 6, -12
11170 .cfi_offset 7, -8
11171 .cfi_offset 14, -4
11172 0002 0446 mov r4, r0
11173 0004 0D46 mov r5, r1
6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11174 .loc 1 6324 3 is_stmt 1 view .LVU3960
6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11175 .loc 1 6324 26 is_stmt 0 view .LVU3961
11176 0006 0268 ldr r2, [r0]
6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11177 .loc 1 6324 12 view .LVU3962
11178 0008 1668 ldr r6, [r2]
11179 .LVL812:
6325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11180 .loc 1 6325 3 is_stmt 1 view .LVU3963
6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
11181 .loc 1 6326 3 view .LVU3964
6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State;
11182 .loc 1 6326 12 is_stmt 0 view .LVU3965
11183 000a C76A ldr r7, [r0, #44]
11184 .LVL813:
6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11185 .loc 1 6327 3 is_stmt 1 view .LVU3966
6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11186 .loc 1 6327 24 is_stmt 0 view .LVU3967
11187 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
11188 .LVL814:
6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11189 .loc 1 6330 3 is_stmt 1 view .LVU3968
11190 0010 2021 movs r1, #32
11191 .LVL815:
6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11192 .loc 1 6330 3 is_stmt 0 view .LVU3969
ARM GAS /tmp/ccJ8PJrU.s page 395
11193 0012 D161 str r1, [r2, #28]
6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11194 .loc 1 6333 3 is_stmt 1 view .LVU3970
11195 0014 213B subs r3, r3, #33
11196 .LVL816:
6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11197 .loc 1 6333 3 is_stmt 0 view .LVU3971
11198 0016 092B cmp r3, #9
11199 0018 0CD8 bhi .L709
11200 001a DFE803F0 tbb [pc, r3]
11201 .L711:
11202 001e 05 .byte (.L712-.L711)/2
11203 001f 7A .byte (.L710-.L711)/2
11204 0020 0B .byte (.L709-.L711)/2
11205 0021 0B .byte (.L709-.L711)/2
11206 0022 0B .byte (.L709-.L711)/2
11207 0023 0B .byte (.L709-.L711)/2
11208 0024 0B .byte (.L709-.L711)/2
11209 0025 81 .byte (.L713-.L711)/2
11210 0026 05 .byte (.L712-.L711)/2
11211 0027 7A .byte (.L710-.L711)/2
11212 .p2align 1
11213 .L712:
6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX;
11214 .loc 1 6335 5 is_stmt 1 view .LVU3972
11215 0028 48F20101 movw r1, #32769
11216 002c FFF7FEFF bl I2C_Disable_IRQ
11217 .LVL817:
6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11218 .loc 1 6336 5 view .LVU3973
6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11219 .loc 1 6336 25 is_stmt 0 view .LVU3974
11220 0030 2123 movs r3, #33
11221 0032 2363 str r3, [r4, #48]
11222 .L709:
6351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11223 .loc 1 6351 3 is_stmt 1 view .LVU3975
6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11224 .loc 1 6354 3 view .LVU3976
6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11225 .loc 1 6354 7 is_stmt 0 view .LVU3977
11226 0034 2268 ldr r2, [r4]
6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11227 .loc 1 6354 17 view .LVU3978
11228 0036 5368 ldr r3, [r2, #4]
6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11229 .loc 1 6354 23 view .LVU3979
11230 0038 43F40043 orr r3, r3, #32768
11231 003c 5360 str r3, [r2, #4]
6357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11232 .loc 1 6357 3 is_stmt 1 view .LVU3980
11233 003e 2268 ldr r2, [r4]
11234 0040 5368 ldr r3, [r2, #4]
11235 0042 23F0FF73 bic r3, r3, #33423360
11236 0046 23F48B33 bic r3, r3, #71168
11237 004a 23F4FF73 bic r3, r3, #510
11238 004e 23F00103 bic r3, r3, #1
ARM GAS /tmp/ccJ8PJrU.s page 396
11239 0052 5360 str r3, [r2, #4]
6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11240 .loc 1 6360 3 view .LVU3981
11241 0054 2046 mov r0, r4
11242 0056 FFF7FEFF bl I2C_Flush_TXDR
11243 .LVL818:
6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11244 .loc 1 6363 3 view .LVU3982
6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11245 .loc 1 6363 6 is_stmt 0 view .LVU3983
11246 005a 16F4804F tst r6, #16384
11247 005e 66D0 beq .L714
6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11248 .loc 1 6366 5 is_stmt 1 view .LVU3984
6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11249 .loc 1 6366 9 is_stmt 0 view .LVU3985
11250 0060 2268 ldr r2, [r4]
6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11251 .loc 1 6366 19 view .LVU3986
11252 0062 1368 ldr r3, [r2]
6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11253 .loc 1 6366 25 view .LVU3987
11254 0064 23F48043 bic r3, r3, #16384
11255 0068 1360 str r3, [r2]
6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11256 .loc 1 6368 5 is_stmt 1 view .LVU3988
6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11257 .loc 1 6368 13 is_stmt 0 view .LVU3989
11258 006a A36B ldr r3, [r4, #56]
6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11259 .loc 1 6368 8 view .LVU3990
11260 006c 1BB1 cbz r3, .L715
6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11261 .loc 1 6370 7 is_stmt 1 view .LVU3991
6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11262 .loc 1 6370 35 is_stmt 0 view .LVU3992
11263 006e 1B68 ldr r3, [r3]
11264 0070 5B68 ldr r3, [r3, #4]
6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11265 .loc 1 6370 25 view .LVU3993
11266 0072 9BB2 uxth r3, r3
6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11267 .loc 1 6370 23 view .LVU3994
11268 0074 6385 strh r3, [r4, #42] @ movhi
11269 .L715:
6386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11270 .loc 1 6386 3 is_stmt 1 view .LVU3995
6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11271 .loc 1 6389 3 view .LVU3996
6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11272 .loc 1 6389 6 is_stmt 0 view .LVU3997
11273 0076 15F0040F tst r5, #4
11274 007a 11D0 beq .L716
6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11275 .loc 1 6392 5 is_stmt 1 view .LVU3998
6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11276 .loc 1 6392 16 is_stmt 0 view .LVU3999
ARM GAS /tmp/ccJ8PJrU.s page 397
11277 007c 25F00405 bic r5, r5, #4
11278 .LVL819:
6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11279 .loc 1 6395 5 is_stmt 1 view .LVU4000
6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11280 .loc 1 6395 36 is_stmt 0 view .LVU4001
11281 0080 2368 ldr r3, [r4]
6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11282 .loc 1 6395 46 view .LVU4002
11283 0082 5A6A ldr r2, [r3, #36]
6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11284 .loc 1 6395 10 view .LVU4003
11285 0084 636A ldr r3, [r4, #36]
6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11286 .loc 1 6395 21 view .LVU4004
11287 0086 1A70 strb r2, [r3]
6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11288 .loc 1 6398 5 is_stmt 1 view .LVU4005
6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11289 .loc 1 6398 9 is_stmt 0 view .LVU4006
11290 0088 636A ldr r3, [r4, #36]
6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11291 .loc 1 6398 19 view .LVU4007
11292 008a 0133 adds r3, r3, #1
11293 008c 6362 str r3, [r4, #36]
6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11294 .loc 1 6400 5 is_stmt 1 view .LVU4008
6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11295 .loc 1 6400 14 is_stmt 0 view .LVU4009
11296 008e 238D ldrh r3, [r4, #40]
6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11297 .loc 1 6400 8 view .LVU4010
11298 0090 33B1 cbz r3, .L716
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11299 .loc 1 6402 7 is_stmt 1 view .LVU4011
6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11300 .loc 1 6402 21 is_stmt 0 view .LVU4012
11301 0092 013B subs r3, r3, #1
11302 0094 2385 strh r3, [r4, #40] @ movhi
6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11303 .loc 1 6403 7 is_stmt 1 view .LVU4013
6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11304 .loc 1 6403 11 is_stmt 0 view .LVU4014
11305 0096 638D ldrh r3, [r4, #42]
11306 0098 9BB2 uxth r3, r3
6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11307 .loc 1 6403 22 view .LVU4015
11308 009a 013B subs r3, r3, #1
11309 009c 9BB2 uxth r3, r3
11310 009e 6385 strh r3, [r4, #42] @ movhi
11311 .L716:
6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11312 .loc 1 6408 3 is_stmt 1 view .LVU4016
6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11313 .loc 1 6408 11 is_stmt 0 view .LVU4017
11314 00a0 638D ldrh r3, [r4, #42]
11315 00a2 9BB2 uxth r3, r3
ARM GAS /tmp/ccJ8PJrU.s page 398
6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11316 .loc 1 6408 6 view .LVU4018
11317 00a4 1BB1 cbz r3, .L717
6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11318 .loc 1 6411 5 is_stmt 1 view .LVU4019
6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11319 .loc 1 6411 9 is_stmt 0 view .LVU4020
11320 00a6 636C ldr r3, [r4, #68]
6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11321 .loc 1 6411 21 view .LVU4021
11322 00a8 43F00403 orr r3, r3, #4
11323 00ac 6364 str r3, [r4, #68]
11324 .L717:
6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
11325 .loc 1 6414 3 is_stmt 1 view .LVU4022
6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
11326 .loc 1 6414 6 is_stmt 0 view .LVU4023
11327 00ae 15F0100F tst r5, #16
11328 00b2 13D0 beq .L718
6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET))
11329 .loc 1 6414 58 discriminator 1 view .LVU4024
11330 00b4 16F0100F tst r6, #16
11331 00b8 10D0 beq .L718
6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11332 .loc 1 6421 5 is_stmt 1 view .LVU4025
6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11333 .loc 1 6421 13 is_stmt 0 view .LVU4026
11334 00ba 638D ldrh r3, [r4, #42]
11335 00bc 9BB2 uxth r3, r3
6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11336 .loc 1 6421 8 view .LVU4027
11337 00be 002B cmp r3, #0
11338 00c0 5AD1 bne .L719
6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11339 .loc 1 6423 7 is_stmt 1 view .LVU4028
6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11340 .loc 1 6423 16 is_stmt 0 view .LVU4029
11341 00c2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11342 00c6 DBB2 uxtb r3, r3
6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11343 .loc 1 6423 10 view .LVU4030
11344 00c8 282B cmp r3, #40
11345 00ca 40D0 beq .L729
11346 .L720:
6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11347 .loc 1 6430 12 is_stmt 1 view .LVU4031
6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11348 .loc 1 6430 21 is_stmt 0 view .LVU4032
11349 00cc 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11350 00d0 DBB2 uxtb r3, r3
6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11351 .loc 1 6430 15 view .LVU4033
11352 00d2 292B cmp r3, #41
11353 00d4 43D0 beq .L730
11354 .L721:
6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11355 .loc 1 6445 9 is_stmt 1 view .LVU4034
ARM GAS /tmp/ccJ8PJrU.s page 399
11356 00d6 2368 ldr r3, [r4]
11357 00d8 1022 movs r2, #16
11358 00da DA61 str r2, [r3, #28]
11359 .L718:
6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
11360 .loc 1 6465 3 view .LVU4035
6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL;
11361 .loc 1 6465 14 is_stmt 0 view .LVU4036
11362 00dc 0023 movs r3, #0
11363 00de 84F84230 strb r3, [r4, #66]
6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11364 .loc 1 6466 3 is_stmt 1 view .LVU4037
6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11365 .loc 1 6466 17 is_stmt 0 view .LVU4038
11366 00e2 6363 str r3, [r4, #52]
6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11367 .loc 1 6468 3 is_stmt 1 view .LVU4039
6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11368 .loc 1 6468 11 is_stmt 0 view .LVU4040
11369 00e4 636C ldr r3, [r4, #68]
6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11370 .loc 1 6468 6 view .LVU4041
11371 00e6 002B cmp r3, #0
11372 00e8 56D1 bne .L731
6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11373 .loc 1 6480 8 is_stmt 1 view .LVU4042
6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11374 .loc 1 6480 16 is_stmt 0 view .LVU4043
11375 00ea E36A ldr r3, [r4, #44]
6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11376 .loc 1 6480 11 view .LVU4044
11377 00ec 13F5803F cmn r3, #65536
11378 00f0 60D1 bne .L732
6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11379 .loc 1 6500 8 is_stmt 1 view .LVU4045
6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11380 .loc 1 6500 16 is_stmt 0 view .LVU4046
11381 00f2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11382 00f6 DBB2 uxtb r3, r3
6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11383 .loc 1 6500 11 view .LVU4047
11384 00f8 222B cmp r3, #34
11385 00fa 6BD0 beq .L733
6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11386 .loc 1 6517 5 is_stmt 1 view .LVU4048
6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11387 .loc 1 6517 17 is_stmt 0 view .LVU4049
11388 00fc 2023 movs r3, #32
11389 00fe 84F84130 strb r3, [r4, #65]
6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11390 .loc 1 6518 5 is_stmt 1 view .LVU4050
6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11391 .loc 1 6518 25 is_stmt 0 view .LVU4051
11392 0102 0023 movs r3, #0
11393 0104 2363 str r3, [r4, #48]
6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11394 .loc 1 6521 5 is_stmt 1 view .LVU4052
ARM GAS /tmp/ccJ8PJrU.s page 400
6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11395 .loc 1 6521 5 view .LVU4053
11396 0106 84F84030 strb r3, [r4, #64]
6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11397 .loc 1 6521 5 view .LVU4054
6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11398 .loc 1 6527 5 view .LVU4055
11399 010a 2046 mov r0, r4
11400 010c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback
11401 .LVL820:
6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11402 .loc 1 6530 1 is_stmt 0 view .LVU4056
11403 0110 5FE0 b .L708
11404 .LVL821:
11405 .L710:
6340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX;
11406 .loc 1 6340 5 is_stmt 1 view .LVU4057
11407 0112 48F20201 movw r1, #32770
11408 0116 FFF7FEFF bl I2C_Disable_IRQ
11409 .LVL822:
6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11410 .loc 1 6341 5 view .LVU4058
6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11411 .loc 1 6341 25 is_stmt 0 view .LVU4059
11412 011a 2223 movs r3, #34
11413 011c 2363 str r3, [r4, #48]
11414 011e 89E7 b .L709
11415 .LVL823:
11416 .L713:
6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11417 .loc 1 6345 5 is_stmt 1 view .LVU4060
11418 0120 48F20301 movw r1, #32771
11419 0124 FFF7FEFF bl I2C_Disable_IRQ
11420 .LVL824:
6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11421 .loc 1 6346 5 view .LVU4061
6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11422 .loc 1 6346 25 is_stmt 0 view .LVU4062
11423 0128 0023 movs r3, #0
11424 012a 2363 str r3, [r4, #48]
11425 012c 82E7 b .L709
11426 .L714:
6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11427 .loc 1 6373 8 is_stmt 1 view .LVU4063
6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11428 .loc 1 6373 11 is_stmt 0 view .LVU4064
11429 012e 16F4004F tst r6, #32768
11430 0132 A0D0 beq .L715
6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11431 .loc 1 6376 5 is_stmt 1 view .LVU4065
6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11432 .loc 1 6376 9 is_stmt 0 view .LVU4066
11433 0134 2268 ldr r2, [r4]
6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11434 .loc 1 6376 19 view .LVU4067
11435 0136 1368 ldr r3, [r2]
6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 401
11436 .loc 1 6376 25 view .LVU4068
11437 0138 23F40043 bic r3, r3, #32768
11438 013c 1360 str r3, [r2]
6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11439 .loc 1 6378 5 is_stmt 1 view .LVU4069
6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11440 .loc 1 6378 13 is_stmt 0 view .LVU4070
11441 013e E36B ldr r3, [r4, #60]
6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11442 .loc 1 6378 8 view .LVU4071
11443 0140 002B cmp r3, #0
11444 0142 98D0 beq .L715
6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11445 .loc 1 6380 7 is_stmt 1 view .LVU4072
6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11446 .loc 1 6380 35 is_stmt 0 view .LVU4073
11447 0144 1B68 ldr r3, [r3]
11448 0146 5B68 ldr r3, [r3, #4]
6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11449 .loc 1 6380 25 view .LVU4074
11450 0148 9BB2 uxth r3, r3
6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11451 .loc 1 6380 23 view .LVU4075
11452 014a 6385 strh r3, [r4, #42] @ movhi
11453 014c 93E7 b .L715
11454 .LVL825:
11455 .L729:
6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11456 .loc 1 6423 49 discriminator 1 view .LVU4076
11457 014e B7F1007F cmp r7, #33554432
11458 0152 BBD1 bne .L720
6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11459 .loc 1 6428 9 is_stmt 1 view .LVU4077
11460 0154 2946 mov r1, r5
11461 0156 2046 mov r0, r4
11462 0158 FFF7FEFF bl I2C_ITListenCplt
11463 .LVL826:
11464 015c BEE7 b .L718
11465 .L730:
6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11466 .loc 1 6430 62 is_stmt 0 discriminator 1 view .LVU4078
11467 015e 17F5803F cmn r7, #65536
11468 0162 B8D0 beq .L721
6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11469 .loc 1 6433 9 is_stmt 1 view .LVU4079
11470 0164 2368 ldr r3, [r4]
11471 0166 1022 movs r2, #16
11472 0168 DA61 str r2, [r3, #28]
6436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11473 .loc 1 6436 9 view .LVU4080
11474 016a 2046 mov r0, r4
11475 016c FFF7FEFF bl I2C_Flush_TXDR
11476 .LVL827:
6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11477 .loc 1 6440 9 view .LVU4081
11478 0170 2046 mov r0, r4
11479 0172 FFF7FEFF bl I2C_ITSlaveSeqCplt
ARM GAS /tmp/ccJ8PJrU.s page 402
11480 .LVL828:
11481 0176 B1E7 b .L718
11482 .L719:
6452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11483 .loc 1 6452 7 view .LVU4082
11484 0178 2368 ldr r3, [r4]
11485 017a 1022 movs r2, #16
11486 017c DA61 str r2, [r3, #28]
6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11487 .loc 1 6455 7 view .LVU4083
6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11488 .loc 1 6455 11 is_stmt 0 view .LVU4084
11489 017e 636C ldr r3, [r4, #68]
6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11490 .loc 1 6455 23 view .LVU4085
11491 0180 43F00403 orr r3, r3, #4
11492 0184 6364 str r3, [r4, #68]
6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11493 .loc 1 6457 7 is_stmt 1 view .LVU4086
6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11494 .loc 1 6457 10 is_stmt 0 view .LVU4087
11495 0186 17B1 cbz r7, .L722
6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11496 .loc 1 6457 43 discriminator 1 view .LVU4088
11497 0188 B7F1807F cmp r7, #16777216
11498 018c A6D1 bne .L718
11499 .L722:
6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11500 .loc 1 6460 9 is_stmt 1 view .LVU4089
6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11501 .loc 1 6460 31 is_stmt 0 view .LVU4090
11502 018e 616C ldr r1, [r4, #68]
6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11503 .loc 1 6460 9 view .LVU4091
11504 0190 2046 mov r0, r4
11505 0192 FFF7FEFF bl I2C_ITError
11506 .LVL829:
11507 0196 A1E7 b .L718
11508 .L731:
6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11509 .loc 1 6471 5 is_stmt 1 view .LVU4092
6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11510 .loc 1 6471 27 is_stmt 0 view .LVU4093
11511 0198 616C ldr r1, [r4, #68]
6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11512 .loc 1 6471 5 view .LVU4094
11513 019a 2046 mov r0, r4
11514 019c FFF7FEFF bl I2C_ITError
11515 .LVL830:
6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11516 .loc 1 6474 5 is_stmt 1 view .LVU4095
6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11517 .loc 1 6474 13 is_stmt 0 view .LVU4096
11518 01a0 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11519 01a4 DBB2 uxtb r3, r3
6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11520 .loc 1 6474 8 view .LVU4097
ARM GAS /tmp/ccJ8PJrU.s page 403
11521 01a6 282B cmp r3, #40
11522 01a8 13D1 bne .L708
6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11523 .loc 1 6477 7 is_stmt 1 view .LVU4098
11524 01aa 2946 mov r1, r5
11525 01ac 2046 mov r0, r4
11526 01ae FFF7FEFF bl I2C_ITListenCplt
11527 .LVL831:
11528 01b2 0EE0 b .L708
11529 .L732:
6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11530 .loc 1 6483 5 view .LVU4099
11531 01b4 2046 mov r0, r4
11532 01b6 FFF7FEFF bl I2C_ITSlaveSeqCplt
11533 .LVL832:
6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
11534 .loc 1 6485 5 view .LVU4100
6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY;
11535 .loc 1 6485 23 is_stmt 0 view .LVU4101
11536 01ba 0C4B ldr r3, .L734
11537 01bc E362 str r3, [r4, #44]
6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11538 .loc 1 6486 5 is_stmt 1 view .LVU4102
6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11539 .loc 1 6486 17 is_stmt 0 view .LVU4103
11540 01be 2023 movs r3, #32
11541 01c0 84F84130 strb r3, [r4, #65]
6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11542 .loc 1 6487 5 is_stmt 1 view .LVU4104
6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11543 .loc 1 6487 25 is_stmt 0 view .LVU4105
11544 01c4 0023 movs r3, #0
11545 01c6 2363 str r3, [r4, #48]
6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11546 .loc 1 6490 5 is_stmt 1 view .LVU4106
6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11547 .loc 1 6490 5 view .LVU4107
11548 01c8 84F84030 strb r3, [r4, #64]
6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11549 .loc 1 6490 5 view .LVU4108
6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11550 .loc 1 6496 5 view .LVU4109
11551 01cc 2046 mov r0, r4
11552 01ce FFF7FEFF bl HAL_I2C_ListenCpltCallback
11553 .LVL833:
11554 .L708:
6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11555 .loc 1 6530 1 is_stmt 0 view .LVU4110
11556 01d2 F8BD pop {r3, r4, r5, r6, r7, pc}
11557 .LVL834:
11558 .L733:
6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11559 .loc 1 6502 5 is_stmt 1 view .LVU4111
6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
11560 .loc 1 6502 17 is_stmt 0 view .LVU4112
11561 01d4 2023 movs r3, #32
11562 01d6 84F84130 strb r3, [r4, #65]
ARM GAS /tmp/ccJ8PJrU.s page 404
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11563 .loc 1 6503 5 is_stmt 1 view .LVU4113
6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11564 .loc 1 6503 25 is_stmt 0 view .LVU4114
11565 01da 0023 movs r3, #0
11566 01dc 2363 str r3, [r4, #48]
6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11567 .loc 1 6506 5 is_stmt 1 view .LVU4115
6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11568 .loc 1 6506 5 view .LVU4116
11569 01de 84F84030 strb r3, [r4, #64]
6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11570 .loc 1 6506 5 view .LVU4117
6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
11571 .loc 1 6512 5 view .LVU4118
11572 01e2 2046 mov r0, r4
11573 01e4 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback
11574 .LVL835:
11575 01e8 F3E7 b .L708
11576 .L735:
11577 01ea 00BF .align 2
11578 .L734:
11579 01ec 0000FFFF .word -65536
11580 .cfi_endproc
11581 .LFE184:
11583 .section .text.I2C_Slave_ISR_IT,"ax",%progbits
11584 .align 1
11585 .syntax unified
11586 .thumb
11587 .thumb_func
11589 I2C_Slave_ISR_IT:
11590 .LVL836:
11591 .LFB174:
5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11592 .loc 1 5259 1 view -0
11593 .cfi_startproc
11594 @ args = 0, pretend = 0, frame = 0
11595 @ frame_needed = 0, uses_anonymous_args = 0
5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
11596 .loc 1 5259 1 is_stmt 0 view .LVU4120
11597 0000 10B5 push {r4, lr}
11598 .cfi_def_cfa_offset 8
11599 .cfi_offset 4, -8
11600 .cfi_offset 14, -4
11601 0002 0446 mov r4, r0
5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11602 .loc 1 5260 3 is_stmt 1 view .LVU4121
5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11603 .loc 1 5260 12 is_stmt 0 view .LVU4122
11604 0004 C06A ldr r0, [r0, #44]
11605 .LVL837:
5261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11606 .loc 1 5261 3 is_stmt 1 view .LVU4123
5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11607 .loc 1 5264 3 view .LVU4124
5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11608 .loc 1 5264 3 view .LVU4125
ARM GAS /tmp/ccJ8PJrU.s page 405
11609 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
11610 000a 012B cmp r3, #1
11611 000c 00F09A80 beq .L750
5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11612 .loc 1 5264 3 discriminator 2 view .LVU4126
11613 0010 0123 movs r3, #1
11614 0012 84F84030 strb r3, [r4, #64]
5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11615 .loc 1 5264 3 discriminator 2 view .LVU4127
5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11616 .loc 1 5267 3 view .LVU4128
5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11617 .loc 1 5267 6 is_stmt 0 view .LVU4129
11618 0016 11F0200F tst r1, #32
11619 001a 02D0 beq .L738
5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
11620 .loc 1 5267 61 discriminator 1 view .LVU4130
11621 001c 12F0200F tst r2, #32
11622 0020 16D1 bne .L752
11623 .L738:
5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11624 .loc 1 5273 8 is_stmt 1 view .LVU4131
5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11625 .loc 1 5273 11 is_stmt 0 view .LVU4132
11626 0022 11F0100F tst r1, #16
11627 0026 3ED0 beq .L740
5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
11628 .loc 1 5273 63 discriminator 1 view .LVU4133
11629 0028 12F0100F tst r2, #16
11630 002c 3BD0 beq .L740
5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11631 .loc 1 5280 5 is_stmt 1 view .LVU4134
5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11632 .loc 1 5280 13 is_stmt 0 view .LVU4135
11633 002e 638D ldrh r3, [r4, #42]
11634 0030 9BB2 uxth r3, r3
5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11635 .loc 1 5280 8 view .LVU4136
11636 0032 43BB cbnz r3, .L741
5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11637 .loc 1 5282 7 is_stmt 1 view .LVU4137
5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11638 .loc 1 5282 16 is_stmt 0 view .LVU4138
11639 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11640 0038 DBB2 uxtb r3, r3
5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11641 .loc 1 5282 10 view .LVU4139
11642 003a 282B cmp r3, #40
11643 003c 0FD0 beq .L753
11644 .L742:
5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11645 .loc 1 5289 12 is_stmt 1 view .LVU4140
5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11646 .loc 1 5289 21 is_stmt 0 view .LVU4141
11647 003e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11648 0042 DBB2 uxtb r3, r3
5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 406
11649 .loc 1 5289 15 view .LVU4142
11650 0044 292B cmp r3, #41
11651 0046 11D0 beq .L754
11652 .L743:
5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11653 .loc 1 5304 9 is_stmt 1 view .LVU4143
11654 0048 2368 ldr r3, [r4]
11655 004a 1022 movs r2, #16
11656 .LVL838:
5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11657 .loc 1 5304 9 is_stmt 0 view .LVU4144
11658 004c DA61 str r2, [r3, #28]
11659 004e 02E0 b .L739
11660 .LVL839:
11661 .L752:
5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11662 .loc 1 5271 5 is_stmt 1 view .LVU4145
11663 0050 2046 mov r0, r4
11664 .LVL840:
5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11665 .loc 1 5271 5 is_stmt 0 view .LVU4146
11666 0052 FFF7FEFF bl I2C_ITSlaveCplt
11667 .LVL841:
11668 .L739:
5381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11669 .loc 1 5381 3 is_stmt 1 view .LVU4147
5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11670 .loc 1 5384 3 view .LVU4148
5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11671 .loc 1 5384 3 view .LVU4149
11672 0056 0020 movs r0, #0
11673 0058 84F84000 strb r0, [r4, #64]
5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11674 .loc 1 5384 3 view .LVU4150
5386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11675 .loc 1 5386 3 view .LVU4151
11676 .L737:
5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11677 .loc 1 5387 1 is_stmt 0 view .LVU4152
11678 005c 10BD pop {r4, pc}
11679 .LVL842:
11680 .L753:
5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
11681 .loc 1 5282 49 discriminator 1 view .LVU4153
11682 005e B0F1007F cmp r0, #33554432
11683 0062 ECD1 bne .L742
5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11684 .loc 1 5287 9 is_stmt 1 view .LVU4154
11685 0064 2046 mov r0, r4
11686 .LVL843:
5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11687 .loc 1 5287 9 is_stmt 0 view .LVU4155
11688 0066 FFF7FEFF bl I2C_ITListenCplt
11689 .LVL844:
5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11690 .loc 1 5287 9 view .LVU4156
11691 006a F4E7 b .L739
ARM GAS /tmp/ccJ8PJrU.s page 407
11692 .LVL845:
11693 .L754:
5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11694 .loc 1 5289 62 discriminator 1 view .LVU4157
11695 006c 10F5803F cmn r0, #65536
11696 0070 EAD0 beq .L743
5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11697 .loc 1 5292 9 is_stmt 1 view .LVU4158
11698 0072 2368 ldr r3, [r4]
11699 0074 1022 movs r2, #16
11700 .LVL846:
5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11701 .loc 1 5292 9 is_stmt 0 view .LVU4159
11702 0076 DA61 str r2, [r3, #28]
5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11703 .loc 1 5295 9 is_stmt 1 view .LVU4160
11704 0078 2046 mov r0, r4
11705 .LVL847:
5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11706 .loc 1 5295 9 is_stmt 0 view .LVU4161
11707 007a FFF7FEFF bl I2C_Flush_TXDR
11708 .LVL848:
5299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11709 .loc 1 5299 9 is_stmt 1 view .LVU4162
11710 007e 2046 mov r0, r4
11711 0080 FFF7FEFF bl I2C_ITSlaveSeqCplt
11712 .LVL849:
11713 0084 E7E7 b .L739
11714 .LVL850:
11715 .L741:
5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11716 .loc 1 5311 7 view .LVU4163
11717 0086 2368 ldr r3, [r4]
11718 0088 1022 movs r2, #16
11719 .LVL851:
5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11720 .loc 1 5311 7 is_stmt 0 view .LVU4164
11721 008a DA61 str r2, [r3, #28]
5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11722 .loc 1 5314 7 is_stmt 1 view .LVU4165
5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11723 .loc 1 5314 11 is_stmt 0 view .LVU4166
11724 008c 636C ldr r3, [r4, #68]
5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11725 .loc 1 5314 23 view .LVU4167
11726 008e 43F00403 orr r3, r3, #4
11727 0092 6364 str r3, [r4, #68]
5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11728 .loc 1 5316 7 is_stmt 1 view .LVU4168
5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11729 .loc 1 5316 10 is_stmt 0 view .LVU4169
11730 0094 10B1 cbz r0, .L744
5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11731 .loc 1 5316 43 discriminator 1 view .LVU4170
11732 0096 B0F1807F cmp r0, #16777216
11733 009a DCD1 bne .L739
11734 .L744:
ARM GAS /tmp/ccJ8PJrU.s page 408
5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11735 .loc 1 5319 9 is_stmt 1 view .LVU4171
5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11736 .loc 1 5319 31 is_stmt 0 view .LVU4172
11737 009c 616C ldr r1, [r4, #68]
11738 .LVL852:
5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11739 .loc 1 5319 9 view .LVU4173
11740 009e 2046 mov r0, r4
11741 .LVL853:
5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11742 .loc 1 5319 9 view .LVU4174
11743 00a0 FFF7FEFF bl I2C_ITError
11744 .LVL854:
11745 00a4 D7E7 b .L739
11746 .LVL855:
11747 .L740:
5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11748 .loc 1 5323 8 is_stmt 1 view .LVU4175
5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11749 .loc 1 5323 11 is_stmt 0 view .LVU4176
11750 00a6 11F0040F tst r1, #4
11751 00aa 1FD0 beq .L745
5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
11752 .loc 1 5323 65 discriminator 1 view .LVU4177
11753 00ac 12F0040F tst r2, #4
11754 00b0 1CD0 beq .L745
5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11755 .loc 1 5326 5 is_stmt 1 view .LVU4178
5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11756 .loc 1 5326 13 is_stmt 0 view .LVU4179
11757 00b2 638D ldrh r3, [r4, #42]
11758 00b4 9BB2 uxth r3, r3
5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11759 .loc 1 5326 8 view .LVU4180
11760 00b6 73B1 cbz r3, .L746
5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11761 .loc 1 5329 7 is_stmt 1 view .LVU4181
5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11762 .loc 1 5329 38 is_stmt 0 view .LVU4182
11763 00b8 2368 ldr r3, [r4]
5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11764 .loc 1 5329 48 view .LVU4183
11765 00ba 5A6A ldr r2, [r3, #36]
11766 .LVL856:
5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11767 .loc 1 5329 12 view .LVU4184
11768 00bc 636A ldr r3, [r4, #36]
5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11769 .loc 1 5329 23 view .LVU4185
11770 00be 1A70 strb r2, [r3]
5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11771 .loc 1 5332 7 is_stmt 1 view .LVU4186
5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11772 .loc 1 5332 11 is_stmt 0 view .LVU4187
11773 00c0 636A ldr r3, [r4, #36]
5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
ARM GAS /tmp/ccJ8PJrU.s page 409
11774 .loc 1 5332 21 view .LVU4188
11775 00c2 0133 adds r3, r3, #1
11776 00c4 6362 str r3, [r4, #36]
5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11777 .loc 1 5334 7 is_stmt 1 view .LVU4189
5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11778 .loc 1 5334 11 is_stmt 0 view .LVU4190
11779 00c6 238D ldrh r3, [r4, #40]
5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
11780 .loc 1 5334 21 view .LVU4191
11781 00c8 013B subs r3, r3, #1
11782 00ca 2385 strh r3, [r4, #40] @ movhi
5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11783 .loc 1 5335 7 is_stmt 1 view .LVU4192
5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11784 .loc 1 5335 11 is_stmt 0 view .LVU4193
11785 00cc 638D ldrh r3, [r4, #42]
11786 00ce 9BB2 uxth r3, r3
5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11787 .loc 1 5335 22 view .LVU4194
11788 00d0 013B subs r3, r3, #1
11789 00d2 9BB2 uxth r3, r3
11790 00d4 6385 strh r3, [r4, #42] @ movhi
11791 .L746:
5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11792 .loc 1 5338 5 is_stmt 1 view .LVU4195
5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11793 .loc 1 5338 14 is_stmt 0 view .LVU4196
11794 00d6 638D ldrh r3, [r4, #42]
11795 00d8 9BB2 uxth r3, r3
5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11796 .loc 1 5338 8 view .LVU4197
11797 00da 002B cmp r3, #0
11798 00dc BBD1 bne .L739
5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME))
11799 .loc 1 5338 33 discriminator 1 view .LVU4198
11800 00de 10F5803F cmn r0, #65536
11801 00e2 B8D0 beq .L739
5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11802 .loc 1 5342 7 is_stmt 1 view .LVU4199
11803 00e4 2046 mov r0, r4
11804 .LVL857:
5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11805 .loc 1 5342 7 is_stmt 0 view .LVU4200
11806 00e6 FFF7FEFF bl I2C_ITSlaveSeqCplt
11807 .LVL858:
5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11808 .loc 1 5342 7 view .LVU4201
11809 00ea B4E7 b .L739
11810 .LVL859:
11811 .L745:
5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
11812 .loc 1 5345 8 is_stmt 1 view .LVU4202
5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
11813 .loc 1 5345 11 is_stmt 0 view .LVU4203
11814 00ec 11F0080F tst r1, #8
11815 00f0 02D0 beq .L747
ARM GAS /tmp/ccJ8PJrU.s page 410
5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
11816 .loc 1 5345 65 discriminator 1 view .LVU4204
11817 00f2 12F0080F tst r2, #8
11818 00f6 18D1 bne .L755
11819 .L747:
5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
11820 .loc 1 5350 8 is_stmt 1 view .LVU4205
5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
11821 .loc 1 5350 11 is_stmt 0 view .LVU4206
11822 00f8 11F0020F tst r1, #2
11823 00fc ABD0 beq .L739
5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
11824 .loc 1 5350 65 discriminator 1 view .LVU4207
11825 00fe 12F0020F tst r2, #2
11826 0102 A8D0 beq .L739
5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11827 .loc 1 5357 5 is_stmt 1 view .LVU4208
5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11828 .loc 1 5357 13 is_stmt 0 view .LVU4209
11829 0104 638D ldrh r3, [r4, #42]
11830 0106 9BB2 uxth r3, r3
5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11831 .loc 1 5357 8 view .LVU4210
11832 0108 9BB1 cbz r3, .L748
5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11833 .loc 1 5360 7 is_stmt 1 view .LVU4211
5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11834 .loc 1 5360 35 is_stmt 0 view .LVU4212
11835 010a 626A ldr r2, [r4, #36]
11836 .LVL860:
5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11837 .loc 1 5360 11 view .LVU4213
11838 010c 2368 ldr r3, [r4]
5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11839 .loc 1 5360 30 view .LVU4214
11840 010e 1278 ldrb r2, [r2] @ zero_extendqisi2
5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11841 .loc 1 5360 28 view .LVU4215
11842 0110 9A62 str r2, [r3, #40]
5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11843 .loc 1 5363 7 is_stmt 1 view .LVU4216
5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11844 .loc 1 5363 11 is_stmt 0 view .LVU4217
11845 0112 636A ldr r3, [r4, #36]
5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11846 .loc 1 5363 21 view .LVU4218
11847 0114 0133 adds r3, r3, #1
11848 0116 6362 str r3, [r4, #36]
5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
11849 .loc 1 5365 7 is_stmt 1 view .LVU4219
5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
11850 .loc 1 5365 11 is_stmt 0 view .LVU4220
11851 0118 638D ldrh r3, [r4, #42]
11852 011a 9BB2 uxth r3, r3
5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--;
11853 .loc 1 5365 22 view .LVU4221
11854 011c 013B subs r3, r3, #1
ARM GAS /tmp/ccJ8PJrU.s page 411
11855 011e 9BB2 uxth r3, r3
11856 0120 6385 strh r3, [r4, #42] @ movhi
5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11857 .loc 1 5366 7 is_stmt 1 view .LVU4222
5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11858 .loc 1 5366 11 is_stmt 0 view .LVU4223
11859 0122 238D ldrh r3, [r4, #40]
5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11860 .loc 1 5366 21 view .LVU4224
11861 0124 013B subs r3, r3, #1
11862 0126 2385 strh r3, [r4, #40] @ movhi
11863 0128 95E7 b .L739
11864 .LVL861:
11865 .L755:
5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11866 .loc 1 5348 5 is_stmt 1 view .LVU4225
11867 012a 2046 mov r0, r4
11868 .LVL862:
5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11869 .loc 1 5348 5 is_stmt 0 view .LVU4226
11870 012c FFF7FEFF bl I2C_ITAddrCplt
11871 .LVL863:
5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11872 .loc 1 5348 5 view .LVU4227
11873 0130 91E7 b .L739
11874 .LVL864:
11875 .L748:
5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11876 .loc 1 5370 7 is_stmt 1 view .LVU4228
5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11877 .loc 1 5370 10 is_stmt 0 view .LVU4229
11878 0132 B0F1807F cmp r0, #16777216
11879 0136 01D0 beq .L749
5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11880 .loc 1 5370 42 discriminator 1 view .LVU4230
11881 0138 0028 cmp r0, #0
11882 013a 8CD1 bne .L739
11883 .L749:
5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11884 .loc 1 5374 9 is_stmt 1 view .LVU4231
11885 013c 2046 mov r0, r4
11886 .LVL865:
5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11887 .loc 1 5374 9 is_stmt 0 view .LVU4232
11888 013e FFF7FEFF bl I2C_ITSlaveSeqCplt
11889 .LVL866:
5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11890 .loc 1 5374 9 view .LVU4233
11891 0142 88E7 b .L739
11892 .LVL867:
11893 .L750:
5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11894 .loc 1 5264 3 discriminator 1 view .LVU4234
11895 0144 0220 movs r0, #2
11896 .LVL868:
5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11897 .loc 1 5264 3 discriminator 1 view .LVU4235
ARM GAS /tmp/ccJ8PJrU.s page 412
11898 0146 89E7 b .L737
11899 .cfi_endproc
11900 .LFE174:
11902 .section .text.I2C_ITMasterCplt,"ax",%progbits
11903 .align 1
11904 .syntax unified
11905 .thumb
11906 .thumb_func
11908 I2C_ITMasterCplt:
11909 .LVL869:
11910 .LFB183:
6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
11911 .loc 1 6180 1 is_stmt 1 view -0
11912 .cfi_startproc
11913 @ args = 0, pretend = 0, frame = 8
11914 @ frame_needed = 0, uses_anonymous_args = 0
6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
11915 .loc 1 6180 1 is_stmt 0 view .LVU4237
11916 0000 30B5 push {r4, r5, lr}
11917 .cfi_def_cfa_offset 12
11918 .cfi_offset 4, -12
11919 .cfi_offset 5, -8
11920 .cfi_offset 14, -4
11921 0002 83B0 sub sp, sp, #12
11922 .cfi_def_cfa_offset 24
11923 0004 0446 mov r4, r0
11924 0006 0D46 mov r5, r1
6181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
11925 .loc 1 6181 3 is_stmt 1 view .LVU4238
6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg;
11926 .loc 1 6182 3 view .LVU4239
11927 .LVL870:
6183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11928 .loc 1 6183 3 view .LVU4240
6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11929 .loc 1 6186 3 view .LVU4241
11930 0008 0368 ldr r3, [r0]
11931 000a 2022 movs r2, #32
11932 000c DA61 str r2, [r3, #28]
6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11933 .loc 1 6189 3 view .LVU4242
6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11934 .loc 1 6189 11 is_stmt 0 view .LVU4243
11935 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
11936 0012 DBB2 uxtb r3, r3
6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11937 .loc 1 6189 6 view .LVU4244
11938 0014 212B cmp r3, #33
11939 0016 33D0 beq .L768
6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11940 .loc 1 6194 8 is_stmt 1 view .LVU4245
6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11941 .loc 1 6194 16 is_stmt 0 view .LVU4246
11942 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2
11943 001c DBB2 uxtb r3, r3
6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11944 .loc 1 6194 11 view .LVU4247
ARM GAS /tmp/ccJ8PJrU.s page 413
11945 001e 222B cmp r3, #34
11946 0020 34D0 beq .L769
11947 .LVL871:
11948 .L758:
6202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11949 .loc 1 6202 3 is_stmt 1 view .LVU4248
6205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11950 .loc 1 6205 3 view .LVU4249
11951 0022 2268 ldr r2, [r4]
11952 0024 5368 ldr r3, [r2, #4]
11953 0026 23F0FF73 bic r3, r3, #33423360
11954 002a 23F48B33 bic r3, r3, #71168
11955 002e 23F4FF73 bic r3, r3, #510
11956 0032 23F00103 bic r3, r3, #1
11957 0036 5360 str r3, [r2, #4]
6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
11958 .loc 1 6208 3 view .LVU4250
6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME;
11959 .loc 1 6208 23 is_stmt 0 view .LVU4251
11960 0038 0023 movs r3, #0
11961 003a 6363 str r3, [r4, #52]
6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11962 .loc 1 6209 3 is_stmt 1 view .LVU4252
6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11963 .loc 1 6209 23 is_stmt 0 view .LVU4253
11964 003c A3F58033 sub r3, r3, #65536
11965 0040 E362 str r3, [r4, #44]
6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11966 .loc 1 6211 3 is_stmt 1 view .LVU4254
6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11967 .loc 1 6211 6 is_stmt 0 view .LVU4255
11968 0042 15F0100F tst r5, #16
11969 0046 06D0 beq .L759
6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11970 .loc 1 6214 5 is_stmt 1 view .LVU4256
11971 0048 2368 ldr r3, [r4]
11972 004a 1022 movs r2, #16
11973 004c DA61 str r2, [r3, #28]
6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11974 .loc 1 6217 5 view .LVU4257
6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11975 .loc 1 6217 9 is_stmt 0 view .LVU4258
11976 004e 636C ldr r3, [r4, #68]
6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
11977 .loc 1 6217 21 view .LVU4259
11978 0050 43F00403 orr r3, r3, #4
11979 0054 6364 str r3, [r4, #68]
11980 .L759:
6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11981 .loc 1 6221 3 is_stmt 1 view .LVU4260
6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11982 .loc 1 6221 12 is_stmt 0 view .LVU4261
11983 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
11984 005a DBB2 uxtb r3, r3
6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11985 .loc 1 6221 6 view .LVU4262
11986 005c 602B cmp r3, #96
ARM GAS /tmp/ccJ8PJrU.s page 414
11987 005e 1BD0 beq .L770
11988 .L760:
6229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11989 .loc 1 6229 3 is_stmt 1 view .LVU4263
11990 0060 2046 mov r0, r4
11991 0062 FFF7FEFF bl I2C_Flush_TXDR
11992 .LVL872:
6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11993 .loc 1 6232 3 view .LVU4264
6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
11994 .loc 1 6232 12 is_stmt 0 view .LVU4265
11995 0066 626C ldr r2, [r4, #68]
11996 .LVL873:
6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11997 .loc 1 6235 3 is_stmt 1 view .LVU4266
6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
11998 .loc 1 6235 12 is_stmt 0 view .LVU4267
11999 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12000 006c DBB2 uxtb r3, r3
6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12001 .loc 1 6235 6 view .LVU4268
12002 006e 602B cmp r3, #96
12003 0070 00D0 beq .L761
6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12004 .loc 1 6235 44 discriminator 1 view .LVU4269
12005 0072 D2B1 cbz r2, .L762
12006 .L761:
6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12007 .loc 1 6238 5 is_stmt 1 view .LVU4270
6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12008 .loc 1 6238 27 is_stmt 0 view .LVU4271
12009 0074 616C ldr r1, [r4, #68]
6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12010 .loc 1 6238 5 view .LVU4272
12011 0076 2046 mov r0, r4
12012 0078 FFF7FEFF bl I2C_ITError
12013 .LVL874:
12014 .L756:
6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12015 .loc 1 6314 1 view .LVU4273
12016 007c 03B0 add sp, sp, #12
12017 .cfi_remember_state
12018 .cfi_def_cfa_offset 12
12019 @ sp needed
12020 007e 30BD pop {r4, r5, pc}
12021 .LVL875:
12022 .L768:
12023 .cfi_restore_state
6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
12024 .loc 1 6191 5 is_stmt 1 view .LVU4274
12025 0080 0121 movs r1, #1
12026 .LVL876:
6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX;
12027 .loc 1 6191 5 is_stmt 0 view .LVU4275
12028 0082 FFF7FEFF bl I2C_Disable_IRQ
12029 .LVL877:
6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 415
12030 .loc 1 6192 5 is_stmt 1 view .LVU4276
6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12031 .loc 1 6192 25 is_stmt 0 view .LVU4277
12032 0086 1123 movs r3, #17
12033 0088 2363 str r3, [r4, #48]
12034 008a CAE7 b .L758
12035 .LVL878:
12036 .L769:
6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
12037 .loc 1 6196 5 is_stmt 1 view .LVU4278
12038 008c 0221 movs r1, #2
12039 .LVL879:
6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX;
12040 .loc 1 6196 5 is_stmt 0 view .LVU4279
12041 008e FFF7FEFF bl I2C_Disable_IRQ
12042 .LVL880:
6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12043 .loc 1 6197 5 is_stmt 1 view .LVU4280
6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12044 .loc 1 6197 25 is_stmt 0 view .LVU4281
12045 0092 1223 movs r3, #18
12046 0094 2363 str r3, [r4, #48]
12047 0096 C4E7 b .L758
12048 .L770:
6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12049 .loc 1 6221 44 discriminator 1 view .LVU4282
12050 0098 15F0040F tst r5, #4
12051 009c E0D0 beq .L760
6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
12052 .loc 1 6224 5 is_stmt 1 view .LVU4283
6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
12053 .loc 1 6224 27 is_stmt 0 view .LVU4284
12054 009e 2368 ldr r3, [r4]
6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
12055 .loc 1 6224 37 view .LVU4285
12056 00a0 5B6A ldr r3, [r3, #36]
12057 00a2 DBB2 uxtb r3, r3
6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg);
12058 .loc 1 6224 12 view .LVU4286
12059 00a4 0193 str r3, [sp, #4]
6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12060 .loc 1 6225 5 is_stmt 1 view .LVU4287
12061 00a6 019B ldr r3, [sp, #4]
12062 00a8 DAE7 b .L760
12063 .LVL881:
12064 .L762:
6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12065 .loc 1 6241 8 view .LVU4288
6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12066 .loc 1 6241 16 is_stmt 0 view .LVU4289
12067 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12068 00ae DBB2 uxtb r3, r3
6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12069 .loc 1 6241 11 view .LVU4290
12070 00b0 212B cmp r3, #33
12071 00b2 17D0 beq .L771
6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
ARM GAS /tmp/ccJ8PJrU.s page 416
12072 .loc 1 6276 8 is_stmt 1 view .LVU4291
6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12073 .loc 1 6276 16 is_stmt 0 view .LVU4292
12074 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12075 00b8 DBB2 uxtb r3, r3
6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12076 .loc 1 6276 11 view .LVU4293
12077 00ba 222B cmp r3, #34
12078 00bc DED1 bne .L756
6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12079 .loc 1 6278 5 is_stmt 1 view .LVU4294
6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12080 .loc 1 6278 17 is_stmt 0 view .LVU4295
12081 00be 2023 movs r3, #32
12082 00c0 84F84130 strb r3, [r4, #65]
6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12083 .loc 1 6279 5 is_stmt 1 view .LVU4296
6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12084 .loc 1 6279 25 is_stmt 0 view .LVU4297
12085 00c4 0023 movs r3, #0
12086 00c6 2363 str r3, [r4, #48]
6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12087 .loc 1 6281 5 is_stmt 1 view .LVU4298
6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12088 .loc 1 6281 13 is_stmt 0 view .LVU4299
12089 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
12090 00cc DBB2 uxtb r3, r3
6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12091 .loc 1 6281 8 view .LVU4300
12092 00ce 402B cmp r3, #64
12093 00d0 24D0 beq .L772
6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12094 .loc 1 6297 7 is_stmt 1 view .LVU4301
6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12095 .loc 1 6297 18 is_stmt 0 view .LVU4302
12096 00d2 0023 movs r3, #0
12097 00d4 84F84230 strb r3, [r4, #66]
6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12098 .loc 1 6300 7 is_stmt 1 view .LVU4303
6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12099 .loc 1 6300 7 view .LVU4304
12100 00d8 84F84030 strb r3, [r4, #64]
6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12101 .loc 1 6300 7 view .LVU4305
6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12102 .loc 1 6306 7 view .LVU4306
12103 00dc 2046 mov r0, r4
12104 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback
12105 .LVL882:
6313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12106 .loc 1 6313 3 view .LVU4307
6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12107 .loc 1 6314 1 is_stmt 0 view .LVU4308
12108 00e2 CBE7 b .L756
12109 .LVL883:
12110 .L771:
6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
ARM GAS /tmp/ccJ8PJrU.s page 417
12111 .loc 1 6243 5 is_stmt 1 view .LVU4309
6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE;
12112 .loc 1 6243 17 is_stmt 0 view .LVU4310
12113 00e4 2023 movs r3, #32
12114 00e6 84F84130 strb r3, [r4, #65]
6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12115 .loc 1 6244 5 is_stmt 1 view .LVU4311
6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12116 .loc 1 6244 25 is_stmt 0 view .LVU4312
12117 00ea 0023 movs r3, #0
12118 00ec 2363 str r3, [r4, #48]
6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12119 .loc 1 6246 5 is_stmt 1 view .LVU4313
6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12120 .loc 1 6246 13 is_stmt 0 view .LVU4314
12121 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2
12122 00f2 DBB2 uxtb r3, r3
6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12123 .loc 1 6246 8 view .LVU4315
12124 00f4 402B cmp r3, #64
12125 00f6 08D0 beq .L773
6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12126 .loc 1 6262 7 is_stmt 1 view .LVU4316
6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12127 .loc 1 6262 18 is_stmt 0 view .LVU4317
12128 00f8 0023 movs r3, #0
12129 00fa 84F84230 strb r3, [r4, #66]
6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12130 .loc 1 6265 7 is_stmt 1 view .LVU4318
6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12131 .loc 1 6265 7 view .LVU4319
12132 00fe 84F84030 strb r3, [r4, #64]
6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12133 .loc 1 6265 7 view .LVU4320
6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12134 .loc 1 6271 7 view .LVU4321
12135 0102 2046 mov r0, r4
12136 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback
12137 .LVL884:
6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12138 .loc 1 6271 7 is_stmt 0 view .LVU4322
12139 0108 B8E7 b .L756
12140 .LVL885:
12141 .L773:
6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12142 .loc 1 6248 7 is_stmt 1 view .LVU4323
6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12143 .loc 1 6248 18 is_stmt 0 view .LVU4324
12144 010a 0023 movs r3, #0
12145 010c 84F84230 strb r3, [r4, #66]
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12146 .loc 1 6251 7 is_stmt 1 view .LVU4325
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12147 .loc 1 6251 7 view .LVU4326
12148 0110 84F84030 strb r3, [r4, #64]
6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12149 .loc 1 6251 7 view .LVU4327
ARM GAS /tmp/ccJ8PJrU.s page 418
6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12150 .loc 1 6257 7 view .LVU4328
12151 0114 2046 mov r0, r4
12152 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback
12153 .LVL886:
6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12154 .loc 1 6257 7 is_stmt 0 view .LVU4329
12155 011a AFE7 b .L756
12156 .LVL887:
12157 .L772:
6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12158 .loc 1 6283 7 is_stmt 1 view .LVU4330
6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12159 .loc 1 6283 18 is_stmt 0 view .LVU4331
12160 011c 0023 movs r3, #0
12161 011e 84F84230 strb r3, [r4, #66]
6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12162 .loc 1 6286 7 is_stmt 1 view .LVU4332
6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12163 .loc 1 6286 7 view .LVU4333
12164 0122 84F84030 strb r3, [r4, #64]
6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12165 .loc 1 6286 7 view .LVU4334
6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12166 .loc 1 6292 7 view .LVU4335
12167 0126 2046 mov r0, r4
12168 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback
12169 .LVL888:
6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */
12170 .loc 1 6292 7 is_stmt 0 view .LVU4336
12171 012c A6E7 b .L756
12172 .cfi_endproc
12173 .LFE183:
12175 .section .text.I2C_Master_ISR_IT,"ax",%progbits
12176 .align 1
12177 .syntax unified
12178 .thumb
12179 .thumb_func
12181 I2C_Master_ISR_IT:
12182 .LVL889:
12183 .LFB172:
4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
12184 .loc 1 4941 1 is_stmt 1 view -0
12185 .cfi_startproc
12186 @ args = 0, pretend = 0, frame = 0
12187 @ frame_needed = 0, uses_anonymous_args = 0
4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
12188 .loc 1 4942 3 view .LVU4338
4943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12189 .loc 1 4943 3 view .LVU4339
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12190 .loc 1 4946 3 view .LVU4340
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12191 .loc 1 4946 3 view .LVU4341
12192 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
12193 0004 012B cmp r3, #1
12194 0006 00F0CF80 beq .L790
ARM GAS /tmp/ccJ8PJrU.s page 419
4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
12195 .loc 1 4941 1 is_stmt 0 view .LVU4342
12196 000a 70B5 push {r4, r5, r6, lr}
12197 .cfi_def_cfa_offset 16
12198 .cfi_offset 4, -16
12199 .cfi_offset 5, -12
12200 .cfi_offset 6, -8
12201 .cfi_offset 14, -4
12202 000c 82B0 sub sp, sp, #8
12203 .cfi_def_cfa_offset 24
12204 000e 0446 mov r4, r0
12205 0010 0D46 mov r5, r1
12206 0012 1646 mov r6, r2
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12207 .loc 1 4946 3 is_stmt 1 discriminator 2 view .LVU4343
12208 0014 0123 movs r3, #1
12209 0016 80F84030 strb r3, [r0, #64]
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12210 .loc 1 4946 3 discriminator 2 view .LVU4344
4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12211 .loc 1 4948 3 view .LVU4345
4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12212 .loc 1 4948 6 is_stmt 0 view .LVU4346
12213 001a 11F0100F tst r1, #16
12214 001e 02D0 beq .L776
4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12215 .loc 1 4948 58 discriminator 1 view .LVU4347
12216 0020 12F0100F tst r2, #16
12217 0024 22D1 bne .L795
12218 .L776:
4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
12219 .loc 1 4962 8 is_stmt 1 view .LVU4348
4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
12220 .loc 1 4962 11 is_stmt 0 view .LVU4349
12221 0026 15F0040F tst r5, #4
12222 002a 29D0 beq .L778
4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
12223 .loc 1 4962 65 discriminator 1 view .LVU4350
12224 002c 16F0040F tst r6, #4
12225 0030 26D0 beq .L778
4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12226 .loc 1 4966 5 is_stmt 1 view .LVU4351
4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12227 .loc 1 4966 16 is_stmt 0 view .LVU4352
12228 0032 25F00405 bic r5, r5, #4
12229 .LVL890:
4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12230 .loc 1 4969 5 is_stmt 1 view .LVU4353
4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12231 .loc 1 4969 36 is_stmt 0 view .LVU4354
12232 0036 2368 ldr r3, [r4]
4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12233 .loc 1 4969 46 view .LVU4355
12234 0038 5A6A ldr r2, [r3, #36]
12235 .LVL891:
4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12236 .loc 1 4969 10 view .LVU4356
ARM GAS /tmp/ccJ8PJrU.s page 420
12237 003a 636A ldr r3, [r4, #36]
4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12238 .loc 1 4969 21 view .LVU4357
12239 003c 1A70 strb r2, [r3]
4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12240 .loc 1 4972 5 is_stmt 1 view .LVU4358
4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12241 .loc 1 4972 9 is_stmt 0 view .LVU4359
12242 003e 636A ldr r3, [r4, #36]
4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12243 .loc 1 4972 19 view .LVU4360
12244 0040 0133 adds r3, r3, #1
12245 0042 6362 str r3, [r4, #36]
4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
12246 .loc 1 4974 5 is_stmt 1 view .LVU4361
4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
12247 .loc 1 4974 9 is_stmt 0 view .LVU4362
12248 0044 238D ldrh r3, [r4, #40]
4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
12249 .loc 1 4974 19 view .LVU4363
12250 0046 013B subs r3, r3, #1
12251 0048 2385 strh r3, [r4, #40] @ movhi
4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12252 .loc 1 4975 5 is_stmt 1 view .LVU4364
4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12253 .loc 1 4975 9 is_stmt 0 view .LVU4365
12254 004a 638D ldrh r3, [r4, #42]
12255 004c 9BB2 uxth r3, r3
4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12256 .loc 1 4975 20 view .LVU4366
12257 004e 013B subs r3, r3, #1
12258 0050 9BB2 uxth r3, r3
12259 0052 6385 strh r3, [r4, #42] @ movhi
12260 .LVL892:
12261 .L777:
5075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12262 .loc 1 5075 3 is_stmt 1 view .LVU4367
5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12263 .loc 1 5077 3 view .LVU4368
5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12264 .loc 1 5077 6 is_stmt 0 view .LVU4369
12265 0054 15F0200F tst r5, #32
12266 0058 03D0 beq .L789
5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12267 .loc 1 5077 61 discriminator 1 view .LVU4370
12268 005a 16F0200F tst r6, #32
12269 005e 40F09E80 bne .L796
12270 .L789:
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12271 .loc 1 5085 3 is_stmt 1 view .LVU4371
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12272 .loc 1 5085 3 view .LVU4372
12273 0062 0020 movs r0, #0
12274 0064 84F84000 strb r0, [r4, #64]
5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12275 .loc 1 5085 3 view .LVU4373
5087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 421
12276 .loc 1 5087 3 view .LVU4374
5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12277 .loc 1 5088 1 is_stmt 0 view .LVU4375
12278 0068 02B0 add sp, sp, #8
12279 .cfi_remember_state
12280 .cfi_def_cfa_offset 16
12281 @ sp needed
12282 006a 70BD pop {r4, r5, r6, pc}
12283 .LVL893:
12284 .L795:
12285 .cfi_restore_state
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12286 .loc 1 4952 5 is_stmt 1 view .LVU4376
12287 006c 0368 ldr r3, [r0]
12288 006e 1022 movs r2, #16
12289 .LVL894:
4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12290 .loc 1 4952 5 is_stmt 0 view .LVU4377
12291 0070 DA61 str r2, [r3, #28]
4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12292 .loc 1 4957 5 is_stmt 1 view .LVU4378
4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12293 .loc 1 4957 9 is_stmt 0 view .LVU4379
12294 0072 436C ldr r3, [r0, #68]
4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12295 .loc 1 4957 21 view .LVU4380
12296 0074 43F00403 orr r3, r3, #4
12297 0078 4364 str r3, [r0, #68]
4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12298 .loc 1 4960 5 is_stmt 1 view .LVU4381
12299 007a FFF7FEFF bl I2C_Flush_TXDR
12300 .LVL895:
4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12301 .loc 1 4960 5 is_stmt 0 view .LVU4382
12302 007e E9E7 b .L777
12303 .LVL896:
12304 .L778:
4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
12305 .loc 1 4977 8 is_stmt 1 view .LVU4383
12306 0080 C5F38013 ubfx r3, r5, #6, #1
4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
12307 .loc 1 4977 11 is_stmt 0 view .LVU4384
12308 0084 15F0400F tst r5, #64
12309 0088 19D1 bne .L779
4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \
12310 .loc 1 4977 63 discriminator 1 view .LVU4385
12311 008a 15F0020F tst r5, #2
12312 008e 16D0 beq .L779
4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)))
12313 .loc 1 4978 66 view .LVU4386
12314 0090 16F0020F tst r6, #2
12315 0094 13D0 beq .L779
4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12316 .loc 1 4982 5 is_stmt 1 view .LVU4387
4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12317 .loc 1 4982 13 is_stmt 0 view .LVU4388
12318 0096 638D ldrh r3, [r4, #42]
ARM GAS /tmp/ccJ8PJrU.s page 422
12319 0098 9BB2 uxth r3, r3
4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12320 .loc 1 4982 8 view .LVU4389
12321 009a 002B cmp r3, #0
12322 009c DAD0 beq .L777
4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12323 .loc 1 4985 7 is_stmt 1 view .LVU4390
4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12324 .loc 1 4985 35 is_stmt 0 view .LVU4391
12325 009e 626A ldr r2, [r4, #36]
12326 .LVL897:
4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12327 .loc 1 4985 11 view .LVU4392
12328 00a0 2368 ldr r3, [r4]
4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12329 .loc 1 4985 30 view .LVU4393
12330 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2
4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12331 .loc 1 4985 28 view .LVU4394
12332 00a4 9A62 str r2, [r3, #40]
4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12333 .loc 1 4988 7 is_stmt 1 view .LVU4395
4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12334 .loc 1 4988 11 is_stmt 0 view .LVU4396
12335 00a6 636A ldr r3, [r4, #36]
4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12336 .loc 1 4988 21 view .LVU4397
12337 00a8 0133 adds r3, r3, #1
12338 00aa 6362 str r3, [r4, #36]
4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
12339 .loc 1 4990 7 is_stmt 1 view .LVU4398
4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
12340 .loc 1 4990 11 is_stmt 0 view .LVU4399
12341 00ac 238D ldrh r3, [r4, #40]
4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
12342 .loc 1 4990 21 view .LVU4400
12343 00ae 013B subs r3, r3, #1
12344 00b0 2385 strh r3, [r4, #40] @ movhi
4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12345 .loc 1 4991 7 is_stmt 1 view .LVU4401
4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12346 .loc 1 4991 11 is_stmt 0 view .LVU4402
12347 00b2 638D ldrh r3, [r4, #42]
12348 00b4 9BB2 uxth r3, r3
4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12349 .loc 1 4991 22 view .LVU4403
12350 00b6 013B subs r3, r3, #1
12351 00b8 9BB2 uxth r3, r3
12352 00ba 6385 strh r3, [r4, #42] @ movhi
12353 00bc CAE7 b .L777
12354 .LVL898:
12355 .L779:
4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12356 .loc 1 4994 8 is_stmt 1 view .LVU4404
4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12357 .loc 1 4994 11 is_stmt 0 view .LVU4405
12358 00be 15F0800F tst r5, #128
ARM GAS /tmp/ccJ8PJrU.s page 423
12359 00c2 4AD0 beq .L780
4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12360 .loc 1 4994 64 discriminator 1 view .LVU4406
12361 00c4 16F0400F tst r6, #64
12362 00c8 47D0 beq .L780
4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12363 .loc 1 4997 5 is_stmt 1 view .LVU4407
4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12364 .loc 1 4997 14 is_stmt 0 view .LVU4408
12365 00ca 638D ldrh r3, [r4, #42]
12366 00cc 9BB2 uxth r3, r3
4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12367 .loc 1 4997 8 view .LVU4409
12368 00ce 002B cmp r3, #0
12369 00d0 35D0 beq .L781
4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12370 .loc 1 4997 41 discriminator 1 view .LVU4410
12371 00d2 238D ldrh r3, [r4, #40]
4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12372 .loc 1 4997 33 discriminator 1 view .LVU4411
12373 00d4 002B cmp r3, #0
12374 00d6 32D1 bne .L781
4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12375 .loc 1 4999 7 is_stmt 1 view .LVU4412
4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12376 .loc 1 4999 35 is_stmt 0 view .LVU4413
12377 00d8 2268 ldr r2, [r4]
12378 .LVL899:
4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12379 .loc 1 4999 45 view .LVU4414
12380 00da 5168 ldr r1, [r2, #4]
12381 .LVL900:
4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12382 .loc 1 4999 18 view .LVU4415
12383 00dc C1F30901 ubfx r1, r1, #0, #10
12384 .LVL901:
5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12385 .loc 1 5001 7 is_stmt 1 view .LVU4416
5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12386 .loc 1 5001 15 is_stmt 0 view .LVU4417
12387 00e0 638D ldrh r3, [r4, #42]
12388 00e2 9BB2 uxth r3, r3
5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12389 .loc 1 5001 10 view .LVU4418
12390 00e4 FF2B cmp r3, #255
12391 00e6 12D9 bls .L782
5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12392 .loc 1 5004 9 is_stmt 1 view .LVU4419
5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12393 .loc 1 5004 13 is_stmt 0 view .LVU4420
12394 00e8 9369 ldr r3, [r2, #24]
5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12395 .loc 1 5004 12 view .LVU4421
12396 00ea 13F4803F tst r3, #65536
12397 00ee 0BD0 beq .L783
5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12398 .loc 1 5006 11 is_stmt 1 view .LVU4422
ARM GAS /tmp/ccJ8PJrU.s page 424
5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12399 .loc 1 5006 26 is_stmt 0 view .LVU4423
12400 00f0 0123 movs r3, #1
12401 00f2 2385 strh r3, [r4, #40] @ movhi
12402 .L784:
5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12403 .loc 1 5012 9 is_stmt 1 view .LVU4424
12404 00f4 0023 movs r3, #0
12405 00f6 0093 str r3, [sp]
12406 00f8 4FF08073 mov r3, #16777216
12407 00fc 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
12408 0100 2046 mov r0, r4
12409 .LVL902:
5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12410 .loc 1 5012 9 is_stmt 0 view .LVU4425
12411 0102 FFF7FEFF bl I2C_TransferConfig
12412 .LVL903:
5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12413 .loc 1 5012 9 view .LVU4426
12414 0106 A5E7 b .L777
12415 .LVL904:
12416 .L783:
5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12417 .loc 1 5010 11 is_stmt 1 view .LVU4427
5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12418 .loc 1 5010 26 is_stmt 0 view .LVU4428
12419 0108 FF23 movs r3, #255
12420 010a 2385 strh r3, [r4, #40] @ movhi
12421 010c F2E7 b .L784
12422 .L782:
5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12423 .loc 1 5016 9 is_stmt 1 view .LVU4429
5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12424 .loc 1 5016 30 is_stmt 0 view .LVU4430
12425 010e 628D ldrh r2, [r4, #42]
12426 0110 92B2 uxth r2, r2
5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
12427 .loc 1 5016 24 view .LVU4431
12428 0112 2285 strh r2, [r4, #40] @ movhi
5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12429 .loc 1 5017 9 is_stmt 1 view .LVU4432
5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12430 .loc 1 5017 17 is_stmt 0 view .LVU4433
12431 0114 E36A ldr r3, [r4, #44]
5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12432 .loc 1 5017 12 view .LVU4434
12433 0116 13F5803F cmn r3, #65536
12434 011a 07D0 beq .L785
5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12435 .loc 1 5019 11 is_stmt 1 view .LVU4435
5020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12436 .loc 1 5020 34 is_stmt 0 view .LVU4436
12437 011c E36A ldr r3, [r4, #44]
5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12438 .loc 1 5019 11 view .LVU4437
12439 011e 0020 movs r0, #0
12440 .LVL905:
ARM GAS /tmp/ccJ8PJrU.s page 425
5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12441 .loc 1 5019 11 view .LVU4438
12442 0120 0090 str r0, [sp]
12443 0122 D2B2 uxtb r2, r2
12444 0124 2046 mov r0, r4
12445 0126 FFF7FEFF bl I2C_TransferConfig
12446 .LVL906:
5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP);
12447 .loc 1 5019 11 view .LVU4439
12448 012a 93E7 b .L777
12449 .LVL907:
12450 .L785:
5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12451 .loc 1 5024 11 is_stmt 1 view .LVU4440
12452 012c 0023 movs r3, #0
12453 012e 0093 str r3, [sp]
12454 0130 4FF00073 mov r3, #33554432
12455 0134 D2B2 uxtb r2, r2
12456 0136 2046 mov r0, r4
12457 .LVL908:
5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12458 .loc 1 5024 11 is_stmt 0 view .LVU4441
12459 0138 FFF7FEFF bl I2C_TransferConfig
12460 .LVL909:
5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12461 .loc 1 5024 11 view .LVU4442
12462 013c 8AE7 b .L777
12463 .LVL910:
12464 .L781:
5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12465 .loc 1 5032 7 is_stmt 1 view .LVU4443
5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12466 .loc 1 5032 11 is_stmt 0 view .LVU4444
12467 013e 2368 ldr r3, [r4]
12468 0140 5B68 ldr r3, [r3, #4]
5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12469 .loc 1 5032 10 view .LVU4445
12470 0142 13F0007F tst r3, #33554432
12471 0146 03D1 bne .L786
5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12472 .loc 1 5035 9 is_stmt 1 view .LVU4446
12473 0148 2046 mov r0, r4
12474 .LVL911:
5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12475 .loc 1 5035 9 is_stmt 0 view .LVU4447
12476 014a FFF7FEFF bl I2C_ITMasterSeqCplt
12477 .LVL912:
5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12478 .loc 1 5035 9 view .LVU4448
12479 014e 81E7 b .L777
12480 .LVL913:
12481 .L786:
5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12482 .loc 1 5041 9 is_stmt 1 view .LVU4449
12483 0150 4021 movs r1, #64
12484 .LVL914:
5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 426
12485 .loc 1 5041 9 is_stmt 0 view .LVU4450
12486 0152 2046 mov r0, r4
12487 .LVL915:
5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12488 .loc 1 5041 9 view .LVU4451
12489 0154 FFF7FEFF bl I2C_ITError
12490 .LVL916:
5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12491 .loc 1 5041 9 view .LVU4452
12492 0158 7CE7 b .L777
12493 .LVL917:
12494 .L780:
5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12495 .loc 1 5045 8 is_stmt 1 view .LVU4453
5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12496 .loc 1 5045 11 is_stmt 0 view .LVU4454
12497 015a 002B cmp r3, #0
12498 015c 3FF47AAF beq .L777
5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12499 .loc 1 5045 63 discriminator 1 view .LVU4455
12500 0160 16F0400F tst r6, #64
12501 0164 3FF476AF beq .L777
5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12502 .loc 1 5048 5 is_stmt 1 view .LVU4456
5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12503 .loc 1 5048 13 is_stmt 0 view .LVU4457
12504 0168 638D ldrh r3, [r4, #42]
12505 016a 9BB2 uxth r3, r3
5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12506 .loc 1 5048 8 view .LVU4458
12507 016c 93B9 cbnz r3, .L787
5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12508 .loc 1 5050 7 is_stmt 1 view .LVU4459
5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12509 .loc 1 5050 11 is_stmt 0 view .LVU4460
12510 016e 2368 ldr r3, [r4]
12511 0170 5A68 ldr r2, [r3, #4]
12512 .LVL918:
5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12513 .loc 1 5050 10 view .LVU4461
12514 0172 12F0007F tst r2, #33554432
12515 0176 7FF46DAF bne .L777
5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12516 .loc 1 5053 9 is_stmt 1 view .LVU4462
5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12517 .loc 1 5053 17 is_stmt 0 view .LVU4463
12518 017a E26A ldr r2, [r4, #44]
5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12519 .loc 1 5053 12 view .LVU4464
12520 017c 12F5803F cmn r2, #65536
12521 0180 04D1 bne .L788
5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12522 .loc 1 5056 11 is_stmt 1 view .LVU4465
5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12523 .loc 1 5056 25 is_stmt 0 view .LVU4466
12524 0182 5A68 ldr r2, [r3, #4]
5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 427
12525 .loc 1 5056 31 view .LVU4467
12526 0184 42F48042 orr r2, r2, #16384
12527 0188 5A60 str r2, [r3, #4]
12528 018a 63E7 b .L777
12529 .L788:
5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12530 .loc 1 5061 11 is_stmt 1 view .LVU4468
12531 018c 2046 mov r0, r4
12532 .LVL919:
5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12533 .loc 1 5061 11 is_stmt 0 view .LVU4469
12534 018e FFF7FEFF bl I2C_ITMasterSeqCplt
12535 .LVL920:
5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12536 .loc 1 5061 11 view .LVU4470
12537 0192 5FE7 b .L777
12538 .LVL921:
12539 .L787:
5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12540 .loc 1 5069 7 is_stmt 1 view .LVU4471
12541 0194 4021 movs r1, #64
12542 .LVL922:
5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12543 .loc 1 5069 7 is_stmt 0 view .LVU4472
12544 0196 2046 mov r0, r4
12545 .LVL923:
5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12546 .loc 1 5069 7 view .LVU4473
12547 0198 FFF7FEFF bl I2C_ITError
12548 .LVL924:
5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12549 .loc 1 5069 7 view .LVU4474
12550 019c 5AE7 b .L777
12551 .LVL925:
12552 .L796:
5081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12553 .loc 1 5081 5 is_stmt 1 view .LVU4475
12554 019e 2946 mov r1, r5
12555 01a0 2046 mov r0, r4
12556 01a2 FFF7FEFF bl I2C_ITMasterCplt
12557 .LVL926:
12558 01a6 5CE7 b .L789
12559 .LVL927:
12560 .L790:
12561 .cfi_def_cfa_offset 0
12562 .cfi_restore 4
12563 .cfi_restore 5
12564 .cfi_restore 6
12565 .cfi_restore 14
4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12566 .loc 1 4946 3 is_stmt 0 discriminator 1 view .LVU4476
12567 01a8 0220 movs r0, #2
12568 .LVL928:
5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12569 .loc 1 5088 1 view .LVU4477
12570 01aa 7047 bx lr
12571 .cfi_endproc
ARM GAS /tmp/ccJ8PJrU.s page 428
12572 .LFE172:
12574 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits
12575 .align 1
12576 .syntax unified
12577 .thumb
12578 .thumb_func
12580 I2C_Mem_ISR_DMA:
12581 .LVL929:
12582 .LFB176:
5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
12583 .loc 1 5547 1 is_stmt 1 view -0
12584 .cfi_startproc
12585 @ args = 0, pretend = 0, frame = 0
12586 @ frame_needed = 0, uses_anonymous_args = 0
5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12587 .loc 1 5548 3 view .LVU4479
5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12588 .loc 1 5551 3 view .LVU4480
5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12589 .loc 1 5551 3 view .LVU4481
12590 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
12591 0004 012B cmp r3, #1
12592 0006 00F0DC80 beq .L816
5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
12593 .loc 1 5547 1 is_stmt 0 view .LVU4482
12594 000a 10B5 push {r4, lr}
12595 .cfi_def_cfa_offset 8
12596 .cfi_offset 4, -8
12597 .cfi_offset 14, -4
12598 000c 82B0 sub sp, sp, #8
12599 .cfi_def_cfa_offset 16
12600 000e 0446 mov r4, r0
5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12601 .loc 1 5551 3 is_stmt 1 discriminator 2 view .LVU4483
12602 0010 0123 movs r3, #1
12603 0012 80F84030 strb r3, [r0, #64]
5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12604 .loc 1 5551 3 discriminator 2 view .LVU4484
5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12605 .loc 1 5553 3 view .LVU4485
5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12606 .loc 1 5553 6 is_stmt 0 view .LVU4486
12607 0016 11F0100F tst r1, #16
12608 001a 02D0 beq .L799
5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
12609 .loc 1 5553 55 discriminator 1 view .LVU4487
12610 001c 12F0100F tst r2, #16
12611 0020 10D1 bne .L822
12612 .L799:
5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12613 .loc 1 5570 8 is_stmt 1 view .LVU4488
5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12614 .loc 1 5570 11 is_stmt 0 view .LVU4489
12615 0022 11F0020F tst r1, #2
12616 0026 1BD0 beq .L801
5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
12617 .loc 1 5570 62 discriminator 1 view .LVU4490
ARM GAS /tmp/ccJ8PJrU.s page 429
12618 0028 12F0020F tst r2, #2
12619 002c 18D0 beq .L801
5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12620 .loc 1 5574 5 is_stmt 1 view .LVU4491
5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12621 .loc 1 5574 9 is_stmt 0 view .LVU4492
12622 002e 2368 ldr r3, [r4]
5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12623 .loc 1 5574 32 view .LVU4493
12624 0030 226D ldr r2, [r4, #80]
12625 .LVL930:
5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12626 .loc 1 5574 26 view .LVU4494
12627 0032 9A62 str r2, [r3, #40]
5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12628 .loc 1 5577 5 is_stmt 1 view .LVU4495
5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12629 .loc 1 5577 22 is_stmt 0 view .LVU4496
12630 0034 4FF0FF33 mov r3, #-1
12631 0038 2365 str r3, [r4, #80]
12632 .LVL931:
12633 .L800:
5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12634 .loc 1 5693 3 is_stmt 1 view .LVU4497
5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12635 .loc 1 5696 3 view .LVU4498
5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12636 .loc 1 5696 3 view .LVU4499
12637 003a 0020 movs r0, #0
12638 003c 84F84000 strb r0, [r4, #64]
5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12639 .loc 1 5696 3 view .LVU4500
5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12640 .loc 1 5698 3 view .LVU4501
5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12641 .loc 1 5699 1 is_stmt 0 view .LVU4502
12642 0040 02B0 add sp, sp, #8
12643 .cfi_remember_state
12644 .cfi_def_cfa_offset 8
12645 @ sp needed
12646 0042 10BD pop {r4, pc}
12647 .LVL932:
12648 .L822:
12649 .cfi_restore_state
5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12650 .loc 1 5557 5 is_stmt 1 view .LVU4503
12651 0044 0368 ldr r3, [r0]
12652 0046 1022 movs r2, #16
12653 .LVL933:
5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12654 .loc 1 5557 5 is_stmt 0 view .LVU4504
12655 0048 DA61 str r2, [r3, #28]
5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12656 .loc 1 5560 5 is_stmt 1 view .LVU4505
5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12657 .loc 1 5560 9 is_stmt 0 view .LVU4506
12658 004a 436C ldr r3, [r0, #68]
ARM GAS /tmp/ccJ8PJrU.s page 430
5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12659 .loc 1 5560 21 view .LVU4507
12660 004c 43F00403 orr r3, r3, #4
12661 0050 4364 str r3, [r0, #68]
5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12662 .loc 1 5565 5 is_stmt 1 view .LVU4508
12663 0052 2021 movs r1, #32
12664 .LVL934:
5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12665 .loc 1 5565 5 is_stmt 0 view .LVU4509
12666 0054 FFF7FEFF bl I2C_Enable_IRQ
12667 .LVL935:
5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12668 .loc 1 5568 5 is_stmt 1 view .LVU4510
12669 0058 2046 mov r0, r4
12670 005a FFF7FEFF bl I2C_Flush_TXDR
12671 .LVL936:
12672 005e ECE7 b .L800
12673 .LVL937:
12674 .L801:
5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12675 .loc 1 5579 8 view .LVU4511
5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12676 .loc 1 5579 11 is_stmt 0 view .LVU4512
12677 0060 11F0800F tst r1, #128
12678 0064 02D0 beq .L802
5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12679 .loc 1 5579 61 discriminator 1 view .LVU4513
12680 0066 12F0400F tst r2, #64
12681 006a 0FD1 bne .L823
12682 .L802:
5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12683 .loc 1 5632 8 is_stmt 1 view .LVU4514
5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12684 .loc 1 5632 11 is_stmt 0 view .LVU4515
12685 006c 11F0400F tst r1, #64
12686 0070 02D0 beq .L809
5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
12687 .loc 1 5632 60 discriminator 1 view .LVU4516
12688 0072 12F0400F tst r2, #64
12689 0076 58D1 bne .L824
12690 .L809:
5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12691 .loc 1 5684 8 is_stmt 1 view .LVU4517
5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12692 .loc 1 5684 11 is_stmt 0 view .LVU4518
12693 0078 11F0200F tst r1, #32
12694 007c DDD0 beq .L800
5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
12695 .loc 1 5684 63 discriminator 1 view .LVU4519
12696 007e 12F0200F tst r2, #32
12697 0082 DAD0 beq .L800
5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12698 .loc 1 5688 5 is_stmt 1 view .LVU4520
12699 0084 2046 mov r0, r4
12700 .LVL938:
5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 431
12701 .loc 1 5688 5 is_stmt 0 view .LVU4521
12702 0086 FFF7FEFF bl I2C_ITMasterCplt
12703 .LVL939:
5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12704 .loc 1 5688 5 view .LVU4522
12705 008a D6E7 b .L800
12706 .LVL940:
12707 .L823:
5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12708 .loc 1 5583 5 is_stmt 1 view .LVU4523
12709 008c 0121 movs r1, #1
12710 .LVL941:
5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12711 .loc 1 5583 5 is_stmt 0 view .LVU4524
12712 008e 2046 mov r0, r4
12713 .LVL942:
5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12714 .loc 1 5583 5 view .LVU4525
12715 0090 FFF7FEFF bl I2C_Disable_IRQ
12716 .LVL943:
5586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12717 .loc 1 5586 5 is_stmt 1 view .LVU4526
12718 0094 1021 movs r1, #16
12719 0096 2046 mov r0, r4
12720 0098 FFF7FEFF bl I2C_Enable_IRQ
12721 .LVL944:
5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12722 .loc 1 5588 5 view .LVU4527
5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12723 .loc 1 5588 13 is_stmt 0 view .LVU4528
12724 009c 638D ldrh r3, [r4, #42]
12725 009e 9BB2 uxth r3, r3
5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12726 .loc 1 5588 8 view .LVU4529
12727 00a0 002B cmp r3, #0
12728 00a2 3DD0 beq .L803
5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12729 .loc 1 5591 7 is_stmt 1 view .LVU4530
5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12730 .loc 1 5591 15 is_stmt 0 view .LVU4531
12731 00a4 638D ldrh r3, [r4, #42]
12732 00a6 9BB2 uxth r3, r3
5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12733 .loc 1 5591 10 view .LVU4532
12734 00a8 FF2B cmp r3, #255
12735 00aa 25D9 bls .L804
5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12736 .loc 1 5594 9 is_stmt 1 view .LVU4533
5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12737 .loc 1 5594 13 is_stmt 0 view .LVU4534
12738 00ac 2368 ldr r3, [r4]
12739 00ae 9B69 ldr r3, [r3, #24]
5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12740 .loc 1 5594 12 view .LVU4535
12741 00b0 13F4803F tst r3, #65536
12742 00b4 1DD0 beq .L805
5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 432
12743 .loc 1 5596 11 is_stmt 1 view .LVU4536
5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12744 .loc 1 5596 26 is_stmt 0 view .LVU4537
12745 00b6 0123 movs r3, #1
12746 00b8 2385 strh r3, [r4, #40] @ movhi
12747 .L806:
5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
12748 .loc 1 5602 9 is_stmt 1 view .LVU4538
5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
12749 .loc 1 5602 48 is_stmt 0 view .LVU4539
12750 00ba E16C ldr r1, [r4, #76]
5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
12751 .loc 1 5602 9 view .LVU4540
12752 00bc 0023 movs r3, #0
12753 00be 0093 str r3, [sp]
12754 00c0 4FF08073 mov r3, #16777216
12755 00c4 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
12756 00c8 89B2 uxth r1, r1
12757 00ca 2046 mov r0, r4
12758 00cc FFF7FEFF bl I2C_TransferConfig
12759 .LVL945:
12760 .L807:
5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12761 .loc 1 5613 7 is_stmt 1 view .LVU4541
5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12762 .loc 1 5613 11 is_stmt 0 view .LVU4542
12763 00d0 638D ldrh r3, [r4, #42]
12764 00d2 9BB2 uxth r3, r3
5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12765 .loc 1 5613 30 view .LVU4543
12766 00d4 228D ldrh r2, [r4, #40]
5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12767 .loc 1 5613 23 view .LVU4544
12768 00d6 9B1A subs r3, r3, r2
12769 00d8 9BB2 uxth r3, r3
12770 00da 6385 strh r3, [r4, #42] @ movhi
5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12771 .loc 1 5616 7 is_stmt 1 view .LVU4545
5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12772 .loc 1 5616 15 is_stmt 0 view .LVU4546
12773 00dc 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12774 00e0 DBB2 uxtb r3, r3
5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12775 .loc 1 5616 10 view .LVU4547
12776 00e2 222B cmp r3, #34
12777 00e4 16D0 beq .L825
5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12778 .loc 1 5622 9 is_stmt 1 view .LVU4548
5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12779 .loc 1 5622 13 is_stmt 0 view .LVU4549
12780 00e6 2268 ldr r2, [r4]
5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12781 .loc 1 5622 23 view .LVU4550
12782 00e8 1368 ldr r3, [r2]
5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12783 .loc 1 5622 29 view .LVU4551
12784 00ea 43F48043 orr r3, r3, #16384
ARM GAS /tmp/ccJ8PJrU.s page 433
12785 00ee 1360 str r3, [r2]
12786 00f0 A3E7 b .L800
12787 .L805:
5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12788 .loc 1 5600 11 is_stmt 1 view .LVU4552
5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12789 .loc 1 5600 26 is_stmt 0 view .LVU4553
12790 00f2 FF23 movs r3, #255
12791 00f4 2385 strh r3, [r4, #40] @ movhi
12792 00f6 E0E7 b .L806
12793 .L804:
5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12794 .loc 1 5607 9 is_stmt 1 view .LVU4554
5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12795 .loc 1 5607 30 is_stmt 0 view .LVU4555
12796 00f8 628D ldrh r2, [r4, #42]
12797 00fa 92B2 uxth r2, r2
5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
12798 .loc 1 5607 24 view .LVU4556
12799 00fc 2285 strh r2, [r4, #40] @ movhi
5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12800 .loc 1 5608 9 is_stmt 1 view .LVU4557
5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12801 .loc 1 5608 48 is_stmt 0 view .LVU4558
12802 00fe E16C ldr r1, [r4, #76]
5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
12803 .loc 1 5608 9 view .LVU4559
12804 0100 0023 movs r3, #0
12805 0102 0093 str r3, [sp]
12806 0104 4FF00073 mov r3, #33554432
12807 0108 D2B2 uxtb r2, r2
12808 010a 89B2 uxth r1, r1
12809 010c 2046 mov r0, r4
12810 010e FFF7FEFF bl I2C_TransferConfig
12811 .LVL946:
12812 0112 DDE7 b .L807
12813 .L825:
5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12814 .loc 1 5618 9 is_stmt 1 view .LVU4560
5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12815 .loc 1 5618 13 is_stmt 0 view .LVU4561
12816 0114 2268 ldr r2, [r4]
5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12817 .loc 1 5618 23 view .LVU4562
12818 0116 1368 ldr r3, [r2]
5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12819 .loc 1 5618 29 view .LVU4563
12820 0118 43F40043 orr r3, r3, #32768
12821 011c 1360 str r3, [r2]
12822 011e 8CE7 b .L800
12823 .L803:
5629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12824 .loc 1 5629 7 is_stmt 1 view .LVU4564
12825 0120 4021 movs r1, #64
12826 0122 2046 mov r0, r4
12827 0124 FFF7FEFF bl I2C_ITError
12828 .LVL947:
ARM GAS /tmp/ccJ8PJrU.s page 434
12829 0128 87E7 b .L800
12830 .LVL948:
12831 .L824:
5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12832 .loc 1 5636 5 view .LVU4565
12833 012a 0121 movs r1, #1
12834 .LVL949:
5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12835 .loc 1 5636 5 is_stmt 0 view .LVU4566
12836 012c 2046 mov r0, r4
12837 .LVL950:
5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12838 .loc 1 5636 5 view .LVU4567
12839 012e FFF7FEFF bl I2C_Disable_IRQ
12840 .LVL951:
5639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12841 .loc 1 5639 5 is_stmt 1 view .LVU4568
12842 0132 1021 movs r1, #16
12843 0134 2046 mov r0, r4
12844 0136 FFF7FEFF bl I2C_Enable_IRQ
12845 .LVL952:
5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12846 .loc 1 5641 5 view .LVU4569
5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12847 .loc 1 5641 13 is_stmt 0 view .LVU4570
12848 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12849 013e DBB2 uxtb r3, r3
5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12850 .loc 1 5641 8 view .LVU4571
12851 0140 222B cmp r3, #34
12852 0142 26D0 beq .L817
5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12853 .loc 1 5548 12 view .LVU4572
12854 0144 2048 ldr r0, .L827
12855 .L810:
12856 .LVL953:
5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12857 .loc 1 5646 5 is_stmt 1 view .LVU4573
5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12858 .loc 1 5646 13 is_stmt 0 view .LVU4574
12859 0146 638D ldrh r3, [r4, #42]
12860 0148 9BB2 uxth r3, r3
5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12861 .loc 1 5646 8 view .LVU4575
12862 014a FF2B cmp r3, #255
12863 014c 26D9 bls .L811
5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12864 .loc 1 5649 7 is_stmt 1 view .LVU4576
5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12865 .loc 1 5649 11 is_stmt 0 view .LVU4577
12866 014e 2368 ldr r3, [r4]
12867 0150 9B69 ldr r3, [r3, #24]
5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12868 .loc 1 5649 10 view .LVU4578
12869 0152 13F4803F tst r3, #65536
12870 0156 1ED0 beq .L812
5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 435
12871 .loc 1 5651 9 is_stmt 1 view .LVU4579
5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12872 .loc 1 5651 24 is_stmt 0 view .LVU4580
12873 0158 0123 movs r3, #1
12874 015a 2385 strh r3, [r4, #40] @ movhi
12875 .L813:
5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
12876 .loc 1 5659 7 is_stmt 1 view .LVU4581
5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
12877 .loc 1 5659 46 is_stmt 0 view .LVU4582
12878 015c E16C ldr r1, [r4, #76]
5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
12879 .loc 1 5659 7 view .LVU4583
12880 015e 0090 str r0, [sp]
12881 0160 4FF08073 mov r3, #16777216
12882 0164 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
12883 0168 89B2 uxth r1, r1
12884 016a 2046 mov r0, r4
12885 .LVL954:
5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
12886 .loc 1 5659 7 view .LVU4584
12887 016c FFF7FEFF bl I2C_TransferConfig
12888 .LVL955:
12889 .L814:
5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12890 .loc 1 5672 5 is_stmt 1 view .LVU4585
5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12891 .loc 1 5672 9 is_stmt 0 view .LVU4586
12892 0170 638D ldrh r3, [r4, #42]
12893 0172 9BB2 uxth r3, r3
5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12894 .loc 1 5672 28 view .LVU4587
12895 0174 228D ldrh r2, [r4, #40]
5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12896 .loc 1 5672 21 view .LVU4588
12897 0176 9B1A subs r3, r3, r2
12898 0178 9BB2 uxth r3, r3
12899 017a 6385 strh r3, [r4, #42] @ movhi
5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12900 .loc 1 5675 5 is_stmt 1 view .LVU4589
5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12901 .loc 1 5675 13 is_stmt 0 view .LVU4590
12902 017c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
12903 0180 DBB2 uxtb r3, r3
5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
12904 .loc 1 5675 8 view .LVU4591
12905 0182 222B cmp r3, #34
12906 0184 17D0 beq .L826
5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12907 .loc 1 5681 7 is_stmt 1 view .LVU4592
5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12908 .loc 1 5681 11 is_stmt 0 view .LVU4593
12909 0186 2268 ldr r2, [r4]
5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12910 .loc 1 5681 21 view .LVU4594
12911 0188 1368 ldr r3, [r2]
5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 436
12912 .loc 1 5681 27 view .LVU4595
12913 018a 43F48043 orr r3, r3, #16384
12914 018e 1360 str r3, [r2]
12915 0190 53E7 b .L800
12916 .LVL956:
12917 .L817:
5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12918 .loc 1 5643 17 view .LVU4596
12919 0192 0E48 ldr r0, .L827+4
12920 0194 D7E7 b .L810
12921 .LVL957:
12922 .L812:
5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12923 .loc 1 5655 9 is_stmt 1 view .LVU4597
5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12924 .loc 1 5655 24 is_stmt 0 view .LVU4598
12925 0196 FF23 movs r3, #255
12926 0198 2385 strh r3, [r4, #40] @ movhi
12927 019a DFE7 b .L813
12928 .L811:
5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12929 .loc 1 5664 7 is_stmt 1 view .LVU4599
5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12930 .loc 1 5664 28 is_stmt 0 view .LVU4600
12931 019c 628D ldrh r2, [r4, #42]
12932 019e 92B2 uxth r2, r2
5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12933 .loc 1 5664 22 view .LVU4601
12934 01a0 2285 strh r2, [r4, #40] @ movhi
5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
12935 .loc 1 5667 7 is_stmt 1 view .LVU4602
5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
12936 .loc 1 5667 46 is_stmt 0 view .LVU4603
12937 01a2 E16C ldr r1, [r4, #76]
5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
12938 .loc 1 5667 7 view .LVU4604
12939 01a4 0090 str r0, [sp]
12940 01a6 4FF00073 mov r3, #33554432
12941 01aa D2B2 uxtb r2, r2
12942 01ac 89B2 uxth r1, r1
12943 01ae 2046 mov r0, r4
12944 .LVL958:
5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
12945 .loc 1 5667 7 view .LVU4605
12946 01b0 FFF7FEFF bl I2C_TransferConfig
12947 .LVL959:
5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
12948 .loc 1 5667 7 view .LVU4606
12949 01b4 DCE7 b .L814
12950 .L826:
5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12951 .loc 1 5677 7 is_stmt 1 view .LVU4607
5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12952 .loc 1 5677 11 is_stmt 0 view .LVU4608
12953 01b6 2268 ldr r2, [r4]
5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12954 .loc 1 5677 21 view .LVU4609
ARM GAS /tmp/ccJ8PJrU.s page 437
12955 01b8 1368 ldr r3, [r2]
5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
12956 .loc 1 5677 27 view .LVU4610
12957 01ba 43F40043 orr r3, r3, #32768
12958 01be 1360 str r3, [r2]
12959 01c0 3BE7 b .L800
12960 .LVL960:
12961 .L816:
12962 .cfi_def_cfa_offset 0
12963 .cfi_restore 4
12964 .cfi_restore 14
5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12965 .loc 1 5551 3 discriminator 1 view .LVU4611
12966 01c2 0220 movs r0, #2
12967 .LVL961:
5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
12968 .loc 1 5699 1 view .LVU4612
12969 01c4 7047 bx lr
12970 .L828:
12971 01c6 00BF .align 2
12972 .L827:
12973 01c8 00200080 .word -2147475456
12974 01cc 00240080 .word -2147474432
12975 .cfi_endproc
12976 .LFE176:
12978 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits
12979 .align 1
12980 .syntax unified
12981 .thumb
12982 .thumb_func
12984 I2C_Slave_ISR_DMA:
12985 .LVL962:
12986 .LFB177:
5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
12987 .loc 1 5711 1 is_stmt 1 view -0
12988 .cfi_startproc
12989 @ args = 0, pretend = 0, frame = 0
12990 @ frame_needed = 0, uses_anonymous_args = 0
5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions;
12991 .loc 1 5711 1 is_stmt 0 view .LVU4614
12992 0000 70B5 push {r4, r5, r6, lr}
12993 .cfi_def_cfa_offset 16
12994 .cfi_offset 4, -16
12995 .cfi_offset 5, -12
12996 .cfi_offset 6, -8
12997 .cfi_offset 14, -4
12998 0002 0446 mov r4, r0
5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
12999 .loc 1 5712 3 is_stmt 1 view .LVU4615
5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U;
13000 .loc 1 5712 12 is_stmt 0 view .LVU4616
13001 0004 C06A ldr r0, [r0, #44]
13002 .LVL963:
5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
13003 .loc 1 5713 3 is_stmt 1 view .LVU4617
5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13004 .loc 1 5714 3 view .LVU4618
ARM GAS /tmp/ccJ8PJrU.s page 438
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13005 .loc 1 5717 3 view .LVU4619
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13006 .loc 1 5717 3 view .LVU4620
13007 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2
13008 000a 012B cmp r3, #1
13009 000c 00F08780 beq .L847
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13010 .loc 1 5717 3 discriminator 2 view .LVU4621
13011 0010 0123 movs r3, #1
13012 0012 84F84030 strb r3, [r4, #64]
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13013 .loc 1 5717 3 discriminator 2 view .LVU4622
5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13014 .loc 1 5720 3 view .LVU4623
5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13015 .loc 1 5720 6 is_stmt 0 view .LVU4624
13016 0016 11F0200F tst r1, #32
13017 001a 02D0 beq .L831
5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13018 .loc 1 5720 58 discriminator 1 view .LVU4625
13019 001c 12F0200F tst r2, #32
13020 0020 19D1 bne .L852
13021 .L831:
5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13022 .loc 1 5726 8 is_stmt 1 view .LVU4626
5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13023 .loc 1 5726 11 is_stmt 0 view .LVU4627
13024 0022 11F0100F tst r1, #16
13025 0026 6CD0 beq .L833
5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13026 .loc 1 5726 60 discriminator 1 view .LVU4628
13027 0028 12F0100F tst r2, #16
13028 002c 69D0 beq .L833
5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
13029 .loc 1 5733 5 is_stmt 1 view .LVU4629
13030 002e C2F38036 ubfx r6, r2, #14, #1
5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
13031 .loc 1 5733 8 is_stmt 0 view .LVU4630
13032 0032 12F4804F tst r2, #16384
13033 0036 02D1 bne .L834
5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET))
13034 .loc 1 5733 68 discriminator 1 view .LVU4631
13035 0038 12F4004F tst r2, #32768
13036 003c 5DD0 beq .L835
13037 .L834:
5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13038 .loc 1 5737 7 is_stmt 1 view .LVU4632
5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13039 .loc 1 5737 15 is_stmt 0 view .LVU4633
13040 003e E36B ldr r3, [r4, #60]
5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13041 .loc 1 5737 10 view .LVU4634
13042 0040 6BB1 cbz r3, .L848
5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13043 .loc 1 5739 9 is_stmt 1 view .LVU4635
13044 0042 C2F3C035 ubfx r5, r2, #15, #1
ARM GAS /tmp/ccJ8PJrU.s page 439
5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13045 .loc 1 5739 12 is_stmt 0 view .LVU4636
13046 0046 12F4004F tst r2, #32768
13047 004a 09D0 beq .L836
5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13048 .loc 1 5741 11 is_stmt 1 view .LVU4637
5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13049 .loc 1 5741 15 is_stmt 0 view .LVU4638
13050 004c 1B68 ldr r3, [r3]
13051 004e 5B68 ldr r3, [r3, #4]
5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13052 .loc 1 5741 14 view .LVU4639
13053 0050 2BB3 cbz r3, .L849
5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
13054 .loc 1 5713 12 view .LVU4640
13055 0052 0025 movs r5, #0
13056 0054 04E0 b .L836
13057 .L852:
5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13058 .loc 1 5724 5 is_stmt 1 view .LVU4641
13059 0056 2046 mov r0, r4
13060 .LVL964:
5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13061 .loc 1 5724 5 is_stmt 0 view .LVU4642
13062 0058 FFF7FEFF bl I2C_ITSlaveCplt
13063 .LVL965:
5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13064 .loc 1 5724 5 view .LVU4643
13065 005c 57E0 b .L832
13066 .LVL966:
13067 .L848:
5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate;
13068 .loc 1 5713 12 view .LVU4644
13069 005e 0025 movs r5, #0
13070 .L836:
13071 .LVL967:
5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13072 .loc 1 5749 7 is_stmt 1 view .LVU4645
5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13073 .loc 1 5749 15 is_stmt 0 view .LVU4646
13074 0060 A36B ldr r3, [r4, #56]
5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13075 .loc 1 5749 10 view .LVU4647
13076 0062 1BB1 cbz r3, .L837
5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13077 .loc 1 5751 9 is_stmt 1 view .LVU4648
5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13078 .loc 1 5751 12 is_stmt 0 view .LVU4649
13079 0064 16B1 cbz r6, .L837
5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13080 .loc 1 5753 11 is_stmt 1 view .LVU4650
5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13081 .loc 1 5753 15 is_stmt 0 view .LVU4651
13082 0066 1B68 ldr r3, [r3]
13083 0068 5B68 ldr r3, [r3, #4]
5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13084 .loc 1 5753 14 view .LVU4652
ARM GAS /tmp/ccJ8PJrU.s page 440
13085 006a D3B1 cbz r3, .L838
13086 .L837:
5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13087 .loc 1 5760 7 is_stmt 1 view .LVU4653
5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13088 .loc 1 5760 10 is_stmt 0 view .LVU4654
13089 006c CDB9 cbnz r5, .L838
5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13090 .loc 1 5791 9 is_stmt 1 view .LVU4655
13091 006e 2368 ldr r3, [r4]
13092 0070 1022 movs r2, #16
13093 .LVL968:
5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13094 .loc 1 5791 9 is_stmt 0 view .LVU4656
13095 0072 DA61 str r2, [r3, #28]
5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13096 .loc 1 5794 9 is_stmt 1 view .LVU4657
5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13097 .loc 1 5794 13 is_stmt 0 view .LVU4658
13098 0074 636C ldr r3, [r4, #68]
5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13099 .loc 1 5794 25 view .LVU4659
13100 0076 43F00403 orr r3, r3, #4
13101 007a 6364 str r3, [r4, #68]
5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13102 .loc 1 5797 9 is_stmt 1 view .LVU4660
5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13103 .loc 1 5797 18 is_stmt 0 view .LVU4661
13104 007c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
13105 0080 DBB2 uxtb r3, r3
13106 .LVL969:
5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13107 .loc 1 5799 9 is_stmt 1 view .LVU4662
5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13108 .loc 1 5799 12 is_stmt 0 view .LVU4663
13109 0082 10B1 cbz r0, .L842
5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13110 .loc 1 5799 45 discriminator 1 view .LVU4664
13111 0084 B0F1807F cmp r0, #16777216
13112 0088 41D1 bne .L832
13113 .L842:
5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13114 .loc 1 5801 11 is_stmt 1 view .LVU4665
13115 008a 213B subs r3, r3, #33
13116 .LVL970:
5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13117 .loc 1 5801 11 is_stmt 0 view .LVU4666
13118 008c 092B cmp r3, #9
13119 008e 2CD8 bhi .L843
13120 0090 DFE803F0 tbb [pc, r3]
13121 .L845:
13122 0094 29 .byte (.L846-.L845)/2
13123 0095 30 .byte (.L844-.L845)/2
13124 0096 2B .byte (.L843-.L845)/2
13125 0097 2B .byte (.L843-.L845)/2
13126 0098 2B .byte (.L843-.L845)/2
13127 0099 2B .byte (.L843-.L845)/2
ARM GAS /tmp/ccJ8PJrU.s page 441
13128 009a 2B .byte (.L843-.L845)/2
13129 009b 2B .byte (.L843-.L845)/2
13130 009c 29 .byte (.L846-.L845)/2
13131 009d 30 .byte (.L844-.L845)/2
13132 .LVL971:
13133 .p2align 1
13134 .L849:
5743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13135 .loc 1 5743 26 view .LVU4667
13136 009e 0125 movs r5, #1
13137 00a0 DEE7 b .L836
13138 .LVL972:
13139 .L838:
5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13140 .loc 1 5762 9 is_stmt 1 view .LVU4668
5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13141 .loc 1 5762 18 is_stmt 0 view .LVU4669
13142 00a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
13143 00a6 DBB2 uxtb r3, r3
5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13144 .loc 1 5762 12 view .LVU4670
13145 00a8 282B cmp r3, #40
13146 00aa 08D0 beq .L853
13147 .L840:
5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13148 .loc 1 5769 14 is_stmt 1 view .LVU4671
5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13149 .loc 1 5769 23 is_stmt 0 view .LVU4672
13150 00ac 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
13151 00b0 DBB2 uxtb r3, r3
5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13152 .loc 1 5769 17 view .LVU4673
13153 00b2 292B cmp r3, #41
13154 00b4 0AD0 beq .L854
13155 .L841:
5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13156 .loc 1 5784 11 is_stmt 1 view .LVU4674
13157 00b6 2368 ldr r3, [r4]
13158 00b8 1022 movs r2, #16
13159 .LVL973:
5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13160 .loc 1 5784 11 is_stmt 0 view .LVU4675
13161 00ba DA61 str r2, [r3, #28]
13162 00bc 27E0 b .L832
13163 .LVL974:
13164 .L853:
5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for
13165 .loc 1 5762 51 discriminator 1 view .LVU4676
13166 00be B0F1007F cmp r0, #33554432
13167 00c2 F3D1 bne .L840
5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13168 .loc 1 5767 11 is_stmt 1 view .LVU4677
13169 00c4 2046 mov r0, r4
13170 .LVL975:
5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13171 .loc 1 5767 11 is_stmt 0 view .LVU4678
13172 00c6 FFF7FEFF bl I2C_ITListenCplt
ARM GAS /tmp/ccJ8PJrU.s page 442
13173 .LVL976:
5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13174 .loc 1 5767 11 view .LVU4679
13175 00ca 20E0 b .L832
13176 .LVL977:
13177 .L854:
5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13178 .loc 1 5769 64 discriminator 1 view .LVU4680
13179 00cc 10F5803F cmn r0, #65536
13180 00d0 F1D0 beq .L841
5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13181 .loc 1 5772 11 is_stmt 1 view .LVU4681
13182 00d2 2368 ldr r3, [r4]
13183 00d4 1022 movs r2, #16
13184 .LVL978:
5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13185 .loc 1 5772 11 is_stmt 0 view .LVU4682
13186 00d6 DA61 str r2, [r3, #28]
5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13187 .loc 1 5775 11 is_stmt 1 view .LVU4683
13188 00d8 2046 mov r0, r4
13189 .LVL979:
5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13190 .loc 1 5775 11 is_stmt 0 view .LVU4684
13191 00da FFF7FEFF bl I2C_Flush_TXDR
13192 .LVL980:
5779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13193 .loc 1 5779 11 is_stmt 1 view .LVU4685
13194 00de 2046 mov r0, r4
13195 00e0 FFF7FEFF bl I2C_ITSlaveSeqCplt
13196 .LVL981:
13197 00e4 13E0 b .L832
13198 .LVL982:
13199 .L846:
5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13200 .loc 1 5803 13 view .LVU4686
5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13201 .loc 1 5803 33 is_stmt 0 view .LVU4687
13202 00e6 2123 movs r3, #33
13203 .LVL983:
5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13204 .loc 1 5803 33 view .LVU4688
13205 00e8 2363 str r3, [r4, #48]
13206 .L843:
5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13207 .loc 1 5815 11 is_stmt 1 view .LVU4689
5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13208 .loc 1 5815 33 is_stmt 0 view .LVU4690
13209 00ea 616C ldr r1, [r4, #68]
13210 .LVL984:
5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13211 .loc 1 5815 11 view .LVU4691
13212 00ec 2046 mov r0, r4
13213 .LVL985:
5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13214 .loc 1 5815 11 view .LVU4692
13215 00ee FFF7FEFF bl I2C_ITError
ARM GAS /tmp/ccJ8PJrU.s page 443
13216 .LVL986:
13217 00f2 0CE0 b .L832
13218 .LVL987:
13219 .L844:
5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13220 .loc 1 5807 13 is_stmt 1 view .LVU4693
5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13221 .loc 1 5807 33 is_stmt 0 view .LVU4694
13222 00f4 2223 movs r3, #34
13223 .LVL988:
5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13224 .loc 1 5807 33 view .LVU4695
13225 00f6 2363 str r3, [r4, #48]
13226 00f8 F7E7 b .L843
13227 .LVL989:
13228 .L835:
5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13229 .loc 1 5822 7 is_stmt 1 view .LVU4696
13230 00fa 2368 ldr r3, [r4]
13231 00fc 1022 movs r2, #16
13232 .LVL990:
5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13233 .loc 1 5822 7 is_stmt 0 view .LVU4697
13234 00fe DA61 str r2, [r3, #28]
13235 0100 05E0 b .L832
13236 .LVL991:
13237 .L833:
5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
13238 .loc 1 5825 8 is_stmt 1 view .LVU4698
5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
13239 .loc 1 5825 11 is_stmt 0 view .LVU4699
13240 0102 11F0080F tst r1, #8
13241 0106 02D0 beq .L832
5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET))
13242 .loc 1 5825 62 discriminator 1 view .LVU4700
13243 0108 12F0080F tst r2, #8
13244 010c 03D1 bne .L855
13245 .LVL992:
13246 .L832:
5833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13247 .loc 1 5833 3 is_stmt 1 view .LVU4701
5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13248 .loc 1 5836 3 view .LVU4702
5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13249 .loc 1 5836 3 view .LVU4703
13250 010e 0020 movs r0, #0
13251 0110 84F84000 strb r0, [r4, #64]
5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13252 .loc 1 5836 3 view .LVU4704
5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13253 .loc 1 5838 3 view .LVU4705
13254 .L830:
5839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13255 .loc 1 5839 1 is_stmt 0 view .LVU4706
13256 0114 70BD pop {r4, r5, r6, pc}
13257 .LVL993:
13258 .L855:
ARM GAS /tmp/ccJ8PJrU.s page 444
5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13259 .loc 1 5828 5 is_stmt 1 view .LVU4707
13260 0116 2046 mov r0, r4
13261 .LVL994:
5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13262 .loc 1 5828 5 is_stmt 0 view .LVU4708
13263 0118 FFF7FEFF bl I2C_ITAddrCplt
13264 .LVL995:
5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13265 .loc 1 5828 5 view .LVU4709
13266 011c F7E7 b .L832
13267 .LVL996:
13268 .L847:
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13269 .loc 1 5717 3 discriminator 1 view .LVU4710
13270 011e 0220 movs r0, #2
13271 .LVL997:
5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13272 .loc 1 5717 3 discriminator 1 view .LVU4711
13273 0120 F8E7 b .L830
13274 .cfi_endproc
13275 .LFE177:
13277 .section .text.I2C_Master_ISR_DMA,"ax",%progbits
13278 .align 1
13279 .syntax unified
13280 .thumb
13281 .thumb_func
13283 I2C_Master_ISR_DMA:
13284 .LVL998:
13285 .LFB175:
5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
13286 .loc 1 5399 1 is_stmt 1 view -0
13287 .cfi_startproc
13288 @ args = 0, pretend = 0, frame = 0
13289 @ frame_needed = 0, uses_anonymous_args = 0
5400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode;
13290 .loc 1 5400 3 view .LVU4713
5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13291 .loc 1 5401 3 view .LVU4714
5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13292 .loc 1 5404 3 view .LVU4715
5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13293 .loc 1 5404 3 view .LVU4716
13294 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
13295 0004 012B cmp r3, #1
13296 0006 00F0A380 beq .L870
5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress;
13297 .loc 1 5399 1 is_stmt 0 view .LVU4717
13298 000a 10B5 push {r4, lr}
13299 .cfi_def_cfa_offset 8
13300 .cfi_offset 4, -8
13301 .cfi_offset 14, -4
13302 000c 82B0 sub sp, sp, #8
13303 .cfi_def_cfa_offset 16
13304 000e 0446 mov r4, r0
5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13305 .loc 1 5404 3 is_stmt 1 discriminator 2 view .LVU4718
ARM GAS /tmp/ccJ8PJrU.s page 445
13306 0010 0123 movs r3, #1
13307 0012 80F84030 strb r3, [r0, #64]
5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13308 .loc 1 5404 3 discriminator 2 view .LVU4719
5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13309 .loc 1 5406 3 view .LVU4720
5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13310 .loc 1 5406 6 is_stmt 0 view .LVU4721
13311 0016 11F0100F tst r1, #16
13312 001a 02D0 beq .L858
5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13313 .loc 1 5406 55 discriminator 1 view .LVU4722
13314 001c 12F0100F tst r2, #16
13315 0020 1FD1 bne .L876
13316 .L858:
5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13317 .loc 1 5423 8 is_stmt 1 view .LVU4723
5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13318 .loc 1 5423 11 is_stmt 0 view .LVU4724
13319 0022 11F0800F tst r1, #128
13320 0026 69D0 beq .L860
5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13321 .loc 1 5423 61 discriminator 1 view .LVU4725
13322 0028 12F0400F tst r2, #64
13323 002c 66D0 beq .L860
5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13324 .loc 1 5427 5 is_stmt 1 view .LVU4726
13325 002e 2268 ldr r2, [r4]
13326 .LVL999:
5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13327 .loc 1 5427 5 is_stmt 0 view .LVU4727
13328 0030 1368 ldr r3, [r2]
13329 0032 23F04003 bic r3, r3, #64
13330 0036 1360 str r3, [r2]
5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13331 .loc 1 5429 5 is_stmt 1 view .LVU4728
5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13332 .loc 1 5429 13 is_stmt 0 view .LVU4729
13333 0038 638D ldrh r3, [r4, #42]
13334 003a 9BB2 uxth r3, r3
5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13335 .loc 1 5429 8 view .LVU4730
13336 003c 002B cmp r3, #0
13337 003e 4FD0 beq .L861
5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13338 .loc 1 5432 7 is_stmt 1 view .LVU4731
5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13339 .loc 1 5432 35 is_stmt 0 view .LVU4732
13340 0040 2268 ldr r2, [r4]
5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13341 .loc 1 5432 45 view .LVU4733
13342 0042 5168 ldr r1, [r2, #4]
13343 .LVL1000:
5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13344 .loc 1 5432 18 view .LVU4734
13345 0044 C1F30901 ubfx r1, r1, #0, #10
13346 .LVL1001:
ARM GAS /tmp/ccJ8PJrU.s page 446
5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13347 .loc 1 5435 7 is_stmt 1 view .LVU4735
5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13348 .loc 1 5435 15 is_stmt 0 view .LVU4736
13349 0048 638D ldrh r3, [r4, #42]
13350 004a 9BB2 uxth r3, r3
5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13351 .loc 1 5435 10 view .LVU4737
13352 004c FF2B cmp r3, #255
13353 004e 1FD9 bls .L862
5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13354 .loc 1 5438 9 is_stmt 1 view .LVU4738
5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13355 .loc 1 5438 13 is_stmt 0 view .LVU4739
13356 0050 9369 ldr r3, [r2, #24]
5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13357 .loc 1 5438 12 view .LVU4740
13358 0052 13F4803F tst r3, #65536
13359 0056 16D0 beq .L863
5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13360 .loc 1 5440 11 is_stmt 1 view .LVU4741
5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13361 .loc 1 5440 26 is_stmt 0 view .LVU4742
13362 0058 0123 movs r3, #1
13363 005a 2385 strh r3, [r4, #40] @ movhi
5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13364 .loc 1 5446 18 view .LVU4743
13365 005c 4FF08073 mov r3, #16777216
13366 0060 1DE0 b .L864
13367 .LVL1002:
13368 .L876:
5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13369 .loc 1 5410 5 is_stmt 1 view .LVU4744
13370 0062 0368 ldr r3, [r0]
13371 0064 1022 movs r2, #16
13372 .LVL1003:
5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13373 .loc 1 5410 5 is_stmt 0 view .LVU4745
13374 0066 DA61 str r2, [r3, #28]
5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13375 .loc 1 5413 5 is_stmt 1 view .LVU4746
5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13376 .loc 1 5413 9 is_stmt 0 view .LVU4747
13377 0068 436C ldr r3, [r0, #68]
5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13378 .loc 1 5413 21 view .LVU4748
13379 006a 43F00403 orr r3, r3, #4
13380 006e 4364 str r3, [r0, #68]
5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13381 .loc 1 5418 5 is_stmt 1 view .LVU4749
13382 0070 2021 movs r1, #32
13383 .LVL1004:
5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13384 .loc 1 5418 5 is_stmt 0 view .LVU4750
13385 0072 FFF7FEFF bl I2C_Enable_IRQ
13386 .LVL1005:
5421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 447
13387 .loc 1 5421 5 is_stmt 1 view .LVU4751
13388 0076 2046 mov r0, r4
13389 0078 FFF7FEFF bl I2C_Flush_TXDR
13390 .LVL1006:
13391 .L859:
5529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13392 .loc 1 5529 3 view .LVU4752
5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13393 .loc 1 5532 3 view .LVU4753
5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13394 .loc 1 5532 3 view .LVU4754
13395 007c 0020 movs r0, #0
13396 007e 84F84000 strb r0, [r4, #64]
5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13397 .loc 1 5532 3 view .LVU4755
5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13398 .loc 1 5534 3 view .LVU4756
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13399 .loc 1 5535 1 is_stmt 0 view .LVU4757
13400 0082 02B0 add sp, sp, #8
13401 .cfi_remember_state
13402 .cfi_def_cfa_offset 8
13403 @ sp needed
13404 0084 10BD pop {r4, pc}
13405 .LVL1007:
13406 .L863:
13407 .cfi_restore_state
5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13408 .loc 1 5444 11 is_stmt 1 view .LVU4758
5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13409 .loc 1 5444 26 is_stmt 0 view .LVU4759
13410 0086 FF23 movs r3, #255
13411 0088 2385 strh r3, [r4, #40] @ movhi
5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13412 .loc 1 5446 18 view .LVU4760
13413 008a 4FF08073 mov r3, #16777216
13414 008e 06E0 b .L864
13415 .L862:
5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
13416 .loc 1 5450 9 is_stmt 1 view .LVU4761
5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
13417 .loc 1 5450 30 is_stmt 0 view .LVU4762
13418 0090 638D ldrh r3, [r4, #42]
5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME)
13419 .loc 1 5450 24 view .LVU4763
13420 0092 2385 strh r3, [r4, #40] @ movhi
5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13421 .loc 1 5451 9 is_stmt 1 view .LVU4764
5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13422 .loc 1 5451 17 is_stmt 0 view .LVU4765
13423 0094 E36A ldr r3, [r4, #44]
5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13424 .loc 1 5451 12 view .LVU4766
13425 0096 13F5803F cmn r3, #65536
13426 009a 18D0 beq .L871
5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13427 .loc 1 5453 11 is_stmt 1 view .LVU4767
ARM GAS /tmp/ccJ8PJrU.s page 448
5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13428 .loc 1 5453 20 is_stmt 0 view .LVU4768
13429 009c E36A ldr r3, [r4, #44]
13430 .LVL1008:
13431 .L864:
5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13432 .loc 1 5462 7 is_stmt 1 view .LVU4769
13433 009e 0022 movs r2, #0
13434 00a0 0092 str r2, [sp]
13435 00a2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
13436 00a6 2046 mov r0, r4
13437 .LVL1009:
5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13438 .loc 1 5462 7 is_stmt 0 view .LVU4770
13439 00a8 FFF7FEFF bl I2C_TransferConfig
13440 .LVL1010:
5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13441 .loc 1 5465 7 is_stmt 1 view .LVU4771
5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13442 .loc 1 5465 11 is_stmt 0 view .LVU4772
13443 00ac 638D ldrh r3, [r4, #42]
13444 00ae 9BB2 uxth r3, r3
5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13445 .loc 1 5465 30 view .LVU4773
13446 00b0 228D ldrh r2, [r4, #40]
5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13447 .loc 1 5465 23 view .LVU4774
13448 00b2 9B1A subs r3, r3, r2
13449 00b4 9BB2 uxth r3, r3
13450 00b6 6385 strh r3, [r4, #42] @ movhi
5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13451 .loc 1 5468 7 is_stmt 1 view .LVU4775
5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13452 .loc 1 5468 15 is_stmt 0 view .LVU4776
13453 00b8 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
13454 00bc DBB2 uxtb r3, r3
5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13455 .loc 1 5468 10 view .LVU4777
13456 00be 222B cmp r3, #34
13457 00c0 08D0 beq .L877
5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13458 .loc 1 5474 9 is_stmt 1 view .LVU4778
5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13459 .loc 1 5474 13 is_stmt 0 view .LVU4779
13460 00c2 2268 ldr r2, [r4]
5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13461 .loc 1 5474 23 view .LVU4780
13462 00c4 1368 ldr r3, [r2]
5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13463 .loc 1 5474 29 view .LVU4781
13464 00c6 43F48043 orr r3, r3, #16384
13465 00ca 1360 str r3, [r2]
13466 00cc D6E7 b .L859
13467 .LVL1011:
13468 .L871:
5457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13469 .loc 1 5457 20 view .LVU4782
ARM GAS /tmp/ccJ8PJrU.s page 449
13470 00ce 4FF00073 mov r3, #33554432
13471 00d2 E4E7 b .L864
13472 .LVL1012:
13473 .L877:
5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13474 .loc 1 5470 9 is_stmt 1 view .LVU4783
5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13475 .loc 1 5470 13 is_stmt 0 view .LVU4784
13476 00d4 2268 ldr r2, [r4]
5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13477 .loc 1 5470 23 view .LVU4785
13478 00d6 1368 ldr r3, [r2]
5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13479 .loc 1 5470 29 view .LVU4786
13480 00d8 43F40043 orr r3, r3, #32768
13481 00dc 1360 str r3, [r2]
13482 00de CDE7 b .L859
13483 .LVL1013:
13484 .L861:
5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13485 .loc 1 5480 7 is_stmt 1 view .LVU4787
5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13486 .loc 1 5480 11 is_stmt 0 view .LVU4788
13487 00e0 2368 ldr r3, [r4]
13488 00e2 5B68 ldr r3, [r3, #4]
5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13489 .loc 1 5480 10 view .LVU4789
13490 00e4 13F0007F tst r3, #33554432
13491 00e8 03D1 bne .L866
5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13492 .loc 1 5483 9 is_stmt 1 view .LVU4790
13493 00ea 2046 mov r0, r4
13494 .LVL1014:
5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13495 .loc 1 5483 9 is_stmt 0 view .LVU4791
13496 00ec FFF7FEFF bl I2C_ITMasterSeqCplt
13497 .LVL1015:
5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13498 .loc 1 5483 9 view .LVU4792
13499 00f0 C4E7 b .L859
13500 .LVL1016:
13501 .L866:
5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13502 .loc 1 5489 9 is_stmt 1 view .LVU4793
13503 00f2 4021 movs r1, #64
13504 .LVL1017:
5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13505 .loc 1 5489 9 is_stmt 0 view .LVU4794
13506 00f4 2046 mov r0, r4
13507 .LVL1018:
5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13508 .loc 1 5489 9 view .LVU4795
13509 00f6 FFF7FEFF bl I2C_ITError
13510 .LVL1019:
13511 00fa BFE7 b .L859
13512 .LVL1020:
13513 .L860:
ARM GAS /tmp/ccJ8PJrU.s page 450
5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13514 .loc 1 5493 8 is_stmt 1 view .LVU4796
5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13515 .loc 1 5493 11 is_stmt 0 view .LVU4797
13516 00fc 11F0400F tst r1, #64
13517 0100 1CD0 beq .L867
5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
13518 .loc 1 5493 60 discriminator 1 view .LVU4798
13519 0102 12F0400F tst r2, #64
13520 0106 19D0 beq .L867
5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13521 .loc 1 5496 5 is_stmt 1 view .LVU4799
5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13522 .loc 1 5496 13 is_stmt 0 view .LVU4800
13523 0108 638D ldrh r3, [r4, #42]
13524 010a 9BB2 uxth r3, r3
5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13525 .loc 1 5496 8 view .LVU4801
13526 010c 8BB9 cbnz r3, .L868
5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13527 .loc 1 5498 7 is_stmt 1 view .LVU4802
5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13528 .loc 1 5498 11 is_stmt 0 view .LVU4803
13529 010e 2368 ldr r3, [r4]
13530 0110 5A68 ldr r2, [r3, #4]
13531 .LVL1021:
5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13532 .loc 1 5498 10 view .LVU4804
13533 0112 12F0007F tst r2, #33554432
13534 0116 B1D1 bne .L859
5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13535 .loc 1 5501 9 is_stmt 1 view .LVU4805
5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13536 .loc 1 5501 17 is_stmt 0 view .LVU4806
13537 0118 E26A ldr r2, [r4, #44]
5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13538 .loc 1 5501 12 view .LVU4807
13539 011a 12F5803F cmn r2, #65536
13540 011e 04D1 bne .L869
5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13541 .loc 1 5504 11 is_stmt 1 view .LVU4808
5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13542 .loc 1 5504 25 is_stmt 0 view .LVU4809
13543 0120 5A68 ldr r2, [r3, #4]
5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13544 .loc 1 5504 31 view .LVU4810
13545 0122 42F48042 orr r2, r2, #16384
13546 0126 5A60 str r2, [r3, #4]
13547 0128 A8E7 b .L859
13548 .L869:
5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13549 .loc 1 5509 11 is_stmt 1 view .LVU4811
13550 012a 2046 mov r0, r4
13551 .LVL1022:
5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13552 .loc 1 5509 11 is_stmt 0 view .LVU4812
13553 012c FFF7FEFF bl I2C_ITMasterSeqCplt
ARM GAS /tmp/ccJ8PJrU.s page 451
13554 .LVL1023:
5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13555 .loc 1 5509 11 view .LVU4813
13556 0130 A4E7 b .L859
13557 .LVL1024:
13558 .L868:
5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13559 .loc 1 5517 7 is_stmt 1 view .LVU4814
13560 0132 4021 movs r1, #64
13561 .LVL1025:
5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13562 .loc 1 5517 7 is_stmt 0 view .LVU4815
13563 0134 2046 mov r0, r4
13564 .LVL1026:
5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13565 .loc 1 5517 7 view .LVU4816
13566 0136 FFF7FEFF bl I2C_ITError
13567 .LVL1027:
5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13568 .loc 1 5517 7 view .LVU4817
13569 013a 9FE7 b .L859
13570 .LVL1028:
13571 .L867:
5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13572 .loc 1 5520 8 is_stmt 1 view .LVU4818
5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13573 .loc 1 5520 11 is_stmt 0 view .LVU4819
13574 013c 11F0200F tst r1, #32
13575 0140 9CD0 beq .L859
5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13576 .loc 1 5520 63 discriminator 1 view .LVU4820
13577 0142 12F0200F tst r2, #32
13578 0146 99D0 beq .L859
5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13579 .loc 1 5524 5 is_stmt 1 view .LVU4821
13580 0148 2046 mov r0, r4
13581 .LVL1029:
5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13582 .loc 1 5524 5 is_stmt 0 view .LVU4822
13583 014a FFF7FEFF bl I2C_ITMasterCplt
13584 .LVL1030:
5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13585 .loc 1 5524 5 view .LVU4823
13586 014e 95E7 b .L859
13587 .LVL1031:
13588 .L870:
13589 .cfi_def_cfa_offset 0
13590 .cfi_restore 4
13591 .cfi_restore 14
5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13592 .loc 1 5404 3 discriminator 1 view .LVU4824
13593 0150 0220 movs r0, #2
13594 .LVL1032:
5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13595 .loc 1 5535 1 view .LVU4825
13596 0152 7047 bx lr
13597 .cfi_endproc
ARM GAS /tmp/ccJ8PJrU.s page 452
13598 .LFE175:
13600 .section .text.I2C_DMAError,"ax",%progbits
13601 .align 1
13602 .syntax unified
13603 .thumb
13604 .thumb_func
13606 I2C_DMAError:
13607 .LVL1033:
13608 .LFB193:
6948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
13609 .loc 1 6948 1 is_stmt 1 view -0
13610 .cfi_startproc
13611 @ args = 0, pretend = 0, frame = 0
13612 @ frame_needed = 0, uses_anonymous_args = 0
6948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
13613 .loc 1 6948 1 is_stmt 0 view .LVU4827
13614 0000 08B5 push {r3, lr}
13615 .cfi_def_cfa_offset 8
13616 .cfi_offset 3, -8
13617 .cfi_offset 14, -4
6950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13618 .loc 1 6950 3 is_stmt 1 view .LVU4828
6950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13619 .loc 1 6950 22 is_stmt 0 view .LVU4829
13620 0002 406A ldr r0, [r0, #36]
13621 .LVL1034:
6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13622 .loc 1 6953 3 is_stmt 1 view .LVU4830
6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13623 .loc 1 6953 7 is_stmt 0 view .LVU4831
13624 0004 0268 ldr r2, [r0]
6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13625 .loc 1 6953 17 view .LVU4832
13626 0006 5368 ldr r3, [r2, #4]
6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13627 .loc 1 6953 23 view .LVU4833
13628 0008 43F40043 orr r3, r3, #32768
13629 000c 5360 str r3, [r2, #4]
6956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13630 .loc 1 6956 3 is_stmt 1 view .LVU4834
13631 000e 1021 movs r1, #16
13632 0010 FFF7FEFF bl I2C_ITError
13633 .LVL1035:
6957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13634 .loc 1 6957 1 is_stmt 0 view .LVU4835
13635 0014 08BD pop {r3, pc}
13636 .cfi_endproc
13637 .LFE193:
13639 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits
13640 .align 1
13641 .syntax unified
13642 .thumb
13643 .thumb_func
13645 I2C_DMAMasterTransmitCplt:
13646 .LVL1036:
13647 .LFB189:
6780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
ARM GAS /tmp/ccJ8PJrU.s page 453
13648 .loc 1 6780 1 is_stmt 1 view -0
13649 .cfi_startproc
13650 @ args = 0, pretend = 0, frame = 0
13651 @ frame_needed = 0, uses_anonymous_args = 0
6780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
13652 .loc 1 6780 1 is_stmt 0 view .LVU4837
13653 0000 10B5 push {r4, lr}
13654 .cfi_def_cfa_offset 8
13655 .cfi_offset 4, -8
13656 .cfi_offset 14, -4
6782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13657 .loc 1 6782 3 is_stmt 1 view .LVU4838
6782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13658 .loc 1 6782 22 is_stmt 0 view .LVU4839
13659 0002 446A ldr r4, [r0, #36]
13660 .LVL1037:
6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13661 .loc 1 6785 3 is_stmt 1 view .LVU4840
6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13662 .loc 1 6785 7 is_stmt 0 view .LVU4841
13663 0004 2268 ldr r2, [r4]
6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13664 .loc 1 6785 17 view .LVU4842
13665 0006 1368 ldr r3, [r2]
6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13666 .loc 1 6785 23 view .LVU4843
13667 0008 23F48043 bic r3, r3, #16384
13668 000c 1360 str r3, [r2]
6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13669 .loc 1 6788 3 is_stmt 1 view .LVU4844
6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13670 .loc 1 6788 11 is_stmt 0 view .LVU4845
13671 000e 638D ldrh r3, [r4, #42]
13672 0010 9BB2 uxth r3, r3
6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13673 .loc 1 6788 6 view .LVU4846
13674 0012 ABB1 cbz r3, .L887
6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13675 .loc 1 6797 5 is_stmt 1 view .LVU4847
6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13676 .loc 1 6797 9 is_stmt 0 view .LVU4848
13677 0014 616A ldr r1, [r4, #36]
6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13678 .loc 1 6797 27 view .LVU4849
13679 0016 238D ldrh r3, [r4, #40]
6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13680 .loc 1 6797 20 view .LVU4850
13681 0018 1944 add r1, r1, r3
13682 001a 6162 str r1, [r4, #36]
6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13683 .loc 1 6800 5 is_stmt 1 view .LVU4851
6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13684 .loc 1 6800 13 is_stmt 0 view .LVU4852
13685 001c 638D ldrh r3, [r4, #42]
13686 001e 9BB2 uxth r3, r3
6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13687 .loc 1 6800 8 view .LVU4853
ARM GAS /tmp/ccJ8PJrU.s page 454
13688 0020 FF2B cmp r3, #255
13689 0022 12D9 bls .L883
6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13690 .loc 1 6802 7 is_stmt 1 view .LVU4854
6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13691 .loc 1 6802 22 is_stmt 0 view .LVU4855
13692 0024 FF23 movs r3, #255
13693 0026 2385 strh r3, [r4, #40] @ movhi
13694 .L884:
6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13695 .loc 1 6810 5 is_stmt 1 view .LVU4856
6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13696 .loc 1 6810 81 is_stmt 0 view .LVU4857
13697 0028 2268 ldr r2, [r4]
6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13698 .loc 1 6810 9 view .LVU4858
13699 002a 238D ldrh r3, [r4, #40]
13700 002c 2832 adds r2, r2, #40
13701 002e A06B ldr r0, [r4, #56]
13702 .LVL1038:
6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13703 .loc 1 6810 9 view .LVU4859
13704 0030 FFF7FEFF bl HAL_DMA_Start_IT
13705 .LVL1039:
6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13706 .loc 1 6810 8 discriminator 1 view .LVU4860
13707 0034 60B1 cbz r0, .L885
6814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13708 .loc 1 6814 7 is_stmt 1 view .LVU4861
13709 0036 1021 movs r1, #16
13710 0038 2046 mov r0, r4
13711 003a FFF7FEFF bl I2C_ITError
13712 .LVL1040:
13713 .L880:
6822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13714 .loc 1 6822 1 is_stmt 0 view .LVU4862
13715 003e 10BD pop {r4, pc}
13716 .LVL1041:
13717 .L887:
6791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13718 .loc 1 6791 5 is_stmt 1 view .LVU4863
13719 0040 2021 movs r1, #32
13720 0042 2046 mov r0, r4
13721 .LVL1042:
6791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13722 .loc 1 6791 5 is_stmt 0 view .LVU4864
13723 0044 FFF7FEFF bl I2C_Enable_IRQ
13724 .LVL1043:
13725 0048 F9E7 b .L880
13726 .LVL1044:
13727 .L883:
6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13728 .loc 1 6806 7 is_stmt 1 view .LVU4865
6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13729 .loc 1 6806 28 is_stmt 0 view .LVU4866
13730 004a 638D ldrh r3, [r4, #42]
6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
ARM GAS /tmp/ccJ8PJrU.s page 455
13731 .loc 1 6806 22 view .LVU4867
13732 004c 2385 strh r3, [r4, #40] @ movhi
13733 004e EBE7 b .L884
13734 .LVL1045:
13735 .L885:
6819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13736 .loc 1 6819 7 is_stmt 1 view .LVU4868
13737 0050 4021 movs r1, #64
13738 0052 2046 mov r0, r4
13739 0054 FFF7FEFF bl I2C_Enable_IRQ
13740 .LVL1046:
6822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13741 .loc 1 6822 1 is_stmt 0 view .LVU4869
13742 0058 F1E7 b .L880
13743 .cfi_endproc
13744 .LFE189:
13746 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits
13747 .align 1
13748 .syntax unified
13749 .thumb
13750 .thumb_func
13752 I2C_DMAMasterReceiveCplt:
13753 .LVL1047:
13754 .LFB191:
6860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
13755 .loc 1 6860 1 is_stmt 1 view -0
13756 .cfi_startproc
13757 @ args = 0, pretend = 0, frame = 0
13758 @ frame_needed = 0, uses_anonymous_args = 0
6860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
13759 .loc 1 6860 1 is_stmt 0 view .LVU4871
13760 0000 10B5 push {r4, lr}
13761 .cfi_def_cfa_offset 8
13762 .cfi_offset 4, -8
13763 .cfi_offset 14, -4
6862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13764 .loc 1 6862 3 is_stmt 1 view .LVU4872
6862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13765 .loc 1 6862 22 is_stmt 0 view .LVU4873
13766 0002 446A ldr r4, [r0, #36]
13767 .LVL1048:
6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13768 .loc 1 6865 3 is_stmt 1 view .LVU4874
6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13769 .loc 1 6865 7 is_stmt 0 view .LVU4875
13770 0004 2268 ldr r2, [r4]
6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13771 .loc 1 6865 17 view .LVU4876
13772 0006 1368 ldr r3, [r2]
6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13773 .loc 1 6865 23 view .LVU4877
13774 0008 23F40043 bic r3, r3, #32768
13775 000c 1360 str r3, [r2]
6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13776 .loc 1 6868 3 is_stmt 1 view .LVU4878
6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13777 .loc 1 6868 11 is_stmt 0 view .LVU4879
ARM GAS /tmp/ccJ8PJrU.s page 456
13778 000e 638D ldrh r3, [r4, #42]
13779 0010 9BB2 uxth r3, r3
6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13780 .loc 1 6868 6 view .LVU4880
13781 0012 7BB1 cbz r3, .L896
6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13782 .loc 1 6877 5 is_stmt 1 view .LVU4881
6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13783 .loc 1 6877 9 is_stmt 0 view .LVU4882
13784 0014 626A ldr r2, [r4, #36]
6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13785 .loc 1 6877 27 view .LVU4883
13786 0016 238D ldrh r3, [r4, #40]
6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13787 .loc 1 6877 20 view .LVU4884
13788 0018 1A44 add r2, r2, r3
13789 001a 6262 str r2, [r4, #36]
6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13790 .loc 1 6880 5 is_stmt 1 view .LVU4885
6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13791 .loc 1 6880 13 is_stmt 0 view .LVU4886
13792 001c 638D ldrh r3, [r4, #42]
13793 001e 9BB2 uxth r3, r3
6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13794 .loc 1 6880 8 view .LVU4887
13795 0020 FF2B cmp r3, #255
13796 0022 0FD9 bls .L891
6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13797 .loc 1 6883 7 is_stmt 1 view .LVU4888
6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13798 .loc 1 6883 11 is_stmt 0 view .LVU4889
13799 0024 2368 ldr r3, [r4]
13800 0026 9B69 ldr r3, [r3, #24]
6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
13801 .loc 1 6883 10 view .LVU4890
13802 0028 13F4803F tst r3, #65536
13803 002c 07D0 beq .L892
6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13804 .loc 1 6885 9 is_stmt 1 view .LVU4891
6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13805 .loc 1 6885 24 is_stmt 0 view .LVU4892
13806 002e 0123 movs r3, #1
13807 0030 2385 strh r3, [r4, #40] @ movhi
13808 0032 09E0 b .L893
13809 .L896:
6871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13810 .loc 1 6871 5 is_stmt 1 view .LVU4893
13811 0034 2021 movs r1, #32
13812 0036 2046 mov r0, r4
13813 .LVL1049:
6871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13814 .loc 1 6871 5 is_stmt 0 view .LVU4894
13815 0038 FFF7FEFF bl I2C_Enable_IRQ
13816 .LVL1050:
13817 003c 0FE0 b .L888
13818 .LVL1051:
13819 .L892:
ARM GAS /tmp/ccJ8PJrU.s page 457
6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13820 .loc 1 6889 9 is_stmt 1 view .LVU4895
6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13821 .loc 1 6889 24 is_stmt 0 view .LVU4896
13822 003e FF23 movs r3, #255
13823 0040 2385 strh r3, [r4, #40] @ movhi
13824 0042 01E0 b .L893
13825 .L891:
6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13826 .loc 1 6894 7 is_stmt 1 view .LVU4897
6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13827 .loc 1 6894 28 is_stmt 0 view .LVU4898
13828 0044 638D ldrh r3, [r4, #42]
6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13829 .loc 1 6894 22 view .LVU4899
13830 0046 2385 strh r3, [r4, #40] @ movhi
13831 .L893:
6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13832 .loc 1 6898 5 is_stmt 1 view .LVU4900
6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13833 .loc 1 6898 55 is_stmt 0 view .LVU4901
13834 0048 2168 ldr r1, [r4]
6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13835 .loc 1 6898 9 view .LVU4902
13836 004a 238D ldrh r3, [r4, #40]
13837 004c 2431 adds r1, r1, #36
13838 004e E06B ldr r0, [r4, #60]
13839 .LVL1052:
6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13840 .loc 1 6898 9 view .LVU4903
13841 0050 FFF7FEFF bl HAL_DMA_Start_IT
13842 .LVL1053:
6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK)
13843 .loc 1 6898 8 discriminator 1 view .LVU4904
13844 0054 20B1 cbz r0, .L894
6902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13845 .loc 1 6902 7 is_stmt 1 view .LVU4905
13846 0056 1021 movs r1, #16
13847 0058 2046 mov r0, r4
13848 005a FFF7FEFF bl I2C_ITError
13849 .LVL1054:
13850 .L888:
6910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13851 .loc 1 6910 1 is_stmt 0 view .LVU4906
13852 005e 10BD pop {r4, pc}
13853 .LVL1055:
13854 .L894:
6907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13855 .loc 1 6907 7 is_stmt 1 view .LVU4907
13856 0060 4021 movs r1, #64
13857 0062 2046 mov r0, r4
13858 0064 FFF7FEFF bl I2C_Enable_IRQ
13859 .LVL1056:
6910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13860 .loc 1 6910 1 is_stmt 0 view .LVU4908
13861 0068 F9E7 b .L888
13862 .cfi_endproc
ARM GAS /tmp/ccJ8PJrU.s page 458
13863 .LFE191:
13865 .section .text.I2C_Mem_ISR_IT,"ax",%progbits
13866 .align 1
13867 .syntax unified
13868 .thumb
13869 .thumb_func
13871 I2C_Mem_ISR_IT:
13872 .LVL1057:
13873 .LFB173:
5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
13874 .loc 1 5100 1 is_stmt 1 view -0
13875 .cfi_startproc
13876 @ args = 0, pretend = 0, frame = 0
13877 @ frame_needed = 0, uses_anonymous_args = 0
5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
13878 .loc 1 5101 3 view .LVU4910
5102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13879 .loc 1 5102 3 view .LVU4911
5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13880 .loc 1 5105 3 view .LVU4912
5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13881 .loc 1 5105 3 view .LVU4913
13882 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2
13883 0004 012B cmp r3, #1
13884 0006 00F0D580 beq .L914
5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE;
13885 .loc 1 5100 1 is_stmt 0 view .LVU4914
13886 000a 70B5 push {r4, r5, r6, lr}
13887 .cfi_def_cfa_offset 16
13888 .cfi_offset 4, -16
13889 .cfi_offset 5, -12
13890 .cfi_offset 6, -8
13891 .cfi_offset 14, -4
13892 000c 82B0 sub sp, sp, #8
13893 .cfi_def_cfa_offset 24
13894 000e 0446 mov r4, r0
13895 0010 0D46 mov r5, r1
13896 0012 1646 mov r6, r2
5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13897 .loc 1 5105 3 is_stmt 1 discriminator 2 view .LVU4915
13898 0014 0123 movs r3, #1
13899 0016 80F84030 strb r3, [r0, #64]
5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13900 .loc 1 5105 3 discriminator 2 view .LVU4916
5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13901 .loc 1 5107 3 view .LVU4917
5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13902 .loc 1 5107 6 is_stmt 0 view .LVU4918
13903 001a 11F0100F tst r1, #16
13904 001e 02D0 beq .L899
5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET))
13905 .loc 1 5107 58 discriminator 1 view .LVU4919
13906 0020 12F0100F tst r2, #16
13907 0024 22D1 bne .L920
13908 .L899:
5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
13909 .loc 1 5121 8 is_stmt 1 view .LVU4920
ARM GAS /tmp/ccJ8PJrU.s page 459
5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
13910 .loc 1 5121 11 is_stmt 0 view .LVU4921
13911 0026 15F0040F tst r5, #4
13912 002a 29D0 beq .L901
5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET))
13913 .loc 1 5121 65 discriminator 1 view .LVU4922
13914 002c 16F0040F tst r6, #4
13915 0030 26D0 beq .L901
5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13916 .loc 1 5125 5 is_stmt 1 view .LVU4923
5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13917 .loc 1 5125 16 is_stmt 0 view .LVU4924
13918 0032 25F00405 bic r5, r5, #4
13919 .LVL1058:
5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13920 .loc 1 5128 5 is_stmt 1 view .LVU4925
5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13921 .loc 1 5128 36 is_stmt 0 view .LVU4926
13922 0036 2368 ldr r3, [r4]
5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13923 .loc 1 5128 46 view .LVU4927
13924 0038 5A6A ldr r2, [r3, #36]
13925 .LVL1059:
5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13926 .loc 1 5128 10 view .LVU4928
13927 003a 636A ldr r3, [r4, #36]
5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13928 .loc 1 5128 21 view .LVU4929
13929 003c 1A70 strb r2, [r3]
5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13930 .loc 1 5131 5 is_stmt 1 view .LVU4930
5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13931 .loc 1 5131 9 is_stmt 0 view .LVU4931
13932 003e 636A ldr r3, [r4, #36]
5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13933 .loc 1 5131 19 view .LVU4932
13934 0040 0133 adds r3, r3, #1
13935 0042 6362 str r3, [r4, #36]
5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
13936 .loc 1 5133 5 is_stmt 1 view .LVU4933
5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
13937 .loc 1 5133 9 is_stmt 0 view .LVU4934
13938 0044 238D ldrh r3, [r4, #40]
5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
13939 .loc 1 5133 19 view .LVU4935
13940 0046 013B subs r3, r3, #1
13941 0048 2385 strh r3, [r4, #40] @ movhi
5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13942 .loc 1 5134 5 is_stmt 1 view .LVU4936
5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13943 .loc 1 5134 9 is_stmt 0 view .LVU4937
13944 004a 638D ldrh r3, [r4, #42]
13945 004c 9BB2 uxth r3, r3
5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13946 .loc 1 5134 20 view .LVU4938
13947 004e 013B subs r3, r3, #1
13948 0050 9BB2 uxth r3, r3
ARM GAS /tmp/ccJ8PJrU.s page 460
13949 0052 6385 strh r3, [r4, #42] @ movhi
13950 .LVL1060:
13951 .L900:
5234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13952 .loc 1 5234 3 is_stmt 1 view .LVU4939
5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13953 .loc 1 5236 3 view .LVU4940
5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13954 .loc 1 5236 6 is_stmt 0 view .LVU4941
13955 0054 15F0200F tst r5, #32
13956 0058 03D0 beq .L913
5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET))
13957 .loc 1 5236 61 discriminator 1 view .LVU4942
13958 005a 16F0200F tst r6, #32
13959 005e 40F0A480 bne .L921
13960 .L913:
5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13961 .loc 1 5244 3 is_stmt 1 view .LVU4943
5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13962 .loc 1 5244 3 view .LVU4944
13963 0062 0020 movs r0, #0
13964 0064 84F84000 strb r0, [r4, #64]
5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13965 .loc 1 5244 3 view .LVU4945
5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13966 .loc 1 5246 3 view .LVU4946
5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13967 .loc 1 5247 1 is_stmt 0 view .LVU4947
13968 0068 02B0 add sp, sp, #8
13969 .cfi_remember_state
13970 .cfi_def_cfa_offset 16
13971 @ sp needed
13972 006a 70BD pop {r4, r5, r6, pc}
13973 .LVL1061:
13974 .L920:
13975 .cfi_restore_state
5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13976 .loc 1 5111 5 is_stmt 1 view .LVU4948
13977 006c 0368 ldr r3, [r0]
13978 006e 1022 movs r2, #16
13979 .LVL1062:
5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13980 .loc 1 5111 5 is_stmt 0 view .LVU4949
13981 0070 DA61 str r2, [r3, #28]
5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13982 .loc 1 5116 5 is_stmt 1 view .LVU4950
5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13983 .loc 1 5116 9 is_stmt 0 view .LVU4951
13984 0072 436C ldr r3, [r0, #68]
5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
13985 .loc 1 5116 21 view .LVU4952
13986 0074 43F00403 orr r3, r3, #4
13987 0078 4364 str r3, [r0, #68]
5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13988 .loc 1 5119 5 is_stmt 1 view .LVU4953
13989 007a FFF7FEFF bl I2C_Flush_TXDR
13990 .LVL1063:
ARM GAS /tmp/ccJ8PJrU.s page 461
5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
13991 .loc 1 5119 5 is_stmt 0 view .LVU4954
13992 007e E9E7 b .L900
13993 .LVL1064:
13994 .L901:
5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
13995 .loc 1 5136 8 is_stmt 1 view .LVU4955
5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
13996 .loc 1 5136 11 is_stmt 0 view .LVU4956
13997 0080 15F0020F tst r5, #2
13998 0084 1DD0 beq .L902
5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))
13999 .loc 1 5136 65 discriminator 1 view .LVU4957
14000 0086 16F0020F tst r6, #2
14001 008a 1AD0 beq .L902
5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14002 .loc 1 5139 5 is_stmt 1 view .LVU4958
5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14003 .loc 1 5139 13 is_stmt 0 view .LVU4959
14004 008c 236D ldr r3, [r4, #80]
5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14005 .loc 1 5139 8 view .LVU4960
14006 008e B3F1FF3F cmp r3, #-1
14007 0092 06D0 beq .L922
5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14008 .loc 1 5153 7 is_stmt 1 view .LVU4961
5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14009 .loc 1 5153 11 is_stmt 0 view .LVU4962
14010 0094 2368 ldr r3, [r4]
5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14011 .loc 1 5153 34 view .LVU4963
14012 0096 226D ldr r2, [r4, #80]
14013 .LVL1065:
5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14014 .loc 1 5153 28 view .LVU4964
14015 0098 9A62 str r2, [r3, #40]
5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14016 .loc 1 5156 7 is_stmt 1 view .LVU4965
5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14017 .loc 1 5156 24 is_stmt 0 view .LVU4966
14018 009a 4FF0FF33 mov r3, #-1
14019 009e 2365 str r3, [r4, #80]
14020 00a0 D8E7 b .L900
14021 .LVL1066:
14022 .L922:
5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14023 .loc 1 5142 7 is_stmt 1 view .LVU4967
5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14024 .loc 1 5142 35 is_stmt 0 view .LVU4968
14025 00a2 626A ldr r2, [r4, #36]
14026 .LVL1067:
5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14027 .loc 1 5142 11 view .LVU4969
14028 00a4 2368 ldr r3, [r4]
5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14029 .loc 1 5142 30 view .LVU4970
14030 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2
ARM GAS /tmp/ccJ8PJrU.s page 462
5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14031 .loc 1 5142 28 view .LVU4971
14032 00a8 9A62 str r2, [r3, #40]
5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14033 .loc 1 5145 7 is_stmt 1 view .LVU4972
5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14034 .loc 1 5145 11 is_stmt 0 view .LVU4973
14035 00aa 636A ldr r3, [r4, #36]
5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14036 .loc 1 5145 21 view .LVU4974
14037 00ac 0133 adds r3, r3, #1
14038 00ae 6362 str r3, [r4, #36]
5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
14039 .loc 1 5147 7 is_stmt 1 view .LVU4975
5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
14040 .loc 1 5147 11 is_stmt 0 view .LVU4976
14041 00b0 238D ldrh r3, [r4, #40]
5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--;
14042 .loc 1 5147 21 view .LVU4977
14043 00b2 013B subs r3, r3, #1
14044 00b4 2385 strh r3, [r4, #40] @ movhi
5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14045 .loc 1 5148 7 is_stmt 1 view .LVU4978
5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14046 .loc 1 5148 11 is_stmt 0 view .LVU4979
14047 00b6 638D ldrh r3, [r4, #42]
14048 00b8 9BB2 uxth r3, r3
5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14049 .loc 1 5148 22 view .LVU4980
14050 00ba 013B subs r3, r3, #1
14051 00bc 9BB2 uxth r3, r3
14052 00be 6385 strh r3, [r4, #42] @ movhi
14053 00c0 C8E7 b .L900
14054 .LVL1068:
14055 .L902:
5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14056 .loc 1 5159 8 is_stmt 1 view .LVU4981
5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14057 .loc 1 5159 11 is_stmt 0 view .LVU4982
14058 00c2 15F0800F tst r5, #128
14059 00c6 34D0 beq .L904
5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14060 .loc 1 5159 64 discriminator 1 view .LVU4983
14061 00c8 16F0400F tst r6, #64
14062 00cc 31D0 beq .L904
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14063 .loc 1 5162 5 is_stmt 1 view .LVU4984
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14064 .loc 1 5162 14 is_stmt 0 view .LVU4985
14065 00ce 638D ldrh r3, [r4, #42]
14066 00d0 9BB2 uxth r3, r3
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14067 .loc 1 5162 8 view .LVU4986
14068 00d2 4BB3 cbz r3, .L905
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14069 .loc 1 5162 41 discriminator 1 view .LVU4987
14070 00d4 238D ldrh r3, [r4, #40]
ARM GAS /tmp/ccJ8PJrU.s page 463
5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14071 .loc 1 5162 33 discriminator 1 view .LVU4988
14072 00d6 3BBB cbnz r3, .L905
5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14073 .loc 1 5164 7 is_stmt 1 view .LVU4989
5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14074 .loc 1 5164 15 is_stmt 0 view .LVU4990
14075 00d8 638D ldrh r3, [r4, #42]
14076 00da 9BB2 uxth r3, r3
5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14077 .loc 1 5164 10 view .LVU4991
14078 00dc FF2B cmp r3, #255
14079 00de 15D9 bls .L906
5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14080 .loc 1 5167 9 is_stmt 1 view .LVU4992
5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14081 .loc 1 5167 13 is_stmt 0 view .LVU4993
14082 00e0 2368 ldr r3, [r4]
14083 00e2 9B69 ldr r3, [r3, #24]
5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14084 .loc 1 5167 12 view .LVU4994
14085 00e4 13F4803F tst r3, #65536
14086 00e8 0DD0 beq .L907
5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14087 .loc 1 5169 11 is_stmt 1 view .LVU4995
5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14088 .loc 1 5169 26 is_stmt 0 view .LVU4996
14089 00ea 0123 movs r3, #1
14090 00ec 2385 strh r3, [r4, #40] @ movhi
14091 .L908:
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14092 .loc 1 5175 9 is_stmt 1 view .LVU4997
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14093 .loc 1 5175 48 is_stmt 0 view .LVU4998
14094 00ee E16C ldr r1, [r4, #76]
14095 .LVL1069:
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14096 .loc 1 5175 9 view .LVU4999
14097 00f0 0023 movs r3, #0
14098 00f2 0093 str r3, [sp]
14099 00f4 4FF08073 mov r3, #16777216
14100 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
14101 .LVL1070:
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14102 .loc 1 5175 9 view .LVU5000
14103 00fc 89B2 uxth r1, r1
14104 00fe 2046 mov r0, r4
14105 .LVL1071:
5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP);
14106 .loc 1 5175 9 view .LVU5001
14107 0100 FFF7FEFF bl I2C_TransferConfig
14108 .LVL1072:
14109 0104 A6E7 b .L900
14110 .LVL1073:
14111 .L907:
5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14112 .loc 1 5173 11 is_stmt 1 view .LVU5002
ARM GAS /tmp/ccJ8PJrU.s page 464
5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14113 .loc 1 5173 26 is_stmt 0 view .LVU5003
14114 0106 FF23 movs r3, #255
14115 0108 2385 strh r3, [r4, #40] @ movhi
14116 010a F0E7 b .L908
14117 .L906:
5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14118 .loc 1 5180 9 is_stmt 1 view .LVU5004
5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14119 .loc 1 5180 30 is_stmt 0 view .LVU5005
14120 010c 628D ldrh r2, [r4, #42]
14121 .LVL1074:
5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14122 .loc 1 5180 30 view .LVU5006
14123 010e 92B2 uxth r2, r2
5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize,
14124 .loc 1 5180 24 view .LVU5007
14125 0110 2285 strh r2, [r4, #40] @ movhi
5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14126 .loc 1 5181 9 is_stmt 1 view .LVU5008
5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14127 .loc 1 5181 48 is_stmt 0 view .LVU5009
14128 0112 E16C ldr r1, [r4, #76]
14129 .LVL1075:
5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14130 .loc 1 5181 9 view .LVU5010
14131 0114 0023 movs r3, #0
14132 0116 0093 str r3, [sp]
14133 0118 4FF00073 mov r3, #33554432
14134 011c D2B2 uxtb r2, r2
14135 011e 89B2 uxth r1, r1
14136 0120 2046 mov r0, r4
14137 .LVL1076:
5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP);
14138 .loc 1 5181 9 view .LVU5011
14139 0122 FFF7FEFF bl I2C_TransferConfig
14140 .LVL1077:
14141 0126 95E7 b .L900
14142 .LVL1078:
14143 .L905:
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14144 .loc 1 5189 7 is_stmt 1 view .LVU5012
14145 0128 4021 movs r1, #64
14146 .LVL1079:
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14147 .loc 1 5189 7 is_stmt 0 view .LVU5013
14148 012a 2046 mov r0, r4
14149 .LVL1080:
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14150 .loc 1 5189 7 view .LVU5014
14151 012c FFF7FEFF bl I2C_ITError
14152 .LVL1081:
5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14153 .loc 1 5189 7 view .LVU5015
14154 0130 90E7 b .L900
14155 .LVL1082:
14156 .L904:
ARM GAS /tmp/ccJ8PJrU.s page 465
5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14157 .loc 1 5192 8 is_stmt 1 view .LVU5016
5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14158 .loc 1 5192 11 is_stmt 0 view .LVU5017
14159 0132 15F0400F tst r5, #64
14160 0136 8DD0 beq .L900
5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET))
14161 .loc 1 5192 63 discriminator 1 view .LVU5018
14162 0138 16F0400F tst r6, #64
14163 013c 8AD0 beq .L900
5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14164 .loc 1 5196 5 is_stmt 1 view .LVU5019
14165 013e 0121 movs r1, #1
14166 .LVL1083:
5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14167 .loc 1 5196 5 is_stmt 0 view .LVU5020
14168 0140 2046 mov r0, r4
14169 .LVL1084:
5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14170 .loc 1 5196 5 view .LVU5021
14171 0142 FFF7FEFF bl I2C_Disable_IRQ
14172 .LVL1085:
5199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14173 .loc 1 5199 5 is_stmt 1 view .LVU5022
14174 0146 0221 movs r1, #2
14175 0148 2046 mov r0, r4
14176 014a FFF7FEFF bl I2C_Enable_IRQ
14177 .LVL1086:
5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14178 .loc 1 5201 5 view .LVU5023
5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14179 .loc 1 5201 13 is_stmt 0 view .LVU5024
14180 014e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2
14181 0152 DBB2 uxtb r3, r3
5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14182 .loc 1 5201 8 view .LVU5025
14183 0154 222B cmp r3, #34
14184 0156 16D0 beq .L915
5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags;
14185 .loc 1 5101 12 view .LVU5026
14186 0158 1748 ldr r0, .L923
14187 .L909:
14188 .LVL1087:
5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14189 .loc 1 5206 5 is_stmt 1 view .LVU5027
5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14190 .loc 1 5206 13 is_stmt 0 view .LVU5028
14191 015a 638D ldrh r3, [r4, #42]
14192 015c 9BB2 uxth r3, r3
5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14193 .loc 1 5206 8 view .LVU5029
14194 015e FF2B cmp r3, #255
14195 0160 16D9 bls .L910
5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14196 .loc 1 5209 7 is_stmt 1 view .LVU5030
5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14197 .loc 1 5209 11 is_stmt 0 view .LVU5031
ARM GAS /tmp/ccJ8PJrU.s page 466
14198 0162 2368 ldr r3, [r4]
14199 0164 9B69 ldr r3, [r3, #24]
5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14200 .loc 1 5209 10 view .LVU5032
14201 0166 13F4803F tst r3, #65536
14202 016a 0ED0 beq .L911
5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14203 .loc 1 5211 9 is_stmt 1 view .LVU5033
5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14204 .loc 1 5211 24 is_stmt 0 view .LVU5034
14205 016c 0123 movs r3, #1
14206 016e 2385 strh r3, [r4, #40] @ movhi
14207 .L912:
5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14208 .loc 1 5219 7 is_stmt 1 view .LVU5035
5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14209 .loc 1 5219 46 is_stmt 0 view .LVU5036
14210 0170 E16C ldr r1, [r4, #76]
5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14211 .loc 1 5219 7 view .LVU5037
14212 0172 0090 str r0, [sp]
14213 0174 4FF08073 mov r3, #16777216
14214 0178 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2
14215 017c 89B2 uxth r1, r1
14216 017e 2046 mov r0, r4
14217 .LVL1088:
5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14218 .loc 1 5219 7 view .LVU5038
14219 0180 FFF7FEFF bl I2C_TransferConfig
14220 .LVL1089:
5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction);
14221 .loc 1 5219 7 view .LVU5039
14222 0184 66E7 b .L900
14223 .LVL1090:
14224 .L915:
5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14225 .loc 1 5203 17 view .LVU5040
14226 0186 0D48 ldr r0, .L923+4
14227 0188 E7E7 b .L909
14228 .LVL1091:
14229 .L911:
5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14230 .loc 1 5215 9 is_stmt 1 view .LVU5041
5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14231 .loc 1 5215 24 is_stmt 0 view .LVU5042
14232 018a FF23 movs r3, #255
14233 018c 2385 strh r3, [r4, #40] @ movhi
14234 018e EFE7 b .L912
14235 .L910:
5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14236 .loc 1 5224 7 is_stmt 1 view .LVU5043
5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14237 .loc 1 5224 28 is_stmt 0 view .LVU5044
14238 0190 628D ldrh r2, [r4, #42]
14239 0192 92B2 uxth r2, r2
5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14240 .loc 1 5224 22 view .LVU5045
ARM GAS /tmp/ccJ8PJrU.s page 467
14241 0194 2285 strh r2, [r4, #40] @ movhi
5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14242 .loc 1 5227 7 is_stmt 1 view .LVU5046
5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14243 .loc 1 5227 46 is_stmt 0 view .LVU5047
14244 0196 E16C ldr r1, [r4, #76]
5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14245 .loc 1 5227 7 view .LVU5048
14246 0198 0090 str r0, [sp]
14247 019a 4FF00073 mov r3, #33554432
14248 019e D2B2 uxtb r2, r2
14249 01a0 89B2 uxth r1, r1
14250 01a2 2046 mov r0, r4
14251 .LVL1092:
5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14252 .loc 1 5227 7 view .LVU5049
14253 01a4 FFF7FEFF bl I2C_TransferConfig
14254 .LVL1093:
5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction);
14255 .loc 1 5227 7 view .LVU5050
14256 01a8 54E7 b .L900
14257 .LVL1094:
14258 .L921:
5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14259 .loc 1 5240 5 is_stmt 1 view .LVU5051
14260 01aa 2946 mov r1, r5
14261 01ac 2046 mov r0, r4
14262 01ae FFF7FEFF bl I2C_ITMasterCplt
14263 .LVL1095:
14264 01b2 56E7 b .L913
14265 .LVL1096:
14266 .L914:
14267 .cfi_def_cfa_offset 0
14268 .cfi_restore 4
14269 .cfi_restore 5
14270 .cfi_restore 6
14271 .cfi_restore 14
5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14272 .loc 1 5105 3 is_stmt 0 discriminator 1 view .LVU5052
14273 01b4 0220 movs r0, #2
14274 .LVL1097:
5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14275 .loc 1 5247 1 view .LVU5053
14276 01b6 7047 bx lr
14277 .L924:
14278 .align 2
14279 .L923:
14280 01b8 00200080 .word -2147475456
14281 01bc 00240080 .word -2147474432
14282 .cfi_endproc
14283 .LFE173:
14285 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits
14286 .align 1
14287 .global HAL_I2C_ER_IRQHandler
14288 .syntax unified
14289 .thumb
14290 .thumb_func
ARM GAS /tmp/ccJ8PJrU.s page 468
14292 HAL_I2C_ER_IRQHandler:
14293 .LVL1098:
14294 .LFB158:
4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
14295 .loc 1 4658 1 is_stmt 1 view -0
14296 .cfi_startproc
14297 @ args = 0, pretend = 0, frame = 0
14298 @ frame_needed = 0, uses_anonymous_args = 0
4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR);
14299 .loc 1 4658 1 is_stmt 0 view .LVU5055
14300 0000 10B5 push {r4, lr}
14301 .cfi_def_cfa_offset 8
14302 .cfi_offset 4, -8
14303 .cfi_offset 14, -4
4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
14304 .loc 1 4659 3 is_stmt 1 view .LVU5056
4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
14305 .loc 1 4659 24 is_stmt 0 view .LVU5057
14306 0002 0268 ldr r2, [r0]
4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1);
14307 .loc 1 4659 12 view .LVU5058
14308 0004 9369 ldr r3, [r2, #24]
14309 .LVL1099:
4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
14310 .loc 1 4660 3 is_stmt 1 view .LVU5059
4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror;
14311 .loc 1 4660 12 is_stmt 0 view .LVU5060
14312 0006 1168 ldr r1, [r2]
14313 .LVL1100:
4661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14314 .loc 1 4661 3 is_stmt 1 view .LVU5061
4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14315 .loc 1 4664 3 view .LVU5062
4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14316 .loc 1 4664 6 is_stmt 0 view .LVU5063
14317 0008 13F4807F tst r3, #256
14318 000c 09D0 beq .L926
4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14319 .loc 1 4664 57 discriminator 1 view .LVU5064
14320 000e 11F0800F tst r1, #128
14321 0012 06D0 beq .L926
4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14322 .loc 1 4667 5 is_stmt 1 view .LVU5065
4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14323 .loc 1 4667 9 is_stmt 0 view .LVU5066
14324 0014 446C ldr r4, [r0, #68]
4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14325 .loc 1 4667 21 view .LVU5067
14326 0016 44F00104 orr r4, r4, #1
14327 001a 4464 str r4, [r0, #68]
4670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14328 .loc 1 4670 5 is_stmt 1 view .LVU5068
14329 001c 4FF48074 mov r4, #256
14330 0020 D461 str r4, [r2, #28]
14331 .L926:
4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14332 .loc 1 4674 3 view .LVU5069
ARM GAS /tmp/ccJ8PJrU.s page 469
4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14333 .loc 1 4674 6 is_stmt 0 view .LVU5070
14334 0022 13F4806F tst r3, #1024
14335 0026 0AD0 beq .L927
4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14336 .loc 1 4674 56 discriminator 1 view .LVU5071
14337 0028 11F0800F tst r1, #128
14338 002c 07D0 beq .L927
4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14339 .loc 1 4677 5 is_stmt 1 view .LVU5072
4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14340 .loc 1 4677 9 is_stmt 0 view .LVU5073
14341 002e 426C ldr r2, [r0, #68]
4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14342 .loc 1 4677 21 view .LVU5074
14343 0030 42F00802 orr r2, r2, #8
14344 0034 4264 str r2, [r0, #68]
4680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14345 .loc 1 4680 5 is_stmt 1 view .LVU5075
14346 0036 0268 ldr r2, [r0]
14347 0038 4FF48064 mov r4, #1024
14348 003c D461 str r4, [r2, #28]
14349 .L927:
4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14350 .loc 1 4684 3 view .LVU5076
4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14351 .loc 1 4684 6 is_stmt 0 view .LVU5077
14352 003e 13F4007F tst r3, #512
14353 0042 0AD0 beq .L928
4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET))
14354 .loc 1 4684 57 discriminator 1 view .LVU5078
14355 0044 11F0800F tst r1, #128
14356 0048 07D0 beq .L928
4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14357 .loc 1 4687 5 is_stmt 1 view .LVU5079
4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14358 .loc 1 4687 9 is_stmt 0 view .LVU5080
14359 004a 436C ldr r3, [r0, #68]
14360 .LVL1101:
4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14361 .loc 1 4687 21 view .LVU5081
14362 004c 43F00203 orr r3, r3, #2
14363 0050 4364 str r3, [r0, #68]
4690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14364 .loc 1 4690 5 is_stmt 1 view .LVU5082
14365 0052 0368 ldr r3, [r0]
14366 0054 4FF40072 mov r2, #512
14367 0058 DA61 str r2, [r3, #28]
14368 .L928:
4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14369 .loc 1 4694 3 view .LVU5083
4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14370 .loc 1 4694 12 is_stmt 0 view .LVU5084
14371 005a 416C ldr r1, [r0, #68]
14372 .LVL1102:
4697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14373 .loc 1 4697 3 is_stmt 1 view .LVU5085
ARM GAS /tmp/ccJ8PJrU.s page 470
4697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14374 .loc 1 4697 6 is_stmt 0 view .LVU5086
14375 005c 11F00B0F tst r1, #11
14376 0060 00D1 bne .L931
14377 .LVL1103:
14378 .L925:
4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14379 .loc 1 4701 1 view .LVU5087
14380 0062 10BD pop {r4, pc}
14381 .LVL1104:
14382 .L931:
4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14383 .loc 1 4699 5 is_stmt 1 view .LVU5088
14384 0064 FFF7FEFF bl I2C_ITError
14385 .LVL1105:
4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14386 .loc 1 4701 1 is_stmt 0 view .LVU5089
14387 0068 FBE7 b .L925
14388 .cfi_endproc
14389 .LFE158:
14391 .section .text.I2C_DMAAbort,"ax",%progbits
14392 .align 1
14393 .syntax unified
14394 .thumb
14395 .thumb_func
14397 I2C_DMAAbort:
14398 .LVL1106:
14399 .LFB194:
6967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14400 .loc 1 6967 1 is_stmt 1 view -0
14401 .cfi_startproc
14402 @ args = 0, pretend = 0, frame = 0
14403 @ frame_needed = 0, uses_anonymous_args = 0
6967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */
14404 .loc 1 6967 1 is_stmt 0 view .LVU5091
14405 0000 08B5 push {r3, lr}
14406 .cfi_def_cfa_offset 8
14407 .cfi_offset 3, -8
14408 .cfi_offset 14, -4
6969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14409 .loc 1 6969 3 is_stmt 1 view .LVU5092
6969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14410 .loc 1 6969 22 is_stmt 0 view .LVU5093
14411 0002 406A ldr r0, [r0, #36]
14412 .LVL1107:
6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14413 .loc 1 6972 3 is_stmt 1 view .LVU5094
6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14414 .loc 1 6972 11 is_stmt 0 view .LVU5095
14415 0004 836B ldr r3, [r0, #56]
6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14416 .loc 1 6972 6 view .LVU5096
14417 0006 0BB1 cbz r3, .L933
6974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14418 .loc 1 6974 5 is_stmt 1 view .LVU5097
6974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14419 .loc 1 6974 37 is_stmt 0 view .LVU5098
ARM GAS /tmp/ccJ8PJrU.s page 471
14420 0008 0022 movs r2, #0
14421 000a 5A63 str r2, [r3, #52]
14422 .L933:
6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14423 .loc 1 6976 3 is_stmt 1 view .LVU5099
6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14424 .loc 1 6976 11 is_stmt 0 view .LVU5100
14425 000c C36B ldr r3, [r0, #60]
6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** {
14426 .loc 1 6976 6 view .LVU5101
14427 000e 0BB1 cbz r3, .L934
6978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14428 .loc 1 6978 5 is_stmt 1 view .LVU5102
6978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14429 .loc 1 6978 37 is_stmt 0 view .LVU5103
14430 0010 0022 movs r2, #0
14431 0012 5A63 str r2, [r3, #52]
14432 .L934:
6981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14433 .loc 1 6981 3 is_stmt 1 view .LVU5104
14434 0014 FFF7FEFF bl I2C_TreatErrorCallback
14435 .LVL1108:
6982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14436 .loc 1 6982 1 is_stmt 0 view .LVU5105
14437 0018 08BD pop {r3, pc}
14438 .cfi_endproc
14439 .LFE194:
14441 .section .text.HAL_I2C_GetState,"ax",%progbits
14442 .align 1
14443 .global HAL_I2C_GetState
14444 .syntax unified
14445 .thumb
14446 .thumb_func
14448 HAL_I2C_GetState:
14449 .LVL1109:
14450 .LFB169:
4892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */
14451 .loc 1 4892 1 is_stmt 1 view -0
14452 .cfi_startproc
14453 @ args = 0, pretend = 0, frame = 0
14454 @ frame_needed = 0, uses_anonymous_args = 0
14455 @ link register save eliminated.
4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14456 .loc 1 4894 3 view .LVU5107
4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14457 .loc 1 4894 14 is_stmt 0 view .LVU5108
14458 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2
14459 .LVL1110:
4895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14460 .loc 1 4895 1 view .LVU5109
14461 0004 7047 bx lr
14462 .cfi_endproc
14463 .LFE169:
14465 .section .text.HAL_I2C_GetMode,"ax",%progbits
14466 .align 1
14467 .global HAL_I2C_GetMode
14468 .syntax unified
ARM GAS /tmp/ccJ8PJrU.s page 472
14469 .thumb
14470 .thumb_func
14472 HAL_I2C_GetMode:
14473 .LVL1111:
14474 .LFB170:
4904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode;
14475 .loc 1 4904 1 is_stmt 1 view -0
14476 .cfi_startproc
14477 @ args = 0, pretend = 0, frame = 0
14478 @ frame_needed = 0, uses_anonymous_args = 0
14479 @ link register save eliminated.
4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14480 .loc 1 4905 3 view .LVU5111
4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14481 .loc 1 4905 14 is_stmt 0 view .LVU5112
14482 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2
14483 .LVL1112:
4906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14484 .loc 1 4906 1 view .LVU5113
14485 0004 7047 bx lr
14486 .cfi_endproc
14487 .LFE170:
14489 .section .text.HAL_I2C_GetError,"ax",%progbits
14490 .align 1
14491 .global HAL_I2C_GetError
14492 .syntax unified
14493 .thumb
14494 .thumb_func
14496 HAL_I2C_GetError:
14497 .LVL1113:
14498 .LFB171:
4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode;
14499 .loc 1 4915 1 is_stmt 1 view -0
14500 .cfi_startproc
14501 @ args = 0, pretend = 0, frame = 0
14502 @ frame_needed = 0, uses_anonymous_args = 0
14503 @ link register save eliminated.
4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14504 .loc 1 4916 3 view .LVU5115
4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** }
14505 .loc 1 4916 14 is_stmt 0 view .LVU5116
14506 0000 406C ldr r0, [r0, #68]
14507 .LVL1114:
4917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c ****
14508 .loc 1 4917 1 view .LVU5117
14509 0002 7047 bx lr
14510 .cfi_endproc
14511 .LFE171:
14513 .text
14514 .Letext0:
14515 .file 2 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/
14516 .file 3 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/
14517 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h"
14518 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h"
14519 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h"
14520 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h"
14521 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h"
ARM GAS /tmp/ccJ8PJrU.s page 473
14522 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h"
ARM GAS /tmp/ccJ8PJrU.s page 474
DEFINED SYMBOLS
*ABS*:00000000 stm32f3xx_hal_i2c.c
/tmp/ccJ8PJrU.s:21 .text.I2C_Flush_TXDR:00000000 $t
/tmp/ccJ8PJrU.s:26 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR
/tmp/ccJ8PJrU.s:64 .text.I2C_TransferConfig:00000000 $t
/tmp/ccJ8PJrU.s:69 .text.I2C_TransferConfig:00000000 I2C_TransferConfig
/tmp/ccJ8PJrU.s:125 .text.I2C_Enable_IRQ:00000000 $t
/tmp/ccJ8PJrU.s:130 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ
/tmp/ccJ8PJrU.s:292 .text.I2C_Enable_IRQ:00000090 $d
/tmp/ccJ8PJrU.s:13283 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA
/tmp/ccJ8PJrU.s:12984 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA
/tmp/ccJ8PJrU.s:12580 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA
/tmp/ccJ8PJrU.s:299 .text.I2C_Disable_IRQ:00000000 $t
/tmp/ccJ8PJrU.s:304 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ
/tmp/ccJ8PJrU.s:428 .text.I2C_ConvertOtherXferOptions:00000000 $t
/tmp/ccJ8PJrU.s:433 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions
/tmp/ccJ8PJrU.s:474 .text.I2C_IsErrorOccurred:00000000 $t
/tmp/ccJ8PJrU.s:479 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred
/tmp/ccJ8PJrU.s:755 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t
/tmp/ccJ8PJrU.s:760 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout
/tmp/ccJ8PJrU.s:857 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t
/tmp/ccJ8PJrU.s:862 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout
/tmp/ccJ8PJrU.s:973 .text.I2C_RequestMemoryWrite:00000000 $t
/tmp/ccJ8PJrU.s:978 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite
/tmp/ccJ8PJrU.s:1093 .text.I2C_RequestMemoryWrite:00000078 $d
/tmp/ccJ8PJrU.s:1098 .text.I2C_RequestMemoryRead:00000000 $t
/tmp/ccJ8PJrU.s:1103 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead
/tmp/ccJ8PJrU.s:1218 .text.I2C_RequestMemoryRead:00000074 $d
/tmp/ccJ8PJrU.s:1223 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t
/tmp/ccJ8PJrU.s:1228 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout
/tmp/ccJ8PJrU.s:1325 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t
/tmp/ccJ8PJrU.s:1330 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout
/tmp/ccJ8PJrU.s:1494 .text.HAL_I2C_MspInit:00000000 $t
/tmp/ccJ8PJrU.s:1500 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit
/tmp/ccJ8PJrU.s:1515 .text.HAL_I2C_Init:00000000 $t
/tmp/ccJ8PJrU.s:1521 .text.HAL_I2C_Init:00000000 HAL_I2C_Init
/tmp/ccJ8PJrU.s:1715 .text.HAL_I2C_MspDeInit:00000000 $t
/tmp/ccJ8PJrU.s:1721 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit
/tmp/ccJ8PJrU.s:1736 .text.HAL_I2C_DeInit:00000000 $t
/tmp/ccJ8PJrU.s:1742 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit
/tmp/ccJ8PJrU.s:1805 .text.HAL_I2C_Master_Transmit:00000000 $t
/tmp/ccJ8PJrU.s:1811 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit
/tmp/ccJ8PJrU.s:2167 .text.HAL_I2C_Master_Transmit:000001a0 $d
/tmp/ccJ8PJrU.s:2172 .text.HAL_I2C_Master_Receive:00000000 $t
/tmp/ccJ8PJrU.s:2178 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive
/tmp/ccJ8PJrU.s:2483 .text.HAL_I2C_Master_Receive:00000178 $d
/tmp/ccJ8PJrU.s:2488 .text.HAL_I2C_Slave_Transmit:00000000 $t
/tmp/ccJ8PJrU.s:2494 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit
/tmp/ccJ8PJrU.s:2943 .text.HAL_I2C_Slave_Receive:00000000 $t
/tmp/ccJ8PJrU.s:2949 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive
/tmp/ccJ8PJrU.s:3293 .text.HAL_I2C_Master_Transmit_IT:00000000 $t
/tmp/ccJ8PJrU.s:3299 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT
/tmp/ccJ8PJrU.s:3494 .text.HAL_I2C_Master_Transmit_IT:000000bc $d
/tmp/ccJ8PJrU.s:12181 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT
/tmp/ccJ8PJrU.s:3501 .text.HAL_I2C_Master_Receive_IT:00000000 $t
/tmp/ccJ8PJrU.s:3507 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT
/tmp/ccJ8PJrU.s:3656 .text.HAL_I2C_Master_Receive_IT:0000008c $d
ARM GAS /tmp/ccJ8PJrU.s page 475
/tmp/ccJ8PJrU.s:3663 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t
/tmp/ccJ8PJrU.s:3669 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT
/tmp/ccJ8PJrU.s:3811 .text.HAL_I2C_Slave_Transmit_IT:00000084 $d
/tmp/ccJ8PJrU.s:11589 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT
/tmp/ccJ8PJrU.s:3817 .text.HAL_I2C_Slave_Receive_IT:00000000 $t
/tmp/ccJ8PJrU.s:3823 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT
/tmp/ccJ8PJrU.s:3925 .text.HAL_I2C_Slave_Receive_IT:0000005c $d
/tmp/ccJ8PJrU.s:3931 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t
/tmp/ccJ8PJrU.s:3937 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA
/tmp/ccJ8PJrU.s:4281 .text.HAL_I2C_Master_Transmit_DMA:0000015c $d
/tmp/ccJ8PJrU.s:13645 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt
/tmp/ccJ8PJrU.s:13606 .text.I2C_DMAError:00000000 I2C_DMAError
/tmp/ccJ8PJrU.s:4291 .text.HAL_I2C_Master_Receive_DMA:00000000 $t
/tmp/ccJ8PJrU.s:4297 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA
/tmp/ccJ8PJrU.s:4595 .text.HAL_I2C_Master_Receive_DMA:00000138 $d
/tmp/ccJ8PJrU.s:13752 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt
/tmp/ccJ8PJrU.s:4605 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t
/tmp/ccJ8PJrU.s:4611 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA
/tmp/ccJ8PJrU.s:4914 .text.HAL_I2C_Slave_Transmit_DMA:00000130 $d
/tmp/ccJ8PJrU.s:10289 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt
/tmp/ccJ8PJrU.s:4922 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t
/tmp/ccJ8PJrU.s:4928 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA
/tmp/ccJ8PJrU.s:5150 .text.HAL_I2C_Slave_Receive_DMA:000000e4 $d
/tmp/ccJ8PJrU.s:10340 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt
/tmp/ccJ8PJrU.s:5158 .text.HAL_I2C_Mem_Write:00000000 $t
/tmp/ccJ8PJrU.s:5164 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write
/tmp/ccJ8PJrU.s:5518 .text.HAL_I2C_Mem_Read:00000000 $t
/tmp/ccJ8PJrU.s:5524 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read
/tmp/ccJ8PJrU.s:5878 .text.HAL_I2C_Mem_Read:000001ac $d
/tmp/ccJ8PJrU.s:5883 .text.HAL_I2C_Mem_Write_IT:00000000 $t
/tmp/ccJ8PJrU.s:5889 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT
/tmp/ccJ8PJrU.s:6063 .text.HAL_I2C_Mem_Write_IT:000000ac $d
/tmp/ccJ8PJrU.s:13871 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT
/tmp/ccJ8PJrU.s:6070 .text.HAL_I2C_Mem_Read_IT:00000000 $t
/tmp/ccJ8PJrU.s:6076 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT
/tmp/ccJ8PJrU.s:6247 .text.HAL_I2C_Mem_Read_IT:000000a8 $d
/tmp/ccJ8PJrU.s:6254 .text.HAL_I2C_Mem_Write_DMA:00000000 $t
/tmp/ccJ8PJrU.s:6260 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA
/tmp/ccJ8PJrU.s:6542 .text.HAL_I2C_Mem_Write_DMA:00000120 $d
/tmp/ccJ8PJrU.s:6551 .text.HAL_I2C_Mem_Read_DMA:00000000 $t
/tmp/ccJ8PJrU.s:6557 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA
/tmp/ccJ8PJrU.s:6841 .text.HAL_I2C_Mem_Read_DMA:00000120 $d
/tmp/ccJ8PJrU.s:6850 .text.HAL_I2C_IsDeviceReady:00000000 $t
/tmp/ccJ8PJrU.s:6856 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady
/tmp/ccJ8PJrU.s:7149 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t
/tmp/ccJ8PJrU.s:7155 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT
/tmp/ccJ8PJrU.s:7419 .text.HAL_I2C_Master_Seq_Transmit_IT:00000100 $d
/tmp/ccJ8PJrU.s:7425 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t
/tmp/ccJ8PJrU.s:7431 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA
/tmp/ccJ8PJrU.s:7851 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001cc $d
/tmp/ccJ8PJrU.s:7860 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t
/tmp/ccJ8PJrU.s:7866 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT
/tmp/ccJ8PJrU.s:8055 .text.HAL_I2C_Master_Seq_Receive_IT:000000ac $d
/tmp/ccJ8PJrU.s:8061 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t
/tmp/ccJ8PJrU.s:8067 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA
/tmp/ccJ8PJrU.s:8396 .text.HAL_I2C_Master_Seq_Receive_DMA:00000160 $d
/tmp/ccJ8PJrU.s:8405 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t
ARM GAS /tmp/ccJ8PJrU.s page 476
/tmp/ccJ8PJrU.s:8411 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT
/tmp/ccJ8PJrU.s:8621 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d8 $d
/tmp/ccJ8PJrU.s:14397 .text.I2C_DMAAbort:00000000 I2C_DMAAbort
/tmp/ccJ8PJrU.s:8627 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t
/tmp/ccJ8PJrU.s:8633 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA
/tmp/ccJ8PJrU.s:9023 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000019c $d
/tmp/ccJ8PJrU.s:9031 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t
/tmp/ccJ8PJrU.s:9037 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT
/tmp/ccJ8PJrU.s:9247 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d8 $d
/tmp/ccJ8PJrU.s:9253 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t
/tmp/ccJ8PJrU.s:9259 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA
/tmp/ccJ8PJrU.s:9646 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000198 $d
/tmp/ccJ8PJrU.s:9654 .text.HAL_I2C_EnableListen_IT:00000000 $t
/tmp/ccJ8PJrU.s:9660 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT
/tmp/ccJ8PJrU.s:9706 .text.HAL_I2C_EnableListen_IT:00000028 $d
/tmp/ccJ8PJrU.s:9711 .text.HAL_I2C_DisableListen_IT:00000000 $t
/tmp/ccJ8PJrU.s:9717 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT
/tmp/ccJ8PJrU.s:9782 .text.HAL_I2C_Master_Abort_IT:00000000 $t
/tmp/ccJ8PJrU.s:9788 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT
/tmp/ccJ8PJrU.s:9931 .text.HAL_I2C_Master_Abort_IT:00000088 $d
/tmp/ccJ8PJrU.s:9936 .text.HAL_I2C_EV_IRQHandler:00000000 $t
/tmp/ccJ8PJrU.s:9942 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler
/tmp/ccJ8PJrU.s:9979 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t
/tmp/ccJ8PJrU.s:9985 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback
/tmp/ccJ8PJrU.s:10000 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t
/tmp/ccJ8PJrU.s:10006 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback
/tmp/ccJ8PJrU.s:10021 .text.I2C_ITMasterSeqCplt:00000000 $t
/tmp/ccJ8PJrU.s:10026 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt
/tmp/ccJ8PJrU.s:10110 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t
/tmp/ccJ8PJrU.s:10116 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback
/tmp/ccJ8PJrU.s:10131 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t
/tmp/ccJ8PJrU.s:10137 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback
/tmp/ccJ8PJrU.s:10152 .text.I2C_ITSlaveSeqCplt:00000000 $t
/tmp/ccJ8PJrU.s:10157 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt
/tmp/ccJ8PJrU.s:10284 .text.I2C_DMASlaveTransmitCplt:00000000 $t
/tmp/ccJ8PJrU.s:10335 .text.I2C_DMASlaveReceiveCplt:00000000 $t
/tmp/ccJ8PJrU.s:10395 .text.HAL_I2C_AddrCallback:00000000 $t
/tmp/ccJ8PJrU.s:10401 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback
/tmp/ccJ8PJrU.s:10418 .text.I2C_ITAddrCplt:00000000 $t
/tmp/ccJ8PJrU.s:10423 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt
/tmp/ccJ8PJrU.s:10582 .text.HAL_I2C_ListenCpltCallback:00000000 $t
/tmp/ccJ8PJrU.s:10588 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback
/tmp/ccJ8PJrU.s:10603 .text.I2C_ITListenCplt:00000000 $t
/tmp/ccJ8PJrU.s:10608 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt
/tmp/ccJ8PJrU.s:10711 .text.I2C_ITListenCplt:00000064 $d
/tmp/ccJ8PJrU.s:10716 .text.HAL_I2C_MemTxCpltCallback:00000000 $t
/tmp/ccJ8PJrU.s:10722 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback
/tmp/ccJ8PJrU.s:10737 .text.HAL_I2C_MemRxCpltCallback:00000000 $t
/tmp/ccJ8PJrU.s:10743 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback
/tmp/ccJ8PJrU.s:10758 .text.HAL_I2C_ErrorCallback:00000000 $t
/tmp/ccJ8PJrU.s:10764 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback
/tmp/ccJ8PJrU.s:10779 .text.HAL_I2C_AbortCpltCallback:00000000 $t
/tmp/ccJ8PJrU.s:10785 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback
/tmp/ccJ8PJrU.s:10800 .text.I2C_TreatErrorCallback:00000000 $t
/tmp/ccJ8PJrU.s:10805 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback
/tmp/ccJ8PJrU.s:10861 .text.I2C_ITError:00000000 $t
/tmp/ccJ8PJrU.s:10866 .text.I2C_ITError:00000000 I2C_ITError
ARM GAS /tmp/ccJ8PJrU.s page 477
/tmp/ccJ8PJrU.s:11144 .text.I2C_ITError:00000124 $d
/tmp/ccJ8PJrU.s:11151 .text.I2C_ITSlaveCplt:00000000 $t
/tmp/ccJ8PJrU.s:11156 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt
/tmp/ccJ8PJrU.s:11202 .text.I2C_ITSlaveCplt:0000001e $d
/tmp/ccJ8PJrU.s:11212 .text.I2C_ITSlaveCplt:00000028 $t
/tmp/ccJ8PJrU.s:11579 .text.I2C_ITSlaveCplt:000001ec $d
/tmp/ccJ8PJrU.s:11584 .text.I2C_Slave_ISR_IT:00000000 $t
/tmp/ccJ8PJrU.s:11903 .text.I2C_ITMasterCplt:00000000 $t
/tmp/ccJ8PJrU.s:11908 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt
/tmp/ccJ8PJrU.s:12176 .text.I2C_Master_ISR_IT:00000000 $t
/tmp/ccJ8PJrU.s:12575 .text.I2C_Mem_ISR_DMA:00000000 $t
/tmp/ccJ8PJrU.s:12973 .text.I2C_Mem_ISR_DMA:000001c8 $d
/tmp/ccJ8PJrU.s:12979 .text.I2C_Slave_ISR_DMA:00000000 $t
/tmp/ccJ8PJrU.s:13122 .text.I2C_Slave_ISR_DMA:00000094 $d
/tmp/ccJ8PJrU.s:13133 .text.I2C_Slave_ISR_DMA:0000009e $t
/tmp/ccJ8PJrU.s:13278 .text.I2C_Master_ISR_DMA:00000000 $t
/tmp/ccJ8PJrU.s:13601 .text.I2C_DMAError:00000000 $t
/tmp/ccJ8PJrU.s:13640 .text.I2C_DMAMasterTransmitCplt:00000000 $t
/tmp/ccJ8PJrU.s:13747 .text.I2C_DMAMasterReceiveCplt:00000000 $t
/tmp/ccJ8PJrU.s:13866 .text.I2C_Mem_ISR_IT:00000000 $t
/tmp/ccJ8PJrU.s:14280 .text.I2C_Mem_ISR_IT:000001b8 $d
/tmp/ccJ8PJrU.s:14286 .text.HAL_I2C_ER_IRQHandler:00000000 $t
/tmp/ccJ8PJrU.s:14292 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler
/tmp/ccJ8PJrU.s:14392 .text.I2C_DMAAbort:00000000 $t
/tmp/ccJ8PJrU.s:14442 .text.HAL_I2C_GetState:00000000 $t
/tmp/ccJ8PJrU.s:14448 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState
/tmp/ccJ8PJrU.s:14466 .text.HAL_I2C_GetMode:00000000 $t
/tmp/ccJ8PJrU.s:14472 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode
/tmp/ccJ8PJrU.s:14490 .text.HAL_I2C_GetError:00000000 $t
/tmp/ccJ8PJrU.s:14496 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError
UNDEFINED SYMBOLS
HAL_GetTick
HAL_DMA_Start_IT
HAL_DMA_Abort_IT
HAL_DMA_GetState